Uses for Soulbound NFTs

Uses for Soulbound NFTS

In a previous post, I talked about how the BrightID API will split into BrightID (with blind signatures) and BrightID Soulbound.

Here, I’ll talk more about some uses for BrightID Soulbound NFTs (view on Github).

As a refresher, Soulbound NFTs are issued to a person into a blockchain address and stay with the recipient even if the address changes. This is achieved by a rescue operation which allows a recipient to move the NFT to a different address even if they no longer control the previous address. This prevents Soulbound NFTs from having resale value and also prevents $5 wrench attacks.

Soulbound NFTs could represent

  • Achievements
  • Attendance
  • Membership
  • Good behavior
  • Digital objects that stay with one owner

They can optionally be revocable by the issuer.

Tracking NFTs

Like all NFTs, each Soulbound NFT is unique. Even though a “Gitcoin good citizen” badge might render the same as any other on Opensea, each one has a unique tokenId that can be used by an app (the issuer) to keep track of which NFTs it has issued to a user. The app can revoke or upgrade an NFT based on its tokenId.

Verifications and achievements

Soulbound NFTs become especially interesting when an app uses a Soulbound NFT issued by another app. For example, RabbitHole might decide to consider a “Gitcoin good citizen” badge as part of a verification or in a quest.

For this to work, the consuming app needs a way to ensure that a receiver can’t multiply the benefits of an NFT by “rescuing” it to multiple accounts and registering for the benefit multiple times. There are two ways to approach this:

  1. Use a snapshot of addresses holding NFTs at a certain block height.
  2. Track which NFTs have already been seen–using their tokenId. [1]

The implementation of this is left to the app consuming the NFT.

In the BrightID mobile app

The BrightID mobile app can be aware of certain NFTs[2] and display them as custom achievements and verifications.

BrightID can have its own context[3] for achievements. Think of a BrightID Soulbound NFT companion animal: each person gets one for life, and it gains features or items as its owner completes achievements.

A BrightID user could share their NFT collection with their connections as part of their profile which is shared peer-to-peer when a connection is made.[4]

End notes

[1] 1PP (one-per-person) Soulbound NFT contracts contain a mapping of address to tokenId.
[2] The BrightID mobile app can keep track of which addresses a user linked to a Soulbound app. The mobile app can find and render any NFTs stored in these addresses.
[3] A BrightID Soulbound app registers a context with one or more BrightID nodes. These nodes are responsible for maintaining a history of addresses which held a BrightID user’s NFTs for the app.
[4] One way to allow users to prove ownership of their NFTs is to have BrightID nodes serving the context to create a new verification for holders of the NFT that can be displayed in the /users endpoint.