Why Canonical Contract Addresses Matter for Stock Tokens and LP Positions
Ticker symbols and token interfaces are easy to imitate. Canonical identity comes from an authoritative registry plus live onchain verification.

Key takeaways
- A token's symbol, name and interface do not establish its identity.
- Canonical registries should be bound to a specific chain ID and verified against live code.
- Factory and manager checks protect lockers from accepting lookalike positions.
A ticker is a label; chain ID plus address is an identity
Two contracts can expose the same name and symbol. A safe application starts with an issuer or protocol registry, confirms the network, and then checks live bytecode and wiring.
- Network
- Robinhood Chain · 4663
- Canonical WETH
- 0x0Bd7…AD73
- Canonical USDG
- 0x5fc5…d168
- Runtime check
- eth_getCode ≠ 0x
The same address on another chain is a different object.
Address published in Robinhood Chain documentation.
A matching USDG ticker elsewhere is not canonical.
Presence of code is necessary, but source and wiring still matter.
Source: Robinhood Chain contract addresses (Robinhood Chain Documentation).
The counterfeit-token problem
ERC-20 metadata is permissionless. Anyone can deploy a token named after a public company, reuse a familiar symbol and publish a convincing logo. The same is true for an LP-like token that implements balanceOf and transferFrom. A user interface that searches by symbol can therefore display a counterfeit asset with no connection to the intended issuer or market.
Canonical identity is a tuple: network, contract address and authoritative source. All three matter. The right address on the wrong chain may have no code or unrelated code. The right symbol at a different address is a different token. An authoritative list that has not been checked against current bytecode may be stale.
Use issuer and protocol registries
Robinhood's contract page tells developers to use its listed addresses to identify canonical Stock Tokens and warns that a matching ticker at another address is not a Robinhood Stock Token. Its asset API also provides per-chain deployment addresses. These primary sources are stronger than community token lists or search-engine results.
For liquidity protocols, the factory or manager is the identity root. Uniswap publishes deployment addresses by network. A V2 pair should be returned by the configured factory for its exact token pair. A V3 or V4 position should be owned and described by the configured canonical position manager.
Verify live code and wiring
An address record should be followed by a live code check. Confirm that code exists on the intended chain, then inspect immutable or public wiring such as factory, pool manager or implementation address. Record the runtime code hash for the release. These checks catch wrong networks, incomplete deployments and contracts whose interfaces look correct while their dependencies differ.
Proxy contracts require an additional layer. The proxy address may stay constant while the implementation changes. Monitoring therefore needs both the user-facing proxy and its current implementation, upgrade authority and timelock. A source-verified proxy with an unreviewed implementation is not a fully understood system.
Canonical validation inside a locker
A locker cannot delegate identity checks to its front end because users can call contracts directly. For V2, the contract should verify the candidate pair's factory and tokens, then ask the immutable factory for the canonical pair. The transfer occurs only after all values match. This prevents a fake ERC-20 from being presented as official liquidity.
For NFT positions, the locker should accept transfers only from the immutable manager and only during an expected lock operation. That narrows the callback surface and prevents unrelated NFTs from becoming confusing or unrecoverable deposits. Canonical manager allowlisting also makes fee-collection behavior predictable enough to enforce principal invariants.
Keep identity evidence current
A release manifest should bind chain ID, address, deployment transaction, block number, runtime hash, compiler metadata and source-verification state. Interfaces read from that manifest rather than duplicating addresses across components. If evidence is missing, the transaction path stays disabled.
Wallet discovery follows the same principle. Explorer indexes are useful candidate sources, but current ownership and canonical identity are settled onchain. Reconciling indexed data with live reads avoids stale positions while limiting expensive broad chain scans.
Sources and further reading
Sources were accessed for this publication on August 4, 2026. Product terms, networks and deployments can change; check the linked primary source before acting.
Related reading
Source Verification and Bytecode Matching for Onchain Market Infrastructure
Published source is useful only when users can connect it to the exact bytecode, network and configuration that holds assets.
ERC-20 Approvals for Stock Tokens: Allowances, Permissions and Safer UX
An approval does not move a token. It authorizes a spender to move up to an allowance later, which makes spender identity and scope critical.
Multisig and Timelock Governance for RWA Protocols: Roles and Response Paths
A multisig reduces single-key control; a timelock adds notice. Neither helps if one broadly privileged role can bypass the intended path.