curl --request GET \
--url https://public-api.birdeye.so/token/v1/wallet-tags-tracker \
--header 'X-API-KEY: <api-key>'import requests
url = "https://public-api.birdeye.so/token/v1/wallet-tags-tracker"
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/token/v1/wallet-tags-tracker', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"token_address": "2RaLR1kY37bbNfqWTK49AiCbPtdF27497jZ6DatKpump",
"time_frame": "1m",
"groups": {
"tags": {
"dev": [
{
"unix_time": 1792800060,
"volume_buy": 200,
"volume_sell": 60,
"volume_buy_usd": 200,
"volume_sell_usd": 60,
"wallet_buy_count": 1,
"wallet_sell_count": 1,
"tx_buy_count": 1,
"tx_sell_count": 1
}
],
"sniper": [
{
"unix_time": 1792800060,
"volume_buy": 240,
"volume_sell": 0,
"volume_buy_usd": 240,
"volume_sell_usd": 0,
"wallet_buy_count": 2,
"wallet_sell_count": 0,
"tx_buy_count": 2,
"tx_sell_count": 0
}
],
"smart_trader": [
{
"unix_time": 1792800180,
"volume_buy": 150,
"volume_sell": 0,
"volume_buy_usd": 150,
"volume_sell_usd": 0,
"wallet_buy_count": 1,
"wallet_sell_count": 0,
"tx_buy_count": 1,
"tx_sell_count": 0
}
]
},
"tag_combinations": {
"dev": [
{
"unix_time": 1792800060,
"volume_buy": 0,
"volume_sell": 60,
"volume_buy_usd": 0,
"volume_sell_usd": 60,
"wallet_buy_count": 0,
"wallet_sell_count": 1,
"tx_buy_count": 0,
"tx_sell_count": 1
}
],
"sniper": [
{
"unix_time": 1792800060,
"volume_buy": 40,
"volume_sell": 0,
"volume_buy_usd": 40,
"volume_sell_usd": 0,
"wallet_buy_count": 1,
"wallet_sell_count": 0,
"tx_buy_count": 1,
"tx_sell_count": 0
}
],
"dev_sniper": [
{
"unix_time": 1792800060,
"volume_buy": 200,
"volume_sell": 0,
"volume_buy_usd": 200,
"volume_sell_usd": 0,
"wallet_buy_count": 1,
"wallet_sell_count": 0,
"tx_buy_count": 1,
"tx_sell_count": 0
}
],
"smart_trader": [
{
"unix_time": 1792800180,
"volume_buy": 150,
"volume_sell": 0,
"volume_buy_usd": 150,
"volume_sell_usd": 0,
"wallet_buy_count": 1,
"wallet_sell_count": 0,
"tx_buy_count": 1,
"tx_sell_count": 0
}
]
},
"top_10_holder": [
{
"unix_time": 1792800120,
"volume_buy": 300,
"volume_sell": 0,
"volume_buy_usd": 300,
"volume_sell_usd": 0,
"wallet_buy_count": 1,
"wallet_sell_count": 0,
"tx_buy_count": 1,
"tx_sell_count": 0
}
]
},
"has_more": false
}
}{
"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"
}Token - Wallet Tags Tracker
Track how tagged wallets trade a token over time. Returns buy/sell volume, distinct wallet counts, and transaction counts bucketed by interval, so you can see when developers took profit, whether snipers exited or held, and how smart money timed entries relative to price.
curl --request GET \
--url https://public-api.birdeye.so/token/v1/wallet-tags-tracker \
--header 'X-API-KEY: <api-key>'import requests
url = "https://public-api.birdeye.so/token/v1/wallet-tags-tracker"
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/token/v1/wallet-tags-tracker', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"token_address": "2RaLR1kY37bbNfqWTK49AiCbPtdF27497jZ6DatKpump",
"time_frame": "1m",
"groups": {
"tags": {
"dev": [
{
"unix_time": 1792800060,
"volume_buy": 200,
"volume_sell": 60,
"volume_buy_usd": 200,
"volume_sell_usd": 60,
"wallet_buy_count": 1,
"wallet_sell_count": 1,
"tx_buy_count": 1,
"tx_sell_count": 1
}
],
"sniper": [
{
"unix_time": 1792800060,
"volume_buy": 240,
"volume_sell": 0,
"volume_buy_usd": 240,
"volume_sell_usd": 0,
"wallet_buy_count": 2,
"wallet_sell_count": 0,
"tx_buy_count": 2,
"tx_sell_count": 0
}
],
"smart_trader": [
{
"unix_time": 1792800180,
"volume_buy": 150,
"volume_sell": 0,
"volume_buy_usd": 150,
"volume_sell_usd": 0,
"wallet_buy_count": 1,
"wallet_sell_count": 0,
"tx_buy_count": 1,
"tx_sell_count": 0
}
]
},
"tag_combinations": {
"dev": [
{
"unix_time": 1792800060,
"volume_buy": 0,
"volume_sell": 60,
"volume_buy_usd": 0,
"volume_sell_usd": 60,
"wallet_buy_count": 0,
"wallet_sell_count": 1,
"tx_buy_count": 0,
"tx_sell_count": 1
}
],
"sniper": [
{
"unix_time": 1792800060,
"volume_buy": 40,
"volume_sell": 0,
"volume_buy_usd": 40,
"volume_sell_usd": 0,
"wallet_buy_count": 1,
"wallet_sell_count": 0,
"tx_buy_count": 1,
"tx_sell_count": 0
}
],
"dev_sniper": [
{
"unix_time": 1792800060,
"volume_buy": 200,
"volume_sell": 0,
"volume_buy_usd": 200,
"volume_sell_usd": 0,
"wallet_buy_count": 1,
"wallet_sell_count": 0,
"tx_buy_count": 1,
"tx_sell_count": 0
}
],
"smart_trader": [
{
"unix_time": 1792800180,
"volume_buy": 150,
"volume_sell": 0,
"volume_buy_usd": 150,
"volume_sell_usd": 0,
"wallet_buy_count": 1,
"wallet_sell_count": 0,
"tx_buy_count": 1,
"tx_sell_count": 0
}
]
},
"top_10_holder": [
{
"unix_time": 1792800120,
"volume_buy": 300,
"volume_sell": 0,
"volume_buy_usd": 300,
"volume_sell_usd": 0,
"wallet_buy_count": 1,
"wallet_sell_count": 0,
"tx_buy_count": 1,
"tx_sell_count": 0
}
]
},
"has_more": false
}
}{
"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
Three groupings under groups. They overlap each other — never sum one block into another.
tags— one series per tag. Overlapping: a dev+sniper wallet appears in both series, so summing these keys double-counts it.tag_combinations— one series per exact tag set (dev,dev_sniper,dev_sniper_smart_trader, …). Disjoint: every wallet lands in exactly one key, so these are the only keys safe to sum for a total. Needsinclude_tag_combinations=true.top_10_holder— a single series for the top 10 holders. An independent dimension that overlaps both tag blocks. Needstop_10_holder=true.
Reading the numbers. unix_time is the bucket open time. Volumes are gross and leg-based — a transaction that both buys and sells counts on both sides, with no netting. wallet_buy_count counts distinct wallets; tx_buy_count counts (wallet, transaction) pairs, so a bundle touching N wallets counts N times. Buckets with no activity are omitted from the series.
- Lite
- Starter
- Premium
- Business
- Enterprise
Solana
Compute Unit ⚙️
Compute Unit ⚙️
- This endpoint consumes
30 CUper request.
Wallet Tag Definitions 🏷️
Wallet Tag Definitions 🏷️
- dev — The wallet that created the token: the mint creator from the initialize-mint transaction.
- sniper — A wallet that bought within the first
nblocks of the token, counted from the token’s first swap. On Solana,n = 5; a buy qualifies when its slot is withinfirst_trade_slot + 5.
- bundler — Coordinated buying detected in either level:
- Level 1: at least 4 buy transactions in the same slot.
- Level 2: at least 3 distinct wallets buying across adjacent slots, where max slot gap is 1.
- insider — A wallet that received the token directly from the Chef wallet via token transfer, not via a swap.
- smart_trader — A non-bot wallet ranked in Top Realized PnL over the last 90 days with realized PnL > $10,000. Wallets identified as bots are excluded before ranking and never receive this tag.
- kol — A tracked key-opinion-leader wallet label for this token when Birdeye classification identifies the wallet as a KOL cohort member.
Use Cases 💡
Use Cases 💡
- Follow the wallets that matter most — developers, snipers, smart traders, KOLs, and the token’s top holders — across every phase of a launch.
- Build a launch-forensics timeline that reveals when insiders accumulated, when snipers rotated out, and when smart money started leaning in.
- Separate signal from noise by comparing buy volume, sell volume, distinct wallet counts, and transaction intensity bucket by bucket.
- Power monitoring dashboards, alerts, and post-launch research reports that show whether tagged wallets are holding conviction, taking profit, or exiting into liquidity.
How to Use 🛠️
How to Use 🛠️
- Provide a
token_addressand a requiredtime_fromunix timestamp in seconds. Omittime_toto track activity up to now. - Pick
time_frameby the question you’re asking:1s–30sfor launch forensics,1m–30mfor intraday rotation,1h–1Mfor trend. - Use
tags=dev,sniper,smart_trader,kolto narrow the cohorts returned, or omittagsto return all supported tag series. - Set
top_10_holder=trueto add the top-holder series, andinclude_tag_combinations=trueto add the disjoint cohorts. - While
has_moreis true, passnext_time_fromback astime_fromto page forward.
Best Practices ✅
Best Practices ✅
- Start with a coarse interval to understand the overall story, then zoom into minute or second buckets around the suspicious launch, pump, or exit.
- Score wallets from
tag_combinations, nottags— any model that sums thetagskeys will over-weight multi-tagged wallets. - Compare buy-side and sell-side wallet counts against USD volume to distinguish broad participation from a few large actors.
- Pair this endpoint with price, volume, first-buyers, and holder-profile data to explain not just what happened, but who drove it.
Limitations ⚠️
Limitations ⚠️
- Solana only. Supported tags are
dev,sniper,smart_trader, andkol. - Supported tags are
dev,sniper,smart_trader, andkol. - Maximum range per interval — seconds: 30 days, minutes: 60 days, hours: 90 days,
1D/1W/1M: 365 days. Exceeding it returns 400. - Some highly held or high-cost tokens (wSOL, USDC, USDT, BONK) are not supported for this endpoint.
Authorizations
API key for authentication
Headers
Solana network only.
solana Query Parameters
Token mint address
"9cRCn9rGT8V2imeM2BaKs13yhMEais3ruM3rPvTGpump"
Start of the range, as a unix timestamp in seconds.
1782864000
End of the range, as a unix timestamp in seconds. Defaults to now. Must be greater than time_from, and within the time_frame's maximum range.
1785369600
Size of each time bucket.
1s, 5s, 15s, 30s, 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 1D, 1W, 1M Comma-separated wallet tags to restrict the response to. Defaults to all supported tags. Also narrows which keys appear in tag_combinations.
dev, sniper, smart_trader, kol ["dev", "sniper", "smart_trader", "kol"]
Set to true to include the top_10_holder series.
Set to true to include the tag_combinations block, the only block whose keys are safe to sum.
Was this page helpful?

