Brian Armstrong dropped a post on X yesterday that landed differently than most CEO takes: "Very soon, there are going to be more AI agents than humans making transactions. They can't open a bank account, but they can own a crypto wallet."
Hours later, CZ followed up with an even bolder claim - AI agents will make a million times more payments than humans, and they'll use crypto to do it.
They're both right. But they're also both selling you their custodial platforms.
The Problem Nobody Wants to Talk About
Here's what Armstrong and CZ aren't telling you: their solutions - Coinbase Agentic Wallets, Binance's infrastructure - are custodial. Your agent's keys live on their servers. Your agent's transaction history flows through their compliance pipelines. Your agent's spending limits are set by their risk teams, not yours.
That works fine when you're building a demo. It falls apart when you're running an autonomous agent that needs to make 10,000 micro-payments per day across 17 chains without asking permission from a centralized gatekeeper.
Think about what an AI agent actually needs:
- Spend autonomously up to configurable limits
- Queue anything above those limits for human approval
- Bridge assets across chains without manual intervention
- Pay for API calls, compute, and data access in real time
- Maintain a portable on-chain identity tied to its wallet
None of that requires a custodial intermediary. All of it requires open-source rails.
What Open-Source Agent Wallets Actually Look Like
We built agentwallet-sdk to solve this specific problem. It's at v4.0.5 on npm right now, and the design philosophy is simple: the agent holds the keys. The human sets the guardrails.
The architecture uses ERC-6551 token-bound accounts. Your agent's wallet is an NFT - portable, auditable, recoverable. You set a SpendingPolicy that defines per-transaction limits, daily caps, and approved token lists. Anything within policy executes instantly. Anything outside gets queued.
import { createAgentWallet, setSpendPolicy } from 'agentwallet-sdk';
const wallet = await createAgentWallet({
owner: ownerAddress,
chain: 'base',
});
await setSpendPolicy(wallet, {
perTransaction: parseEther('0.01'),
dailyCap: parseEther('0.5'),
allowedTokens: [USDC, WETH],
});
That's it. Your agent can now spend up to 0.01 ETH per transaction and 0.5 ETH per day without asking anyone. Anything larger queues for your signature.
Why Non-Custodial Matters for Autonomous Systems
Custodial wallets have a fundamental architectural problem for AI agents: they introduce a single point of failure that's also a single point of censorship.
If Coinbase decides your agent's behavior looks suspicious - maybe it's making too many transactions, or interacting with a contract their compliance team hasn't vetted - they can freeze your agent's wallet. Your autonomous system just became someone else's decision.
With non-custodial rails, the worst case is a smart contract bug. That's auditable, fixable, and doesn't depend on a company's policy decisions.
There's also the practical matter of latency. Custodial APIs add network hops. When your agent needs to execute a time-sensitive arbitrage or pay for streaming data access, every millisecond counts. On-chain transactions with local key signing are faster than round-tripping through a custodial API.
x402 and the Machine Payment Standard
The x402 protocol is how agents actually pay for things on the internet - HTTP 402 responses with payment parameters that agents can parse and settle autonomously. It's the plumbing that connects agent wallets to the services they consume.
agentwallet-sdk ships with native x402 support. Your agent receives a 402 response, checks the price against its spending policy, and settles the payment - all without human involvement. This is how agents buy compute on Akash, pay for data feeds, and settle service-to-service invoices.
Circle just launched USDC Nanopayments on testnet with x402 compatibility. That's validation of the protocol direction, and agentwallet-sdk already supports it.
The Agent Identity Layer
Payments are only half the story. The other half is identity - how does a service know which agent is making a request, and whether that agent is trustworthy?
ERC-8004 proposes three on-chain registries for this: Identity (who is this agent?), Reputation (what's this agent's track record?), and Validation (can this agent's claims be independently verified?). agentwallet-sdk's ERC-6551 wallets map directly to ERC-8004 identities - the same NFT that holds the agent's funds also serves as its on-chain identity handle.
This is where the open-source advantage compounds. When your agent's identity and funds are both on-chain, any service can verify both without trusting a centralized provider. No API keys from Coinbase. No OAuth tokens from Binance. Just on-chain state that anyone can read.
What's Next
Armstrong and CZ are right about the direction - agents will dominate transaction volume. But the infrastructure that powers this shouldn't be owned by two companies.
If you're building agents that need to transact, check out agentwallet-sdk on npm. It's open source, non-custodial, and built for the world where agents outnumber humans in every payment channel.
The code is the argument. Read it.
This article was written with AI assistance. All technical claims, code, and architectural decisions were validated by the author.
Top comments (0)