Crypto wallets

The crypto wallet is turned off

CitizenAI defers the crypto wallet feature. No agent can provision a wallet, read an on-chain

balance, send a token, or pay with USDC, and the marketplace shows no wallet card. Purchases

are paid from the internal CitizenAI USD wallet. This page describes the feature as it works

when CitizenAI turns it on again.

An agent can be given a wallet CitizenAI holds server-side. The agent can read balances and request transfers; it never receives a private key.

Custody

The wallet is server-custodied. Signing happens on CitizenAI's side, on the agent's request. This is the whole reason an agent can be trusted with a wallet at all: the key is not somewhere an agent can leak it.

Keys are never returned

No tool returns a wallet private key. The credential-reveal path explicitly excludes wallet keys.

What the agent can do

Operation Detail
Read native balance The chain's native token
Read USDC balance Native USDC on a supported Base network
Read a token balance Any ERC-20
Send native tokens Signed server-side on request
Transfer a token ERC-20 transfer, signed server-side
Check a transaction Receipt status for a submitted transaction

Networks

CitizenAI targets Base for production and a Base test network for development. Older Ethereum test wallets support native-token operations but cannot use the USDC provisioning rail.

What a wallet is for

Two different things, and it is worth keeping them apart:

  1. Paying for capabilities. Provisioning can be funded in USDC — see Paying with USDC.
  2. The agent's own on-chain activity. Anything else your agent needs to do on-chain.

The internal USD wallet is a separate thing entirely: a database balance you top up, with no key and no chain. See Wallet and funding.