Fund your AI wallet from any chain

Before an agent can pay for anything, its wallet needs USDC here, and you hold something else somewhere else: ETH on Ethereum, SOL, BTC, a stablecoin on Arbitrum. Ask for a quote from where you are to USDC here, send from your own wallet, and the network credits your AI wallet with what arrived minus the quoted fee. Nobody holds what you deposit: it lands on an address that only knows how to forward, and the forwarding is public.

What you need

  • The CLI, with AIOUM_PRIVATE_KEY set: the AI wallet is derived from that key, and on a route the same key signs the sending transaction on the source chain.
  • The asset you want to deposit, in that wallet, on its own chain, plus a little of that chain's gas.
  • The deposit service running (aioum status shows it as deposits, with its mode). On the local development network scripts/devstack.sh review starts it in its direct mode: routes from other chains deliver to Base, so there the service offers the deposit address and the sweep, the path that is real on every network.

Steps

  1. See your deposit address. It is fixed for your AI wallet on this network, whether or not anything has ever been sent to it.

    npx aioum deposit address
    

    It prints the AI wallet, the deposit address, the chain, the fee in basis points, whether the forwarder behind the address is deployed yet (it is deployed by the first sweep; funds that arrive before that are safe and wait) and the service's mode: route where the route provider delivers, or direct: USDC sent to the deposit address is swept to the AI wallet, with the note Routes from other chains deliver to Base; on this network send USDC to your deposit address and it is swept to your AI wallet.

  2. On a served network, list where a deposit can come from.

    npx aioum deposit chains
    

    One row per chain with its id, key, name and type (EVM, Solana, Bitcoin): every chain the route provider delivers from. On a direct network, the local development network among them, this command, tokens and quote fail with 501 and the note from step 1.

  3. List the assets on the chain you hold.

    npx aioum deposit tokens 1 --q eth
    

    Rows of symbol, name, address and decimals, with a price when the provider has one. The native asset is the zero address; native and a symbol that is unique on the chain are accepted in the next commands.

  4. Ask for a quote. The amount is in the asset's own units.

    npx aioum deposit quote 1 native 0.25
    

    It prints what you send, what arrives as USDC (and the least that can arrive), the fee in basis points and in USDC, what you are credited, the route and how long it takes, the provider's fees and the gas. A quote is good for about a minute.

  5. Send it.

    npx aioum deposit send 1 native 0.25
    

    The command takes a fresh quote, approves the route for a token (never for the native asset), sends the route transaction on the source chain with your key, waits for it, records the deposit and prints what was sent, the transaction hash, the ledger id and its status.

  6. Watch it arrive.

    npx aioum deposit status <id>
    

    The status moves pending → arrived → credited (or failed, with the route's reason). On arrival the service sweeps: the fee to the treasury, the rest to your AI wallet, in one transaction whose hash the record shows as sweepTx.

  7. USDC sent straight to the deposit address, the path that works on every network. A plain transfer or an exchange withdrawal to the address from step 1 is swept by the service's loop within a minute; on the local development network it is the only path. To forward it now:

    npx aioum deposit sweep
    

    It prints credited 99.0 USDC to the AI wallet (fee 1.0 USDC) for 100 USDC sent, with the deposit id, the AI wallet, the deposit address and the sweep transaction; or nothing to sweep: nothing has arrived at the deposit address.

  8. See everything you have deposited.

    npx aioum deposit list
    

    A table of id, source (route, direct for USDC you sent straight to the deposit address, card for a card payment), status, what you sent, what was expected, what was credited and the fee.

  9. Check the balance. The credit is USDC in your AI wallet, the smart account printed as AI wallet in step 1; every credited row in deposit list added to it, and your agents spend from it within the caps you set. npx aioum wallet shows the wallet behind your key and the runner's, which are separate from it.

  10. No crypto to send? Pay by card.

    npx aioum deposit partners
    npx aioum deposit card --partner transak
    

    The first prints the partners the deposit service holds keys for (Coinbase Onramp, Transak, MoonPay, Stripe) and whether this network can take a card payment at all: partners deliver USDC on Base only, so on the local development network it says Card payments deliver to Base; on the local network this button is disabled. The second prints the partner's link, single-use and good for about five minutes, and the deposit that tracks it; --partner is needed only when more than one partner is configured. Open the link and pay the partner by card: the USDC lands on your deposit address and is swept to your AI wallet minus the fee, and aioum deposit status <id> follows it, source card.

What you have now

USDC in your AI wallet without ever having held USDC: you sent what you had, from where you had it, and the network did the rest for the fee it quoted. Every deposit is in a ledger you can read; every sweep is a transaction on this chain. Your agents spend from this balance within the caps you give them.

Next: Stake from the command line — back an operator with ZAI and collect USDC, one command per step.