Enter DeFi yield positions end-to-end, Yield.xyz AgentKit discovers 2,988 yield opportunities across 80+ networks, MoonPay handles wallet auth and transaction signing.
Discover and enter on-chain yield positions end-to-end, Yield.xyz AgentKit MCP builds the transactions, MoonPay signs and broadcasts them.
Never call the Yield.xyz API directly (e.g. via curl or HTTP requests). Direct API calls require an API key and will return 401 Unauthorized. All Yield.xyz data and transactions must go through the connected MCP server, no API key is needed when using MCP.
This skill requires both MCP servers to be connected:
| MCP | Role | Tools used |
|---|---|---|
| Yield.xyz AgentKit | Yield discovery + transaction building | yields_get_all, yields_get, yields_get_validators, yields_get_balances, , , |
actions_enteractions_exitactions_manage| MoonPay | Auth + wallet + sign + broadcast | wallet_list, transaction_sign, transaction_send, token_balance_list and more |
If either MCP is missing, stop and tell the user. See
references/setup.md for connection instructions.
For exact input types for all Yield.xyz AgentKit MCP tools, see references/input-format.md.
For all Yield.xyz tool display rules, number formatting, badges, tables, and action summaries, see references/output-formats.md.
Never dump raw JSON or plain comma-separated data. Always follow the formats defined there.
MANDATORY: Before querying anything from Yield.xyz AgentKit MCP read references/input-format.md and before displaying any results, read references/output-formats.md using the Read tool. Do not skip this step.
You must follow the guidelines defined in policies.md for Yield AgentKit MCP API usage, data fetching, and efficiency.
Before anything else:
wallet_list to confirm a wallet existsaddress used in all AgentKit MCP callsCall yields_get_all with the user's preferred network and token.
limit: 20 unless user asks for moretype values: staking, restaking, lending, vault, real_world_asset, concentrated_liquidity_pool, liquidity_poolCall yields_get with the chosen yieldId. Read:
mechanics.arguments.enter — exact fields required for this yieldmechanics.entryLimits — min/max amountsinputTokens[] — what tokens are acceptedmechanics.requiresValidatorSelection — if true, call yields_get_validatorsNever skip this step. Each yield has a different schema.
If mechanics.requiresValidatorSelection === true:
yields_get_validatorsCall actions_enter with:
yieldIdaddress — from MoonPay wallet (Step 1)arguments — exactly as defined in mechanics.arguments.enter"1" = 1 ETH, "100" = 100 USDCThe response contains transactions[] ordered by stepIndex.
This step is critical. Read references/moonpay-tools.md in full before proceeding.
Mistakes here result in permanent loss of funds or a silent failure
You now have transactions[] from Step 5, ordered by stepIndex.
Execute each transaction sequentially, never in parallel, never out of order.
Do not begin transaction N+1 until transaction N is CONFIRMED.
After all transactions are confirmed:
yields_get_balances with the network and addressFor claiming rewards, restaking, or exiting:
yields_get_balances — read pendingActions[]type, passthrough, optional argumentsactions_manage or actions_exit with values from the response| Situation | Action |
|---|---|
| MoonPay not authenticated | Guide through mp login + email code verification |
| No wallet found | Guide through mp wallet create MyWallet |
| Yield.xyz 400 — wrong arguments | Re-fetch yield schema, rebuild arguments |
| Transaction FAILED | Do not retry automatically — report to user with txHash |
| 429 rate limit | Respect retry-after header |
Read these on demand when you need specifics:
references/setup.md — installing both MCPs, auth flow, prerequisitesreferences/key-rules.md — argument rules, amount formatting, tx orderingreferences/moonpay-tools.md — MoonPay MCP tool referencereferences/policies.md — API usage and policiesreferences/output-formats.md — output formats for agent to follow to display the outputs to user