NFTs API

The transaction history of one compressed NFT, Solana only

Every transaction that minted, transferred or burnt a Solana compressed NFT, newest first: signature, instruction, slot and time.

GET/api/external/nft-analysis/compressed-nft-history/{chain}/{address}

What it returns

The transactions that touched the compressed NFT address — its mint, every transfer, a burn — newest first, 20 per page: each one's signature, the compression instruction it ran, its slot and its time. A compressed NFT lives in a Merkle tree rather than in a token account of its own, so its history is read from the chain's asset index. A regular (uncompressed) NFT answers 404. Keep asking for nextPage until it is null. Pages past 50 (1000 transactions) are not served.

Chains

  • Solana SOL

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/nft-analysis/compressed-nft-history/SOL/<address>"
Parameters
ParameterDescription
page

query · integer · optional

The page, from 1. At most 50.
chain

path · string · required

SOL only; every other chain returns 400, and so does SOL on a deployment with no Solana node configured — the message says which of the two it is.
address

path · string · required

The compressed NFT's asset id, base58 — the id wallets and marketplaces show for it (a compressed NFT has no mint account).

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of The transaction history of one compressed NFT, Solana only
FieldTypeDescription
assetstringThe asset id asked about.
pageintegerThe page this answer is.
itemsobject[]This page's transactions, newest first. An empty first page means no compressed NFT has that id.
items[].signaturestringThe transaction's signature.
items[].instructionstringThe compression program's instruction it ran, e.g. MintToCollectionV1, Transfer, Burn.
items[].slotinteger | nullThe slot it landed in; null when the node no longer knows the transaction.
items[].atinteger | nullWhen that slot's block was produced, in unix seconds; null when no time is known.
nextPageinteger | nullThe page to ask for next, or null when this page was not full or was the last one served. A full page can be followed by an empty one.

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