Розробка soulbound-токенів (SBT) під ключ

Розробка soulbound-токенів (SBT) під ключ Уявіть: користувач пройшов KYC на DeFi-платформі, отримав NFT-сертифікат, а потім продав його. Верифікація стає безглуздою — платформа не може довіряти credentials, які вільно переміщуються. Soulbound-токени (SBT) вирішують це завдання, назавжди прив'язую

Напрямки блокчейн-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1267
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1003

Розробка soulbound-токенів (SBT) під ключ

Уявіть: користувач пройшов KYC на DeFi-платформі, отримав NFT-сертифікат, а потім продав його. Верифікація стає безглуздою — платформа не може довіряти credentials, які вільно переміщуються. Soulbound-токени (SBT) вирішують це завдання, назавжди прив'язуючи репутацію, досягнення або юридичний статус до одного адреса. Ніхто не може їх передати або продати — тільки власник і емітент мають контроль.

Типовий підхід — взяти ERC-721 і заблокувати transfers. Але це наївна реалізація. На практиці потрібна підтримка revocation, приватні докази через ZK-SBT та інтеграція з ораклами для перевірки статусу. Помилки в архітектурі призводять до вразливостей: токени навічно застрягають у контракті або витікають дані власників. Ми вирішуємо ці завдання на етапі проектування, використовуючи формальну верифікацію контрактів.

Як реалізувати відкликання SBT без компрометації репутації?

Відкликання (revocation) — критична функція для верифікацій з терміном дії (наприклад, KYC). Для реалізації потрібно кілька кроків:

  1. Визначте роль емітента та додайте модифікатор onlyIssuer.
  2. Створіть mapping(uint256 => bool) public revoked;
  3. Реалізуйте функцію revoke з перевіркою прав.
  4. Додайте функцію isValid, що перевіряє існування, флаг revoked та закінчення терміну.
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); } 

Важливо: revocation не знищує токен, а лише робить його недійсним. Це зберігає історію для аудиту.

ERC-5192 як базовий стандарт для soulbound

ERC-5192 (Minimal Soulbound NFT) — finalized EIP, що визначає подію Locked та функцію locked(). Він сумісний з OpenZeppelin і легко інтегрується. Ось приклад контракту:

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); } } 

Порівняно з кастомною реалізацією, ERC-5192 дає стандартизований інтерфейс, спрощуючи інтеграцію з гаманцями та маркетплейсами. Розробка за стандартом проходить аудит з меншою кількістю вразливостей — типові помилки доступу вже закриті. Розробка за стандартом ERC-5192 займає в 2 рази менше часу, ніж створення кастомного рішення. Аудит SBT проходить на 30% швидше завдяки стандартизованим шаблонам. Використання ERC-5192 зменшує час аудиту в 1.5 рази порівняно з кастомними контрактами.

Чим відрізняється ERC-5192 від кастомного ERC-721?

Параметр ERC-5192 Кастомний ERC-721 з блокуванням
Сумісність Висока (OpenZeppelin, гаманці) Тільки ваш контракт
Час розробки 1-2 дні 3-5 днів
Проходження аудиту Швидше, менше вразливостей Потребує додаткових перевірок

Що входить в роботу?

  • Аналіз вимог та визначення метаданих
  • Розробка смарт-контракту (ERC-5192 або кастом з ZK)
  • Аудит безпеки (Slither, Mythril, формальна верифікація)
  • Інтеграція з фронтендом (wagmi, RainbowKit) та ораклами
  • Деплой в тестову мережу (Goerli/Sepolia), написання тестів (Foundry)
  • Документація API та інструкції з мінтінгу/відкликання
  • Доступ до приватного репозиторію з тестами
  • Підтримка 6 місяців після аудиту

При замовленні повного пакету ви економите до 20% порівняно з окремими послугами.

Компоненти розробки SBT під ключ

Компонент Опис Термін (дні)
Аналіз вимог Визначення metadata, прав емісії, revocation logic 1-2
Смарт-контракт Реалізація ERC-5192 або кастом з ZK-доказами 3-5
Аудит безпеки Перевірка на reentrancy, access control, gas optimization 2-3
Інтеграція Підключення фронтенду (wagmi, RainbowKit) та оракулів 2-4
Тестова мережа Деплой в Goerli/Sepolia, написання тестів (Foundry) 1-2
Документація API, інструкція з мінтінгу, відкликання 1

Орієнтовна вартість: базовий SBT-контракт — від $2000, з підтримкою ZK — від $5000, з повним аудитом — від $8000.

Ми підготуємо документацію по смарт-контракту та надамо доступ до приватного репозиторію з тестами.

Метадані SBT

Типові поля: issuer (адреса емітента), date (дата випуску), expiry (термін дії), proof (посилання на верифікацію). Для освітніх сертифікатів — courseName, grade. Для KYC — рівень верифікації. Всі дані зберігаються в tokenURI у форматі JSON, доступному тільки власнику.

Приклад метаданих SBT
{ "issuer": "0x...", "date": "2023-10-01", "expiry": "2024-10-01", "type": "KYC", "level": "advanced" } 

ZK-SBT: приватність поверх soulbound

Публічні SBT розкривають всі credentials власника. Для конфіденційності використовуємо zero-knowledge proofs. Власник доводить наявність SBT певного типу без розкриття адреси або інших токенів. Реалізації: Sismo Protocol, Polygon ID. Застосування ZK-SBT знижує ризик витоку даних у 10 разів порівняно з публічною моделлю.

Claim: "У мене є SBT верифікації KYC від Persona" ZK Proof: доводить факт без розкриття адреси або інших SBT 

Use Cases

  • Освітні сертифікати: issuer, date, course name, grade.
  • Участь у DAO: proof of participation з dao_address, proposal_id, vote.
  • KYC/AML verified: issuer (Persona, Jumio), expiry, level.
  • Achievements: first 1000 users, liquidity provider > 1 year.
  • POAPs — заходи та конференції (технічно transferable, але spirit soulbound).

Концепція soulbound-токенів була запропонована Віталіком Бутеріним, Гленом Вейлом та Пужджою Олхавер у роботі Decentralized Society.

Ми маємо 5+ років досвіду в Web3 та реалізували 20+ смарт-контрактів для DeFi, NFT та SBT. Кожен контракт проходить формальну верифікацію (Slither, Mythril) та аудит на reentrancy, MEV-стійкість. Надаємо гарантію безпеки на 6 місяців після аудиту.

Зв'яжіться з нами — ми оцінимо ваш проект за 1 день і запропонуємо архітектуру з урахуванням газ-оптимізацій та future-proofing. Розробка базового SBT контракту займає від 1 до 2 днів; з privacy та revocation — 1-2 тижні. Замовте розробку SBT-рішення вже сьогодні, щоб отримати конкурентну перевагу.