Sitemap

About Soulbound Tokens

4 min readJul 26, 2023

Hi everyone I am Dipak Sharma computer science student and blockchain enthusiast. This is my second article on blockchain topics, let me know if I made any mistakes and really tankful to your feedbacks. Without delay let’s start learning about soulbound token.

Press enter or click to view image in full size

What are Soulbound Tokens ?

Soulbound Tokens, also know as SBTs are unique, non-transferable and non-financialized tokens in the web3 ecosystem that represent an individual’s online identity, commitments and affiliations.

Just like a resume or medical records in the non-web3 world, SBTs are used to showcase a person’s credentials and affiliations on the decentralized web3 networks. These tokens can not be sold or trade and serve as a permanent record of a person’s digital identity.

Soulbound tokens are same as Non-Fungible Tokens(NFT), while NFTs are all about what you own and what you can show off, Soulbound Tokens are all about who you are. SBTs are all about you being in control of your own identity and reputation.

How do they Work ?

The inner workings of SBTs have yet to be formally specified, but their functioning can be understood through the whitepaper by Vitalik Buterin. Since soulbound tokens are unique and can not be transferred between individuals, they have been initially used for identity and participation. One such use case is web3 ecosystem using a decentralized autonomous organization’s(DAO) voting system. Using SBTs to establish one-token-one-vote strategy, means that these protocols can allow individuals with smaller holdings to have equal to say.

Press enter or click to view image in full size

Benefits of Soulbound Tokens

let’s explore some of the benefits of Soulbound Token

  1. Reduce dependence on centralized services: Soulbound Tokens can empower individuals and organizations to take control of their online identity and reputation. With SBTs, there’s no need to relay on centralized service that could potentially be compromised, censored or hacked. By decentralizing this important aspect of our online lives, Soulbound Tokens offer anew level of security and privacy.
  2. Authenticity : SBTs allow for verifiable and tamper-proof records of information, such as credentials and achievement. This can help to eliminate the need for trust in central authorities and reduce fraud. Plus, with decentralized authentication, individuals and organizations will be able to access and share their records instantly and without barriers.
  3. Enhanced Trust : The decentralized nature of Soulbound Tokens allows individuals and organizations to interact and transact with one another without having worry about trust.
  4. Improved Accountability and Transparency: The public and immutable nature of SBTs allows for increased accountability and transparency in online transaction and interactions. this can have a positive impact on the reputation and image of individuals, organizations and companies alike, helping to build trust and credibility with stakeholders.
  5. Personalized Identity management: Soulbound Tokens can provide individuals with a new level of control over their online identity and reputation. By allowing for the creation of multiple souls, individuals can have distinct digital identities for different aspect of their lives such as their personal life, professional life and health profile.

Use cases of Soulbound Tokens

When it comes to the practical application of SBTs, the possibilities are endless. let’s dive into few use cases of Soulbound Tokens in the world of web3.

  • Verifying Exclusive Membership
  • Decentralized Loans and Digital Country Clubs
  • Storing Verifiable Credentials in web3
  • Proof of Skills

Lets try our own Soulbound Tokens :

Here is the example of your own Soulbound Token and lets deploy it to sepolia testnet.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract SoulBoundToken is ERC721, Ownable {
using Counters for Counters.Counter;

Counters.Counter private _tokenIdCounter;

constructor() ERC721("SoulboundToken", "SBT") {}

function safeMint(address to) public onlyOwner {
uint256 tokenId = _tokenIdCounter.current();
_tokenIdCounter.increment();
_safeMint(to, tokenId);
}

function burn(uint256 tokenId) external {
require(ownerOf(tokenId) == msg.sender, "Only the owner of the token can burn it.");
_burn(tokenId);
}

function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual override {
super._beforeTokenTransfer(from, to, firstTokenId, batchSize);

require(from == address(0) || to == address(0), "This a Soulbound token. It cannot be transferred. It can only be burned by the token owner.");
}

function _burn(uint256 tokenId) internal override(ERC721) {
super._burn(tokenId);
}
}

To see this code in action, perform following steps:

  1. Go to Remix IDE
  2. Create file named as SoulboundToken.sol and paste above code and save it.
  3. compile that code and deploy code by changing environment to Injected Provider — Metamask to sepolia testnet.
  4. Interact with your newly deployed smart contract.

Thank you so much if you been through this article and we will meet in next web3 related article.

--

--

No responses yet