Agent402 / tools / defi-yields

DeFi yield screener

$0.003 per call · USDC via x402 · POST /api/defi-yields

Screen DeFi yield pools (lending, LP, staking, vaults) across every chain from DefiLlama's free Yields dataset: filter by chain, project, token symbol, stablecoin-only, minimum TVL and minimum/maximum APY; sort by apy or tvl; limit up to 100. Each row carries pool id, project, chain, symbol, TVL, total/base/reward APY, 1d/7d/30d APY change, 30d mean APY, IL risk, exposure (single/multi), reward tokens and DefiLlama's outlier flag. The ~11MB upstream document is fetched once per 5 minutes and served from an in-process cache, so answers are bounded and fast. Keyless public data.

TRY IN PLAYGROUND →

Input

FieldTypeDescription
chainstringChain name as DefiLlama uses it (Ethereum, Base, Arbitrum, Solana, BSC, Optimism...). Case-insensitive, common aliases accepted. Omit for all chains.
projectstringProject slug substring (aave-v3, uniswap-v3, morpho, pendle, curve-dex...). Case-insensitive.
symbolstringToken symbol filter, e.g. USDC or WETH-USDC; matches any leg of the pool symbol (case-insensitive).
stablecoinOnlybooleantrue = only stablecoin pools.
minTvlUsdnumberMinimum pool TVL in USD (default 10000; pass 0 for no floor).
minApynumberMinimum total APY in percent.
maxApynumberMaximum total APY in percent (drops headline outliers).
exposurestring"single" or "multi" asset exposure.
excludeOutliersbooleanDrop pools DefiLlama flags as APY outliers (default true).
sortstring"tvl" (default) or "apy", descending.
limitnumberRows to return (default 20, max 100).

Example output

{
  "source": "defillama-yields",
  "fetchedAt": "2026-08-22T12:00:00.000Z",
  "cached": true,
  "filters": {
    "chain": "Base",
    "project": null,
    "symbol": null,
    "stablecoinOnly": true,
    "minTvlUsd": 1000000,
    "minApy": null,
    "maxApy": null,
    "exposure": null,
    "excludeOutliers": true
  },
  "sort": "apy",
  "matched": 42,
  "count": 1,
  "pools": [
    {
      "pool": "54e9b138-3146-4c1f-8dce-1cb948f5ef96",
      "chain": "Base",
      "project": "morpho-v1",
      "symbol": "USDC",
      "tvlUsd": 25000000,
      "apy": 6.1,
      "apyBase": 4.9,
      "apyReward": 1.2,
      "apyPct1D": -0.04,
      "apyPct7D": 0.5,
      "apyPct30D": -0.05,
      "apyMean30d": 5.8,
      "stablecoin": true,
      "ilRisk": "no",
      "exposure": "single",
      "poolMeta": null,
      "rewardTokens": [],
      "underlyingTokens": [
        "0x8335..."
      ],
      "volumeUsd1d": null,
      "volumeUsd7d": null,
      "outlier": false,
      "prediction": {
        "class": "Stable/Up",
        "probability": 67
      }
    }
  ]
}

Try it - see the 402 challenge (free)

curl -i -X POST https://agent402.tools/api/defi-yields \
  -H "Content-Type: application/json" \
  -d '{"chain":"Base","stablecoinOnly":true,"minTvlUsd":1000000,"sort":"apy","limit":5}'

The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:

Paid call (JavaScript agent)

import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://agent402.tools/api/defi-yields", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "chain": "Base",
    "stablecoinOnly": true,
    "minTvlUsd": 1000000,
    "sort": "apy",
    "limit": 5
  }),
});
Wallet-only. This tool reaches the network/browser/storage, so it is paid in USDC via x402 (no proof-of-work tier).

Related tools

Crypto order book

$0.003 · GET /api/crypto-orderbook

L2 order-book snapshot for a spot pair: best bid/ask, mid price, spread (absolute + %), and the top N aggregated price l…

try in playground →

Stablecoin peg monitor

$0.003 · GET /api/stablecoin-peg

Live $1-peg deviation for the top USD stablecoins (USDT, USDC, USDS, DAI, USDe, PYUSD, USDD, TUSD, FDUSD by default, or …

try in playground →

Wallet balance (native + ERC-20)

$0.002 · POST /api/wallet-balance

Look up the native coin balance (ETH/MATIC) plus every ERC-20 holding for a wallet address on Ethereum, Base, Polygon, A…

try in playground →