My App
Multi-Chain Scanner

Every link format recognised

Four bare-address shapes, 23 specific site link layouts, and a generic fallback for any other `http(s)://` link.

Every link format recognised

Four bare-address shapes, 23 specific site link layouts, and a generic fallback for any other http(s):// link.

Bare addresses

An address with no link around it is matched against four shapes. These need no http(s):// at all — they match anywhere in a message's plain text.

Bare-address shapes

ShapeExact patternChain hint
Sui coin type0x[0-9a-fA-F]{1,64}::[A-Za-z_][A-Za-z0-9_]*::[A-Za-z_][A-Za-z0-9_]*sui, fixed
EVM address(?<![0-9A-Za-z])0x[0-9a-fA-F]{40}(?![0-9A-Za-z])none — DexScreener names the chain
TON jetton(?<![A-Za-z0-9_\-])[EU]Q[A-Za-z0-9_\-]{46}(?![A-Za-z0-9_\-])ton, fixed
Solana base58 mint(?<![1-9A-HJ-NP-Za-km-z])[1-9A-HJ-NP-Za-km-z]{32,44}(?![1-9A-HJ-NP-Za-km-z]), and the string must decode as base58 to exactly 32 bytessolana, fixed

Sui coin types are matched and stripped out of the text first, so a Sui type is never also read as a bare EVM address.

The Solana shape by itself isn't enough — a 32–44 character base58 string is common text. It only becomes a candidate once it decodes to exactly 32 bytes; a string that starts with 0x, or decodes to any other length, is discarded.

23 rules match a link by its host, then read the chain and the token or pair id out of its path. A host matches a rule when it equals the listed suffix or ends with it, so www. and other subdomains work the same as the bare domain. The first rule whose host matches wins, and the generic fallback below never runs for that link.

Known-site rules

SiteURL shapeWhat's extracted
dexscreener.com/<chain>/<id>Chain from the path; id as either a token or a pair
dextools.io/app/[lang/]<chain>/pair-explorer/<id>Chain from the path; id as a pair
geckoterminal.com/<chain>/pools/<id>Chain from the path; id as a pair
geckoterminal.com/<chain>/tokens/<id>Chain from the path; id as a token
pump.fun/[coin/]<id>Solana; id as a token
birdeye.so/token/<id>?chain=, else Solana; id as a token
solscan.io/token/<id>Solana; id as a token
etherscan.io/token/<0x…> or /address/<0x…>Ethereum; id as a token
bscscan.com/token/<0x…> or /address/<0x…>BNB Chain; id as a token
basescan.org/token/<0x…> or /address/<0x…>Base; id as a token
pulsechain.com/token/<0x…> or /address/<0x…>PulseChain; id as a token
hyperevmscan.io/token/<0x…> or /address/<0x…>HyperEVM; id as a token
purrsec.com/token/<0x…> or /address/<0x…>HyperEVM; id as a token
robinhoodchain.blockscout.com/token/<0x…> or /address/<0x…>Robinhood Chain; id as a token
tonviewer.com/<id>TON; id as a token
tonscan.org/jetton/<id> or /address/<id>TON; id as a token
suiscan.xyz/mainnet/coin/<id>Sui; id as a token
suivision.xyz/coin/<id>Sui; id as a token
gmgn.ai/<chain>/token/<id>Chain from the path; id as a token
axiom.trade/t/<id>Solana; id as a token
photon-sol.tinyastro.io/<xx>/lp/<id>Solana; id as a pair
jup.ag/tokens/<id>Solana; id as a token — a - in the id keeps only the text after the last one
ave.ai/token/<id>-<chain>Chain is the letters after the first -; id is everything before it

For birdeye.so specifically, the chain always comes from ?chain=; when that query parameter is absent it defaults to Solana.

Generic fallback

Any other http(s):// link — one that didn't match a known-site rule above — is parsed generically.

Chain hint, first hit wins: a fixed table of single-chain hosts, else the first of — the subdomain label, then each path segment, then a ?chain=, ?chainid= or ?network= query value — that is a recognised chain name or slug.

Single-chain hosts

HostChain
raydium.iosolana
jup.agsolana
pump.funsolana
orca.sosolana
meteora.agsolana
photon-sol.tinyastro.iosolana
pancakeswap.financebsc
four.memebsc
pulsex.compulsechain
hyperswap.exchangehyperevm
aerodrome.financebase
ston.fiton
dedust.ioton
cetus.zonesui
turbos.financesui
bluefin.iosui

Address: any of nine query keys — address, outputcurrency, outputmint, inputcurrency, token, tokenaddress, ca, mint, contract (case-insensitive) — read as an address if present; otherwise every path segment is tried as an address.

The candidate is typed a pair when the path contains /pair, /pool or /lp/; otherwise it's typed a token.

Hint vs. address family

This applies everywhere a chain hint is produced, known-site rules included: a chain hint that doesn't fit the candidate address's own shape is discarded rather than kept. A 0x… address (EVM-shaped) next to ?chain=solana in the same URL is read with no chain hint, not a wrong one.

Only http:// and https:// URLs are harvested as links. A bare dexscreener.com/… with no scheme in front of it is not read as a link — though any address-shaped text inside it is still caught by the bare-address rules.

On this page