A USDC wallet for every AI agent.
Non-custodial. Native USDC on Base. Five minutes from signup to first wallet.

Every agent you create on Blockchain0x gets its own dedicated wallet on Base. The wallet is non-custodial - you connect an existing EVM wallet via RainbowKit or Reown, and we never see your private keys. Your agent's funds stay under your control at all times.
The wallet is USDC-only today. We chose USDC because it is the dominant stablecoin in the AI agent ecosystem, it is native on Base (not bridged), and it gives your agent's payment experience zero price volatility. No wondering whether $10 of value will still be $10 tomorrow.
- Receive USDC from humans or other agents at a permanent address
- Track real-time balance in the dashboard
- Get email and webhook notifications on every received payment
- Export full transaction history as CSV or JSON
- View every transaction on Basescan with one click
- Set per-agent spending limits that the API enforces
- Hold funds we control. We never have your private keys.
- Trade or speculate. This is a payment layer, not a trading platform.
- Move funds between agents automatically. Every transfer is user-initiated.
How it compares to MetaMask or Phantom
A raw crypto wallet gives you an address and a balance. That is it. Blockchain0x adds the things you actually need to run an agent business: a public profile, spending controls, transaction logs, webhooks, an API, verification badges, and a billing relationship with you for the SaaS layer.
Why Base, and not Ethereum, Solana, or Polygon.
Three reasons we picked one chain to start, and how the adapter architecture means the choice does not lock you out.
| Dimension | Base (today) | Ethereum mainnet | Solana | Polygon |
|---|---|---|---|---|
| Native USDC (Circle-issued, not bridged) | Yes | Yes | Yes | Yes (since 2024) |
| Typical gas per USDC transfer | <$0.01 | $1-10+ | <$0.001 | ~$0.01 |
| EVM compatibility (wallets, SDKs, libraries) | Yes | Yes | No (different runtime) | Yes |
| Coinbase Smart Wallet support | Yes (first-class) | Yes | No | Limited |
| x402 / AP2 protocol support today | Yes | Yes | Emerging | Partial |
| Confirmation speed | Fast (seconds) | Slower | Fast | Fast |
| Blockchain0x support | Live (mainnet + Sepolia) | Roadmap | Roadmap | Roadmap |
1. Native USDC, not bridged
Bridged stablecoins introduce a second issuer in the trust chain and create unwind risk when bridges get exploited. Circle issues USDC natively on Base, the same way they do on Ethereum mainnet. Your agent's balance is Circle-backed dollars, not synthetic IOUs of dollars. For payment use cases, this matters - chargebacks do not exist in crypto, so the integrity of the asset is the only protection your buyer has.
2. Costs that make per-call billing actually work
A $0.10 payment makes no economic sense if the gas to settle it costs $1. Base transfers cost fractions of a cent, so agent-shaped pricing (charge per API call, per tool invocation, per inference) is feasible. Ethereum mainnet kills the entire premise of micropayments under $5 per transaction. Solana is even cheaper than Base, but its non-EVM runtime is a non-starter for most agent frameworks today.
3. EVM compatibility means everything just works
Every wallet your buyers already have (MetaMask, Coinbase Wallet, Rainbow, Phantom-via-Solana-toggle, Frame, Safe) speaks EVM. Every signing library, every block explorer, every accounting tool, every analytics provider speaks EVM. Picking Base means we inherited the entire Ethereum tooling ecosystem on day one without writing or supporting any of it. Solana would have meant a parallel investment in tooling that does not yet exist for agent payments.
The adapter architecture means adding a chain later would not change the public API, the webhook contracts, the SDKs, or this page - your integration code would stay the same. Today that surface is Base mainnet and Base Sepolia; other chains are roadmap, not live, so build against Base now and you are not stuck if more arrive.
What happens when you click "Connect wallet".
The flow is the standard EVM connect, with one extra step that pins the network to Base.
- 01
Pick a wallet provider
RainbowKit pops up a modal listing every EVM wallet we support: Coinbase Wallet, MetaMask, Rainbow, WalletConnect (covers 200+ mobile wallets), Frame, Safe. If you do not have any of them, RainbowKit's Coinbase Smart Wallet option creates one in 10 seconds with no seed phrase.
- 02
Authorize the connection
Your wallet asks you to confirm. We get a read-only signature proving you control the address. We do not get spend permission, we do not get key material, we do not get anything except the address. You can revoke the connection from your wallet's settings at any time.
- 03
Network locks to Base
If your wallet is currently on Ethereum mainnet or another chain, our app prompts you to switch to Base. The wallet handles the switch via wallet_switchEthereumChain; on Coinbase Smart Wallet, Base is already selected. We do not allow connecting on the wrong network because a USDC payment on the wrong chain would be lost.
- 04
Agent metadata gets attached
We store the wallet address against the agent record in our database. From this point on, every public agent page, payment request, transaction log entry, and webhook references that address. Disconnecting and reconnecting a different wallet is allowed; metadata stays, balance moves with whichever address is currently connected.
The four events your wallet fires.
Money landing, money leaving, a wallet coming online, and a test ping. Each is a signed webhook to your endpoint.
payment.receivedUSDC landed in one of your agent wallets - the transfer was included in a Base block. We fire payment.received with the transaction hash, so your handler can do the work the payment was for.
payment.sentA payment your agent sent settled on chain. We fire payment.sent with the transaction hash, so you can reconcile what the agent spent against its spend permission.
wallet.deployedAn agent's smart wallet was deployed on Base. Useful when you provision wallets programmatically and want to know the moment one is ready to receive.
webhook.testA test delivery you trigger from the dashboard, so you can confirm your endpoint verifies the signature correctly before any real money moves.
Every payload is signed with HMAC-SHA256 using your webhook secret; verify it with webhooks.verify from @blockchain0x/node (or the documented HMAC in any language). The signature is in the X-Blockchain0x-Signature header. If you miss a delivery, reconcile by fetching the transaction directly with GET /v1/transactions/{id}.
What we control, and what we deliberately do not.
Every payment system has a trust boundary. Ours is drawn on purpose to give you control and us the smallest possible attack surface.
- Private keys (in your connected wallet, never on our servers)
- USDC balance (in your wallet's onchain address)
- Per-agent spend policies (you set, we enforce at the API)
- API key rotation (you can rotate per agent any time)
- Whether the public page is indexable or hidden
- The metadata DB (agent name, slug, public-page settings)
- The chain monitor that watches Base for incoming payments
- Webhook signing secrets (rotatable per agent)
- The hosted /pay/* page rendering
- Stripe billing relationship for subscriptions and transaction fees
- If Blockchain0x is compromised: attacker gets read-access to your agent metadata and the ability to set spend caps. They cannot move your USDC because they do not have your wallet's keys. They could potentially manipulate webhook signing secrets; you would detect this when payloads stopped validating.
- If we go out of business: your USDC keeps working at the same wallet address. You lose the public page, the API, and the dashboard, but the funds and the chain history are yours.
- If you lose your wallet: we cannot recover it. Standard wallet recovery rules apply (seed phrase, hardware wallet backup, smart-wallet social recovery).