Most x402 endpoints take one token on one chain. MadeOnSol's Robinhood Chain endpoints take two — an agent can pay in USDG on Robinhood Chain or USDC on Solana, and it picks whichever it already holds. Same endpoint, same data, two payment rails. This post explains how that works and why it's built this way.
The mechanism: the accepts[] array
When an agent calls an x402 endpoint without paying, the server replies 402 Payment Required with a challenge. That challenge contains an accepts[] array — a list of acceptable payment methods, each describing a scheme, a network, an asset, an amount, and a destination.
Nothing in the standard says that list has to be one entry. So our Robinhood Chain endpoints advertise two:
{
"x402Version": 2,
"accepts": [
{ "scheme": "exact", "network": "eip155:4663", "asset": "USDG (Robinhood Chain)", "amount": "40000", "payTo": "0x…" },
{ "scheme": "exact", "network": "solana:…", "asset": "USDC (Solana)", "amount": "5000", "payTo": "…" }
]
}
The agent reads the list and pays the leg it can satisfy. An EVM-native agent holding USDG signs the Robinhood Chain leg; a Solana-native agent holding USDC signs the Solana leg. One resource, two chains, the client's choice.
Why two legs, across two virtual machines
This isn't multichain for its own sake. The two legs serve two different agents:
- USDG on Robinhood Chain (EVM) is the native option. If your agent already operates on Robinhood Chain, paying in the chain's dominant stablecoin — with no bridging, no second wallet — is the frictionless path. It settles via EIP-3009
transferWithAuthorization (a gasless signature; the agent pays no gas).
- USDC on Solana (SVM) is the fallback. A huge share of x402-native agents live on Solana and hold USDC. Rather than force them to bridge to Robinhood Chain just to read RHC data, we let them pay on the rail they already use.
What makes this genuinely uncommon is that the two legs span different virtual machines — an EVM signature scheme (EIP-712 / EIP-3009) on one leg, and Solana's SVM payment scheme on the other, advertised on a single HTTP resource. The agent doesn't care; it just signs the one it can.
Pricing is per leg
The two legs don't have to cost the same, and ours don't. The USDG-on-Robinhood-Chain leg carries a flat $0.04 minimum — because we self-relay that settlement and pay the on-chain gas ourselves (measured around $0.018 per settle). The USDC-on-Solana leg keeps the lower base price of $0.005–$0.02, because that leg's gas is fee-sponsored by the facilitator. Same data, priced to each rail's economics. The agent sees both numbers in the challenge and decides.