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.