Identity Proofs (Cardano)
Here we explain how Fairway encodes KYC/AML eligibility on Cardano using a single UTXO with a Merkle root, Fairway signature, a verification timestamp, and a reference to a Midnight proof UTXO.
Background
Instead of minting identity tokens per user (e.g., CIP-113 or NFTs), Fairway maintains a canonical Compliance UTXO that contains:
merkle_rootβ commitment to all compliant addresses + claims.sanctions_epochβ global counter for sanctions/risk updates.fairway_sigβ Fairwayβs signature binding root + epoch + Midnight ref.midnight_refβ pointer to the ZK-proof UTXO on Midnight (audit trail).
Each Merkle leaf represents a user and includes:
addressβ wallet identifier.claimsβ e.g.,KYC2,EU_RESIDENT.kyc_verified_atβ timestamp of last KYC check.
Eligibility is checked by proving Merkle membership and verifying both:
Fairway signature over the Compliance UTXO state.
Freshness conditions (timestamp vs. sanctions epoch).
Data Model
UTXO Datum
Merkle Leaf
Flow
Validator Pseudocode (Aiken)
max_ageis defined by the protocol/institution (e.g., 180 days).The validator never opens raw PII.
midnight_reflinks to a verifiable ZK proof on Midnight for audits.
Benefits
Compact β one UTXO anchors all compliant users.
Flexible β institutions define their own
max_agefor KYC proofs.Auditable β
midnight_reflinks back to ZK proof.Compliant β sanctions freshness via epoch, KYC recency via timestamp.
Composable β eligibility checks slot directly into LP/staking validators.
Next Steps
Learn Revocation Epochs & Freshness β how timestamps + epochs combine.
See Build on Cardano β full Aiken integration guide.
Explore Trust Registries β issuer key governance (roadmap).
Last updated
Was this helpful?

