Robot Money Skill

robotmoney-cli — an npm package that lets any AI agent query the Robot Money vault on Base, prepare unsigned transactions for external signing, or sign and broadcast end-to-end via Open Wallet Standard.

What it is

robotmoney-cli is a command-line tool installable via npx that exposes the Robot Money vault on Base as a structured CLI surface. Every command outputs JSON to stdout. The CLI is designed to be called by AI agents and autonomous machines, not parsed by humans.

It does three categories of things:

  • Read the vault's current state — APY, TVL, caps, adapter breakdown, a user's balance, the basket holdings of a wallet.
  • Prepare unsigned transactions (deposits, withdrawals, redemptions) for the caller to sign externally with their own wallet.
  • Execute the same operations end-to-end — signs and broadcasts via the Open Wallet Standard (OWS) keystore stored locally.

Every operation is structured so an LLM can call it, parse the result, and chain it into the next operation without human eyes in the loop.

shell
npx @robotmoney/cli <command> [options]

Who it's for

The skill is for anything with a wallet (or the need for one) that wants diversified USDC yield without integrating DeFi protocols one by one. The same skill works for:

  • A Claude Code or Cursor session managing a treasury
  • An autonomous trading bot allocating idle capital
  • An IoT device or peaq-network machine earning on-chain revenue
  • A custom agent framework with its own scheduler
  • A developer testing flows before integrating contracts directly

It is not a retail wallet UX. All output is JSON. All inputs are flags. There's no interactive wizard.

The vault

The skill talks to a single vault contract on Base:

ContractAddress
RobotMoneyVault0x4f835c9f54bcf17daf9040f60cb72951ccbb49dd
USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Chain id: 8453 (Base mainnet). The vault is an ERC-4626 multi-adapter vault that splits USDC across Morpho Gauntlet USDC Prime, Aave V3, and Compound V3 by dynamic equal weight. Yield accrues into share price; no rebasing.

Caps in effect today:

  • Per-deposit cap: $5,000 USDC
  • Total TVL cap: $100,000 (raises in stages)
  • Exit fee: 0.25%, taken on redeem
  • No cooldown, no lockup. Deposit and withdraw are both synchronous.

Two sign modes

Every state-changing operation has a prepare-* form and an execute-* form. They differ in who signs the transaction.

prepare-* — unsigned calldata

Returns the operation as JSON: a summary, the unsigned transaction(s) (target, calldata, value, gas), and a simulation preview from a Tenderly-style fork at the current block. The caller takes the calldata and signs/broadcasts externally — with Coinbase Smart Wallet, Safe, Fireblocks, a hardware wallet, or any other signer. The CLI never touches keys.

execute-* — sign and broadcast via OWS

Signs and broadcasts using an Open Wallet Standard keystore stored at ~/.ows/wallets/. The caller provides a wallet name and a passphrase (flag, env var, or interactive); the CLI signs, broadcasts, and waits for on-chain confirmation. Returns confirmed transaction hashes.

Pick by who holds keys
Use prepare-* when the caller has its own signer elsewhere. Use execute-* when the agent owns its wallet locally via OWS. Both produce the same on-chain state — the difference is only where signing happens.

The basket leg

Deposits and withdrawals can optionally include an agent token basket leg, atomic with the vault operation. By default, prepare-deposit and execute-deposit route 95% of the input USDC into the vault and 5% across a fixed 7-token basket (VIRTUAL, ROBOT, BNKR, JUNO, ZFI, GIZA, PEAQ) via Uniswap UniversalRouter.

Flags to override the default:

  • --no-basket — 100% to vault, skip the basket leg.
  • --basket-only — 100% to basket, skip the vault leg.
  • --slippage-bps N — per-trade slippage tolerance in basis points (default 300, i.e. 3%).

Withdrawals can sell back any subset of basket holdings in the same atomic transaction. See Agent basket for the full token list, the rationale, and the sell-back flag matrix.

Wallets

The skill works with any EVM wallet. If the caller already has one (Coinbase Smart Wallet, Safe, hardware, etc.), they pass the address to prepare-* and sign externally. If the caller needs a wallet — e.g., a fresh agent that doesn't have one — the CLI can mint one locally:

shell
npx @robotmoney/cli create-wallet [--label <string>] [--storage-path <dir>]

create-wallet generates a new EVM address, encrypts the private key under the OWS keystore format, and writes it to ~/.ows/wallets/<label>.json. The address is returned in the response so the caller can fund it.

Funding the wallet
A freshly created wallet needs both USDC and a small amount of ETH on Base before any execute-* call works — ETH for gas, USDC for the actual deposit. Roughly $0.01–$0.05 of ETH covers about 10 vault transactions. Without ETH, every signed broadcast fails at gas check before it hits the chain.

Design principles

Four properties the skill is designed to hold across versions. They explain why certain ergonomics exist.

  • JSON in, JSON out. Every output is machine-parseable. No prose, no spinners, no progress bars, no color codes. If you need to display something to a human, the caller does that — the skill just gives you the data.
  • Idempotent and deterministic. prepare-* never changes state. Running it twice gives you the same calldata. Simulation runs at the current block, so previews reflect what would happen if signed right now.
  • Two paths, one outcome. prepare-* and execute-* produce the same on-chain effect. The skill never branches the protocol behavior based on which path you took — only on who signs.
  • Built-in RPC. The skill ships with a small pool of free Base RPC endpoints with automatic fallback. Most callers never need to think about RPC. Override with --rpc-url or RPC_URL if you have your own.

Scope and status

The skill is currently experimental (pre-v1.0). Command names, flag names, and response schemas may change. Output shapes that are documented in this section are the most likely to remain stable; anything not documented is subject to adjustment without notice.

Chain support: Base only at launch. Every command requires --chain base. Multi-chain support is on the roadmap but not in scope for the current release.

Next

Head to Installation to get the skill running. Then Commands for the full surface reference. For the basket-leg specifics — token list, slippage, sell-back flows — see Agent basket.