-
Notifications
You must be signed in to change notification settings - Fork 0
eng-3151-add-coinbase-connector #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Ishita-02
wants to merge
8
commits into
main
Choose a base branch
from
eng-3151-base-plugin
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
2307889
feat: add coinbase connector
Ishita-02 7672f3b
feat: coinbase connector
Ishita-02 443536d
fix: address cursorbot comments
Ishita-02 45dd5fc
fix: address cursorbot comments
Ishita-02 d63c9b7
fix: address comments
Ishita-02 6e34032
fix: address comments
Ishita-02 af0df93
fix: add coinbase .codex-plugin manifest and README comparison-table …
Philippoes 24f7420
fix: address review feedback on docs and symlink path
Ishita-02 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
plugins/yield-xyz-agentkit-coinbase/.claude-plugin/plugin.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| { | ||
| "name": "yield-xyz-agentkit-coinbase", | ||
| "description": "The Coinbase connector — a self-contained skill that discovers yields and signs + broadcasts them via a Base Account (Base MCP).", | ||
| "version": "1.0.0", | ||
| "author": { "name": "Yield.xyz", "url": "https://yield.xyz" }, | ||
| "homepage": "https://docs.yield.xyz", | ||
| "repository": "https://github.com/stakekit/agentkit", | ||
| "keywords": ["defi", "yield", "base", "coinbase", "connector", "wallet", "signing", "web3"], | ||
| "components": { "skills": ["./skills"] } | ||
| } |
24 changes: 24 additions & 0 deletions
24
plugins/yield-xyz-agentkit-coinbase/.codex-plugin/plugin.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| { | ||
| "name": "yield-xyz-agentkit-coinbase", | ||
| "version": "1.0.0", | ||
| "description": "The Coinbase connector — a self-contained skill that discovers Yield.xyz yields and signs + broadcasts them via a Base Account (Base MCP).", | ||
| "author": { "name": "Yield.xyz", "url": "https://yield.xyz" }, | ||
| "homepage": "https://docs.yield.xyz", | ||
| "repository": "https://github.com/stakekit/agentkit", | ||
| "license": "MIT", | ||
| "keywords": ["defi", "yield", "base", "coinbase", "connector", "wallet", "signing", "web3"], | ||
| "skills": "./skills", | ||
| "mcpServers": "./.mcp.json", | ||
| "interface": { | ||
| "displayName": "Yield.xyz AgentKit + Coinbase", | ||
| "shortDescription": "The Coinbase connector — discover yields and sign + broadcast via a Base Account.", | ||
| "longDescription": "A self-contained skill that discovers yields via the Yield.xyz MCP and signs + broadcasts them through Coinbase's Base Account (Base MCP). Bundles its own yield logic and MCP config — no base plugin required.", | ||
| "category": "Finance", | ||
| "capabilities": ["Interactive", "Read", "Write"], | ||
| "websiteURL": "https://yield.xyz", | ||
| "privacyPolicyURL": "https://docs.yield.xyz/docs/privacy-policy", | ||
| "termsOfServiceURL": "https://docs.yield.xyz/docs/terms-of-use", | ||
| "defaultPrompt": ["Show my Base Account wallet.", "Find the best USDC yields on Base and deposit 100 USDC.", "Check my current yield positions."], | ||
| "brandColor": "#0052FF" | ||
| } | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| { | ||
| "mcpServers": { | ||
| "yield-xyz-agentkit-coinbase": { | ||
| "command": "npx", | ||
| "args": ["-y", "mcp-remote", "https://mcp.yield.xyz/p/coinbase/mcp"] | ||
| } | ||
| } | ||
| } | ||
|
Ishita-02 marked this conversation as resolved.
|
||
120 changes: 120 additions & 0 deletions
120
plugins/yield-xyz-agentkit-coinbase/skills/yield-xyz-agentkit-coinbase/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,120 @@ | ||
| # Yield.xyz AgentKit × Coinbase Skill | ||
|
|
||
| > A self-contained skill that discovers on-chain yields via the Yield.xyz MCP and signs + broadcasts them through a Base Account (via Base MCP). "Base" here means Coinbase's Base Account / Base MCP. | ||
|
|
||
| --- | ||
|
|
||
| ## How it works | ||
|
|
||
| Two MCP servers, one skill: | ||
|
|
||
| ``` | ||
| User prompt | ||
| │ | ||
| ▼ | ||
| Yield.xyz MCP Base MCP | ||
| ───────────── ──────── | ||
| yields_get_all → get_wallets (get address) | ||
| yields_get → get_portfolio (check balance) | ||
| actions_enter → send_calls (sign + broadcast) → approve in Base Account | ||
| ← txHash returned via get_request_status | ||
| yields_get_balances confirm position | ||
| ``` | ||
|
|
||
| **Yield.xyz MCP** handles: yield discovery, schema validation, transaction building | ||
| **Base** handles: Base Account session, signing, broadcasting | ||
|
|
||
| --- | ||
|
|
||
| ## Requirements | ||
|
|
||
| | Requirement | Details | | ||
| |---|---| | ||
| | Claude Code | [Install guide](https://code.claude.com/docs/en/quickstart) | | ||
| | Yield.xyz MCP | `https://mcp.yield.xyz/p/coinbase/mcp` (HTTP) | | ||
| | Base MCP | `https://mcp.base.org` (HTTP) | | ||
| | Base Account | Authorized session (a wallet returned by `get_wallets`) | | ||
|
|
||
| --- | ||
|
|
||
| ## Install | ||
|
|
||
| Open Claude Code and say: | ||
|
|
||
| ``` | ||
| Set up the yield-xyz-agentkit-coinbase skill | ||
| ``` | ||
|
|
||
| Claude will read `SKILL.md` and register both MCPs (if not already connected), then | ||
| confirm the Base Account session via `get_wallets`, guiding authorization if needed. | ||
| Installing the plugin auto-registers the Yield.xyz MCP via its `.mcp.json`. | ||
|
|
||
| --- | ||
|
|
||
| ## Verify setup | ||
|
|
||
| After setup, confirm both MCPs are connected: | ||
|
|
||
| ``` | ||
| /context | ||
| ``` | ||
|
|
||
| `yield-xyz-agentkit-coinbase` and `base-mcp` should appear under connected MCP servers. Then | ||
| confirm they work: | ||
|
|
||
| ``` | ||
| Show my Base Account wallet | ||
| ``` | ||
| ``` | ||
| Find USDC yields on Base | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## Try it | ||
|
|
||
| Once both MCPs are connected and your Base Account holds funds: | ||
|
|
||
| ``` | ||
| Find the best USDC yields on Base and deposit 100 USDC | ||
| ``` | ||
| ``` | ||
| Check my current yield positions | ||
| ``` | ||
|
|
||
| Claude loads the skill, calls the right tools in order, confirms each step with you, | ||
| has you approve the transaction in your Base Account, and submits the hash back to | ||
| Yield.xyz after broadcasting. | ||
|
|
||
| --- | ||
|
|
||
| ## Folder structure | ||
|
|
||
| The Coinbase `SKILL.md` and its Base-specific setup are its own; the reference files | ||
| are **symlinks into the core `yield-xyz-agentkit` skill** (single source of truth), so | ||
| shared yield guidance never drifts. | ||
|
|
||
| ``` | ||
| yield-xyz-agentkit-coinbase/ | ||
| ├── SKILL.md # discover via Yield.xyz MCP, sign/broadcast via Base Account | ||
| ├── README.md # This file | ||
| └── references/ # → symlinks into the core yield-xyz-agentkit skill's references/ | ||
| ├── key-rules.md # yield rules, amounts, validator selection, tool → API mapping | ||
| ├── output-formats.md # display rules, tables, action summaries | ||
| ├── policies.md # API usage and efficiency | ||
| ├── rwa-overview.md # real-world-asset yields + eligibility gate | ||
| └── kyc-flows.md # KYC/eligibility flows for permissioned RWA yields | ||
| ``` | ||
|
|
||
| > **Dev note:** on a **marketplace** install these symlinks are dereferenced and the | ||
| > content is copied into the plugin cache. **Local `--plugin-dir` / checkout installs do | ||
| > not follow cross-plugin symlinks**, so for local development install via the | ||
| > marketplace (or ensure the core skill is present). Verify a real marketplace install | ||
| > before relying on the links. | ||
|
|
||
| --- | ||
|
|
||
| ## Related | ||
|
|
||
| - [Base MCP](https://mcp.base.org) — Base Account signing + broadcasting | ||
| - [Yield.xyz AgentKit docs](https://docs.yield.xyz/docs/agents-overview) — agentkit reference |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the reference files are now symlinks, three install paths depend on dereferencing working: Claude marketplace install (documented, but there's an open issue — anthropics/claude-code#57339 — reporting dangling symlinks in the cache for exactly this cross-plugin case), the Codex plugin path added here, and standalone npx skills add. Could we do one real install from this branch on each path and confirm the five files land as content, not broken links?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ran a real install from this branch on all three paths and checked what actually lands in references/:
Proposal: drop the .codex-plugin/plugin.json for coinbase and note in the README that Codex isn't a supported install target for this connector (cross-plugin symlinks).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was the reason i didn't add .codex-plugin for this connector, but i then saw philip added that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool we can either: (a) drop this file per your proposal and add a one-line "Codex isn't a supported install target for this connector (cross-plugin symlinks)" note to the README, or (b) if Codex support matters enough, materialize real copies for this plugin (e.g. a small sync script + CI drift check, the approach we considered before symlinks). Since @Philippoes added the manifest, flagging for his call — but let's not merge with the known-broken path in place.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ow that the three-path verification is done, this skill ReadMe dev note can state results instead of asking for them — e.g. "verified on Claude Code 2.1.159 (marketplace) and npx skills add" — and, depending on the Codex decision, add the "Codex isn't a supported install target for this connector" line here. Turns the caveat into documentation of what's actually known.