Protocols ranked by fees paid by users or by revenue kept, with 24h, 7d, 30d, 1y
Protocols ranked by fees paid by users or by revenue kept, with 24h, 7d, 30d, 1y and all-time totals, change, category and chains, and chain-level gas fees on request. Use it when an agent is comparing protocols on real usage rather than TVL or valuing a token against the fees its protocol earns.
Answeringour last check, 2026-09-24
1 of 1checks answered this week
1011 msmedian answer time
$0.002listed price per call
$0.002price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://agent402.tools/api/defi-fees
| Category | Market data |
|---|---|
| Provider host | agent402.tools |
| Networks | algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=, eip155:10, eip155:1329, eip155:137, eip155:143, eip155:42161, eip155:42220, eip155:43114, eip155:4663, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, stellar:pubnet |
| Payment schemes | exact, upto |
| Self-reported calls, 30 days | 4 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-24 | valid payment request | 402 | $0.002 | 1011 ms |
Example input (from the provider)
{
"body": {
"limit": 5,
"metric": "fees"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"category": {
"description": "Optional category filter (Dexs, Lending, Derivatives, Liquid Staking, ...). Case-insensitive exact match.",
"type": "string"
},
"chain": {
"description": "Optional chain scope as DefiLlama names it (Ethereum, Base, Solana, Arbitrum, BSC, OP Mainnet...). Case-insensitive; common aliases accepted. Omit for all chains.",
"type": "string"
},
"limit": {
"description": "Rows to return (default 25, max 100).",
"type": "number"
},
"metric": {
"description": "\"fees\" (default) or \"revenue\".",
"type": "string"
},
"search": {
"description": "Optional name/slug substring filter (case-insensitive).",
"type": "string"
},
"type": {
"description": "Row type: \"protocol\" (default), \"chain\" (chain-level rows such as network gas fees), or \"all\".",
"type": "string"
}
},
"required": []
},
"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": {
"properties": {
"cached": {
"type": "boolean"
},
"chain": {},
"chains": {
"type": "array"
},
"count": {
"type": "integer"
},
"fetchedAt": {
"type": "string"
},
"matched": {
"type": "integer"
},
"metric": {
"type": "string"
},
"protocols": {
"type": "array"
},
"source": {
"type": "string"
},
"totals": {
"type": "object"
},
"unit": {
"type": "string"
}
},
"required": [
"source",
"fetchedAt",
"cached",
"metric",
"unit",
"totals",
"chains",
"matched",
"count",
"protocols"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}