Agent402 / tools / l2-tvl

L2 TVL ranking

$0.002 per call · USDC via x402 · POST /api/l2-tvl

Top L2s by TVL via DeFiLlama. Returns each L2 with TVL in USD, native token symbol, and CoinGecko/CMC ids. Classification combines DeFiLlama's parent-chain hint with a curated list of well-known L2s (Arbitrum, Optimism, Base, zkSync Era, Linea, Scroll, Mantle, Polygon zkEVM, Starknet, Blast, Mode, Manta, Metis, Polygon, Taiko, Immutable zkEVM, World Chain).

Input

FieldTypeDescription
limitnumberNumber of L2s to return (1-50, default 15).

Example output

{
  "count": 2,
  "totalTvlUsd": 5500000000,
  "chains": [
    {
      "name": "Arbitrum",
      "tvlUsd": 3000000000,
      "tokenSymbol": "ARB",
      "gecko": "arbitrum",
      "cmcId": 11841
    },
    {
      "name": "Base",
      "tvlUsd": 2500000000,
      "tokenSymbol": "ETH",
      "gecko": "base",
      "cmcId": null
    }
  ],
  "source": "defillama",
  "note": "TVL is the cross-DeFi snapshot from DeFiLlama; L2 classification combines parent-chain hint + a curated list of well-known L2s."
}

Try it — see the 402 challenge (free)

curl -i -X POST https://agent402.tools/api/l2-tvl \
  -H "Content-Type: application/json" \
  -d '{"limit":10}'

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/l2-tvl", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "limit": 10
  }),
});

Wallet-only. This tool reaches the network/browser/storage, so it is paid in USDC via x402 (no proof-of-work tier).

Related tools

Wallet balance (native + ERC-20)

USDC $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…

ERC-20 token metadata

USDC $0.001 · POST /api/token-metadata

Resolve an ERC-20 contract address to its on-chain metadata: symbol, decimals, name, and logo URL where available. Use t…

Token spot price (USD)

USDC $0.001 · POST /api/token-price

Return the current USD spot price for an ERC-20 token, identified by its contract address and network. Sourced from Alch…