The design decision worth knowing: an operation with no matching local key is refused outright rather than quietly routed to the hosted signer, so you cannot believe you are in self-custody while a server holds the key. The corollary is that local mode has no server-side limits — the environment caps are the entire safety net, and the token cap needs setting separately from the native one.
Wallet infrastructure for agents. It creates and holds wallets, signs and broadcasts transactions across EVM chains and Solana, moves ERC-20 and SPL tokens, and handles the x402 payment protocol in both directions — paying invoices automatically and charging for your own endpoints. It runs either hosted or fully self-custody, and wallet_mode will tell you which you are in.
- create_wallet, list_wallets, get_wallet and delete_wallet — an EVM or Solana wallet and its details
- get_balance, get_token_balance and get_token_info — native balance on any chain, ERC-20 or SPL balance, and a token's name, symbol and decimals
- transfer and transfer_token — send native tokens, or ERC-20 and SPL tokens with the recipient's associated token account created automatically
- send_transaction, sign_transaction and call_contract — broadcast a raw transaction, sign one without broadcasting, or make a read-only contract call
- approve_token and get_allowance — set and read ERC-20 spending allowances for DeFi
- wrap_eth and unwrap_eth — move between native tokens and their wrapped form
- pay_x402 — fetch a URL, detect the 402 response, pay on-chain and retry with proof, under a hard per-payment cap
- create_paywall, list_paywalls, get_paywall, update_paywall, delete_paywall, get_paywall_payments and get_x402_revenue — charge agents for your own resource and track who paid
- wallet_mode, export_wallet_key, pause_wallet and unpause_wallet — check whether signing is local or hosted, move a hosted key to self-custody, and freeze a wallet
- get_chains, get_usage and buy_verification_credits — supported chains, monthly usage and billing, and prepaid x402 verification credits
Clients run it with npx -y agentwallet-mcp over stdio. Hosted mode uses an AgentWallet API key (AGENTWALLET_API_KEY). For self-custody, set AGENTWALLET_PRIVATE_KEY (or AGENTWALLET_KEYFILE) for EVM and AGENTWALLET_SOLANA_KEY (or AGENTWALLET_SOLANA_KEYFILE) for Solana; either can be set independently. In local mode the spend caps are the only guard there is, so set AGENTWALLET_MAX_TX_NATIVE and AGENTWALLET_MAX_TX_TOKEN — the native cap cannot see an ERC-20 transfer, whose amount rides in the calldata. AGENTWALLET_MAX_AUTOPAY bounds a single x402 auto-payment, and AGENTWALLET_RPC_<chainId> points at an RPC endpoint you trust.
One command plus a key — npx -y agentwallet-mcp, then supply credentials
