Portable skills for AI agents working with Juicebox V6. The hosted MCP works with any agent or client that supports MCP over Streamable HTTP.
Every skill is written against V6 source (nana-*-v6, revnet-core-v6,
croptop-core-v6, bendystraw-v6) with addresses generated from
deploy-all-v6 deployment artifacts. One contract set, one address per contract
on every supported chain (Ethereum, Optimism, Base, Arbitrum + Sepolia testnets).
Each skill is a directory with a SKILL.md entry point using the open
Agent Skills format. Extract the desired
archive from plugins/juicebox-v6/dist/ into your agent's skill directory, keeping
the inner skill folder and its bundled files together. Each archive contains the
shared addresses, ABIs, and helpers referenced by that skill.
Agents without native skill discovery can read SKILL.md and its referenced
files as task context. Skill names in the tables below identify directories;
invocation syntax and installation locations depend on the agent. The MCP can
also be used independently of the skills.
Optional Claude packaging: Claude Code users can install the existing plugin
with /plugin marketplace add mejango/juicebox-skills followed by
/plugin install juicebox-v6@juicebox. Claude Console users can upload a ZIP.
These are client-specific packaging options for the same skill content.
These skills operate on V6 only. Keep { version: 6, chainId, projectId } together; reject explicit unsupported versions and never use a name or ID alone as a transaction target. The hosted MCP at https://juicebox.center/mcp provides project resolution, live reads, unsigned plans, and reviewed project metadata publishing. Wallet signatures remain external.
The skills provide instructions and examples; the MCP provides callable V6 tools. Add a remote MCP server in your agent's settings:
| Setting | Value |
|---|---|
| Suggested server name | juicebox |
| URL | https://juicebox.center/mcp |
| Transport | Streamable HTTP |
Any agent with this MCP transport can use the same endpoint and tool schemas. Custom agents can connect through a compatible MCP client or adapter. Installing skill files alone does not establish an MCP connection. No private Bendystraw or pinning-provider key belongs in the client configuration.
These examples configure the same endpoint; each client has its own configuration format. They are examples, not an exhaustive compatibility list.
Codex CLI (setup documentation):
codex mcp add juicebox --url https://juicebox.center/mcpClaude Code, local scope for the current project (setup documentation):
claude mcp add --transport http juicebox https://juicebox.center/mcpCursor, .cursor/mcp.json (setup documentation):
{
"mcpServers": {
"juicebox": { "url": "https://juicebox.center/mcp" }
}
}VS Code, .vscode/mcp.json (setup documentation):
{
"servers": {
"juicebox": { "type": "http", "url": "https://juicebox.center/mcp" }
}
}For another agent, enter the URL and Streamable HTTP transport using its own MCP settings rather than assuming one of these configuration formats applies.
Once connected, start with jb_list_capabilities and the client's tool discovery.
Use the returned tool names and input schemas; clients may prefix server tool names.
| Work | MCP starting points |
|---|---|
| Resolve and inspect a V6 project | jb_resolve_project, jb_search_projects, jb_get_project |
| Inspect buyback/router, 721, or revnet state | jb_get_routing, jb_get_721_shop, jb_get_revnet |
| Review a prepared transaction | jb_inspect_plan, jb_simulate_plan, jb_verify_plan |
| Prepare and publish project metadata | jb_prepare_project_metadata, then authorized jb_pin_project_metadata |
| Build against the SDK and webclients | jb_plan_integration, jb_list_webclient_references, jb_get_webclient_reference |
| Investigate V6 source and skills | jb_search_reference, jb_get_reference |
Read the MCP's user journeys for complete workflows and coverage. Transaction plans stay unsigned until an external wallet executes them. Metadata pinning is a separate public upload that requires authorization for the exact document. If the MCP is unavailable, continue with the applicable V6 SDK/source workflow; do not claim a tool ran or substitute another protocol version. An unconfigured network remains unavailable.
| I want to... | Use this skill |
|---|---|
| Find the correct V6 project from a name, URL, or ID | jb-project-identity |
| Prepare and pin project metadata JSON to IPFS | jb-project-metadata |
| Create a new project | jb-project |
| Build a custom pay hook | jb-pay-hook |
| Query project state | jb-query |
| Query indexed data (GraphQL) | jb-bendystraw |
| Decode a transaction | jb-decode |
| Build a project explorer UI | jb-explorer-ui |
| Calculate cash out amounts | jb-cash-out-curve |
| Handle multi-currency payments | jb-multi-currency |
| Work with revnet loans | jb-revloans |
| Bridge tokens cross-chain | jb-suckers |
| Post content via Croptop | jb-croptop |
| Skill | Identifier | Description |
|---|---|---|
| V6 API | jb-v6-api |
Function signatures across core + ecosystem contracts |
| V6 Implementation | jb-v6-impl |
Internal mechanics, fee math, packing, edge cases |
| Contracts | jb-contracts |
Contract inventory and addresses |
| Currency Types | jb-currency-types |
Price-feed IDs vs token-derived accounting currencies |
| Project Identity | jb-project-identity |
Resolve and verify V6 names, URLs, chain IDs, and project IDs |
| Project Metadata | jb-project-metadata |
Review and pin metadata JSON; obtain the real project URI |
| Project | jb-project |
Create projects with rulesets and terminals |
| Ruleset | jb-ruleset |
Design and queue ruleset configurations |
| Multi-Currency | jb-multi-currency |
ETH vs USDC accounting and currency codes |
| Query | jb-query |
Query project state from the blockchain |
| Decode | jb-decode |
Decode Juicebox transaction calldata |
| Patterns | jb-patterns |
Common integration patterns |
| Simplify | jb-simplify |
Simplify complex JB concepts |
| Docs | jb-docs |
Query Juicebox documentation |
| Skill | Identifier | Description |
|---|---|---|
| Pay Hook | jb-pay-hook |
Generate pay hooks for custom payment processing |
| Cash Out Hook | jb-cash-out-hook |
Generate cash out hooks for reclaim logic |
| Split Hook | jb-split-hook |
Generate split hooks for payout routing |
| 721 Per-Chain Config | jb-721-per-chain-config |
Per-chain NFT tier configuration |
| 721 Tier Content | jb-721-tier-content |
Tier metadata, IPFS encoding, resolvers |
| Skill | Identifier | Description |
|---|---|---|
| Terminal Selection | jb-terminal-selection |
Terminal resolution and the router terminal |
| Terminal Wrapper | jb-terminal-wrapper |
Extend terminal functionality |
| Protocol Fees | jb-protocol-fees |
Standard 2.5% fee, held fees, feeless addresses |
| Fee Flows | jb-fee-flows |
How fees route to the NANA fee project |
| Fund Access Limits | jb-fund-access-limits |
Payout limits and surplus allowances |
| Cash Out Curve | jb-cash-out-curve |
Bonding curve reclaim calculations |
| Permit2 Metadata | jb-permit2-metadata |
Gasless ERC20 payments and metadata encoding |
| Skill | Identifier | Description |
|---|---|---|
| Suckers | jb-suckers |
Cross-chain token bridging |
| Relayr | jb-relayr |
Multi-chain transaction relay API |
| Omnichain ERC20 Config | jb-omnichain-erc20-config |
Per-chain token addresses in sucker configs |
| Omnichain Payout Limits | jb-omnichain-payout-limits |
Per-chain vs aggregate limit constraints |
| Per-Chain Project IDs | jb-omnichain-per-chain-projectids |
Resolving a project's IDs across chains |
| Tier Quantity Per Chain | jb-omnichain-tier-quantity-per-chain |
NFT supply is per-chain |
| Skill | Identifier | Description |
|---|---|---|
| Revnet Economics | revnet-economics |
Economic thresholds and stage design |
| Revnet Modeler | revnet-modeler |
Simulation and parameter planning |
| Revnet Omnichain Default | revnet-omnichain-default |
Deploying revnets across chains |
| Reserved Rate Off-Chain Revenue | jb-reserved-rate-offchain-revenue |
Splitting off-chain revenue on-chain |
| REVLoans | jb-revloans |
Loan borrow/repay/reallocate mechanics |
| Loan Queries | jb-loan-queries |
Query REVLoans data via Bendystraw |
| Croptop | jb-croptop |
Permissioned posting and minting |
| Skill | Identifier | Description |
|---|---|---|
| Bendystraw | jb-bendystraw |
GraphQL indexer — all queries use version: 6 |
| Skill | Identifier | Description |
|---|---|---|
| Deploy UI | jb-deploy-ui |
Project deployment interfaces |
| Explorer UI | jb-explorer-ui |
Etherscan-like contract explorer |
| Event Explorer UI | jb-event-explorer-ui |
Browse and filter contract events |
| Ruleset Timeline UI | jb-ruleset-timeline-ui |
Visual ruleset history |
| NFT Gallery UI | jb-nft-gallery-ui |
Browse 721 hook NFT collections |
| Hook Deploy UI | jb-hook-deploy-ui |
Compile and deploy custom hooks |
| Interact UI | jb-interact-ui |
Pay, cash out, and manage projects |
| Omnichain UI | jb-omnichain-ui |
Multi-chain deployment interfaces |
plugins/juicebox-v6/shared/chain-config.json— canonical per-chain V6 addresses (generated fromdeploy-all-v6/deployments)plugins/juicebox-v6/shared/abis/*.json— verified ABIs from deployment artifactsplugins/juicebox-v6/shared/wallet-utils.js,styles.css— helpers bundled into UI skills
See plugins/juicebox-v6/CONVENTIONS.md. Ground every claim in V6 source; addresses
come only from chain-config.json; rebuild portable skill archives with
plugins/juicebox-v6/build-skills.sh.