Skip to content

Identifiying currencies only via its symbol insufficient #9

Open
@nud3l

Description

@nud3l

Problem

Currencies typically have a symbol making it easy to identify the currency (e.g., USD, DAI, DOT). However, in a multi-chain system, a currency can exist on different chains like USDT on Ethereum and Bitcoin. Moreover, the same currency can also exist between testnet and mainnet applications.

The symbol alone is usually not sufficient to uniquely identify a currency. In practice, applications have different strategies to account for currencies with the same symbol deployed on multiple chains:

  • Using the chain id: On Ethereum, the chain id is used to differntiate between currencies on mainnet and testnet(s), e.g., for Ether but also for ERC20 contracts deployed to the same address across multiple networks. Similarly, on Polkadot different parachain and relay chain IDs are used to differentiate currencies on different chains.
  • Using the contract address: On Ethereum, the symbol deployed to different addresses is treated differently, i.e., the currencies are typically not fungible with each other.

Proposed Solution

As a result, we should include an origin that defines where the asset is created. The origin should include:

  • An ecosystem name to differentiate between different ecosystems like Ethereum, Bitcoin, Polkadot, Cosmos
  • A chain id as adopted by Bitcoin, Ethereum, Cosmos, Polkadot, etc.
  • An optional address in case it's an asset deployed on top of a certain chain.

Further Reading

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions