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.

GET/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>"
Parameters
ParameterDescription
toBlock

query · 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.
blocks

query · 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.
chain

path · 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.
mint

path · 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.

Response fields of Mint/burn events in a window
FieldTypeDescription
windowobject | nullThe 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.fromBlockinteger
window.toBlockinteger
mintCountinteger | nullTransfers 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.
burnCountinteger | nullTransfers 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.
mintsobject[]Every mint event found in window, newest-first is NOT guaranteed — chain order.
mints[].blockNumberinteger
mints[].txHashstring | null
mints[].amountRawstring | nullThe 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.
burnsobject[]
burns[].blockNumberinteger
burns[].txHashstring | null
burns[].amountRawstring | nullThe 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