Wallet - Balance Change
curl --request GET \
--url https://public-api.birdeye.so/wallet/v2/balance-change \
--header 'X-API-KEY: <api-key>'import requests
url = "https://public-api.birdeye.so/wallet/v2/balance-change"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://public-api.birdeye.so/wallet/v2/balance-change', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"items": [
{
"time": "2025-08-01T08:55:58Z",
"block_number": 357129280,
"block_unix_time": 1754038558,
"address": "51dEMNojjd2hZKrMeDWBRMPmhDS5QH1eCQWCdtR7CYKp",
"token_account": "ATgjegWTEidtsDniCfVJp5Py86fi5X8nzRyzndfimr59",
"tx_hash": "mBxrLzapLZtcdPsKSr6EkUUXgFJDyXJs7bJcwQ58xh7JXhN7nsz9ELNspxsnG6TxVaJdzsbrkvhjgrX8QArrp4h",
"pre_balance": "257629693",
"post_balance": "293106471",
"amount": "35476777",
"token_info": {
"address": "4a79c1TRehFCpHxQ7niHAiBAvHRJRWey3UkWuMDREKL7",
"decimals": 9,
"symbol": "",
"name": "",
"logo_uri": "",
"is_scaled_ui_token": true,
"multiplier": 1.5
},
"type": 2,
"type_text": "SPL",
"change_type": 1,
"change_type_text": "INCR"
}
]
}
}{
"success": false,
"message": "Bad request"
}{
"success": false,
"message": "Unauthorized"
}{
"success": false,
"message": "Access Denied"
}{
"success": false,
"message": "Too many requests"
}{
"success": false,
"message": "Internal Server Error"
}Balance & Transfer
Wallet - Balance Change
Retrieve the balance change history of a wallet.
GET
/
wallet
/
v2
/
balance-change
Wallet - Balance Change
curl --request GET \
--url https://public-api.birdeye.so/wallet/v2/balance-change \
--header 'X-API-KEY: <api-key>'import requests
url = "https://public-api.birdeye.so/wallet/v2/balance-change"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://public-api.birdeye.so/wallet/v2/balance-change', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"items": [
{
"time": "2025-08-01T08:55:58Z",
"block_number": 357129280,
"block_unix_time": 1754038558,
"address": "51dEMNojjd2hZKrMeDWBRMPmhDS5QH1eCQWCdtR7CYKp",
"token_account": "ATgjegWTEidtsDniCfVJp5Py86fi5X8nzRyzndfimr59",
"tx_hash": "mBxrLzapLZtcdPsKSr6EkUUXgFJDyXJs7bJcwQ58xh7JXhN7nsz9ELNspxsnG6TxVaJdzsbrkvhjgrX8QArrp4h",
"pre_balance": "257629693",
"post_balance": "293106471",
"amount": "35476777",
"token_info": {
"address": "4a79c1TRehFCpHxQ7niHAiBAvHRJRWey3UkWuMDREKL7",
"decimals": 9,
"symbol": "",
"name": "",
"logo_uri": "",
"is_scaled_ui_token": true,
"multiplier": 1.5
},
"type": 2,
"type_text": "SPL",
"change_type": 1,
"change_type_text": "INCR"
}
]
}
}{
"success": false,
"message": "Bad request"
}{
"success": false,
"message": "Unauthorized"
}{
"success": false,
"message": "Access Denied"
}{
"success": false,
"message": "Too many requests"
}{
"success": false,
"message": "Internal Server Error"
}- Usage Note
- Accessibility
- Chain Supported
Balance-delta history for one Solana wallet.
- Filter by
token_addresswhen you want one token only, or omit it for broader wallet activity. token_typeandchange_typenarrow the result to the asset class and change direction you care about.time_fromandtime_tolet you constrain the review window.- Pagination uses
offsetup to10,000andlimitup to100. ui_amount_mode=scaledapplies Solana Token-2022 scaled UI amount when the token supports the scaled UI extension.
Reading the numbers. Balance-change rows explain how a wallet’s token balance moved over time, which token changed, and by how much after decimal or scaled UI normalization.
- Standard
- Lite
- Starter
- Premium
- Business
- Enterprise
Solana
Compute Unit ⚙️
Compute Unit ⚙️
- This endpoint consumes
8 CUper request.
Use Cases 💡
Use Cases 💡
- Review how a wallet accumulated, distributed, or rotated tokens over time.
- Power audit trails, treasury monitoring, and operator activity review.
- Isolate changes for one token before drilling into transfer-level events.
How to Use 🛠️
How to Use 🛠️
- Set
x-chain=solana. - Pass the wallet address in
wallet. - Add
token_address,token_type, orchange_typewhen you need a narrower slice. - Use
time_fromandtime_tofor bounded investigations. - Page through results with
offsetandlimit.
Best Practices ✅
Best Practices ✅
- Start broad, then add token and change filters once you see the wallet’s activity pattern.
- Use this endpoint to find the interesting timestamps, then pair it with transfer endpoints for exact movement details.
- Keep
ui_amount_modealigned with other Solana Token-2022 analysis for consistent quantities.
Limitations ⚠️
Limitations ⚠️
- Solana only.
- Offset pagination tops out at
10,000.
Authorizations
API key for authentication
Headers
Solana network only.
Available options:
solana Query Parameters
The address of the account.
The address of the token contract.
Specify the start time using unix timestamps in seconds
Required range:
0 <= x <= 10000000000Specify the end time using unix timestamps in seconds
Required range:
0 <= x <= 10000000000Available options:
SOL, SPL Available options:
increase, decrease Make sure offset <= 10000
Required range:
0 <= x <= 10000Required range:
1 <= x <= 100Indicate whether to use the scaled amount for scaled ui amount tokens. Only support solana
Available options:
raw, scaled Was this page helpful?

