Real-time, risk-weighted USDC and WETH lending APY across Aave, Compound, Morpho, Moonwell, Euler and Fluid on Base — paid per call via x402.
$0.01/call3 free/day per IP via ?trial=1no API key
GET https://yieldsignal.vercel.app/signal/usdc-base-yield GET https://yieldsignal.vercel.app/signal/weth-base-yield
Call it without payment and you'll get a 402 Payment Required with the exact price/asset/network. Any x402-compatible client (e.g. @x402/fetch) completes the payment automatically. Add ?trial=1 to use one of the 3 free daily calls per IP instead of paying.
POST https://yieldsignal.vercel.app/mcp
Tool get_yield_signal (optional asset: "USDC" or "WETH", defaults to USDC), gated per-call via @x402/mcp — tools/list/initialize stay free, only the tool call is paid.
{
"asset": "USDC",
"bestProtocol": "compound",
"gapBps": 57,
"rates": [
{ "protocol": "compound", "apyBps": 490, "weightedApyBps": 485, "source": "onchain", "asOf": "..." },
{ "protocol": "moonwell", "apyBps": 440, "weightedApyBps": 387, "source": "defillama", "asOf": "..." }
]
}
source is onchain/api (read directly from the protocol — Aave, Compound and Morpho) or defillama (aggregator — Moonwell, Euler and Fluid) — a reading that fails or looks invalid is omitted, never estimated.
Two independent ways to check a response wasn't tampered with or fabricated, without needing to trust our uptime at query time:
personal_sign) by the same payTo address the 402 payment requirement names for that route. REST exposes it as X-Signal-Signature/X-Signal-Signer response headers over the exact response body; MCP returns it as a sibling content block over the exact previous block's text. Verify with viem's verifyMessage.payTo address. Published automatically whenever the signal changes materially or gets stale (not on every call — see track record).Registration file (ERC-8004) at /agent-card.json — a portable identity for this service, discoverable outside x402-specific directories. Once registered on-chain (IdentityRegistry), any buyer can leave verifiable feedback via the ReputationRegistry — see the agent card for both contract addresses.