NERONERO 402
Core concepts

Networks and tokens

The chains and assets NERO 402's reference implementation supports.

The aa-native scheme is chain-agnostic by design. Any network with an ERC-4337 stack (EntryPoint, bundler, paymaster) can host a settlement contract and serve x402 payments. The reference implementation currently targets two networks.

NERO Chain mainnet

PropertyValue
CAIP-2eip155:1689
Chain ID1689
RPC URLhttps://rpc.nerochain.io
Bundler RPChttps://bundler-mainnet.nerochain.io
Paymaster RPChttps://paymaster-mainnet.nerochain.io
EntryPoint0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 (v0.6)
SimpleAccountFactory0x9406Cc6185a346906296840746125a0E44976454
SettlementContract (proxy)0x5eCfc64f2339992668f555918674B604F97B412D
Explorerhttps://neroscan.io

Mainnet allowlisted assets

SymbolAddressDecimalsEIP-3009?
USDC.e0x97eec1c29f745dc7c267f90292aa663d997a601d6
USDC.arb0x8712796136Ac8e0EEeC123251ef93702f265aa806
USDT0xff13a7a12fd485bc9687ff88d8ae1a6b655ab4696

NERO Chain testnet

PropertyValue
CAIP-2eip155:689
Chain ID689
RPC URLhttps://rpc-testnet.nerochain.io
Bundler RPChttps://bundler-testnet.nerochain.io
Paymaster RPChttps://paymaster-testnet.nerochain.io
EntryPoint0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 (v0.6)
SimpleAccountFactory0x9406Cc6185a346906296840746125a0E44976454
SettlementContract (proxy)0x925dbba44570683ac8da99be08bc5ece8cf5a8c6
Faucethttps://app.testnet.nerochain.io/faucet
Explorerhttps://testnet.neroscan.io

Testnet allowlisted asset

SymbolAddressDecimalsNotes
DEMO-USDT0x9a2eabdecda3eae051bca75fbe71a3dbdb35f9d46Public mint(address, uint256) for self-faucet

DEMO-USDT exposes a public mint() so any agent can self-faucet without a centralized drip. The examples/learn-nero/ script auto-mints on first run if the SCW balance is below the call cost, gas-sponsored.

EntryPoint version

NERO mainnet uses ERC-4337 v0.6, confirmed via eth_supportedEntryPoints on the bundler. paymasterAndData is a single bytes value, not the split form introduced in v0.7. The SDK targets v0.6; agents using a v0.7-shaped UserOperation will be rejected at verification with invalid_inner_payload.

Adding a network

Adding a new chain requires:

  1. An ERC-4337 deployment on the chain (EntryPoint, bundler, paymaster).
  2. A fresh SettlementContract deployment with the chain's allowlisted assets.
  3. The facilitator's configuration extended with the new network's RPCs and contract address.

The wire format treats the network identifier as opaque (CAIP-2). A facilitator handling multiple networks tracks one contract address per network.

Adding a token

Tokens are added to the settlement contract's allowlist by the contract's owner. The current owner is multisig-controlled; a new asset listing involves a multisig transaction calling setTokenAllowed(token, true).

For testing, deploy a new token on testnet, give it a public mint(), and add it to the testnet contract's allowlist. The reference DEMO-USDT is the canonical example.

On this page