Налаштування роялті NFT на Blur
Blur запустився в жовтні 2022 року та запропонував нульові комісії на торгівлю + опціональні роялті. Колекції втратили від 0% до 100% роялті в залежності від того, чи заблокували вони торгівлю через Blur. OpenSea відповів зниженням своїх роялті до опціональних. Роялті guerre 2022-2023 років.
Сьогодні ситуація стабілізувалася: Blur підтримує royalties для колекцій, які використовують OperatorFilterRegistry (Blur Operator Filter) або впровадили ERC-2981. Настройка займає кілька годин, але вимагає розуміння механіки.
ERC-2981: On-chain роялті
ERC-2981 — мінімальний стандарт: контракт реалізує функцію royaltyInfo(tokenId, salePrice), яка повертає одержувача та суму роялті.
Якщо контракт уже розгорнутий без ERC-2981 — додати його в immutable контракт неможливо. Опції: розгорнути новий контракт з міграцією (дорого та складно) або зареєструвати роялті через off-chain реєстри (OpenSea Creator Fees через їх dashboard, Manifold Royalty Registry).
Manifold Royalty Registry — найбільш універсальне рішення для ретроактивної настройки: дозволяє власнику старого контракту зареєструвати royalty recipient та percentage без зміни контракту. Підтримується Blur, OpenSea, Rarible, LooksRare.
Для нових контрактів — ERC2981 з OpenZeppelin + _setDefaultRoyalty(receiver, feeNumerator) в constructor. feeNumerator з 10000: значення 500 = 5%.
Enforcement через OperatorFilter
Blur вимагає реєстрацію в OperatorFilterRegistry (0x000000000000AAeB6D7670E522A718067333cd4E на Ethereum) для отримання enforced роялті на своїй платформі.
OpenZeppelin 4.x та 5.x включають DefaultOperatorFilterer та OperatorFilterer mixins. Додайте до контракту:
import {DefaultOperatorFilterer} from "operator-filter-registry/src/DefaultOperatorFilterer.sol";
contract MyNFT is ERC721, DefaultOperatorFilterer {
function transferFrom(address from, address to, uint256 tokenId)
public override onlyAllowedOperator(from) {
super.transferFrom(from, to, tokenId);
}
function safeTransferFrom(address from, address to, uint256 tokenId)
public override onlyAllowedOperator(from) {
super.safeTransferFrom(from, to, tokenId);
}
}
onlyAllowedOperator перевіряє, чи зареєстрований викликаючий контракт як «чистий» оператор (дотримується роялті). Blur Marketplace зареєстрований у реєстрі.
Для вже розгорнутих контрактів — якщо немає OperatorFilter та немає можливості апгрейду, enforcement неможливий. Тільки ERC-2981 через Manifold як best effort.
Процес настройки
Аналіз контракту (1-2 години). Перевіряємо: чи є ERC-2981, чи є OperatorFilter, чи є контракт upgradeable.
Настройка (2-4 години). Для нового контракту — інтеграція при розробці. Для існуючого — Manifold Registry через їх UI або прямий виклик setRoyalties() з owner-гаманця.
Верифікація. Перевіряємо на Blur, що колекція відображає коректний процент роялті. Тестова продажа на testnet якщо доступно.
Вартість залежить від стану існуючого контракту та потрібного обсягу роботи.







