[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CS7CXA28R1NED0WTPBVGD5":3,"skill-same:01M6CS7CXA28R1NED0WTPBVGD5":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":40,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":50,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M6CS7CXA28R1NED0WTPBVGD5","yo-protocol-cli",null,"ALWAYS use this skill when the user mentions the YO Protocol CLI, the `yo` command, `@yo-protocol\u002Fcli`, or wants to interact with YO Protocol vaults (yoETH, yoUSD, yoBTC, yoEUR, yoGOLD, yoUSDT) from a shell script, terminal, or command line. The `yo` binary is an agent-first interface for ERC-4626 yield vaults on Ethereum (1), Base (8453), and Arbitrum (42161). It outputs structured JSON to stdout, never requires or accepts private keys, and produces unsigned calldata routed through the YO Gateway — ready for Safe\u002FAA wallets and Base MCP `send_calls`. Use it for: building unsigned transactions (`yo prepare {approve,deposit,redeem,deposit-with-approval}`), reading positions and rewards (`yo position`, `yo portfolio`, `yo pending-redeems`, `yo rewards`, `yo yo-rewards`, `yo user-perf`), listing vaults and history (`yo vaults`, `yo vault`, `yo history`, `yo prices`, `yo yield`, `yo tvl`, `yo share-price`, `yo perf`, `yo leaderboard`), self-describing the command surface for an agent (`yo schema`), setting up `YO_RPC_URL`, or piping output into jq or other tools. Do NOT use for React hooks (`@yo-protocol\u002Freact`) or TypeScript SDK code (`@yo-protocol\u002Fcore`) — those have dedicated skills.","yoprotocol\u002Fyo-protocol-skills","yoprotocol","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F193741819?v=4","01M6CS6X80H0ER1497K71NZR8F","Yo Protocol","01M6CS6XC2ZHV2QCRE9SB40KES",1,"MIT","https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills\u002Fblob\u002Fmain\u002Fskills\u002Fyo-protocol-cli\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"cli","yo protocol cli","yo protocol","protocol","typescript","react","code","safe","ethereum","transactions","command","portfolio","never","ready","up","hooks","main","self","terminal","MCP","2026-11-10 10:12:30",false,"---\nname: yo-protocol-cli\ndescription: >-\n  ALWAYS use this skill when the user mentions the YO Protocol CLI, the `yo`\n  command, `@yo-protocol\u002Fcli`, or wants to interact with YO Protocol vaults\n  (yoETH, yoUSD, yoBTC, yoEUR, yoGOLD, yoUSDT) from a shell script, terminal,\n  or command line. The `yo` binary is an agent-first interface for ERC-4626\n  yield vaults on Ethereum (1), Base (8453), and Arbitrum (42161). It outputs\n  structured JSON to stdout, never requires or accepts private keys, and\n  produces unsigned calldata routed through the YO Gateway — ready for\n  Safe\u002FAA wallets and Base MCP `send_calls`. Use it for: building unsigned\n  transactions (`yo prepare {approve,deposit,redeem,deposit-with-approval}`),\n  reading positions and rewards (`yo position`, `yo portfolio`,\n  `yo pending-redeems`, `yo rewards`, `yo yo-rewards`, `yo user-perf`),\n  listing vaults and history (`yo vaults`, `yo vault`, `yo history`,\n  `yo prices`, `yo yield`, `yo tvl`, `yo share-price`, `yo perf`,\n  `yo leaderboard`), self-describing the command surface for an agent\n  (`yo schema`), setting up `YO_RPC_URL`, or piping output into jq or other\n  tools. Do NOT use for React hooks (`@yo-protocol\u002Freact`) or TypeScript SDK\n  code (`@yo-protocol\u002Fcore`) — those have dedicated skills.\nauthor: yoprotocol\nhomepage: https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills\nsource: https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills\u002Ftree\u002Fmain\u002Fskills\u002Fyo-protocol-cli\n---\n\nOfficial YO Protocol skill. Canonical repository: \u003Chttps:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills>.\n\n# YO Protocol CLI — Reference\n\nAgent-first interface for YO Protocol ERC-4626 vaults. Outputs JSON to stdout, errors to stderr. **Never requires or accepts private keys.** Designed for agents, bots, scripts, Safe\u002FAA wallets, and Base MCP `send_calls`.\n\n**Canonical source for the command surface is `yo schema`** — this file documents the same surface but `yo schema` is authoritative. If a command appears here but not in `yo schema`, trust the schema.\n\n## Installation\n\n```bash\nnpm install -g @yo-protocol\u002Fcli\n# or run on demand without installing\nnpx @yo-protocol\u002Fcli@latest \u003Ccommand>\n```\n\nBinary: `yo` (or `npx yo`). npm: \u003Chttps:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@yo-protocol\u002Fcli>.\n\n## Global options\n\nEvery command inherits these. The `--json` flag is **required for agent use** — without it, output is interactive\u002Ftext and not parseable.\n\n| Flag              | Description                                                    | Default | Env          |\n| ----------------- | -------------------------------------------------------------- | ------- | ------------ |\n| `--rpc-url \u003Curl>` | RPC endpoint for on-chain reads                                | public  | `YO_RPC_URL` |\n| `--chain \u003Cid>`    | Chain ID: `1` (Ethereum), `8453` (Base), or `42161` (Arbitrum) | `1`     | —            |\n| `--json`          | Force JSON output (agent compat). **Use on every agent call.** | off     | —            |\n| `--raw`           | Treat amounts as raw bigint strings (skip decimal conversion)  | off     | —            |\n| `-V, --version`   | Print version                                                  | —       | —            |\n| `-h, --help`      | Help (per command and global)                                  | —       | —            |\n\n**Public RPC rate-limits aggressively.** For any command that touches chain state (`position`, `portfolio`, `rewards`, etc.), set `YO_RPC_URL` to a paid endpoint:\n\n```bash\nexport YO_RPC_URL=https:\u002F\u002Fbase-mainnet.g.alchemy.com\u002Fv2\u002F\u003CKEY>\n```\n\n## Output shape\n\nPrepare commands return `{ ok, result }`. Read commands return either `{ ok, result }` or bare JSON — vary by command, never both. Errors always return:\n\n```json\n{ \"ok\": false, \"error\": { \"code\": \"\u003CCODE>\", \"message\": \"...\" } }\n```\n\nError codes: `INVALID_VAULT`, `INVALID_AMOUNT`, `INVALID_ADDRESS`, `INVALID_CHAIN`, `RPC_ERROR`, `API_ERROR`, `UNKNOWN_ERROR`.\n\nBigints are serialized as strings. Decimal-aware fields have a `_formatted` companion (e.g. `balance` + `balance_formatted`, `assets` + `assets_formatted`).\n\n## Supported chains\n\nVaults and the YO Gateway are deployed on three chains:\n\n| Chain ID | Network    | `--chain` value |\n| -------- | ---------- | --------------- |\n| `1`      | `ethereum` | `1`             |\n| `8453`   | `base`     | `8453`          |\n| `42161`  | `arbitrum` | `42161`         |\n\nYO Gateway address (same on every chain): `0xF1EeE0957267b1A474323Ff9CfF7719E964969FA`.\n\n## Vault catalog\n\n| ID       | Address                                      | Underlying | Decimals | Chains         |\n| -------- | -------------------------------------------- | ---------- | -------- | -------------- |\n| `yoETH`  | `0x3a43aec53490cb9fa922847385d82fe25d0e9de7` | WETH       | 18       | 1, 8453        |\n| `yoBTC`  | `0xbcbc8cb4d1e8ed048a6276a5e94a3e952660bcbc` | cbBTC      | 8        | 1, 8453        |\n| `yoUSD`  | `0x0000000f2eb9f69274678c76222b35eec7588a65` | USDC       | 6        | 1, 8453, 42161 |\n| `yoEUR`  | `0x50c749ae210d3977adc824ae11f3c7fd10c871e9` | EURC       | 6        | 1, 8453        |\n| `yoGOLD` | `0x586675A3a46B008d8408933cf42d8ff6c9CC61a1` | XAUt       | 6        | 1              |\n| `yoUSDT` | `0xb9a7da9e90d3b428083bae04b860faa6325b721e` | USDT       | 6        | 1              |\n\nVault IDs (e.g. `yoUSD`) and addresses are interchangeable wherever a `\u003Cvault>` argument is accepted. Run `yo --json vaults` for live APY\u002FTVL.\n\n______________________________________________________________________\n\n## Commands\n\n### Discovery\n\n#### `yo schema`\n\nPrint the full CLI schema (vaults, chains, gateway, every command with options) as JSON. **Source of truth for agent discovery.**\n\n```bash\nyo --json schema\n```\n\n### Read commands (vaults, positions, rewards)\n\n#### `yo vaults`\n\nList all vaults with APY and TVL for the active `--chain`.\n\n```bash\nyo --chain 8453 --json vaults\n```\n\n#### `yo vault \u003Cid>`\n\nDetailed info for a single vault.\n\n```bash\nyo --chain 8453 --json vault yoUSD\n```\n\n#### `yo position \u003Cvault> --user \u003Caddr>`\n\nUser's shares + asset value in one vault on the active chain. Reads `balanceOf` and `convertToAssets` on-chain (matches the dapp). Requires `--rpc-url` or `YO_RPC_URL`.\n\n```bash\nyo --chain 8453 --json position yoUSD --user 0xAbc...\n```\n\nReturns: `{ vault, shares, assets, shares_formatted, assets_formatted }`.\n\n#### `yo portfolio --user \u003Caddr>`\n\nUser's positions across **all vaults and all chains** in one call.\n\n```bash\nyo --json portfolio --user 0xAbc...\n```\n\n#### `yo pending-redeems \u003Cvault> --user \u003Caddr>`\n\nUser's queued (async) redemption for a vault.\n\n```bash\nyo --chain 8453 --json pending-redeems yoUSD --user 0xAbc...\n```\n\nReturns: `{ assets: {raw,formatted}, shares: {raw,formatted} }`. When `shares.raw == 0`, the redeem has settled (a YO solver auto-fulfills async redeems on-chain within ~24h; no user claim transaction).\n\n#### `yo user-perf \u003Cvault> --user \u003Caddr>`\n\nUser P&L for one vault (realized + unrealized).\n\n```bash\nyo --chain 8453 --json user-perf yoUSD --user 0xAbc...\n```\n\nReturns: `{ realized: {raw,formatted}, unrealized: {raw,formatted} }`.\n\n#### `yo history \u003Cvault> [--user \u003Caddr>] [--limit \u003Cn>]`\n\nTransaction history for a vault (or for a user within a vault).\n\n```bash\nyo --chain 8453 --json history yoUSD --user 0xAbc... --limit 20\n```\n\n#### `yo perf \u003Cvault>`\n\nVault performance benchmark vs DeFiLlama peers (no user required).\n\n```bash\nyo --chain 8453 --json perf yoUSD\n```\n\n#### `yo rewards --user \u003Caddr>`\n\nClaimable Merkl rewards. Hybrid call: fetches proofs\u002Famounts from Merkl's API, reads `claimed(user, token)` from the Merkl Distributor on-chain.\n\n```bash\nyo --chain 8453 --json rewards --user 0xAbc...\n```\n\nResponse mirrors the Merkl API: `[{ chain, rewards: [{ token, amount, claimed, pending, proofs, ... }] }, ...]`. Claimable = `amount - claimed`. `pending` is in dispute period and is **not** claimable yet.\n\nThe CLI does **not** prepare a Merkl claim transaction. Encode the call to the Merkl Distributor at `0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae` (Base) separately — see [yo-base-mcp-plugin\u002FSKILL.md](..\u002Fyo-base-mcp-plugin\u002FSKILL.md) for the full claim flow.\n\n#### `yo yo-rewards --user \u003Caddr>`\n\n`$YO` token rewards (season campaigns, RLP, airdrops) — separate from Merkl.\n\n```bash\nyo --chain 8453 --json yo-rewards --user 0xAbc...\n```\n\n#### `yo leaderboard [--token \u003Caddr>]`\n\nTop reward earners.\n\n```bash\nyo --chain 8453 --json leaderboard\n```\n\n#### `yo prices`\n\nCurrent asset prices used by the YO indexer.\n\n```bash\nyo --json prices\n```\n\n#### `yo yield \u003Cvault>` \u002F `yo tvl \u003Cvault>` \u002F `yo share-price \u003Cvault>`\n\nHistorical time series for one vault.\n\n```bash\nyo --chain 8453 --json yield yoUSD\nyo --chain 8453 --json tvl yoUSD\nyo --chain 8453 --json share-price yoUSD\n```\n\n### Prepare commands (unsigned calldata)\n\nAll prepare commands target the YO Gateway and produce unsigned `{ to, data, value }` ready for Safe \u002F AA \u002F Base MCP `send_calls`.\n\n#### `yo prepare approve`\n\n```bash\nyo --chain 8453 --json prepare approve \\\n  --token 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 \\\n  --amount 100 \\\n  --spender 0xF1EeE0957267b1A474323Ff9CfF7719E964969FA \\\n  --decimals 6\n```\n\n| Flag               | Required                | Default    | Notes                                                        |\n| ------------------ | ----------------------- | ---------- | ------------------------------------------------------------ |\n| `--token \u003Caddr>`   | yes                     | —          | ERC-20 to approve                                            |\n| `--amount \u003Cn>`     | yes                     | —          | Decimal amount unless `--raw`                                |\n| `--spender \u003Caddr>` | no                      | YO Gateway | Defaults to the YO Gateway                                   |\n| `--decimals \u003Cn>`   | required unless `--raw` | —          | Needed because the CLI doesn't always read decimals from RPC |\n\nReturns: `{ ok: true, result: { to, data, value } }`.\n\n#### `yo prepare deposit`\n\nBuild a YO Gateway deposit transaction. **Requires a separate approve to the Gateway first** (or use `deposit-with-approval` below).\n\n```bash\nyo --chain 8453 --json prepare deposit \\\n  --vault yoUSD \\\n  --amount 100 \\\n  --recipient 0xAbc... \\\n  --slippage-bps 50\n```\n\n| Flag                 | Required | Default | Notes                            |\n| -------------------- | -------- | ------- | -------------------------------- |\n| `--vault \u003Cid\\|addr>` | yes      | —       | Vault ID or address              |\n| `--amount \u003Cn>`       | yes      | —       | Decimal unless `--raw`           |\n| `--recipient \u003Caddr>` | yes      | —       | Recipient of the minted shares   |\n| `--slippage-bps \u003Cn>` | no       | `50`    | Plain basis points (`50` = 0.5%) |\n\nReturns: `{ ok: true, result: { to: Gateway, data, value: \"0\" } }`.\n\n#### `yo prepare redeem`\n\nBuild a YO Gateway redeem transaction. The Gateway routes to instant or async automatically based on idle balance. **The Gateway needs allowance on the user's vault shares** — first-time withdraws must include `prepare approve --token \u003Cvault> --spender \u003CGateway>` first (Uniswap-style, one-time `maxUint256`).\n\n```bash\nyo --chain 8453 --json prepare redeem \\\n  --vault yoUSD \\\n  --shares 5 \\\n  --recipient 0xAbc... \\\n  --slippage-bps 50\n```\n\n| Flag                 | Required | Default | Notes                                |\n| -------------------- | -------- | ------- | ------------------------------------ |\n| `--vault \u003Cid\\|addr>` | yes      | —       | Vault ID or address                  |\n| `--shares \u003Cn>`       | yes      | —       | Share amount, decimal unless `--raw` |\n| `--recipient \u003Caddr>` | yes      | —       | Recipient of the underlying assets   |\n| `--slippage-bps \u003Cn>` | no       | `50`    | Plain basis points                   |\n\nReturns: `{ ok: true, result: { to: Gateway, data, value: \"0\" } }`.\n\n#### `yo prepare deposit-with-approval`\n\nAtomic approve + deposit, ready for `send_calls` as an ordered batch. Reads the user's current allowance on-chain and only includes an `approve` call if needed. **Preferred path for agent deposits.**\n\n```bash\nyo --chain 8453 --json prepare deposit-with-approval \\\n  --vault yoUSD \\\n  --token 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 \\\n  --owner 0xAbc... \\\n  --recipient 0xAbc... \\\n  --amount 100 \\\n  --slippage-bps 50\n```\n\n| Flag                 | Required | Default | Notes                             |\n| -------------------- | -------- | ------- | --------------------------------- |\n| `--vault \u003Cid\\|addr>` | yes      | —       | Vault ID or address               |\n| `--token \u003Caddr>`     | yes      | —       | Underlying token to approve       |\n| `--owner \u003Caddr>`     | yes      | —       | Token owner (for allowance check) |\n| `--recipient \u003Caddr>` | yes      | —       | Recipient of minted shares        |\n| `--amount \u003Cn>`       | yes      | —       | Decimal unless `--raw`            |\n| `--slippage-bps \u003Cn>` | no       | `50`    | Plain basis points                |\n\nReturns: `{ ok: true, result: [ { to: token, data: approve, value: \"0\" }, { to: Gateway, data: deposit, value: \"0\" } ] }`. The approve element is omitted when allowance already covers the amount.\n\n______________________________________________________________________\n\n## Common workflows\n\n### Same-chain deposit (Safe \u002F AA \u002F Base MCP)\n\n```bash\nyo --chain 8453 --json prepare deposit-with-approval \\\n   --vault yoUSD \\\n   --token 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 \\\n   --owner   0xUser \\\n   --recipient 0xUser \\\n   --amount 100 \\\n   --slippage-bps 50\n```\n\nTake `result[]` and submit as `send_calls(chain=\"base\", calls=result[])`.\n\n### Withdraw\n\nFirst-time withdraws need a one-shot approval of vault shares to the Gateway:\n\n```bash\nyo --chain 8453 --json prepare approve \\\n   --token 0x0000000f2eB9f69274678c76222B35eEc7588a65 \\\n   --spender 0xF1EeE0957267b1A474323Ff9CfF7719E964969FA \\\n   --amount \u003Cmax> --decimals 6\n\nyo --chain 8453 --json prepare redeem \\\n   --vault yoUSD --shares 1 --recipient 0xUser --slippage-bps 50\n```\n\nSubmit both calls together via `send_calls`. After the first redeem on a given vault, the approve step can be skipped.\n\n### Check position & pending state\n\n```bash\nyo --chain 8453 --json position yoUSD --user 0xUser\nyo --chain 8453 --json pending-redeems yoUSD --user 0xUser\nyo --chain 8453 --json user-perf yoUSD --user 0xUser\n```\n\n### Discover everything programmatically\n\n```bash\nyo --json schema | jq '.commands[].name'\n```\n\n______________________________________________________________________\n\n## Notes for agent integrations\n\n- **Always pass `--json`.** Without it, output is interactive (TUI-flavoured text), not machine-parseable.\n- **Set `YO_RPC_URL`** to a paid RPC (Alchemy, Infura, …) — public endpoints rate-limit chain reads.\n- **Use vault IDs** (`yoUSD`) in commands, not addresses, when possible — fewer mistakes, easier to read in transcripts.\n- **Gateway is the spender** for both deposit (approve underlying) and redeem (approve vault shares). Default to `0xF1EeE0957267b1A474323Ff9CfF7719E964969FA`.\n- **Slippage is plain basis points.** `50` = 0.5%. CLI default 50; YO HTTP API `\u002Ftransactions\u002FzapIn` default 25.\n- **Partner ID `9999`** is baked into the Gateway calldata by the SDK. Apps with their own partner attribution should call `@yo-protocol\u002Fcore` directly (see the SDK skill) — the CLI doesn't expose a `--partner-id` flag yet.\n- **Cross-chain deposits are not in this CLI.** Use the YO HTTP API at `GET https:\u002F\u002Fapi.yo.xyz\u002Fapi\u002Fv1\u002Ftransactions\u002FzapIn` when `fromChainId != toChainId`.\n- **Merkl claims are not in this CLI.** Encode `claim(...)` on the Merkl Distributor directly (see [yo-base-mcp-plugin\u002FSKILL.md](..\u002Fyo-base-mcp-plugin\u002FSKILL.md)).\n- **Errors** are JSON to stderr with `{ ok: false, error: { code, message } }`. If `ok == false`, stop — never invent replacement parameters.\n\n## Related\n\n- [`yo-base-mcp-plugin`](..\u002Fyo-base-mcp-plugin\u002FSKILL.md) — Base MCP plugin that wraps this CLI plus the YO HTTP API for chat-only surfaces.\n- [`yo-protocol-sdk`](..\u002Fyo-protocol-sdk\u002FSKILL.md) — `@yo-protocol\u002Fcore` TypeScript SDK. The CLI is a thin shim over this; chain support, ABIs, and slippage math live in `core`.\n- [`yo-protocol-react`](..\u002Fyo-protocol-react\u002FSKILL.md) — React hooks\u002Fcomponents.\n","Official YO Protocol skill. Canonical repository: \u003Chttps:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills>.\n\n# YO Protocol CLI — Reference\n\nAgent-first interface for YO Protocol ERC-4626 vaults. Outputs JSON to stdout, errors to stderr. **Never requires or accepts private keys.** Designed for agents, bots, scripts, Safe\u002FAA wallets, and Base MCP `send_calls`.\n\n**Canonical source for the command surface is `yo schema`** — this file documents the same surface but `yo schema` is authoritative. If a command appears here but not in `yo schema`, trust the schema.\n\n## Installation\n\n```bash\nnpm install -g @yo-protocol\u002Fcli\n# or run on demand without installing\nnpx @yo-protocol\u002Fcli@latest \u003Ccommand>\n```\n\nBinary: `yo` (or `npx yo`). npm: \u003Chttps:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@yo-protocol\u002Fcli>.\n\n## Global options\n\nEvery command inherits these. The `--json` flag is **required for agent use** — without it, output is interactive\u002Ftext and not parseable.\n\n| Flag              | Description                                                    | Default | Env          |\n| ----------------- | -------------------------------------------------------------- | ------- | ------------ |\n| `--rpc-url \u003Curl>` | RPC endpoint for on-chain reads                                | public  | `YO_RPC_URL` |\n| `--chain \u003Cid>`    | Chain ID: `1` (Ethereum), `8453` (Base), or `42161` (Arbitrum) | `1`     | —            |\n| `--json`          | Force JSON output (agent compat). **Use on every agent call.** | off     | —            |\n| `--raw`           | Treat amounts as raw bigint strings (skip decimal conversion)  | off     | —            |\n| `-V, --version`   | Print version                                                  | —       | —            |\n| `-h, --help`      | Help (per command and global)                                  | —       | —            |\n\n**Public RPC rate-limits aggressively.** For any command that touches chain state (`position`, `portfolio`, `rewards`, etc.), set `YO_RPC_URL` to a paid endpoint:\n\n```bash\nexport YO_RPC_URL=https:\u002F\u002Fbase-mainnet.g.alchemy.com\u002Fv2\u002F\u003CKEY>\n```\n\n## Output shape\n\nPrepare commands return `{ ok, result }`. Read commands return either `{ ok, result }` or bare JSON — vary by command, never both. Errors always return:\n\n```json\n{ \"ok\": false, \"error\": { \"code\": \"\u003CCODE>\", \"message\": \"...\" } }\n```\n\nError codes: `INVALID_VAULT`, `INVALID_AMOUNT`, `INVALID_ADDRESS`, `INVALID_CHAIN`, `RPC_ERROR`, `API_ERROR`, `UNKNOWN_ERROR`.\n\nBigints are serialized as strings. Decimal-aware fields have a `_formatted` companion (e.g. `balance` + `balance_formatted`, `assets` + `assets_formatted`).\n\n## Supported chains\n\nVaults and the YO Gateway are deployed on three chains:\n\n| Chain ID | Network    | `--chain` value |\n| -------- | ---------- | --------------- |\n| `1`      | `ethereum` | `1`             |\n| `8453`   | `base`     | `8453`          |\n| `42161`  | `arbitrum` | `42161`         |\n\nYO Gateway address (same on every chain): `0xF1EeE0957267b1A474323Ff9CfF7719E964969FA`.\n\n## Vault catalog\n\n| ID       | Address                                      | Underlying | Decimals | Chains         |\n| -------- | -------------------------------------------- | ---------- | -------- | -------------- |\n| `yoETH`  | `0x3a43aec53490cb9fa922847385d82fe25d0e9de7` | WETH       | 18       | 1, 8453        |\n| `yoBTC`  | `0xbcbc8cb4d1e8ed048a6276a5e94a3e952660bcbc` | cbBTC      | 8        | 1, 8453        |\n| `yoUSD`  | `0x0000000f2eb9f69274678c76222b35eec7588a65` | USDC       | 6        | 1, 8453, 42161 |\n| `yoEUR`  | `0x50c749ae210d3977adc824ae11f3c7fd10c871e9` | EURC       | 6        | 1, 8453        |\n| `yoGOLD` | `0x586675A3a46B008d8408933cf42d8ff6c9CC61a1` | XAUt       | 6        | 1              |\n| `yoUSDT` | `0xb9a7da9e90d3b428083bae04b860faa6325b721e` | USDT       | 6        | 1              |\n\nVault IDs (e.g. `yoUSD`) and addresses are interchangeable wherever a `\u003Cvault>` argument is accepted. Run `yo --json vaults` for live APY\u002FTVL.\n\n______________________________________________________________________\n\n## Commands\n\n### Discovery\n\n#### `yo schema`\n\nPrint the full CLI schema (vaults, chains, gateway, every command with options) as JSON. **Source of truth for agent discovery.**\n\n```bash\nyo --json schema\n```\n\n### Read commands (vaults, positions, rewards)\n\n#### `yo vaults`\n\nList all vaults with APY and TVL for the active `--chain`.\n\n```bash\nyo --chain 8453 --json vaults\n```\n\n#### `yo vault \u003Cid>`\n\nDetailed info for a single vault.\n\n```bash\nyo --chain 8453 --json vault yoUSD\n```\n\n#### `yo position \u003Cvault> --user \u003Caddr>`\n\nUser's shares + asset value in one vault on the active chain. Reads `balanceOf` and `convertToAssets` on-chain (matches the dapp). Requires `--rpc-url` or `YO_RPC_URL`.\n\n```bash\nyo --chain 8453 --json position yoUSD --user 0xAbc...\n```\n\nReturns: `{ vault, shares, assets, shares_formatted, assets_formatted }`.\n\n#### `yo portfolio --user \u003Caddr>`\n\nUser's positions across **all vaults and all chains** in one call.\n\n```bash\nyo --json portfolio --user 0xAbc...\n```\n\n#### `yo pending-redeems \u003Cvault> --user \u003Caddr>`\n\nUser's queued (async) redemption for a vault.\n\n```bash\nyo --chain 8453 --json pending-redeems yoUSD --user 0xAbc...\n```\n\nReturns: `{ assets: {raw,formatted}, shares: {raw,formatted} }`. When `shares.raw == 0`, the redeem has settled (a YO solver auto-fulfills async redeems on-chain within ~24h; no user claim transaction).\n\n#### `yo user-perf \u003Cvault> --user \u003Caddr>`\n\nUser P&L for one vault (realized + unrealized).\n\n```bash\nyo --chain 8453 --json user-perf yoUSD --user 0xAbc...\n```\n\nReturns: `{ realized: {raw,formatted}, unrealized: {raw,formatted} }`.\n\n#### `yo history \u003Cvault> [--user \u003Caddr>] [--limit \u003Cn>]`\n\nTransaction history for a vault (or for a user within a vault).\n\n```bash\nyo --chain 8453 --json history yoUSD --user 0xAbc... --limit 20\n```\n\n#### `yo perf \u003Cvault>`\n\nVault performance benchmark vs DeFiLlama peers (no user required).\n\n```bash\nyo --chain 8453 --json perf yoUSD\n```\n\n#### `yo rewards --user \u003Caddr>`\n\nClaimable Merkl rewards. Hybrid call: fetches proofs\u002Famounts from Merkl's API, reads `claimed(user, token)` from the Merkl Distributor on-chain.\n\n```bash\nyo --chain 8453 --json rewards --user 0xAbc...\n```\n\nResponse mirrors the Merkl API: `[{ chain, rewards: [{ token, amount, claimed, pending, proofs, ... }] }, ...]`. Claimable = `amount - claimed`. `pending` is in dispute period and is **not** claimable yet.\n\nThe CLI does **not** prepare a Merkl claim transaction. Encode the call to the Merkl Distributor at `0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae` (Base) separately — see [yo-base-mcp-plugin\u002FSKILL.md](..\u002Fyo-base-mcp-plugin\u002FSKILL.md) for the full claim flow.\n\n#### `yo yo-rewards --user \u003Caddr>`\n\n`$YO` token rewards (season campaigns, RLP, airdrops) — separate from Merkl.\n\n```bash\nyo --chain 8453 --json yo-rewards --user 0xAbc...\n```\n\n#### `yo leaderboard [--token \u003Caddr>]`\n\nTop reward earners.\n\n```bash\nyo --chain 8453 --json leaderboard\n```\n\n#### `yo prices`\n\nCurrent asset prices used by the YO indexer.\n\n```bash\nyo --json prices\n```\n\n#### `yo yield \u003Cvault>` \u002F `yo tvl \u003Cvault>` \u002F `yo share-price \u003Cvault>`\n\nHistorical time series for one vault.\n\n```bash\nyo --chain 8453 --json yield yoUSD\nyo --chain 8453 --json tvl yoUSD\nyo --chain 8453 --json share-price yoUSD\n```\n\n### Prepare commands (unsigned calldata)\n\nAll prepare commands target the YO Gateway and produce unsigned `{ to, data, value }` ready for Safe \u002F AA \u002F Base MCP `send_calls`.\n\n#### `yo prepare approve`\n\n```bash\nyo --chain 8453 --json prepare approve \\\n  --token 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 \\\n  --amount 100 \\\n  --spender 0xF1EeE0957267b1A474323Ff9CfF7719E964969FA \\\n  --decimals 6\n```\n\n| Flag               | Required                | Default    | Notes                                                        |\n| ------------------ | ----------------------- | ---------- | ------------------------------------------------------------ |\n| `--token \u003Caddr>`   | yes                     | —          | ERC-20 to approve                                            |\n| `--amount \u003Cn>`     | yes                     | —          | Decimal amount unless `--raw`                                |\n| `--spender \u003Caddr>` | no                      | YO Gateway | Defaults to the YO Gateway                                   |\n| `--decimals \u003Cn>`   | required unless `--raw` | —          | Needed because the CLI doesn't always read decimals from RPC |\n\nReturns: `{ ok: true, result: { to, data, value } }`.\n\n#### `yo prepare deposit`\n\nBuild a YO Gateway deposit transaction. **Requires a separate approve to the Gateway first** (or use `deposit-with-approval` below).\n\n```bash\nyo --chain 8453 --json prepare deposit \\\n  --vault yoUSD \\\n  --amount 100 \\\n  --recipient 0xAbc... \\\n  --slippage-bps 50\n```\n\n| Flag                 | Required | Default | Notes                            |\n| -------------------- | -------- | ------- | -------------------------------- |\n| `--vault \u003Cid\\|addr>` | yes      | —       | Vault ID or address              |\n| `--amount \u003Cn>`       | yes      | —       | Decimal unless `--raw`           |\n| `--recipient \u003Caddr>` | yes      | —       | Recipient of the minted shares   |\n| `--slippage-bps \u003Cn>` | no       | `50`    | Plain basis points (`50` = 0.5%) |\n\nReturns: `{ ok: true, result: { to: Gateway, data, value: \"0\" } }`.\n\n#### `yo prepare redeem`\n\nBuild a YO Gateway redeem transaction. The Gateway routes to instant or async automatically based on idle balance. **The Gateway needs allowance on the user's vault shares** — first-time withdraws must include `prepare approve --token \u003Cvault> --spender \u003CGateway>` first (Uniswap-style, one-time `maxUint256`).\n\n```bash\nyo --chain 8453 --json prepare redeem \\\n  --vault yoUSD \\\n  --shares 5 \\\n  --recipient 0xAbc... \\\n  --slippage-bps 50\n```\n\n| Flag                 | Required | Default | Notes                                |\n| -------------------- | -------- | ------- | ------------------------------------ |\n| `--vault \u003Cid\\|addr>` | yes      | —       | Vault ID or address                  |\n| `--shares \u003Cn>`       | yes      | —       | Share amount, decimal unless `--raw` |\n| `--recipient \u003Caddr>` | yes      | —       | Recipient of the underlying assets   |\n| `--slippage-bps \u003Cn>` | no       | `50`    | Plain basis points                   |\n\nReturns: `{ ok: true, result: { to: Gateway, data, value: \"0\" } }`.\n\n#### `yo prepare deposit-with-approval`\n\nAtomic approve + deposit, ready for `send_calls` as an ordered batch. Reads the user's current allowance on-chain and only includes an `approve` call if needed. **Preferred path for agent deposits.**\n\n```bash\nyo --chain 8453 --json prepare deposit-with-approval \\\n  --vault yoUSD \\\n  --token 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 \\\n  --owner 0xAbc... \\\n  --recipient 0xAbc... \\\n  --amount 100 \\\n  --slippage-bps 50\n```\n\n| Flag                 | Required | Default | Notes                             |\n| -------------------- | -------- | ------- | --------------------------------- |\n| `--vault \u003Cid\\|addr>` | yes      | —       | Vault ID or address               |\n| `--token \u003Caddr>`     | yes      | —       | Underlying token to approve       |\n| `--owner \u003Caddr>`     | yes      | —       | Token owner (for allowance check) |\n| `--recipient \u003Caddr>` | yes      | —       | Recipient of minted shares        |\n| `--amount \u003Cn>`       | yes      | —       | Decimal unless `--raw`            |\n| `--slippage-bps \u003Cn>` | no       | `50`    | Plain basis points                |\n\nReturns: `{ ok: true, result: [ { to: token, data: approve, value: \"0\" }, { to: Gateway, data: deposit, value: \"0\" } ] }`. The approve element is omitted when allowance already covers the amount.\n\n______________________________________________________________________\n\n## Common workflows\n\n### Same-chain deposit (Safe \u002F AA \u002F Base MCP)\n\n```bash\nyo --chain 8453 --json prepare deposit-with-approval \\\n   --vault yoUSD \\\n   --token 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 \\\n   --owner   0xUser \\\n   --recipient 0xUser \\\n   --amount 100 \\\n   --slippage-bps 50\n```\n\nTake `result[]` and submit as `send_calls(chain=\"base\", calls=result[])`.\n\n### Withdraw\n\nFirst-time withdraws need a one-shot approval of vault shares to the Gateway:\n\n```bash\nyo --chain 8453 --json prepare approve \\\n   --token 0x0000000f2eB9f69274678c76222B35eEc7588a65 \\\n   --spender 0xF1EeE0957267b1A474323Ff9CfF7719E964969FA \\\n   --amount \u003Cmax> --decimals 6\n\nyo --chain 8453 --json prepare redeem \\\n   --vault yoUSD --shares 1 --recipient 0xUser --slippage-bps 50\n```\n\nSubmit both calls together via `send_calls`. After the first redeem on a given vault, the approve step can be skipped.\n\n### Check position & pending state\n\n```bash\nyo --chain 8453 --json position yoUSD --user 0xUser\nyo --chain 8453 --json pending-redeems yoUSD --user 0xUser\nyo --chain 8453 --json user-perf yoUSD --user 0xUser\n```\n\n### Discover everything programmatically\n\n```bash\nyo --json schema | jq '.commands[].name'\n```\n\n______________________________________________________________________\n\n## Notes for agent integrations\n\n- **Always pass `--json`.** Without it, output is interactive (TUI-flavoured text), not machine-parseable.\n- **Set `YO_RPC_URL`** to a paid RPC (Alchemy, Infura, …) — public endpoints rate-limit chain reads.\n- **Use vault IDs** (`yoUSD`) in commands, not addresses, when possible — fewer mistakes, easier to read in transcripts.\n- **Gateway is the spender** for both deposit (approve underlying) and redeem (approve vault shares). Default to `0xF1EeE0957267b1A474323Ff9CfF7719E964969FA`.\n- **Slippage is plain basis points.** `50` = 0.5%. CLI default 50; YO HTTP API `\u002Ftransactions\u002FzapIn` default 25.\n- **Partner ID `9999`** is baked into the Gateway calldata by the SDK. Apps with their own partner attribution should call `@yo-protocol\u002Fcore` directly (see the SDK skill) — the CLI doesn't expose a `--partner-id` flag yet.\n- **Cross-chain deposits are not in this CLI.** Use the YO HTTP API at `GET https:\u002F\u002Fapi.yo.xyz\u002Fapi\u002Fv1\u002Ftransactions\u002FzapIn` when `fromChainId != toChainId`.\n- **Merkl claims are not in this CLI.** Encode `claim(...)` on the Merkl Distributor directly (see [yo-base-mcp-plugin\u002FSKILL.md](..\u002Fyo-base-mcp-plugin\u002FSKILL.md)).\n- **Errors** are JSON to stderr with `{ ok: false, error: { code, message } }`. If `ok == false`, stop — never invent replacement parameters.\n\n## Related\n\n- [`yo-base-mcp-plugin`](..\u002Fyo-base-mcp-plugin\u002FSKILL.md) — Base MCP plugin that wraps this CLI plus the YO HTTP API for chat-only surfaces.\n- [`yo-protocol-sdk`](..\u002Fyo-protocol-sdk\u002FSKILL.md) — `@yo-protocol\u002Fcore` TypeScript SDK. The CLI is a thin shim over this; chain support, ABIs, and slippage math live in `core`.\n- [`yo-protocol-react`](..\u002Fyo-protocol-react\u002FSKILL.md) — React hooks\u002Fcomponents.\n",{"name":5,"author":9,"source":49,"homepage":50,"description":7},"https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills\u002Ftree\u002Fmain\u002Fskills\u002Fyo-protocol-cli","https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills","85ca86ba6f1e897b87386540895633537cd0567a","skills\u002Fyo-protocol-cli",0,"https:\u002F\u002Fwww.yo.xyz","https:\u002F\u002Fgithub.com\u002Fyoprotocol","https:\u002F\u002Fwww.yo.xyz\u002F","The best yield in DeFi, period.","2026-06-02 15:57:30",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add yoprotocol\u002Fyo-protocol-skills --skill yo-protocol-cli",{"tool":65,"command":66},"bunx","bunx skills add yoprotocol\u002Fyo-protocol-skills --skill yo-protocol-cli",{"tool":68,"command":69},"pnpm","pnpm dlx skills add yoprotocol\u002Fyo-protocol-skills --skill yo-protocol-cli","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills\u002Fblob\u002Fmain\u002Fskills\u002Fyo-protocol-cli\u002FSKILL.md",true,[],[74,97,118,146,164,190],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":83,"publishedAt":44},"01M6CS7MTTR71862B7EF3BS8G9","yo-protocol-sdk","ALWAYS use this skill when the user writes TypeScript or JavaScript code that imports from `@yo-protocol\u002Fcore`, uses `createYoClient`, or programmatically interacts with Yo Protocol vaults (yoETH, yoUSD, yoBTC, yoEUR, yoGOLD, yoUSDT) via the SDK. This skill covers the complete `@yo-protocol\u002Fcore` SDK: client initialization (createYoClient, multi-chain publicClients, partnerId), vault reads (getVaultState, previewDeposit, previewRedeem, isPaused), user reads (getUserPosition, getShareBalance, getTokenBalance, getAllowance), prepared transactions (prepareDepositWithApproval, prepareRedeemWithApproval, prepareApprove), REST API queries (getVaultSnapshot, getVaultYieldHistory, getVaultTvlHistory, getUserHistory, getUserPerformance), Merkl reward claims (getClaimableRewards, prepareClaimMerklRewards), and utilities (parseTokenAmount, formatTokenAmount, VAULTS registry, gateway address). Trigger for Node.js scripts, backend services, bots, Safe\u002FAA batch transaction builders, or any non-React TypeScript code that interacts with Yo Protocol. Also trigger when the user mentions the Yo gateway, PreparedTransaction, ERC-4626 vault interactions specific to Yo, or asks about vault addresses and token addresses per chain. Do NOT use for React hooks (use yo-protocol-react) or CLI shell commands (use yo-protocol-cli).","https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills\u002Fblob\u002Fmain\u002Fskills\u002Fyo-protocol-sdk\u002FSKILL.md",[80],{"categoryNo":81,"categoryName":82,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[84,27,26,85,86,29,87,30,88,89,90,91,33,92,39,93,94,40,95,96],"sdk","yo protocol sdk","javascript","core","batch","gateway","REST","api","use","queries","do","bots","backend services",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":107,"publishedAt":44},"01M6CS7H051N19JKSVQD7AFFDM","yo-protocol-react-sdk","ALWAYS use this skill when the user is working with React components or hooks that interact with Yo Protocol vaults, or imports from `@yo-protocol\u002Freact`. This skill covers the full React SDK: YieldProvider setup, query hooks (useVaultState, useVaultSnapshot, useUserPosition, useTokenBalance, useShareBalance, useAllowance, useMerklRewards, useLeaderboard, usePrices, etc.), action hooks (useDeposit, useRedeem, useApprove, useClaimMerklRewards), and migration from the old API (useVault→useVaultState, useUserBalance→useUserPosition, inputToken→token, account→owner, partnerId string→number, publicClient→publicClients). Trigger whenever the user mentions yo protocol React hooks, vault dashboard components, deposit\u002Fredeem UI flows, YieldProvider, useYoClient, @yo-protocol\u002Freact, yo-kit, or asks to build React components for yoETH, yoUSD, yoBTC, yoEUR, yoGOLD, or yoUSDT vaults. Also trigger when the user has broken imports or API changes after upgrading @yo-protocol\u002Freact. Do NOT use for CLI shell commands (use yo-protocol-cli) or server-side Node.js scripts without React (use yo-protocol-sdk).","https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills\u002Fblob\u002Fmain\u002Fskills\u002Fyo-protocol-react\u002FSKILL.md",[103,106],{"categoryNo":104,"categoryName":105,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":81,"categoryName":82,"taxonomyType":21,"taxonomyTypeDesc":22},[84,29,27,26,108,24,109,110,111,112,113,114,91,115,92,39,116,94,40,117],"yo protocol react sdk","github","dashboard","components","react components","server","vault","broken","build","query",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":133,"publishedAt":44},"01M6CS79KBBDT71057WFHMQVHC","yo-design","Create distinctive, production-grade React + Tailwind v4 interfaces in YO's dark-theme aesthetic (#000 background, #D6FF34 neon accent, Space Grotesk). Use this skill when the user asks to build web components, pages, dashboards, or applications for YO — including vault displays, DeFi interfaces, landing pages, or any UI that should follow the YO brand. Also use when the user mentions \"YO theme\", \"YO style\", \"YO brand\", or asks to style something with the neon-on-black look.","https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills\u002Fblob\u002Fmain\u002Fskills\u002Fyo-design\u002FSKILL.md",[124,125,128],{"categoryNo":104,"categoryName":105,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":126,"categoryName":127,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":129,"categoryName":130,"taxonomyType":131,"taxonomyTypeDesc":132},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[134,135,109,136,111,29,137,138,27,139,140,114,141,142,143,92,144,145,116,40],"design","yo design","web","web components","create","https","applications","Tailwind","brand","landing","aesthetic","tailwind v4",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":153,"publishedAt":44},"01M6CS75XVA4Y5XD6X884A8MVN","yo-base-mcp-plugin","Base MCP plugin for YO Protocol — ERC-4626 yield vaults with ERC-7540 async redemption on Ethereum (1), Base (8453), and Arbitrum (42161). Both deposit and withdraw route through the YO Gateway. Use when the user wants to view YO vaults, check positions\u002Fbalances\u002Frewards, deposit, request a redeem (instant or async), or claim Merkl rewards via Base MCP's `send_calls`. Triggers on YO Protocol, yoUSD, yoETH, yoBTC, yoEUR, yoGOLD, yoUSDT, \"deposit into yo\", \"withdraw from yo\", \"yo vault\", or \"claim yo rewards\".","https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills\u002Fblob\u002Fmain\u002Fskills\u002Fyo-base-mcp-plugin\u002FSKILL.md",[152],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[43,154,155,156,109,27,89,139,32,114,157,158,159,160,92,161,40,162,163,26],"plugin","base","yo base mcp plugin","instant","check","view","redemption","async","route","claim",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":171,"publishedAt":44},"01M6CS71D42M6B8A0R7FGCDYY7","risk-graph","Use Risk Graph's paid agent API (`\u002Fapi\u002Fv1\u002Fagent\u002F*`) — a DeFi risk-intelligence graph covering pools, assets, protocols, and chains, monetised via the [x402](https:\u002F\u002Fx402.org) micropayment standard over USDC on Base mainnet (chain id `8453`). Every endpoint costs between $0.001 and $0.75 per call; the payer pays no gas — settlement is EIP-3009 `transferWithAuthorization` via the Coinbase CDP facilitator. Use whenever an agent needs structured, programmatic DeFi-risk data and is willing to pay per call: ranking pools by risk, comparing protocols, fetching chain-level risk signals, mapping dependency chains between pools\u002Fassets, extracting subgraphs around a node, explaining why a node is risky, or building an autonomous agent that consumes on-chain risk intelligence. Make sure to use this skill whenever the user mentions Risk Graph, risk-graph, DeFi risk score, pool risk, protocol risk, chain risk, asset risk, node risk explain, subgraph extraction, dependency chain, `\u002Fapi\u002Fv1\u002Fagent\u002F`, x402, paid agent API, USDC paywall, EIP-3009 paywall, Coinbase CDP facilitator, or building AI agents that consume on-chain risk intelligence — even if they don't explicitly name \"Risk Graph\". Triggers on mentions of Risk Graph, risk-graph API, DeFi risk scoring, x402 paywall, USDC micropayments on Base, agent-facing DeFi data, pool\u002Fprotocol\u002Fasset\u002Fchain risk lookup, dependency-graph traversal, subgraph extraction, or paid `\u002Fapi\u002Fv1\u002Fagent\u002F*` endpoints.","https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills\u002Fblob\u002Fmain\u002Fskills\u002Frisk-graph\u002FSKILL.md",[170],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[172,173,174,175,176,177,178,179,91,180,181,182,183,184,185,40,186,187,188,189],"graph","risk","risk graph","ai agents","risk scoring","defi","data","endpoint","why","node","autonomous","gas","dependency","cdp","x402","coinbase","scoring","intelligence",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":196,"publishedAt":44},"01M6CS6YVBG96M4AG32H5SG51F","yo-protocol-skills","Official Yo Protocol skills bundle (SDK, CLI, React)","https:\u002F\u002Fgithub.com\u002Fyoprotocol\u002Fyo-protocol-skills\u002Fblob\u002Fmain\u002FSKILL.md",[],[27,197,24,109,84,29,198,139],"yo protocol skills","official"]