This document outlines the required properties for existing interoperability tracks. For each one, properties are categorized as:
- Must-have: Core requirements that any solution MUST implement.
- Should-have: Important features that solutions SHOULD implement.
- Nice to have: Optional features that improves the solution.
- Non-Goals: Explicitly out of scope.
L2s and interconnected chains complicate how we identify accounts and targets for transactions. This becomes clear when looking at common scenarios:
- The same address on different chains may represent completely different entities, or in some cases, may not exist at all.
- Different addresses across chains representing the same logical entity.
From the integration perspective, we can separate cross-chain identification into two distinct concerns:
- Cross-Chain Naming: Human-readable names or identifiers that can be resolved to cross-chain addresses (e.g., [email protected]).
- Cross-Chain Addressing: Machine-readable addresses for uniquely identifying addresses across chains (e.g., eth:rollup:0x123...abc).
For a comparison of current efforts, see here.
The following properties outline the requirements for solutions in both spaces.
- Address Uniqueness
- Unique and therefore canonical identification of addresses per chain.
- Prevention of cross-chain ambiguity.
- Format Compatibility
- Support for arbitrary "blockchain" address formats not constrained to EVM.
- Consistent encoding and decoding of its format.
- Implementation Requirements
- Deterministic resolution from chain identifier + address.
- Guarantee there is a binary representation that can be passed, stored, and decoded unambiguously in smart contract environments.
- Clear error handling for invalid identifiers.
- Support for checksums and pre-validations.
- Extensibility
- Support for future chain types and formats.
- Flexible implementation details.
- Integration Support
- Alignment with existing standards like DIDs and CAIP-10.
- Resolution path using on-chain config registries.
- Human readability as primary concern.
- Enforcing specific name resolution services.
- Standardizing chain identifiers (covered by other standards).
- Name Resolution
- Deterministic resolution to cross-chain addresses.
- Support for hierarchical naming patterns.
- Clear chain identification within names.
- User Interface
- Human-readable format.
- Reasonable length for manual validation.
- Clear syntax for separating name and chain components.
- Wallet Implementation Requirements
- Trusted verification method (e.g. on-chain registry).
- Safe handling of malformed or invalid names.
- Integration Support
- Compatibility with name service resolution such as ENS.
- Alignment with identity standards like DIDs.
- Error Prevention
- Support for checksums at the name level.
- Reliance path in on-chain config registries.
- Enforcing specific name resolution services.
[To be added]
[To be added]