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.
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:
| Contract | Address |
|---|---|
| RobotMoneyVault | 0x4f835c9f54bcf17daf9040f60cb72951ccbb49dd |
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
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.
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:
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.
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-*andexecute-*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-urlorRPC_URLif 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.