curl --request POST \
--url https://public-api.birdeye.so/wallet/v2/transfer \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"token_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"time_from": 1727788070,
"time_to": 1727788076,
"flow": "in",
"from_amount": 10.01,
"to_amount": 10.001,
"from_value": 1.001,
"to_value": 10000,
"from_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"to_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"cursor": "xxx",
"limit": 100
}
'import requests
url = "https://public-api.birdeye.so/wallet/v2/transfer"
payload = {
"wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"token_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"time_from": 1727788070,
"time_to": 1727788076,
"flow": "in",
"from_amount": 10.01,
"to_amount": 10.001,
"from_value": 1.001,
"to_value": 10000,
"from_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"to_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"cursor": "xxx",
"limit": 100
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
wallet: '41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu',
token_address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
time_from: 1727788070,
time_to: 1727788076,
flow: 'in',
from_amount: 10.01,
to_amount: 10.001,
from_value: 1.001,
to_value: 10000,
from_wallet: '41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu',
to_wallet: '41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu',
cursor: 'xxx',
limit: 100
})
};
fetch('https://public-api.birdeye.so/wallet/v2/transfer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": [
{
"time": "2025-11-18T04:32:26Z",
"block_number": 380819945,
"unix_time": 1763440346,
"token_address": "9TR9Ge75PMHfoKBAzo88XpDhvhjsirETEuPtRS4VtrpJ",
"from_address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC",
"to_address": "FCgMrWxuY5mWgFn55czYLysfGi3QFsZm3W7sJ7wTDQpz",
"from_token_account": "5JAZp6t5eSNXbdEwu3pMbB8uKV1e9cf2yg8E4Yq56WZa",
"to_token_account": "FKtWCwxFKdc7g7ymxVgyBSbwzGMNGWe7HtbKkum99f9C",
"amount": "14213245095",
"ui_amount": 14213.245095,
"price": 0.000029247096468293907,
"value": 0.4156961504209702,
"tx_hash": "2vLYZuCrKARicrXRDf2eGnzaKR9PP6qFFuzgPCHUNAnwepcqvFQ8WiPRuZjBNihNsNoxxQ5bLVLX7Wu6i6h5tmuP",
"flow": "out",
"token_info": {
"address": "9TR9Ge75PMHfoKBAzo88XpDhvhjsirETEuPtRS4VtrpJ",
"decimals": 6,
"symbol": "NYAN",
"name": "Nyan Cat",
"logo_uri": "https://wsrv.nl/?w=128&h=128&default=1&url=https://rs.debot.ai/logo/CMx7yon2cLzHcXqgHsKJhuU3MmME6noWLQk2rAycBAGS.gif"
},
"action": "transfer"
}
]
}{
"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"
}Wallet - Transfer
Retrieve list transfer of the wallet.
curl --request POST \
--url https://public-api.birdeye.so/wallet/v2/transfer \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"token_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"time_from": 1727788070,
"time_to": 1727788076,
"flow": "in",
"from_amount": 10.01,
"to_amount": 10.001,
"from_value": 1.001,
"to_value": 10000,
"from_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"to_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"cursor": "xxx",
"limit": 100
}
'import requests
url = "https://public-api.birdeye.so/wallet/v2/transfer"
payload = {
"wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"token_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"time_from": 1727788070,
"time_to": 1727788076,
"flow": "in",
"from_amount": 10.01,
"to_amount": 10.001,
"from_value": 1.001,
"to_value": 10000,
"from_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"to_wallet": "41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu",
"cursor": "xxx",
"limit": 100
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
wallet: '41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu',
token_address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
time_from: 1727788070,
time_to: 1727788076,
flow: 'in',
from_amount: 10.01,
to_amount: 10.001,
from_value: 1.001,
to_value: 10000,
from_wallet: '41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu',
to_wallet: '41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu',
cursor: 'xxx',
limit: 100
})
};
fetch('https://public-api.birdeye.so/wallet/v2/transfer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": [
{
"time": "2025-11-18T04:32:26Z",
"block_number": 380819945,
"unix_time": 1763440346,
"token_address": "9TR9Ge75PMHfoKBAzo88XpDhvhjsirETEuPtRS4VtrpJ",
"from_address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC",
"to_address": "FCgMrWxuY5mWgFn55czYLysfGi3QFsZm3W7sJ7wTDQpz",
"from_token_account": "5JAZp6t5eSNXbdEwu3pMbB8uKV1e9cf2yg8E4Yq56WZa",
"to_token_account": "FKtWCwxFKdc7g7ymxVgyBSbwzGMNGWe7HtbKkum99f9C",
"amount": "14213245095",
"ui_amount": 14213.245095,
"price": 0.000029247096468293907,
"value": 0.4156961504209702,
"tx_hash": "2vLYZuCrKARicrXRDf2eGnzaKR9PP6qFFuzgPCHUNAnwepcqvFQ8WiPRuZjBNihNsNoxxQ5bLVLX7Wu6i6h5tmuP",
"flow": "out",
"token_info": {
"address": "9TR9Ge75PMHfoKBAzo88XpDhvhjsirETEuPtRS4VtrpJ",
"decimals": 6,
"symbol": "NYAN",
"name": "Nyan Cat",
"logo_uri": "https://wsrv.nl/?w=128&h=128&default=1&url=https://rs.debot.ai/logo/CMx7yon2cLzHcXqgHsKJhuU3MmME6noWLQk2rAycBAGS.gif"
},
"action": "transfer"
}
]
}{
"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
Cursor-paginated transfer history for one Solana wallet.
- Solana transfer data is available from epoch
257(2021-11-12). - Supports four transfer actions:
mint,burn,transfer, andset_authority. - Pagination uses a cursor. On the first request, send normal filters without
cursor. Subsequent requests should send only the returnednext_cursor. - When
cursoris provided together with other filters, onlycursoris applied.
Reading the numbers. Use wallet transfer rows to see exactly which token movements changed a wallet’s balances and when those movements happened.
- Standard
- Lite
- Starter
- Premium
- Business
- Enterprise
Solana
Compute Unit ⚙️
Compute Unit ⚙️
- This endpoint consumes
8 CUper request.
Use Cases 💡
Use Cases 💡
- Trace incoming and outgoing token transfers for one wallet.
- Build wallet activity timelines for treasury, ops, or compliance review.
- Explain balance changes with the exact underlying transfer events.
How to Use 🛠️
How to Use 🛠️
- Set
x-chain=solana. - Send the wallet and any transfer filters in the POST body.
- On page 1, omit
cursor. - While
next_cursoris present, send only thatcursorvalue on the next request.
Best Practices ✅
Best Practices ✅
- Pair this endpoint with
Wallet - Balance Changeto move from summary deltas into concrete transfer events. - Use the total endpoint first if you only need counts or want to estimate result size.
- Store
next_cursorexactly as returned; do not mix it with stale filters.
Limitations ⚠️
Limitations ⚠️
- Solana only.
- Historical coverage starts from epoch
257(2021-11-12). - Cursor pagination means page boundaries are driven by
next_cursor, not offset.
Authorizations
API key for authentication
Headers
Solana network only.
solana Body
Address of the wallet to retrieve transfers for.
"41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu"
Address of the token to filter transfers by.
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
Transfer direction relative to the specified wallet. Use in for incoming transfers or out for outgoing transfers.
in, out "in"
Start of the transfer time range as a Unix timestamp.
1727788070
End of the transfer time range as a Unix timestamp.
1727788076
Minimum token amount to include.
10.01
Maximum token amount to include.
10.001
Minimum transfer value in USD to include.
1.001
Maximum transfer value in USD to include.
10000
Address of the sender wallet to filter transfers by.
"41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu"
Address of the recipient wallet to filter transfers by.
"41zCUJsKk6cMB94DDtm99qWmyMZfp4GkAhhuz4xTwePu"
Cursor used to retrieve the next page of results.
"xxx"
Maximum number of results to return.
100
Was this page helpful?

