66 lines
2.6 KiB
Markdown
66 lines
2.6 KiB
Markdown
|
---
|
||
|
eip: 3770
|
||
|
title: Chain-specific addresses
|
||
|
description: Prepending chain-specific addresses with a human-readable chain identifier
|
||
|
author: Lukas Schor (@lukasschor), Richard Meissner (@rmeissner), Pedro Gomes (@pedrouid), ligi <ligi@ligi.de>
|
||
|
discussions-to: https://ethereum-magicians.org/t/chain-specific-addresses/6449
|
||
|
status: Review
|
||
|
type: Standards Track
|
||
|
category: ERC
|
||
|
created: 2021-08-26
|
||
|
---
|
||
|
|
||
|
## Abstract
|
||
|
|
||
|
[ERC-3770](./eip-3770.md) introduces a new address standard to be adapted by wallets and dApps to display chain-specific addresses by using a human-reacable prefix.
|
||
|
|
||
|
## Motivation
|
||
|
|
||
|
The need for this proposal emerges from the increasing adoption of non-Ethereum Mainnet chains that use the Ethereum Virtual Machine (EVM). In this context, addresses become ambiguous, as the same address may refer to an EOA on chain X or a smart contract on chain Y. This will eventually lead to Ethereum users losing funds due to human error. For example, users sending funds to a smart contract wallet address which was not deployed on a particular chain.
|
||
|
|
||
|
Therefore we should prefix addresses with a unique identifier that signals to Dapps and wallets on what chain the target account is. In theory, this prefix could be a [EIP-155](./eip-155.md) chainID. However, these chain IDs are not meant to be displayed to users in dApps or wallets, and they were optimized for developer interoperability, rather than human readability.
|
||
|
|
||
|
## Specification
|
||
|
|
||
|
This proposal extends addresses with a human-readable blockchain short name.
|
||
|
|
||
|
### Syntax
|
||
|
|
||
|
A chain-specific address is prefixed with a chain shortName, separated with a colon sign (:).
|
||
|
|
||
|
Chain-specific address = "`shortName`" "`:`" "`address`"
|
||
|
|
||
|
- `shortName` = STRING
|
||
|
|
||
|
- `address` = STRING
|
||
|
|
||
|
### Semantics
|
||
|
|
||
|
```
|
||
|
|
||
|
`shortName` is mandatory and MUST be a valid chain short name from https://github.com/ethereum-lists/chains
|
||
|
|
||
|
`address` is mandatory and MUST be a [ERC-55](./eip-55.md) compatible hexadecimal address
|
||
|
|
||
|
```
|
||
|
|
||
|
### Examples
|
||
|
|
||
|
![Chain-specific addresses](../assets/eip-3770/examples.png "Examples of chain-specific addresses")
|
||
|
|
||
|
## Rationale
|
||
|
|
||
|
To solve the initial problem of user-facing addresses being ambiguous in a multichain context, we need to map EIP-155 chain IDs with a user-facing format of displaying chain identifiers.
|
||
|
|
||
|
## Backwards Compatibility
|
||
|
|
||
|
Ethereum addresses without the chain specifier will continue to require additional context to understand which chain the address refers to.
|
||
|
|
||
|
## Security Considerations
|
||
|
|
||
|
The Ethereum List curators must consider how similar looking chain short names can be used to confuse users.
|
||
|
|
||
|
## Copyright
|
||
|
|
||
|
Copyright and related rights waived via [CC0](../LICENSE.md).
|