Skip to main content

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​

ContractAddressRole
EscrowV20x777777779d229cdF3110e9de47943791c26300EfDeposits, payment-method configuration, rates and fund locks
OrchestratorV40x74c55679268FAfB493864915aD16A320AB8c40BaIntent lifecycle and fees
UnifiedPaymentVerifierV40x7bE50E6206a9b3AdF36dbEAFac0e45Cc03A72048Verifies payment attestations for every payment method
MultiAttestationVerifier0x9Fe920b24e50e6a6362BA71a1BeB502A99c402d5Witness set and signature threshold for attestations
ProtocolViewerV40x685123dB5fE2b88D00ED3764c088d600D9B2b6FcRead helper for deposits and OrchestratorV4 intents

Admission and dispute protection​

ContractAddressRole
IntentSignalPolicy0x572f1Eb9043a7217C998221D6d3BCfb3D69338cCOrchestratorV4 signal policy: deposit whitelist and gating signature
WhitelistPolicyV20xF7069D157D1AFb2CbE117e24f4262aE51eeD390cPer-deposit taker whitelists and allowed groups
AddressGroupRegistryV40xDcafc54E4fb47B1d41ADD08dd82142a30ec4706EGroup membership
DisputeProtectionPolicyV20xB49Fa38C6Bb3C8C51ddb13711BB213cDD9DB1799OrchestratorV4 settlement policy: stake lock or held payout
StakeVaultV20x4aDE08EC1098D0d8856dd7bbBBc7789794089A97Taker stake, locks, held payouts and dispute claims
DisputeVerifier0x30d4947f005653637005eed991005119D9eB2f34Verifies signed dispute evidence
DisputeNullifierRegistry0xA845615b5203F7a21321DdF5e3a1ca024D93a443Prevents reuse of a dispute
USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Stake token

See Stake to Take for how these contracts settle an intent.

Registries​

ContractAddressRole
EscrowRegistry0xeD0e847B101abc96E796260AC358e12BAa2f5B21Escrows the orchestrators accept
OrchestratorRegistry0xBe9fED15ED7A4B915C03EFcEcb9662739C3382A9Orchestrators allowed to lock and release escrow funds
PaymentVerifierRegistry0x2b82D24437ff66Fb173eabDfD67ee2ACeb8bEb1ePayment methods, currencies and their verifier
NullifierRegistryV20x5455e761b866dfa6A2f5Dc6d6525825bf9C09aeBPayment nullifiers
NullifierRegistry0x8d8e1A0e5345a5cc9AA206c3ca76D6d28c514608Earlier nullifiers, still read for replay protection
RelayerRegistry0xEbA979889a9c97382A92472fF3703786fF180083Relayer allowlist read by OrchestratorV3

Rates and intent extensions​

ContractAddressRole
RateManagerV10xeEd7Db23e724aC4590D6dB6F78fDa6DB203535F3Delegated rate management (vaults)
ChainlinkOracleAdapter0x53881a928abD61C095e5f30b63bc554872C3b2f1Reads Chainlink-compatible price feeds for oracle-based rates
FxRateStore0x389206956C57bdB5d07FF78AB3D1e1DEED070b9cINR/USD and CNY/USD rates published by a single updater that the protocol owner sets
FxRateFeedInrUsd0x053A03F1704aE3F71082D3cDFD50BC830415A326Chainlink-compatible INR/USD feed
FxRateFeedCnyUsd0xc034d806DbeA6b13980D94174eA5FF83E1C191C3Chainlink-compatible CNY/USD feed
IntentGuardian0x83671606454fA72ba1e2831E18C5090D25629414Paid 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.

ContractAddressStatus
OrchestratorV30x014025fDE093f8701d86e9f38e2C3a9b779cb5c7Retired 2026-11-05; historical reads only
IntentLifecycleHookV10x5Dd6C675a7406fE8C9f0D93394a36fd6e8c50031OrchestratorV3 lifecycle hook (whitelist and stake admission)
WhitelistPolicy0x389Cd9bA91FfFcd83d267B241E975541892759CeOrchestratorV3 deposit whitelists
AddressGroupRegistry0x39F80118f9eB619135f116171b6Cb91D372C5AF2OrchestratorV3 group membership
DisputeProtectionPolicy0xbF4B769dB70DBEc89b6b2c44988304a7aD2de4FcOrchestratorV3 dispute protection
StakeVault0x47c26258222e2f96424bD2B21bf173f0DA5034C7Stake for OrchestratorV3 intents; does not back OrchestratorV4 intents
SignatureGatingPreIntentHook0x62D410a3d6FC766dd2192be2a67a5fc79c5c2e1FOptional OrchestratorV3 pre-intent hook
UnifiedPaymentVerifierV30xC6F4a193576C60892a47e111Bb5706c30162502BNo longer routed
ProtocolViewerV20xC8A622e1614BB58141E72e1D6023B16f08677d6cReads deposits and OrchestratorV2/V3 intents; cannot decode V4 intents
SimpleAttestationVerifier0xED6C0C34c3964D239e7a315C55E620fafE5Ae3ACNot used by the current verifier
PythOracleAdapter0xad0b0126A657c0674d0DF53B2A2554D43bbb41D0Deployed; Peer clients use Chainlink-compatible feeds
OrchestratorV20x888888359E981B5225CA48fbCdCeff702FC3b888Superseded by OrchestratorV3
WhitelistPreIntentHook0xda023Ea0d789A41BcF5866F7B6BBd2CaDF9b79B8OrchestratorV2 whitelist hook
WhitelistLifecycleHook0x251d78fb6bBb4071995Bce74bAfC9E4168638622Superseded by IntentLifecycleHookV1
Escrow (V1)0x2f121CDDCA6d652f35e8B3E560f9760898888888Deprecated
Orchestrator (V1)0x88888883Ed048FF0a415271B28b2F52d431810D0Deprecated
UnifiedPaymentVerifier (V1)0x16b3e4a3CA36D3A4bCA281767f15C7ADeF4ab163Deprecated
PostIntentHookRegistry0x9B128EBAD4d874199A2Dc57E93186796c5EcAdE9Deprecated
ProtocolViewer (V1)0x30B03De22328074Fbe8447C425ae988797146606Deprecated

Payment methods​

Every registered payment method routes to UnifiedPaymentVerifierV4. The identifier is keccak256 of the lowercase method name.

Payment methodPayment method ID (bytes32)Currencies
venmo0x90262a3db0edd0be2369c6b28f9e8511ec0bac7136cefbada0880602f87e7268USD
revolut0x617f88ab82b5c1b014c539f7e75121427f0bb50a4c58b187a238531e7d58605dUSD, EUR, GBP, SGD, NZD, AUD, CAD, JPY, HKD, MXN, SAR, AED, THB, TRY, PLN, CHF, ZAR, CNY, CZK, DKK, HUF, NOK, RON, SEK
cashapp0x10940ee67cfb3c6c064569ec92c0ee934cd7afa18dd2ca2d6a2254fcb009c17dUSD
wise0x554a007c2217df766b977723b276671aee5ebb4adaea0edb6433c88b3e61dac5USD, 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
mercadopago0xa5418819c024239299ea32e09defae8ec412c03e58f5c75f1b2fe84c857f5483ARS
zelle0xf752c7d19698ecb0bb8988abf9b9a53a4c3657f3bc8850a6fb59fdf3e3ce8cd3USD
paypal0x3ccc3d4d5e769b1f82dc4988485551dc0cd3c7a3926d7d8a4dde91507199490fUSD, EUR, GBP, SGD, NZD, AUD, CAD
monzo0x62c7ed738ad3e7618111348af32691b5767777fbaf46a2d8943237625552645cGBP
alipay0xcac9daea62d7b89d75ac73af4ee14dcf25721012ae82b568c2ea5c808eaa04ffCNY
chime0x5908bb0c9b87763ac6171d4104847667e7f02b4c47b574fe890c1f439ed128bbUSD
upi0xe99a5081226cbbff9440a63da5caa04fa30f210c12c4dd9976132ac075054cd9INR
xmoney0x790dd0cc68b6e7f474649a6c0a5463a964be9d2589e2076b6dc99f5701543f51USD
monobank0x1d966dbd6aeb8674d7c05174bd0ded7b56a798672bfb862ef20bbe8c2bbfce18UAH

Currencies​

Currency codes are uppercase ISO 4217. On-chain, a currency is keccak256(utf8(code)).

CurrencyBytes32 hash
AED0x4dab77a640748de8588de6834d814a344372b205265984b969f3e97060955bfa
ARS0x8fd50654b7dd2dc839f7cab32800ba0c6f7f66e1ccf89b21c09405469c2175ec
AUD0xcb83cbb58eaa5007af6cad99939e4581c1e1b50d65609c30f303983301524ef3
CAD0x221012e06ebf59a20b82e3003cf5d6ee973d9008bdb6e2f604faa89a27235522
CHF0xc9d84274fd58aa177cabff54611546051b74ad658b939babaad6282500300d36
CNY0xfaaa9c7b2f09d6a1b0971574d43ca62c3e40723167c09830ec33f06cec921381
CZK0xd783b199124f01e5d0dde2b7fc01b925e699caea84eae3ca92ed17377f498e97
DKK0x5ce3aa5f4510edaea40373cbe83c091980b5c92179243fe926cb280ff07d403e
EUR0xfff16d60be267153303bbfa66e593fb8d06e24ea5ef24b6acca5224c2ca6b907
GBP0x90832e2dc3221e4d56977c1aa8f6a6706b9ad6542fbbdaac13097d0fa5e42e67
HKD0xa156dad863111eeb529c4b3a2a30ad40e6dcff3b27d8f282f82996e58eee7e7d
HUF0x7766ee347dd7c4a6d5a55342d89e8848774567bcf7a5f59c3e82025dbde3babb
IDR0xc681c4652bae8bd4b59bec1cdb90f868d93cc9896af9862b196843f54bf254b3
ILS0x313eda7ae1b79890307d32a78ed869290aeb24cc0e8605157d7e7f5a69fea425
INR0xaad766fbc07fb357bed9fd8b03b935f2f71fe29fc48f08274bc2a01d7f642afc
JPY0xfe13aafd831cb225dfce3f6431b34b5b17426b6bff4fccabe4bbe0fe4adc0452
KES0x589be49821419c9c2fbb26087748bf3420a5c13b45349828f5cac24c58bbaa7b
MXN0xa94b0702860cb929d0ee0c60504dd565775a058bf1d2a2df074c1db0a66ad582
MYR0xf20379023279e1d79243d2c491be8632c07cfb116be9d8194013fb4739461b84
NOK0x8fb505ed75d9d38475c70bac2c3ea62d45335173a71b2e4936bd9f05bf0ddfea
NZD0xdbd9d34f382e9f6ae078447a655e0816927c7c3edec70bd107de1d34cb15172e
PHP0xe6c11ead4ee5ff5174861adb55f3e8fb2841cca69bf2612a222d3e8317b6ae06
PLN0x9a788fb083188ba1dfb938605bc4ce3579d2e085989490aca8f73b23214b7c1d
RON0x2dd272ddce846149d92496b4c3e677504aec8d5e6aab5908b25c9fe0a797e25f
SAR0xf998cbeba8b7a7e91d4c469e5fb370cdfa16bd50aea760435dc346008d78ed1f
SEK0x8895743a31faedaa74150e89d06d281990a1909688b82906f0eb858b37f82190
SGD0xc241cc1f9752d2d53d1ab67189223a3f330e48b75f73ebf86f50b2c78fe8df88
THB0x326a6608c2a353275bd8d64db53a9d772c1d9a5bc8bfd19dfc8242274d1e9dd4
TRY0x128d6c262d1afe2351c6e93ceea68e00992708cfcbc0688408b9a23c0c543db2
UAH0x763ce5da7605b2b5ec3e9ec5b0ab2bbcf8b27d28da2b5002e4e364278d729d14
UGX0x1fad9f8ddef06bf1b8e0e28c11b97ca0df51b03c268797e056b7c52e9048cfd1
USD0xc4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e
VND0xe85548baf0a6732cfcc7fc016ce4fd35ce0a1877057cfec6e166af4f106a3728
ZAR0x53611f0b3535a2cfc4b8deb57fa961ca36c7b2c272dfe4cb239a29c48e549361