V3 Deployments
All contracts are on Base mainnet (chain ID 8453). Resolve addresses from the published @zkp2p/contracts-v2 package (addresses/base.json, paymentMethods/base.json, currencies/currencies.json) or from @zkp2p/sdk instead of copying them from this page. Read mutable settings, such as fees and the selected policies, on-chain.
Current contracts
New intents settle through EscrowV2 → OrchestratorV4 → UnifiedPaymentVerifierV4.
Settlement
| Contract | Address | Role |
|---|---|---|
| EscrowV2 | 0x777777779d229cdF3110e9de47943791c26300Ef | Deposits, payment-method configuration, rates and fund locks |
| OrchestratorV4 | 0x74c55679268FAfB493864915aD16A320AB8c40Ba | Intent lifecycle and fees |
| UnifiedPaymentVerifierV4 | 0x7bE50E6206a9b3AdF36dbEAFac0e45Cc03A72048 | Verifies payment attestations for every payment method |
| MultiAttestationVerifier | 0x9Fe920b24e50e6a6362BA71a1BeB502A99c402d5 | Witness set and signature threshold for attestations |
| ProtocolViewerV4 | 0x685123dB5fE2b88D00ED3764c088d600D9B2b6Fc | Read helper for deposits and OrchestratorV4 intents |
Admission and dispute protection
| Contract | Address | Role |
|---|---|---|
| IntentSignalPolicy | 0x572f1Eb9043a7217C998221D6d3BCfb3D69338cC | OrchestratorV4 signal policy: deposit whitelist and gating signature |
| WhitelistPolicyV2 | 0xF7069D157D1AFb2CbE117e24f4262aE51eeD390c | Per-deposit taker whitelists and allowed groups |
| AddressGroupRegistryV4 | 0xDcafc54E4fb47B1d41ADD08dd82142a30ec4706E | Group membership |
| DisputeProtectionPolicyV2 | 0xB49Fa38C6Bb3C8C51ddb13711BB213cDD9DB1799 | OrchestratorV4 settlement policy: stake lock or held payout |
| StakeVaultV2 | 0x4aDE08EC1098D0d8856dd7bbBBc7789794089A97 | Taker stake, locks, held payouts and dispute claims |
| DisputeVerifier | 0x30d4947f005653637005eed991005119D9eB2f34 | Verifies signed dispute evidence |
| DisputeNullifierRegistry | 0xA845615b5203F7a21321DdF5e3a1ca024D93a443 | Prevents reuse of a dispute |
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | Stake token |
See Stake to Take for how these contracts settle an intent.
Registries
| Contract | Address | Role |
|---|---|---|
| EscrowRegistry | 0xeD0e847B101abc96E796260AC358e12BAa2f5B21 | Escrows the orchestrators accept |
| OrchestratorRegistry | 0xBe9fED15ED7A4B915C03EFcEcb9662739C3382A9 | Orchestrators allowed to lock and release escrow funds |
| PaymentVerifierRegistry | 0x2b82D24437ff66Fb173eabDfD67ee2ACeb8bEb1e | Payment methods, currencies and their verifier |
| NullifierRegistryV2 | 0x5455e761b866dfa6A2f5Dc6d6525825bf9C09aeB | Payment nullifiers |
| NullifierRegistry | 0x8d8e1A0e5345a5cc9AA206c3ca76D6d28c514608 | Earlier nullifiers, still read for replay protection |
| RelayerRegistry | 0xEbA979889a9c97382A92472fF3703786fF180083 | Relayer allowlist read by OrchestratorV3 |
Rates and intent extensions
| Contract | Address | Role |
|---|---|---|
| RateManagerV1 | 0xeEd7Db23e724aC4590D6dB6F78fDa6DB203535F3 | Delegated rate management (vaults) |
| ChainlinkOracleAdapter | 0x53881a928abD61C095e5f30b63bc554872C3b2f1 | Reads Chainlink-compatible price feeds for oracle-based rates |
| FxRateStore | 0x389206956C57bdB5d07FF78AB3D1e1DEED070b9c | INR/USD and CNY/USD rates published by a single updater that the protocol owner sets |
| FxRateFeedInrUsd | 0x053A03F1704aE3F71082D3cDFD50BC830415A326 | Chainlink-compatible INR/USD feed |
| FxRateFeedCnyUsd | 0xc034d806DbeA6b13980D94174eA5FF83E1C191C3 | Chainlink-compatible CNY/USD feed |
| IntentGuardian | 0x83671606454fA72ba1e2831E18C5090D25629414 | Paid intent-expiry extensions for deposits that name it as their intent guardian |
Previous contracts
OrchestratorV3 was retired on 2026-11-05. OrchestratorV4 is current. Once O3 is removed from OrchestratorRegistry, Escrow rejects its signal and fulfillment calls. Historical O3 intents, payments and events remain readable. The addresses below are retained for historical lookups.
| Contract | Address | Status |
|---|---|---|
| OrchestratorV3 | 0x014025fDE093f8701d86e9f38e2C3a9b779cb5c7 | Retired 2026-11-05; historical reads only |
| IntentLifecycleHookV1 | 0x5Dd6C675a7406fE8C9f0D93394a36fd6e8c50031 | OrchestratorV3 lifecycle hook (whitelist and stake admission) |
| WhitelistPolicy | 0x389Cd9bA91FfFcd83d267B241E975541892759Ce | OrchestratorV3 deposit whitelists |
| AddressGroupRegistry | 0x39F80118f9eB619135f116171b6Cb91D372C5AF2 | OrchestratorV3 group membership |
| DisputeProtectionPolicy | 0xbF4B769dB70DBEc89b6b2c44988304a7aD2de4Fc | OrchestratorV3 dispute protection |
| StakeVault | 0x47c26258222e2f96424bD2B21bf173f0DA5034C7 | Stake for OrchestratorV3 intents; does not back OrchestratorV4 intents |
| SignatureGatingPreIntentHook | 0x62D410a3d6FC766dd2192be2a67a5fc79c5c2e1F | Optional OrchestratorV3 pre-intent hook |
| UnifiedPaymentVerifierV3 | 0xC6F4a193576C60892a47e111Bb5706c30162502B | No longer routed |
| ProtocolViewerV2 | 0xC8A622e1614BB58141E72e1D6023B16f08677d6c | Reads deposits and OrchestratorV2/V3 intents; cannot decode V4 intents |
| SimpleAttestationVerifier | 0xED6C0C34c3964D239e7a315C55E620fafE5Ae3AC | Not used by the current verifier |
| PythOracleAdapter | 0xad0b0126A657c0674d0DF53B2A2554D43bbb41D0 | Deployed; Peer clients use Chainlink-compatible feeds |
| OrchestratorV2 | 0x888888359E981B5225CA48fbCdCeff702FC3b888 | Superseded by OrchestratorV3 |
| WhitelistPreIntentHook | 0xda023Ea0d789A41BcF5866F7B6BBd2CaDF9b79B8 | OrchestratorV2 whitelist hook |
| WhitelistLifecycleHook | 0x251d78fb6bBb4071995Bce74bAfC9E4168638622 | Superseded by IntentLifecycleHookV1 |
| Escrow (V1) | 0x2f121CDDCA6d652f35e8B3E560f9760898888888 | Deprecated |
| Orchestrator (V1) | 0x88888883Ed048FF0a415271B28b2F52d431810D0 | Deprecated |
| UnifiedPaymentVerifier (V1) | 0x16b3e4a3CA36D3A4bCA281767f15C7ADeF4ab163 | Deprecated |
| PostIntentHookRegistry | 0x9B128EBAD4d874199A2Dc57E93186796c5EcAdE9 | Deprecated |
| ProtocolViewer (V1) | 0x30B03De22328074Fbe8447C425ae988797146606 | Deprecated |
Payment methods
Every registered payment method routes to UnifiedPaymentVerifierV4. The identifier is keccak256 of the lowercase method name.
| Payment method | Payment method ID (bytes32) | Currencies |
|---|---|---|
| venmo | 0x90262a3db0edd0be2369c6b28f9e8511ec0bac7136cefbada0880602f87e7268 | USD |
| revolut | 0x617f88ab82b5c1b014c539f7e75121427f0bb50a4c58b187a238531e7d58605d | USD, EUR, GBP, SGD, NZD, AUD, CAD, JPY, HKD, MXN, SAR, AED, THB, TRY, PLN, CHF, ZAR, CNY, CZK, DKK, HUF, NOK, RON, SEK |
| cashapp | 0x10940ee67cfb3c6c064569ec92c0ee934cd7afa18dd2ca2d6a2254fcb009c17d | USD |
| wise | 0x554a007c2217df766b977723b276671aee5ebb4adaea0edb6433c88b3e61dac5 | USD, CNY, EUR, GBP, AUD, NZD, CAD, AED, CHF, ZAR, SGD, ILS, HKD, JPY, PLN, TRY, IDR, KES, MYR, MXN, THB, VND, UGX, CZK, DKK, HUF, INR, NOK, PHP, RON, SEK |
| mercadopago | 0xa5418819c024239299ea32e09defae8ec412c03e58f5c75f1b2fe84c857f5483 | ARS |
| zelle | 0xf752c7d19698ecb0bb8988abf9b9a53a4c3657f3bc8850a6fb59fdf3e3ce8cd3 | USD |
| paypal | 0x3ccc3d4d5e769b1f82dc4988485551dc0cd3c7a3926d7d8a4dde91507199490f | USD, EUR, GBP, SGD, NZD, AUD, CAD |
| monzo | 0x62c7ed738ad3e7618111348af32691b5767777fbaf46a2d8943237625552645c | GBP |
| alipay | 0xcac9daea62d7b89d75ac73af4ee14dcf25721012ae82b568c2ea5c808eaa04ff | CNY |
| chime | 0x5908bb0c9b87763ac6171d4104847667e7f02b4c47b574fe890c1f439ed128bb | USD |
| upi | 0xe99a5081226cbbff9440a63da5caa04fa30f210c12c4dd9976132ac075054cd9 | INR |
| xmoney | 0x790dd0cc68b6e7f474649a6c0a5463a964be9d2589e2076b6dc99f5701543f51 | USD |
| monobank | 0x1d966dbd6aeb8674d7c05174bd0ded7b56a798672bfb862ef20bbe8c2bbfce18 | UAH |
Currencies
Currency codes are uppercase ISO 4217. On-chain, a currency is keccak256(utf8(code)).
| Currency | Bytes32 hash |
|---|---|
| AED | 0x4dab77a640748de8588de6834d814a344372b205265984b969f3e97060955bfa |
| ARS | 0x8fd50654b7dd2dc839f7cab32800ba0c6f7f66e1ccf89b21c09405469c2175ec |
| AUD | 0xcb83cbb58eaa5007af6cad99939e4581c1e1b50d65609c30f303983301524ef3 |
| CAD | 0x221012e06ebf59a20b82e3003cf5d6ee973d9008bdb6e2f604faa89a27235522 |
| CHF | 0xc9d84274fd58aa177cabff54611546051b74ad658b939babaad6282500300d36 |
| CNY | 0xfaaa9c7b2f09d6a1b0971574d43ca62c3e40723167c09830ec33f06cec921381 |
| CZK | 0xd783b199124f01e5d0dde2b7fc01b925e699caea84eae3ca92ed17377f498e97 |
| DKK | 0x5ce3aa5f4510edaea40373cbe83c091980b5c92179243fe926cb280ff07d403e |
| EUR | 0xfff16d60be267153303bbfa66e593fb8d06e24ea5ef24b6acca5224c2ca6b907 |
| GBP | 0x90832e2dc3221e4d56977c1aa8f6a6706b9ad6542fbbdaac13097d0fa5e42e67 |
| HKD | 0xa156dad863111eeb529c4b3a2a30ad40e6dcff3b27d8f282f82996e58eee7e7d |
| HUF | 0x7766ee347dd7c4a6d5a55342d89e8848774567bcf7a5f59c3e82025dbde3babb |
| IDR | 0xc681c4652bae8bd4b59bec1cdb90f868d93cc9896af9862b196843f54bf254b3 |
| ILS | 0x313eda7ae1b79890307d32a78ed869290aeb24cc0e8605157d7e7f5a69fea425 |
| INR | 0xaad766fbc07fb357bed9fd8b03b935f2f71fe29fc48f08274bc2a01d7f642afc |
| JPY | 0xfe13aafd831cb225dfce3f6431b34b5b17426b6bff4fccabe4bbe0fe4adc0452 |
| KES | 0x589be49821419c9c2fbb26087748bf3420a5c13b45349828f5cac24c58bbaa7b |
| MXN | 0xa94b0702860cb929d0ee0c60504dd565775a058bf1d2a2df074c1db0a66ad582 |
| MYR | 0xf20379023279e1d79243d2c491be8632c07cfb116be9d8194013fb4739461b84 |
| NOK | 0x8fb505ed75d9d38475c70bac2c3ea62d45335173a71b2e4936bd9f05bf0ddfea |
| NZD | 0xdbd9d34f382e9f6ae078447a655e0816927c7c3edec70bd107de1d34cb15172e |
| PHP | 0xe6c11ead4ee5ff5174861adb55f3e8fb2841cca69bf2612a222d3e8317b6ae06 |
| PLN | 0x9a788fb083188ba1dfb938605bc4ce3579d2e085989490aca8f73b23214b7c1d |
| RON | 0x2dd272ddce846149d92496b4c3e677504aec8d5e6aab5908b25c9fe0a797e25f |
| SAR | 0xf998cbeba8b7a7e91d4c469e5fb370cdfa16bd50aea760435dc346008d78ed1f |
| SEK | 0x8895743a31faedaa74150e89d06d281990a1909688b82906f0eb858b37f82190 |
| SGD | 0xc241cc1f9752d2d53d1ab67189223a3f330e48b75f73ebf86f50b2c78fe8df88 |
| THB | 0x326a6608c2a353275bd8d64db53a9d772c1d9a5bc8bfd19dfc8242274d1e9dd4 |
| TRY | 0x128d6c262d1afe2351c6e93ceea68e00992708cfcbc0688408b9a23c0c543db2 |
| UAH | 0x763ce5da7605b2b5ec3e9ec5b0ab2bbcf8b27d28da2b5002e4e364278d729d14 |
| UGX | 0x1fad9f8ddef06bf1b8e0e28c11b97ca0df51b03c268797e056b7c52e9048cfd1 |
| USD | 0xc4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e |
| VND | 0xe85548baf0a6732cfcc7fc016ce4fd35ce0a1877057cfec6e166af4f106a3728 |
| ZAR | 0x53611f0b3535a2cfc4b8deb57fa961ca36c7b2c272dfe4cb239a29c48e549361 |