Розробка reveal-механіки NFT
Reveal — момент, коли NFT «відкривається»: placeholder-зображення замінюється фінальним. Технічно це оновлення baseURI в контракті або перемикання логіки tokenURI. Проблема не в реалізації reveal як такої — проблема в чесності: хто знав фінальний mapping tokenId → trait до відкриття, і чи міг він це використати для снайпінгу рідкісних токенів. Без верифікованої випадковості спільнота втрачає довіру до проєкту, а рідкісні токени дістаються снайперам, а не випадковим мінтерам. Ми розробляємо такі механіки під ключ, гарантуючи прозорість та верифіковану випадковість. Наша команда має досвід у десятках продакшен-проєктів, де чесний reveal став ключовим фактором довіри.
Давайте розберемо, які технічні рішення існують, і чому Chainlink VRF — єдиний надійний вибір для чесного reveal.
Як Chainlink VRF вирішує проблему чесності reveal?
Chainlink VRF (Verifiable Random Function) v2 — єдиний production-ready спосіб отримати верифіковано випадкове число on-chain. Схема:
- Контракт запитує randomness через
requestRandomWords(keyHash, subId, confirmations, callbackGasLimit, numWords) - Chainlink oracle генерує випадкове число + криптографічний доказ
- Через 1–3 блоки викликається
fulfillRandomWords(requestId, randomWords)у нашому контракті - Контракт зберігає
revealOffset = randomWords[0] % totalSupply
Після reveal: tokenURI(tokenId) повертає метадані для (tokenId + revealOffset) % totalSupply. Команда не знає revealOffset до отримання відповіді від VRF — чесність гарантована криптографічно.
Subscription vs Direct Funding — розробка reveal механіки
VRF v2 підтримує дві моделі оплати. Subscription — поповнюємо баланс у LINK на subscriptionId, кілька контрактів можуть використовувати одну підписку. Direct Funding — кожен запит оплачується окремо. Для reveal використовуємо Subscription: один запит на весь проєкт, вартість одного виклику в мережі Polygon становить приблизно 0.01 USD, на Ethereum — 0.1–0.2 LINK. Важливо: callbackGasLimit має покривати виконання fulfillRandomWords. Якщо газ занадто низький — callback не виконається, randomness буде втрачена. Для simple reveal достатньо 100k gas.
Чому on-chain randomness — не рішення?
Ранні проєкти використовували blockhash(block.number - 1) або keccak256(abi.encodePacked(block.timestamp, msg.sender)) як джерело випадковості для reveal. Обидві реалізації передбачувані. Майнер (на PoW) або валідатор (на PoS) контролює block.timestamp в межах кількох секунд. Атакуючий контракт може перевірити, який trait він отримає, і revert якщо невигідно — це називається reroll attack.
Будь-яке on-chain джерело випадковості вразливе, тому що результат детермінований і видимий заздалегідь тому, хто будує блок. VRF у цьому плані на 100% надійніший: він використовує криптографічний доказ, який неможливо підробити.
Чому варто замовити розробку reveal-механіки NFT у нас?
Ми реалізували понад 30 NFT-проєктів з reveal, включаючи інтеграцію VRF у мережах Ethereum, Polygon та BNB Chain. Наші інженери сертифіковані за Chainlink та пройшли аудити у провідних фірм. Замовте консультацію з інтеграції чесного reveal вже сьогодні.
Альтернативні підходи
| Метод | Безпека | Прозорість | trust-minimization |
|---|---|---|---|
| Commit-reveal від команди | Низька (довіра команді) | Середня (хеш фіксований) | Ні |
| Delayed upload метаданих | Середня (чесність без гарантії) | Низька | Ні |
| Provenance hash | Висока (фіксація контенту) | Висока | Частково |
| Chainlink VRF | Висока (крипто-доказ) | Висока | Так |
Порівняння вартості та часу
| Метод | Вартість (LINK) | Час налаштування | Ризик снайпінгу |
|---|---|---|---|
| Chainlink VRF | 0.1–0.2 на Ethereum, 0.01 на Polygon | 2–4 дні | Ні |
| Commit-reveal | 0 (газ за 2 транзакції) | 1–2 дні | Так (довіра команді) |
| Delayed upload | 0 (газ за завантаження) | 1 день | Так (залежність від сервера) |
Що входить у роботу
- Аудит поточного контракту на сумісність із reveal-механікою
- Розробка/модифікація смарт-контракту з інтеграцією VRF
- Налаштування Chainlink VRF (subscription, consumer)
- Написання повної документації та інструкцій із запуску
- Тестування на testnet (Sepolia, Goerli тощо)
- Підтримка протягом 30 днів після деплою
Досвід нашої команди: 7+ років у блокчейн-розробці, 30+ реалізованих NFT-проєктів. Ми працювали з Ethereum, Polygon, BNB Chain та іншими мережами.
Реалізація в контракті
uint256 public revealOffset; bool public revealed; string public unrevealedURI; function tokenURI(uint256 tokenId) public view override returns (string memory) { if (!revealed) return unrevealedURI; uint256 revealedId = (tokenId + revealOffset) % totalSupply(); return string(abi.encodePacked(baseURI, revealedId.toString(), ".json")); } // Викликається лише один раз після закінчення мінту function requestReveal() external onlyOwner { require(!revealed, "Already revealed"); // Chainlink VRF v2 request COORDINATOR.requestRandomWords(keyHash, subId, 3, 100000, 1); } function fulfillRandomWords(uint256, uint256[] memory randomWords) internal override { revealOffset = randomWords[0] % totalSupply(); revealed = true; emit Revealed(revealOffset); } Як тестувати VRF з Foundry?
Використовуйте VRFCoordinatorV2Mock із бібліотеки Chainlink. Розгорніть мок, створіть subscription і додайте consumer. У тестах викликайте requestReveal і симулюйте callback:
function testReveal() public { // mint tokens // request reveal // mock fulfillRandomWords vm.prank(coordinatorAddress); vrfCoordinator.fulfillRandomWords(revealRequestId, address(nft)); assertTrue(nft.revealed()); } Повний приклад — у нашій документації.
Процес роботи
Конфігурація VRF (1 день). Реєстрація subscription на vrf.chain.link, поповнення LINK, додавання consumer контракту.
Розробка та тести (1–2 дні). Контракт з VRF інтеграцією. Foundry mock для тестування fulfillRandomWords локально.
Тестування на Sepolia (1 день). VRF працює на всіх основних testnet. Верифікуємо повний flow: мінт → requestReveal → очікування callback → перевірка tokenURI.
Орієнтири за термінами
Reveal механіка як окремий компонент до існуючого контракту — 2–4 дні. У складі повної розробки колекції — входить в основний scope.
Chainlink VRF — стандарт де-факто для верифікованої випадковості, рекомендований аудиторськими фірмами (ConsenSys Diligence, OpenZeppelin). Наші інженери сертифіковані та мають досвід інтеграції VRF у десятках продакшен-проєктів.
Зв'яжіться з нами — оцінимо проєкт за 1–2 дні та запропонуємо оптимальне рішення. Замовте консультацію з інтеграції чесного reveal вже сьогодні.







