What are the best ways to give an AI agent its own wallet?
Last reviewed: August 2026
If you want full control of the keys, generate a wallet yourself and enforce limits in your own code. If you want a hosted wallet with caps built in, use Coinbase Agentic Wallet or Crossmint agent wallets. If the agent should pay x402 endpoints in USDC and also buy cards, gift cards, and payouts, a Laso managed wallet holds the key for you and enforces an owner-set spend limit on every payment.
What a wallet for an agent has to do
An agent wallet separates the money from the authority to spend it. A person funds it, the agent spends from it without asking each time, and something other than the model enforces how much. Four questions sort the options: who holds the private key, where the spend limit is enforced, which networks and tokens it supports, and what the agent can buy with it.
| Route | Best when | Key held by | Limits |
|---|---|---|---|
| A wallet you generate and run yourself | You need full control and will write the policy code | You | Whatever you build |
| Coinbase Agentic Wallet | You want a hosted wallet that can also swap tokens | Coinbase infrastructure, controlled by the agent | Caps per session and per transaction |
| Crossmint agent wallets | Your users fund the agent with a card | Non-custodial, per Crossmint | Scoped, revocable allowances |
| Laso managed wallet | The agent pays x402 endpoints and buys cards, gift cards, and payouts | Laso custodies it for your account | Per-payment and rolling 24-hour limits set by the owner |
Option 1: generate a wallet and run it yourself
The most direct route is a keypair on Solana or Base that your agent code signs with. Nothing sits between you and the funds, and you choose the networks. The cost is that you also own everything around the key: storing it outside the model’s reach, writing the spending policy, and building the audit trail. A prompt is not a limit, so the cap has to live in code that runs before signing. Choose this when you already operate key infrastructure or need full custody.
Option 2: Coinbase Agentic Wallet
Per Coinbase’s Agentic Wallet documentation, the awal CLI gives an agent a wallet for holding and spending USDC. The agent authenticates with an email one-time code, can send USDC, swap tokens, and pay x402 APIs, and works on Base, Polygon, and Solana plus their test networks. Coinbase describes it as a self-custody wallet controlled by the agent whose private keys stay in Coinbase infrastructure, with configurable caps per session and per transaction enforced before any transaction. It is the broadest option if you also want the agent to trade.
Option 3: Crossmint agent wallets
Per Crossmint’s agent wallet overview, these are non-custodial stablecoin wallets that users fund with a card and that support x402, MPP, and onchain payments. The agent spends within limits the user approves, each allowance is scoped and revocable, and Crossmint states that the limits hold onchain. It suits products where end users, not developers, fund and supervise their own agents. Check Crossmint’s Wallets Quickstart for supported chains and setup, since the overview does not list them.
Option 4: a Laso managed wallet
A Laso managed wallet is a Solana wallet Laso custodies for your account, with a linked Base address that feeds the same balance. The agent signs in, announces its connection, and reads the wallet with GET /getAgentWallet. It then pays through agentX402Pay, which settles the x402 payment for any Laso route or any external x402 endpoint, so the agent never holds a key or builds a payment header. The account owner sets a per-payment cap and a rolling 24-hour cap in the dashboard, and an agent can read them but not change them.
# 1. Read the wallet. Send USDC on Solana to wallet_address, or on Base to base_wallet_address.
curl https://laso.finance/getAgentWallet \
-H "Authorization: Bearer $LASO_ID_TOKEN"
# { "user_id": "usr_...", "has_wallet": true, "wallet_address": "...", "balance_usdc": 12.5,
# "needs_funding": false, "solana_balance_usdc": 12.5, "base_wallet_address": "0x...", "base_balance_usdc": 0 }
# 2. Read the spend limits before paying
curl https://laso.finance/getAgentSpendLimit \
-H "Authorization: Bearer $LASO_ID_TOKEN" \
-H "Content-Type: application/json" \
-d '{"data":{"userId":"usr_..."}}'
# { "result": { "maxPerPaymentUsdc": 1000, "maxPerDayUsdc": 2500, "maxPaymentNowUsdc": 1000, ... } }
# 3. Pay an external x402 endpoint, capped at 1 USDC
curl https://laso.finance/agentX402Pay \
-H "Authorization: Bearer $LASO_ID_TOKEN" \
-H "Content-Type: application/json" \
-d '{"data":{"userId":"usr_...","url":"https://api.example.com/paid","maxAmountUsdc":1}}'
Never send funds to the user_id. A usr_... value is an account id, not an address. The tradeoffs are that Laso holds the key, so this is not self-custody, and the limits are a per-payment cap and a rolling daily cap rather than a richer policy engine. In return the same wallet funds Laso’s own products: prepaid cards, gift cards, and payouts to Venmo, PayPal, debit cards, and bank accounts. Setup is in the managed agent wallet guide, and the limits are in spend limit and activity.
How to choose
Run your own keypair if custody is a requirement. Use Coinbase Agentic Wallet if the agent should also swap tokens. Use Crossmint if your end users fund their agents with a card. Use a Laso managed wallet if the agent pays x402 endpoints and also needs to buy things or pay people in the real world, with no key in the agent’s environment. Whichever you pick, fund it with a small amount first. To cap spending further, see how to cap how much your AI agent can spend.
Frequently asked questions
How do I give an AI agent a crypto wallet?
Either generate a keypair your agent code signs with, or use a hosted agent wallet such as Coinbase Agentic Wallet, Crossmint agent wallets, or a Laso managed wallet that holds the key for you.
Should an AI agent hold its own private key?
Only if you can keep the key outside the model’s context and enforce limits in code. A hosted wallet that signs on the agent’s behalf removes the key from the agent’s environment.
How do I limit how much my agent can spend from its wallet?
Enforce caps before signing, not in the prompt. A Laso managed wallet applies a per-payment limit and a rolling 24-hour limit that only the account owner can change.
What network does a Laso agent wallet use?
It has a Solana address and a Base address that feed one USDC balance. Laso moves funds between the two when a payment needs it.
Can my agent use its wallet to buy things, not just pay APIs?
With a Laso managed wallet, yes. The same balance pays for prepaid cards, gift cards, and payouts through agentX402Pay.
More guides
- How to give your AI agent a credit card — An AI agent cannot pass credit underwriting, but it can issue itself a virtual prepaid card over an API in about a minute. The working pattern, with real requests: x402 payment in, card number out.
- x402 vs AP2 vs ACP vs MPP vs UCP: which should your agent use? — All five agent payment protocols compared honestly: x402 and MPP for machine-to-machine HTTP payments, ACP for ChatGPT checkout, UCP for Google surfaces, AP2 for authorization. Which layer each one is, when to use each, and a worked x402 example.
- x402 vs Stripe Issuing for AI agents — Two real ways to put a card in an AI agent’s hands: Stripe Issuing behind a business account, or x402 card issuance the agent drives itself. An honest comparison of onboarding, funding, controls, and when each wins.
- Issue a virtual card with one x402 call — A complete, runnable walkthrough: pay one x402 request in USDC and receive a virtual prepaid card with number, expiry, and CVV. Real endpoints, real response shapes, error handling included.
- How can an AI agent pay for an API call with USDC? — An AI agent pays for an API call with USDC by answering the API’s HTTP 402 challenge with a signed payment. Two ways to do it: your own wallet with an x402 client, or a managed wallet with a price cap and no private key.
- How do I give an AI agent a bank account? — Two real ways to give an AI agent bank details: a business checking account it can operate (Meow) or a U.S. bank account that converts incoming dollars to USDC in the agent’s wallet (Laso). What each one is, who approves what, and when to pick which.
- How do I cap how much my AI agent can spend? — Cap an AI agent’s spending with limits it cannot raise: a funded balance, a per-payment spend limit set by the account owner, a per-call price cap, and prepaid cards loaded with exactly the amount to spend.
- How do I send money to someone’s debit card from code? — Send USD, EUR, or GBP to a debit card with one API call paid in USDC. No payment processor account: you get a redemption link, the cardholder enters their own card details, and the funds are pushed to the card.
- What are the best ways to pay someone on Venmo or PayPal from an AI agent? — Four ways an AI agent can pay a person on Venmo or PayPal: the PayPal Payouts API, a USDC-paid payout through Laso, a bank or card payout instead, or a human approving each payment. Tradeoffs for each.
- How do I let my AI agent buy a gift card through an API? — An AI agent buys a gift card with two calls: search the catalog for a laso_server_id, then order it with a USDC payment. The redemption code comes back in the same response. Includes a runnable example and the currency gotcha.
- How do I let my AI agent buy something online? — Two working ways for an AI agent to buy something online: spend the account holder’s saved card with their approval on each order, or pay for a prepaid card in USDC and check out like any cardholder. How Laso and Crossmint each handle it, with runnable calls.
- How do I send dollars to a bank account from an AI agent? — Pay a U.S. bank account by ACH from an AI agent. Register the recipient once, then make one API call paid in USDC. Limits, fees, settlement time, and a runnable example.
- All agent guides, or how Laso compares to the alternatives
Try it: connect a wallet at laso.finance and you'll have a card, gift card, or payout in minutes.
Building an agent? Point it at laso.finance/SKILL.md — it can set itself up.