What is Fairway?
Fairway is a decentralized compliance infrastructure for making KYC/AML checks programmable across Cardano, Midnight, and EVM, without putting PII on-chain.
We store KYC data in decentralized off-chain storage (the “Vault”), use a Fairway Cloud Agent via API with a Witness to generate a Midnight ZK-proof bound to a specific wallet address, and record that proof on Midnight’s public ledger.
A reference to that Midnight proof (the proof UTXO) is then embedded in Merkle trees on Cardano and/or EVM, alongside Fairway’s signature and the user’s eligibility flags. dApps verify Merkle membership + Fairway signature + epoch freshness, and can later audit the referenced Midnight UTXO.
Why It Matters
For Developers → add a single eligibility check (Merkle inclusion + signature verify) to your validator/contract.
For Institutions → get auditability (via Midnight proof references) without handling raw PII on-chain.
For Users → prove once, reuse across chains; no document leakage.
How It Works

Core components
Vault (decentralized storage) — holds KYC documents/PII off-chain.
Cloud Agent — verifies inputs, runs Witness logic, and generates ZK-proofs on Midnight bound to the user’s wallet.
Midnight proof UTXO — immutable record of the ZK result on Midnight’s public ledger.
Merkle Trees (Cardano & EVM) — compact allowlists of wallet → claims/flags + midnight_ref, signed by Fairway.
Policy Engine — dApp-side rule evaluation (YES/NO) based on Merkle membership + epoch freshness.
Merkle Leaf (Cardano/EVM) — canonical fields
{
"address": "addr1... | 0x...",
"claims": ["KYC1_OK", "EU_RESIDENT"],
"midnight_ref": "0x<txid>#<index>",
"epoch": 391,
"fairway_sig": "sig(fairway_key, hash(root || epoch || midnight_ref))"
}
Verifier MUST:
Verify Merkle membership of
address
with the on-chain root.Verify Fairway signature over
(root, epoch, midnight_ref)
using the chain-appropriate key.Enforce epoch freshness (revocation).
(Optional, for audits) Resolve
midnight_ref
on Midnight to validate provenance.
EVM note: you can integrate via (A) Merkle allowlist guard or (B) ERC-3643 adapter that internally checks Fairway eligibility. Both carry the midnight_ref for auditability.
Key Principles
No PII on-chain — only commitments, signatures, and references.
Auditability by reference — every Merkle leaf links to a Midnight proof UTXO.
Composable — same proof powers Cardano and EVM integrations.
Last updated
Was this helpful?