Calculation

How Routing Classification Works

Routing classification helps distinguish a direct trader wallet from a route program or program-owned trading path.

Classification labels

LabelMeaning
DirectUserThe Pump.fun event user appears to be the trader wallet and no routed context is detected.
RoutedUserSignerA route program is involved, but the actual user signer can still be attributed.
RoutedUserForwardedA direct depth-2 router CPI forwards a valid on-curve user into the Pump.fun TradeEvent.
RoutedUserPdaA routed path appears to use a PDA or program-owned account while logs provide a probable real user wallet.
RoutedUnknownA router is detected but the service cannot safely identify the real user wallet.

Signals used

  • Invocation depth and parent program ID show whether Pump.fun was called through another program.
  • Direct depth-2 TradeEvent users must be valid on-curve Solana pubkeys; off-curve PDA candidates stay unresolved.
  • Top-level program IDs reveal same-transaction route or sidecar programs.
  • Logged pubkeys can hint at real user wallets when they repeat and are not known Pump.fun fields.
  • Core programs such as system, token, associated token and memo are ignored as route candidates.

Limitations

On-curve validation rejects PDAs but does not prove account ownership. Programs with custom custody or PDA behavior use explicit strategies that override the strict direct-CPI default.

Some routers intentionally hide the end user. In those cases PumpScan tracks the route program and avoids inventing a wallet attribution.

Program discovery and detail pages

The /today/programs directory lists retained upstream router and integration activity. Each eligible address links to /program/[address], where PumpScan combines persistent program metadata, cached activity, scoped accounts, indexed events and live RPC hydration.

The dynamic sitemap discovers current program IDs from every available service program source, merges and deduplicates them, and emits a concrete /program/[address] URL for each one.