Short Brief: SoulBound Tokens.

Graphicaldot (Saurav verma)
3 min readMay 20, 2022

--

https://www.ama.fans/graphicaldot/post/0xa499eddccee0754c5322561942c6f2d94770657ea7d3b6660185f436cf424892

Vitalik Buterin co-published a paper predicting Ethereum’s future.

NFT which are non-transferrable are called soulbound tokens (SBTs). Once you receive an SBT, you hold it in a Soul wallet forever. Only the issuer can burn the souldbound token.

Problem with Transferable NFT’s: If someone shows you that they have an NFT that is obtainable by doing X, you can’t tell whether they did X themselves or whether they just paid someone else to do X.

Use case 1: Universities could give SBT degrees to their graduates. If universities gave NFT degrees now, graduates could sell them to anyone online. But if a graduate receives an SBT degree, he would not be able to transfer or sell it.

Use case 2: A company is trying to hire people who went to Conference X. Because Conference X gave out SBT badges to its attendees, no one can buy a badge on an open market. The company could then filter candidates for verified attendees of Conference X.

Use case 3: A DAO wants to build a community of environmentalists. The DAO can airdrop SBTs to attendees of environmental conferences and graduates of environmental programs. Assumption: there are very bad things that can easily happen to governance mechanisms if governance power is easily transferable.

Use case 4: Property ownership, People renting the property should be given soulbond tokens.

My Take.

  1. The burn should happen only by DAO members or may by a Kleros court.
  2. Protocols should allow minting soulbound tokens based on the protocol used. Would be really beneficial for Defi Protocols or NFT projects.
  3. Soulbound tokens should be a starting point for identity (Identity as an NFT is a bad idea since the beginning) .

Non-transferability and privacy

What if the user wants to migrate all their assets from one wallet to another?

proof-of-humanity attestation: Theoretically, anyone can create a proof-of-humanity profile with a smart contract account that has transferable ownership, and then sell that account. But the proof-of-humanity protocol has a revocation feature that allows the original owner to make a video asking for a profile to be removed, and a Kleros court decides whether or not the video was from the same person as the original creator. Once the profile is successfully removed, they can re-apply to make a new profile. Hence, if you buy someone else’s proof-of-humanity profile, your possession can be very quickly taken away from you, making transfers of ownership non-viable. Proof-of-humanity profiles are de-facto soulbound, and infrastructure built on top of them could allow for on-chain items, in general, to be soulbound to particular humans.

The above method is really difficult to implement. The other simpler method suggested by Vitalik:

Fortunately, a few fairly simple technical options are possible:

  • Store the item at an address that is the hash of (i) an index, (ii) the recipient address, and (iii) a secret belonging to the recipient. You could reveal your secret to an interface that would then scan for all possible items that belong to your, but no one without your secret could see which items are yours.
  • Publish a hash of a bunch of items, and give each recipient their Merkle branch.
  • If a smart contract needs to check if you have an item of some type, you can provide a ZK-SNARK.

Transfers could be done on-chain; the simplest technique may just be a transaction that calls a factory contract to make the old item invalid and the new item valid, using a ZK-SNARK to prove that the operation is valid.

--

--

Graphicaldot (Saurav verma)

My mission is to protect your data and privacy on Web3. Work( @0xPolygon , privateInput=position) - Yes Work( @Biconomy , privateInput=position) - Yes