Farbeam

Trending pools, measured against liquidity thresholds

2026-11-04 UTC · Farbeam research

Snapshot: pools read from 2026-11-04T19:41:58Z to 19:43:17Z. Token reports read from 19:47:49Z to 19:52:26Z, with about 6 seconds between calls. This note takes the pools that GeckoTerminal ranks as trending on each chain, and measures their liquidity against the same thresholds that the Farbeam token report uses.

The starting idea was that trending pools are thin. The measurement supports that only in part. Most of the sample has more than $100,000 of liquidity, while a large minority does not, and one chain stands apart. This note names no tokens, and it recommends none. A place on a trending list is not a signal.

#The call

for c in ethereum base bnb arbitrum optimism polygon solana; do
  curl -s "https://farbeamlabs.com/api/v1/markets/pools?chain=$c" > "pools_$c.json"
done
const chains = ["ethereum", "base", "bnb", "arbitrum", "optimism", "polygon", "solana"];
for (const chain of chains) {
  const { data } = await (await fetch(`https://farbeamlabs.com/api/v1/markets/pools?chain=${chain}`)).json();
  const liq = data.map((p) => p.liquidity_usd ?? 0);
  console.log(chain, data.length, liq.filter((l) => l < 100000).length);
}
import requests

for chain in ["ethereum", "base", "bnb", "arbitrum", "optimism", "polygon", "solana"]:
    data = requests.get("https://farbeamlabs.com/api/v1/markets/pools", params={"chain": chain}, timeout=30).json()["data"]
    liq = [p["liquidity_usd"] or 0 for p in data]
    print(chain, len(data), sum(l < 100000 for l in liq))

The API returns up to 20 pools per chain, and caches them for 5 minutes.

#Pool liquidity by chain

The thresholds are the ones in the liquidity check: below $10,000 is fail, below $100,000 is warn.

ChainPoolsBelow $10k$10k to $100k$100k or moreMedian liquidityLowestMedian 24h volumeMedian volume / liquidity
Ethereum200317$531,432$19,560$794,0790.91
Base200317$1,442,906$12,431$666,6820.93
BNB Chain200020$832,724$164,508$1,315,2252.56
Arbitrum200317$376,470$59,465$329,4281.12
OP Mainnet201145$50,282$5,140$51,9940.71
Polygon202513$370,948$1,589$72,2220.28
Solana200713$275,774$14,452$1,569,0284.77
All140335102$367,118$1,589

Of the 140 pools, 102 (72.9%) reached $100,000. 38 (27.1%) did not, and 3 (2.1%) were below $10,000. OP Mainnet is the outlier, with 15 of 20 pools below $100,000.

Liquidity alone hides how much is trading against it. Solana's median pool traded 4.77 times its liquidity in 24 hours, the highest ratio here. Polygon's traded 0.28 times.

#Pool age

ChainMedian age (days)Younger than 7 daysYounger than 1 day
Ethereum271.760
Base267.842
BNB Chain127.920
Arbitrum968.711
OP Mainnet861.500
Polygon524.700
Solana10.5102

Trending lists on most of these chains are not lists of new pools. On Arbitrum and OP Mainnet the median pool was over two years old. Solana is the exception, with half of its list younger than a week.

#Token checks on a sample

For each chain, the first 6 distinct base tokens in the list went through GET /tokens/{chain}/{address}. That made 42 reports. A report covers the token and sums up to 30 of its pools, so its liquidity figure is often higher than one pool's.

CheckPassWarnFailUnknown
liquidity (all 42)35520
pool_age (all 42)33630
top10 (all 42)139200
lp_locked (EVM, 36)92502
mintable (EVM, 36)196011
proxy (EVM, 36)251100
honeypot (EVM, 36)27009
hidden_owner (EVM, 36)240111
sell_tax (EVM, 36)27306
mint_authority (Solana, 6)6000
freeze_authority (Solana, 6)6000
MeasureReports
At least one fail24 of 42
At least one fail other than top106 of 42
At least one warn34 of 42
At least one unknown21 of 42
All checks pass0 of 42

Of the 27 fails, 20 were the top10 check, which includes pool contracts and exchanges in the share. So a high share is common for tokens with most of their supply in a pool, and it is not by itself evidence of a problem. No report in the sample had a honeypot fail.

Unknowns need care. The 21 reports with an unknown are 6 on Solana and 15 on EVM chains. Each Solana report has one, non_transferable, because of a known field defect described in authorities in major Solana mints. On EVM chains, GoPlus returned some fields and left out others. The three OP Mainnet reports with 8 or 9 unknowns have no honeypot, mintable or tax values. Those reports are not cleaner because they show fewer fails, and a missing field is not a pass.

An earlier capture of this sample, made in a fast burst, showed 12 unknown checks on all 6 OP Mainnet reports. We repeated the reports with a gap between calls, and the unknowns fell to between 1 and 9. That points to throttling of the burst, although the report had recorded sources.goplus.ok: true. All 42 reports in the tables above show that same value, so it does not prove that the fields arrived. Count the checks.

#Method

  1. Call /markets/pools once per chain.
  2. Count each pool by liquidity_usd. Compute median age from created_at, and the ratio of volume_24h_usd to liquidity_usd.
  3. Take the first 6 distinct base_token values per chain, and call /tokens/{chain}/{address}.
  4. Count checks[].status.

GeckoTerminal does not always answer at once, and a failed call returns 502 upstream_unavailable. Our script retried Polygon and Solana, so those two chains have later times.

#Limits

Nothing here is a recommendation. It is not financial advice. See the current list on trending pools.