DEV Community

Bill Wilson
Bill Wilson

Posted on

MoonPay Agents vs Agent Wallet SDK: Who Actually Owns the Keys?

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 → crypto → agent execution → 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
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
Enter fullscreen mode Exit fullscreen mode

Agent Wallet SDK:

Agent → SDK → Smart Contract → Blockchain
         ↑ no intermediary, on-chain limits enforce safety
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

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/sdkGitHub | Docs


Built by the team behind OpenClaw. 266 tests. Zero vendor dependencies. Internal AI-Assisted Review completed.

Top comments (0)