Listing custom assets and TCRing their verification


#1
  • As a user, I want to be able to add custom ERC20 tokens.
  • As a user, I want to be able to vote to remove some ERC20 tokens from the official list.
  • As a user, I want to be able to issue a call for verification of an ERC20 token’s contract.

Right now, Status self-imposes a huge barrier to entry for users who need custom tokens. Not even custom standards, but plain old ERC20. It is insane that things like TRX and “Zeus Shield Token” are in the list, but others arguably more popular ones are not or that there is no option to add your own - even if just for yourself, MyEtherWallet style.

I propose the following 10xUX upgrade.

Adding custom assets

  • Rename “Manage Assets” to “My Token List”. (Later on, a “My Contract List” and “My NFT List” list can be made) - it’s not “My TokenS”. “My NFTs” etc on purpose, as that implies ownership.
  • Let user add an ERC20 token under My Token List by providing a contract address (support ENS - very important!) and nothing else. Read the rest of the data from the contract.
  • This token should now appear in a user’s asset list.

Triggering a public adding process

Sometimes you want your token to become available to others. To trigger an add-to-app process, we need the following:

  • Status needs to read the public asset list from a smart contract, NOT from its codebase.
  • The adding cost is 10,000 SNT * (10 - X) where 1 <= X <= 10 and X is the user-defined duration of the voting period.
  • Voting is done with SNT holdings that are locked up for the duration of the poll once committed. If at the end of the voting period the YAY outweight the NAY by 60% (or something similarly democratic), the asset is registered to the public registry of status-available tokens and instantly available in Status.
  • 5000 SNT of registration fee are burned, 5000 are locked in the contract

The token’s reach is now expanded, the user-base is expanded, and the user is kept safe from risky things like having to re-import their Status wallet via BIP tools to get some stuck tokens out (happened to me).

Triggering a public removal process

It could happen that a token that’s no longer in use (like TRX) or a token that’s a malicious one or a fraud appears in the list through careful engineering of the fallible voting system. In that case, a user can be incentivized to clean up a list through reporting.

  • Reporting a token costs 10000 SNT, but only as a deposit, a stake.
  • The voting period is always 10 days
  • Votes are again cast with SNT, which is locked up once voted with
  • If at the end of the voting period the YAY outweigh the NAY by 100%, the originally locked up 5000 SNT are distributed like so: 2500 SNT to the reporter, the rest to the voters, distributed proportionally.

This incentivizes a clean list and voting on keeping it clean and up to date.


Later on the same process can be applied to NFTs and maybe even general contracts, though those require custom metadata and in extreme cases ABIs, so it’s best not to complicate things and solve the 80% problem first.


#2

Agreed it’s a huge pain point. — here’s an Issue about the first part with designs and such. (Adding a custom ERC20)