Wallets API

The NFT approvals a wallet has granted

Which NFT collections a wallet has let another address move its tokens on, whole-collection or single-token, with any risk signal on the operator — what to revoke.

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

What it returns

Every NFT collection this wallet has approved another address (an operator) to move its tokens on, ERC-721 and ERC-1155, with each approval: the operator, whether it covers the whole collection or one token, when it was granted, and any risk signal on record for the operator. An approval for the whole collection lets the operator take every token of it the wallet holds, now or later; revoking unused ones is the usual advice. When complete is false the underlying scan of the wallet was not finished: the list may be short, or empty for an active wallet, so ask again a minute later before reading it as "no approvals". The collection risk flag has been seen on well-known legitimate collections, so treat it as a prompt to check, not a verdict.

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-approvals/ETH/<address>"
Parameters
ParameterDescription
chain

path · string · required

The chain the wallet address belongs to. ETH is served; SOL, BNB, BASE, STABLE, RHC and ARC return 400. CELO, ARB, OP and SCROLL return 400 here.
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 The NFT approvals a wallet has granted
FieldTypeDescription
walletstringThe wallet, lowercase.
completebooleanfalse when the scan of the wallet was not finished and the list may be incomplete, even empty. Such an answer is never cached, so asking again reads the finished scan.
collectionsobject[]One entry per collection with at least one outstanding approval, ERC-721 collections first. Empty, with complete true, when the wallet has none.
collections[].contractstringThe collection contract, lowercase.
collections[].standardstringThe token standard of the collection.
collections[].namestring | nullThe collection's name as its contract reports it.
collections[].symbolstring | nullThe collection's symbol as its contract reports it.
collections[].collectionFlaggedboolean | nulltrue when a risk signal is on record for the collection contract, null when none is; never false. It has been seen on well-known legitimate collections: a prompt to check, not a verdict.
collections[].collectionRiskFlagsstring[] | nullThe names of the risk signals on record for the collection, e.g. phishing_activities; [] when none, null when unknown.
collections[].approvalsobject[]The collection's outstanding approvals, one per operator or approved token.
collections[].approvals[].operatorstringThe address allowed to move the tokens, lowercase.
collections[].approvals[].operatorNamestring | nullThe operator contract's name, when known.
collections[].approvals[].operatorTagstring | nullA label for the operator, such as the marketplace it belongs to, when known.
collections[].approvals[].allTokensbooleantrue for an approval over every token of the collection (always so on ERC-1155), false for one token.
collections[].approvals[].tokenIdstring | nullThe one approved token, in decimal, when allTokens is false.
collections[].approvals[].grantedAtinteger | nullWhen the latest approval was granted, unix seconds.
collections[].approvals[].firstGrantedAtinteger | nullWhen the wallet first approved this operator, unix seconds.
collections[].approvals[].txHashstring | nullThe transaction of the latest approval.
collections[].approvals[].operatorFlaggedboolean | nulltrue when a risk signal is on record for the operator, null when none is; never false.
collections[].approvals[].operatorRiskFlagsstring[] | nullThe names of the risk signals on record for the operator; [] when none, null when unknown.

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