> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.clossir.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.clossir.com/_mcp/server.

# Compliance — Overview

02 / COMPLIANCE

<g>
  <circle cx="0" cy="16.33" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="-16.2" cy="25.402" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="16.2" cy="25.402" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="0" cy="34.474" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="-16.2" cy="44.518" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="16.2" cy="44.518" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="0" cy="53.59" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="0" cy="33.097" r="3.888" fill="var(--intent-primary)" opacity="0.18" />
</g>

<g>
  <circle cx="32.4" cy="16.33" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="16.2" cy="25.402" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="48.6" cy="25.402" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="32.4" cy="34.474" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="16.2" cy="44.518" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="48.6" cy="44.518" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="32.4" cy="53.59" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="32.4" cy="33.097" r="3.888" fill="var(--intent-primary)" opacity="0.18" />
</g>

<g>
  <circle cx="16.2" cy="0" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="0" cy="9.072" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="32.4" cy="9.072" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="16.2" cy="18.144" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="0" cy="28.188" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="32.4" cy="28.188" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="16.2" cy="37.26" r="1.5" fill="var(--intent-primary)" opacity="0.6" />

  <circle cx="16.2" cy="16.767" r="3.888" fill="var(--intent-primary)" opacity="0.18" />
</g>

Compliance turns an issuer's rules into on-chain enforcement. Define eligibility and transfer
policy once; every transfer of the asset — on every chain — is checked against it. Outcomes are
semantic and auditable: verified
blocked
pending.

## Where it fits (regulatory boundary)

Issuers own the policy and the regulatory determination. Clossir enforces the policy
deterministically and produces the audit trail; it does not make eligibility law.

## Key features

* Policy-as-configuration, evaluated on every transfer
* Reads Identity attestations to decide eligibility
* Deterministic allow / block / pending outcomes with reasons
* Full audit trail of every decision

## Use cases

* Restrict transfers to verified, eligible holders
* Jurisdiction / accreditation gating
* Lock-ups, allow-lists, and transfer windows

## How it works

On each transfer attempt, the asset consults the compliance policy, which evaluates the parties'
Identity attestations and the policy rules, then returns an enforced outcome.

## API

See [Compliance — API](/products/compliance/api).

## Dependencies

Requires Identity attestations; gates Asset Issuance transfers.