Trader attribution & wallet tags
Who actually traded
Section titled “Who actually traded”On-chain, the address that sends a transaction (tx.from) or calls the pool is often infrastructure: a router, an aggregator, a Relay solver, an ERC-4337 bundler, a launchpad’s launch-and-buy helper, Permit2, or a trading bot’s contract. Counting those as traders would make every stat wrong.
For each swap Crius:
- computes every address’s net token and quote change in the transaction (including internal ETH transfers);
- removes known infrastructure (pools, the v4 PoolManager, routers, aggregators, Permit2, vaults, lockers, launchpads);
- takes the address that received the token (buy) or sent it (sell) as the trader;
- for ERC-4337, uses the smart account as trader and the bundler as
executor; - for Relay and other gasless flows, uses the user whose funds moved, with the solver as
executor; - for bot contracts, uses the contract as trader and tags it
bot.
One transaction can contain several trades (a multi-recipient buy, an arbitrage). Each trade has its own id (<block>-<tx index>-<log index>).
Wallet tags
Section titled “Wallet tags”| Tag | Meaning |
|---|---|
dev |
The token’s deployer or launch creator |
dev_linked |
Funded by or funding the dev, or in the same cluster |
sniper |
Bought within the first blocks after trading opened |
bundler |
Part of a coordinated bundle |
fresh |
A new wallet (under 24 h old or under 5 transactions before its first buy) |
insider |
Received tokens from the dev or launch contract without buying |
whale |
Holds 1% or more of supply |
bot |
Trades through its own contract, or trades like a bot (very frequent, sub-second round trips, same-block buy and sell) |
top_trader |
Among the best traders by realized PnL |
pool, lp_locker, burn, launchpad, protocol_fee, cex, bridge |
Infrastructure, excluded from concentration stats by default |
Use exclude=infra or exclude=bots on holder and stats endpoints to leave those wallets out.