Grail User Analytics

Transaction-level on-chain analysis across all 20 Grail token pools on Base

Updated just now · all tabs refresh together · auto-updates every hour

Overview
Top Venues
Top Traders
Top Holders
Packs
More Context
All Time
24hr
7d
30d
Volume
Traders
New vs Returning Traders

A trader is new in the period of their first-ever trade (of the selected token; for "All Tokens", their first Grail trade), returning if they traded before.

Average P&L by Token

Mean realized + unrealized P&L per trader, all-time, for each token — across all non-bot traders of that token (not just the top wallets). A quick read on which tokens have been profitable for their traders on average.

All Time
24hr
7d
30d

Volume by Venue

Traders by Venue

Holders by Venue

Volume by Venue — share of USDC traded

Classification based on tx.to — the first contract each user's wallet called. Pick a token above to filter.

Traders by Venue — where unique users trade

Count of unique non-bot traders whose primary venue is each platform (full population, not just top wallets).

Holders by Venue — where token holders trade

Primary trading venue of the wallets that currently hold this token (snapshot).

24h Volume by Venue

24h Traders by Venue

Holders by Venue

Volume by Venue — share of USDC traded

Last ~24 hours (43,200 blocks). Pick a token above to filter.

Traders by Venue — where unique users trade

Count of unique non-bot traders by primary venue in the last 24h.

Holders by Venue — where token holders trade

Primary trading venue of the wallets that currently hold (snapshot — same across windows).

Volume by Venue

Traders by Venue

Holders by Venue

Volume by Venue — share of USDC traded

Classification by tx.to — the first contract each wallet called. Pick a token above to filter.

Traders by Venue — where unique users trade

Unique non-bot traders by primary venue (full population).

Holders by Venue — where token holders trade

Primary trading venue of current holders (snapshot — same across windows).

Volume by Venue

Traders by Venue

Holders by Venue

Volume by Venue — share of USDC traded

Classification by tx.to — the first contract each wallet called. Pick a token above to filter.

Traders by Venue — where unique users trade

Unique non-bot traders by primary venue (full population).

Holders by Venue — where token holders trade

Primary trading venue of current holders (snapshot — same across windows).

All Time
24hr
7d
30d
Volume by Venue
Traders by Venue

Volume and unique traders by front-end, for the token picked above.

Total Traders = unique real-user wallets. Excludes bots — wallets that call a swap router directly with no frontend (tx.to == sender). Relayed (gasless) and ERC-4337 smart-wallet trades are resolved back to the real user, so each person counts once. The table shows the top wallets by volume; pick a token to filter. Click an address for DeBank.

Legend  GRAIL ✦ Grail user — embedded Privy wallet (account made on Grail)  ·  GRAIL Grail user — external wallet connected via Privy  ·  OURS Grail team / internal wallet  ·  smart wallet ERC-4337 smart account (e.g. Fomo)  ·  Smart Money/Whale Nansen labels  ·  basename / ENS / @farcaster / ⛵opensea / 𝕏 twitter linked identity
Volume by Venue
Traders by Venue

Last ~24 hours — volume and unique traders by front-end, for the token picked above.

Last ~24 hours (43,200 blocks). Total Traders = unique real-user wallets, excluding bots (direct router callers); relayed & smart-wallet trades resolved to the real user. Pick a token to filter.

Legend  GRAIL ✦ Grail user — embedded Privy wallet (account made on Grail)  ·  GRAIL Grail user — external wallet connected via Privy  ·  OURS Grail team / internal wallet  ·  smart wallet ERC-4337 smart account (e.g. Fomo)  ·  Smart Money/Whale Nansen labels  ·  basename / ENS / @farcaster / ⛵opensea / 𝕏 twitter linked identity
Volume by Venue
Traders by Venue

Volume and unique traders by front-end, for the token picked above.

Legend  GRAIL ✦ Grail user — embedded Privy wallet (account made on Grail)  ·  GRAIL Grail user — external wallet connected via Privy  ·  OURS Grail team / internal wallet  ·  smart wallet ERC-4337 smart account (e.g. Fomo)  ·  Smart Money/Whale Nansen labels  ·  basename / ENS / @farcaster / ⛵opensea / 𝕏 twitter linked identity
Volume by Venue
Traders by Venue

Volume and unique traders by front-end, for the token picked above.

Legend  GRAIL ✦ Grail user — embedded Privy wallet (account made on Grail)  ·  GRAIL Grail user — external wallet connected via Privy  ·  OURS Grail team / internal wallet  ·  smart wallet ERC-4337 smart account (e.g. Fomo)  ·  Smart Money/Whale Nansen labels  ·  basename / ENS / @farcaster / ⛵opensea / 𝕏 twitter linked identity
Holders by Venue

Where this token's current holders trade (by primary venue). A snapshot of current balances, so it doesn't change between All Time / 24h.

Current on-chain balances from all ERC-20 Transfer events. Uniswap pools (liquidity) excluded. Balances also include tokens locked inside un-redeemed card NFTs, attributed to the NFT owner (🎴 sub-note) — they sit in the pack vault until redeemed but the owner effectively holds them. "All Tokens" ranks wallets by how many distinct Grail tokens they hold. Trading columns cross-reference each holder's swap activity. Click any address for DeBank.

Legend  GRAIL ✦ Grail user — embedded Privy wallet (account made on Grail)  ·  GRAIL Grail user — external wallet connected via Privy  ·  OURS Grail team / internal wallet  ·  smart wallet ERC-4337 smart account (e.g. Fomo)  ·  Smart Money/Whale Nansen labels  ·  basename / ENS / @farcaster / ⛵opensea / 𝕏 twitter linked identity
Pack Revenue
$112.3K
sold × pack price · $112K verified on-chain
Packs Sold
6,680
19,586 card draws · pack size varies by series
Outstanding NFTs
2,117
un-redeemed cards across 68 contracts
In Un-redeemed NFTs
7%
112,978 tokens locked behind those NFTs
Distributed to Users
36%
575,318 redeemed into wallets
Pack sales by series

Pack size varies by series — most are 3 card draws, newer ones may be a single card. "Draws" = individual card NFTs; packs = draws ÷ that series' pack size. Price is per pack (read from each series, not assumed). Revenue is actual on-chain USDC paid (pack contract 0x36b1…d738).

SeriesPacksDraws (NFTs)Revenue
2026 Young Kings3,95111,853$59,265
2026 POKEMANIA2,2506,750$33,750
ELON LAUNCH225225$15,525
2026 Pokemania250750$3,750
TEST48$60
Token supply — where every minted token sits

In NFTs = tokens still locked in un-redeemed/un-drawn NFTs (held by the pack vault 0x36b1…d738) · Treasury = Grail treasury / LP / minter · Pool = Uniswap liquidity · Users = redeemed into wallets (held or sold). Out. NFTs = outstanding (un-redeemed) card NFTs, counted on-chain via totalSupply() across every fractional-card contract.

TokenMintedDistributionIn NFTsTreasuryPoolUsersOut. NFTs
WEMBY500,000
10%62%4%23%155
YAMAL210,000
2%36%9%53%188
MBAPPE150,000
0%64%12%23%0
PIKA100,000
17%28%12%43%834
CHAR100,000
29%31%12%28%878
ELON100,000
11%8%18%63%62
OHTANI50,000
0%0%64%36%0
MONK50,000
0%43%25%32%0
BRUNSON50,000
0%20%15%65%0
KOBE40,000
0%67%6%26%0
CADE40,000
0%36%29%36%0
PULISIC40,000
0%58%12%30%0
RONALDO30,000
0%1%27%72%0
MJ20,000
0%90%6%4%0
BRADY20,000
0%50%30%20%0
BRON20,000
0%73%7%21%0
SHAI20,000
0%17%22%61%0
ISHOWSPEED20,000
0%3%5%91%0
MESSI10,000
0%0%9%91%0
DOUE10,000
0%23%2%75%0
Pack buyers — where they sold

Of the wallets that bought a pack, the front-end they used to sell the token (the tx.to of their sell, router-aware so aggregator-routed sells attribute to the wallet). Pick a pack; export the full address list as CSV.

How we count things
MetricRule
Venue of a tradeThe front-end / router the wallet came through — the first contract it called (tx.to) — e.g. Grail, Fomo, GMGN, OKX, the Uniswap app. This is not where the swap executed: every Grail token's only liquidity is its Uniswap V3 pool, so ~100% of volume executes on Uniswap regardless of front-end (that's why "Uniswap App" — people using uniswap.org directly — is small, while aggregators that route into Uniswap show up under their own name). We've since pulled the named aggregators out of "Other" (Banana Gun, KyberSwap, 1inch, LI.FI, Paraswap, OpenOcean, Odos, CoW Swap, Socket, Bebop, Maestro, Zerion, Rainbow, Sigma), and split the remaining unbranded front-ends into Unknown Apps A/C/D — so "Other / Unknown" is now just a small residual long tail. Shared infra (0x Exchange Proxy) is disambiguated by the pool-level sender; identifications cross-checked vs Basescan / Blockscout / DefiLlama labels, Nansen & Arkham, OpenSea, and on-chain receipts. (See the breakout tables below.)
Grail volume(a) Gasless meta-tx that pay Grail's affiliate fee to 0x9f66…d431 — ground truth (100% of Grail trades pay it, 0% of other venues); plus (b) 0x-API trades by confirmed Grail users (Privy list), since Grail's external-wallet flow is feeless. Conservative: other non-fee external trades are not counted (Grail is a floor). Pending dev confirmation on external-wallet routing.
Total TradersExcludes bots — wallets that call a swap router directly with no frontend (tx.to == sender). Relayed (gasless) and ERC-4337 smart-wallet trades are resolved back to the real user via on-chain logs / transfer tracing, so each person is counted once (not the relayer/bundler).
P&LAverage-cost basis. Realized = sell proceeds − cost basis of tokens sold (profit taken); unrealized = tokens still held × (current price − avg cost). Total = realized + unrealized. Tokens acquired by transfer/airdrop have no on-chain cost basis, so they show "—".
HoldersCurrent balances from all ERC-20 Transfer events. Uniswap pools and router/settler infra are excluded. "Where Holders Trade" = the primary trading venue of a token's holders. Token prices from each pool's slot0.
Grail userMatched against Grail's Privy export — GRAIL ✦ embedded (account made on Grail), GRAIL external wallet connected via Privy. Identity (basename/ENS/Farcaster/OpenSea/X) from web3.bio + OpenSea.
Contract Identification

Each venue is identified by the contract a wallet calls (tx.to), cross-checked against Basescan / Blockscout / DefiLlama labels, deployer analysis, function-signature databases, and EOA patterns. Shared infra (0x Exchange Proxy) is disambiguated by the pool-level sender.

VenueKey Contracts (tx.to)How IdentifiedConfidence
Grail 0x68a1...da7bBaseSettlerMetaTxn + 0xDef1C0 (Exchange Proxy) when sender=settler Gasless meta-transactions via the 0x SettlerMetaTxn contract; every such trade pays Grail's affiliate fee to 0x9f66…d431 (verified: 100% of Grail trades, 0% of other venues). Plus trades through the 0x API by confirmed Grail users (from the Privy list) are attributed to Grail. Confirmed
Fomo 0x5ff1...2789EntryPoint v0.6 0x0000...a032EntryPoint v0.7 0x4337...0108EntryPoint v0.8 0xb92f...4fRelayRouterV3 + 0xDef1C0 when sender=BaseSettler ERC-4337 account abstraction via Biconomy bundler — consistent with a mobile app using smart wallets. Relay infrastructure for gasless transactions. 9 overlapping bundler addresses confirmed across contracts. Likely
GMGN 0xd8ba...a4e2SwapX Proxy 0xcfba...9d17SwapX GMGN.ai — meme token trading terminal. Uses "SwapX" as proprietary routing backend. Confirmed via GMGN API docs (src accepts "gmgn"/"swapx"). Not related to SwapX on Sonic. Confirmed
OKX Wallet 0xc8f6...9265DexRouter 0x5e2f...9801DexRouter v2 Basescan tags as "OKX: Dex Router 2". Listed in OKX's official DEX smart contract docs. Confirmed
Uniswap App 0x2626...e481SwapRouter02 0x3328...4e49UniversalRouter + 5 other official routers Official Uniswap router contracts, all Basescan verified. Users interacting with uniswap.org directly. Confirmed
0x API 0xdef1...25effExchange Proxy 0x0000...2734AllowanceHolder 0x Exchange Proxy trades NOT from Grail or Fomo senders. Includes Matcha, Rabby, and other wallets using 0x API for routing. Confirmed
Named aggregators Banana Gun, KyberSwap, 1inch, LI.FI, Paraswap, OpenOcean, Odos, CoW Swap, Socket, Bebop, Maestro, Zerion, Rainbow — each now broken out into its own venue (no longer in "Other"). Contract addresses in the Named aggregators & routers table below. Confirmed
Unknown Apps A/C/D Four distinct unbranded front-ends that route into the Uniswap pools — pulled out of "Other" and labeled individually. Details + funding trails in the Unknown Apps table below. Distinct apps
Bots / Direct Transactions where tx.to equals the pool-level sender — the user called the swap router directly with no frontend. Typically MEV bots, trading scripts, or advanced DeFi users. N/A
Other / Unknown Residual unidentified tx.to addresses (50 unique) — what's left after the named aggregators and Unknown Apps A/C/D above are pulled out. Long tail of one-off contracts and minor bot infrastructure, each a tiny share of volume. N/A
Named aggregators & routers — pulled out of "Other"

These used to sit inside the "Other" bucket; each now gets its own venue. Identified by tx.to against Basescan / Blockscout / DefiLlama labels, official router docs, and each protocol's canonical contract registry. All of them route into the same Uniswap V3 pools — they're front-ends, not separate liquidity.

VenueKey Contracts (tx.to)How IdentifiedConfidence
KyberSwap0x6131…37b5 0x6131…b77bKyberSwap MetaAggregationRouter — Basescan / DefiLlama labeled, official docs.Confirmed
1inch0x1111…0582 0x1111…2a651inch Aggregation Router v5 / v6 — canonical 0x1111… deployments.Confirmed
LI.FI0x1231…4eaeLI.FI Diamond swap/bridge router — canonical address.Confirmed
Paraswap0x6a00…1068ParaSwap Augustus v6 router.Confirmed
OpenOcean0x6352…4e64OpenOcean Exchange router — canonical address.Confirmed
Odos0xd63b…1026 0x19ce…95a1Odos Router v2 — Basescan / DefiLlama labeled.Confirmed
CoW Swap0xca42…9680CoW Protocol GPv2Settlement.Confirmed
Socket0x327d…5d86Socket / Bungee gateway router.Confirmed
Bebop0x80e3…5c69Bebop settlement router.Confirmed
Banana Gun0xb300…028dBanana Gun Telegram trading-bot router (0xb300… vanity).Confirmed
Maestro0x20f6…860cMaestro Telegram trading-bot router.Confirmed
Sigma0x8cc6…4c35 0x5e83…cc81Sigma multi-chain Telegram trading bot — identified by its SigmaSwap(bytes) method (0x08c1284c); both contracts share Sigma's deployer 0x107f250e, called by Sigma's backend executor. One of the top venues selling gELON.Confirmed
Zerion0xd7f1…696fZerion wallet swap router.Confirmed
Rainbow0x0000…10e2Rainbow wallet router (0x0000… vanity).Confirmed
Unknown Apps — distinct front-ends, brand unconfirmed

Distinct tx.to contracts that route real user volume into the Uniswap pools but that we could not tie to a known brand via Basescan / Blockscout / DefiLlama / Nansen / Arkham / OpenSea labels or deployer analysis. Each is a separate app (its own contract + funding trail), so we surface them individually rather than bury them in "Other." (Former "App B" is now identified as Sigma and moved to the table above.)

VenueKey Contracts (tx.to)What we foundStatus
Unknown App A0xd0a4…e4bfCreator wallet funded by a Binance hot wallet. Routes into the Uniswap V3 pools. Confirmed NOT Grail and NOT PancakeSwap — across 30 sampled trades, 0 pay Grail's affiliate fee and 0 touch the 0x settler. Most likely a proprietary trading app / bot front-end.Distinct app · brand unconfirmed
Unknown App C0xafa8…f5fdFunding trail traces back to ChangeNOW (a non-custodial instant-swap service). Unbranded router into the Uniswap pools.Distinct app · brand unconfirmed
Unknown App D0x013b…9060A distinct unbranded front-end routing into the Uniswap pools.Distinct app · brand unconfirmed

Methodology

  • Data sourced from on-chain Uniswap V3 Swap events across all 16 Grail token pools on Base (chain ID 8453).
  • Transaction-level analysis: Each swap traced to tx.to — the first contract the user's wallet called — revealing the actual wallet, app, or frontend that initiated the trade.
  • Disambiguation: 0x Exchange Proxy (0xDef1C0) is shared by Grail, Fomo, Matcha, Rabby, etc. Trades through it are disambiguated using the pool-level sender.
  • "Bots / Direct" = tx.to == sender with no known label — the user called the swap contract directly.
  • Identification sources: Basescan labels & verified source code, Blockscout API, DefiLlama, function signature databases, deployer address analysis, OKX official docs, GMGN API docs, and EOA transaction pattern analysis.
  • Data covers all swaps from each pool's deployment block through block 47131971 (2026-06-10 01:02:16 UTC).