Skip to main content
GET
List pegged tokens with depeg risk data and aggregates

Splitting stablecoins from RWAs

segment scopes the list to one category and is applied before aggregates, so the aggregates describe the selected segment rather than the whole pegged universe.
There are two tier histograms and they do not share a scope. aggregates — including aggregates.tier_counts — is computed on the segment alone, with every other filter applied after it. The top-level tier_counts is computed after all of them. A KPI strip built on the assumption that both track the same filter set will drift as soon as a second filter is applied.
The two values are exclusive and total, so they partition the list. Each row returns its computed segment alongside the asset_class / is_rwa / subclass it was derived from.
segment = stablecoin is not the same as asset_class = "fiat".A token joins the pegged universe through any one of three signals: asset_class = "fiat", is_rwa = true, or a stable peg behaviour. The third admits tokens that assert a stable peg whose backing is not confirmed, and those deliberately carry no asset_class. They resolve to the stablecoin segment.Read each row’s asset_class to tell a confirmed fiat token ("fiat") from one carrying none (null). A non-trivial minority of stablecoin rows are null, so do not filter client-side on asset_class === "fiat" expecting the full set.
segment takes stablecoin or rwa. It is not the asset_class dimension, which reads fiat, fixed-income, commodity and so on. Passing a dimension value is ignored like any other unknown enum value, which returns the unfiltered list rather than an error.
asset_class = fiat means the token is denominated in a government currency, not that it is backed by cash. USDC, DAI and USDe are all fiat-denominated. pegType is a separate axis — how the peg is held (direct, collateralized, algorithmic, derivative-hedged, yield-bearing) — and stays a view filter applied after the aggregates. A token with no denomination record falls back to a currency lookup, where the listed fiat codes read direct, so treat direct as “cash-backed or not yet classified”.

Authorizations

x-api-key
string
header
required

Query Parameters

chain
string

Filter by short chain code (e.g. eth, arb, pol, opt, base, bsc, sol).

denomination
string

Filter by denomination code (e.g. USD, EUR, XAU).

tier
enum<string>

Filter by display tier. Unknown values are ignored (the filter is not applied).

Available options:
critical,
warning,
watch,
ok,
premium
segment
enum<string>

Filter by segment. A segment is a derived category over the classification dimensions, not a dimension value — do NOT pass an asset_class such as fiat or fixed-income here; each item carries both its computed segment and the dimensions it was derived from. rwa = is_rwa true and asset_class not fiat (tokenized treasuries/funds, gold); stablecoin = everything else. The two are exclusive and partition the list. NOTE: stablecoin is NOT the same as asset_class fiat — membership also admits tokens for their stable peg behaviour, and those rows deliberately carry no asset_class yet resolve to stablecoin. Read each row's asset_class to separate confirmed fiat from null. Applied BEFORE aggregates/tier_counts (they describe the selected segment). Unknown values are ignored.

Available options:
stablecoin,
rwa
pegType
enum<string>

Filter by peg mechanism (denomination.pegType). Combine with segment=stablecoin: direct = fiat-backed, collateralized = crypto-backed. Unknown values are ignored.

Available options:
direct,
collateralized,
algorithmic,
derivative-hedged,
yield-bearing
tags
string

Comma-separated token labels: standard, yield, rwa, gold, bridged, vault.

minScore
number

Minimum risk score (0-100). Non-numeric values are ignored.

Required range: 0 <= x <= 100
maxScore
number

Maximum risk score (0-100). Non-numeric values are ignored.

Required range: 0 <= x <= 100
minMcap
number

Minimum market cap in USD. Non-numeric values are ignored.

Required range: x >= 0
liquidity
enum<string>

Filter by liquidity tier. Unknown values are ignored (the filter is not applied).

Available options:
high,
medium,
low,
very_low
q
string

Substring match on symbol, name, or address.

Maximum string length: 100
sort
enum<string>
default:score

Unknown values fall back to the default sort.

Available options:
score,
symbol,
chain,
tier,
abs_dev_clean,
market_cap_usd,
ts
order
enum<string>
default:desc

Anything other than asc/desc falls back to desc.

Available options:
asc,
desc
showAll
boolean
default:false

When true, include excluded/problematic tokens that are normally suppressed.

collapsedOnly
boolean
default:false

When true, return only collapsed/dead tokens (graveyard view).

page
integer
default:1

Values below 1 are treated as 1.

Required range: x >= 1
pageSize
integer
default:50

Clamped to 1–500.

Required range: 1 <= x <= 500

Response

Paginated list of pegged tokens with depeg risk data and ecosystem aggregates

items
object[]
required
pagination
object
required
aggregates
object
required

Ecosystem-wide aggregates computed before the view filters. When segment is supplied they describe that segment only (stablecoins or RWAs), since the segment filter is applied before aggregation.

tier_counts
object
required

Post-filter tier counts (after query filters, before pagination).

stale
boolean
required

true when the snapshot is served from the fallback cache during an upstream data outage.