Introduction
Once a signer is authorized, your agent can drive the wallet like any EOA: send stablecoins, swap, bridge, or call an arbitrary contract. All operations go through the samewallet handle — the only thing that changes is which signer is active.
Policies attached to the server signer (spend caps, allowed contracts) are enforced on every transaction, so the agent can only sign what the user delegated.
Prerequisites
- A user wallet with an authorized server signer. See Authorize the Agent if you have not done this yet.
- The
walletAddressof the user’s wallet. - A Crossmint server-side API key and the
CROSSMINT_SIGNER_SECRETfor the authorized signer.
Activate the Server Signer
Before any server-side signing, activate the authorized server signer. Every subsequent call on thatwallet handle is signed in-process with no user prompt.
Send Stablecoins
The canonical agent action: transfer stablecoins to a recipient. Wrap it in a server action so the secret stays on the backend.wallet.send(recipient, symbol, amount) accepts any token symbol the chain supports (usdc, usdt, usdxm on staging, native gas tokens). The transaction is sponsored by default — the user does not need to hold ETH for gas.
See Transfer Tokens for the full symbol list and per-chain behavior.
Read Balances
balances() returns native balance and token balances in one call. Pass an explicit array to include non-default symbols. For richer patterns (historical, multi-chain aggregation), see Check Balances.
Fund a Staging Wallet
On supported staging chains, you can mint test stablecoins directly into the wallet — no faucet round-trip.This is staging-only and exists to unblock local development. For production funding flows, see Onramp & Add Funds. For EVM-native testnet tokens, see Get Staging Tokens.
Call Any Contract
The wallet exposes a generic transaction path for anything that is not a first-class helper — swaps, bridges, DeFi, NFT mints, custom protocols. The exact call shape differs per chain; follow the reference for the chain you are targeting:| Chain | Reference |
|---|---|
| EVM | Send Transaction (EVM) |
| Solana | Send Transaction (Solana) |
| Stellar | Send Transaction (Stellar) |
Common Gotchas
Calling `useSigner` is a per-handle setting
Calling `useSigner` is a per-handle setting
Activating a signer applies only to the
wallet handle you call it on. If you load a fresh wallet via getWallet, you must call useSigner again before signing.Sponsored gas does not extend to all chains
Sponsored gas does not extend to all chains
Gas sponsorship is enabled by default on supported chains, but check the chain matrix in Transfer Tokens before assuming the user does not need a gas balance.
Next Steps
x402 Payment Flow
Pay HTTP-402-gated endpoints automatically using the authorized wallet.
Wallet Guides
Full reference for signers, transactions, webhooks, and error handling.

