> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Wallets

> Give an agent scoped access to a non-custodial stablecoin wallet for x402, MPP, and onchain actions

An Agent Wallet is a non-custodial smart wallet that an agent can spend from within limits the owner sets. For consumer agents, the user owns the wallet and adds the agent as a signer with a spend cap, allowed counterparties, and a time window. For autonomous agents with no end user, your backend owns the wallet directly.

Permissions are enforced onchain and the owner can revoke them at any time. Neither you nor Crossmint takes custody of funds. Agent Wallets are how agents pay other machines: APIs behind x402 and MPP, other agents, and any contract onchain. For the problem this solves, read [How Agents Pay](/agents/how-agents-pay#agent-wallets).

## Key Features

<CardGroup cols={3}>
  <Card title="Non-custodial" icon="user-shield" iconType="duotone" color="#36B37E">
    The user, or your backend, holds the root key; nobody else can move funds
  </Card>

  <Card title="Scoped agent access" icon="sliders" iconType="duotone" color="#1D258E">
    Spend cap, allowed counterparties, and time window per agent
  </Card>

  <Card title="Enforced onchain" icon="shield-check" iconType="duotone" color="#D3A10F">
    A transaction outside the delegation is rejected at the wallet level
  </Card>

  <Card title="Machine-to-machine ready" icon="bolt" iconType="duotone" color="#24ABD0">
    Pay x402 and MPP endpoints per call, in stablecoins
  </Card>

  <Card title="Fund with a card" icon="circle-dollar" iconType="duotone" color="#D31D52">
    Users top up with the Crossmint onramp or a direct USDC transfer
  </Card>

  <Card title="Revocable" icon="user-xmark" iconType="duotone" color="#A24EC9">
    Remove the agent signer at any time; the user keeps the wallet and funds
  </Card>
</CardGroup>

## When Are Agent Wallets the Best Fit?

* **The agent pays machines, not stores.** APIs behind x402 or MPP and other agents settle in stablecoins, per call, with no merchant account.
* **Payments are small or frequent.** Card fees and chargebacks make micropayments impractical; stablecoins do not have that problem.
* **The agent acts onchain.** Sending stablecoins, swapping, bridging, and calling contracts all run from the same wallet.

## How It Works

<Steps>
  <Step title="The user creates and funds a wallet">
    The Crossmint SDK creates a non-custodial wallet with email or passkey recovery. The user funds it through the Crossmint onramp or a direct USDC transfer.
  </Step>

  <Step title="The user authorizes the agent">
    The agent's key is added as a signer, bound to a permission set the user approves: spend cap, allowed counterparties, and time window.
  </Step>

  <Step title="The agent transacts within scope">
    The agent signs and submits transactions with its own key, with no user prompt per action. Anything outside the delegated scope is rejected at the wallet level.
  </Step>

  <Step title="The user revokes access when done">
    Removing the agent signer ends its access immediately. The user keeps the wallet and its funds.
  </Step>
</Steps>

## Two Wallet Models

| Model                                                                                  | Who owns the wallet | Use it when                                                                     |
| -------------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------- |
| [User wallet](/agents/payment-methods/stablecoin-wallets/create-user-wallet)           | Your end user       | An agent spends on behalf of a person who stays in control                      |
| [Server agent wallet](/agents/payment-methods/stablecoin-wallets/server-agent-wallets) | Your backend        | An autonomous agent operates entirely on its own keys with no human in the loop |

## Get Started

<CardGroup cols={2}>
  <Card title="Quickstart" icon="bolt" color="#E6DB63" href="/agents/stablecoin-wallet-quickstart">
    Run the reference app: create a user wallet, authorize an agent, and send a stablecoin transfer from your backend
  </Card>

  <Card title="Try the live demo" icon="rocket" iconType="duotone" color="#ADD8E6" href="https://stablecoin-wallet-quickstart.vercel.app/" target="_blank" rel="noopener">
    See the full flow without setting anything up locally
  </Card>
</CardGroup>

## Guides

<CardGroup cols={3}>
  <Card title="Create a User Wallet" icon="wallet" href="/agents/payment-methods/stablecoin-wallets/create-user-wallet">
    A non-custodial wallet owned by your end user
  </Card>

  <Card title="Authorize the Agent" icon="user-check" href="/agents/payment-methods/stablecoin-wallets/authorize-agent">
    Grant your agent delegated, scoped control
  </Card>

  <Card title="Onramp & Add Funds" icon="circle-dollar" href="/agents/payment-methods/stablecoin-wallets/onramp-add-funds">
    Fund the wallet with a card or a direct transfer
  </Card>

  <Card title="Server Agent Wallets" icon="server" href="/agents/payment-methods/stablecoin-wallets/server-agent-wallets">
    Backend-only wallets for autonomous agents
  </Card>

  <Card title="Using the Wallet" icon="paper-plane" href="/agents/payment-methods/stablecoin-wallets/on-chain-actions">
    Send, swap, bridge, and call any contract
  </Card>

  <Card title="x402" icon="bolt" href="/agents/payment-flows/x402">
    Pay x402-protected endpoints per call, in stablecoins
  </Card>

  <Card title="MPP" icon="arrows-left-right" href="/agents/payment-flows/mpp">
    Pay Machine Payment Protocol endpoints from an EVM wallet
  </Card>

  <Card title="Remove Agent Access" icon="user-xmark" href="/agents/payment-methods/stablecoin-wallets/remove-agent-access">
    Revoke the agent signer from a user's wallet
  </Card>
</CardGroup>

## FAQs

<AccordionGroup>
  <Accordion title="Does Crossmint or my app take custody of the funds?">
    No. The wallet is non-custodial. The user (or, for server agent wallets, your backend) holds the root signer, and the agent only holds a delegated key bound to the permissions the owner approved.
  </Accordion>

  <Accordion title="What can the user limit?">
    The spend cap, the addresses or protocols the agent can interact with, and the time window in which the delegation is valid. The limits are enforced onchain, so a transaction outside them is rejected at the wallet level.
  </Accordion>

  <Accordion title="Can the user revoke the agent?">
    Yes, at any time. See [Remove Agent Access](/agents/payment-methods/stablecoin-wallets/remove-agent-access).
  </Accordion>

  <Accordion title="Where can I learn more about the underlying wallets?">
    Agent Wallets are Crossmint smart wallets. The [Wallets documentation](/wallets/overview) covers chains, signers, recovery, and the full SDK.
  </Accordion>
</AccordionGroup>
