Tokens API
Mint/burn events in a window
Whether a token's supply was minted or burned within a bounded, stated block window — never a claim about the deployer or mint authority, and never implying the whole lifetime.
/api/external/token-analysis/mint-burn/{chain}/{mint}What it returns
Scans the token contract's own Transfer events for a mint (a transfer FROM the zero address) or a burn (a transfer TO the zero address) inside ONE bounded block window, and reports the exact window scanned as data — never only in words. Does not attribute either to the token's deployer or mint authority: a Transfer log only shows which address triggered the move, never whose key signed the original deployment, and a burn needs only the CURRENT holder's signature. mintCount/burnCount are null only when the scan could not run at all — a 0 always means window was genuinely scanned and nothing was found in it, never an unstated lookback silently reading as launch-to-date.
Chains
- BNB Chain BNB
- Ethereum ETH
- Stable STABLE
- Base BASE
- Robinhood Chain RHC
Request
Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.
curl -H "x-dex-data-key: $DEXDATA_API_KEY" \ "https://api.dexdata.io/api/external/token-analysis/mint-burn/BNB/<mint>"
| Parameter | Description |
|---|---|
toBlockquery · integer · optional | End of the scanned window, inclusive. Defaults to the chain's current block, which costs one extra upstream call to discover; pass a previous response's window.fromBlock - 1 here to page further back without paying that extra call. |
blocksquery · integer · optional | How many blocks to scan, ending at toBlock. Defaults to, and is capped at, this chain's own measured per-call ceiling (BNB/STABLE: 10,000; ETH/BASE/RHC: 1,000 — see the 400 this returns for the exact number on a given chain). This endpoint never walks more than one window per request, so a caller wanting a longer history pages backward across successive requests rather than this one costing more per call. |
chainpath · string · required | EVM chains with a measured eth_getLogs block-range ceiling for this scan: BNB, ETH, BASE, STABLE, RHC. SOL always returns 400 — there is no Transfer-log mechanism on Solana. ARC also returns 400 — this deployment has not measured this scan there yet, which is a limit of what is wired and verified here, not a statement that the chain lacks the mechanism. CELO, ARB, OP and SCROLL return 400 here. |
mintpath · string · required | The token mint address (Solana) or contract address (EVM). |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
window | object | null | The block range actually scanned, inclusive on both ends — the ONLY range mintCount/burnCount/mints/burns describe. null only when the scan could not run at all (see mintCount). |
window.fromBlock | integer | |
window.toBlock | integer | |
mintCount | integer | null | Transfers FROM the zero address inside window — never a claim about the deployer, the mint authority, or any block outside window. null only when the scan did not run; 0 means it ran and found none. |
burnCount | integer | null | Transfers TO the zero address inside window — never a claim about who triggered it (a burn needs only the current holder's signature, never the deployer's or the mint authority's). null only when the scan did not run; 0 means it ran and found none. |
mints | object[] | Every mint event found in window, newest-first is NOT guaranteed — chain order. |
mints[].blockNumber | integer | |
mints[].txHash | string | null | |
mints[].amountRaw | string | null | The raw base-unit amount as a decimal string — deliberately NOT decimalised (a Transfer log carries no decimals of its own, and fetching them would cost a second upstream call this endpoint does not spend). null when the log did not have the plain, 2-indexed-argument ERC-20 Transfer shape — most concretely an ERC-721/1155 Transfer, which shares this exact event signature. Still counted in the count above either way. |
burns | object[] | |
burns[].blockNumber | integer | |
burns[].txHash | string | null | |
burns[].amountRaw | string | null | The raw base-unit amount as a decimal string — deliberately NOT decimalised (a Transfer log carries no decimals of its own, and fetching them would cost a second upstream call this endpoint does not spend). null when the log did not have the plain, 2-indexed-argument ERC-20 Transfer shape — most concretely an ERC-721/1155 Transfer, which shares this exact event signature. Still counted in the count above either way. |
Start building with DexData today
Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.
Get a free API key