FAQ
Common questions about NERO 402, the aa-native scheme, and the reference implementation.
What is NERO 402?
A reference implementation of an additional x402 settlement scheme called aa-native. Where the upstream exact scheme requires the paying account to be an EOA capable of signing EIP-3009, aa-native lets ERC-4337 smart contract wallets pay merchants directly. A paymaster sponsors the gas, so the agent's SCW does not need to hold the chain's native asset.
How does NERO 402 differ from upstream x402?
The wire envelope is the same; only the inner payload differs per scheme. NERO 402 ships its own facilitator that supports both exact and aa-native, plus an SDK that produces and consumes both. Anywhere the exact scheme is involved, NERO 402's facilitator interoperates with unmodified upstream @x402/fetch clients.
Do I need a NERO Chain native balance?
For aa-native: no. The paymaster sponsors UserOp gas, including the SCW's own first-time deployment. The agent only ever holds the settlement asset (USDT, USDC, or DEMO-USDT on testnet).
For exact: yes. The paying EOA must hold native gas. (Strictly speaking, the facilitator's submitter EOA is what pays; but if the agent ever needs to do anything else on chain, it needs gas.)
Is the settlement contract audited?
Not as of this version. The v1.0 release of the SDK packages is conditional on a clean external audit. Mainnet deployments to date have processed sub-dollar quantities of USDT in narrowly scoped tests; do not route significant production traffic through the pre-audit contract.
Can I run a self-hosted facilitator?
Yes. The reference facilitator is at apps/facilitator/. It runs on Node 20+, uses Hono, and is small enough to deploy on Vercel Functions, Fly.io, Railway, or any Node host. A self-hosted facilitator handles its own paymaster relationship and bears the gas cost for aa-native settlements it submits.
Can my agent pay a merchant on a different x402 facilitator?
If the merchant uses exact, yes — @nerochain/x402-client is wire-compatible with the upstream V2 spec. If the merchant requires aa-native, the merchant's facilitator must support aa-native. Currently only the NERO 402 facilitator does; this will broaden as the spec graduates upstream.
What chains are supported?
NERO mainnet (eip155:1689) and NERO testnet (eip155:689). Adding a chain requires a fresh SettlementContract deployment on that chain plus extending the facilitator's configuration. The scheme itself is chain-agnostic.
What tokens can a merchant accept?
Whatever is on the settlement contract's allowlist. On mainnet that's USDT and USDC. On testnet it's DEMO-USDT (a public-mint clone for self-faucet). Adding a token is an owner action on the contract.
How do I get a paymaster API key?
From the NERO AA Platform dashboard. The same key works against both testnet and mainnet projects.
What happens if a UserOp fails on chain?
The facilitator's /settle returns errorCode: "user_op_failed" with the surfaced revert reason. The requestHash is released from the in-flight registry, so the agent can retry (typically with a new clientNonce, since the failure may have been timing-sensitive).
What if the same requestHash is settled twice?
The on-chain settlement contract reverts the second call with AlreadySettled(bytes32). The off-chain replay registry rejects it earlier with errorCode: "replay" to save the bundler round-trip. Only the on-chain check is authoritative.
How do I refund a payment?
You don't, in v1. The settlement contract has no refund function. A successful settlement is final. Refund logic, if you need it, lives at the application layer — for example, a merchant SDK that holds funds and only forwards them after the response is delivered successfully.
Can I pay multiple merchants in one HTTP request?
No. One HTTP request, one payment. To pay multiple merchants, make multiple HTTP requests. The reference SDK does not batch across merchants because each merchant's requestHash is independent.
Why ERC-4337 v0.6 and not v0.7?
NERO Chain's bundler currently runs v0.6. The SDK targets v0.6's UserOperation shape (paymasterAndData is a single bytes, not the split form introduced in v0.7). When the chain upgrades, the SDK will follow.
Is NERO 402 a new payment standard?
It's an extension to x402 V2. The wire envelope is unchanged; only the aa-native scheme name and inner payload are new. The path to upstream standardization runs through coinbase/x402#639.
Where do I report bugs or feature requests?
The repo is at github.com/nerochain/nero-x402. Issues and PRs are open.