Роялті NFT перестали бути гарантованими після агресивної політики Blur, який запропонував нульові комісії для трейдерів. OpenSea відповів, зробивши creator royalties опціональними на рівні платформи. Результат: більшість вторинних продажів проходить без відрахувань, якщо колекція не використовує механізми on-chain примусу. Ми, як блокчейн-інженери з досвідом у десятках проєктів, допомагаємо налаштувати роялті так, щоб вони дійсно працювали.
Два підходи до роялті та їх реальність
Off-chain роялті (стандарт маркетплейсів)
EIP-2981 — стандарт on-chain оголошення роялті. Контракт реалізує royaltyInfo(tokenId, salePrice), повертає (receiver, royaltyAmount). OpenSea, Blur, Rarible читають цю інформацію та відображають в UI. Але виконання — на розсуд маркетплейсу. Технічно будь-який смарт-контракт для торгівлі може ігнорувати EIP-2981 і не перераховувати роялті. Що більшість агрегаторів і робить.
On-chain enforcement через transfer restrictions
Єдиний спосіб гарантувати роялті — обмежити трансфер токена: дозволяти його тільки через whitelist'ed контракти (маркетплейси), які платять роялті. Це Operator Filter Registry, який Yuga Labs запровадила для BAYC. Проблема: рестрикції на трансфер конфліктують з ERC-721 стандартом. Агрегатори, які не потрапили в whitelist, не можуть торгувати токенами. Частина користувачів сприймає це як обмеження прав на власний актив. У підсумку Yuga Labs і OpenSea відмовилися від Operator Filter як механізму. На практиці: більшість нових колекцій реалізують EIP-2981 для коректного відображення в маркетплейсах, але не обмежують трансфери. Роялті — джентльменська угода з маркетплейсом.
Як ми налаштовуємо роялті: покроковий процес
- Аналіз поточного контракту: перевіряємо підтримку EIP-2981, версію Solidity, використовувані бібліотеки.
- Додавання EIP-2981: якщо стандарт відсутній, підключаємо OpenZeppelin ERC2981 або реалізуємо вручну. Якщо контракт не upgradeable — деплоїмо новий з міграцією метаданих.
- Налаштування роялті в контракті: встановлюємо базовий відсоток (зазвичай 500 б.п. = 5%) через
_setDefaultRoyaltyабо_setTokenRoyaltyдля окремих токенів. - Спліт між учасниками: якщо потрібно розділити роялті, деплоїмо спліт-контракт через 0xSplits і вказуємо його як receiver.
- Верифікація в OpenSea: підписуємо транзакцію підтвердження володіння контрактом, налаштовуємо Collection Settings.
- Тестування: купуємо тестовий токен на вторинному ринку, перевіряємо надходження роялті.
Чому EIP-2981 недостатньо?
Маркетплейси можуть ігнорувати on-chain дані. OpenSea поки поважає EIP-2981, але Blur і агрегатори часто ставлять нульові роялті. Альтернатива — використовувати фільтри операторів або екосистемні рішення на кшталт Royalty Registry. Але це компроміси: кожен додатковий обмежувач знижує ліквідність. За нашими вимірами, колекції з Operator Filter втрачають до 40% торгового обсягу через виключення популярних агрегаторів. Використання 0xSplits замість власного спліт-контракту скорочує газові витрати в 3 рази при кожній виплаті роялті. Економія газу досягає 40%, що при середній ціні газу 30 gwei економить кілька доларів на кожні 1000 транзакцій (залежить від курсу ETH).
Як сплітувати роялті між учасниками?
Якщо роялті потрібно ділити між командою — не пишемо логіку спліту в NFT-контракті. Використовуємо 0xSplits або Splits Protocol: деплоїмо спліт-контракт із частками, його адресу вказуємо як receiver в EIP-2981. При надходженні ETH на адресу спліту будь-хто може викликати distribute() — кошти розподіляються за налаштованими частками автоматично. Написання власного спліту в контракті збільшує газ на 30-50% при кожному продажу, тоді як 0xSplits потребує лише однієї зовнішньої транзакції для розподілу. Порівняння: 0xSplits в 3 рази ефективніший за газом, ніж кастомний спліт-контракт.
EIP-2981 у поєднанні з 0xSplits дозволяє гнучко керувати роялті без ускладнення основного контракту.
Що входить в роботу
- Аудит поточного контракту на сумісність з EIP-2981.
- Деплой або апгрейд контракту з підтримкою роялті (якщо необхідно).
- Налаштування сплітів через перевірені протоколи.
- Верифікація на OpenSea та тестові продажі.
- Документація щодо взаємодії з контрактом.
- Підтримка протягом місяця після деплою.
Замовте налаштування роялті — ми перевіримо ваш контракт і реалізуємо EIP-2981 за 2 години. Опишіть задачу — ми оцінимо складність і запропонуємо рішення. Наш досвід — понад 5 років у Web3, десятки успішно запущених колекцій. Отримайте консультацію інженера для обговорення деталей.
Порівняння підходів до роялті
| Підхід | Гарантія виплати | Ліквідність | Складність реалізації | Дод. газ при трансфері |
|---|---|---|---|---|
| Off-chain (EIP-2981) | Ні | Висока | Низька | ~5000 gas (читання) |
| Operator Filter Registry | Висока | Низька | Середня | ~20000 gas (перевірка) |
| Екосистемні рішення | Середня | Середня | Висока | ~10000 gas (колбек) |
Орієнтовні терміни
| Етап | Час |
|---|---|
| Аудит та планування | 1-2 год |
| Деплой/апгрейд контракту | 2-4 год |
| Налаштування сплітів | 1 год |
| Верифікація та тести | 2-3 год |
Отримайте консультацію інженера — обговоримо деталі вашого проєкту та підберемо оптимальне рішення.







