Skip to content

Bruno

Composable x402

x402 makes a payment one HTTP round trip: a 402 names the price, the client signs, the server settles and answers. For a fraction of a cent of API access, settled by a facilitator on a fast L2, that is the right shape. Pay for something on chain with it, something worth more than the request it rides on, and the shape stops fitting. Not because of a bug: because of where x402 puts the payment.

ERC-4337's API key problem

ERC-4337 set out to give Ethereum smart accounts without changing the protocol. A user signs an operation, any bundler picks it up, and the bundler pays the gas and is paid back from the account. Operations were to travel through a shared mempool, so that no single operator could decide what gets included. It was meant to be as open as sending a transaction.

Today, using a bundler starts with signing up. You create an account with a vendor, get an API key, and put it in the bundler URL. The SDK you install is usually the same vendor's, and its examples point at its own endpoint. If your users have no ETH, which is most users, you also need the vendor's paymaster. That means a deposit, a spending policy and a monthly plan.