fip | title | status | type | author | created | updated |
---|---|---|---|---|---|---|
15 |
Chain and token code standard |
Final |
Standard |
Pawel Mastalerz <[email protected]> |
2020-09-10 |
2021-11-10 |
Standard for blockchain and token codes as well as multi-level addressing parameters.
Given the decentralized nature of blockchains, there is no standard on what code represents what blockchain or token on that blockchain. This leads to confusion which can also lead to permanent loss of funds:
- Some tokens, with the same code, exist on multiple blockchains (e.g. USDT).
- Some crypto projects share the same token code, often on the same blockchain.
- Some exchanges assign different token codes to the same token (e.g. Kraken used to refer to BTC as XBT).
- Scammers assign legitimate token codes to smart contracts intended to defraud unsuspecting users.
In addition, certain blockchains, or accounts on those blockchains, require the use of Multi-level Addressing, when, in addition to public address, additional piece of information is required to properly route a transaction. The following are examples:
- Destination Tags on Ripple
- Memos on Stellar
- Payment ID on Monero
There is not a clear standard on how to properly communicate these additional properties.
Foundation for Interwallet Operability's (FIO) charter is to make crypto easier and this FIP proposes a standard for blockchain and token codes as well as multi-level addressing parameters. With this standard every blockchain and token is identified by a unique 10 alpha-numeric code. Every token transfer would then require a blockchain code and a token code to properly identify the destination. This ensures that a token is not sent on the wrong chain, something that happens all too often. For example:
- A Tether USD-backed stable token on Ethereum would be identified as:
- chain_code: ETH
- token_code: USDT
- A Tether USD-backed stable token on Omni would be identified as:
- chain_code: OMNI
- token_code: USDT
Foundation for Interwallet Operability has complied an initial list of over 6,000 chain and token codes. The initial list combined variety of sources including CoinMarketCap, CoinGecko, SLIP-44, and codes used by some wallets and exchanges which have implemented the FIO Protocol.
All crypto industry participants are encouraged to update this list via pull request, even if not integrating FIO Protocol.
FIO Protocol has adopted the above standard and recommends to all wallet and exchanges integrating FIO to adopt it for FIO Protocol methods, such as mapping of FIO Addresses to token public addresses or fetching them on send.
In addition, FIO Protocol supports the use of Multi-level Addressing which allows for specification of additional attributes which may be required for send, such as memo or destination tags.