Skip to main content

Top Fungible Tokens

This metric ranks Hedera Token Service (HTS) fungible tokens by a weighted composite score that blends market cap, DEX trading volume, and on-chain transaction activity over a rolling window. It produces a single "top tokens" board, with each token's per-component standing exposed alongside the composite so the ranking is fully explainable.

The ranking covers HTS-native fungible tokens (token.type = FUNGIBLE_COMMON). It is distinct from ERC-20 tokens issued on Hedera's EVM; HTS-wrapped representations of EVM assets (for example HTS-WETH) are HTS tokens and can appear in the results.

Hedera Data Access

To access this Hedera network statistic (and others) via Hgraph's GraphQL & REST APIs, create a free account at app.hgraph.com.

Hedera Stat Name: ecosystem_top_fungible_tokens_hts

Note: The GraphQL query calls a real-time SQL function.

Methodology

Window

The metric scores a trailing window (window_hours, default 24) snapped to the most recent complete UTC hour. The volume and transaction components are therefore reproducible across intra-hour refreshes, while price and supply are read live, so market cap updates in real time with the current price. The window aligns to the hourly DEX candle grain.

Price selection

Each token's price is the deepest-liquidity quote across DEX sources: one row per token from dex.spot_price, chosen by highest liquidity_hbar (latest timestamp as a tie-break). Rows without a liquidity value (derived one-hop quotes and non-SaucerSwap sources) sort last, so a ranked token is always priced from a liquid SaucerSwap pool. The same row supplies price_usd, liquidity_hbar, and liquidity_usd.

Eligibility

A token enters the ranked set only when all of the following hold:

  • It is a fungible token (token.type = FUNGIBLE_COMMON) with total_supply > 0 and a positive USD price.
  • Liquidity floor: the selected price row has non-null liquidity_hbar at or above min_liquidity_hbar (default 1,000 HBAR). This is a price-trust and data-quality gate.
  • Activity gate: window volume is at least $100, or the market-cap-to-volume ratio is under 50,000 with non-zero volume. Zero-volume tokens are excluded (no market means an unrankable market cap).

Components, weights, and score

ComponentWeightDefinition
Market cap40%price_usd × (total_supply / 10^decimals), at the selected price
Volume40%Sum of USD volume from dex.candle hour candles in the window
Transactions20%Distinct-timestamp count from the mirror-node token_transfer table in the window

Transaction count is an independent network-usage signal, deliberately drawn from token transfers rather than DEX trades. Weights are normalized by their sum, so they remain valid if retuned.

Each component is log-normalized then min-max scaled across the eligible set: x' = ln(1 + x), then scaled to [0, 1]. The composite is the weighted sum of the three scaled components. Because the scaling is recomputed over each run's eligible set, composite scores compare tokens within a result set but not across runs (see Caveats).

Ranking

Tokens are ordered by composite score descending, with volume then token_id as deterministic tie-breaks. The function returns up to result_limit rows (default 50). Independent market_cap_rank and volume_rank columns rank the full eligible set by each raw component, as a reference frame alongside the composite rank.

Output

Each row includes:

  • Ranks: rank (composite), market_cap_rank, volume_rank.
  • Identity: token_id (the token's entity number, e.g. 456858; the full Hedera ID is 0.0.456858), token_symbol, token_name. Identify tokens by token_id; token_symbol is display-only and can collide.
  • Score: composite_score and its market_cap_contribution, volume_contribution, and tx_contribution.
  • Market data: price_usd, pct_change_24h (from the selected source's candles; null when the window has none), market_cap_usd, volume_usd, transaction_count, unique_accounts, liquidity_usd, and price_as_of (the timestamp of each token's selected price row, UTC; it can differ per token and lag the window).

The per-component normalized values and the six log-normalization bounds are also returned, so a composite score can be reproduced or audited without persisting it. All *_usd fields are plain USD numerics (no scaling); transaction_count and unique_accounts are integer counts.

Semantics & Caveats

  • DEX universe: ranked tokens are priced from SaucerSwap V1/V2 pools, the liquidity floor drops any token whose only price is a non-SaucerSwap or derived quote (these carry no liquidity), so tokens traded solely on other Hedera DEXs are absent. Volume is summed from each token's dex.candle hour candles across all available sources.
  • Supply basis: market cap uses on-chain total_supply, not circulating supply, so treasury-heavy or bridged tokens (for example USDC) read higher than their circulating market cap.
  • Set-dependent scores: the composite score compares tokens within a single result set. To compare across runs or windows, use the raw components (market cap, volume, transactions) and the rank columns, since the min-max scaling is recomputed over each run's eligible set.

GraphQL API Example

Try this in the developer playground.

# Top 10 HTS fungible tokens over the last 24 hours.
query TopFungibleTokens {
ecosystem_top_fungible_tokens_hts(
args: { window_hours: 24, result_limit: 10, min_liquidity_hbar: 1000 }
order_by: { rank: asc }
) {
rank
token_id
token_symbol
token_name
composite_score
price_usd
pct_change_24h
market_cap_usd
volume_usd
transaction_count
unique_accounts
liquidity_usd
}
}

Supported Arguments

  • window_hours — trailing window length in hours (default 24). Clamped to a minimum of 1.
  • result_limit — maximum number of tokens to return (default 50).
  • min_liquidity_hbar — liquidity floor in HBAR for a token to be eligible (default 1000). Clamped to a minimum of 0.

SQL Implementation

The Hedera Stats repository contains the SQL function that powers this metric.

SQL Function: ecosystem.top_fungible_tokens_hts

SQL File: src/metrics/hbar-defi/top_fungible_tokens_hts.sql

View GitHub Repository →

Dependencies

  • dex.spot_price — per-token, per-source price and liquidity
  • dex.candle (hour candles) — DEX volume and 24h price change
  • public.token — total supply, decimals, name, symbol, type
  • public.token_transfer — transaction count and unique accounts
  • DEX coverage: SaucerSwap V1/V2