You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Institutions already exchange ISO 20022 messages (pacs.008/009/002, camt.\*).
On-chain settlement (ERC-20, tokenized deposits) must link to SWIFT/ISO workflows.
Regulators require selective audit, not full transparency.
avoid-when
Institutions are not ISO-native (retail/DeFi-native apps).
Privacy is not a requirement (public stablecoins acceptable).
dependencies
ISO 20022 schema (pacs.008/009/002, camt.\*)
ERC-20 / ERC-3643 (tokenized cash/RWA)
Optional
ERC-7573 (conditional settlement), ZK proof system
Intent
Coordinate private ERC-20 settlements between banks using ISO 20022 as the instruction layer.
ISO messages are linked to the cash leg, while the cash leg itself settles privately via a shielded mechanism (privacy L2 / shielded pool / confidential token) with regulator-only visibility.
Temporarily bridge both legs to a common privacy L2 (e.g.; Aztec).
Perform a single-tx shielded DvP/PvP referencing C_msg.
Bridge assets back to their origin chains as needed.
Guarantees
Privacy: cash-leg amounts and counterparties are hidden on-chain (B1/B2/B3).
Integrity & linkage: settlement references C_msg so the cash leg is cryptographically linked to the ISO instruction.
Auditability: regulator can decrypt selected fields or use view keys to audit shielded transfers.
Interoperability: ISO schema provides consistent mapping across banks/corridors.
Trade-offs
Privacy rails (B1/B2) introduce infra complexity (shielded circuits or confidential VM) and key governance.
Signing convention (algorithm, PKI) must be agreed (full ISO hash vs reduced settlement tuple) for on-chain authorization.
Cross-chain atomicity (if the two legs span different chains) requires zk-SPV or single-domain execution (B3).
Example
Bank A issues pacs.008 “pay 10m EURC from DEUTDEFFXXX → BNPAFRPPXXX”.
Off-chain: compute C_msg from the canonical ISO message.
B1: Wrap EURC into a shielded pool, execute a note-to-note transfer bound to C_msg. or B2: Call confidential-token transfer (encrypted state), referencing C_msg. or B3: Bridge to a shared privacy L2, do one-tx shielded DvP, bridge out.
Regulator later audits via view keys / selective disclosure.