Chain-aware addressing for the Ethereum ecosystem
Simplify interoperability and eliminate cross-chain mistakes with human-readable addresses that include chain information.
$ npm install @wonderland/interop-addressesWhy do we need interoperable addresses?
Wrong chain, lost funds
Addresses don't specify which chain they belong to. This means chain information must be expressed out of band, and introduces the risk of an address being mistakenly used on a chain it is not valid for.
Readability and typos
Existing systems rely heavily on hexadecimal strings and other opaque identifiers, with limited checks for correct data entry.
Centralized chain information
Chain identification depends on centralized offchain repositories, which act as a bottleneck exposed to hacks and human errors.
With Interoperable Addresses
Chain specificity
Addresses explicitly include which chain they belong to
Compact format
For use in cross-chain messaging and intent declaration
Error prevention
Additional checksum validation to detect potential errors
Human-readability
ENS integration means support human-readable names as well as long hexadecimal addresses
Onchain registry
Chain identifiers are stored on-chain without dependency on centralized repositories
Universal compatibility
Works with any chain type, EVM or non-EVM
How does it work?
ERC-7930 establishes the base binary format, while ERC-7828 extends it with human-readable names using ENS and an on-chain chain registry.
The Specifications
CAIP-350
Cross-Chain Address Serialization
Living specification that defines how blockchain addresses and chain identifiers are serialized across different ecosystems. Each blockchain namespace (Ethereum, Bitcoin, Solana, etc.) maintains its own implementation profile.
View Specification →ERC-7930
Interoperable Addresses
Binary format that binds address and chain together — compact, verifiable, and extensible across any blockchain ecosystem. Works with any chain type, from EVM to non-EVM networks, as long as they have a CAIP-350 profile.
View Specification →ERC-7828
Human-readable Interoperable Names
Defines a standard <address>@<chain> text representation for an Interoperable Address, supporting optional resolution of ENS names and readable chain identifiers based on an on-chain registry.
View Specification →Interactive Playground
Convert between formats, test with real addresses, and validate checksums in real-time. Experience how interoperable addresses work across different chains.
SDK & Implementation
Install our SDK to implement Interoperable Addresses in your application.
$ npm install @wonderland/interop-addressesFrequently Asked Questions
Why two separate ERCs?
ERC-7930 provides the foundational binary format that works everywhere, but is optimised for use in smart contracts. ERC-7828 focuses on human-readable addresses, adding ENS integration for better UX and checksums for safe sharing. You can use 7930 alone, or enhance it with 7828.
What about chain abstraction?
These ERCs complement chain abstraction. While abstraction hides complexity, interoperable addresses ensure safety when users DO need to know which chain they're using. Think of it as "abstraction with transparency."
Do I need to use ENS?
No. ERC-7930 works with raw addresses. ENS (via ERC-7828) is optional but recommended for better UX.
Does this work with non-EVM chains?
Yes! Both ERCs can support addresses on Bitcoin, Solana, and any CAIP-supported chains. The specifications build upon CAIP-350, a meta-specification that defines binary encoding for blockchain addresses across different ecosystems.
What is CAIP-350 and how does it relate to Interoperable Addresses?
CAIP-350 is a living specification from the Chain Agnostic Standards Alliance that provides a template for how different blockchain ecosystems serialize addresses and chain identifiers. Each blockchain namespace (Ethereum, Bitcoin, Solana, etc.) maintains its own implementation profile. ERC-7930 and ERC-7828 leverage this registry for serialization and deserialization of chain-specific addresses.
What kind of developers can use Interoperable Addresses?
Wallet and app developers can use Interoperable Addresses (ERC-7828 + ERC-7930) to create standardized and legible send flows. Infrastructure developers can simplify cross-chain interactions using the compact ERC-7930 binary standard.
How do I get started as a developer?
Install our SDK: npm install @wonderland/interop-addresses. For implementation examples and guides, see the Interop SDK documentation.
What is the status of the onchain chain registry?
The onchain chain registry is currently under development in the chain-resolver project and is approaching final testing. It will be powered by a custom ENS resolver under the dedicated ENS name on.eth. Until this is live, the SDK uses data from ethereum-lists/chains, using shortName values as identifiers.
What if a name resolves to different addresses?
The Interoperable Name specification includes 4-byte checksums calculated over the resolved Interoperable Address. If a name resolves to a different address or there's an error, the checksum won't match and will alert about the problem. Checksums help prevent errors and detect inconsistencies in resolution.