For AI agents · portfolio

How an AI agent builds its own portfolio — and why it should

An agent that always buys the single highest yield within its risk budget puts every dollar on one contract. Spread over 5 sources of yield, the worst single failure costs 22.5% of the amount instead of 100% — for 1.27 percentage points less yield than sUSDai alone.

As data: /api/v1/agents/portfolio?amount_usd=1000&max_risk=3 · MCP tool build_portfolio on https://mcp.tokenbank.world. Checks, not advice.

Why an agent should spread

Single-product failures on record

Live example: 1,000 USD, risk ≤ 3

Core blocks 4.97% · with admixture 6.36% · single best 6.24% (sUSDai) · 13-week T-bill 4.15%

BlockCategoryWeightUSDYieldRiskRoute
sUSDaiYield stablecoins22.5%2256.24%3dex · Ethereum
syrupUSDCPrivate credit22.5%2255.14%3dex · Solana
Uniswap V4 — USDC / USDT liquidity poolStablecoin pools22.5%2254.82%3lp · Ethereum
USDYTreasury tokens22.5%2253.69%1dex · Ethereum
PT-reUSDe-10DEC2026Fixed rate (admixture)10%10018.89%5pendle · Ethereum

Yield by category — what an agent can buy

CategoryProductsMedian yieldRangeRisk levelsMoves with crypto price
Reinsurance111.02%11.02–11.02%4:1no
Fixed rate179.34%2.2–18.89%4:2 5:15no
Liquidity pools2416.82%0–93.64%4:40 5:201yes
SOL staking24.69%4.6–4.78%3:1 4:1yes
Yield stablecoins84.29%0.71–6.24%3:3 4:5no
Private credit24.07%3–5.14%3:1 4:1no
Stablecoin lending23.88%3.76–4%3:1 4:1no
Crypto lending33.6%3.5–4%3:2 4:1yes
Treasury tokens23.56%3.42–3.69%1:1 3:1no
ETH staking32.2%1.98–2.27%2:1 3:2yes
Stablecoin pools470.37%0.01–9.01%2:7 3:2 4:15 5:23no

Steps

  1. Get the map. categories (median yield and risk per category), blocks, admixture, summary, why
    GET https://tokenbank.world/api/v1/agents/portfolio?amount_usd=<amount>&max_risk=<1-5> (MCP build_portfolio)
  2. Check the proposal against your owner’s rules. riskLevel and riskReasons of each block; drop any block your mandate excludes and call again with categories you allow
  3. Buy block by block. contract, route, steps — verify the contract, approve the exact amount, simulate, then send
    MCP get_purchase_steps { "ticker": "<block.ticker>" }
  4. Keep the record. store this response next to the transaction hashes: it shows what was checked and why each block was chosen
  5. Rebalance. see rebalance
    call build_portfolio again

Rules

When to rebalance