Discover DeFi yield opportunities across 80+ networks — 3,300+ staking, lending, vault, an
Discover DeFi yield opportunities across 80+ networks — 3,300+ staking, lending, vault, and RWA yields from Lido, Aave, Morpho, and more. Filter by token, network, yield type, or provider and sort by APY or TVL. Returns yield IDs (needed by every other tool) with APY, TVL, lock-up/cooldown periods, and KYC gating. Start here.
1000 (raw units)
price
9
calls / 30d
6
unique payers
2026-09-12
updated
Provider
mcp.yield.xyz · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0xD433f056270912659f073D5FFE7Ae247e39235A5",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "1000",
"maxTimeoutSeconds": 300
},
{
"scheme": "exact",
"network": "eip155:196",
"payTo": "0x14c1cf26360F42681105A03137CF6951BdDB1293",
"asset": "0x4ae46a509f6b1d9056937ba4500cb143933d2dc8",
"amount": "1000",
"maxTimeoutSeconds": 300
},
{
"scheme": "exact",
"network": "eip155:196",
"payTo": "0x14c1cf26360F42681105A03137CF6951BdDB1293",
"asset": "0x779ded0c9e1022225f8e0630b35a9b54be713736",
"amount": "1000",
"maxTimeoutSeconds": 300
},
{
"scheme": "exact",
"network": "eip155:196",
"payTo": "0x14c1cf26360F42681105A03137CF6951BdDB1293",
"asset": "0x74b7f16337b8972027f6196a17a631ac6de26d22",
"amount": "1000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"limit": 5,
"networks": [
"base"
],
"token": "USDC"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"items": [
{
"id": "base-usdc-aave-v3-lending",
"inputTokens": [
{
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"network": "base",
"symbol": "USDC"
}
],
"kycRequired": false,
"name": "Aave V3 USDC Lending",
"network": "base",
"providerId": "aave-v3",
"rewardRate": 0.045,
"tokenSymbol": "USDC",
"tvlUsd": "128000000",
"type": "lending"
}
],
"limit": 1,
"offset": 0,
"total": 812
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"hasCooldownPeriod": {
"type": "boolean"
},
"hasWarmupPeriod": {
"type": "boolean"
},
"inputTokens": {
"items": {
"type": "string"
},
"type": "array"
},
"limit": {
"description": "Page size (default 20)",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"networks": {
"description": "Filter by networks, e.g. [\"ethereum\", \"base\", \"solana\"]",
"items": {
"type": "string"
},
"type": "array"
},
"offset": {
"description": "Pagination offset (default 0)",
"minimum": 0,
"type": "integer"
},
"providers": {
"items": {
"type": "string"
},
"type": "array"
},
"search": {
"description": "Free-text search over yield names/providers",
"type": "string"
},
"sort": {
"description": "Server-side sort, e.g. by APY or TVL (highest first)",
"type": "string"
},
"token": {
"description": "Token symbol, e.g. \"ETH\", \"USDC\", \"SOL\"",
"type": "string"
},
"types": {
"description": "Filter by yield type, e.g. [\"staking\", \"lending\", \"vault\", \"restaking\"]",
"items": {
"type": "string"
},
"type": "array"
},
"yieldIds": {
"description": "Fetch specific yield IDs (max 100)",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"description": "Core fields shown; the response carries additional fields depending on the yield/protocol (intentionally non-exhaustive).",
"properties": {
"items": {
"items": {
"properties": {
"id": {
"description": "Yield ID — pass to yields_get / actions_*",
"type": "string"
},
"inputTokens": {
"description": "Every accepted deposit token. More than one means actions_enter needs an explicit inputToken; a network other than the yield's own means it also needs inputTokenNetwork.",
"items": {
"properties": {
"address": {
"type": "string"
},
"network": {
"type": "string"
},
"symbol": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"kycRequired": {
"type": [
"boolean",
"null"
]
},
"name": {
"description": "Display name, e.g. \"Lido Staking\"",
"type": [
"string",
"null"
]
},
"network": {
"type": "string"
},
"providerId": {
"type": "string"
},
"rewardRate": {
"description": "APY as a decimal, e.g. 0.041 = 4.1%",
"type": "number"
},
"tokenSymbol": {
"type": "string"
},
"tvlUsd": {
"type": [
"string",
"null"
]
},
"type": {
"description": "e.g. \"staking\", \"lending\", \"vault\"",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"total": {
"type": "integer"
}
},
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://mcp.yield.xyz/x402/yields_get_all" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://mcp.yield.xyz/x402/yields_get_all");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://mcp.yield.xyz/x402/yields_get_all")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/2330.json, and this resource appears in /discovery/resources and /discovery/search.