# Chain-Specific Addresses
## Possible use-cases for discussion (throw any ideas here)
1. Alice wants to publicly post where she wants to get paid (e.g. alice.eth@optimism is in her twitter bio)
## User Stories
1. Alice got an airdrop on Bob-Chain and wants to sell it for Dai on Optimism, where she is saving up. She puts those tokens in escrow and publishes a sell order payable for XX Dai sent to `alice@optimism` (exact format tbd)
2. Polymarket use-case (targeted, human-error-proof deposits)
* 
* https://x.com/VitalikButerin/status/1810633473750683974
## Goals
A.) Hard Requirements
1. 1:1 mapping of unique ENS names to unique chainIds (whatever the ENS namespace defined for chain info)
B.) Consensus Goal FOR FIRST EIP
1. Reduce "wrong-chain" fund loss
2. Reduce config burden for wallets
3. End-user can use a chain they've
4. Move L2s with canonical bridges to an on-chain registry
5. Human readability
C.) Goals for future EIPs or Non-Consensus Goals
1. Enable standard interface for cross-chain intents & solvers
2. Stop using ethereum-lists/chains altogether
3. [EIP-7683][]-conformant dapp API for payments?
## Candidate Solutions
* Use existing ENS for chains (e.g. optimism.chainbridge.eth) to claim names, with required record-types
* some kind of check at time of registration for liveness of network and uniques of chainId
* Existing ENS relying on CCIP
* has a latency issue motivating Linea and ZKSync's
* Vitalik: CCIP can function as a fallback, slow-lane lightclient of last resort; feels transitional for me, would like to see richer query systems for reading L2 state from L1 and vice versa
* Alim: https://ethereum-magicians.org/t/rip-7728-l1sload-precompile/20388
* Extend ENS to allow `chain.TBD` to be a new registry or name type (but with all the same possible record types), changes ENS mechanics
* Marco's solution is here, making `alice@` a parameter passed to `chain.TBD` registry with a mainnet fallback
* user.rollup.eth (status quo) still works, using L1 ENS registry
* user@rollup.eth for L2 registries that live on rollup
* open questions: how prevent spoofing, enforce unique chainIds, etc?
* Extend ENS to allow `@chain` modifier on `name.eth` records
* Extend ENS to allow `@chain` to be a distinct registry and novel TLD (e.g. `.chain`) on eth-main
* Sam's syntax based on `:`
* `(samwilsn.eth:optimism)`
`(samwilsn.eth:ethereum)`
`(D3BAf1080b1Cfb5897225a21EcdcC25a1F4456:ethereum)`
`(samwilsn.eth:ethereum:11155111)`
* See https://hackmd.io/@SamWilsn/BkchNZxhA
* Yoav: human-writable/editable is a major footgun- wallets could discourage this, and/or a chainid-including checksum
* chainId-aware checksum replacing EIP55 such as [EIP-1191] may mitigate human editing
* still reinforces
## References
[EIP-1191]: https://eips.ethereum.org/EIPS/eip-1191
[EIP-7683]: https://eip.tools/eip/7683