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

# Changelog

> Product updates and announcements across our platform

<div className="w-full max-w-[960px] mx-auto">
  <Tabs>
    <Tab title="All Updates">
      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">April 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">Datastream</span>
            <span className="changelog-tag">Solana RPC</span>
            <span className="changelog-tag">General</span>
          </div>

          <div className="changelog-card-desc">Performance improvements, new load balancers, and reduced latency</div>
        </div>

        <div className="changelog-card-body">
          ## Infrastructure

          * **Improved shred delivery** — Faster shred delivery for improved block propagation.
          * **New global load balancer for Data API** — Added a global load balancer for the Data API.
          * **New US-based Data API load balancer** — Dedicated US load balancer for lower-latency access.
          * **Colocated US servers** — Some endpoints dropped from 600ms response times to under 100ms.
          * **Migrated and upgraded ClickHouse cluster** — Better latency and faster queries across the API.

          ## Data API

          * **Improved trades endpoint speeds** — All trades endpoints are now faster.
          * **Improved `/chart` response speed** — Faster chart data retrieval.
          * **Improved `/tokens/:token` response time** — Faster token detail lookups.
          * **Improved metadata retrieval speed** — Faster metadata fetching across endpoints.
          * **Improved `/wallet/:wallet/chart` endpoint** — Now returns a chart even with only 1 data point.
          * **Fixed pagination bug on ascending trades** — Fixed a pagination issue when fetching trades in ascending order.
          * **Fixed Meteora DAMM liquidity** — Resolved a liquidity calculation issue on some older Meteora DAMM pools.
          * **Fixed PumpFun token creation edge cases** — Resolved edge cases on token creation events.
          * **Imported all missing PumpFun curve data** — Backfilled 15M+ tokens of PumpFun curve data.
          * **Fixed curve pools on `/tokens/:token`** — Curve pools (5+) now always appear after migration.
          * **Fixed Axiom transaction fee parser** — Moved from transfer to internal CPI call for accurate fee parsing.
          * **`uniqueTokens` query param on deployers API** — Returns latest graduated pool and first non-graduated pool in the regular list.
          * **Raydium LaunchLab tweaks** — Adjustments for Raydium LaunchLab support.
          * **Raydium CPMM improvements** — Improved Raydium CPMM handling.
          * **Search API bug fixes** — Various fixes to the search endpoint.

          ## Ridge DB

          * **Improved performance** — Improved indexes and response times across several queries.
          * **Globally load balanced** — US RPC users can now call methods like `getProgramAccounts`, `getProgramAccountsV2`, etc. around 200–400ms faster.
          * **Fixed frozen token account decoding** — Frozen token accounts now always show and decode properly.

          ## Datastream

          * **Improved Datastream performance** — Improved price, pool, and transaction update latency.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">March 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Bags.fm creator updates</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **Updated Bags.fm creators** — Updated creator data for Bags.fm tokens.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">February 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Search & deployer improvements, pool creation data</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **Multiple markets filter** — `/search` `market` parameter now accepts comma-separated values (e.g. `?market=raydium,orca,pumpfun`). Single values still work as before.
          * **Multiple launchpads filter** — `/search` `launchpad` parameter now accepts comma-separated values (e.g. `?launchpad=pumpfun,boop`). Single values still work as before.
          * **Launchpad filter on `/deployer`** — The `?launchpad=` parameter now works on `/deployer/{wallet}` (previously silently ignored).
          * **Full token format** — `/search` and `/deployer/{wallet}` now support `?format=full`, which returns results as full token objects (same shape as `/tokens/:token` — with token, pools, events, risk, buys, sells, txns, holders).
          * **Lower page limit for full format** — When `format=full`, the max per-page limit is capped at 100 (instead of 500) to keep queries efficient.

          [Search docs →](/data-api/search/token-search)<br />
          [Deployer docs →](/data-api/tokens/get-tokens-by-deployer)

          ## Datastream

          * **Pool creation data** — The `latest` and `graduated` rooms now include a `creation` object on each pool with `creator`, `created_tx`, and `created_time`.  (This is currently only available on the websocket for Pools. Token creation is also available on the Data API)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">February 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">New stats total and volume rooms</div>
        </div>

        <div className="changelog-card-body">
          ## Datastream

          * **New total stats rooms**
            * `stats:token:{tokenAddress}:total`
            * `stats:pool:{poolId}:total`
          * **New volume rooms**
            * `volume:token:{tokenAddress}`
            * `volume:pool:{poolId}`

          [Total Token Stats →](/datastream/websockets/tokenstatisticstotal)<br />
          [Total Pool Stats →](/datastream/websockets/poolstatisticstotal)<br />
          [Token Volume →](/datastream/websockets/tokenvolume)<br />
          [Pool Volume →](/datastream/websockets/poolvolume)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">January 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Price, charts, and streaming improvements</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **Improved price change percentages** — More accurate percent change calculations.
          * **Improved chart wicks** — Chart API shows more accurate wicks via a new aggregation technique.
          * **Fixed chart volume in some cases** — Ensures volume uses all pools when not filtering by pool.
          * **Added Humidifi, Tessera, and Solfi V1/V2 support.**

          ## Datastream

          * **Fixed price change percentages on stats room** — Corrected percent change calculations in the stats room.
          * **Improved pool selection** — Better pool selection on token and price rooms.
          * **Transaction monitor updates** — Added Raptor to the transaction monitor
          * **Added Humidifi, Tessera, and Solfi V1/V2 support.**
          * **Stability improvements** — Fixed and improved stability of transaction and price updates.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">January 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Chart currency option</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **Chart currency option** — `/chart/{token}` and `/chart/{token}/{pool}` now support `currency=usd|sol|eur` (default `usd`).

          [View documentation →](/data-api/chart/get-ohlcv-data-for-a-token#parameter-currency)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">January 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Bundlers endpoint and new token data</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **New bundlers endpoint** — Use `/tokens/{token}/bundlers` to fetch bundler wallet stats for a token.
          * **Risk now includes bundlers** — The `risk` object returned on token responses includes bundler analysis.
          * **Search improvements** — `/search` now returns `riskScore` and bundler-related fields.

          ### Risk scores

          * **Bundlers** — New count-based + percentage-based scoring from new bundler data.
          * **Suspicious volume** — Flags extreme buy/sell imbalance.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">January 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Bundler tracking room</div>
        </div>

        <div className="changelog-card-body">
          ## Datastream

          * **New room:** `bundlers:{tokenAddress}` — Real-time bundler wallet updates (wallet, current/previous amount & %, and totalBundlerPercentage).
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">January 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Top performers endpoint</div>
        </div>

        <div className="changelog-card-body">
          ## Top Performers

          * **Top performers endpoint** — Added `/top-performers/{timeframe}` to retrieve top performing tokens launched today.
          * **Timeframes** — Supports `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, and `24h`.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">December 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Data accuracy and trade enhancements</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **First buyers endpoint accuracy** — Improved accuracy for first buyers endpoints to match with other PnL endpoints
          * **Pricing and volume fixes** — Fixed pricing and volume calculation bug on some trades
          * **Exact token price at trade time** — Added exact token price at time of trade for each token when using the `showMeta` flag on `/trades`

          ## Datastream - Trade rooms

          * **Global Load Balancer** - Added a global load balancer for the Datastream that routes to US or EU based Datastream servers automatically.
          * **Enhanced Datastream trade rooms** — Added `price` and `marketCap` to each token in Datastream trade rooms for better accuracy (uses main pool data). The main object `priceUsd` can be considered the exchange rate.

          ## Image proxy

          * **Image proxy filtering** — Enhanced image proxy filtering for invalid SVGs with reduced false positives
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">November 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Datastream</span>
            <span className="changelog-tag">General</span>
          </div>

          <div className="changelog-card-desc">API and Datastream improvements</div>
        </div>

        <div className="changelog-card-body">
          * **Faster transaction and price updates** — Reduced latency for real-time data delivery
          * **Enhanced tokens overview API** — Pulse/Memescope now features improved filters and dramatically better performance
          * **Upgraded Yellowstone gRPC** — New Rust client delivers faster streaming performance

          ## Data Accuracy & Reliability

          Major improvements to data quality and consistency:

          * **Program filtering** — Excluded unknown programs that could cause invalid data from arbitrage bots and other sources
          * **Pool data updates** — Liquidity changes now trigger pool updates even without swaps
          * **Time accuracy improvements** — Edge case handling now uses `blockTime` when gRPC is behind or transaction parsing is delayed by more than a few seconds

          ## New Features

          **Automatic Pool Rotation**

          * Main pool rotation now happens automatically for `price:token:{address}` and `token:{primary}` rooms — no client-side changes required

          **Aggregated Price Room**

          * New **`price:aggregated:{token}`** room provides min, average, median, and max price updates
          * Aggregates price data across top 10 valid pools
          * Each update includes individual pool prices for full transparency

          **Pumpfun Mayhem Mode**

          * Added support for Pumpfun Mayhem mode
          * Pool data now includes `tokenProgram` and `isMayhemMode` fields

          ## Infrastructure

          **Redis Server Upgrade**

          * Deployed new Redis infrastructure
          * Eliminates random 500/503 errors during high load periods
          * Improved overall platform stability
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">November 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Aggregated Price Stream</div>
        </div>

        <div className="changelog-card-body">
          ## Aggregated Price Updates

          We've added a new WebSocket room that provides aggregated price data across multiple liquidity pools for any token.

          ### What's New

          **`price:aggregated:{tokenAddress}`**

          * **Multi-pool aggregation** — Get median, average, min, and max prices calculated across top liquidity pools
          * **Top pools data** — Detailed breakdown of the 10 highest liquidity pools with individual prices
          * **Real-time updates** — Live price aggregation as pools update
          * **Pool count tracking** — Know exactly how many pools contributed to the aggregated data
          * **Automatic pool rotation** - No need to subscribe to new rooms after token migration.

          ### Why Use Aggregated Pricing?

          Single pool prices can be manipulated or show temporary volatility. Aggregated pricing gives you:

          * **More accurate market prices** — Median and average across multiple sources
          * **Manipulation resistance** — Harder to distort when aggregating across pools
          * **Price range visibility** — See min/max spread to identify arbitrage opportunities
          * **Liquidity-weighted insights** — Focus on pools that matter most

          ```json theme={null}
          {
              "type": "message",
              "data": {
                  "token": "So11111111111111111111111111111111111111112",
                  "timestamp": 1762964449215,
                  "price": 153.70666202103925,
                  "pool": "3nMFwZXwY1s1M5s8vYAHqd4wGs4iSxXE4LRoUMMYqEgF",
                  "aggregated": {
                      "median": 153.6850599485249,
                      "average": 153.6735820182654,
                      "min": 153.36863801111053,
                      "max": 153.71662179961638,
                      "poolCount": 10
                  },
                  "topPools": [
                      {
                          "poolId": "3ucNos4NbumPLZNWztqGHNFFgkHeRMBQAVemeeomsUxv",
                          "price": 153.68241854665007,
                          "liquidity": 17950616.091940343,
                          "market": "raydium-clmm"
                      },
                      ...
                  ]
              },
              "room": "price:aggregated:So11111111111111111111111111111111111111112"
          }
          ```

          Perfect for trading interfaces, price oracles, and portfolio tracking applications that need reliable, manipulation-resistant pricing.

          [View documentation →](/datastream/websockets/priceaggregated)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">November 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Solana RPC</span>
          </div>

          <div className="changelog-card-desc">Batch Token Balance Queries</div>
        </div>

        <div className="changelog-card-body">
          ## getTokenAccountsByOwners — Batch Balance Lookups

          We've added a new Ridge DB-powered RPC method that lets you query token balances for multiple wallets in a single request.

          ### What's New

          **`getTokenAccountsByOwners`**

          * **Batch up to 250 wallets** — Query hundreds of addresses in one call instead of making individual requests
          * **Multiple accounts support** — Automatically returns all token accounts if a wallet has multiple for the same mint
          * **Zero balance handling** — Wallets without a token account return a clean zero balance response
          * **Slot tracking** — Each account includes the slot when the balance was last updated

          ### Use Cases

          Perfect for:

          * Portfolio tracking across multiple wallets
          * Airdrop eligibility verification
          * Multi-wallet dashboards
          * Token distribution snapshots

          ```json theme={null}
          {
            "jsonrpc": "2.0",
            "id": 1,
            "method": "getTokenAccountsByOwners",
            "params": [
              ["wallet1...", "wallet2...", "wallet3..."],
              "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
            ]
          }
          ```

          This method drastically reduces API calls and latency when you need to check token holdings across many addresses at once.

          [View documentation →](/solana-rpc/http/gettokenaccountsbyowners)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">November 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Ridge Stream Launch</div>
        </div>

        <div className="changelog-card-body">
          ## Ridge Stream — Enhanced Holder Data

          All holder endpoints and real-time streams have been migrated to **Ridge Stream**, from our new high-performance service RidgeDB

          ### What's New

          **REST Endpoints**

          * **`/tokens/{token}/holders`** — Get top 100 holders (use /tokens/{token}/holders/pagination for pagination and higher limits )
          * **`/tokens/{token}/holders/top`** — Fetch top holders by balance (excluding known wallets like lp)
          * **`/holders/multi`** — Multi-token holder count lookups
          * **`/holders/chart`** — Historical holder charts with more datapoints (now also includes SOL, USDC, and more)

          **Real-Time Streams**

          * **Holder count updates** — Live tracking of total holders
          * **Wallet balance updates** — Now includes native SOL with improved reliability
          * **Top 100 holders** — Real-time rankings of largest holders
          * **Snipers and insiders** — Track early buyers and insider activity

          You can now also get holder data for **large tokens** like WSOL, USDC, and USD1 that weren't available before. All holder counts and top 100 rankings work for these tokens via both API and real-time streaming.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">October 28 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Search Filters</div>
        </div>

        <div className="changelog-card-body">
          ## New Search Filters

          Added new filters to the token search endpoint:

          * **`launchpad`** — Filter by launch platform (`pumpfun`, `moonshot`, `letsbonk.fun`, `believe`)
          * **`image`** — Search by exact image URL
          * **`hasImage`** — Filter tokens that have/don't have images (`true`/`false`)

          [View documentation →](/data-api/search/token-search)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">October 22 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Paginated Token Holders</div>
        </div>

        <div className="changelog-card-body">
          ## Paginated Token Holders Endpoint

          We've launched a new endpoint for fetching all token holders with cursor-based pagination.

          ### What's New

          **`GET /tokens/{tokenAddress}/holders/paginated`**

          * **Cursor pagination** — Navigate through all holders efficiently
          * **Up to 5,000 per page** — Fetch large batches in a single request
          * **Ridge DB powered** — Fast queries even for tokens with millions of holders
          * **Complete holder data** — Returns wallet, token account, amount, USD value, total holder count and ownership percentage

          ### The Improvement

          Previously limited to 100 holders, this endpoint now handles tokens with any number of holders while maintaining consistent performance.

          ```bash theme={null}
          GET /tokens/{tokenAddress}/holders/paginated?limit=1000&cursor=nextPageCursor
          ```

          [View documentation →](/data-api/tokens/get-all-token-holders-paginated)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">October 21 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Solana RPC</span>
          </div>

          <div className="changelog-card-desc">RPC Enhancements</div>
        </div>

        <div className="changelog-card-body">
          ## Ridge DB Performance & Features Update

          We've shipped several improvements to our Ridge DB-powered RPC methods to give you even more control and speed.

          ### What's New

          * **Total count support** — `getProgramAccountsV2` and `getTokenAccountsByOwnerV2` now return `totalCount` in responses, making pagination and UI updates easier
          * **Faster queries** — New indexes dramatically improve response times for certain account lookups
          * **Stability improvements** — Bug fixes and optimizations

          These updates build on our Ridge DB launch, delivering better performance and more developer-friendly responses.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">October 16 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Solana RPC</span>
          </div>

          <div className="changelog-card-desc">Ridge DB Launch</div>
        </div>

        <div className="changelog-card-body">
          ## Solana Ridge DB

          We've rolled out **two new RPC methods** powered by **Ridge DB** — our high-performance engine designed for lightning-fast account lookups on Solana.

          ### 🧭 New Methods

          #### `getProgramAccountsV2`

          Supercharged program account queries with:

          * **`changedSince`** — Fetch only accounts updated after a given slot (great for incremental syncs)
          * **`excludeZero`** — Automatically skip empty token accounts
          * **Cursor pagination** — Retrieve up to 10,000 accounts per request

          #### `getTokenAccountsByOwnerV2`

          Optimized token account retrieval, featuring the same Ridge DB speed and:

          * **`changedSince`** — Get only new or updated token accounts
          * **`excludeZero`** — Filter out dust or empty balances
          * **Cursor pagination** — Smoothly handle large token sets

          ### 💡 Why Ridge DB?

          Ridge DB isn't your standard RPC backend. It's a purpose-built system for account-heavy workloads that delivers:

          * Faster response times
          * Slot-based incremental updates
          * Cursor pagination for big datasets

          In short — faster queries, cleaner data, and a smoother developer experience.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">October 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">General</span>
          </div>

          <div className="changelog-card-desc">Documentation Launch</div>
        </div>

        <div className="changelog-card-body">
          ## New Documentation Site

          We've launched a brand-new documentation hub that brings all our products and APIs together, complete with guides and hands-on examples.

          You can now explore detailed docs for:

          * **Yellowstone gRPC** — Real-time Solana data streaming
          * **Data API** — REST access to historical and live Solana data
          * **Datastream** — WebSocket-based live data feeds
          * **Solana RPC** — Enhanced endpoints powered by Ridge DB
          * **Swap API** — High-performance token swaps and routing

          The new docs include interactive code samples, and best practices to help you build faster and smarter on Solana.
        </div>
      </div>
    </Tab>

    <Tab title="Solana RPC">
      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">April 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Solana RPC</span>
          </div>

          <div className="changelog-card-desc">Ridge DB performance and reliability improvements</div>
        </div>

        <div className="changelog-card-body">
          ## Ridge DB

          * **Improved performance** — Improved indexes and response times across several queries.

          * **Globally load balanced** — US RPC users can now call methods like `getProgramAccounts`, `getProgramAccountsV2`, etc. around 200–400ms faster.

          * **Fixed frozen token account decoding** — Frozen token accounts now always show and decode properly.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">November 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Solana RPC</span>
          </div>

          <div className="changelog-card-desc">Batch Token Balance Queries</div>
        </div>

        <div className="changelog-card-body">
          ## getTokenAccountsByOwners — Batch Balance Lookups

          We've added a new Ridge DB-powered RPC method that lets you query token balances for multiple wallets in a single request.

          ### What's New

          **`getTokenAccountsByOwners`**

          * **Batch up to 250 wallets** — Query hundreds of addresses in one call instead of making individual requests
          * **Multiple accounts support** — Automatically returns all token accounts if a wallet has multiple for the same mint
          * **Zero balance handling** — Wallets without a token account return a clean zero balance response
          * **Slot tracking** — Each account includes the slot when the balance was last updated

          ### Use Cases

          Perfect for:

          * Portfolio tracking across multiple wallets
          * Airdrop eligibility verification
          * Multi-wallet dashboards
          * Token distribution snapshots

          ```json theme={null}
          {
            "jsonrpc": "2.0",
            "id": 1,
            "method": "getTokenAccountsByOwners",
            "params": [
              ["wallet1...", "wallet2...", "wallet3..."],
              "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
            ]
          }
          ```

          This method drastically reduces API calls and latency when you need to check token holdings across many addresses at once.

          [View documentation →](/solana-rpc/http/gettokenaccountsbyowners)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">October 21 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Solana RPC</span>
          </div>

          <div className="changelog-card-desc">RPC Enhancements</div>
        </div>

        <div className="changelog-card-body">
          ## Ridge DB Performance & Features Update

          We've shipped several improvements to our Ridge DB-powered RPC methods to give you even more control and speed.

          ### What's New

          * **Total count support** — `getProgramAccountsV2` and `getTokenAccountsByOwnerV2` now return `totalCount` in responses, making pagination and UI updates easier
          * **Faster queries** — New indexes dramatically improve response times for certain account lookups
          * **Stability improvements** — Bug fixes and optimizations

          These updates build on our Ridge DB launch, delivering better performance and more developer-friendly responses.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">October 16 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Solana RPC</span>
          </div>

          <div className="changelog-card-desc">Ridge DB Launch</div>
        </div>

        <div className="changelog-card-body">
          ## Solana Ridge DB

          We've rolled out **two new RPC methods** powered by **Ridge DB**, our high-performance engine designed for lightning-fast account lookups on Solana.

          ### 🧭 New Methods

          #### `getProgramAccountsV2`

          Supercharged program account queries with:

          * **`changedSince`** — Fetch only accounts updated after a given slot (great for incremental syncs)
          * **`excludeZero`** — Automatically skip empty token accounts
          * **Cursor pagination** — Retrieve up to 10,000 accounts per request

          #### `getTokenAccountsByOwnerV2`

          Optimized token account retrieval, featuring the same Ridge DB speed and:

          * **`changedSince`** — Get only new or updated token accounts
          * **`excludeZero`** — Filter out dust or empty balances
          * **Cursor pagination** — Smoothly handle large token sets

          ### 💡 Why Ridge DB?

          Ridge DB isn't your standard RPC backend. It's a purpose-built system for account-heavy workloads that delivers:

          * Faster response times
          * Slot-based incremental updates
          * Cursor pagination for big datasets

          In short — faster queries, cleaner data, and a smoother developer experience.
        </div>
      </div>
    </Tab>

    <Tab title="Yellowstone gRPC">
      <div className="text-gray-500 py-8 text-center">
        No updates yet. Check back soon!
      </div>
    </Tab>

    <Tab title="Data API">
      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">April 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">General</span>
          </div>

          <div className="changelog-card-desc">Performance improvements and new load balancers</div>
        </div>

        <div className="changelog-card-body">
          ## Infrastructure

          * **Improved shred delivery** — Faster shred delivery for improved block propagation.
          * **New global load balancer for Data API** — Added a global load balancer for the Data API.
          * **New US-based Data API load balancer** — Dedicated US load balancer for lower-latency access.
          * **Colocated US servers** — Some endpoints dropped from 600ms response times to under 100ms.
          * **Migrated and upgraded ClickHouse cluster** — Better latency and faster queries across the API.

          ## Data API

          * **Improved trades endpoint speeds** — All trades endpoints are now faster.

          * **Improved `/chart` response speed** — Faster chart data retrieval.

          * **Improved `/tokens/:token` response time** — Faster token detail lookups.

          * **Improved metadata retrieval speed** — Faster metadata fetching across endpoints.

          * **Improved `/wallet/:wallet/chart` endpoint** — Now returns a chart even with only 1 data point.

          * **Fixed pagination bug on ascending trades** — Fixed a pagination issue when fetching trades in ascending order.

          * **Fixed Meteora DAMM liquidity** — Resolved a liquidity calculation issue on some older Meteora DAMM pools.

          * **Fixed PumpFun token creation edge cases** — Resolved edge cases on token creation events.

          * **Imported all missing PumpFun curve data** — Backfilled 15M+ tokens of PumpFun curve data.

          * **Fixed curve pools on `/tokens/:token`** — Curve pools (5+) now always appear after migration.

          * **Fixed Axiom transaction fee parser** — Moved from transfer to internal CPI call for accurate fee parsing.

          * **`uniqueTokens` query param on deployers API** — Returns latest graduated pool and first non-graduated pool in the regular list.

          * **Raydium LaunchLab tweaks** — Adjustments for Raydium LaunchLab support.

          * **Raydium CPMM improvements** — Improved Raydium CPMM handling.

          * **Search API bug fixes** — Various fixes to the search endpoint.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">March 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Bags.fm creator updates</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **Updated Bags.fm creators** — Updated creator data for Bags.fm tokens.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">February 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Search & deployer improvements</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **Multiple markets filter** — `/search` `market` parameter now accepts comma-separated values (e.g. `?market=raydium,orca,pumpfun`). Single values still work as before.
          * **Multiple launchpads filter** — `/search` `launchpad` parameter now accepts comma-separated values (e.g. `?launchpad=pumpfun,boop`). Single values still work as before.
          * **Launchpad filter on `/deployer`** — The `?launchpad=` parameter now works on `/deployer/{wallet}` (previously silently ignored).
          * **Full token format** — `/search` and `/deployer/{wallet}` now support `?format=full`, which returns results as full token objects (same shape as `/tokens/:token` — with token, pools, events, risk, buys, sells, txns, holders).
          * **Lower page limit for full format** — When `format=full`, the max per-page limit is capped at 100 (instead of 500) to keep queries efficient.

          [Search docs →](/data-api/search/token-search)<br />
          [Deployer docs →](/data-api/tokens/get-tokens-by-deployer)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">January 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Price, charts, and streaming improvements</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **Improved price change percentages** — More accurate percent change calculations.

          * **Improved chart wicks** — Chart API shows more accurate wicks via a new aggregation technique.

          * **Fixed chart volume in some cases** — Ensures volume uses all pools when not filtering by pool.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">January 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Chart currency option</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **Chart currency option** — `/chart/{token}` and `/chart/{token}/{pool}` now support `currency=usd|sol|eur` (default `usd`).

          [View documentation →](/data-api/chart/get-ohlcv-data-for-a-token#parameter-currency)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">January 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Bundlers endpoint and new token data</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **New bundlers endpoint** — Use `/tokens/{token}/bundlers` to fetch bundler wallet stats for a token.
          * **Risk now includes bundlers** — The `risk` object returned on token responses includes bundler analysis.
          * **Search improvements** — `/search` now returns `riskScore` and bundler-related fields.

          ### Risk scores

          * **Bundlers** — New count-based + percentage-based scoring from new bundler data.

          * **Suspicious volume** — Flags extreme buy/sell imbalance.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">January 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Top performers endpoint</div>
        </div>

        <div className="changelog-card-body">
          ## Top Performers

          * **Top performers endpoint** — Added `/top-performers/{timeframe}` to retrieve top performing tokens launched today.

          * **Timeframes** — Supports `5m`, `15m`, `30m`, `1h`, `6h`, `12h`, and `24h`.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">December 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Data accuracy and trade enhancements</div>
        </div>

        <div className="changelog-card-body">
          ## Data API

          * **First buyers endpoint accuracy** — Improved accuracy for first buyers endpoints to match with other PnL endpoints
          * **Pricing and volume fixes** — Fixed pricing and volume calculation bug on some trades
          * **Exact token price at trade time** — Added exact token price at time of trade for each token when using the `showMeta` flag on `/trades`

          ## Datastream - Trade rooms

          * **Global Load Balancer** - Added a global load balancer for the Datastream that routes to US or EU based Datastream servers automatically.
          * **Enhanced Datastream trade rooms** — Added `price` and `marketCap` to each token in Datastream trade rooms for better accuracy (uses main pool data). The main object `priceUsd` can be considered the exchange rate.

          ## Image proxy

          * **Image proxy filtering** — Enhanced image proxy filtering for invalid SVGs with reduced false positives
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">November 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Ridge Stream Launch</div>
        </div>

        <div className="changelog-card-body">
          ## Ridge Stream — Enhanced Holder Data

          All holder endpoints and real-time streams have been migrated to **Ridge Stream**, from our new high-performance service RidgeDB

          ### What's New

          **REST Endpoints**

          * **`/tokens/{token}/holders`** — Get top 100 holders (use /tokens/{token}/holders/pagination for pagination and higher limits )
          * **`/tokens/{token}/holders/top`** — Fetch top holders by balance (excluding known wallets like lp)
          * **`/holders/multi`** — Multi-token holder count lookups
          * **`/holders/chart`** — Historical holder charts with more datapoints (now also includes SOL, USDC, and more)

          **Real-Time Streams**

          * **Holder count updates** — Live tracking of total holders
          * **Wallet balance updates** — Now includes native SOL with improved reliability
          * **Top 100 holders** — Real-time rankings of largest holders
          * **Snipers and insiders** — Track early buyers and insider activity

          You can now also get holder data for **large tokens** like WSOL, USDC, and USD1 that weren't available before. All holder counts and top 100 rankings work for these tokens via both API and real-time streaming.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">October 28 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Search Filters</div>
        </div>

        <div className="changelog-card-body">
          ## New Search Filters

          Added new filters to the token search endpoint:

          * **`launchpad`** — Filter by launch platform (`pumpfun`, `moonshot`, `letsbonk.fun`, `believe`)
          * **`image`** — Search by exact image URL
          * **`hasImage`** — Filter tokens that have/don't have images (`true`/`false`)

          [View documentation →](/data-api/search/token-search)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">October 22 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
          </div>

          <div className="changelog-card-desc">Paginated Token Holders</div>
        </div>

        <div className="changelog-card-body">
          ## Paginated Token Holders Endpoint

          We've launched a new endpoint for fetching all token holders with cursor-based pagination.

          ### What's New

          **`GET /tokens/{tokenAddress}/holders/paginated`**

          * **Cursor pagination** — Navigate through all holders efficiently
          * **Up to 5,000 per page** — Fetch large batches in a single request
          * **Ridge DB powered** — Fast queries even for tokens with millions of holders
          * **Complete holder data** — Returns wallet, token account, amount, USD value, total holder count and ownership percentage

          ### The Improvement

          Previously limited to 100 holders, this endpoint now handles tokens with any number of holders while maintaining consistent performance.

          ```bash theme={null}
          GET /tokens/{tokenAddress}/holders/paginated?limit=1000&cursor=nextPageCursor
          ```

          [View documentation →](/data-api/tokens/get-all-token-holders-paginated)
        </div>
      </div>
    </Tab>

    <Tab title="Datastream">
      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">April 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Improved update latency</div>
        </div>

        <div className="changelog-card-body">
          ## Datastream

          * **Improved Datastream performance** — Improved price, pool, and transaction update latency.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">February 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Pool creation data in latest & graduated rooms</div>
        </div>

        <div className="changelog-card-body">
          ## Datastream

          * **Pool creation data** — The `latest` and `graduated` rooms now include a `creation` object on each pool with `creator`, `created_tx`, and `created_time`. (This is currently only available on the websocket for Pools. Token creation is also available on the Data API)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">February 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">New stats total and volume rooms</div>
        </div>

        <div className="changelog-card-body">
          ## Datastream

          * **New total stats rooms**
            * `stats:token:{tokenAddress}:total`
            * `stats:pool:{poolId}:total`
          * **New volume rooms**
            * `volume:token:{tokenAddress}`
            * `volume:pool:{poolId}`
          * **SDK-aligned payloads**
            * Total stats rooms emit `TokenStatsTotal`
            * Volume rooms emit `VolumeTokenUpdate` / `VolumePoolUpdate`

          [Token stats total docs →](/datastream/websockets/tokenstatisticstotal)<br />
          [Pool stats total docs →](/datastream/websockets/poolstatisticstotal)<br />
          [Token volume docs →](/datastream/websockets/tokenvolume)<br />
          [Pool volume docs →](/datastream/websockets/poolvolume)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">January 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Price, charts, and streaming improvements</div>
        </div>

        <div className="changelog-card-body">
          ## Datastream

          * **Fixed price change percentages on stats room** — Corrected percent change calculations in the stats room.

          * **Improved pool selection** — Better pool selection on token and price rooms.

          * **Transaction monitor updates** — Added Raptor to the transaction monitor; added Humidifi, Tessera, and Solfi V1/V2 support.

          * **Stability improvements** — Fixed and improved stability of transaction and price updates.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">January 2026</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Bundler tracking room</div>
        </div>

        <div className="changelog-card-body">
          ## Datastream

          * **New room:** `bundlers:{tokenAddress}` — Real-time bundler wallet updates (wallet, current/previous amount & %, and totalBundlerPercentage).
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">December 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Data accuracy and trade enhancements</div>
        </div>

        <div className="changelog-card-body">
          ## Datastream - Trade rooms

          * **Global Load Balancer** - Added a global load balancer for the Datastream that routes to US or EU based Datastream servers automatically.

          * **Enhanced Datastream trade rooms** — Added `price` and `marketCap` to each token in Datastream trade rooms for better accuracy (uses main pool data). The main object `priceUsd` can be considered the exchange rate.
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">November 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Datastream</span>
            <span className="changelog-tag">General</span>
          </div>

          <div className="changelog-card-desc">API and Datastream improvements</div>
        </div>

        <div className="changelog-card-body">
          * **Faster transaction and price updates** — Reduced latency for real-time data delivery
          * **Enhanced tokens overview API** — Pulse/Memescope now features improved filters and dramatically better performance
          * **Upgraded Yellowstone gRPC** — New Rust client delivers faster streaming performance

          ## Data Accuracy & Reliability

          Major improvements to data quality and consistency:

          * **Program filtering** — Excluded unknown programs that could cause invalid data from arbitrage bots and other sources
          * **Pool data updates** — Liquidity changes now trigger pool updates even without swaps
          * **Time accuracy improvements** — Edge case handling now uses `blockTime` when gRPC is behind or transaction parsing is delayed by more than a few seconds

          ## New Features

          **Automatic Pool Rotation**

          * Main pool rotation now happens automatically for `price:token:{address}` and `token:{primary}` rooms — no client-side changes required

          **Aggregated Price Room**

          * New **`price:aggregated:{token}`** room provides min, average, median, and max price updates
          * Aggregates price data across top 10 valid pools
          * Each update includes individual pool prices for full transparency

          **Pumpfun Mayhem Mode**

          * Added support for Pumpfun Mayhem mode
          * Pool data now includes `tokenProgram` and `isMayhemMode` fields

          ## Infrastructure

          **Redis Server Upgrade**

          * Deployed new Redis infrastructure

          * Eliminates random 500/503 errors during high load periods

          * Improved overall platform stability
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">November 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Aggregated Price Stream</div>
        </div>

        <div className="changelog-card-body">
          ## Aggregated Price Updates

          We've added a new WebSocket room that provides aggregated price data across multiple liquidity pools for any token.

          ### What's New

          **`price:aggregated:{tokenAddress}`**

          * **Multi-pool aggregation** — Get median, average, min, and max prices calculated across top liquidity pools
          * **Top pools data** — Detailed breakdown of the 10 highest liquidity pools with individual prices
          * **Real-time updates** — Live price aggregation as pools update
          * **Pool count tracking** — Know exactly how many pools contributed to the aggregated data
          * **Automatic pool rotation** - No need to subscribe to new rooms after token migration.

          ### Why Use Aggregated Pricing?

          Single pool prices can be manipulated or show temporary volatility. Aggregated pricing gives you:

          * **More accurate market prices** — Median and average across multiple sources
          * **Manipulation resistance** — Harder to distort when aggregating across pools
          * **Price range visibility** — See min/max spread to identify arbitrage opportunities
          * **Liquidity-weighted insights** — Focus on pools that matter most

          ```json theme={null}
          {
              "type": "message",
              "data": {
                  "token": "So11111111111111111111111111111111111111112",
                  "timestamp": 1762964449215,
                  "price": 153.70666202103925,
                  "pool": "3nMFwZXwY1s1M5s8vYAHqd4wGs4iSxXE4LRoUMMYqEgF",
                  "aggregated": {
                      "median": 153.6850599485249,
                      "average": 153.6735820182654,
                      "min": 153.36863801111053,
                      "max": 153.71662179961638,
                      "poolCount": 10
                  },
                  "topPools": [
                      {
                          "poolId": "3ucNos4NbumPLZNWztqGHNFFgkHeRMBQAVemeeomsUxv",
                          "price": 153.68241854665007,
                          "liquidity": 17950616.091940343,
                          "market": "raydium-clmm"
                      },
                      ...
                  ]
              },
              "room": "price:aggregated:So11111111111111111111111111111111111111112"
          }
          ```

          Perfect for trading interfaces, price oracles, and portfolio tracking applications that need reliable, manipulation-resistant pricing.

          [View documentation →](/datastream/websockets/priceaggregated)
        </div>
      </div>

      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">November 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">Data API</span>
            <span className="changelog-tag">Datastream</span>
          </div>

          <div className="changelog-card-desc">Ridge Stream Launch</div>
        </div>

        <div className="changelog-card-body">
          ## Ridge Stream — Enhanced Holder Data

          All holder endpoints and real-time streams have been migrated to **Ridge Stream**, from our new high-performance service RidgeDB

          ### What's New

          **Real-Time Streams**

          * **Holder count updates** — Live tracking of total holders

          * **Wallet balance updates** — Now includes native SOL with improved reliability

          * **Top 100 holders** — Real-time rankings of largest holders

          * **Snipers and insiders** — Track early buyers and insider activity
        </div>
      </div>
    </Tab>

    <Tab title="Swap API">
      <div className="text-gray-500 py-8 text-center">
        No updates yet. Check back soon!
      </div>
    </Tab>

    <Tab title="General">
      <div className="changelog-card">
        <div className="changelog-card-header">
          <div className="changelog-card-date">October 2025</div>

          <div className="changelog-card-tags">
            <span className="changelog-tag">General</span>
          </div>

          <div className="changelog-card-desc">Documentation Launch</div>
        </div>

        <div className="changelog-card-body">
          ## New Documentation Site

          We've launched a brand-new documentation hub that brings all our products and APIs together — complete with guides, SDKs, and hands-on examples.

          You can now explore detailed docs for:

          * **Yellowstone gRPC** — Real-time Solana data streaming
          * **Data API** — REST access to historical and live Solana data
          * **Datastream** — WebSocket-based live data feeds
          * **Solana RPC** — Enhanced endpoints powered by Ridge DB
          * **Swap API** — High-performance token swaps and routing

          The new docs include interactive code samples, SDK walkthroughs, and best practices to help you build faster and smarter on Solana.
        </div>
      </div>
    </Tab>
  </Tabs>
</div>
