openclaw-cdp-wallet-skill
July 5, 2026 · View on GitHub
A minimal Agent Skill that gives an autonomous AI agent a Coinbase CDP server wallet (v2) and five operations: address, balance, send-usdc, history, and pay-x402. Base mainnet by default; supports any EVM network for x402 payments. USDC for direct sends; the resource server's choice for x402 settlements.
New to the concept? See what AI agent donations are and how zooidfund implements them.
Works with OpenClaw, Hermes Agent, Claude Code, and any runtime that follows the agentskills.io standard.
What this is for
If you want an OpenClaw or Hermes agent running on Railway / Fly / Hetzner / your laptop to be able to spend USDC autonomously — without you handing it a private key, and without an interactive OTP login on every container restart — this skill is the bridge. Wallet keys live in Coinbase's TEEs; the skill addresses the wallet by name (getOrCreateAccount), so the same env vars resolve to the same wallet across deploys.
For donor agent operators, this provides the wallet layer for unattended USDC payments.
What it isn't
- Not a swap tool. Not a DeFi tool. Not a portfolio optimizer.
- Not self-custodial. The operator trusts Coinbase's TEE infrastructure with the keys.
- Not a Solana wallet. Base only.
The surface is intentionally small so it can be reviewed quickly and so failure modes are obvious.
Install (OpenClaw)
git clone https://github.com/Ales375/openclaw-cdp-wallet-skill.git ~/.openclaw/skills/cdp-wallet
cd ~/.openclaw/skills/cdp-wallet
npm install
cp .env.example .env
# fill in your CDP credentials
For Hermes use ~/.hermes/skills/cdp-wallet. For other runtimes, place under whatever skills directory they read.
Configure
Three required env vars from portal.cdp.coinbase.com:
CDP_API_KEY_ID=...
CDP_API_KEY_SECRET=...
CDP_WALLET_SECRET=...
Two optional ones:
CDP_NETWORK=base # or base-sepolia
CDP_ACCOUNT_NAME=openclaw-default # rename to run multiple isolated wallets
Use
node src/index.js address # 0x...
node src/index.js balance # ETH and USDC on Base
node src/index.js send-usdc 0xRecipient 1.50 # sends 1.50 USDC, waits for confirmation
node src/index.js history --limit 20 # last 20 USDC Transfer events
node src/index.js pay-x402 https://api.example.com/protected \
-H "Authorization: Bearer abc123" # call an x402-protected URL,
# paying inline with the same wallet
Every subcommand prints one line of JSON. ok: true on success, ok: false on failure. Designed to be agent-readable, not pretty-printed.
See SKILL.md for the full agent-facing instructions, including expected failure modes and security notes.
Why this exists
Most agent-wallet skills in the OpenClaw and Hermes ecosystems either (a) want a self-custodial private key on disk, (b) wrap Coinbase's consumer Agentic Wallet (which is great for connecting an agent to a human's existing Coinbase Wallet but doesn't programmatically create fresh isolated wallets), or (c) depend on third-party hosted services. None of those quite fit a scheduled, persistent, persona-driven autonomous agent that the operator wants to provision and forget about.
The CDP server wallet v2 path does fit that shape — programmatic creation, key custody by Coinbase's TEEs, idempotent named accounts, first-party SDK — but no minimal skill existed to expose it to OpenClaw / Hermes / agentskills.io agents until this one.
License
MIT. See LICENSE.
Related
- zooidfund-skill — uses this skill as the recommended payment layer for OpenClaw agents donating to humanitarian campaigns on zooidfund.
- get funded by AI donor agents — guide for campaign creators on zooidfund.
- @coinbase/cdp-sdk — the underlying SDK this skill wraps.
- agentskills.io — the open standard this skill follows.