> For the complete documentation index, see [llms.txt](https://docs.fairway.global/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fairway.global/developers/build-on-cardano/merkle-compliance-utxo/integration-workflow.md).

# Integration Workflow

1. **Institution defines requirements**
   * Min KYC level
   * Jurisdiction allow/deny
   * Sanctions epoch freshness (must match latest)
   * Max KYC age (e.g. 6 months, 12 )
2. **User completes KYC off-chain**
   * Vault stores PII.
   * Cloud Agent records `kyc_verified_at`.
   * Proof posted to Midnight.
3. **Fairway updates Compliance UTXO**
   * New Merkle root.
   * `sanctions_epoch` incremented if needed.
   * `kyc_verified_at` attached per-leaf.
   * Signed by Fairway.
4. **User interacts with dApp**
   * Submits Merkle proof with leaf `{addr, claims, kyc_verified_at}`.
   * dApp attaches Compliance UTXO as reference input.
5. **Validator checks**

* [x] Merkle membership
* [x] Signature
* [x] `sanctions_epoch=latest`
* [x] `now - kyc_verified_at ≤ max_age`
