Get wallet activity
Wallet APIs
Get Wallet Activity
Fetch detailed wallet activity—including transfers, swaps, and vault operations—for one wallet with GET or up to 100 wallets with POST batch.
GET
Get wallet activity
Query Details
Required Parameters
wallet- The wallet address to query (supports ENS domains and various address formats)
Optional Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
blockchains | string | - | Comma-separated list of blockchain IDs (e.g., "ethereum,base,solana:solana"). |
limit | number | 100 | Number of items to return. |
offset | number | 0 | Offset for pagination. |
order | string | ”desc” | Sort order: “asc” or “desc” by timestamp. |
unlistedAssets | boolean | true | Include unlisted/unverified tokens. |
filterSpam | boolean | true | Filter out spam tokens. |
cursorHash | string | - | Cursor anchor hash. When set, offset is ignored and results are returned strictly before/after this transaction depending on cursorDirection. |
cursorDirection | string | ”before” | One of before or after. When before, returns items with tx_date_ms strictly less than the cursor’s timestamp. When after, returns items strictly greater than the cursor’s timestamp. The cursor item is never included. |
from | number | - | Start timestamp in milliseconds. |
to | number | - | End timestamp in milliseconds. |
enrichSwaps | boolean | false | When true, enriches swap actions with platform and fee data from the swaps table. Adds ~300-400ms overhead. |
backfillTransfers | boolean | false | When true, triggers backfilling of transfer history for the wallet. Returns backfillStatus in the response. |
Step-by-Step Tutorial and Video Walkthrough
- Check out the guide: Here
Features
- Smart Swap Detection: Automatically combines IN/OUT transfers in the same transaction into swap objects
- Multi-Chain Support: Works across all supported blockchains
- Spam Filtering: Built-in spam token filtering with customizable options
- Vault Operations: Special handling for BitPanda Earn pools and similar vault operations
- Flexible Pagination: Support for both offset-based and cursor-based pagination
Usage Examples
Cursor Pagination Examples
Batch Requests (POST)
To fetch wallet activity for multiple wallets in one call, send aPOST request to /2/wallet/activity with either:
- an object body:
{ "items": [...] } - or a direct array body:
[ ... ]
| Item field | Type | Default | Description |
|---|---|---|---|
wallet | string | - | Required. Wallet address to query. |
chainIds | string[] | - | Array of chain IDs (e.g., ["evm:1","evm:8453","solana:solana"]). All chains if omitted. |
blockchains | string[] | - | Alternative array of chain IDs. |
limit | number | 100 | Number of activity items per wallet. |
offset | number | 0 | Offset for pagination per wallet. |
order | string | ”desc” | Sort order: "asc" or "desc" by timestamp. |
unlistedAssets | boolean | true | Include unlisted/unverified tokens. |
filterSpam | boolean | true | Filter out spam tokens. |
cursorHash | string | - | Cursor anchor hash for this wallet. |
cursorDirection | string | ”before” | One of before or after. |
from | number | - | Start timestamp in milliseconds. |
to | number | - | End timestamp in milliseconds. |
withTokens | boolean | false | Include token details in the response when available. |
enrichSwaps | boolean | false | Enrich swap actions with platform and fee data. |
backfillTransfers | boolean | false | Trigger transfer backfill for this wallet. |
backfillBalances | boolean | false | Trigger balance backfill for this wallet. |
payload. Each wallet is processed independently: if one wallet fails validation or cannot be processed, only that wallet’s entry contains an error field.
Query Response
The endpoint returns a unified activity feed with three types of objects:Activity Types
-
Transfer (
model: "transfer")- ERC20 token transfers (IN/OUT)
- Native token transfers (IN/OUT)
- Vault operations (DEPOSIT/WITHDRAW)
-
Swap (
model: "swap")- Automatically detected from combined transfers
- Includes token pair information and pricing
- Base/quote token identification
swapAssetIn= asset flowing INTO the wallet (what the wallet receives)swapAssetOut= asset flowing OUT of the wallet (what the wallet spends)
- If
swapAssetInmatchesswapBaseAddress→ BUY (wallet receives base token) - If
swapAssetOutmatchesswapBaseAddress→ SELL (wallet spends base token)
Swap Fee & Platform Fields (requires enrichSwaps=true)
When enrichSwaps=true is set, swap actions are enriched with additional fields:
- swapPlatform: Trading platform/aggregator used for the swap. Object with
id,name,logofields.nullif not available. - swapTotalFeesUsd: Total fees paid in USD
- swapGasFeesUsd: Gas fees paid in USD
- swapPlatformFeesUsd: Platform/aggregator fees paid in USD
- swapMevFeesUsd: MEV/priority fees paid in USD
Transfer Types
TOKEN_IN/TOKEN_OUT- Token transfersNATIVE_IN/NATIVE_OUT- Native currency transfersVAULT_DEPOSIT/VAULT_WITHDRAW/VAULT_UNSTAKE- Vault/staking operations
Sample Response
Response Field Details
Chain ID Format
Chain IDs are returned in the formatevm:chainId (e.g., evm:8453 for Base, evm:1 for Ethereum).
Raw Amounts vs Formatted Amounts
transfer_raw_amount/swap_raw_amount_*: Raw token amounts in smallest units (wei for 18-decimal tokens)transfer_amount/swap_amount_*: Human-readable amounts (already divided by decimals)
Asset Information
id: Can benullfor unlisted/unverified tokenslogo: Can benullif no logo is availableprice: Can be0for tokens without established pricing- All supply and market cap values: Can be
0for new or unlisted tokens
Swap Direction (Buy/Sell)
The swap fields use wallet-centric naming:| Field | Meaning |
|---|---|
swapAssetIn | Token received by the wallet |
swapAssetOut | Token spent by the wallet |
swapBaseAddress | Contract of the base token (non-stablecoin) |
swapQuoteAddress | Contract of the quote token (SOL, USDC, etc.) |
- BUY:
swapAssetIn.contractmatchesswapBaseAddress(wallet receives the base token) - SELL:
swapAssetOut.contractmatchesswapBaseAddress(wallet spends the base token)
swapAssetIn= meme token (received)swapAssetOut= SOL (spent)- Direction = BUY (buying the meme token with SOL)
Transaction Fees
tx_raw_fees_native: String representation of fees in native token’s smallest unittx_fees_native_usd: USD value of transaction fees
Query Parameters
Wallet address
Comma-separated list of chain IDs (e.g., "evm:1,evm:8453,solana:solana")
Offset for pagination (default: 0)
Number of transactions per page (default: 100)
Sort order: asc or desc (default: desc)
Available options:
asc, desc Include unlisted assets (default: true)
Filter spam transactions (default: true)
Cursor hash for cursor-based pagination
Cursor direction: before or after
Available options:
before, after Start timestamp in milliseconds
End timestamp in milliseconds