Idea: Decentralised registry for verified token addresses

Problem to solve:

  • Multiple smart contracts deployed on RSK blockchain can have the same nam,e and same symbol.
  • In a case where this happens with tokens, how can the end user “know” which address is the “real” one?

Existing solutions:

  • Official websites by the organisation that created the token publish the smart contract address.
  • Block explorers place a “verified” indicator next to the smart contract address

The issue with existing solutions is that they rely on users of the token needing to trust some form of centralised publishing.

Proposed solution:
How to do this in a decentralised manner, using RNS:


  1. IOV purchases tokens.rsk on RNS
  2. IOV adds a 1st level RNS subdomain per organisation,
    and 2nd level RNS subdomain per token.
  3. Subsequently set the address for each 2nd level subdomain
    to the smart contract address for each verified token.
    For example: rif.iov.tokens.rsk for RIF,
    and doc.moc.tokens.rsk for DOC.
  4. IOV can manage all subdomains at first,
    with the view to eventually transfer the 1st level RNS subdomains
    to organisations that have their tokens deployed on RSK.
    For example, transfer control of moc.tokens.rsk to money on chain,
    and then subsequently money on chain controls doc.moc.tokens.rsk.
  5. Public communication that tokens.rsk can be used to verify token addresses.
    • Perhaps publish a simple DApp that allows one to
      select token name from dropdown menus,
      and simply uses read-only functions on rns.js.
      Users won’t even need Metamask or other extensions for this.
    • Or possibly integrate this right into RSK block explorer.

RNS seems like a natural fit for this, since it is a decentralised registry,
and it’s primary objective is mapping human readable names to data,
such as smart contract addresses.