EIP-2981 та 0xSplits: налаштування гарантованих роялті NFT

Роялті NFT перестали бути гарантованими після агресивної політики Blur, який запропонував нульові комісії для трейдерів. OpenSea відповів, зробивши creator royalties опціональними на рівні платформи. Результат: більшість вторинних продажів проходить без відрахувань, якщо колекція не використовує мех

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

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

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

  • 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

Роялті 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 для коректного відображення в маркетплейсах, але не обмежують трансфери. Роялті — джентльменська угода з маркетплейсом.

Як ми налаштовуємо роялті: покроковий процес

  1. Аналіз поточного контракту: перевіряємо підтримку EIP-2981, версію Solidity, використовувані бібліотеки.
  2. Додавання EIP-2981: якщо стандарт відсутній, підключаємо OpenZeppelin ERC2981 або реалізуємо вручну. Якщо контракт не upgradeable — деплоїмо новий з міграцією метаданих.
  3. Налаштування роялті в контракті: встановлюємо базовий відсоток (зазвичай 500 б.п. = 5%) через _setDefaultRoyalty або _setTokenRoyalty для окремих токенів.
  4. Спліт між учасниками: якщо потрібно розділити роялті, деплоїмо спліт-контракт через 0xSplits і вказуємо його як receiver.
  5. Верифікація в OpenSea: підписуємо транзакцію підтвердження володіння контрактом, налаштовуємо Collection Settings.
  6. Тестування: купуємо тестовий токен на вторинному ринку, перевіряємо надходження роялті.

Чому 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 год

Отримайте консультацію інженера — обговоримо деталі вашого проєкту та підберемо оптимальне рішення.