Market data
Four endpoints pass through market context from public aggregators. Farbeam does not compute these numbers. It reads them, cuts them to a useful length and caches them. Each response names its source in meta.source. All cost 1 unit.
| Endpoint | Source | Cache | Rows | Site page |
|---|---|---|---|---|
| Chain TVL | DefiLlama | 10 min | Top 40 chains by TVL | Chains |
| Stablecoin supply | DefiLlama stablecoins | 10 min | Top 25 assets, top 25 chains | Stablecoins |
| DEX volume | DefiLlama | 15 min | Total, plus top 30 protocols | DEX volume |
| Trending pools | GeckoTerminal | 5 min, per chain | Up to 20 pools | Trending pools |
If the source fails and the cache has expired, the endpoint returns 502 upstream_unavailable with source. Old values are not served.
#Chain TVL
{
"rank": 1,
"name": "Ethereum",
"tvl_usd": 45955233298,
"token": "ETH",
"covered": "ethereum"
}covered holds the Farbeam chain id when the row maps to one of the seven chains, and null otherwise. rank is the position in this list, sorted by TVL, after removing rows with no TVL. This sample was captured on 2026-11-04 UTC. It is an example.
#Stablecoin supply
The response has two arrays.
| Array | Fields |
|---|---|
assets[] | name, symbol, mechanism, price, circulating_usd, change_7d_pct, change_30d_pct |
chains[] | name, circulating_usd, covered |
Only USD-pegged supply is counted. The change figures compare current supply with the source's values from a week and a month back. They are null when the source has no earlier value.
{
"name": "Tether",
"symbol": "USDT",
"mechanism": "fiat-backed",
"price": 0.99905,
"circulating_usd": 177773802949,
"change_7d_pct": -2.23,
"change_30d_pct": -3.32
}This sample was captured on 2026-11-04 UTC. price here comes from DefiLlama, and it can differ from the CoinGecko value on Asset prices. See the stablecoin monitor recipe.
#DEX volume
| Field | Meaning |
|---|---|
total_24h_usd | Source total across protocols |
change_1d_pct | Source change against the prior day |
protocols[].name | Display name |
protocols[].volume_24h_usd | 24 hour volume, rounded |
protocols[].change_1d_pct, change_7d_pct | Source changes |
protocols[].chains | First 6 chains listed by the source |
These figures come from the source as they are. Farbeam does not filter wash trading, so compare protocols with care.
#Trending pools
Pass chain, with solana as the default. The list is GeckoTerminal's trending_pools, first page.
| Field | Meaning |
|---|---|
name | Pair name from the source |
pool | Pool address |
base_token | Base token address |
price_usd | Base token price |
liquidity_usd | Reserve in USD |
volume_24h_usd | 24 hour volume |
change_24h_pct | 24 hour price change |
created_at | Pool creation time |
#How these relate to the index
Market endpoints do not read Farbeam's transfer rows, and they have different scopes.
| Question | Use |
|---|---|
| How large is a chain's on-chain value? | /markets/chains |
| Where does stablecoin supply sit? | /markets/stablecoins |
| Which large transfers of curated tokens happened? | /transfers |
| What moved in value on a DEX? | /markets/dexs |
Do not divide /transfers/stats by DEX volume to get a share. The first covers qualifying transfers in a short token list, repeats value across hops, and covers 7 days at most. The second is another method altogether.
#Stale answers
If DefiLlama fails, Stablecoin supply and DEX volume answer with the last saved copy, with stale: true and the save time in as_of. See freshness.
#Other market fields
Two more places return prices.
- Asset prices returns CoinGecko prices and 24 hour change for the eight assets the service uses. Cache 60 s.
- A token report has a
marketobject built from DexScreener pools:price_usd(median implied price across pools),liquidity_usd,volume_24h_usd,txns_24h,pool_count,outlier_pools_excluded,oldest_pool_at, plusfdv_usd,market_cap_usdandprice_change_24h_pctfrom the deepest pool where the token is the base side. Those last three arenullif the token is never the base side. Cache 60 s.
#Try it
curl -s "https://farbeamlabs.com/api/v1/markets/stablecoins" | jq '.data.assets[:3]'const res = await fetch("https://farbeamlabs.com/api/v1/markets/pools?chain=base");
const { data, meta } = await res.json();
console.log(meta.source, data.slice(0, 3));import requests
body = requests.get("https://farbeamlabs.com/api/v1/markets/dexs", timeout=30).json()
print(body["data"]["total_24h_usd"], body["data"]["protocols"][0])Market data is for information only and is not financial advice.