Skip to main content
The zkp2p-contracts system is deployed across multiple networks to support both production and testing environments.

Network Overview

NetworkChain IDStatusRPC URLBlock Explorer
Base8453Productionhttps://base-mainnet.g.alchemy.com/v2/YOUR_API_KEYBasescan
Base Sepolia84532Testnethttps://base-sepolia.g.alchemy.com/v2/YOUR_API_KEYBase Sepolia Explorer
Base Staging8453Staginghttps://developer-access-mainnet.base.orgBasescan

Contract Addresses

Base Mainnet (Production)

Core Contracts

ContractAddressDescription
Escrow0x2f121CDDCA6d652f35e8B3E560f9760898888888V1 liquidity management
Orchestrator0x88888883Ed048FF0a415271B28b2F52d431810D0V1 intent lifecycle
UnifiedPaymentVerifier-Payment attestation verification
SimpleAttestationVerifier-EIP-712 signature verification
ProtocolViewer-Read-only state aggregator

Registries

ContractAddressDescription
PaymentVerifierRegistry-Payment method to verifier mapping
NullifierRegistry-Payment proof nullification
EscrowRegistry-Whitelisted escrow contracts
RelayerRegistry-Authorized relayers
PostIntentHookRegistry-Approved post-intent hooks

Configuration

ParameterValueDescription
Intent Expiration6 hoursMaximum time for intent fulfillment
Protocol Fee0Taker fee in wei
Dust Threshold0.1 USDCMinimum deposit remainder
Max Intents per Deposit200Concurrent intent limit
USDC Address0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Official USDC token
Multisig Owner0x0bC26FF515411396DD588Abd6Ef6846E04470227Protocol governance

Base Sepolia (Testnet)

Core Contracts

ContractAddressDescription
Escrow0x6a5e11c3D87e22b828d02ee65a4e8f322BF6B97EV1 liquidity management
Orchestrator-V1 intent lifecycle
UnifiedPaymentVerifier-Payment attestation verification
SimpleAttestationVerifier-EIP-712 signature verification
USDCMock-Test USDC token

Configuration

ParameterValueDescription
Intent Expiration1 hourMaximum time for intent fulfillment
Protocol Fee0Taker fee in wei
Dust Threshold0.1 USDCMinimum deposit remainder
Max Intents per Deposit200Concurrent intent limit
Witness Address0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266Test attestation signer

Network Configuration

The networks are configured in hardhat.config.ts:
networks: {
  base: {
    url: "https://base-mainnet.g.alchemy.com/v2/" + process.env.ALCHEMY_API_KEY,
    accounts: [`0x${process.env.BASE_DEPLOY_PRIVATE_KEY}`]
  },
  base_sepolia: {
    url: "https://base-sepolia.g.alchemy.com/v2/" + process.env.ALCHEMY_API_KEY,
    accounts: [`0x${process.env.TESTNET_DEPLOY_PRIVATE_KEY}`]
  },
  base_staging: {
    url: "https://developer-access-mainnet.base.org",
    accounts: [`0x${process.env.BASE_DEPLOY_PRIVATE_KEY}`],
    verify: {
      etherscan: {
        apiUrl: "https://api.basescan.org/",
        apiKey: process.env.BASESCAN_API_KEY
      }
    }
  }
}

Supported Payment Methods

All networks support the following payment platforms:
  • Venmo - US peer-to-peer payments
  • PayPal - Global payment platform
  • Wise - International transfers
  • Zelle - US bank transfers (Chase, Bank of America, Citi)
  • CashApp - US mobile payments
  • Revolut - European digital banking
  • MercadoPago - Latin American payments
  • Monzo - UK digital banking
  • N26 - European digital banking
  • Chime - US digital banking
  • Luxon - Payment platform
  • Alipay - Chinese payment platform

External Integrations

Across Bridge Hook

NetworkSpoke Pool AddressStatus
Base0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64Active
Base Staging0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64Active
Base Sepolia-Not deployed

Pyth Oracle

NetworkOracle AddressStatus
Base0x8250f4aF4B972684F7b336503E2D6dFeDeB1487aActive
Base Staging0x8250f4aF4B972684F7b336503E2D6dFeDeB1487aActive
Base Sepolia0xA2aa501b19aff244D90cc15a4Cf739D2725B5729Active

Accessing Deployment Files

All deployment artifacts are stored in the deployments/ directory:
deployments/
├── base/                    # Production deployments
   ├── Escrow.json
   ├── Orchestrator.json
   └── ...
├── base_sepolia/            # Testnet deployments
   ├── Escrow.json
   ├── Orchestrator.json
   └── ...
└── base_staging/            # Staging deployments
    └── ...
Each JSON file contains:
  • Contract address
  • ABI (Application Binary Interface)
  • Constructor arguments
  • Deployment transaction hash
  • Block number

Connecting to Contracts

Using Ethers.js

import { ethers } from 'ethers';
import EscrowABI from './deployments/base/Escrow.json';

const provider = new ethers.providers.JsonRpcProvider(
  'https://base-mainnet.g.alchemy.com/v2/YOUR_API_KEY'
);

const escrow = new ethers.Contract(
  '0x2f121CDDCA6d652f35e8B3E560f9760898888888',
  EscrowABI.abi,
  provider
);

Using Hardhat

import { ethers } from 'hardhat';

const escrow = await ethers.getContractAt(
  'Escrow',
  '0x2f121CDDCA6d652f35e8B3E560f9760898888888'
);

Network Selection

For Development

Use Base Sepolia testnet:
  • Free testnet USDC available
  • No real value at risk
  • Faster confirmation times
  • Test attestation infrastructure

For Staging

Use Base Staging environment:
  • Production-like configuration
  • Separate witness infrastructure
  • Pre-production testing

For Production

Use Base Mainnet:
  • Real USDC transactions
  • Production attestation service
  • Governed by multisig
  • Full security measures active
Always test thoroughly on Base Sepolia before deploying to production. The testnet environment closely mirrors production but uses test tokens.
Production deployments on Base Mainnet are controlled by a multisig wallet (0x0bC26FF515411396DD588Abd6Ef6846E04470227). Direct contract modifications require multisig approval.

Build docs developers (and LLMs) love