Soulbound Token (SBT) Development Turnkey

Imagine: a user passes KYC on a DeFi platform, receives an NFT certificate, and then sells it. Verification becomes meaningless — the platform cannot trust credentials that are freely transferred. Soulbound tokens (SBTs) solve this by permanently binding reputation, achievements, or legal status to

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1441
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    998
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1267
  • image_logo-advance_0.webp
    B2B Advance company logo design
    713
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1003

Imagine: a user passes KYC on a DeFi platform, receives an NFT certificate, and then sells it. Verification becomes meaningless — the platform cannot trust credentials that are freely transferred. Soulbound tokens (SBTs) solve this by permanently binding reputation, achievements, or legal status to a single address. No one can transfer or sell them — only the owner and issuer have control. With extensive soulbound token development experience, we ensure robust ERC-5192 contracts.

The typical approach is to take ERC-721 and block transfers. But that's a naive implementation. In practice, support for revocation, private proofs via ZK-SBT, and integration with oracles for status verification are required. Architecture errors lead to vulnerabilities: tokens become permanently stuck in the contract or owner data leaks. We solve these problems at the design stage using formal contract verification.

How to Implement SBT Revocation Without Compromising Reputation?

Revocation is a critical feature for verifications with expiring periods (e.g., KYC). Implementation requires several steps:

  1. Define the issuer role and add an onlyIssuer modifier.
  2. Create mapping(uint256 => bool) public revoked;
  3. Implement a revoke function with permission checks.
  4. Add an isValid function that checks existence, revoked flag, and expiration.
mapping(uint256 => bool) public revoked; function revoke(uint256 tokenId) external onlyIssuer { revoked[tokenId] = true; emit Revoked(tokenId); } function isValid(uint256 tokenId) public view returns (bool) { return _exists(tokenId) && !revoked[tokenId] && !_isExpired(tokenId); } 

Important: revocation does not destroy the token, only makes it invalid. This preserves history for audit purposes.

Why ERC-5192 is the Basic Standard for Soulbound?

ERC-5192 (Minimal Soulbound NFT) is a finalized EIP defining the Locked event and locked() function. It is compatible with OpenZeppelin and easy to integrate. ERC-5192 reduces audit time by 2x compared to custom contracts, as common access errors are already closed. Here is an example contract:

import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; interface IERC5192 { event Locked(uint256 tokenId); event Unlocked(uint256 tokenId); function locked(uint256 tokenId) external view returns (bool); } contract SoulboundToken is ERC721, IERC5192 { mapping(uint256 => bool) private _locked; function locked(uint256 tokenId) external view override returns (bool) { return _locked[tokenId]; } function _beforeTokenTransfer( address from, address to, uint256 tokenId, uint256 batchSize ) internal override { require( from == address(0) || to == address(0), "SBT: Token is non-transferable" ); super._beforeTokenTransfer(from, to, tokenId, batchSize); } function mint(address to, uint256 tokenId) external onlyOwner { _locked[tokenId] = true; _mint(to, tokenId); emit Locked(tokenId); } } 

Compared to a custom implementation, ERC-5192 provides a standardized interface that simplifies integration with wallets and marketplaces. Development following the standard passes audits with fewer vulnerabilities — common access errors are already closed.

Comparison of ERC-5192 and Custom ERC-721

Parameter ERC-5192 Custom ERC-721 with Locking
Compatibility High (OpenZeppelin, wallets) Only your contract
Development time 1-2 days 3-5 days
Audit pass Faster, fewer vulnerabilities Requires additional checks

What's Included in Turnkey SBT Development?

Component Description Time (days)
Requirements analysis Defining metadata, emission rights, revocation logic 1-2
Smart contract Implementation of ERC-5192 or custom with ZK-proofs 3-5
Security audit Check for reentrancy, access control, gas optimization 2-3
Integration Connecting frontend (wagmi, RainbowKit) and oracles 2-4
Testnet Deploy to Goerli/Sepolia, write tests (Foundry) 1-2
Documentation API, minting and revocation instructions 1

We prepare smart contract documentation and provide access to a private repository with tests. Basic SBT contract from $5,000; full turnkey from $15,000.

What Metadata to Store in SBT?

Typical fields: issuer (issuer address), date (issue date), expiry (expiration date), proof (verification link). For educational certificates — courseName, grade. For KYC — verification level. All data is stored in tokenURI in JSON format, accessible only to the owner.

Example SBT Metadata
{ "issuer": "0x...", "date": "2023-10-01", "expiry": "2024-10-01", "type": "KYC", "level": "advanced" } 

ZK-SBT: Privacy on Top of Soulbound

Public SBTs reveal all owner credentials. For confidentiality, we use zero-knowledge proofs. The owner proves possession of an SBT of a certain type without revealing the address or other tokens. Implementations: Sismo Protocol, Polygon ID. Using ZK-SBT reduces the risk of data leakage by 10 times compared to the public model.

Claim: "I have a KYC verification SBT from Persona" ZK Proof: proves the fact without revealing the address or other SBTs 

Use Cases

  • Educational certificates: issuer, date, course name, grade.
  • DAO participation: proof of participation with dao_address, proposal_id, vote.
  • KYC/AML verified: issuer (Persona, Jumio), expiry, level.
  • Achievements: first 1000 users, liquidity provider > 1 year.
  • POAPs — events and conferences (technically transferable, but spirit soulbound).

The concept of soulbound tokens was proposed by Vitalik Buterin, Glen Weyl, and Puja Olhaver in the paper Decentralized Society.

We have been working with Web3 projects for over 5 years, having implemented more than 20 smart contracts for DeFi, NFT, and SBT. Each contract passes formal verification (Slither, Mythril) and audit for reentrancy, MEV-resistance. We provide a security guarantee for 6 months after the audit.

Contact us — we will assess your project in 1 day and propose an architecture with gas optimizations and future-proofing. Development of a basic SBT contract takes 1 to 2 days; with privacy and revocation — 1-2 weeks. Order SBT solution development today to gain a competitive advantage.