What Are Soulbound Tokens?
Soulbound tokens (SBTs) are non-transferable NFTs permanently bound to a single wallet address. First proposed by Vitalik Buterin in his 2022 paper Decentralized Society: Finding Web3's Soul, SBTs represent credentials, affiliations, and attestations that should never change hands. Unlike traditional NFTs that derive value from scarcity and tradability, soulbound tokens derive value from their inseparability from a specific identity.
Consider a university diploma. Its value lies in the fact that you earned it. If you could sell it on OpenSea, the credential would become meaningless. The same logic applies to professional certifications, KYC attestations, credit scores, medical records, and employment history. These are credentials that describe who you are, not what you own. SBTs formalize this distinction on-chain.
Transferable identity tokens create a secondary market for forged credentials. If a KYC-verified SBT can be sold, bad actors purchase verified wallets instead of undergoing verification themselves. Non-transferability eliminates this attack surface entirely.
The Identity Crisis in Web3
Blockchain identity today is fundamentally broken. Wallets are pseudonymous by design, which is excellent for financial privacy but catastrophic for compliance, governance, and reputation. DeFi protocols have no native way to distinguish a first-time borrower from a serial defaulter. DAOs cannot verify that one person holds one vote. Regulated institutions cannot onboard blockchain-native users without resorting to centralized KYC databases that defeat the purpose of decentralization.
SBTs solve this by creating a composable identity layer that sits on top of existing wallet infrastructure. A single wallet can accumulate multiple SBTs from different issuers — a KYC attestation from a regulated entity, a credit score from an on-chain lending protocol, a professional credential from an accredited institution — forming a holistic, verifiable identity without centralizing the data in any single registry.
Implementation Architecture
At the smart contract level, an SBT is an ERC-721 token with the transferFrom and safeTransferFrom functions disabled. The issuer mints the token to the holder's address after successful verification, and only the issuer (or the holder, for privacy revocation) can burn it.
// Minimal Soulbound Token (ERC-721 based)
contract SoulboundToken is ERC721 {
address public issuer;
constructor() ERC721("KYC-SBT", "KSBT") {
issuer = msg.sender;
}
function issue(address to, uint256 tokenId) external {
require(msg.sender == issuer, "Only issuer");
_mint(to, tokenId);
}
function revoke(uint256 tokenId) external {
require(
msg.sender == issuer || msg.sender == ownerOf(tokenId),
"Not authorized"
);
_burn(tokenId);
}
// Block all transfers
function _beforeTokenTransfer(
address from, address to, uint256, uint256
) internal pure override {
require(
from == address(0) || to == address(0),
"Soulbound: non-transferable"
);
}
}
The _beforeTokenTransfer hook is the critical enforcement mechanism. It permits minting (from the zero address) and burning (to the zero address) but blocks every other transfer. This is a contract-level guarantee, not a UI restriction — no front-end manipulation can circumvent it.
Credential Schema Design
The token metadata should follow the W3C Verifiable Credentials data model, embedded in the token URI as a signed JSON-LD document. A well-structured SBT credential includes the issuer DID, the subject DID (wallet address), the credential type, issuance and expiry timestamps, and a cryptographic proof.
| Field | Purpose | Example |
|---|---|---|
issuer | DID of the credential authority | did:ethr:0xABC...123 |
credentialSubject | Wallet + claim type | { "kycLevel": "enhanced" } |
issuanceDate | When the credential was granted | 2026-02-24T00:00:00Z |
expirationDate | Revocation deadline | 2027-02-24T00:00:00Z |
proof | Cryptographic signature over the claim | Dilithium / Ed25519 sig |
The Privacy Problem — and How FHE Solves It
Naive SBT implementations have a devastating flaw: on-chain credentials are publicly visible. If your wallet holds an SBT attesting to a specific medical condition, credit score, or criminal background check, anyone querying the blockchain can see it. This is not just a privacy nuisance — it violates GDPR, HIPAA, and virtually every data protection regime on the planet.
The solution is to encrypt the credential payload using Fully Homomorphic Encryption (FHE). With BFV-based FHE, the SBT metadata is encrypted at issuance and remains encrypted on-chain. Verifiers can check properties of the credential — "is this person KYC-verified?" or "is their credit score above 700?" — without ever decrypting the underlying data. The computation happens directly on the ciphertext — learn more about computing on encrypted data.
H33's BFV FHE engine processes encrypted credential verification at 2.17M authentications per second on Graviton4 hardware — approximately ~42µs per authentication. ZKP proof lookups via in-process DashMap complete in 0.085µs, and each batch attestation is signed and verified with a single Dilithium operation in ~244µs. The entire pipeline is post-quantum secure.
Revocation and Lifecycle Management
Unlike traditional credentials that rely on Certificate Revocation Lists (CRLs) or OCSP responders, SBT revocation is atomic and on-chain. The issuer calls revoke(tokenId), the token is burned, and every smart contract that checks balanceOf(holder) instantly sees the credential is gone. No propagation delays. No caching inconsistencies. No revocation checking infrastructure to maintain.
- Expiry-based revocation: The SBT metadata includes an expiration timestamp. Verifier contracts check the current block timestamp against the expiry before accepting the credential.
- Issuer-initiated revocation: If the underlying verification becomes invalid (e.g., a compliance violation), the issuer burns the token directly.
- Holder-initiated revocation: Under GDPR's right to erasure, the holder can burn their own SBT at any time, removing the credential from their on-chain identity.
- Conditional renewal: Expired SBTs are not automatically renewed. The holder must re-verify, and the issuer mints a new token with a fresh
tokenIdand updated metadata.
Enterprise Deployment Patterns
For regulated enterprises, the SBT issuance flow integrates with existing KYC/AML pipelines. The user completes identity verification through the institution's standard process. Upon approval, the backend calls the SBT contract's issue() function, minting a credential to the user's wallet. The credential payload — encrypted with BFV FHE — contains only the attestation result (pass/fail, tier level, expiry), never the raw identity documents.
Cross-Chain Portability
A KYC attestation earned on Ethereum should be verifiable on Polygon, Arbitrum, or Solana without requiring the user to re-verify on each chain. Cross-chain SBT bridges use zero-knowledge proofs to attest that a valid SBT exists on the source chain without revealing which specific token or wallet holds it. The verifier on the destination chain validates the ZKP and grants equivalent access. H33's ZKP infrastructure processes these proof lookups in 0.085µs via in-process DashMap, making cross-chain verification effectively instantaneous from the user's perspective.
Identity should be portable, private, and provable. Soulbound tokens give us the "provable" part. Fully homomorphic encryption gives us the "private" part. Zero-knowledge proofs give us the "portable" part. The convergence of all three is what makes decentralized identity actually viable at enterprise scale.
Security Considerations
SBTs introduce a unique threat model. Because the token cannot be transferred, wallet compromise is more damaging than with normal NFTs — the attacker gains not just assets but identity. Social recovery mechanisms, multi-sig issuance, and hardware wallet requirements become critical. Additionally, the issuer's private key is a high-value target: compromise allows minting fraudulent credentials at scale. Dilithium-based signing (ML-DSA) provides post-quantum protection for issuer operations, ensuring that the credential authority's key material remains secure against both classical and quantum adversaries.
The combination of soulbound token architecture with FHE-encrypted payloads, ZKP-based verification, and post-quantum signatures represents the most complete approach to decentralized identity available today. Credentials are non-transferable, private by default, verifiable without decryption, and resistant to quantum-era cryptanalysis. That is the standard enterprises should demand.
Ready to Go Quantum-Secure?
Start protecting your users with post-quantum authentication today. 1,000 free auths, no credit card required.
Get Free API Key →