Skip to content

Documentation

How ICP Tokens Works

Last updated: October 2026

ICP Tokens is a real-time DeFi analytics platform for the Internet Computer ecosystem. We collect swap data exclusively from ICPSwap, the largest DEX on ICP, keep our own copy of the ICP ledger and of the listed token ledgers, and turn both into prices, charts, balances, transfers and portfolio analytics.

Only tokens with a trade in the last 30 days are listed. Trading data is updated every minute; ledger data (balances, transfers, ICP burn and mint) within seconds of each new block.

ICPSwap
Data Source: ICPSwap
All prices, volumes and swap data are sourced exclusively from ICPSwap, the largest DEX on the Internet Computer, through its official data API. Balances, transfers and ICP burn / mint come from our own copy of the ledgers.
Data TypeUpdate FrequencySource
Swap collectionEvery 1 minuteICPSwap data API
Token metrics & pricesEvery 1 minuteAggregated from swaps
ICP/USD rateEvery 1 minuteKraken (primary)
Pool discoveryEvery 15 minutesICPSwap registry
TVL dataEvery 30 minutesPool canister balances
Ledger transfers & balancesWithin seconds of each blockOur copy of the ICP and token ledgers
Token holders & labelsEvery 1 minute on the token page (the holder count in token lists and ICP's count every 5 minutes; labels and checks nightly)Our copy of the ICP and token ledgers; ICExplorer / IC dashboard daily for tokens not yet proven exact
On-chain activity (active, new accounts, transfers)Every 5 minutes for today; full history checked nightlyOur copy of the ICP and token ledgers
Network compute (cycles per second, on ICP Burn vs Mint)Every hourDFINITY's IC API (ic-api.internetcomputer.org) (their figure, not our measurement)
Token logos & metadataDailyICRC-1 canister metadata

1. Data Collection

We collect swap data from ICPSwap every minute through ICPSwap's official data API, fetching every new transaction since the last one we recorded.

For each swap, we record: the pool, both token amounts, the on-chain price, the maker wallet address, and the exact timestamp. This data flows into our database where it is immediately available for analytics.

ICP/USD Conversion Rate

ICP-to-USD rates are fetched from Kraken (primary source, highest ICP liquidity) every minute, with automatic fallback to Binance and CoinGecko if Kraken is unavailable. Historical rates are stored for accurate retroactive price calculations.

ICP Tokens homepage showing token rankings, prices, and market data
Homepage — token rankings with price, 24h / 7d / 30d change, volume and fully diluted value (FDV)

2. Price Formula

Token prices come from ICPSwap trading data. We use the token0Price field that ICPSwap reports for each swap, which is the price of the token in the pool at the moment of the trade.

Price Formulas
price_usd = on-chain token0Price (from ICPSwap)
price_icp = price_usd / kraken_icp_usd_rate

Prices never use ICPSwap's amountUSD field. The USD value of each trade (volume) is the value ICPSwap reports for that swap; we check it against amount x token0Price, and on every pool with real volume the two match (checked October 2026 over 7 days).

Best Pool Selection

Many tokens have multiple liquidity pools on ICPSwap (e.g., CHAT/ICP and CHAT/ckUSDT). The platform automatically selects the best pool for each token — the pool paired with ICP or a stablecoin that has traded in the last 24 hours and holds the most liquidity (TVL). This pool is used for price display on the homepage, token rankings, and real-time WebSocket updates. The token detail page chart always shows data from the best pool.

Pool Liquidity (TVL)

Every 30 minutes we read how many tokens each ICPSwap pool canister holds and value them at current prices. This includes uncollected trading fees and tokens that users deposited into the pool but have not yet added as liquidity or withdrawn, so it can be higher than ICPSwap's figure, which counts only active liquidity. A token without a price of its own on our site is valued at the pool's own rate from its last trade in the past 7 days. A reading more than 10 times the previous one is accepted only when the next reading, 30 minutes later, confirms it. If a pool's balances cannot be read for 3 days, its TVL is shown as unconfirmed and is not counted. Pools that ICPSwap no longer lists and that have not traded for 7 days are not tracked.

Project Links

The links to a project's own website, app and whitepaper on a token page are checked every day. A link that fails two daily checks in a row (the domain no longer exists, the server does not answer, or the page is not found) is hidden until it works again. Links to social networks are not checked automatically.

Pool Page Prices

A pool page shows the price of one token of the pair. When one side is ICP, ckUSDT, ckUSDC, ckBTC or ckETH, it is the price of the token paired with it (for a pair of two of them, the first token). If one side of a pool holds less than 2% of the pool's value, the page says that its price can differ from the market price.

Token Detail Page Prices

On each token detail page, the displayed price, 24h change, volume, and FDMC come from the aggregated token metrics cache (updated every minute). The TradingView chart shows OHLCV candles from the best pool. You can switch between USD and ICP display using the currency toggle in the header. All pools for a token are listed on the token pools tab.

Token detail page with TradingView chart, price, and market data
Token detail page — TradingView chart from the best pool, FDV, TVL, supply and, for SNS tokens, the DAO

Percentage Changes

Price change percentages are calculated from OHLCV candle data, not from spot price comparisons. 24-hour changes use 1-minute candles, while 7-day, 30-day, and 90-day changes use 1-hour candles for efficiency and accuracy.

3. Market Cap & FDMC

Fully Diluted Market Cap (FDMC) is the primary market cap metric displayed on the platform. It is calculated as:

FDMC = current_price_usd x total_token_supply

FDMC represents the theoretical market capitalization if all tokens were in circulation at the current price. We use FDMC rather than circulating market cap because reliable circulating supply data is not consistently available for all ICP tokens. When total supply data is unavailable, the FDMC field shows "--".

4. Volume Calculation

The 24h Volume displayed for each token is the sum of all swap USD values involving that token over the last 24 hours. Each swap is counted once — from the perspective of the token being viewed. Volume is aggregated across all ICPSwap pools where the token is traded.

Volume data reflects only ICPSwap activity. Trades on other DEXes or off-chain exchanges are not included.

5. OHLCV Pipeline & Charts

Every minute, our aggregation pipeline processes new swaps into 1-minute OHLCV candles (Open, High, Low, Close, Volume). These base candles are stored in a time-series database built for financial data.

From the 1-minute base, the database automatically builds 14 higher timeframes: 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, and 1 month. This gives our TradingView charts full multi-timeframe support with both USD and ICP denominated values.

6. Data Quality & Filtering

Raw DEX data can contain outliers from dust trades, arbitrage bots, and low-liquidity spikes. We apply several filters to ensure displayed prices reflect genuine market conditions:

  • Outlier Filter: Each swap price is compared against a 30-day recent median. Prices below 2% or above 50x the median are excluded from candle generation.
  • Phantom Gainer Shield: Tokens with extreme percentage changes (over 1,000%) but negligible 24h volume (under $5,000) are suppressed to prevent misleading rankings.
  • ICPSwap Cross-Check: Every hour each listed token's price is compared with ICPSwap's own price for the same pool. Both come from the pool's on-chain price, so they should be equal; a gap above 5% in two hourly checks in a row raises an alert so the data can be fixed. A gap is not counted when ICPSwap's figure is the price of an earlier trade we already have (ICPSwap's pool data can lag behind its newest trades).
  • Zero-Price Guard: Swaps with price_usd = 0 are excluded from the OHLCV pipeline entirely.
  • Data Quality Monitor: An automated check runs every 30 minutes, verifying ICP price accuracy against Kraken (within 5%), stablecoin price stability (ckUSDT between $0.95-$1.05), and top token prices against the last on-chain swap (within 10%, reported when two checks in a row disagree, so a few minutes of fast trading do not raise a false alarm).

7. Real-Time Updates

When you open the homepage, a token detail page, or a pool detail page, prices and new swaps appear instantly without any page refresh. When something is wrong, a dot appears in the header: yellow when live updates are paused or data is delayed, red when the database is unavailable and cached data is shown. Token lists also reload from the API every 60 seconds, so data keeps updating even without the live connection.

Architecture

"Real-time" describes our delivery layer, not the data source. ICP canisters do not natively push events to off-chain consumers — there is no equivalent of Ethereum's eth_subscribe or Solana's accountSubscribe. Polling at the source is currently the only way to read ICPSwap data.

The pipeline:

  1. ICPSwap's data API is polled once per minute by our backend collector.
  2. Backend collector reads new swaps and passes them to the backend.
  3. Backend writes each swap to the database and broadcasts a swap event.
  4. WebSocket server fans out the event to all connected clients instantly.

Cost & scalability

This design is intentionally cheap and scales to many users at near-zero marginal cost:

  • One collector polls ICPSwap once a minute, re-reading the last 30 minutes so late-published trades are not missed, plus wider sweeps every 30 minutes, daily and weekly — a few hundred requests per hour, depending on how much is traded, and the same whether we have 1 user or 10,000.
  • Each new swap is broadcast once and reaches all subscribed clients via fan-out. The marginal cost per additional user is essentially zero.

Latency & limits

Typical delay: about 2 minutes. We ask ICPSwap for new trades every minute, and ICPSwap publishes each trade a little after it happens. Measured over 24 hours on October 23, 2026 (16,447 trades): half reached our data within 1¾ minutes of the trade, 9 in 10 within 2½ minutes, 99 in 100 within about 3¼ minutes. Once the collector sees a trade, it is sent to your browser right away.

This is not sub-second real-time like a centralized exchange order book. Centralized exchanges run engines that push events at the source. Until ICP adds canister-level push events for off-chain consumers, polling at the source is unavoidable. What this design does guarantee:

  • Updates arrive at all connected clients simultaneously the moment the collector sees them.
  • No per-user polling overhead — your browser does not hit our API every few seconds.
  • No surprise IC cycle costs as the platform scales.

Common question: "Isn't real-time WebSocket expensive?"
Opposite — WebSocket is the cheap part. The unavoidable cost is polling the source (a few hundred requests per hour, the same for any number of users). The WebSocket fan-out adds essentially nothing on top — one broadcast event reaches all connected clients regardless of whether there are 10 or 10,000.

8. Your Data & Privacy

ICP Tokens uses Internet Identity — the Internet Computer's native decentralized authentication — for all personalized features. No passwords, no emails, no personal information is collected.

When you log in with Internet Identity, the following data is stored on an ICP canister (on-chain smart contract) under your unique principal. We do not have access to this data — only your Internet Identity can read or modify it:

FeatureLogged InNot Logged In
Manual PortfolioStored on ICP canisterNot available
Watchlist / FavoritesStored on ICP canisterNot available
Chart DrawingsStored on ICP canisterBrowser localStorage
DEX Trades wallet linkStored on our serverNot available

Canister-stored data (portfolio, watchlist, chart drawings) is fully decentralized. It persists across devices and browsers as long as you log in with the same Internet Identity. We cannot read, modify, or delete it.

Chart drawings are saved automatically when you draw on a chart. If you are not logged in, drawings are stored in your browser's localStorage (lost if you clear browser data). When logged in, they are saved to the ICP canister and available everywhere.

DEX Trades wallet link is the only piece of personalized data stored on our server — it maps your Internet Identity principal to a wallet address you choose to link. This is needed because your II principal is different from your ICPSwap trading wallet. You can unlink at any time.

9. Portfolio Tracking

ICP Tokens offers three portfolio modes at /portfolio: Track Wallets works without logging in; Manual Portfolio and DEX Trades use Internet Identity:

Manual portfolio with allocation chart, holdings, and P&L
Manual Portfolio — add transactions, track cost basis, allocation, and P&L per token

Track Wallets

Add any principal or ICP account ID — no login, nothing to connect; the list is saved only in your browser. Balances are the real ones, from our own copy of the ICP and token ledgers (the same as the Explorer), so tokens received by transfer are included and nothing can be negative. The chart shows the value of the holdings for every day: the balances at the end of that UTC day × that day’s close of each token’s chart (ICP: the Kraken daily close, from April 5, 2024), today at live prices; it is the value of what was held, including tokens moved in or out, not a profit. For a principal, ICP is its default account; tokens listed on ICP Tokens only; ICP staked in neurons and pool liquidity are not included yet. With several wallets, the totals, chart and holdings show all of them together; the buttons above (or “Show only” next to a wallet) show one wallet on its own.

Manual Portfolio

Add buy and sell transactions manually. The platform calculates weighted average cost basis, realized and unrealized P&L, holding periods, and portfolio allocation. Supports CSV import/export for backup and migration. Historical prices are automatically fetched for the exact date and time of each transaction.

DEX Trades

Link your ICP wallet address to see every ICPSwap swap that wallet has made: date, token pair, amounts and USD value at the time of the trade. The list can be exported to CSV. It shows trades only; it does not calculate holdings or P&L.

Portfolio Calculations

The Manual Portfolio uses these formulas:

Portfolio Formulas
avg_buy_price = total_buy_cost_usd / total_quantity_bought
cost_basis = avg_buy_price x current_holdings
current_value = current_price x current_holdings
unrealized_pnl = current_value - cost_basis
realized_pnl = sell_revenue - (avg_buy_price x quantity_sold)
24h_change = holdings_24h_ago x (price_now - price_24h_ago) + each trade of the last 24h x (price_now - its price)

The average buy price is that of the position held at the moment of each sell (weighted average cost). A sell larger than your recorded holdings — tokens you received by transfer or airdrop — has no recorded cost: that part is left out of realized P&L and the token is marked “sold … more than recorded”. The 24h change counts price moves only, not money added by buying.

In DEX Trades, the value of each swap is its USD value at the time of the trade, which matches amount x token0Price.

Note: DEX Trades reflects only ICPSwap trading activity. Tokens received via transfers, airdrops, or other DEXes are not included. For the real balances of a wallet and their value over time, use Track Wallets.

10. Wallet Explorer

Explorer page of an address: holdings, swaps and transfers
Explorer — the real balances, swaps and transfers of any address (here: OpenChat SNS governance)

The Explorer shows any principal, canister or ICP account ID: its real Holdings (balances of ICP and of the listed tokens, read from our own copy of the ledgers, at today's price), its ICPSwap Swaps (what it sold and got, and the value at the time) and every Transfer in and out, mint, burn and approval (valued at the time, with a link to the block on the ICP dashboard).

Every list is filtered on the server over the whole history — by token, buy or sell, in or out, type, period, minimum value (for transfers: periods up to 90 days) or the other address — and the filters stay in the page address, so a view can be shared. For a principal, ICP is shown for its default account: ICP in its other subaccounts cannot be linked to it from the ledger. Labels come only from primary sources and are the same as in the token holders lists (DEX pools, SNS DAO treasuries, staked neurons and canisters, minting accounts, protocol canisters); exchange accounts are not labeled.

11. Whale Alerts

Whale Alerts page showing large ICPSwap trades
Whale Alerts — large ICPSwap trades (Swaps) and large on-chain transfers (Transfers)

The Whale Alerts page has two tabs. Swaps lists large ICPSwap trades — minimum $500, $1,000, $2,000 or $5,000, the last hour, 24 hours or 7 days. Transfers lists large on-chain transfers of ICP and of the listed tokens from our own copy of their ledgers — minimum $1,000, $5,000, $10,000 or $50,000, valued at the time of each transfer. Both refresh every 30 seconds.

Each trade shows whether it was a buy or a sell, the token, the amounts, the USD value and the wallet; each transfer shows the amount, the value, both sides and the block. Click an address to open it in the Explorer, or copy it with the icon next to it.

12. Smart Money

The Smart Money page ranks wallets by realized profit from trading tokens on ICPSwap over 7, 30 or 90 days. Every swap of a wallet counts as selling one token and buying the other at the swap's value in US dollars; each token is tracked at its average cost over the wallet's whole swap history, and profit is what a sale brought in above that cost. Only sales inside the period count.

ICP and USD stablecoins (ckUSDC, ckUSDT, icUSD, VCHF) count as cash: their own gain or loss is shown separately, so the ranking measures token trades rather than the ICP price. Tokens sold without a purchase we can see (received by transfer, bought elsewhere) count as bought at the sale price and add no profit. Left out: canisters (pools, routers, aggregators), accounts labeled from primary sources (DEX pools, DAO treasuries, protocol and minting accounts), high-frequency bots (more than 100 swaps per active day, or a median gap under a minute over at least 10 active days) and wallets with fewer than 3 trades or under $500 sold in the period. A sale more than 20% away from the pool's median price in the hour around it adds no profit. The ranking is rebuilt once a day from all ICPSwap swaps in our database; trades on other exchanges are not included.

13. Price Alerts

Price Alerts setup page with Telegram integration
Price Alerts — set a target price or a % change and get notified via Telegram bot

Set custom price alerts for any token with the bell icon next to the token name on its page (the Alerts page explains how). Choose a target price ("rises above" or "falls below") or a % change ("rises by" or "falls by"), in USD or ICP. A % change is counted from the token’s price at the moment you create the alert and turned into a fixed target (+10% from $0.10 = $0.11). All active alerts are checked every minute; when the condition is met, the Telegram bot sends you a personal message.

To get started: open @icp_t0kens_bot in Telegram, send /start to activate the bot, then /link to get a connection code, paste it in the alert dialog on a token page, and create your first alert. Each alert triggers once — when the price crosses your target. In the bot, /alerts lists your active alerts with a delete command for each, and /stop deletes all of them.

14. TradingView Charts

TradingView chart with Fibonacci retracement and trend lines
TradingView charts — full drawing tools, multiple timeframes, drawings persist across sessions

Every token has a full-featured chart powered by TradingView technology. Fifteen timeframes are available, from 1 minute to 1 month (1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M). Charts support standard tools: crosshair, trend lines, Fibonacci retracements, and more. Drawings are persisted across sessions.

15. Bubbles Visualization

Bubbles visualization showing tokens as physics-simulated circles
Bubbles — token market overview (here: the last month), size by price change, colour by direction

The Bubbles page shows all tokens as interactive, physics-simulated bubbles. Bubble size represents the magnitude of price change, while color indicates direction (green for gains, red for losses). Supports pinch-to-zoom on mobile, click to navigate to token details, and period selection (24h, 7d, 30d).

16. API Access

All data on ICP Tokens is available through a public REST API. The API serves token prices, OHLCV candles, pool data, swap history, whale alerts, and more.

TierRate LimitPrice
Free30 requests/min per IP$0

No API key is required. The API is free for everyone; there is no paid plan. Full documentation is available at /api-docs. If your project needs a higher limit, write to contact@icptokens.net.

17. Security & Rate Limiting

  • HTTPS: All connections are encrypted via TLS. HTTP requests are redirected to HTTPS.
  • Content Security Policy: CSP headers limit which sites scripts, frames and connections may come from.
  • CORS: API access is restricted to authorized origins. Wildcard origins are not permitted.
  • Rate Limiting: API requests are limited per IP address (30 requests per minute).
  • Authentication: Portfolio features use Internet Identity (ICP's native decentralized authentication). No passwords are stored.

18. Token Decimals on ICP

Tokens on the Internet Computer follow the ICRC-1 standard, which allows each token to define its own decimal precision. There is no universal standard:

TokenDecimals1 Token =
ICP8100,000,000 e8s
ckBTC8100,000,000 satoshis
ckETH1810^18 wei
ckUSDC61,000,000
SNS tokens8100,000,000 (typical)

ICPSwap's data API already handles decimal conversion. The swap data we receive is already in human-readable format (e.g., 1.5 ICP, not 150,000,000 e8s). On-chain data from ICRC-1 ledger canisters (balances, transfers) comes as raw integers and is divided by 10^decimals on our backend.

19. Token Listing & Delisting

Tokens are listed automatically. Once a day we check every token against three criteria: an ICPSwap pool paired with ICP that holds at least $1,000 in liquidity (TVL), at least one swap in the last 24 hours, and at least $50 in trading volume over the last 7 days. These thresholds filter out launch-day rugs and dust-trade spam. There is no application process and no listing fee.

Tokens are hidden from the main listings when they have had no trades for 30 days. We also remove older contracts after a project migrates to a new one, duplicates of a token that is already listed, and tokens whose liquidity is gone. Historical data for delisted tokens remains accessible via the API.

Token names and descriptions

A token's ledger often reports only its symbol as its name. We show the name the project is known by, taken from official sources: the project's SNS DAO record for SNS tokens, ICPSwap's token list and the project's own website. Descriptions are written from the same sources. When a token has no description or no links, we also read what its creators published on-chain: the ledger's own metadata, the token's market on the Soon launchpad, for SNS tokens the DAO's record and, when none of these has anything, the description and links the project submitted to ICPSwap's on-chain token list. This is checked every day, a person reviews every proposed description and link before it appears, and it only fills empty fields. If something about your token is wrong or missing, contact us on Telegram.

To request a token listing, ensure the token has an active ICPSwap pool with liquidity. If the token has recent swaps but does not appear, please contact us on Telegram.

20. Known Limitations

  • ICPSwap only: Currently, swap data is collected exclusively from ICPSwap. Trades on other ICP DEXes are not reflected in our analytics.
  • DEX Trades vs. actual balance: DEX Trades lists swaps only. It does not show tokens received via direct transfers, airdrops or staking rewards, or tokens sent to other wallets.
  • Historical data: Swap collection began in January 2023. Trades before this date are not available.
  • Price accuracy: Prices reflect ICPSwap trading data and may differ from other platforms that use different data sources or aggregation methods.

21. Disclaimer

ICP Tokens is an analytics and information platform only. We are not an exchange, broker, or financial advisor. We do not hold, custody, or have access to any user funds or tokens.

The data provided is for informational and educational purposes only and should not be considered financial, investment, or trading advice. Always do your own research (DYOR) and consult a qualified financial advisor before making investment decisions.

While we strive for accuracy, we make no guarantees regarding the completeness, accuracy, or timeliness of any data. Prices and analytics may be delayed, inaccurate, or differ from other sources. Use at your own risk.

See our full Disclaimer and Terms of Service.

22. Frequently Asked Questions

Where do token prices come from?

From ICPSwap, the main DEX on the Internet Computer. We use the token0Price that ICPSwap reports for each swap, and convert it to ICP using the Kraken ICP/USD rate.

How are holders counted and labeled?

For most listed tokens, holders come from our own copy of the token’s ledger: every account (a principal plus a subaccount) with a balance above zero, updated every minute. Every night the balances are checked against the ledger itself — their sum must equal the ledger’s total supply, and sampled accounts must match the balance the ledger reports — and only tokens that pass are shown this way. A newly listed token is added to our copy automatically within an hour (its history is downloaded and must pass the same checks) and is shown this way from the next nightly check. For the others the count comes from ICExplorer or the official IC dashboard once a day, and the token page says so. Tokens on the DRC20 standard (such as OT) have no block history we can copy: their count is the one the token’s own ledger reports (drc20_holdersCount, accounts with a balance above zero), read every hour, and no top list is shown because DRC20 has no method that lists the accounts. When a ledger’s total supply differs slightly from what its published blocks add up to (sGLDT), every account is also read from the ledger itself each night; if all of them hold a balance there and the differences add up exactly to the supply difference, the holder count is proven and shown, without the list. A few ledgers cannot be counted at all — they publish no history and no list of accounts (GRAVE, XTC) — and the token page says so. ICP is counted the same way from our copy of the ICP ledger, checked every night against its total supply, but its largest accounts are not listed and no concentration is shown: they cannot be attributed, because there is no public registry of NNS neuron or exchange accounts. Holders are accounts, not people: one person can have many accounts, and one canister can hold tokens for thousands of users. Accounts are labeled only from primary sources: an SNS DAO’s treasury and its staked neurons (from the DAO’s own governance canister), ICPSwap pools (from ICPSwap’s pool factory), KongSwap, minting accounts and the protocol canisters listed in the Internet Computer documentation. A canister without such a source is shown as “canister · not verified”. The same labels, in the same colours, are used in Whale Alerts → Transfers and in the Explorer. We do not label exchanges: there is no official list of their ICP addresses. The bar above the list splits the supply by these account types. Concentration shows the share of the total supply held by the 10 and the 100 largest accounts, twice: over all accounts, as CoinGecko shows it, and without DEX pools, DAO treasuries and protocol or SNS canisters, as GeckoTerminal and Glassnode do — staked neurons stay in, because each one is a holder’s own position. Holders by size counts accounts by the value of their balance at the current price (under $10, $10–$1K, $1K–$10K, $10K–$100K, $100K and more) and shows the share of the supply each group holds; it is not shown for tokens marked thin liquidity, whose price is not reliable.

What is the on-chain activity on a token page?

For ICP and for tokens whose balances in our ledger copy are proven exact, the On-chain activity section charts every UTC day since the first block. Active accounts: accounts that sent or received the token, or were minted to or burned from, that day — approvals and fee-only movements are not counted. New accounts: accounts whose balance changed for the first time. Holders: accounts with a balance above zero at the end of the day. Transfers: transfer transactions (mints and burns separately). Volume: tokens moved by transfers, valued in USD at that day’s closing price on the token’s chart (with ICP selected, converted at the current ICP price); for tokens marked thin liquidity it stays in tokens. ICP is valued at the daily ICP/USD close of the ICP chart (Kraken daily candles, from April 5, 2024; earlier days in ICP only). Today’s numbers update every 5 minutes; complete days are rebuilt every night from the first block and must pass two checks — the daily holder changes add up to today’s holders, and the new accounts add up to every account the ledger has seen. These are the definitions Coin Metrics and Santiment use for active and new addresses. Accounts, not people: one person can use many accounts, and an exchange or a DEX pool is one account for many users.

How often is data updated?

Swap data is collected every minute. Token metrics are recalculated every minute. ICP/USD rates from Kraken update every minute. New swaps are pushed to your browser in real time. See the update frequency table at the top of this page.

Why is the price different from CoinGecko or CoinMarketCap?

We use on-chain ICPSwap data exclusively. CoinGecko and CoinMarketCap aggregate from multiple exchanges (including centralized ones) and use different aggregation methods (e.g., VWAP). Small differences are normal and reflect different data sources. Our prices are specific to the ICPSwap DEX.

What is FDMC?

Fully Diluted Market Cap = current price x total token supply. It represents the theoretical market capitalization if all tokens were in circulation at the current price. We use FDMC because reliable circulating supply data is not consistently available for all ICP tokens.

How do I buy an ICP token?

ICP Tokens is an analytics site, so you cannot buy tokens here. Tokens listed on ICP Tokens trade on ICPSwap: connect an Internet Computer wallet, swap ICP for the token you want, and check that the token’s canister ID matches the one shown on its page here. ICP itself is also available on major centralized exchanges. See our wallet comparison to choose a wallet.

What is a canister ID, and where do I find a token’s contract address?

On the Internet Computer, every token is run by a ledger canister, a smart contract with an ID such as ryjl3-tyaaa-aaaaa-aaaba-cai (the ICP ledger). That canister ID is the token’s contract address. You can find and copy it under Contract on every token page, and it is also part of the page address: icptokens.net/token/<canister ID>. Tokens can share a name or symbol, but never a canister ID.

What are ckBTC, ckETH and ckUSDC?

They are chain-key tokens: versions of Bitcoin, Ether and Ethereum-based tokens such as USDC that live on the Internet Computer. Each one is backed 1:1 by the original asset, which is held by Internet Computer canisters through chain-key cryptography rather than by a bridge operator or custodian. That lets you move and trade them on ICP quickly and cheaply, and convert them back to the original asset.

What does the SNS badge on a token mean?

SNS stands for Service Nervous System, the Internet Computer’s built-in framework for running an app as a DAO. A token with the SNS badge is the governance token of such a DAO: holders can stake it to vote on proposals, such as upgrades and treasury spending, and the DAO controls the app’s canisters.

Why was a token removed from the list?

Listing is automatic, but we remove tokens that would mislead users: older contracts after a project migrates to a new one (often at the team’s request), duplicates of a token that is already listed, and tokens whose liquidity is gone or that have stopped trading. A removed token keeps trading on ICPSwap; it is just no longer shown here.

Why does my portfolio show a different balance than my wallet?

The DEX Trades tab lists only your ICPSwap swaps. Tokens received via direct transfers, airdrops, bridges, or other DEXes will not appear there. The Track Wallets tab and the Explorer show the real balances of any address, read from the ledgers; to track your cost basis and P&L, use the Manual Portfolio.

Can I use the API for my trading bot?

Yes. The API is free: 30 requests per minute per IP, no API key and no sign-up. See API Documentation for the endpoints. If your project needs a higher limit, write to contact@icptokens.net and tell us what you are building.

Is ICP Tokens free?

Yes. ICP Tokens is a non-profit project. The platform and all its features (portfolio, charts, alerts, explorer) are free to use, and so is the API (30 requests per minute, no key). There are no paid plans, no paid listings and no paid promotions. If you find the site useful, you can support it with a donation.

Do you hold my funds or tokens?

No. ICP Tokens is an analytics platform. We are not an exchange and do not hold, custody, or have access to any user funds. Portfolio features read only public on-chain data or user-submitted transaction records stored on an ICP canister under your Internet Identity.

How do I list my token on ICP Tokens?

Tokens are listed automatically once a day when they meet three criteria: an ICPSwap pool paired with ICP with at least $1,000 in liquidity, at least one swap in the last 24 hours, and at least $50 in trading volume over the last 7 days. No application or listing fee is required.

How do I update my token’s information?

Updating a listed token’s description, logo, official website and social links is free. Email contact@icptokens.net or message us in our OpenChat community or our Telegram group with the canister ID and the changes you want. Because a wrong link could send holders to a phishing site, we need proof that you are part of the team: a message from the project’s official X account (the one linked from its official website), a transaction or signature from a controller principal of the ledger or the SNS root, or an SNS proposal. Corrections of wrong data are always free. If you like, you can support the platform with a donation; a donation never speeds up or affects updates, listing or ranking.

What are the “Ledger facts” on a token page?

Two facts about the token’s ledger canister, checked every night: who can change it (Ledger control) and whether its whole transaction history can still be read (History). Ledger control comes from the canister’s controllers as published by DFINITY’s ic-api, the data behind the ICP dashboard. Immutable means no one can change the ledger code. NNS or an SNS DAO means a change needs a governance proposal. A personal key (principal) means a person or team holds a key that can change the ledger. Another canister means another canister can change it; its ID is shown. History is checked by reading the first, middle and last block of every archive canister; if some blocks cannot be read, the page says which ones and why. These are facts, not a rating or advice: a personal key says nothing about a team’s intentions. DFINITY explains what controllers mean for users in Trust in canisters. If a fact looks wrong, email contact@icptokens.net with the canister ID; we check it against the chain and correct it.

What happens if ICPSwap goes down?

Collection retries automatically and the last known data stays available on the site. A status dot in the header turns yellow when data is delayed, and our team is alerted automatically. When ICPSwap recovers, the missed trades are filled in.

Do you support other DEXes besides ICPSwap?

Currently, ICP Tokens collects data exclusively from ICPSwap. Swap data from other ICP DEXes is not included in our analytics, prices, or portfolio calculations.

Questions? Reach out on Telegram.

Back to top