> ## Documentation Index
> Fetch the complete documentation index at: https://docs.codex.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Recent changes and updates to the Codex API

You can subscribe to the RSS changelog at [/changelog/rss.xml](/changelog/rss.xml) to stay on top of any weekly updates.

<Update label="October 5, 2026" description="Genius and moto.fun launchpads, risk analysis timestamps, STALE risk coverage, pool-trap and insider-dump risk reasons, pair-level SCAM verdicts, copycat detection, risky tokens out of trending, real-money total liquidity">
  * **New launchpad support: Genius and moto.fun**. Both are now available in `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and in the [`onLaunchpadTokenEvent`](/api-reference/subscriptions/onlaunchpadtokenevent) and [`onLaunchpadTokenEventBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) subscriptions.
  * **Risk analysis timestamps**. [`TokenRisk`](/api-reference/types/tokenrisk) adds `analyzedAt`, and [`PairFilterResult`](/api-reference/types/pairfilterresult) adds `riskAnalyzedAt`. Both report the Unix time of the contract analysis the verdict rests on. Unlike `flaggedAt`, the value moves only when the contract is probed again.
  * **`STALE` risk coverage**. [`RiskAnalysisCoverage`](/api-reference/enums/riskanalysiscoverage) adds `STALE` for verdicts that rest on a tradeable analysis more than seven days old. Honeypot proofs never become stale. Treat any coverage value you don't recognize as unknown.
  * **New risk reasons**. [`RiskReasonCode`](/api-reference/enums/riskreasoncode) adds `PROOF_POOL_TRAP_SIM`, `TAX_POOL_TRAP`, and `TAX_POOL_TRAP_HOOK_SHARED` for pools that trap sellers, and `HOLD_INSIDER_DUMPED` for launchpad tokens whose creator sold or handed off a large share of supply in the first hour.
  * **Copycat detection is live**. [`RiskReasonCode`](/api-reference/enums/riskreasoncode) `REP_IMITATOR_NAME` and `REP_IMITATOR_SYMBOL` now score tokens under 7 days old whose name or symbol impersonates a known brand, company, person or token. Each adds 30 points, and they don't stack when both match.
  * **Pair-level `SCAM` verdicts**. `riskVerdict` on [`PairFilterResult`](/api-reference/types/pairfilterresult) from [`filterPairs`](/api-reference/queries/filterpairs) now returns `SCAM` when that pair's own pool is a proven trap, even if the token's verdict differs. A trap pool is one whose hook refuses or underpays sells that the token itself allows.
  * **Risky tokens leave trending**. Tokens with a `HIGH_RISK` or `SCAM` verdict now get zero trending scores on [`filterTokens`](/api-reference/queries/filtertokens) and are excluded by the `trendingIgnored: false` filter, so they drop out of trending sorts. They stay searchable.
  * **Real-money total liquidity**. `totalLiquidityUsd` on [`filterTokens`](/api-reference/queries/filtertokens) now combines the token's 15 deepest pools and leaves out pools with no trade in the last 7 days. On networks where the real-money total is enabled, each pool counts only the liquidity the token can reach in one or two trades into the network's pricing reference tokens. On those networks, `liquidity` with `useAggregatedStats` returns the same value. `liquidityUsd` on [`getTokenPrices`](/api-reference/queries/gettokenprices) and [`balances`](/api-reference/queries/balances) reports the same total as `totalLiquidityUsd`. Values update on the token's next trade, so idle tokens keep their previous value until then.
</Update>

<Update label="September 29, 2026" description="Market cap webhooks evaluate the token's price; pairAddress deprecated">
  * **Market cap webhooks use the token's price**. [`MARKET_CAP_EVENT`](/concepts/webhooks#market_cap_event) webhooks now compute market cap from the token's price, the one [`getTokenPrices`](/api-reference/queries/gettokenprices) and [`filterTokens`](/api-reference/queries/filtertokens) report, instead of from each pair's price event. A swap on a thin pool at an outlier price no longer fires a webhook unless the token's price also crosses the threshold, and swaps on several pools in the same block produce one event instead of one per pool. `liquidityUsd` and `volumeUsd` conditions now compare against the token's liquidity and 24-hour volume.
  * **Market cap payloads no longer carry pair fields**. `priceModel` in [`MARKET_CAP_EVENT`](/concepts/webhooks#market_cap_event) messages now contains only `id`, `priceUsd`, `address`, `networkId`, `timestamp`, and `blockNumber`. `absoluteDeviation`, `deviationsFromMean`, `derivedSwapPrice`, `targetTokenAddress`, and `pairMetadata` are removed.
  * **`pairAddress` deprecated on market cap webhooks**. Creating a market cap webhook with `pairAddress` in [`MarketCapEventWebhookConditionInput`](/api-reference/input-objects/marketcapeventwebhookconditioninput) now returns an error. Existing webhooks that set it keep working, and the pair condition is ignored.
</Update>

<Update label="September 28, 2026" description="Token risk verdicts and filters, token contract simulation API, Token-2022 transfer fees, new wallet label values, two new scam reasons, pool invalidReserves, bonding-curve liquidity valued on the quote reserve, Robinhood wallet stats pipeline, ten networks removed">
  * **Token risk verdicts**. [`EnhancedToken`](/api-reference/types/enhancedtoken) adds `risk`, a [`TokenRisk`](/api-reference/types/tokenrisk) assessment with a [`RiskVerdict`](/api-reference/enums/riskverdict) (`SCAM`, `HIGH_RISK`, `CAUTION`, `NEUTRAL`, `VERIFIED`, `VERIFIED_CONTESTED`), a 0–100 `score`, `flaggedAt`, analysis `coverage`, and the [`RiskReasonCode`](/api-reference/enums/riskreasoncode) values that fired. Verdicts are not a safety guarantee. Check `coverage` first, since `NOT_ANALYZED` means no contract analysis stands behind the verdict. See the [Token Risk](/concepts/token-risk) guide for how verdicts, scores, coverage, and reasons fit together.
  * **Filter and rank by risk**. [`TokenFilters`](/api-reference/input-objects/tokenfilters) on [`filterTokens`](/api-reference/queries/filtertokens) and [`PairFilters`](/api-reference/input-objects/pairfilters) on [`filterPairs`](/api-reference/queries/filterpairs) add `riskVerdicts`, `riskCoverages`, `riskReasons`, `riskScore`, and `riskFlaggedAt`. [`TokenRankingAttribute`](/api-reference/enums/tokenrankingattribute) and [`PairRankingAttribute`](/api-reference/enums/pairrankingattribute) add `riskScore` and `riskFlaggedAt`. [`PairFilterResult`](/api-reference/types/pairfilterresult) returns `riskVerdict`, `riskScore`, `riskReasons`, `riskCoverage`, and `riskFlaggedAt` for the pair's token of interest.
  * **Token contract simulation API**. The new [`simulateTokenContract`](/api-reference/mutations/simulatetokencontract) mutation queues an asynchronous buy/sell analysis of a live token contract. Fetch outcomes with [`getSimulateTokenContractResults`](/api-reference/queries/getsimulatetokencontractresults), or stream published results with [`onSimulateTokenContract`](/api-reference/subscriptions/onsimulatetokencontract). Each result carries a `verdict` (`TRADEABLE`, `HONEYPOT`, or `INDETERMINATE`) plus buy/sell tax, gas, and liquidity measurements. The simulator is in beta and requires a Growth or Enterprise plan. Each run analyzes one pool, so a token's Uniswap V4 pool and V2 pair can report different taxes. A submission writes a `PENDING` row that stays alongside the completed row, so read the row that carries a `verdict`. Requests have a five-minute cooldown per token and network, and exceeding it returns `TOO_MANY_REQUESTS`. See [Get the actual tax numbers](/concepts/token-risk#get-the-actual-tax-numbers) for the submit, poll, and subscribe flow.
  * **Token-2022 transfer fees**. [`Token2022Extensions`](/api-reference/types/token2022extensions) adds `transferFeeConfig`, which exposes the current and upcoming [`Token2022TransferFee`](/api-reference/types/token2022transferfee) schedules (basis points, maximum fee, start epoch) and the fee authority. `transferFeeConfig` is null for mints without the extension, and a mint that carries it with no fee set reports `0` basis points.
  * **New wallet label values**. [`WalletLabel`](/api-reference/enums/walletlabel) adds identity values (`CEX`, `DEX`, `BRIDGE`, `KOL`, `VC`, `FOUNDER`, `WHALE`, `INSIDER`, `MIXER`, `SANCTIONED`, `BLACKLISTED`, `HACKER`, `RUG_PULLER`, `MEV_BOT`) and behavioral values (`BOT`, `SCAMMER`, `VOLUME_BOT`). `identityLabels` on [`Wallet`](/api-reference/types/wallet) and the wallet filter results carries both kinds. The behavioral values are written by our labelling jobs; identity values are populated only where a wallet has been attributed, so many exchange wallets still return null there. `category` (`EXCHANGE`) and `displayName` remain the reliable exchange signal.
  * **New scam-flag reasons**. [`PotentialScamReason`](/api-reference/enums/potentialscamreason) adds `ForeignVenueLaunch` and `SellerHub`. `ForeignVenueLaunch` flags a launchpad token whose market opened within minutes of the mint on a venue the launchpad does not migrate to. `SellerHub` flags supply cycled through a few hub wallets that do every sell.
  * **Bonding-curve liquidity is now the quote reserve**. Pairs on bonding-curve launchpads (Pump, Bags, Flap, Four.meme, Meteora DBC, Raydium Launchpad, Virtuals, and others) now report `liquidity` as the quote token the curve actually holds, instead of valuing unsold token inventory at the curve's own price. Expect much lower liquidity on pre-graduation curves and on tokens whose only pool is a curve, including `totalLiquidityUsd` and liquidity-ranked results. A curve holding under \$100 of quote reports no liquidity. Curves that were idle before the change keep their previous value until their next trade.
  * **Robinhood wallet stats from a new trade pipeline (work in progress)**. On Robinhood (`4663`), wallet PnL and holder stats on [`filterTokenWallets`](/api-reference/queries/filtertokenwallets), [`detailedWalletStats`](/api-reference/queries/detailedwalletstats), and related wallet queries are now built from the tokens that move in and out of a wallet within each transaction, rather than from swap events alone. This correctly accounts for Uniswap V4 hook fees, router fee transfers, multi-hop routes, and trades through pools the pricing service skips. Existing rows are not rewritten, so positions opened before the change keep their previous numbers. This is a work in progress and expands to other EVM networks, then Solana, once fully tested and verified.
  * **Unknown pool reserves flagged**. [`PooledTokenValues`](/api-reference/types/pooledtokenvalues) adds `invalidReserves`. It is `true` when a pool's reserves are unknown, in which case `token0` and `token1` read `0` and are not real amounts.
  * **Networks removed**. Moonbeam (`1284`), Moonriver (`1285`), Odyssey Chain (`153153`), Sanko (`1996`), Dogechain (`2000`), opBNB (`204`), Energy Web (`246`), Avalanche DFK (`53935`), Degen Chain (`666666666`), and Capx (`757`) are no longer supported. See [Networks](/networks) for the current list.
</Update>

<Update label="September 21, 2026" description="Arc network support, eight new launchpads, new tokenWalletStats query, refreshed sniper, bundler, and insider label rules, Lift and Tolly launchpad fee data, native currency model for EVM balances, pool currencyUnits, new lock protocols">
  * **Arc network support**. Arc (chain ID `5042`) is now a supported network. See the full list on [Networks](/networks).
  * **New launchpad support: Peach, minara.fun, Tolly, send.fun, hostile.xyz, Argus, Faze, and Lift**. All eight are now available in `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and in the [`onLaunchpadTokenEvent`](/api-reference/subscriptions/onlaunchpadtokenevent) and [`onLaunchpadTokenEventBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) subscriptions.
  * **New [`tokenWalletStats`](/api-reference/queries/tokenwalletstats) query**. Returns the sniper, bundler, and insider wallets that still hold a token, plus the deduplicated `suspicious` union and the developer/creator wallet. [`TokenWalletStats`](/api-reference/types/tokenwalletstats) reports counts, held percentages, and addresses (capped at 200) for each cohort, along with held amounts and `tokenTotalSupply`. Available for launchpad tokens on every network, and for EVM tokens without a launchpad that have a known creator and were created since 2025-10-08; other tokens return zeros.
  * **Sniper, bundler, and insider labels refreshed**. The rules behind `sniperCount`, `bundlerCount`, `insiderCount`, and their `*HeldPercentage` fields on [`filterTokens`](/api-reference/queries/filtertokens), [`TokenWalletActivity`](/api-reference/types/tokenwalletactivity), the launchpad subscriptions, and the new `tokenWalletStats` query have been reworked. Labels now apply per wallet and token rather than persisting across tokens, and every count reports wallets that still hold. The sniper window is the first 5 seconds of trading and includes the creator's wallet. Bundlers are 4 or more wallets buying in the same block on the launchpad pool before graduation. Insiders require a provable link to the creator: bought in the creation transaction, received directly from the creator, or first funded by the creator, with an extra transfer rule on Solana. Full definitions are in [Discover tokens](/recipes/discover-tokens#snipers-bundlers-and-insiders).
  * **Lift and Tolly launchpad fee data on trade events**. Lift and Tolly are two of the new launchpads above. The [`SupplementalFeeData`](/api-reference/unions-and-interfaces/supplementalfeedata) union adds [`LiftHarvestFeeData`](/api-reference/types/liftharvestfeedata) and [`TollyCollectionFeeData`](/api-reference/types/tollycollectionfeedata), attached to Lift harvest events and V3 Collect events respectively. Lift harvests break out quote paid to the creator, quote paid to the Lift treasury, and launched-token amount burned. Tolly collections break out quote collected, project token burned, Tolly and project buybacks (realized and accrued), holder rewards, and protocol fees, all in raw ERC-20 units.
  * **New liquidity lock protocols**. [`LiquidityLockProtocol`](/api-reference/enums/liquiditylockprotocol) adds `MINARA`, `PEACH`, `TOLLY`, `LIFT`, `LONG_SUPPLY`, `FOCI`, `RAYDIUM_LOCK`, `LETSCASH`, `LAUNCH_HOOK`, `LAUNCH_TAX_HOOK`, `LUNCH_FUN`, and `PAIR` for liquidity-lock tracking.
  * **Native currency model for EVM balances**. Networks that expose the same native funds through both a native interface and an ERC-20 alias contract (for example ETH and its wrapped alias on some rollups) now surface as one holding rather than double-counting. [`Balance`](/api-reference/types/balance) adds `assetId` (the shared `tokenAddress:networkId`), `balanceDecimals` (the precision `balance` is expressed in for the returned view), and `isBalanceAlias` (true for the alias projection, false for the authoritative native view). When `includeNative: true`, the response returns the native view and suppresses the alias projection; request the alias contract explicitly in `tokens`, or set `includeNative: false`, to get the contract view instead. EVM networks with an alias also expose a new [`NativeCurrency`](/api-reference/types/nativecurrency) descriptor with `decimals`, `erc20AliasAddress`, and `transferEventEmitter`.
  * **Pool [`currencyUnits`](/api-reference/types/currencyunits) on pairs and events**. Pool metadata and event payloads now expose `currencyUnits` for pools whose raw side amounts, reserves, and prices are not measured in the tokens' contract decimals (for example a native slot). It carries `currency0`/`currency1` (the original on-chain currency of each slot) and `decimals0`/`decimals1` (the decimals raw slot amounts are measured in). It is null when the pool measures in its tokens' metadata. Event payloads also add `poolFeeCurrencyIndex` and `protocolFeeCurrencyIndex` so you can tell which slot (0 or 1) a fee amount is denominated in when the pool's slots differ.
</Update>

<Update label="September 14, 2026" description="Three new PotentialScamReason values for creator, sniper, and bundled-launch concentration">
  * **New scam-flag reasons for launch concentration**. [`PotentialScamReason`](/api-reference/enums/potentialscamreason) adds three values that surface concentrated launches. `DevConcentration` is returned when the creator wallet holds at least half of the supply. `SniperConcentration` is returned when wallets that bought within seconds of launch hold at least half of the supply. `BundledLaunch` is returned when a token graduated its launchpad in its creation slot and the launch shape is corroborated by a creator distribution, holders that never traded, bot churn, one-way flow, a thin pool, or a bot-only market.
</Update>

<Update label="September 7, 2026" description="New liquidityLocksV2 query, pool fee filters and ranking on filterPairs, new lock protocols, tokenTopTraders losers ranking, liquidityLocks deprecated">
  * **New [`liquidityLocksV2`](/api-reference/queries/liquiditylocksv2) query**. Returns locked liquidity for a pair or token read from current on-chain state, with vesting matured at read time so an expired lock stops counting. Each [`PairLockSummary`](/api-reference/types/pairlocksummary) breaks liquidity into locked, permanently locked, vesting, and unlocked amounts with a `lockedPercent`, the next vesting release point, and per-holder attribution via [`PairLockHolder`](/api-reference/types/pairlockholder) (entity id, display name, lock protocol, amount, permanence, and unlock time).
  * **Filter and rank pairs by pool fee**. [`PairFilters`](/api-reference/input-objects/pairfilters) on [`filterPairs`](/api-reference/queries/filterpairs) adds a `poolFeeBps` range filter and a `dynamicFee` flag, and [`PairRankingAttribute`](/api-reference/enums/pairrankingattribute) adds `poolFeeBps` for sorting. [`PairFilterResult`](/api-reference/types/pairfilterresult) returns both fields: `poolFeeBps` is the pool's static fee rate normalized to basis points (1 bps = 0.01%), and `dynamicFee` marks pools where a hook or plugin sets the fee per swap. Pools with no comparable static rate return null and are not matched by `poolFeeBps` ranges; filter those with `dynamicFee`.
  * **New lock protocols**. [`LiquidityLockProtocol`](/api-reference/enums/liquiditylockprotocol) adds `METAPLEX_GENESIS`, `PINKSALE`, `TEAM_FINANCE`, `LAUNCH_FAIR`, and `BAGS`.
  * **Rank [`tokenTopTraders`](/api-reference/queries/tokentoptraders) by biggest losers**. When ranking by `realizedProfitUsd`, descending returns only wallets with positive realized profit, and ascending now returns only wallets with negative realized profit, biggest losers first.
  * **[`liquidityLocks`](/api-reference/queries/liquiditylocks) deprecated**. The legacy event-derived query is retiring. Use [`liquidityLocksV2`](/api-reference/queries/liquiditylocksv2) instead.
</Update>

<Update label="August 31, 2026" description="Wallet-level trade sources on wallet queries, trader label filters on prediction trader-markets, Launchfair launchpad, LOCKER wallet category, LiquidityUnknown scam reason">
  * **Filter wallets by the apps they trade through**. [`filterWallets`](/api-reference/queries/filterwallets) and [`filterTokenWallets`](/api-reference/queries/filtertokenwallets) now accept `includeTradeSourceIds` and `excludeTradeSourceIds` on [`FilterWalletsInput`](/api-reference/input-objects/filterwalletsinput) and [`FilterTokenWalletsInput`](/api-reference/input-objects/filtertokenwalletsinput), matching wallets by trade source registry entity id (for example `defined` or `axiom`). Results expose the same data: `tradeSourceIds` on [`Wallet`](/api-reference/types/wallet), [`WalletFilterResult`](/api-reference/types/walletfilterresult), and [`NetworkWalletFilterResult`](/api-reference/types/networkwalletfilterresult), and `walletTradeSourceIds` on [`TokenWalletFilterResult`](/api-reference/types/tokenwalletfilterresult). These are wallet-level properties meaning "trades through", never "is owned by": a single routed trade is enough to appear.
  * **Trader label filters on prediction trader-markets**. [`PredictionTraderMarketFilters`](/api-reference/input-objects/predictiontradermarketfilters) on [`filterPredictionTraderMarkets`](/api-reference/queries/filterpredictiontradermarkets) now accepts `traderLabels` and `excludeTraderLabels`. Automated accounts are labelled `market-maker` and `high-frequency-bot`, so passing them to `excludeTraderLabels` drops bots from a "top traders" leaderboard.
  * **New launchpad support: Launchfair**. Now available in `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and in the [`onLaunchpadTokenEvent`](/api-reference/subscriptions/onlaunchpadtokenevent) and [`onLaunchpadTokenEventBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) subscriptions.
  * **`LOCKER` wallet category**. [`WalletCategory`](/api-reference/enums/walletcategory) adds a `LOCKER` value to the wallet behavior classification, alongside existing values like `BURN` and `STAKING_VAULT`.
  * **`LiquidityUnknown` scam reason**. [`PotentialScamReason`](/api-reference/enums/potentialscamreason) adds `LiquidityUnknown`, returned when liquidity could not be read and the liquidity checks did not run.
</Update>

<Update label="August 24, 2026" description="New TOKEN_LAUNCH_EVENT webhook, tradeSource on trade events, Feel.cash launchpad support">
  * **New `TOKEN_LAUNCH_EVENT` webhook**. Get notified when a token launches, either from a specific creator wallet or on a specific launchpad. Create webhooks with [`CreateTokenLaunchEventWebhookArgs`](/api-reference/input-objects/createtokenlauncheventwebhookargs) and set exactly one of `creatorAddress` or `launchpadName` on [`TokenLaunchEventWebhookConditionInput`](/api-reference/input-objects/tokenlauncheventwebhookconditioninput); optional `tokenAddress` and `networkIds` narrow the match further. The `TOKEN_LAUNCH_EVENT` value on the webhook type enum and a new [`TokenLaunchEventWebhookCondition`](/api-reference/types/tokenlauncheventwebhookcondition) type expose the same shape on reads.
  * **`tradeSource` on trade events**. [`Event`](/api-reference/types/event) now returns [`tradeSource`](/api-reference/types/tradesource), identifying the app a trade was placed through (for example, a trading terminal or wallet interface) with a stable `id` and human-readable `displayName`. Currently populated for Solana swaps only; null when no identifying signal is available.
  * **New launchpad support: Feel.cash**. Now available in `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and in the [`onLaunchpadTokenEvent`](/api-reference/subscriptions/onlaunchpadtokenevent) and [`onLaunchpadTokenEventBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) subscriptions.
</Update>

<Update label="August 17, 2026" description="filterLaunchpads query in beta; tokenTopTraders ranking; new tren.ch and StonkFun launchpads; removeScams narrowed to labelled scams only; DetailedTokenStatsDuration values deprecated">
  * **New [`filterLaunchpads`](/api-reference/queries/filterlaunchpads) query (Beta)**. Rank and filter launchpads by activity, funnel counts (tokens created, completed, migrated), migration rate, fees, and volume across 1h/4h/12h/24h/1w windows. Each [`LaunchpadFilterResult`](/api-reference/types/launchpadfilterresult) carries combined stats at the root and phase-level [`LaunchpadStats`](/api-reference/types/launchpadstats) under `pre` (bonding curve) and `post` (migrated). Use `scope` ([`LaunchpadFilterScope`](/api-reference/enums/launchpadfilterscope)) to pick per-network stats or global all-network rollups. The endpoint is in beta while stats accumulate; expect the shape to stabilize.
  * **Rank [`tokenTopTraders`](/api-reference/queries/tokentoptraders) results**. `TokenTopTradersInput` now accepts a `ranking` ([`TokenTopTradersRanking`](/api-reference/input-objects/tokentoptradersranking)) with `realizedProfitUsd` or `volumeUsd` as the attribute ([`TokenTopTradersRankingAttribute`](/api-reference/enums/tokentoptradersrankingattribute)). Defaults to `realizedProfitUsd` descending; when ranking by realized profit, only wallets with positive realized profit are returned.
  * **New launchpad support: tren.ch and StonkFun**. Both are now available in `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and in the [`onLaunchpadTokenEvent`](/api-reference/subscriptions/onlaunchpadtokenevent) and [`onLaunchpadTokenEventBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) subscriptions.
  * **`removeScams` narrowed to labelled scams**. The `removeScams` flag on [`balances`](/api-reference/queries/balances) now removes only tokens explicitly labelled as scams; the previous dead-dust heuristic (no trade in 24h, or \$1,000 or less of pool liquidity) no longer applies. Unlabelled tokens are always kept. Clients wanting aggressive spam removal should filter client-side.
  * **`totalLiquidityUsd` requires `useAggregatedStats: true`**. [`filterTokens`](/api-reference/queries/filtertokens) now returns `totalLiquidityUsd` only when the request sets `useAggregatedStats: true`; otherwise the field is null. `liquidity` (top-pair) is unchanged.
  * **Deprecated durations on [`DetailedTokenStatsDuration`](/api-reference/enums/detailedtokenstatsduration)**. `min15`, `day30`, and `week1` are now deprecated. `DetailedTokenStats` has no matching fields for these windows, so requesting them returned no stats. Use `min5`, `hour1`, `hour4`, `hour12`, or `day1`.
</Update>

<Update label="August 10, 2026" description="refreshBalances now supports native tokens across EVM, Solana, and Starknet; new Sushi Launch, Doppler, and UniswapCCA launchpads; removeScams criteria documented on the balances query">
  * **`refreshBalances` now supports native token balances**. The [`refreshBalances`](/api-reference/mutations/refreshbalances) mutation previously refreshed EVM contract-token balances only. It now also refreshes native token balances on EVM, Solana, and Starknet by passing `native:<networkId>` as the token ID. The refreshed values are persisted so subsequent [`balances`](/api-reference/queries/balances) queries return them, and any entries that cannot be refreshed (for example an unreachable network) are omitted from the response instead of failing the whole call.
  * **New launchpad support: Sushi Launch, Doppler, and UniswapCCA**. All three are now available in `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and in the [`onLaunchpadTokenEvent`](/api-reference/subscriptions/onlaunchpadtokenevent) and [`onLaunchpadTokenEventBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) subscriptions. Note that `UniswapCCA` labels tokens launched through Uniswap's shared launch contract, which carries no on-chain attribution to a specific launchpad. In practice, `UniswapCCA` tokens on Robinhood Chain are usually pools.trade, so treating that combination as pools.trade is a reasonable heuristic, but not a guarantee: anyone can launch on the same contract, including an entirely different launchpad.
  * **`removeScams` criteria on `balances`**. The `removeScams` flag on [`balances`](/api-reference/queries/balances) now documents exactly what it removes: tokens labelled as scams, plus unlabelled tokens whose trading data identifies them as dead dust (no trade in the last 24 hours, or \$1,000 or less of pool liquidity). Tokens with no trading history are kept — filtering is deliberately conservative, so clients wanting aggressive spam removal should filter client-side.
</Update>

<Update label="August 3, 2026" description="totalLiquidityUsd on filterTokens, o1.exchange launchpad, Pons V2 liquidity locks, B20 uiBalance semantics, one-time $1 signup activation fee, Free plan renamed to Almost free">
  * **Route-backed liquidity on `filterTokens`**. [`filterTokens`](/api-reference/queries/filtertokens) now supports `totalLiquidityUsd` as a filter, ranking attribute, and returned field on [`TokenFilterResult`](/api-reference/types/tokenfilterresult). This is the token's cumulative route-backed liquidity in USD, summed across pairs with valid routing liquidity — distinct from `liquidity`, which covers only the top pair. Screen and rank tokens by realistic supporting liquidity rather than a single-pair reading.
  * **New launchpad support: o1.exchange**. Now available in `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and in the [`onLaunchpadTokenEvent`](/api-reference/subscriptions/onlaunchpadtokenevent) and [`onLaunchpadTokenEventBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) subscriptions. A matching `O1_EXCHANGE` value has been added to [`LiquidityLockProtocol`](/api-reference/enums/liquiditylockprotocol) for liquidity-lock tracking.
  * **Pons V2 liquidity locks**. New `PONS_V2` value on [`LiquidityLockProtocol`](/api-reference/enums/liquiditylockprotocol) identifies liquidity locked via Pons V2.
  * **B20 asset tokens now honored by `uiBalance`**. In SCALED mode (default), [`balances`](/api-reference/queries/balances) multiplies B20 asset-token balances by the token's active multiplier so `uiBalance` reflects redeemable units. In RAW mode, B20 balances pass through unchanged while Token-2022 UI multipliers are divided out. Note that `uiBalance` is display-only: `tokenPriceUsd` is priced per raw token (matching `shiftedBalance`), so do not multiply the two for B20 tokens — use `balanceUsd` for position value. The B20 adjustment applies only to the `balances` query; `holders`, `refreshBalances`, `primeBalance`, and the balance subscriptions continue to return raw `shiftedBalance` in `uiBalance`.
  * **One-time signup activation fee**. Creating a Codex account now takes a single, non-refundable \$1 charge, payable by card or as 1 USDC via MoonPay. It confirms that a real payment method sits behind each account, which keeps automated abuse off the entry tier. The fee is charged once and is never repeated — there is still no recurring cost on the entry plan, and its 10,000 requests/month allowance is unchanged.
  * **The Free plan is now "Almost free"**. The entry plan's display name reflects the new fee. Nothing about the plan's limits, rate limits, or API behaviour changed, and the plan is still identified as `Free` in API responses and account metadata.
</Update>

<Update label="July 27, 2026" description="Wallet PnL excluding native tokens, route-backed liquidity, Balance.updatedAtBlock, B20 pause and supply-cap metadata, Hood.fun and LONG launchpads">
  * **Wallet realized PnL excluding native tokens**. New `realizedProfitUsdExNative` and `realizedProfitPercentageExNative` fields (1d/1w/30d windows) strip out native and gas-token exposure, so a wallet's memecoin performance shows separately from its native-token bag. Available on [`detailedWalletStats`](/api-reference/queries/detailedwalletstats), [`filterWallets`](/api-reference/queries/filterwallets) (as filters and ranking attributes), and [`walletChart`](/api-reference/queries/walletchart). Tracking began July 2, 2026, so year windows are null for now.
  * **Route-backed liquidity on token prices and balances**. [`getTokenPrices`](/api-reference/queries/gettokenprices) now returns `liquidityUsd`, the token's cumulative route-backed liquidity in USD summed across pairs with valid routing liquidity (null until computed; not available via subscription). The `liquidity` field on [`Price`](/api-reference/types/price) and the [`Balance`](/api-reference/types/balance) liquidity value now use this route-backed measure instead of reserves times price, so portfolio valuations stop over-counting illiquid tokens.
  * **`updatedAtBlock` on balances**. [`Balance`](/api-reference/types/balance) now exposes `updatedAtBlock`, the block number at which the balance was last updated (null for native balances or when the block is unknown), for balance-freshness provenance.
  * **Base B20 pause and supply-cap metadata**. [`B20Extensions`](/api-reference/types/b20extensions) now exposes `pausedTransfer`, `pausedMint`, and `pausedBurn` (B20 pausing is granular per operation) plus `supplyCap`, the maximum mintable supply in raw pre-multiplier units (the sentinel 2^128-1 means uncapped).
  * **New launchpad support: Hood.fun and LONG**. Both are now available in `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and in the [`onLaunchpadTokenEvent`](/api-reference/subscriptions/onlaunchpadtokenevent) and [`onLaunchpadTokenEventBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) subscriptions. LONG ships with liquidity-lock tracking, and the new `DOPPLER` value on [`LiquidityLockProtocol`](/api-reference/enums/liquiditylockprotocol) identifies Doppler-locked liquidity.
</Update>

<Update label="July 20, 2026" description="Bow.fun, Pons, Trench.today, and NOXA Fun launchpads; uniqueTokens1y now returns the 30-day value; category imagery deprecated">
  * **New launchpad support: Bow\.fun, Pons, Trench.today, and NOXA Fun**. All four are now available in `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and in the [`onLaunchpadTokenEvent`](/api-reference/subscriptions/onlaunchpadtokenevent) and [`onLaunchpadTokenEventBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) subscriptions.
  * **`uniqueTokens1y` now returns the 30-day value**. Rather than being removed as previously announced, the deprecated `uniqueTokens1y` field on [`WalletFilters`](/api-reference/input-objects/walletfilters), [`WalletNetworkFilters`](/api-reference/input-objects/walletnetworkfilters), [`WalletFilterResult`](/api-reference/types/walletfilterresult), [`NetworkWalletFilterResult`](/api-reference/types/networkwalletfilterresult), and the related ranking attributes now reflects the 30-day value (`uniqueTokens30d`). The deprecated `statsYear1` on [`DetailedWalletStats`](/api-reference/types/detailedwalletstats) and [`NetworkBreakdown`](/api-reference/types/networkbreakdown) likewise reports the 30-day unique-tokens value; use `statsYear` ([`WindowedWalletStatsYear`](/api-reference/types/windowedwalletstatsyear)) for true 1-year stats.
  * **Category imagery deprecated**. `iconUrl` and `bannerUrl` on [`Category`](/api-reference/types/category) are now deprecated and return null; categories no longer carry imagery. `memberCount` now reflects the number of tokens currently assigned to the category.
</Update>

<Update label="July 13, 2026" description="Token categories, filterNetworks, prediction position redemption events">
  * **Token categories**. Tokens can now belong to curated categories: `CANONICAL` for objective, long-lived groupings (DeFi, L1, stablecoins) and `NARRATIVE` for trend-driven groupings (AI, RWA, memes). A new [`Category`](/api-reference/types/category) type carries the slug, display name, optional `shortName` for compact surfaces, description, icon and banner URLs, `parentId` for hierarchies, and `memberCount`. Browse them with the new [`categories`](/api-reference/queries/categories) and [`category`](/api-reference/queries/category) queries, and fetch a category's tokens with [`categoryTokens`](/api-reference/queries/categorytokens), which accepts the same filters and rankings as [`filterTokens`](/api-reference/queries/filtertokens).
  * **Filter tokens by category**. [`EnhancedToken`](/api-reference/types/enhancedtoken) now returns its `categories`, and `TokenFilters` accepts a `categories` field ([`TokenCategoryFilter`](/api-reference/input-objects/tokencategoryfilter)) with `anyOf`, `allOf`, `noneOf`, and `hasCategory` for composable category matching on [`filterTokens`](/api-reference/queries/filtertokens).
  * **[`filterNetworks`](/api-reference/queries/filternetworks) query added**. Returns network-level stats with filtering and ranking, exposing liquidity, volume, volume change, and transaction counts across 5m, 1h, 4h, 12h, and 24h windows, plus a `mainnet` flag and network icon metadata on each [`NetworkFilterResult`](/api-reference/types/networkfilterresult). Use it to rank networks by activity without aggregating token or pair data yourself.
  * **`POSITION_REDEEMED` prediction trade events**. [`PredictionTradeEventType`](/api-reference/enums/predictiontradeeventtype) and [`PredictionTradeType`](/api-reference/enums/predictiontradetype) now include `POSITION_REDEEMED`, replacing `PAYOUT_REDEMPTION`, which is deprecated and will be removed in the future.
  * **Average hold period semantics clarified**. The `avgHoldPeriodSec*` fields on wallet, token, and trader stats are estimated with average-cost accounting (sells realize the age of the sold cost basis), are a lower bound capped at the window length, and now return null when under \$1 of cost basis was sold in the window.
</Update>

<Update label="July 6, 2026" description="Robinhood Chain support, filter token removal signals, actual shares held on prediction stats">
  * **Robinhood Chain supported**. Robinhood Chain (chain ID `4663`) is now available across Codex APIs. See the full list on [Networks](/networks).
  * **Token removal signals on `onFilterTokensUpdated`**. [`FilterTokenUpdates`](/api-reference/types/filtertokenupdates) now returns `removedTokenIds`, the IDs of tokens that no longer match your subscription parameters when the result set is refreshed. The `updates` list also now includes full results for tokens that newly match, so client-side result sets stay in sync without a resubscribe.
  * **`actualSharesHeld` on prediction trader stats**. [`PredictionTraderOutcomeStats`](/api-reference/types/predictiontraderoutcomestats) and [`PredictionTraderOutcomeFilterResult`](/api-reference/types/predictiontraderoutcomefilterresult) now expose `actualSharesHeld` alongside `sharesHeld`. Use it to track shares a trader still holds when PnL has been calculated but positions haven't been redeemed.
</Update>

<Update label="June 29, 2026" description="Token-2022 scaled UI amounts, token extensions, 24h price change, wallet category filter, Base bar Flashblocks, EasyA Kickstart">
  * **Token-2022 scaled UI amounts**. [`Balance`](/api-reference/types/balance) now exposes `uiBalance`, and [`BalancesInput`](/api-reference/input-objects/balancesinput) accepts a new `uiAmountMode` ([`UiAmountMode`](/api-reference/enums/uiamountmode)) to choose between the stored RPC UI amount (`SCALED`, default) or raw amounts with Token-2022 UI multipliers removed (`RAW`). Solana Token-2022 mints with a scaled UI amount configuration now display correctly out of the box.
  * **Token extension metadata**. [`EnhancedToken`](/api-reference/types/enhancedtoken) now exposes `extensions` ([`TokenExtensions`](/api-reference/types/tokenextensions)) with Solana Token-2022 scaled UI amount config and Base B20 rebasing multipliers, plus `tokenStandardCustomData` ([`Erc7572CustomInfo`](/api-reference/types/erc7572custominfo)) returning ERC-7572 `contractURI` fields (featured image, collaborators) for Base B20 tokens.
  * **24h price change on `Price`**. [`Price`](/api-reference/types/price) now includes `priceChange24`, the decimal percent change over the past 24 hours. Not available via subscription.
  * **Filter and rank wallets by behavior category**. [`WalletFilters`](/api-reference/input-objects/walletfilters) now accepts `categories: [WalletCategory!]`, and [`WalletFilterResult`](/api-reference/types/walletfilterresult) now returns `category`, `tokensCreatedCount`, and `tokensMigratedCount` so [`filterWallets`](/api-reference/queries/filterwallets) responses surface the same classification and creator metrics used for filtering.
  * **Base Flashblocks for bar subscriptions**. The `Processed` [`BarCommitmentLevel`](/api-reference/enums/barcommitmentlevel) now returns Base Flashblocks, so [`onBarsUpdated`](/api-reference/subscriptions/onbarsupdated) and [`onTokenBarsUpdated`](/api-reference/subscriptions/ontokenbarsupdated) can stream unconfirmed Base bars ahead of `Confirmed`. Use only when earliest signal matters more than finality.
  * **EasyA Kickstart launchpad supported**. Added to `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and to [`onLaunchpadTokenEvent`](/api-reference/subscriptions/onlaunchpadtokenevent) / [`onLaunchpadTokenEventBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) subscriptions.
</Update>

<Update label="June 22, 2026" description="Base Flashblocks events, Balance enhancements, Preprocessed bar commitment, 1-year wallet stats migration">
  * **Base Flashblocks for event streams**. The `Processed` [`EventCommitmentLevel`](/api-reference/enums/eventcommitmentlevel) now returns Base Flashblocks, so [`onEventsCreated`](/api-reference/subscriptions/oneventscreated), [`onEventsCreatedByMaker`](/api-reference/subscriptions/oneventscreatedbymaker), and [`onTokenEventsCreated`](/api-reference/subscriptions/ontokeneventscreated) can stream unconfirmed Base events ahead of `Confirmed`. Flashblock events are pre-confirmation and may differ from later commitments — use only when earliest signal matters more than finality.
  * **Token activity and wallet identity on balances**. [`Balance`](/api-reference/types/balance) now exposes `tokenLastTradedTimestamp` so you can filter out dead or worthless tokens with no recent market activity, plus a resolved `wallet` field with identity and profile metadata for the holding wallet.
  * **`Preprocessed` commitment level for Solana bar subscriptions**. `BarCommitmentLevel` now includes `Preprocessed`, letting bar updates stream at the earliest pre-execution stage. Preprocessed bars may differ from later commitments — use only when earliest signal matters more than accuracy.
  * **New 1-year wallet stats window**. [`DetailedWalletStats`](/api-reference/types/detailedwalletstats) and [`NetworkBreakdown`](/api-reference/types/networkbreakdown) now expose `statsYear` returning [`WindowedWalletStatsYear`](/api-reference/types/windowedwalletstatsyear). Migrate off `statsYear1` before it is removed on July 10, 2026.
  * **`uniqueTokens1y` deprecated**. The 1-year unique tokens metric on [`WalletFilters`](/api-reference/input-objects/walletfilters), [`WalletNetworkFilters`](/api-reference/input-objects/walletnetworkfilters), [`WalletFilterResult`](/api-reference/types/walletfilterresult), [`NetworkWalletFilterResult`](/api-reference/types/networkwalletfilterresult), and the related ranking attributes is deprecated and will be removed on July 10, 2026.
</Update>

<Update label="June 15, 2026" description="Token-creator wallet filters, token lifecycle events deprecation">
  * **Filter wallets by token-creator activity**. [`filterWallets`](/api-reference/queries/filterwallets) now accepts `tokensCreatedCount` and `tokensMigratedCount` on [`WalletFilters`](/api-reference/input-objects/walletfilters), letting you target wallets by how many tokens they've deployed or graduated from a launchpad across all networks.
  * **Token lifecycle events deprecated**. [`tokenLifecycleEvents`](/api-reference/queries/tokenlifecycleevents) and [`onTokenLifecycleEventsCreated`](/api-reference/subscriptions/ontokenlifecycleeventscreated) are now marked deprecated. Support will be removed on July 15, 2026 — migrate to the standard token event queries and subscriptions before then.
</Update>

<Update label="June 8, 2026" description="Suspicious wallet stats, wallet category, preprocessed commitment level, creator wallet on tokens, Flap launchpad">
  * **Suspicious wallet stats on tokens**. `suspiciousCount` and `suspiciousHeldPercentage` — the deduplicated union of snipers, bundlers, and insiders — are now exposed on [`EnhancedToken`](/api-reference/types/enhancedtoken), [`TokenWalletActivity`](/api-reference/types/tokenwalletactivity), and [`LaunchpadTokenEventOutput`](/api-reference/types/launchpadtokeneventoutput), available as filters and ranking attributes on [`filterTokens`](/api-reference/queries/filtertokens). Use it to screen out tokens with high concentration in risky wallet cohorts in a single check.
  * **Resolved creator wallet on tokens**. [`EnhancedToken`](/api-reference/types/enhancedtoken) now returns a `creator` field of type [`Wallet`](/api-reference/types/wallet), resolved from `creatorAddress`. [`LaunchpadTokenEventOutput`](/api-reference/types/launchpadtokeneventoutput) gains a matching `devWallet` field, so you can pull creator identity, labels, and stats inline without a follow-up query.
  * **Wallet category classification**. [`Wallet`](/api-reference/types/wallet) now exposes a `category` field returning a new `WalletCategory` enum (`NORMIE`, `TOKEN_CREATOR`, `EXCHANGE`, `DEFI_EXCHANGE`, `PAIR`, `PAIR_TOKEN_HOLDER`, `POOL_AUTHORITY`, `STAKING_VAULT`, `NOTORIOUS`) for behavioral classification at a glance.
  * **Token-creator stats on wallets**. [`Wallet`](/api-reference/types/wallet) now returns `tokensCreatedCount` and `tokensMigratedCount` — totals across all networks for tokens deployed and launchpad tokens graduated by the wallet.
  * **New token ranking attributes**. [`filterTokens`](/api-reference/queries/filtertokens) adds rankings for `sniperHeldPercentage`, `bundlerHeldPercentage`, `insiderHeldPercentage`, `suspiciousHeldPercentage`, `devHeldPercentage`, and their matching `*Count` attributes, plus community-engagement rankings `coinCommunityPostCount`, `coinCommunityMemberCount`, `coinCommunityLikeCount`, and `coinCommunityLastPostAt`.
  * **`Preprocessed` Solana commitment level**. `EventCommitmentLevel` now includes `Preprocessed` for event subscriptions, surfacing pre-execution events earlier than `Processed` or `Confirmed`. Preprocessed events evaluate before routing is finalized and may differ from later commitment stages — many preprocessed events may error and never be processed, so use only when earliest-possible signal matters more than accuracy.
  * **Flap launchpad support added**. Added to `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and to launchpad event subscriptions.
</Update>

<Update label="June 1, 2026" description="Prediction market metrics webhooks, NFT event webhooks removed">
  * **Prediction market metrics event webhooks**. [`createWebhooks`](/api-reference/mutations/createwebhooks) now accepts `predictionMarketMetricsEventWebhooksInput`, letting you alert on rolling windowed stats (5m to 1w) at the market or per-outcome level (with `outcome0`, `outcome1`, or `anyOutcome` matching). Use this to trigger on volume spikes, price moves, or trade counts on a specific Polymarket or Kalshi market without polling. See [Webhooks](/concepts/webhooks) for setup.
  * **NFT event webhooks removed**. `nftEventWebhooksInput` and the related `CreateNftEventWebhookArgs`, `NftEventWebhookCondition`, `WebhookNftEventType`, and `WebhookNftEventFillSource` types are no longer part of the schema, following the previously announced sunset of NFT data coverage on March 31, 2026. Existing NFT-event-webhook code paths should be migrated off.
</Update>

<Update label="May 25, 2026" description="HMAC webhook signatures, Kalshi order books, average hold period stats, Meteora Alpha Vault launchpad">
  * **HMAC webhook signature verification**. Webhook deliveries now include `X-Webhook-Timestamp` and `X-Webhook-Signature` headers, where the signature is an HMAC-SHA256 over `{timestamp}.{rawBody}` keyed by your webhook's `securityToken`. This authenticates the exact raw body and supports a 300-second freshness check, replacing the legacy body `hash` field (which is now deprecated and only identifies the delivery, not the body). See [Verifying webhooks](/concepts/webhooks#verifying-webhooks) for the verification flow, a Node example, and raw-body capture notes for common frameworks.
  * **Kalshi support for live order books**. [`predictionOutcomeOrderBooks`](/api-reference/queries/predictionoutcomeorderbooks) and the related `bestBookBid*` / `bestBookAsk*` / `bestBookLiquidity*` fields on prediction markets and outcomes now return live data for Kalshi outcomes in addition to Polymarket. Outcomes from other venues continue to return null.
  * **Average hold period fields on wallets and tokens**. Wallet, token, and trader aggregate types now expose `avgHoldPeriodSec` along with `avgHoldPeriodSec1d`, `avgHoldPeriodSec1w`, `avgHoldPeriodSec30d`, and `avgHoldPeriodSec1y` — cost-basis turnover time in seconds across rolling windows. The same fields are available as filters and rankings on [`filterTokens`](/api-reference/queries/filtertokens) and wallet queries, so you can screen for short-term flippers versus long-term holders.
  * **Meteora Alpha Vault** added to the supported launchpad list across token and launchpad filters.
</Update>

<Update label="May 18, 2026" description="Sports metadata on prediction events and markets, identityLabels on wallets, optional firehose for onPredictionTradesCreated">
  * **Sports metadata on prediction events and markets**. [`PredictionEvent`](/api-reference/types/predictionevent) and [`PredictionMarket`](/api-reference/types/predictionmarket) now expose an `enrichedMetadata` field returning [`PredictionEventEnrichedMetadata`](/api-reference/types/predictioneventenrichedmetadata) and [`PredictionMarketEnrichedMetadata`](/api-reference/types/predictionmarketenrichedmetadata). For sports markets, this includes structured team info (name, abbreviations, alias, logo, color, league, home/away flag), league, game start date/time/timezone, and a decomposed venue ticker — so you no longer need to parse venue tickers client-side to render scoreboards or filter by team.
  * **`identityLabels` added to wallet filter results**. [`WalletFilterResult`](/api-reference/types/walletfilterresult) now returns an `identityLabels` field exposing manual or proposal-derived identity vocabulary (for example `WHALE`, `KOL`), distinct from the existing behavioral `labels`.
  * **Firehose mode for [`onPredictionTradesCreated`](/api-reference/subscriptions/onpredictiontradescreated)**. The `input` argument is now optional — omit it to receive the firehose of all prediction trades instead of being required to scope by market, event, or trader.
</Update>

<Update label="May 11, 2026" description="predictionOutcomeOrderBooks, token ATH/ATL data, Polymarket order book fields, Meteora Alpha Vault">
  * **[`predictionOutcomeOrderBooks`](/api-reference/queries/predictionoutcomeorderbooks) query added**. Returns live order book snapshots (full bid/ask ladders) for a set of prediction outcomes, sourced directly from the venue's CLOB. Polymarket-only for now; results are cached for up to 10 seconds. New [`PredictionOutcomeOrderBook`](/api-reference/types/predictionoutcomeorderbook) and [`PredictionOrderBookLevel`](/api-reference/types/predictionorderbooklevel) types accompany it.
  * **All-time high and low data added to tokens**. [`EnhancedToken`](/api-reference/types/enhancedtoken) now exposes an `extrema` field returning a new [`TokenExtrema`](/api-reference/types/tokenextrema) type with `athPrice`, `atlPrice`, `athFdv`, `atlFdv`, `athCircMc`, `atlCircMc`, and matching `*Timestamp` fields for each. The same attributes are also available as filter inputs on [`filterTokens`](/api-reference/queries/filtertokens), so you can screen by ATH/ATL price or market cap.
  * **Top-of-book Polymarket data added to prediction markets**. Prediction market and outcome types now expose `bestBookBidUsd` / `bestBookBidCT`, `bestBookAskUsd` / `bestBookAskCT`, and `bookLiquidityUsd` / `bookLiquidityCT` for live top-of-book pricing and bid-side notional liquidity. Polymarket-only for now, fetched on-demand when selected, cached for up to 10 seconds.
  * **`commitmentLevel` argument added to [`onTokenBarsUpdated`](/api-reference/subscriptions/ontokenbarsupdated)**. Token-level bar subscriptions can now request `Processed`, `Confirmed`, or both Solana commitment levels, matching the existing `onBarsUpdated` / `onEventsCreated` / `onEventsCreatedByMaker` interface.
  * **Meteora Alpha Vault launchpad support added**. Added to `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and to launchpad event subscriptions.
</Update>

<Update label="May 4, 2026" description="eventScopedFilterPredictionMarkets, token boolean filters, Eitherway launchpad">
  * **[`eventScopedFilterPredictionMarkets`](/api-reference/queries/eventscopedfilterpredictionmarkets) query added**. Filters prediction markets within a single event and returns structured classification metadata for each market — including entrant info (with country code and image), period/stat segments, parsed numeric threshold rungs, and date buckets. Use this instead of [`filterPredictionMarkets`](/api-reference/queries/filterpredictionmarkets) when you need entrant/segment/ladder details without re-parsing subtype slugs client-side.
  * **Boolean filter composition added to [`filterTokens`](/api-reference/queries/filtertokens)**. `TokenFilters` now accepts a `boolFilter` field that combines nested `TokenFilters` with `and`, `or`, and `not` for recursive boolean expressions, enabling much richer token-discovery queries.
  * **`marketSort` argument on [`filterPredictionEvents`](/api-reference/queries/filterpredictionevents) deprecated**. The argument and its `PredictionEventMarketSort` enum no longer affect market ordering within returned events.
  * **Eitherway launchpad support added**. Added to `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and to launchpad event subscriptions.
</Update>

<Update label="Apr 27, 2026" description="Polymarket wallet profiles, venue-reported prediction market volume">
  * **Polymarket profile data added to wallets**. The [`Wallet`](/api-reference/types/wallet) type now exposes a `polymarket` field returning a new [`WalletPolymarketProfile`](/api-reference/types/walletpolymarketprofile) type with the proxy wallet address, Polymarket display name, pseudonym, profile image, X (Twitter) username, verified badge, and public-display flag. Polymarket profile data takes priority over contributed/Ethos sources for resolved `displayName`, `twitterUsername`, and `avatarUrl`.
  * **Venue-reported volume added to prediction market bars**. [`PredictionMarketBar`](/api-reference/types/predictionmarketbar) now exposes `allTimeVenueVolumeUsd` and `allTimeVenueVolumeCollateralToken` alongside the existing on-chain `allTimeVolumeUsd` and `allTimeVolumeCollateralToken`, letting you compare Codex-indexed on-chain volume against the volume reported by the venue.
</Update>

<Update label="Apr 20, 2026" description="commitment-level streaming, walletLabelTypes, launchpad fee breakdown, The Grid integration">
  * **[`walletLabelTypes`](/api-reference/queries/walletlabeltypes) query added**. Returns the canonical vocabulary of wallet label types (for example `WHALE`, `CEX`, `KOL`) with display names and descriptions.
  * **Solana commitment-level streaming added**. [`onBarsUpdated`](/api-reference/subscriptions/onbarsupdated), [`onEventsCreated`](/api-reference/subscriptions/oneventscreated), and [`onEventsCreatedByMaker`](/api-reference/subscriptions/oneventscreatedbymaker) now accept a `commitmentLevel` argument (`Processed`, `Confirmed`), and streamed payloads expose a matching `commitmentLevel` field. The standalone [`onUnconfirmedBarsUpdated`](/api-reference/subscriptions/onunconfirmedbarsupdated), [`onUnconfirmedEventsCreated`](/api-reference/subscriptions/onunconfirmedeventscreated), and [`onUnconfirmedEventsCreatedByMaker`](/api-reference/subscriptions/onunconfirmedeventscreatedbymaker) subscriptions are now deprecated.
  * **`getLatestPairs` and `onLatestPairUpdated` removed**. Both were previously deprecated — use [`filterPairs`](/api-reference/queries/filterpairs) sorted by `createdAt DESC` instead.
  * **Fee breakdown added to launchpad token events**. [`LaunchpadTokenEventOutput`](/api-reference/types/launchpadtokeneventoutput) now exposes `poolFees1`, `baseFees1`, `priorityFees1`, `builderTips1`, `l1DataFees1`, `totalFees1`, and `feeToVolumeRatio1` for 1-hour fee and MEV analysis on launchpad streams.
  * **USD-denominated fields added to prediction top markets**. [`PredictionEventTopMarket`](/api-reference/types/predictioneventtopmarket) now returns `outcome0BidUSD`/`outcome0AskUSD`, `outcome1BidUSD`/`outcome1AskUSD`, and `volumeUSD1d`/`volumeUSD1w`/`volumeUSDAll` alongside the existing collateral-token values.
  * **Phrase-match ranking for prediction search**. New `phraseScore` attribute on both `PredictionEventRankingAttribute` and `PredictionMarketRankingAttribute` enables relevance-based sorting when searching prediction events and markets by phrase.
  * **Wallet social-account filters and `ethosScore` ranking added**. [`filterWallets`](/api-reference/queries/filterwallets) now accepts `hasTwitter`, `hasDiscord`, `hasTelegram`, `hasFarcaster`, `hasGithub`, `hasDisplayName`, and `hasSocials` filters, and `ethosScore` is available as a ranking attribute.
  * **Token profanity flag added**. [`EnhancedToken`](/api-reference/types/enhancedtoken) includes a new `profanity` boolean, and `TokenFilters.profanity` lets you filter by whether the token name or symbol contains profanity.
  * **Scale launchpad support added**. Added to `launchpadName` filters on [`filterTokens`](/api-reference/queries/filtertokens) and to launchpad event subscriptions; [`LaunchpadData`](/api-reference/types/launchpaddata) now exposes `category`, the launchpad-assigned token category returned by Scale and Creator launchpads.
  * **The Grid integration**. Token and organization metadata on [`filterTokens`](/api-reference/queries/filtertokens), [`token`](/api-reference/queries/token), and [`tokens`](/api-reference/queries/tokens) is now enriched by [The Grid](https://thegrid.id/), a human-verified Web3 ecosystem intelligence platform. When Grid data is available, queries return `asset` (verified token metadata including description, icon, and cross-chain deployments), `assetDeployments` (all networks and addresses the token is deployed on), and `organization` (metadata about the issuing organization including URLs and socials). Covers established verified projects only.
</Update>

<Update label="Apr 10, 2026" description="predictionMarketPrice, bar fee breakdown, onFilterTokenUpdated">
  * **`predictionMarketPrice` query added**. Fetch current or point-in-time price data for a prediction market, including best bid, best ask, last trade price, and spread in both USD and collateral token units.
  * **Fee breakdown fields added to bar data**. Bar types now expose `poolFees`, `baseFees`, `priorityFees`, `builderTips`, `l1DataFees`, `totalFees`, and derived metrics including `feeToVolumeRatio`, `mevToTotalFeesRatio`, `gasPerVolume`, `averageCostPerTrade`, `mevRiskLevel`, `feeRegimeClassification`, and `sandwichRate` for detailed cost and MEV analysis.
  * **[`OnFilterTokensUpdated`](https://docs.codex.io/api-reference/subscriptions/onfiltertokensupdated) subscription added**. Live-streams updates to the current [`filterTokens`](/api-reference/queries/filtertokens) result set — requires `useAggregatedStats: true`.
</Update>

<Update label="Mar 2026" description="Prediction markets, getDetailedTokenStats, useAggregatedStats">
  * **Prediction market endpoints released**. Full suite of queries and subscriptions for prediction market data:
    * Queries: [`filterPredictionEvents`](/api-reference/queries/filterpredictionevents), [`filterPredictionMarkets`](/api-reference/queries/filterpredictionmarkets), [`filterPredictionTraders`](/api-reference/queries/filterpredictiontraders), [`filterPredictionTraderMarkets`](/api-reference/queries/filterpredictiontradermarkets)
    * Detail queries: [`detailedPredictionMarketStats`](/api-reference/queries/detailedpredictionmarketstats), [`detailedPredictionEventStats`](/api-reference/queries/detailedpredictioneventstats), [`detailedPredictionTraderStats`](/api-reference/queries/detailedpredictiontraderstats)
    * Bar data: [`predictionMarketBars`](/api-reference/queries/predictionmarketbars), [`predictionEventBars`](/api-reference/queries/predictioneventbars), [`predictionTraderBars`](/api-reference/queries/predictiontraderbars), [`predictionEventTopMarketsBars`](/api-reference/queries/predictioneventtopmarketsbars)
    * Lookups: [`predictionMarkets`](/api-reference/queries/predictionmarkets), [`predictionTraders`](/api-reference/queries/predictiontraders), [`predictionTrades`](/api-reference/queries/predictiontrades), [`predictionTokenHolders`](/api-reference/queries/predictiontokenholders), [`predictionTraderHoldings`](/api-reference/queries/predictiontraderholdings), [`predictionTraderMarketsStats`](/api-reference/queries/predictiontradermarketsstats), [`predictionCategories`](/api-reference/queries/predictioncategories)
    * Subscriptions: [`onPredictionTradesCreated`](/api-reference/subscriptions/onpredictiontradescreated), [`onDetailedPredictionMarketStatsUpdated`](/api-reference/subscriptions/ondetailedpredictionmarketstatsupdated), [`onDetailedPredictionEventStatsUpdated`](/api-reference/subscriptions/ondetailedpredictioneventstatsupdated), [`onPredictionMarketBarsUpdated`](/api-reference/subscriptions/onpredictionmarketbarsupdated), [`onPredictionEventBarsUpdated`](/api-reference/subscriptions/onpredictioneventbarsupdated)
  * [`getDetailedTokenStats`](/api-reference/queries/getdetailedtokenstats) query released — returns bucketed stats aggregated across all pairs for a token, with support for multiple durations (`min5`, `min15`, `hour1`, `hour4`, `hour12`, `day1`, `week1`, `day30`)
  * [`onDetailedTokenStatsUpdated`](/api-reference/subscriptions/ondetailedtokenstatsupdated) subscription released — live-streamed equivalent of `getDetailedTokenStats`
  * Added `useAggregatedStats` flag to [`filterTokens`](/api-reference/queries/filtertokens) to opt into aggregated token stats
  * NFT data coverage deprecated. NFT endpoints will be removed on March 31, 2026
  * Added support for Tempo (network ID 4217)
  * Added the [Codex Skills](/agents/codex-skills) and [MPP](/agents/mpp) (Machine Payments Protocol) payment support. You can now use Codex directly in LLMs with either an API key or USDC on Tempo
</Update>

<Update label="Feb 2026" description="MegaETH, Top 10 Holders, new protocols">
  * Added support for the following protocols: Coinbarrel, Noice, Blowfish
  * Rolled out expanded support for Top 10 Holders Percent:
    * Added to the [`onPairMetadataUpdated`](/api-reference/subscriptions/onpairmetadataupdated) subscription and to [`filterTokens`](/api-reference/queries/filtertokens)
    * Fixed a bug with SOL case sensitivity
  * Added support for 'Bonkers' mode tokens from Bonk.fun
  * Added support for the bankr launchpad
  * Fixed a bug with [`getTokenEventsForMaker`](/api-reference/queries/gettokeneventsformaker) — it now uses a mix of the first token event (mint) and last pair event to create the window that is searched
  * Top holders now correctly excludes vault addresses
  * Negative holder count fix
  * Added support for swap pricing of 29 more SVM protocols & added to trending
  * MegaETH support added, including Kumbaya launchpad
</Update>

<Update label="Jan 2026" description="Fogo mainnet, maker attribution, Meteora DAMMv2 locks">
  * Fogo mainnet support added (Network ID: 150601)
  * Meteora DAMMv2 liquidity lock tracking
  * Historical bar fetching for [`GetTokenBars`](/api-reference/queries/gettokenbars)
  * Removed social connection requirement for signup
  * Shipped maker attribution logic for aggregated transactions
  * Added support for TokenMill EVM memescope
  * Added the following protocols with generic swap pricing support: AlphaQ, Byreal CLMM, BisonFi, Orbic V2, Swap, Stabble, ZeroFi, and PancakeSwap (hidden from trending/top pair due to lack of historical data)
</Update>

<Update label="Dec 2025" description="pump.fun fixes, webhook improvements">
  * Added support for a pump.fun swap instruction that we were missing
  * Fixed event not being recorded for pump.fun mayhem burns
  * Fixed bug & repaired data from pump.fun graduations failing to record events
  * Webhook usage/details improvements:
    * List view of user's webhooks in dashboard
    * Detail view of a webhook in dashboard
    * Webhook activity service and activity view in details
  * Improved query request/response examples in Codex docs
  * Added integrator disambiguation for Doppler launchpads
  * Fixed a pump.fun problem after they updated their contract
  * Fixed PnL totals calculation accuracy
  * Added auto disabling to failing test webhooks
  * New token pricing webhook live in prod
  * Dashboard changes for webhooks:
    * Global webhooks admin view
    * New token pricing event type
    * Updated docs for new pricing event
  * Fixed bug in balances endpoint that was letting scam tokens through when `removeScams` was true
</Update>

<Update label="Nov 2025" description="Bundlers/snipers/insiders data, pump.fun Mayhem, SDK 2.0">
  * Bundlers/Snipers/Insiders data types added to [`filterTokens`](/api-reference/queries/filtertokens) and both launchpad event subscriptions — not backfilled
  * Added [`firstSeenTimestamp`](/api-reference/types/wallet#param-firstseentimestamp) wallet data type
  * Upgraded pump.fun handling after their recent update, also added support for their new "Mayhem" mode
  * Added a requirement for Telegram or Discord connection for account creation (to help facilitate customer communication)
  * Added support for Prop (Dark) AMMs Humidifi and GoonFi (removed from pair trending)
  * Improved calculation formulae for liquidity in Meteora DAMMv2 contracts
  * Excluded all Prop (Dark) AMM pairs from trending
  * Documentation enhancements (improved visibility of input object types available per endpoint with expandable fields rather than separate pages)
  * Big improvements to [`getBars`](/api-reference/queries/getbars) (including sparklines) to run queries \~2x faster
  * Built support for Baseline Markets bSwap protocol
  * Fixed stale usage data issue in the Codex dashboard
  * Fixed [`getTokenPrices`](/api-reference/queries/gettokenprices) latency issues
  * Monad launch-day support — added support for BonadFun, NadFun, Printr, and other protocols
  * Codex docs improvements:
    * Updated styling / better visibility of endpoint object types
    * Added query/response examples
  * SDK updates v1.0.36→v2.0.0:
    * Updated to add Bundlers/Snipers/Insiders data
    * 60% smaller bundle size for end users
    * Better tree-shaking with ESM support, falls back to CommonJS
    * Modern tooling throughout development workflow
    * Removed fragment masking since it's generic and not used in SDK directly
</Update>

<Update label="Oct 2025" description="New dashboard, Monad & Katana support">
  * `tokenId` array added for [`filterTokenWallets`](/api-reference/queries/filtertokenwallets)
  * New Codex API dashboard launched at dashboard.codex.io with improved usage metrics, analytics, and auth pages
  * Added support for DYORPump launchpad protocol
  * Added support for "Four.meme Fair" launchpad, for Fourmeme tokens that are launched on Binance Wallet
  * Added `isDynamicFee` field to indicate whether a UniswapV4 pool uses a dynamic fee or not
  * Added ability in [`getTokenPrices`](/api-reference/queries/gettokenprices) to further break down prices by block in the case of subsecond block time (e.g., BNB chain)
  * Added a flag on pair metadata subscription to automatically pick quoteToken
  * Added `tokenCreatedAt` sorting to [`filterTokens`](/api-reference/queries/filtertokens) query and FE launchpad page
  * Added Katana network support
  * Bug fix: launchpad tokens that graduate/migrate consistently report 100% grad percent
  * Added support for Printr
  * Monad support (went live to all customers at launch)
  * Fixed `exchangeVersion` bug on filter endpoints
  * Added social platform login/authentication for dashboard access
</Update>

<Update label="Sep 2025" description="Token-level bar endpoints, search improvements">
  * [`GetTokenBars`](/api-reference/queries/gettokenbars) deployed as new endpoint — aggregated version of [`getBars`](/api-reference/queries/getbars), consolidating all valid token pairs into one (historical data limited)
  * [`OnTokenBarsUpdated`](/api-reference/subscriptions/ontokenbarsupdated) deployed as an aggregated version of [`onBarsUpdated`](/api-reference/subscriptions/onbarsupdated), using token events across all pools containing the token (historical data limited)
  * Big searching improvements to [`filterTokens`](/api-reference/queries/filtertokens):
    * Lowercase address search
    * Search for address by prefix
    * Ability to match non-alphanumeric characters in token names/symbols
    * General better phrase matching
  * Improved [`filterPairs`](/api-reference/queries/filterpairs) to bring searching in line with [`filterTokens`](/api-reference/queries/filtertokens)
  * Protocols:
    * Added support for Raydium Launchlab initialize\_v2 instruction, and Meteora DBC swap2 instruction
    * Added support for SolFi and TesseraV exchanges
  * Mintable/Freezable authorities for tokens are now appropriately updated. When freezable/mintable is null you can check the new `isValid` field to determine if the null is intentionally set or if the token has not been updated yet
  * Updated `TokenWalletFilterResult` type to include the complete `EnhancedToken` instead of a subset
  * Added `tokenBalanceLive` to [`FilterTokenWallets`](/api-reference/queries/filtertokenwallets) endpoint for more up-to-date balance info
  * Added `isToken0NetworkToken` to `UniswapV4Data` so that consumers can know if they're dealing with the network token (i.e., ETH not WETH)
  * Updated `expiresIn` default to 1 hour for [`CreateApiTokens`](/api-reference/mutations/createapitokens) mutation
  * Fixed filtering bug for [`onEventsCreated`](/api-reference/subscriptions/oneventscreated) — consumers can now use `address` + `networkId` without entitlement error
  * Added support for Somnia and Plasma networks, including Somnia Meme launchpad
  * Weighted pricing with filtering integrated into token aggregates — pricing will no longer use just the top pair:
    * Weighted average based on liquidity/recency, filters out pairs that use swap pricing
  * Removed search tokens endpoint
  * Added network-wide support in [`onTokenBarsUpdated`](/api-reference/subscriptions/ontokenbarsupdated) by publishing only the top bars for each pair
  * SDK updates v1.0.26→v1.0.36:
    * TokenMill V2 Launchpad support
    * `isToken0NetworkToken` to pair protocol data type
    * Override GQL document build for filterTokenWallets
    * Generate latest types
</Update>

<Update label="Aug 2025" description="Heaven AMM, launchpad expansion, liquid pair data">
  * `imageThumbHash` added to `tokenInfo` schema type (new tokens only, not backfilled)
  * Added `liquidPair`, `liquidPairLiquidity`, and `liquidPairPriceUsd` data to [`filterTokens`](/api-reference/queries/filtertokens) — info about the most liquid pair, which is not necessarily the top pair
  * Added `protocols` and `launchpadNames` subscriptions input options
  * Created a wallet backfill mutation for paid users
  * Added support for Baseapp/Zora/Zora Creator on launchpads
  * Added Heaven AMM and launchpad support
  * Improved query performance of [`filterPairs`](/api-reference/queries/filterpairs), `prices`, and [`holders`](/api-reference/queries/holders)
  * Added TokenMill V2 launchpad support
  * Added support for lowercase Solana contract address searching
  * [`onLaunchpadTokenEvents`](/api-reference/subscriptions/onlaunchpadtokenevent) and [`onLaunchpadTokenEventsBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) will now publish updates (`eventType: Updated`) for 6 hours after token migration — no handoff to [`onPairMetadataUpdated`](/api-reference/subscriptions/onpairmetadataupdated) required for migrated tokens
  * Added support for Virtuals and Clanker on launchpads
  * Improved phrase searching on [`filterTokens`](/api-reference/queries/filtertokens) for tokens with a `$` prefix
  * SDK updates v1.0.17→v1.0.26:
    * Added latest schema
    * Added launchpadName to subscription override
    * Allow list input to [`filterTokens`](/api-reference/queries/filtertokens) for `launchpadName` and `launchpadProtocol`
    * Added new launchpad protocols
    * Added generated network configs to list of public endpoints
    * Added Heaven AMM/launchpad support
    * Generated new schema
    * Allow overriding default fetch function
    * Added TokenMill V2 launchpad support
</Update>

<Update label="July 2025" description="Baseapp/Zora support, Uni V4 hooks, SDK v1.0.17">
  * Improved phrase searching on [`filterTokens`](/api-reference/queries/filtertokens) to be more accurate and provide fewer irrelevant results with low liquidity or recent activity
  * Added limit argument for holders query
  * `launchpadName` filter added as subscription input
  * Added `filterWallet` to tracked Wallets endpoint
  * Added support for indexing Uni V4 hook addresses with pairs (added to OpenSearch for filter support)
  * Added support for Baseapp protocol (and Zora) — new token creator metadata and Zora protocol support, including ERC721 metadata for EVM tokens
  * Fixes to Uni V4 price routing
  * Added support for launchpad icons to be stamped on EnhancedTokens
  * SDK updated to v1.0.17. Changes from v1.0.11→v1.0.17:
    * Unconfirmed launchpad events
    * Launchpad event filters
    * Baseapp/Zora launchpad protocol
    * Added liquidity on `LaunchpadTokenEventOutput`
    * Fixed async issue for generated subscriptions
    * Fixed issue where launchpad network filters were showing tokens on unspecified networks
</Update>

<Update label="June 2025" description="Wallet endpoints, Market Cap webhooks, Mintlify docs launch">
  * Wallet Endpoints (Trader Stats) released
  * Events By Maker subscription released
  * Token Liquidity Metadata endpoint released (locked liquidity across top 100 pairs)
  * Market Cap webhooks released
  * Swap percent and wallet ages added to [`filterTokens`](/api-reference/queries/filtertokens)
  * Improved launchpad data and support (websockets, [`filterTokens`](/api-reference/queries/filtertokens) arguments, 11+ launchpads supported and growing)
  * Somnia testnet
  * Added support for Meteora v2 swap events
  * Implemented Hyperfluid V3
  * TokenMill v2 and Heaven AMM protocol support added
  * Taraxa Network support
  * Fixed Raydium Launchlab attributed pair address
  * `walletAddress` input on orders and positions queries
  * Improved Launchpad Protocol name filtering (separated out third-party launchpads such as Bonk and Jupiter)
  * Improved token symbol matching for `phrase` searches using `$` prefix
  * Updated trending status to ignore a pair until it has enough trading data to be relevant
  * Wallet ages added for Sui & Starknet
  * Added Arena.Trade launchpad support
  * Docs migration to Mintlify (docs.codex.io)
</Update>

<Update label="May 2025" description="Launchpad event batch, SDK v1.0.7, Meteora DAMM v2">
  * Added [`LaunchpadTokenEventBatch`](/api-reference/subscriptions/onlaunchpadtokeneventbatch) subscription — publishes a batch of updates at once instead of each one individually
  * `walletAge` property added to token events (for both subscriptions and [`getTokenEvents`](/api-reference/queries/gettokenevents) endpoint)
  * Fixed issue with `quoteTokens` on events showing incorrect prices
  * Added Yominet network support
  * SDK v1.0.7 released
  * Launchpad events added for moon.it, bonkFun, boopFun, and Meteora DBC
  * Added buy/sell volume filters to [`filterTokens`](/api-reference/queries/filtertokens)/[`filterPairs`](/api-reference/queries/filterpairs)
  * Fixed a bug where free account usage failed to reset
  * Added Vertigo and EgoTech launchpad support
  * Meteora DAMM v2 support added
</Update>

<Update label="April 2025" description="FourMeme + Raydium LaunchLab, MCP server, SDK v1.0.6">
  * BSC/FourMeme and Raydium LaunchLab support for launchpad events added to [`onLaunchpadTokenEvent`](/api-reference/subscriptions/onlaunchpadtokenevent)
  * Bonk.Fun tokens supported from launch as they utilize Raydium LaunchLab
  * SDK v1.0.6 released
  * Codex MCP server released
  * Added support for Curve's TwoCrypto protocol
  * Added support for Over Protocol
  * Added indexing for Raydium LaunchLab tokens
  * Added support for iZiSwap (Izumi Finance)
  * Improvements for scam detection using wallet age metrics
  * Added network array to [`balances`](/api-reference/queries/balances) endpoint queries
  * Implemented Rainbow launchpad support and accompanying new `launchpadProtocol` field on enhanced tokens
  * Support for Rainbow and Moon.it launchpad metadata
  * Added and released Zora network
  * Added support for Starknet charts and events
  * Fixed FourMeme graduation support for Pancake V2 migrations
</Update>

<Update label="March 2025" description="pump.fun AMM, Aptos network, launchpad websocket">
  * Support added for pump.fun AMM
  * Camelot & StellaSwap fully supported on Integral 1.2
  * FluxBeam protocol indexing (as of March 10th)
  * Bunni protocol indexing
  * Added entitlements system to permit pay-to-access for certain features such as network-wide subscriptions and wallet stats/filtering
  * [`onLaunchpadTokenEvents`](/api-reference/subscriptions/onlaunchpadtokenevent) websocket released
  * [`tokenTopTraders`](/api-reference/queries/tokentoptraders) endpoint released
  * Aptos network support:
    * Added Emojicoin, Liquidswap, Hyperfluid, Thala, and Cellana protocols
  * FAQ page added to documentation
  * Added network-wide support in [`onTokenBarsUpdated`](/api-reference/subscriptions/ontokenbarsupdated) by publishing only the top bars for each pair
  * 5min trending scores added to filter tokens/pairs
  * Volume change added to network stats
</Update>

<Update label="February 2025" description="Berachain, Sui, Unichain & Sophon network support">
  * Berachain indexing
  * Added Sui network
  * Unichain support (with Uni V4)
  * Sophon network support
  * four.meme support
  * Codex SDK updated to v1.0.5
  * 5min data added to [`filterTokens`](/api-reference/queries/filtertokens), [`pairMetadata`](/api-reference/queries/pairmetadata), and [`onPairMetadataUpdated`](/api-reference/subscriptions/onpairmetadataupdated)
  * Major updates to explorer.codex.io (including saved state, tabbed view)
</Update>

<Update label="January 2025" description="Uniswap V4 indexing, Abstract Chain, new wallet endpoints">
  * Added Maverick Protocol
  * Added Swell network
  * Added Ronin & Saigon testnet networks
  * `enhancedToken0` and `enhancedToken1` fields added
  * `MakersEventQueryInput` modified with optional fields (`timestamp`, `priceUsdTotal`, `eventType`, `tokenAddress`)
  * `LaunchPadTokenUpdate` endpoint added to replace `TokenUpdate`
  * `NotableHolders` endpoints added
  * [`TokenEventsForMaker`](/api-reference/queries/gettokeneventsformaker) endpoint added
  * Uniswap V4 data indexing
  * Abstract Chain indexing
</Update>

<Update label="December 2024" description="Unconfirmed aggregates, SDK v1.0, Sonic network">
  * Added unconfirmed aggregates/[`onUnconfirmedBarsUpdated`](/api-reference/subscriptions/onunconfirmedbarsupdated)
  * Added `poolAddress` to the [`getTokenPrices`](/api-reference/queries/gettokenprices) endpoint so that you can specify a pool
  * Shipped version 1.0.0 of the SDK with enhanced query/mutation/subscription support
  * Implemented filter orders by token address
  * Added Sonic network
  * Fixed an issue with retrieving exchanges within [`filterTokens`](/api-reference/queries/filtertokens)
</Update>

<Update label="November 2024" description="Unconfirmed event pricing, token bar subscriptions by ID">
  * Exposed pricing data on the unconfirmed events for public use
  * New [`onTokenBarUpdate`](/api-reference/subscriptions/ontokenbarsupdated) subscription that allows subscriptions using token IDs
  * Added support for daos.fun protocol
  * Built AnimalFactory support
</Update>

<Update label="October 2024" description="Unconfirmed Solana events, wallet tracking, World Chain support">
  * Added [`onPricesUpdated`](/api-reference/subscriptions/onpricesupdated) endpoint to publish price changes for multiple tokens
  * Added [`onUnconfirmedEventsCreated`](/api-reference/subscriptions/onunconfirmedeventscreated) endpoint to publish unconfirmed events for Solana
  * Added wallet tracking
  * Added support for Chiliz and World Chain networks
  * Fixed address casing issues in subscription endpoints — now they can handle cased and uncased formats
  * Added support for Velodrome v3 protocol
</Update>

<Update label="Sept 30, 2024" description="Bug fix: getTokensInfo partial results">
  * Fixed bug that was preventing `getTokensInfo` from returning partial results
</Update>

<Update label="Aug 26, 2024" description="Bitbond liquidity protocol support">
  * Added Bitbond to liquidity supported protocols
</Update>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.