Let your AI agent send USDC and swap chains
Claude, Cursor, ChatGPT or any MCP client can quote and move USDC across 27 chains from your wallet, within limits you set.
- Chains
- 27Agents send from EVM wallets
- Limits
- Per transfer + daySet per key
- Control
- Revoke anytimeOne key per agent
Just ask
- “Move 50 USDC from Base to Solana.”
- “Move 20 USDC from Base to my Arbitrum wallet.”
- “What are my USDC balances on every chain?”
- “Quote sending 200 USDC from Ethereum to my Stellar wallet.”
- “Consolidate the USDC on my EVM chains onto Base.”
- “Did my last transfer arrive?”
“Move 50 USDC from Base to Solana” becomes quote_transfer, then swap_chains, executed with Circle's CCTP. amount is the total debited, fees included.
Show the MCP tool call
{
"name": "swap_chains",
"arguments": {
"from": "Base",
"to": "Solana",
"amount": "50",
"idempotency_key": "base-to-solana-0001",
"max_fee_usd": 1
}
}What an agent can do
| Tool | Input | What it does | Moves funds |
|---|---|---|---|
list_chains | – | Lists every supported chain with the chain key to use in other tools, and whether this key can send from it (EVM chains) or to it (every chain that can receive; destination: false marks the rest). | No (read-only) |
get_addresses | – | The user's own EVM, Solana and Stellar addresses, and whether agent signing is enabled (EVM wallets only in this version). | No (read-only) |
get_balances | – | The user's non-zero USDC balances per chain, plus the total. | No (read-only) |
get_limits | – | This key's spending limits and how much is left today. | No (read-only) |
quote_transfer | to, amount, from?, recipient? | Prices a transfer without moving funds: fee breakdown, amount received, and whether limits and balance allow it. | No (read-only) |
send_usdc | to, recipient, amount, idempotency_key, from?, max_fee_usd? | Sends USDC from the user's EVM wallet to any supported chain (or to another address on the same chain, cost-only fee), within the key's limits. By default it sends only to the user's own wallets; third-party recipients are an opt-in mode (off). | Yes, within limits |
swap_chains | to, amount, idempotency_key, from?, max_fee_usd? | Moves the user's USDC from an EVM chain to their own wallet on another chain (including Solana and Stellar) via CCTP, within the key's limits. | Yes, within limits |
get_transfer | id | Returns a transfer's status, including delivery by sendstables' delivery worker (Circle forwarding or our relayer). | No (read-only) |
resume_transfer | id | Finishes only the missing source-chain steps of a transfer that needs attention (already authorised). | Yes, within limits |
list_transfers | limit? | Lists recent agent transfers, newest first. | No (read-only) |
Same as the app: gas is sponsored, the fee is 0.05% service charge (min $0.10, no cap) plus operating costs and margin, and USDC moves natively via Circle's CCTP.
Security model
- You grant accessNothing happens until you create a key on the agents page.
- Limits per keyPer-transfer and daily limits, optional chains and recipients. Checked before anything is signed.
- Revocable anytimeA revoked key stops working, even mid-transfer. Or turn off agent signing for all keys.
- Keys are hashedOnly a SHA-256 hash of each key is stored.
- Privy-secured walletsThe agent never sees your keys. A Privy policy you own limits signing; by default, only between your own wallets.
Treat an agent key like a card with a limit: one key per agent, with the smallest limit that does the job.
Connect in a minute
MCP setup guide →Add https://sendstables.com/api/mcp as a Streamable HTTP MCP server with your key in the Authorization header.
FAQ
Can an AI agent send USDC for me?
Yes. sendstables runs an MCP (Model Context Protocol) server, so any MCP client — Claude, Cursor, ChatGPT or your own agent — can check balances, quote transfers and move USDC from the EVM wallet in your sendstables account, once you grant it a key. By default it can only move USDC between your own wallets; sending to other people's addresses is an opt-in mode (off by default).
What stops an agent from spending all my USDC?
Every agent key has a per-transfer and a daily limit you set when you create it, and can be restricted to certain chains and recipients. The server checks these before anything is signed. You can revoke a key at any time, or turn off agent signing entirely.
Does the agent get my private keys?
No. Your wallet keys stay with Privy's wallet infrastructure. The agent only gets an API key that can request transfers within your limits. Only a SHA-256 hash of each key is stored.
What is an AI chain swap?
It's asking an agent to move your USDC from one chain to another — say "move 50 USDC from Base to Solana" — and having it done natively with Circle's CCTP. Same fee as the app (0.05% service charge (min $0.10, no cap) plus operating costs and margin), and gas is sponsored because agents spend from your sendstables wallet.
Which chains can an agent use?
Agents can send from a set of major EVM chains (list_chains shows which) to the 21 chains that can receive (delivery to Cronos, Injective, Morph, Pharos, Plasma, X Layer is coming soon), including Solana and Stellar. In this version, Solana and Stellar balances are read-only for agents, and by default agents only move USDC between your own wallets (sending to other people's addresses is an opt-in mode, off by default). The list_chains tool returns the live list.
How do I connect my agent?
Create a key on the agents page, then add https://sendstables.com/api/mcp as a Streamable HTTP MCP server with the header "Authorization: Bearer <key>". Step-by-step configs for common clients are on the MCP setup page.