> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/zkp2p/zkp2p-contracts/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported Networks

> Network configurations and deployment addresses for zkp2p-contracts

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

## Network Overview

| Network      | Chain ID | Status     | RPC URL                                              | Block Explorer                                        |
| ------------ | -------- | ---------- | ---------------------------------------------------- | ----------------------------------------------------- |
| Base         | 8453     | Production | `https://base-mainnet.g.alchemy.com/v2/YOUR_API_KEY` | [Basescan](https://basescan.org)                      |
| Base Sepolia | 84532    | Testnet    | `https://base-sepolia.g.alchemy.com/v2/YOUR_API_KEY` | [Base Sepolia Explorer](https://sepolia.basescan.org) |
| Base Staging | 8453     | Staging    | `https://developer-access-mainnet.base.org`          | [Basescan](https://basescan.org)                      |

## Contract Addresses

### Base Mainnet (Production)

#### Core Contracts

| Contract                  | Address                                      | Description                      |
| ------------------------- | -------------------------------------------- | -------------------------------- |
| Escrow                    | `0x2f121CDDCA6d652f35e8B3E560f9760898888888` | V1 liquidity management          |
| Orchestrator              | `0x88888883Ed048FF0a415271B28b2F52d431810D0` | V1 intent lifecycle              |
| UnifiedPaymentVerifier    | -                                            | Payment attestation verification |
| SimpleAttestationVerifier | -                                            | EIP-712 signature verification   |
| ProtocolViewer            | -                                            | Read-only state aggregator       |

#### Registries

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

#### Configuration

| Parameter               | Value                                        | Description                         |
| ----------------------- | -------------------------------------------- | ----------------------------------- |
| Intent Expiration       | 6 hours                                      | Maximum time for intent fulfillment |
| Protocol Fee            | 0                                            | Taker fee in wei                    |
| Dust Threshold          | 0.1 USDC                                     | Minimum deposit remainder           |
| Max Intents per Deposit | 200                                          | Concurrent intent limit             |
| USDC Address            | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | Official USDC token                 |
| Multisig Owner          | `0x0bC26FF515411396DD588Abd6Ef6846E04470227` | Protocol governance                 |

### Base Sepolia (Testnet)

#### Core Contracts

| Contract                  | Address                                      | Description                      |
| ------------------------- | -------------------------------------------- | -------------------------------- |
| Escrow                    | `0x6a5e11c3D87e22b828d02ee65a4e8f322BF6B97E` | V1 liquidity management          |
| Orchestrator              | -                                            | V1 intent lifecycle              |
| UnifiedPaymentVerifier    | -                                            | Payment attestation verification |
| SimpleAttestationVerifier | -                                            | EIP-712 signature verification   |
| USDCMock                  | -                                            | Test USDC token                  |

#### Configuration

| Parameter               | Value                                        | Description                         |
| ----------------------- | -------------------------------------------- | ----------------------------------- |
| Intent Expiration       | 1 hour                                       | Maximum time for intent fulfillment |
| Protocol Fee            | 0                                            | Taker fee in wei                    |
| Dust Threshold          | 0.1 USDC                                     | Minimum deposit remainder           |
| Max Intents per Deposit | 200                                          | Concurrent intent limit             |
| Witness Address         | `0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266` | Test attestation signer             |

## Network Configuration

The networks are configured in `hardhat.config.ts`:

```typescript theme={null}
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

| Network      | Spoke Pool Address                           | Status       |
| ------------ | -------------------------------------------- | ------------ |
| Base         | `0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64` | Active       |
| Base Staging | `0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64` | Active       |
| Base Sepolia | -                                            | Not deployed |

### Pyth Oracle

| Network      | Oracle Address                               | Status |
| ------------ | -------------------------------------------- | ------ |
| Base         | `0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a` | Active |
| Base Staging | `0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a` | Active |
| Base Sepolia | `0xA2aa501b19aff244D90cc15a4Cf739D2725B5729` | Active |

## Accessing Deployment Files

All deployment artifacts are stored in the `deployments/` directory:

```bash theme={null}
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

```typescript theme={null}
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

```typescript theme={null}
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

<Note>
  Always test thoroughly on Base Sepolia before deploying to production. The testnet environment closely mirrors production but uses test tokens.
</Note>

<Warning>
  Production deployments on Base Mainnet are controlled by a multisig wallet (`0x0bC26FF515411396DD588Abd6Ef6846E04470227`). Direct contract modifications require multisig approval.
</Warning>
