Wallets API
The NFT transfers into and out of a wallet
Every NFT a wallet sent or received — mints, burns, sales and plain moves — newest first, with the collection, token id and direction, and a cursor for the next page. No prices.
/api/external/wallet-analysis/wallet-nft-transfers/{chain}/{address}What it returns
One wallet's NFT transfers, 100 per page, newest first: every mint, burn, purchase, sale and plain move of an ERC-721 or ERC-1155 token where the wallet is the sender or the receiver, with the collection, the token id and the direction. A transfer is not a sale and carries no price; for marketplace sales with their price use the wallet's NFT trades. Keep passing nextCursor back as cursor until it is null.
Chains
- BNB Chain BNB
- Ethereum ETH
- Base BASE
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-transfers/BNB/<address>"
| Parameter | Description |
|---|---|
cursorquery · string · optional | An opaque cursor from a previous response's nextCursor, for the next page. It only pages the chain and wallet it was issued for; an empty one, or one over 2048 characters, is a 400 (enforced after the API-key gate). |
chainpath · string · required | The chain the wallet address belongs to. ETH, BNB and BASE are served; SOL, STABLE, RHC and ARC return 400. CELO, ARB, OP and SCROLL return 400 here. |
addresspath · 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.
| Field | Type | Description |
|---|---|---|
wallet | string | The wallet, lowercase. |
transfers | object[] | This page's transfers, newest first. An empty first page means the wallet has never sent or received an NFT on this chain. |
transfers[].at | string | null | When the transfer was mined, ISO-8601 UTC. |
transfers[].blockNumber | integer | null | The block the transfer was mined in. |
transfers[].txHash | string | null | The transaction hash. |
transfers[].logIndex | integer | null | The transfer's log index in its block; one transaction can move several NFTs. |
transfers[].contract | string | The NFT collection contract, lowercase. |
transfers[].tokenId | string | The token id, in decimal. |
transfers[].standard | string | null | The token standard of the collection. |
transfers[].amount | string | null | How many units moved, in decimal. Always 1 for an ERC-721; an ERC-1155 can move more. |
transfers[].from | string | null | The sending address, lowercase; the zero address on a mint. |
transfers[].to | string | null | The receiving address, lowercase; the zero address on a burn. |
transfers[].direction | string | in when the wallet received the NFT, out when it sent it, self when it is both ends. |
transfers[].kind | string | null | mint when sent from the zero address, burn when sent to it, transfer otherwise. It says nothing about whether the transfer was a sale. |
transfers[].collectionName | string | null | The collection's name as its contract reports it. |
transfers[].collectionSymbol | string | null | The collection's symbol as its contract reports it. |
transfers[].possibleSpam | boolean | null | Whether the source flags the collection as likely spam, such as an unsolicited airdrop; null when it gives no verdict. |
nextCursor | string | null | Pass back as cursor for the next page. null on the last page. |
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