A lot is going on at the moment in the Ethereum dev community with Soulbound Tokens: https://ethereum-magicians.org/t/eip-5114-soulbound-badges/9417

What would be the best approach for implementing non-transferable tokens in Cardano?

A soulbound token is a token that is bound to a wallet when it is minted, and cannot be transferred/moved after that. In Cardano, I understand this means it should be locked to a specific UTxO that has to be part of the wallet.

Is it possible to implement this in Cardano without the need of smart contracts?

  • Def: "Soulbound tokens (SBT) are non-transferable, publicly-verifiable digital tokens that can act as a type of CV for web3 users, showing an individual’s memberships, credentials, and affiliations." This is a pretty good write up on SBTs: axi.com/au/blog/education/blockchain/soulbound-tokens Aug 3, 2022 at 1:36
  • 1
    Just thinking out loud here, this would probably be best implemented at the protocol level eg an extra flag to indicate if an asset/NFT is transferable or not. Plus methods to query/verify and burn. So a CIP would be needed to get some consideration and deep discussion cips.cardano.org - mind you Atala Prism and Digital IDs might offer the same functionality. Aug 3, 2022 at 2:03
  • Thanks for your comment, mate. Yes, I'm thinking of proposing a CIP myself, that's why I'm trying to get some ideas from the community first, on how this can be addressed. Aug 3, 2022 at 3:40
  • 1
    Atala Prism looks to address this use case: "Atala PRISM is a self-sovereign identity (SSI) platform and service suite for verifiable data and digital identity. Built on Cardano, it offers core infrastructure for issuing DIDs (Decentralized identifiers) and verifiable credentials, alongside tools and frameworks to help expand your ecosystem." atalaprism.io - They also have a useful services walk through showing the different interactions atalaprism.io/app/credentials Aug 3, 2022 at 5:03
  • 1
    Even though Prism exists, having competition/alternative services is always better for the eco-system, and having core services at the protocol level offers more certainty and robustness. Good luck with the CIP. Aug 3, 2022 at 5:16

1 Answer 1


Any native asset on cardano can be transferred according to the ledger rules.

To make something non-transferrable you would need to make it unspendable.

  • For "pay to pubkey" outputs, this would mean to throw away the key - I don't think this is what you want in this case.
  • The only alternative "pay to script" outputs are governed by the script (currently either a simple or plutus script). Making these unspendable is easy, think const False for plutus.

As you ask "without the need for smart contracts" I would say: No, scripts will be required to implement something like this.

But isn't Ethereum using smart contracts for this as well?

If scripts are okay, one could draft up a specification what an SBT is. For example (based on my limited familiarity with SBTs) something like:

  • A cardano native token / asset with quantity 1, which
  • was minted by a policy that ensures single mint & pay to some public key (two parameters: TxOutRef and PubKeyHash) creating an output, that
  • is governed by an unspendable script (identified by script hash), which
  • also contains a datum (inline or hash) pointing to the owner (PubKeyHash above).

Note that "from the outside" this would not be resolvable who some SBT belongs to, you would need the parameters of the minting script and anything needed for the datum pre-image to verify. For example the "seed" TxOutRef and the PubKeyHash of the "soul"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.