Skip to main content
Wallet tags are labels that explain what a wallet may be or how it behaves. The PnL V2 wallet tags API labels Solana wallets with useful identity and behavior signals: KOLs, bots, arbitrage wallets, exploit wallets, exchanges, token developers, pool accounts, and trading-platform usage. Use these tags to clean up trader leaderboards, identify wallet types, filter noisy activity, and show better labels in wallet analytics products.
Wallet tags are returned through the identity object. A wallet can have multiple tags at once, so always read identity.tags as an array instead of assuming one label.

Quick Start

Wallet identity appears across PnL V2 wallet, token, leaderboard, and batch responses when a label is known. Wallet profile showing identity tags next to a wallet name
If a wallet has no known tags, identity can be null. identity.type is the primary tag for single-badge UIs. identity.tags is the complete tag list and should be used when you need every label. In the example above, the wallet is labeled as a known bot. A UI could show one badge from identity.type, while a filtering system should read every value in identity.tags.

Raw Wallet Signals

Some wallet endpoints also return a raw tags object with lower-level arbitrage and platform signals:
Use identity.tags for UI labels and filtering logic. Use the raw tags object when you specifically need the underlying arbitrage/platform signals.

Supported Wallet Tags

axiom-flash is accepted as a platform query value, but identity responses normalize it to the axiom tag.

Tag Categories

People and Bots

Use kol, bot, potential_bot, and arbitrage to separate human traders from automated or MEV-style behavior. potential_bot is a softer heuristic signal. bot and arbitrage are stronger curated labels.

Safety and Infrastructure

Use hacker, spam_dusting, and exchange for safety warnings and infrastructure labels. These tags are curated and may also promote a readable label into identity.name, for example an exchange name or spam-dusting label.

Token Context

Use developer and pool on token-scoped endpoints to find token creators, pool deployers, mint authorities, LP accounts, pool vaults, and bonding curve accounts. Token-scoped endpoints resolve these roles for the token in the URL, which is useful for detecting insiders and non-trader wallets in token holder or first-buyer lists.

Platform Filters

The endpoints below accept platform=axiom, platform=bloom, platform=photon, or comma-separated combinations. Axiom leaderboard filtered to wallets trading through Axiom
  • GET /v2/pnl/leaderboard/top
  • GET /v2/pnl/tokens/:token/traders
  • GET /v2/pnl/tokens/:token/first-buyers
platform=axiom-flash is also accepted and is treated as axiom.

Where Tags Appear

Wallet identity is returned on PnL V2 wallet, token, leaderboard, and batch responses when the API can resolve a label.
  • Wallet summary and wallet positions return top-level identity.
  • Token trader endpoints return identity per trader.
  • Token-scoped endpoints resolve developer and pool for the token in the URL.
  • Position batch endpoints return identity per wallet or position.
  • POST /v2/pnl/wallets/batch returns both identity and raw tags per wallet.

Common Use Cases

FAQ

Yes. For example, a wallet can be both kol and axiom, or developer and pool depending on the token context. Always read identity.tags as an array.
bot is a curated named bot label. potential_bot is a softer heuristic signal from wallet behavior. arbitrage is a confirmed MEV or arbitrage wallet label.
axiom-flash is accepted for platform filtering, but identity responses normalize platform aliases so clients only need to handle the canonical axiom tag.
Use identity.tags for labels, badges, and filtering in most apps. Use the raw tags object when you specifically need isArbitrage or the original platform array.
SNS adds identity.sns.domain and the sns tag when a primary .sol domain exists. Curated labels keep identity.name; SNS is attached in parallel (for example tags: ["kol", "sns"]). See SNS Primary Domain.