Wallets API

Which NFTs a wallet bought or sold

A wallet's NFT marketplace trades: what it bought or sold, at what price, on which marketplace, and when. Not what it currently holds. ETH only.

GET/api/external/wallet-analysis/wallet-nft-trades/{chain}/{address}

Chains

  • Ethereum ETH

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/wallet-analysis/wallet-nft-trades/ETH/<address>"
Parameters
ParameterDescription
chain

path · string · required

ETH only; every other chain returns 400. One chain has been measured for this question, and the others are not claimed on an untested assumption.
address

path · string · required

The wallet address.

Response fields

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

Response fields of Which NFTs a wallet bought or sold
FieldTypeDescription
tradesobject[]Every NFT marketplace trade this wallet was a party to. An EMPTY list means the source returned no rows — it does not mean the wallet has never traded an NFT, because a wallet with no trades and one the source has not indexed are indistinguishable here.
trades[].sidestring | nullbuy when this wallet is the buyer, sell when it is the seller, null when it is neither — reported rather than guessed. KNOWN LIMIT OF THE EVIDENCE: every trade in the sample this endpoint was built and verified against was a BUY, so the sell branch is derived from the same address comparison but has never been produced against a real upstream response. Treat a sell as sound reasoning rather than as an observed case until one is reported.
trades[].collectionNamestring | null
trades[].contractAddressstring | nullThe NFT contract.
trades[].tokenIdsstring[] | nullThe token ids in this trade, as STRINGS — a uint256 id can exceed a safe JSON integer.
trades[].marketplacestring | null
trades[].pricestring | nullThe price as a decimal STRING in priceCurrency, never a number: parsing a wei-scale amount to a JSON number rounds it.
trades[].priceCurrencystring | nullThe token the price is denominated in, e.g. WETH.
trades[].priceUsdNownumber | nullThe sale price valued in USD at the payment token's CURRENT rate, when this response was produced. This is NOT the USD value at the time of the sale: it moves with the token's price, and the same 2025 sale read 78.91 and then 78.90 an hour apart. For the value at the time of the sale, price price in priceCurrency at the time in at.
trades[].atstring | nullBlock timestamp, ISO-8601.
trades[].txHashstring | null

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