Skip to content

Add ENSIP: Interoperable Address Profile - #68

Open
nxt3d wants to merge 4 commits into
ensdomains:masterfrom
nxt3d:ia-address-profile
Open

nxt3d wants to merge 4 commits into
ensdomains:masterfrom
nxt3d:ia-address-profile

Conversation

@nxt3d

@nxt3d nxt3d commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR adds a new ENSIP draft: Interoperable Address Profile (ia-addr-profile.md).

What it does

Extends the addr() resolver profile to use ERC-7930 Interoperable Addresses (chain-identifier) instead of uint256 coinType (ENSIP-9, ENSIP-11) when specifying the target chain for address resolution.

New profile

  • addr(bytes32 node, bytes chainIdentifier) -> bytes — resolves an ENS name to address bytes for a chain identified by an ERC-7930 chain-identifier (Interoperable Address with zero-length target).

Rationale

There has been no widely accepted standard for a globally unique binary address format for chain identification. ENS coinTypes filled this role with an ENS-specific solution. ERC-7930 Interoperable Addresses provide an Ethereum-wide standard that is increasingly adopted. Using it for ENS resolution aligns ENS with the broader ecosystem.

Backwards compatibility

Additive only: existing addr(node) and addr(node, coinType) remain unchanged. Resolvers may opt in by supporting addr(node, chain-identifier).

Invocation

Works with both extended (ENSIP-10) and non-extended resolvers: direct addr() calls or via ENSIP-10 resolve().

nxt3d added 3 commits March 16, 2026 00:39
This ENSIP extends the addr() resolver profile to use Interoperable Addresses
(ERC-7930) instead of coinType (ENSIP-11) for chain selection.

- Defines addr(bytes32 node, bytes chain-identifier) -> bytes
- Chain-identifier is an ERC-7930 Interoperable Address with zero-length address
- Returned address bytes MUST be in CAIP-350 binary format
- Enables ENS compatibility with the wider ERC-7930 ecosystem

Made-with: Cursor
- Expand Motivation: no widely accepted chain ID standard; ENS coinTypes filled
  the gap; ERC-7930 provides Ethereum-wide standard
- Abstract: clarify extended vs non-extended resolver support
- Add ENSIP-10 links throughout
- Simplify invocation: direct addr() calls or ENSIP-10 resolve()
- Remove CCIP-Read, gateways from scope (addr-focused)

Made-with: Cursor
@nxt3d nxt3d changed the title Add ENSIP: Interoperable Address Profile (ia-addr-profile) Add ENSIP: Interoperable Address Profile Mar 16, 2026
- Add 'When invoked' section with resolver requirements
- Resolver MUST return empty bytes when no address stored (matches ENSIP-9)
- Security Considerations: reference ENSIP-1, ENSIP-9 for empty-return behavior

Made-with: Cursor
TMerlini pushed a commit to TMerlini/ensips that referenced this pull request Jul 11, 2026
Per the repo README, ENSIP numbers are assigned by a maintainer at merge. Rename
ensips/27.md -> ensips/agent-card-schema.md and move the heading to the ENSIP-X
placeholder (matching the Add-ENSIP convention, e.g. ensdomains#68) to clear the
self-numbered collision. Content unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant