On February 12, 2026, Coinbase launched Agentic Wallets. Twelve days later, MoonPay launched MoonPay Agents. Two different companies, two different philosophies, both racing to become the default wallet infrastructure for autonomous AI agents.

Coinbase built a security-first architecture: keys isolated in trusted execution environments, programmable spending limits, and gasless transactions on Base. MoonPay built a fiat-first architecture: built-in payment processing, KYC-compliant onboarding, virtual bank accounts, and support for Apple Pay, Venmo, and PayPal.

This guide is the full head-to-head comparison. For how both fit into the broader wallet landscape (including Safe, raw EOA, and Lightning L402), see the Agent Wallet Comparison.


Quick Decision

Don’t have time for 15 minutes of comparison? Here are three scenarios:

“I’m building a Polymarket trading bot.”Coinbase Agentic Wallets. TEE key isolation and spending limits are non-negotiable for any agent handling real money autonomously. Gasless on Base reduces friction. Full setup guide here.

“My agent needs to accept credit card payments from users.”MoonPay Agents. Built-in fiat on-ramps (card, bank, Apple Pay, Venmo, PayPal) and KYC-compliant onboarding without building custom payment integrations.

“I need the strongest security possible for a high-value agent.”Coinbase Agentic Wallets with Safe Smart Accounts for multi-sig approval on large transactions. See the security guide.


Architecture Comparison

The fundamental difference is where security lives and how money enters the system.

COINBASE AGENTIC WALLETS

Agent ──▶ Session Key ──▶ Coinbase TEE ──▶ Base L2 ──▶ Bridge ──▶ Polygon
  │                          │
  │                   Private key NEVER
  │                   leaves the TEE
  │
  └── Spending limits enforced HERE
      (infrastructure layer, pre-chain)


MOONPAY AGENTS

Agent ──▶ MoonPay CLI ──▶ Local Wallet ──▶ Multi-Chain (Polygon, Base, ETH, SOL)
  │                          │                    ▲
  │                   Private key stored           │
  │                   on user's device          Fiat On-Ramp
  │                                          (Card/Bank/Apple Pay)
  │
  └── Spending limits? You configure them yourself.

Coinbase isolates the private key in a TEE (Trusted Execution Environment) — a hardware-secured enclave that the agent can never read from. Even if your agent is fully compromised (prompt injection, dependency backdoor, etc.), the attacker doesn’t get the private key. Spending limits are enforced at Coinbase’s infrastructure layer, before the transaction touches the blockchain.

MoonPay stores the wallet locally on the user’s device (non-custodial) and provides the financial plumbing — fiat-to-crypto conversion, KYC verification, cross-chain swaps, virtual bank accounts. The agent interacts through MoonPay CLI and the infrastructure handles payment processing. Security guardrails are your responsibility.


Master Comparison Table

Coinbase Agentic WalletsMoonPay Agents
LaunchedFebruary 12, 2026February 24, 2026
CustodyNon-custodial (TEE-isolated)Non-custodial (device-stored)
Key isolationPrivate keys in Coinbase TEE — agent never sees themPrivate keys on user’s device — agent has access
CLI toolnpx awalMoonPay CLI
Spending limitsProgrammable (session caps + per-tx limits), infrastructure-enforcedNot built-in (configure yourself)
Fiat on-rampVia Coinbase (manual)Built-in: card, bank, Apple Pay, Venmo, PayPal
Fiat off-rampVia Coinbase (manual)Built-in: bank transfer, virtual accounts (US/EU/GBP)
KYCBuilt-in KYT (Know Your Transaction) screeningFull KYC + KYB (Know Your Business) compliance
Payment protocolx402 (native, deep integration)x402 (compatible)
Chain supportBase (gasless), EVM chains, Solana plannedEthereum, Polygon, Base, Solana, more
Gas handlingGasless on Base L2Standard gas fees (user/agent pays)
Virtual accountsNoYes — US, EU, GBP bank accounts
Cross-chain swapsBridge to Polygon for PolymarketBuilt-in cross-chain swaps
Recurring buysNoYes
SDK/Skills libraryAgentKit with pre-built Skills (Fund, Send, Trade, Earn)MoonPay CLI + REST API
LLM integrationAgentKit Skills work with ChatGPT, Claude, OpenClawGeneric API (works with any LLM)
Setup time~2 minutes~5 minutes
Ecosystem50M+ x402 transactions processedEmbedded in ~500 companies
Account recoveryEmail OTP re-authDevice-based recovery
Prediction market supportPolymarket (via Base→Polygon bridge)Polymarket (Polygon native, no bridge needed)

Custody and Key Management: The Critical Difference

This is the most important section. How your agent’s private key is managed determines your security ceiling.

Coinbase: TEE Isolation

Coinbase stores private keys inside Trusted Execution Environments — hardware-secured enclaves that provide cryptographic guarantees about code execution and data isolation. The agent authenticates via email OTP and session keys, then requests transactions through Coinbase’s API. The TEE signs the transaction and broadcasts it. At no point does the agent (or the developer, or Coinbase staff) have access to the raw private key.

What this means in practice: If your agent is compromised — prompt injection, supply chain attack, exposed environment variable — the attacker can request transactions through Coinbase’s API, but they cannot extract the private key. And if spending limits are configured, even the transaction requests are bounded.

This is the architecture that would have prevented the Lobstar Wilde incident. Even with a completely confused agent, the $250K transfer would have been blocked by spending limits enforced before the transaction reached the chain.

MoonPay: Device-Stored Keys

MoonPay generates non-custodial wallets stored on the user’s device. The agent needs access to the key material to sign transactions. This is the same model as a raw EOA wallet — familiar, flexible, and the security boundary is entirely on you.

What this means in practice: Your agent (or any process with access to the device’s filesystem) can read the private key. There are no infrastructure-enforced spending limits — if the agent decides to send the entire balance, nothing stops it except your own application-level guardrails.

This is not necessarily a dealbreaker. Many production systems run with device-stored keys and application-level security. But it means you’re building your own safety net rather than inheriting one from the infrastructure.

Verdict

For autonomous agents that trade real money: Coinbase’s TEE model is categorically safer. The security boundary is at the infrastructure level, not the application level. If security is your top priority, this ends the comparison.


Fiat Rails: MoonPay’s Advantage

Where MoonPay decisively wins is in moving money between the fiat and crypto worlds.

What MoonPay Offers

  • Payment methods: Credit/debit card, bank transfer (ACH, SEPA), Apple Pay, Venmo, PayPal
  • Virtual bank accounts: US, EU, and GBP bank accounts for receiving payments
  • Fiat off-ramping: Convert crypto back to fiat and withdraw to a bank account
  • KYC/KYB compliance: Built-in identity verification that satisfies regulatory requirements
  • Recurring buys: Automated periodic crypto purchases

What Coinbase Offers

  • Manual funding: Deposit USDC through the Coinbase platform or via direct transfer
  • KYT screening: Automatic transaction risk scoring (Know Your Transaction, not full KYC)
  • No built-in fiat on-ramp: You need to fund through Coinbase’s separate consumer product

When Fiat Rails Matter

If your agent needs to:

  • Accept payments from end users (e.g., a service that charges customers in USD and trades on their behalf)
  • Convert between fiat and crypto programmatically
  • Receive bank deposits directly
  • Handle multi-currency operations (USD, EUR, GBP)

…then MoonPay’s infrastructure saves you from building or integrating a separate payment stack.

If your agent only operates in the crypto-native world (receiving USDC, trading on prediction markets, managing a DeFi portfolio), you don’t need fiat rails and Coinbase’s security model is the better choice.


Prediction Market Compatibility

Both can power a Polymarket trading bot, but the paths differ.

Polymarket with Coinbase

Polymarket runs on Polygon. Coinbase Agentic Wallets are native to Base. This means you need to bridge assets:

  1. Fund wallet with USDC on Base (gasless)
  2. Bridge USDC from Base to Polygon (~2-5 minutes, ~$0.10-0.50 in fees)
  3. Approve USDC for Polymarket’s CTF Exchange contract
  4. Trade via py_clob_client or Polymarket CLI

The bridging step adds latency and complexity but only happens once when funding. After that, trading is on Polygon natively. See the Coinbase Agentic Wallets Guide for the full bridging workflow.

Polymarket with MoonPay

MoonPay supports Polygon natively, so there’s no bridging step:

  1. Fund wallet with USDC via fiat on-ramp (card/bank/Apple Pay) — MoonPay handles the fiat→crypto conversion
  2. Approve USDC for Polymarket’s CTF Exchange contract
  3. Trade via py_clob_client or Polymarket CLI

The fiat on-ramp is smoother, but you lose TEE key isolation and infrastructure-enforced spending limits.

Kalshi

Kalshi is a centralized, CFTC-regulated exchange that uses USD. Neither Coinbase Agentic Wallets nor MoonPay Agents is needed for Kalshi — you fund your account with a bank transfer and trade via API keys. See the Kalshi API Tutorial.


Code Comparison: Same Operation, Both SDKs

Creating a Wallet

Coinbase Agentic Wallets:

# Install and create wallet in one command
npx awal setup
# Outputs: wallet address, session details
# Key is generated inside TEE — you never see it

MoonPay Agents:

# Install MoonPay CLI
npm install -g @moonpay/cli

# Create a new agent wallet
moonpay agents wallet create --network polygon
# Outputs: wallet address, private key stored locally

Sending USDC

Coinbase Agentic Wallets:

from agentkit import AgentkitClient

client = AgentkitClient()
# Spending limits enforced automatically
tx = client.send(
    to="0xRecipient...",
    amount="10.00",
    token="USDC",
)
# If this exceeds per-tx limit, it's rejected
# before hitting the blockchain

MoonPay Agents:

import requests

MOONPAY_API = "https://api.moonpay.com/agents/v1"

# No built-in spending limits — add your own
resp = requests.post(
    f"{MOONPAY_API}/wallet/send",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "to": "0xRecipient...",
        "amount": "10.00",
        "token": "USDC",
        "network": "polygon",
    }
)

Funding from Fiat

Coinbase Agentic Wallets:

# Manual: transfer USDC from your Coinbase account
npx awal fund 50  # Transfers $50 USDC to your agentic wallet

MoonPay Agents:

# Programmatic: generate a fiat on-ramp link
resp = requests.post(
    f"{MOONPAY_API}/onramp/create",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "currency": "usdc",
        "network": "polygon",
        "amount": "50.00",
        "payment_method": "card",  # or "bank", "apple_pay", "venmo"
    }
)
checkout_url = resp.json()["url"]
# User completes KYC + payment at this URL
# Funds appear in agent wallet after processing

The Hybrid Architecture

For production agents that need both strong security AND fiat payment processing, use both together:

User pays with card/bank
         │
         ▼
┌─────────────────┐     USDC transfer     ┌─────────────────────┐
│  MoonPay Agents  │ ──────────────────▶  │  Coinbase Agentic    │
│  (Fiat On-Ramp)  │                      │  Wallets (Trading)   │
│                  │                      │                      │
│  • Accept fiat   │                      │  • TEE key isolation  │
│  • KYC/KYB       │                      │  • Spending limits    │
│  • Convert→USDC  │                      │  • Trade Polymarket   │
└─────────────────┘                      └─────────────────────┘

This pattern is common in traditional fintech: one service handles payment acceptance (Stripe, Square), another handles the core business logic. The same separation works here. MoonPay handles the messy fiat world; Coinbase handles the high-security trading world.


When to Choose Each

ScenarioChooseWhy
Prediction market trading botCoinbaseTEE key isolation + spending limits are critical for autonomous trading
Agent that accepts user paymentsMoonPayBuilt-in fiat on-ramp with card, bank, Apple Pay, Venmo
High-value treasury managementCoinbase (+ Safe for multi-sig)TEE + spending limits + optional multi-agent approval
Multi-currency agent (USD + EUR + crypto)MoonPayVirtual bank accounts in US, EU, GBP
Agent marketplace / commerce platformBothMoonPay for payment acceptance, Coinbase for secure trading wallet
Quick prototype / hackathonCoinbase2-minute setup with npx awal, gasless on Base
Compliance-heavy use caseMoonPayFull KYC/KYB compliance built-in
After reading about Lobstar WildeCoinbaseInfrastructure-enforced spending limits would have prevented it

Further Reading