Skip to main content

Chain-specific addresses

The problem

An Ethereum address like 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 is valid on any EVM-compatible chain.

In a multichain world this can cause problems: tokens sent on the wrong chain, broken UIs, frustrated users.

The standards

To address this, we worked on three complementary "Interoperable Address" standards

  • ERC-7930 defines interoperable addresses (a binary format, for use onchain)
  • ERC-7828 defines interoperable names (a human-readable form for user-facing contexts)
  • Chain Agnostic Improvement Proposal 350 (CAIP-350, which includes a registry of the standard serialization between binary and text representations for different chain ecosystems)

Two representations

The standards define two representations: a human-readable name, and a compact binary encoding.

FormatExampleWhen you use it
Namevitalik.eth@ethereumShow in UIs, share with people
Address0x00010000010114d8da6bf2...On-chain storage, wire transfer

To bring these standards to life we collaborated with Unruggable on an onchain chain registry (on.eth), which was approved for use by the ENS DAO.

We also developed a dedicated typescript package for easy integration of interoperable addresses, @wonderland/interop-addresses

📌 To learn more, feel free to check our documentation, explore the landing page and interact with the demo app.