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

# Changelog

> Product updates and announcements

**October 21st, 2026**

**Multi-chain NFT API**

* NFT endpoints now return live on-chain data for 21 chains: `ethereum`, `polygon-pos`, `base`, `arbitrum-one`, `optimistic-ethereum`, `zksync`, `blast`, `linea`, `scroll`, `zora`, `abstract`, `apechain`, `avalanche`, `binance_smart`, `unichain`, `soneium`, `berachain`, `world-chain`, `celo`, `xdai` and `monad`. The `blockchain` parameter takes the same `chain` values as [/wallet/blockchains](/api-docs/api-docs/openapi/get-blockchains).
* New: **GET [/wallet/nft](/api-docs/api-docs/openapi/get-wallet-nfts)**: 40 credits. Every NFT a wallet holds across all supported chains in one call, with images, attributes, collection details, floor price, value in any supported fiat currency, spam flag with reasons and mint details. Filter with `spam` (`exclude`, `include`, `only`) or `contracts` (up to 45 collections) and rank with `sort=floorValue`.
* New: **GET [/wallet/nft/summary](/api-docs/api-docs/openapi/get-wallet-nft-summary)**: 60 credits. Total NFT floor value, NFT count and collection count per chain.
* New: **GET [/wallet/nft/activity](/api-docs/api-docs/openapi/get-wallet-nft-activity)**: 20 credits. NFT mints, receives, sends and burns, newest first, with token names and images.
* New: **GET [/wallet/nft/holds](/api-docs/api-docs/openapi/get-wallet-nft-holds)**: 5 credits. Checks whether a wallet holds tokens from up to 45 collections, for token gating.
* New: **GET [/nft/collection/\{collectionAddress}/owners](/api-docs/api-docs/openapi/get-nft-collection-owners)**: 20 credits. Collection holders ranked by token count.
* New: **POST [/nft/tokens/batch](/api-docs/api-docs/openapi/get-nft-tokens-batch)**: 20 credits. Up to 100 NFTs across chains in one request.
* New: **POST [/nft/\{collectionAddress}/asset/\{tokenId}/refresh](/api-docs/api-docs/openapi/refresh-nft-asset-metadata)**: 5 credits. Re-reads a token's metadata from its token URI.
* Changed: the wallet, collection and asset endpoints accept an optional `blockchain` parameter (default `ethereum`); response shapes are unchanged.
* Wallet NFT endpoints live under **`/wallet/nft`** and take the wallet `address` as a query parameter, like the other wallet endpoints. The paths they launched under, `GET /nft/wallet/{address}/nfts`, `/collections`, `/summary`, `/activity` and `/holds`, keep working.
* Changed: the wallet collections endpoint is documented as **GET [/wallet/nft/collections](/api-docs/api-docs/openapi/get-wallet-nft-collections)**; the original `GET /nft/wallet/{address}/assets` path keeps working with the same response. It now honors `page`, counts collections in `meta.itemCount`, accepts ENS names on Ethereum and supports `sortBy=floorValue`. Spam collections are hidden by default; `spam=include` returns them and `spam=only` returns them alone, with a new `isSpam` field on each collection. `blockchain` takes a comma-separated list or `all` to merge collections across chains, `currency` adds each holding's `value` in fiat, and each collection carries its `blockchain`.
* Changed: **GET [/nft/collection/\{collectionAddress}](/api-docs/api-docs/openapi/get-nft-collection-by-address)** returns a live floor price in ETH and USD, market cap, holder count and explorer, website and social links; `currency` adds `floorPriceInCurrency` and `marketcapInCurrency`.
* Changed: asset endpoints return cached image and thumbnail URLs, token attributes and a rarity rank where available; token IDs may be decimal or hex. `limit` is capped at 100 and `source` fields return `coinstats`.
* Changed: NFT floor prices and values are live on Ethereum, Base and Arbitrum and `null` on other chains, where only cached floors months old and without a currency are available; NFTs without a known floor don't count toward totals. Only collections verified on OpenSea get a `value` and count toward totals, so unverified airdrops listed at made-up prices no longer inflate wallet values; their floor price is still shown, and `/collections` items carry a `verified` flag.
* Changed: market statistics on collections and assets (volumes, sales, rank, listings, last sale, trait floors) are no longer provided and return `null`, and `type=listed` returns all assets.

**October 21st, 2026**

**Portfolio tree in the portfolio list**

* **GET [/portfolio/list](/api-docs/api-docs/openapi/get-portfolio-list)** takes `includeChildren=true` to nest each portfolio's child portfolios in a `children` array, to every level (for example the exchange or per-chain portfolios under a connection). Without it, the response is unchanged.
* Child `portfolioId`s work on the value, coins, chart and transactions endpoints. Use the tree to see which listed portfolio a child ID returned by another endpoint, such as the perpetual endpoints, belongs to, and to avoid counting a parent and its children twice.
* MCP: `get-portfolio-list` takes `includeChildren`. See [MCP tools](/api-docs/api-docs/mcp/tools).

**October 20th, 2026**

**Perpetual positions and trade history**

* New: **GET [/portfolio/perpetual/positions](/api-docs/api-docs/openapi/get-perpetual-positions)** returns open perpetual and futures positions from your connected exchanges, including Hyperliquid: leverage, entry and current prices, liquidation price, unrealized P\&L and funding since opening where available. Options are excluded.
* New: **GET [/portfolio/perpetual/trades](/api-docs/api-docs/openapi/get-perpetual-trades)** returns synced trade history with prices, realized P\&L and trading fees, newest first. Paginate with `limit` and `skip`, then follow `nextSkip`.
* Pass an exchange or parent `portfolioId` from [/portfolio/list](/api-docs/api-docs/openapi/get-portfolio-list), or omit it for all your exchanges. Positions return an error when a selected exchange connection fails, instead of an empty result; trade history reflects the last sync. Each request costs 10 credits.
* MCP: new `get-perpetual-positions` and `get-perpetual-trades` tools. See [Perpetuals](/api-docs/api-docs/perpetuals).

**October 18th, 2026**

**Polymarket US in the prediction-markets API**

* Polymarket US (polymarket.us) is a third venue: `source=polymarket-us` on [/prediction/markets](/api-docs/api-docs/openapi/list-markets), [/prediction/events](/api-docs/api-docs/openapi/list-events) and their trending lists returns its markets and events (slugs start with `polymarket-us-`).
* New `view` parameter on those lists and on [/prediction/search](/api-docs/api-docs/openapi/search): `intl` (default, unchanged: Polymarket and Kalshi), `us` (Polymarket US and Kalshi) or `all` (every venue; events listed once each, a linked Polymarket US event as its Polymarket twin). [/prediction/events/{slug}](/api-docs/api-docs/openapi/get-event) takes `view` for its pairing annotations. See [Venues and views](/api-docs/api-docs/prediction/markets-and-events#venues-and-views).
* Events linked across Polymarket's two exchanges name each other in `linkedEvent`. Requests without `view` or `source=polymarket-us` behave as before.

**October 13th, 2026**

**Full real-world assets API**

* Seven authenticated endpoints under **`/v1/rwa`** expose the market overview, asset list, aggregate history, asset details, tokens, trading markets and per-asset history.
* Filter tokenized stocks, commodities and ETFs; inspect issuers, networks, contracts, prices, volume and available chart coverage.
* Supports currency conversion, pagination, search, sorting and freshness/availability flags. Requests cost 1–3 credits. See the [RWA guide](/api-docs/api-docs/rwa).

**September 29th, 2026**

**API key access to all your portfolios**

* Your API key now covers every portfolio you own — portfolios built in the CoinStats app as well as ones created via the API. Previously only API-created portfolios were covered. Share tokens are no longer needed for your own portfolios; they remain available for reading someone else's [shared portfolio](/api-docs/api-docs/sharetoken).
* **GET [/portfolio/list](/api-docs/api-docs/openapi/get-portfolio-list)** now returns all your own portfolios (watchlist portfolios excluded), and each item includes a new `portfolioType` field (`manual`, `exchange`, `wallet`, `platform`, `parent`, `other`).
* Read endpoints (value, coins, chart, P\&L history, transactions, DeFi, snapshot) accept any of your `portfolioId`s; omit it to aggregate all your portfolios.
* **POST [/portfolio/transaction](/api-docs/api-docs/openapi/add-portfolio-transaction)** works without a share token: pass the `portfolioId` of one of your manual portfolios in the request body.
* **DELETE [`/portfolio/{portfolioId}`](/api-docs/api-docs/openapi/delete-portfolio)** deletes any portfolio you own, including its transactions. Deleting a parent portfolio also deletes its child portfolios.
* **PATCH [/portfolio/sync](/api-docs/api-docs/openapi/sync-portfolio)** works on your wallet and exchange portfolios; manual portfolios can't be synced.
* MCP: `add-portfolio-transaction` now requires `portfolioId`, and a new `delete-portfolio` tool was added. See [MCP tools](/api-docs/api-docs/mcp/tools).

**September 16th, 2026**

**Exchange and portfolio transaction types endpoints**

* New: **GET [/exchange/transactions/types](/api-docs/api-docs/openapi/get-exchange-transaction-types)** and **GET [/portfolio/transactions/types](/api-docs/api-docs/openapi/get-portfolio-transaction-types)** — 1 credit each. Same global reference list as GET [/wallet/transactions/types](/api-docs/api-docs/openapi/get-wallet-transaction-types), exposed per section; `id` values feed each section's `types` filter, `name` matches the `type` field in responses.

**September 15th, 2026**

**Historical exchange OHLCV candles**

* New: **GET /ohlcv/candles** — 1 credit per 1,000 returned candles, rounded up, with a minimum of 1 credit.
* Retrieve fully closed exchange candles from `5m` through `1w` intervals.
* Select a rolling range such as `24h`, `1y`, or `all`, or provide ISO 8601 `start` and `end` timestamps for an exact period.
* Candles use the compact `[timestampMs, open, high, low, close, volumeBase]` format and are also available through the x402 gateway for \$0.001 USDC per request.

**September 3rd, 2026**

**Wallet transaction types endpoint**

* New: **GET [/wallet/transactions/types](/api-docs/api-docs/openapi/get-wallet-transaction-types)** — 1 credit. Reference lookup returning every supported transaction type as `{ id, name }` pairs: `id` values feed the `types` filter of GET [/wallet/transactions](/api-docs/api-docs/openapi/get-wallet-transactions), `name` matches the `type` field in its responses.
* GET [/wallet/transactions](/api-docs/api-docs/openapi/get-wallet-transactions) docs updated: `type` is a display name (e.g. `Sent`, `Received`, `Swap`, `Approve`), not the previously documented enum; the `types` filter now also accepts pipe-joined ids returned by the new endpoint.

**September 1st, 2026**

**Historical profit and loss endpoints**

* **GET /wallet/pl/history** — Cash-flow-adjusted history for one wallet across one or more requested networks.
* **GET /exchange/pl/history** — Cash-flow-adjusted history for an owned exchange portfolio.
* **GET /portfolio/pl/history** — Cash-flow-adjusted history for one API-connected portfolio, all owned portfolios, or a shared portfolio.
* Each endpoint costs **25 credits** per request. Wallet network multipliers still apply.
* Request a rolling preset such as `range=1m`, or provide `from` and `to` for a specific historical period. See the [wallet P\&L history API reference](/api-docs/api-docs/openapi/get-wallet-pl-history) for a calendar-month example.

**June 24th, 2026**

**All-time high/low added to coin response**

* Coin responses now include `allTimeHigh` and `allTimeLow`, returned in the requested `currency`.
* Fields are optional and only present for coins that have the data.

**June 22nd, 2026**

**Prediction Markets API (Polymarket + Kalshi)**

* New read-only **Prediction Markets** section under `GET /prediction/*` — analytics for Polymarket and Kalshi across markets, events, traders, platform analytics, search, and tags. See the [overview](/api-docs/api-docs/prediction/overview).
* **Markets & events** — list/trending/detail, current prices, Yes-price history, and **cross-venue matching** (`/prediction/markets/{slug}/cross-venue`, `/prediction/events/{slug}/cross-venue`, **10 credits**) that pairs the same question across both venues with a confidence score and price delta.
* **Traders** — leaderboard, profile, open positions, trade history, PnL breakdown, category stats, score, and more (2–3 credits).
* **Analytics, search & tags** — platform overview, composite market signals, cross-entity search, and the tag list.
* Prices are probabilities in `0..1`, money is USD, dates are ISO 8601. Every endpoint uses `X-API-KEY` auth and returns the standard `{ success, data, meta?, timestamp }` envelope.

**May 18th, 2026**

**Free plan limits updated**

* Free plan credits reduced from 50,000 to **20,000** credits/month.
* Free plan rate limit reduced from 5 req/sec to **2 req/sec**.

**May 16th, 2026**

**Token Risks endpoint**

* New: **GET /token-risks** — 5000 credits. Smart-contract risk analysis powered by Hexens: overall risk score plus detailed findings (centralized mint/burn, blacklist/whitelist, pausable/blockable transfers, hidden fees, upgradeable proxy, ownership not renounced, balance manipulation, and more).
* Accepts either `coinId` (CoinStats coin id) or an explicit `contractAddress` + `chain` pair. Optional `sortBy=severity`.
* Returns an empty `results` list when no risk data is available (non-EVM tokens or contracts not yet indexed).

**May 14th, 2026**

**ConnectKit launched**

* Added [ConnectKit](/api-docs/api-docs/connectkit), a hosted CoinStats popup flow for connecting wallets and exchanges from partner apps.
* Added ConnectKit setup in the [API dashboard](https://openapi.coinstats.app/connect-kits) with trusted origins, redirect URLs, branding, mode, appearance, and accent color controls.
* Added browser integrations through `@coinstats/connectkit` and the hosted `https://connect.coinstats.app/coinstats-connect.js` script.
* Frontend apps use only the public ConnectKit ID and callback URL. API keys stay server-side.

**May 14th, 2026**

**Flare EVM chain support**

* Added support for the MegaETH EVM chain across wallet endpoints.

**May 11th, 2026**

**Wallet multi-balance endpoint renamed**

* New: **GET /wallet/balance/many** — same credits and response shape as the previous `/wallet/balances`.
* **GET /wallet/balances** is deprecated and removed from the API reference. It continues to work and now returns `Deprecation: true` and a `Link` header pointing to `/wallet/balance/many`. Migrate when convenient.

**May 7th, 2026**

**Sei EVM chain support**

* Added support for the Sei EVM chain across wallet endpoints.
* Includes balances.

**April 30th, 2026**

**MegaETH EVM chain support**

* Added support for the MegaETH EVM chain across wallet endpoints.
* Includes balances, DeFi positions, and transaction history.

**April 28th, 2026**

**PnL endpoints added for connected wallets and exchanges**

* **GET /wallet/pl** — 25 credits
* **GET /exchange/pl** — 25 credits
* Returns holdings with PnL fields, `totalCost`, and summary totals.

**Wallet Transactions — credit cost reduced from 40 to 30 per request**

* **GET /wallet/transactions** — 30 credits (was 40)
* API reference, wallet guides, multiplier docs, and x402 pricing now reflect the updated cost.

**March 17th, 2026**

**Market Insights — credit cost reduced from 50 to 10 per request**

* **GET /insights/btc-dominance** — 10 credits (was 50)
* **GET /insights/fear-and-greed** — 10 credits (was 50)
* **GET /insights/fear-and-greed/chart** — 10 credits (was 50)
* **GET /insights/rainbow-chart/\{coinId}** — 10 credits (was 50)

**March 10th, 2026**

**GET /portfolio/list** — 5 credits

* New endpoint to retrieve all API-connected portfolios.
* Returns `portfolioId` and `portfolioName` for each portfolio created via `POST /portfolio/wallet` or `POST /portfolio/exchange`.

**March 5th, 2026**

**Plan Updates**

* Introduced the new **Starter** plan: 1,000,000 credits/month, 30 req/sec, \$49/month.
* Free plan credits reduced from 1,000,000 to **50,000** credits/month.
* Renamed **Individual** plan to **Pro**.
* Renamed **Custom** plan to **Enterprise**.

**February 26th, 2026**

**POST /portfolio/wallet** — Connect a wallet to your CoinStats account

* Connect any supported blockchain wallet address to your account.
* Returns a `portfolioId` you can use on all `/portfolio` GET endpoints.

**POST /portfolio/exchange** — Connect an exchange and create a tracked portfolio

* Connect an exchange to your CoinStats account
* Returns a `portfolioId` you can use on all `/portfolio` GET endpoints.

**GET /portfolio/\*** — `portfolioId` now accepted

* All portfolio GET endpoints (`/value`, `/coins`, `/chart`, `/transactions`, `/defi`, `/snapshot/items`) now accept a `portfolioId` query parameter.
* `portfolioId` is returned from `POST /portfolio/wallet` or `POST /portfolio/exchange`.
* `shareToken` remains fully supported and is unchanged.
* If neither is provided, endpoints return aggregated data for all API-connected portfolios.

**January 22th, 2026**

**GET /portfolio/transactions** - Now supports `note` in response

**January 15th, 2026**

**GET /usage/credits** — 0 credits

* New endpoint to check your remaining credit limit programmatically.
* Returns total credits, used credits, remaining credits, and subscription plan.
* This endpoint is free and does not consume any credits.

**December 9th, 2025**

* **GET /wallet/balance** - Now accepts either `connectionId` or `blockchain` parameter
* **GET /wallet/balances** - Added `blockchain` parameter (comma-separated list)
* **GET /wallet/chart** - Now accepts either `connectionId` or `blockchain` parameter
* **GET /wallet/defi** - Now accepts either `connectionId` or `blockchain` parameter
* **GET /wallet/transactions** - Now accepts either `connectionId` or `blockchain` parameter
* **PATCH /wallet/transactions** - Now accepts either `connectionId` or `blockchain` parameter
* If both `connectionId` and `blockchain` are provided, `connectionId` takes precedence

**November 19th, 2025**

**GET /wallet/transactions**

* Added `coinId` query param to filter transactions by coin.

**November 10th, 2025**

**GET /wallet/transactions**

* Now supports `toAddress` and `fromAddress` optional properties in the response

**October 2nd, 2025**

**GET /coins**

* Now supports retrieving Ordinals by specifying the `bitcoin` blockchain in the query.

**GET /wallet/defi**

* You can now specify multiple `connectionIds` in the query to fetch DeFi data for several connections at once.

**September 1st, 2025**

* Enhanced all existing endpoints for better performance and reliability.
* Added comprehensive examples and detailed descriptions to all endpoints.
* Introduced the [Share Token explanation page](/api-docs/api-docs/sharetoken) for better understanding.
* Launched the [Credit Multipliers page](/api-docs/api-docs/multipliers) to explain credit usage.

**August 22nd, 2025**

**GET /wallet/balances**

* Added `wallets` query parameter to support multiple wallet addresses in a single request
* Added `connectionId` field to response when using the `wallets` query parameter

**GET /coins**

* Added `coinIds` query parameter to filter coins by specific IDs

**June 11th, 2025**

**GET /coins**

* Added a new `contractAddresses` field in coin data.
* Lists smart contract addresses for tokens (e.g., ERC-20).
* Empty for native coins like Bitcoin.

**GET /coins/{coinId}**

* Added a new `contractAddresses` field in coin data.
* Lists smart contract addresses for tokens (e.g., ERC-20).
* Empty for native coins like Bitcoin.

**June 6th, 2025**

**GET /portfolio/value** — 10 credits

**June 4th, 2025**

**GET /portfolio/defi** — 200 credits

**May 20th, 2025**

**GET /wallet/transactions**

* Added a new `wallets` query parameter.
* This update allows users to retrieve transaction history for multiple wallets in a single API call.

**May 19th, 2025**

**GET /insights/btc-dominance** — 50 credits
**GET /insights/fear-and-greed** — 50 credits
**GET /insights/fear-and-greed/chart** — 50 credits
**GET /insights/rainbow-chart/{coinId}** — 50 credits

**May 8th, 2025**

**GET /wallet/charts**

* Allows users to retrieve chart data for multiple chains and wallets in a single request.

**PATCH /wallet/transactions**

* Now supports syncing multiple chains and wallets with a single API call.


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