Skip to content

Add ERC: Readable Interoperable Addresses using ENS#735

Merged
eip-review-bot merged 79 commits intoethereum:masterfrom
jrudolf:master
Jul 10, 2025
Merged

Add ERC: Readable Interoperable Addresses using ENS#735
eip-review-bot merged 79 commits intoethereum:masterfrom
jrudolf:master

Conversation

@jrudolf
Copy link
Copy Markdown
Contributor

@jrudolf jrudolf commented Nov 27, 2024

No description provided.

@eip-review-bot
Copy link
Copy Markdown
Collaborator

eip-review-bot commented Nov 27, 2024

✅ All reviewers have approved.

@eip-review-bot eip-review-bot changed the title Add ERC: chain-specific addresses using ENS Add ERC: Chain-specific addresses using ENS Nov 27, 2024
@eip-review-bot eip-review-bot enabled auto-merge (squash) November 27, 2024 10:45
eip-review-bot
eip-review-bot previously approved these changes Nov 27, 2024
Copy link
Copy Markdown
Collaborator

@eip-review-bot eip-review-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All Reviewers Have Approved; Performing Automatic Merge...

@github-actions github-actions bot added the w-ci label Nov 27, 2024

The resolution of a `address@chain` on the contrary, imposes that the left-hand resolves to an address and the right-hand to a chain identifier.

When given a `user@rollup.eth`, the wallet can resolve `rollup.eth` to get a chain identifier and `user.rollup.eth` to get an address. In any other case it fails.
Copy link
Copy Markdown

@niran niran Nov 27, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't require a new syntax: When the wallet is resolving user.rollup.eth, the standard resolution process should be resolve to resolve the way you described: resolve rollup.eth to get a chain identifier and user.rollup.eth to get an address.

This approach also allows user.rollup.eth to override this behavior by setting a record for their own preferred chain identifier to use when their ENS name is resolved. *.rollup.eth names will likely never override this, but I'd expect almost every user.eth to want to receive funds on some chain that isn't L1.

```
### Note: default fallbacks

If a user receives a legacy address without chain name, the wallet can:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think any of these fallbacks should be our target behavior. Users should be able to control on which chain assets sent to their ENS name arrive. I think ENS experts should lead the way on this resolution process via an ENSIP.

account ::= <user>@<chain>
```

Note the difference between `ens-name`, which is a full ENS name, and `ens-subdomain` that is just a segment of a name between dots. E.g. `user.app.eth` is a name, `user` and `app` are subdomains.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the below examples, isn't the user also just <address> | <ens-name>?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the examples below it's indeed an but if I understand correctly it could also use an ens-subdomain such as user@arbitrum.eth which might mean something different from user.eth@arbitrum.eth.

The former would resolve user locally on arbitrum, and the latter (being a fully-qualified name) would resolve user.eth on L1. Is that not the intention?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This actually opens up a very big issue that I believe it’s not discussed here: in theory, user should beuser across the whole Ethereum ecosystem at least, but in fact there are many Domain Name Services beyond ENS that are local to some L2s or even just one.

For example, I have jaack.eth, and also registered jaack.avax on Avalanche C-Chain and jaack.blast on Blast.

First, I believe we should consider ENS as the ‘main router’ for DNS resolutions, because it’s stated as a requirement in the ERC. Since this is the case, then resolution should be global across Ethereum, including rollups. So user needs to be `user.eth on any chain, especially considering that this ERC would likely be implemented around the time that Namechain will be at least on testnet, so the ENS registry is itself on a ‘service’ L2.

@yoavw the case where an address is local only to its chain is the one where most addresses owned by users are smart wallets / accounts that are not the same across chains (unlike EOAs, that have the same pubkey / privkey across any EVM).

jrudolf and others added 2 commits December 2, 2024 12:48
Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
auto-merge was automatically disabled December 2, 2024 17:50

Head branch was pushed to by a user without write access

@github-actions github-actions bot removed the w-ci label Dec 2, 2024
@github-actions github-actions bot removed the w-ci label Jul 9, 2025
@github-actions github-actions bot added the w-ci label Jul 9, 2025
@github-actions github-actions bot added w-ci and removed w-ci labels Jul 9, 2025
ERCS/erc-7828.md Outdated
[ERC-7930]: ./eip-7930.md
[ERC-7785]: ./eip-7785.md
[ERC-2304]: ./eip-2304.md
[SLIP44]: https://github.com/satoshilabs/slips/blob/master/slip-0044.md
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SLIPs aren't am approved external resource. You'll need to do one of:

  • remove the reference
  • duplicate the information here or in assets/
  • follow EIP-5757 to get SLIPs allowed

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

solved c33c60f

@github-actions github-actions bot added w-ci and removed w-ci labels Jul 9, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jul 9, 2025

The commit 1919480 (as a parent of c9254c1) contains errors.
Please inspect the Run Summary for details.

@github-actions github-actions bot removed the w-ci label Jul 10, 2025
@eip-review-bot eip-review-bot enabled auto-merge (squash) July 10, 2025 07:44
Copy link
Copy Markdown
Collaborator

@eip-review-bot eip-review-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All Reviewers Have Approved; Performing Automatic Merge...

@eip-review-bot eip-review-bot merged commit 5fd368b into ethereum:master Jul 10, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.