Overview
Meridian supports multiple EVM networks with different levels of functionality for each network. This page documents the current network support and capabilities.Contract Addresses
Mainnet
Ethereum Note
Ethereum uses native USDC with the EIP-712 domainUSD Coin / 2. Same-chain
payments and Across routes are supported. The canonical proxy address is the
same as on other mainnets, but Ethereum runs the V6.1 facilitator
implementation.
Ethereum relays also have a profitability guard because L1 gas can exceed the
facilitator fee. Meridian uses the current recommended EIP-1559 fees and a
Chainlink ETH/USD price to compare the facilitator’s fee with the cost of
100,000 gas. If the gas or price read fails, or the estimated cost is higher
than the fee, settlement returns HTTP 503 without broadcasting. Retry after
the response’s Retry-After interval; other networks do not use this guard.
Non-EIP-3009 Token Note
Chains whose payment token does not natively support EIP-3009 use Permit2 viax402ExactPermit2Proxy 0x402085c248EeA27D92E8b30b2C58ed07f9E20001. This is
the canonical exact Permit2 proxy from the official
x402 repository, deployed
at the same address on supported EVM chains. This includes MegaETH, BSC, and
BOT chain testnet and mainnet.
For these integrations:
- Keep
payToset to the facilitator0x8E7769D440b3460b92159Dd9C6D17302b036e2d6 - Set
paymentRequirements.assetto the ERC-20 token address the buyer will pay with - Use Permit2
0x000000000022D473030F116dDEE9F6B43aC78BA3as the approval target - Use
x402ExactPermit2Proxy0x402085c248EeA27D92E8b30b2C58ed07f9E20001as the Permit2 spender
Upto Scheme Note
Theupto scheme (usage-based pricing, buyer signs a maximum and the seller
settles the actual amount) is available on every supported network, since
it always settles via Permit2. Sign with x402UptoPermit2Proxy
0x402015c795ecb48A360bDC6e35a2EaEb313a0002 as the Permit2 spender (same
address on every chain) and include the facilitator field in the witness. See
Payment Types for details.
Tempo Note
Tempo has no native gas token. Transaction fees are paid in TIP-20 stablecoins such as USDC.e. Meridian uses USDC.e at0x20C000000000000000000000b9537d11c60E8b50 for payment flows. The public RPC is https://rpc.tempo.xyz, the WebSocket endpoint is wss://rpc.tempo.xyz, the explorer is https://explore.tempo.xyz, and Circle CCTP/Gateway is not currently supported.
Testnet
Fluent testnet currently uses a mock USDC deployment, including function
mint(to, amount) to receive test USDC.
Arc Testnet Note
Arc Testnet uses USDC as the native gas token. Meridian uses the ERC-20 USDC interface at0x3600000000000000000000000000000000000000 for payment flows. The public RPC is https://rpc.testnet.arc.network, the WebSocket endpoint is wss://rpc.testnet.arc.network, the explorer is https://testnet.arcscan.app/, and the Circle CCTP/Gateway domain is 26.
Solana (SVM)
Meridian settles USDC payments on Solana through themeridian_x402 program
rather than an EVM facilitator. Payments are same-chain only (no Across
cross-chain routing on Solana in this version).
The program is live on both
solana and solana-devnet. Do not
hardcode the program ID or the fee-payer pubkey — read everything at runtime
from GET /v1/solana/facilitator?network=<network>, which returns
{ network, facilitator, programId, configPda } plus the on-chain program
config (usdcMint, treasury, treasuryToken, treasuryFeeBps, paused)
when the chain is reachable. Buyers need no Anchor, no IDL, and no on-chain
config reads — this one call plus @solana/web3.js / @solana/spl-token is
enough. For these integrations:
- Set
paymentRequirements.assetto the USDC mint address - Set
paymentRequirements.payToto the seller’s recipient wallet (owner, not a token account), matching the org’s configured Solana recipient - Set
paymentRequirements.extra.feePayerto the facilitator pubkey; the buyer signs the settlement transaction and the facilitator co-signs as fee payer - Ensure all USDC associated token accounts exist before settlement
Network Monitoring
- Monitor network status via
/v1/supportedendpoint - Implement fallback logic for network outages
- Cache network information with appropriate TTL