Skip to content

Add YO Protocol native plugin (on-chain)#81

Open
AndonMitev wants to merge 1 commit into
base:masterfrom
AndonMitev:add-yo-protocol-plugin
Open

Add YO Protocol native plugin (on-chain)#81
AndonMitev wants to merge 1 commit into
base:masterfrom
AndonMitev:add-yo-protocol-plugin

Conversation

@AndonMitev

Copy link
Copy Markdown

What

Adds skills/base-mcp/plugins/yo.md — a native Base MCP plugin for YO Protocol — and registers it in the base-mcp SKILL.md plugin table.

Submitted in response to Base's invitation to author a native plugin per the plugin spec. (Noting the current CONTRIBUTING.md line about core-team-only contributions — happy to adjust if the process differs.)

About YO

YO Protocol is an ERC-4626 yield aggregator with ERC-7540-style async redemption, live on Base, Ethereum, and Arbitrum. Both deposit and withdraw route through the YO Gateway (0xF1EeE0957267b1A474323Ff9CfF7719E964969FA, same address on every chain).

Scope — four operations, fully on-chain

Operation Path
getVaults baked-in vault registry + on-chain totalAssets/totalSupply
yoPositions balanceOfconvertToAssetspendingRedeemRequest, aggregated by (vault id + underlying) across chains
deposit approve(underlying→Gateway) + Gateway.deposit
withdraw approve(shares→Gateway) + Gateway.redeem

integration: semantic-base-tool. Reads go through chain_rpc_request; writes are unsigned calldata to send_calls. No external service — no API host to allowlist, no CLI, no MCP dependency — so it works on every surface from day one. (APY/yield and cross-chain zaps aren't on-chain-derivable and are intentionally out of scope.)

A note on integration

semantic-base-tool is the only "no external service" value, but it nominally describes composing swap/send rather than building raw calldata. This plugin builds raw calldata for send_calls with no external service in the path — I've stated that plainly in Overview/Submission. Happy to relabel if you'd prefer a different classification for a pure-on-chain, calldata-building plugin.

Verification

  • All 11 selectors verified against viem.
  • Gateway deposit/redeem signatures + param order checked against YO's canonical ABI.
  • The 14-deployment registry (addresses, decimals, per-chain underlying) read live on Base/Ethereum/Arbitrum.
  • Live mainnet round-trip through Base MCP: deposit (0x942a1f717627f5b794f18e8f4e6c630a5877c598faa4d795c87ebeaafa05a74d) + instant redeem (0xdcda0814759eba5f6f699c68c2c1fbf07a3c99339cfbcd5c089c0f142450f4e4), both confirmed.

Authoring checklist

  • All required frontmatter fields; valid enums; tags for discovery
  • Onboarding callout first
  • All R sections present, canonical headings, canonical order
  • ## Submission names send_calls with the exact mapping
  • ## Risks & Warnings (slippage, irreversible)
  • Registered in SKILL.md plugin table

Adds skills/base-mcp/plugins/yo.md and registers it in the base-mcp
SKILL.md plugin table.

YO Protocol is an ERC-4626 yield aggregator with ERC-7540 async
redemption on Base, Ethereum, and Arbitrum. The plugin covers four
operations — getVaults, yoPositions, deposit, withdraw — entirely
on-chain: reads via chain_rpc_request, unsigned calldata via
send_calls. No external API, no allowlist, no CLI.
@cb-heimdall

Copy link
Copy Markdown
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 1
Sum 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants