Skip to content
  • System
  • Light
  • Dark

Trader attribution & wallet tags

View as Markdown

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:

  1. computes every address’s net token and quote change in the transaction (including internal ETH transfers);
  2. removes known infrastructure (pools, the v4 PoolManager, routers, aggregators, Permit2, vaults, lockers, launchpads);
  3. takes the address that received the token (buy) or sent it (sell) as the trader;
  4. for ERC-4337, uses the smart account as trader and the bundler as executor;
  5. for Relay and other gasless flows, uses the user whose funds moved, with the solver as executor;
  6. 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>).

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.