Skip to main content
Hashbeam

Crypto protocols, markets and policy

750f6d

Four Checks for Crypto Listings With Case-Variant Symbols

Case-variant symbols can hide duplicate token pages or distinct assets; compare chain-qualified identifiers first, then verify metadata and market records before merging.

The Hashbeam Desk··5 min read

Abstract cover artwork for Four Checks for Crypto Listings With Case-Variant Symbols

To detect duplicate crypto listings whose symbols differ only by case, compare their chain-qualified token identifiers, then use metadata and market records to decide whether the records refer to the same asset. A symbol such as “ABC” or “abc” is a label, not a globally unique identifier. Lowercasing both values can find candidates for review, but it cannot establish that two listings represent the same token.

This distinction matters in token directories and trading interfaces. A case-only difference can come from inconsistent indexing, an issuer’s chosen display style, or separate projects that happen to use the same letters. Treating every case-folded match as a duplicate can hide a real asset; treating each spelling as unique can leave duplicate pages and split market data.

Chart and wallet views can help trace where a listing gets its market information, but the displayed symbol is still only a label. For that part of the workflow, see this fuller guide to Poocoin chart, wallet and chain-data views. Use the underlying chain and token address to establish identity.

How do you tell a duplicate from a case variant?

A case-variant duplicate is two records for the same chain and token identifier whose symbols differ only by letter case. For example, `ABC` and `abc` are a candidate pair. They are confirmed duplicates only when their canonical chain and token identifiers match. If the identifiers differ, the shared letters do not make them the same asset.

Make symbol comparison a discovery step, not a database merge rule. Preserve the raw symbol for display and source auditing. For candidate generation, trim surrounding whitespace and compare a normalized case form; keep the original value alongside it. If a source can provide non-ASCII characters, avoid treating visual lookalikes as equivalent without a separate review. Similar-looking characters can have different code points, while indiscriminate Unicode normalization can collapse distinct labels.

Also separate an asset listing from a market listing. One token can trade in several pools and quote pairs. Those pool records may be separate markets for the same asset, not duplicate token records. Conversely, two unrelated tokens can use the same symbol and each have valid pools.

What identifier should the duplicate check use?

Use the chain namespace together with the token’s on-chain identifier. On EVM networks, that normally means the chain ID plus the 20-byte contract address. Addresses are represented as hexadecimal text, so letter casing does not change the underlying bytes. EIP-55 uses mixed case to add a checksum to an address’s text representation; it does not make the symbol or address case a separate asset identity.

Do not drop the chain from the key. The same address bytes can exist on different EVM networks and refer to different deployed contracts. For non-EVM networks, use that chain’s canonical identifier rules rather than applying EVM address handling by analogy. Solana mint addresses use base58, whose alphabet is case-sensitive, so lowercasing the string would change the identifier.

A practical four-check review is:

  • Compare symbols for candidates. Case-fold the symbol fields to find possible matches, but retain the source strings and do not merge on this test alone.
  • Compare chain-qualified identifiers. Resolve each record to its chain and canonical token address or mint. For EVM addresses, validate the hexadecimal form and compare decoded bytes; for case-sensitive encodings, compare according to that network’s rules.
  • Check on-chain metadata. Read the token’s reported name and symbol from the identified contract or mint, and compare them with the listing fields. Metadata can be missing, changed, or misleading; matching names and symbols support a review but do not override a different identifier.
  • Check market records separately. Confirm each pool or trading pair’s token identifiers and chain. Several pools attached to one token are multiple markets; a pool with a different token address is evidence of a different asset, even if its label matches.

Which metadata can confirm a match?

Metadata can explain why two records look alike, but it is weaker evidence than the chain-qualified identifier. ERC-20’s `name` and `symbol` are metadata fields, not a registry that assigns unique names across Ethereum contracts. A contract can report the same symbol as another contract, and an indexer can retain stale or edited off-chain fields. The on-chain value confirms what that contract reports, not who controls it or whether the project’s claims are true.

Check the metadata at the source chain and record the retrieval context when listings are historical. A proxy contract can keep its address while its implementation changes, so time-sensitive comparisons may need the block or observation time as well. That affects what the contract did at a given point; it does not turn a case-only symbol change into a new token address.

For a market record, inspect the pool’s token addresses rather than relying on its pair label. A chart can show trading activity associated with a selected pool, and a wallet view can show balances associated with an address, but neither view alone establishes that two differently labeled pages are the same asset. Use them to trace a discrepancy after the identifier check.

When should two listings be merged?

Merge records when the chain-qualified token identifier is identical and the difference is confined to labels, formatting, or duplicate ingestion. Keep aliases and source-specific symbols so the merge does not erase how exchanges or indexers named the asset. If the identifiers differ, keep separate asset records and flag the shared case-folded symbol as a collision for review.

The reliable order is identity first, metadata second, markets third. Case normalization finds the question; it does not answer it. That rule prevents a capitalization fix from concealing a different contract, while still letting an indexer consolidate repeated records for one on-chain token.