Wallets API

Every change of a wallet's native-coin balance

A wallet's native-coin balance changes (ETH, SOL and more), newest first and paged back to its first: signed change, balance after, block, time and transaction.

GET/api/external/wallet-analysis/wallet-native-balance-changes/{chain}/{address}

What it returns

Each change of this wallet's native-coin balance, newest first, up to 50 per page: the block and its time, the signed change in the coin's smallest unit, the balance after it, and the transaction behind it. One row per block on the EVM chains; one row per transaction on SOL, where several rows can share a slot and amounts are in lamports. The whole history is reachable: pass nextCursor back as cursor until it is null (on SOL a page can come back shorter, even empty, when newer activity pushed rows already served into it; keep paging). Only the chain's native coin, not tokens. A wallet whose balance never moved answers an empty list. For a balance at the end of each recent day instead, see wallet-native-balance-history.

Chains

  • Solana SOL
  • Ethereum ETH
  • Robinhood Chain RHC
  • Optimism OP
  • Scroll SCROLL

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-native-balance-changes/SOL/<address>"
Parameters
ParameterDescription
cursor

query · string · optional

An opaque cursor from a previous response's nextCursor, for the next (older) page. It only pages the chain and wallet it was issued for; anything else is a 400.
chain

path · string · required

SOL, RHC, ETH, OP or SCROLL; every other chain returns 400.
address

path · string · required

The wallet — on SOL a base58 address (case-sensitive); elsewhere 0x followed by 40 hexadecimal characters, any case.

Response fields

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

Response fields of Every change of a wallet's native-coin balance
FieldTypeDescription
addressstringThe wallet asked about — lower-cased on the EVM chains, exactly as given on SOL.
changesobject[]Newest first, one row per block (per transaction on SOL). A real empty array for a wallet whose balance never moved.
changes[].blockNumberintegerThe block that moved the balance; on SOL, the slot.
changes[].timestampintegerUnix SECONDS the block was produced at.
changes[].deltaWeistringWhat this change moved the balance by, in the native coin's smallest unit — WEI on the EVM chains, LAMPORTS on SOL — as a signed decimal string: negative when the wallet paid (a transfer out, or just the fee of a transaction it sent), positive when it received. Kept as a string: wei routinely exceeds what a JSON number holds exactly.
changes[].balanceWeistringThe balance right after this change, in the same unit as deltaWei (wei; lamports on SOL), as a decimal string. Each row's balance minus the next (older) row's equals this row's deltaWei; that is checked on every page.
changes[].transactionHashstring | nullThe transaction behind the change — lower-cased on the EVM chains, the signature exactly as spelled on SOL; null when none is linked to it.
nextCursorstring | nullPass back as cursor for the next, older 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