Tokens

Filtered token directory (PRO+)

Browse tokens by market-cap band, liquidity floor, recent-activity window, primary DEX, authority/safety flags, computed 1h volume, MEV-share ceiling, and MC change. Momentum sorts surface movers (mc_change_5m_desc, mc_change_1h_desc, volume_1h_desc) and a composite trending board. Complements /token/{mint} (single lookup), /tokens/almost-bonded (pre-bond pump.fun), and the KOL-scoped /kol/tokens/{hot,trending}.

Default min_liq is 2000 USD to filter the long tail of phantom-MC tokens from low-liquidity pools. Pass min_liq=0 to opt out.

Default max_mc is 100,000,000,000 USD ($100B) — a sanity ceiling that drops phantom market caps (a genuine ~1e12 token supply trading near $1, or a thin-pool price blow-up). No real tracked memecoin approaches it. Pass a higher explicit max_mc to opt out.

Momentum sorts + filters are DB-native (via the token_prices_trending view): min_volume_1h_usd, max_mev_share_pct, min_liq_mc_ratio, max_liq_mc_ratio, mc_change_1h_min_pct, mc_change_1h_max_pct and the momentum sorts paginate correctly with no over-fetch. The trending sort = recent-volume × positive-momentum composite, recency-bounded to the last 1h, and echoes filters.trending_version: "v1".

Only deployer_tier and launchpad remain post-filters (joined from deployer_tokens, not the view). They are served by a bounded SCAN: candidates are walked in pages until limit matches, the candidates run out, or the scan budget is spent. has_more:false only when the candidates ran out; pagination.scan_truncated:true = the budget ran out first and more matches MAY exist — continue with offset = pagination.next_offset (a RAW candidate offset, not a match count). Offset pages walk a LIVE order (pagination.order_is_live: true): MC and activity move between calls, so rows can shift across pages — treat the screener as a ranking, not a ledger.

LP burn (2026-09-21): lp_burned / lp_burn_status come from LP-custody evidence only (lp_burnt_pct). No Solana writer populates it yet, so lp_burn_status is unknown and lp_burned null for every token, and lp_burned=true|false currently matches nothing. lp_burned is DEPRECATED: true = verified burned/locked, false = verified NOT burned, and a token with unknown LP custody matches neither (false never turns unknown into "unburned"); a request that sends it gets a deprecations entry. The old lp_burned flag was the token-SUPPLY burn — filter that with supply_burn and read it as token_supply_burn_detected.

get/tokens

Request

  • Base URL: https://madeonsol.com/api/v1
  • URL: https://madeonsol.com/api/v1/tokens
  • Auth: HTTP bearer

Query parameters

min_mcnumber

Minimum market_cap_usd

max_mcnumber

Maximum market_cap_usd. Default 100000000000 ($100B) — pass a higher value to surface phantom thin-pool caps.

min_liqnumber

Minimum liquidity_usd. Default 2000 — set 0 to disable.

active_hnumber

Only tokens with a trade within the last N hours. Default 168 (7 d) — a screener ranks what is tradeable; 0 = no freshness bound (not applied to sort=trending, which has its own 1 h window)

primary_dex'pumpfun' | 'pumpswap' | 'raydium' | 'meteora' | 'orca' | 'raydium_clmm' | 'launchlab'

Filter by primary trading venue (launchlab = on-curve bonk/LetsBonk tokens)

deployer_tier'elite' | 'good' | 'moderate' | 'rising' | 'cold' | 'unranked'

Filter to pump.fun tokens whose deployer carries this reputation tier (post-filter; non-pump tokens have a null tier and are dropped)

launchpad'pumpfun' | 'launchlab' | 'bags'

Filter by launchpad of origin (post-filter, from deployer_tokens.launchpad). Distinct from primary_dex: bags tokens trade on meteora, so only this tag identifies them.

authority_revokedboolean

true = require both mint + freeze authority revoked; false = at least one not revoked

exclude_token2022boolean

Drop Token-2022 mints (commonly used for transfer-fee scams)

lp_burnedboolean

DEPRECATED — use lp_burn_status on each token, or supply_burn for the token-supply burn flag. Filter on VERIFIED LP-burn evidence only: true = lp_burnt_pct ≥ 99; false = lp_burnt_pct measured AND below it. A token with unknown LP custody matches NEITHER value (false never means "unknown"). Sending it adds a deprecations entry to the response. No writer populates LP evidence yet, so this matches no token today — it never matches a token-supply burn (use supply_burn). See filters.lp_burned_source.

supply_burnboolean

Filter on the token-SUPPLY burn flag (the mint's on-chain supply decreased). This is what lp_burned used to filter on; it is not LP evidence.

min_volume_1h_usdnumber

Computed organic-volume floor in the last 1 hour (DB-native; tokens with insufficient history are dropped)

max_mev_share_pctnumber

Computed MEV/bot volume ceiling as a % of total cumulative volume (DB-native)

min_liq_mc_rationumber

Minimum liquidity_to_mc_ratio (liquidity ÷ market cap). Default 0.00002 (= MC at most 50,000× pool liquidity) — a plausibility gate against price × nominal-supply blowups off dust pools; pass 0 to opt out. Low values = thin liquidity relative to MC (DB-native)

max_liq_mc_rationumber

Maximum liquidity_to_mc_ratio — drops over-collateralised thin-MC tokens (DB-native)

mc_change_1h_min_pctnumber

Minimum 1h MC change % (DB-native; use for momentum scans)

mc_change_1h_max_pctnumber

Maximum 1h MC change % (DB-native; use for dip scans)

sort'mc_desc' | 'mc_asc' | 'last_trade_desc' | 'liquidity_desc' | 'cumulative_volume_desc' | 'mc_change_5m_desc' | 'mc_change_1h_desc' | 'volume_1h_desc' | 'trending'

trending = recent-volume × positive-momentum composite, recency-bounded to the last 1h; echoes filters.trending_version: "v1".

limitinteger
offsetinteger

Response

OK. Returns tokens[] (with liquidity_to_mc_ratio, deployer_tier, launchpad (pumpfun/launchlab/bags, null when unknown), mev_share_pct, organic_volume_1h_usd, mc_change_5m_pct, mc_change_1h_pct, is_token_2022, authorities_revoked, etc.), pagination (with post_filtered flag), and a filters echo (with min_liq_default_applied; trending_version: "v1" when sort=trending).

Changes

No recorded changes to this operation across all 1 revision of this API.