MoonPay — the company that processes crypto payments for 500 enterprises and 30 million users — launched MoonPay Agents on February 24th. Non-custodial wallets for AI agents. Fiat on-ramps. Cross-chain swaps. x402 compatibility. The whole stack.
I've been building Agent Wallet SDK for months. So when a $3.4 billion company ships a competing product, you pay attention.
Here's my honest breakdown.
What MoonPay Got Right
Credit where it's due. They nailed several things:
The full lifecycle. Fiat to crypto to agent execution to off-ramp back to fiat. Most agent wallet solutions handle one piece. MoonPay handles the entire pipeline. That's genuinely useful for developers who don't want to stitch together five services.
The CLI-first approach. MoonPay CLI lets you spin up a wallet, fund it, and start trading from a terminal. That's developer-friendly in a way their consumer products haven't always been.
The scaling vision. They're explicitly designing for thousands-to-millions of agents, not single-agent demos. That matters.
Where It Falls Apart
Here's the thing MoonPay's press release buries: the word "non-custodial" is doing a lot of heavy lifting.
Your agent's wallet is "non-custodial" — but the funding rails aren't. Every dollar that enters or exits goes through MoonPay's infrastructure. Fiat on-ramp? MoonPay. Swaps? MoonPay. Off-ramp? MoonPay. Your agent holds the keys, sure. But MoonPay controls the pipes. If they go down, pause your account, or change their terms — your agent is financially paralyzed.
KYC is required. "If the underlying service requires verification, the human just needs to complete KYC." That's from their own announcement. For crypto-native agent workflows where the whole point is programmatic autonomy, this is friction that breaks the model.
Closed source. You can't audit what you can't read. MoonPay Agents runs on their proprietary infrastructure stack. You're trusting their implementation of "non-custodial."
The Comparison That Matters
| MoonPay Agents | Agent Wallet SDK | |
|---|---|---|
| Key custody | Agent holds keys, MoonPay controls all rails | Agent holds keys, no vendor dependency |
| Source code | Closed | Open source (npm: agentwallet-sdk) |
| Fiat on-ramp | Built-in (Apple Pay, Venmo, bank) | Not built-in (use any ramp) |
| KYC required | Yes | No (crypto-native) |
| Spend limits | Not mentioned | On-chain enforced (per-tx + daily) |
| Cross-chain | Swaps via MoonPay | CCTP V2 bridge + Uniswap V3 swaps |
| x402 support | Yes | Yes |
| Architecture | CLI + MoonPay infra | ERC-6551 token-bound accounts |
| Vendor lock-in | High (all rails go through MoonPay) | None (pure on-chain) |
| Test coverage | Unknown | 266 tests |
| What breaks if vendor disappears | Everything | Nothing |
The Architecture Difference
MoonPay's model:
Agent -> MoonPay CLI -> MoonPay API -> Blockchain
^ single point of failure
Agent Wallet SDK:
Agent -> SDK -> Smart Contract -> Blockchain
^ no intermediary, on-chain limits enforce safety
With Agent Wallet, your agent's spending limits are enforced by the smart contract itself — not by an API that can be changed, rate-limited, or shut down. Under $25? Auto-approved on-chain. Over $500/day? Queued for owner approval on-chain. No API call needed. No vendor in the loop.
import { createWallet, setSpendPolicy, agentExecute } from 'agentwallet-sdk';
// Agent spends freely within on-chain limits
const result = await agentExecute(wallet, {
to: '0xVENDOR',
value: 15_000000n, // $15 USDC — auto-approved
token: USDC_ADDRESS,
});
// No MoonPay. No API key. No KYC. Just math.
When to Use What
Use MoonPay Agents if:
- You need fiat on/off-ramps and don't want to build that yourself
- Your users are already in MoonPay's ecosystem
- You're building a consumer product where KYC is expected anyway
- You trust MoonPay's infrastructure and don't need to audit the code
Use Agent Wallet SDK if:
- Your agent needs to operate without any single vendor dependency
- You're building crypto-native — fiat ramps are someone else's problem
- You want on-chain spending limits that no API can override
- You need to read and audit every line of code your agent depends on
- Censorship resistance matters to your use case
The Bottom Line
MoonPay built a good product for developers who want convenience and don't mind the dependency. They've got the brand, the enterprise clients, and the fiat rails we don't have.
But "non-custodial" means something specific. It means no one — not even the infrastructure provider — can prevent your agent from transacting. By that definition, MoonPay Agents is non-custodial at the key layer and custodial at every other layer.
Agent Wallet SDK is non-custodial all the way down. That's the tradeoff. You give up fiat convenience. You gain actual sovereignty.
For autonomous agents that need to operate independently — the kind that run 24/7, execute strategies, and can't afford a vendor outage at 3 AM — that tradeoff matters.
npm install agentwallet-sdk — GitHub | Docs
Built by the team behind OpenClaw. 266 tests. Zero vendor dependencies. Internal AI-Assisted Review completed.
Top comments (0)