Настройка роялти NFT на Blur

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Настройка роялти NFT на Blur
Простая
~2-3 часа
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Настройка роялти NFT на Blur

Blur запустился в октябре 2022 года и предложил нулевые торговые комиссии + опциональные royalties. Коллекции потеряли от 0% до 100% роялти в зависимости от того, заблокировали ли они торговлю через Blur или нет. OpenSea ответила снижением своих royalties до опциональных. Роялти войны 2022-2023 годов.

Сегодня ситуация устоялась: Blur поддерживает royalties для коллекций, которые используют OperatorFilterRegistry (Blur Operator Filter) или внедрили ERC-2981. Настройка занимает несколько часов, но требует понимания механики.

ERC-2981: on-chain royalties

ERC-2981 — минимальный стандарт: контракт реализует функцию royaltyInfo(tokenId, salePrice), которая возвращает получателя и сумму роялти.

Если контракт уже задеплоен без ERC-2981 — добавить его в immutable контракт невозможно. Опции: задеплоить новый контракт с миграцией (дорого и сложно) или зарегистрировать роялти через off-chain реестры (OpenSea Creator Fees через их dashboard, Manifold Royalty Registry).

Manifold Royalty Registry — наиболее универсальное решение для ретроактивной настройки: позволяет owner'у старого контракта зарегистрировать royalty recipient и percentage без изменения контракта. Поддерживается Blur, OpenSea, Rarible, LooksRare.

Для новых контрактов — ERC2981 из OpenZeppelin + _setDefaultRoyalty(receiver, feeNumerator) в constructor. feeNumerator из 10000: значение 500 = 5%.

Принудительное применение через OperatorFilter

Blur требует регистрацию в OperatorFilterRegistry (0x000000000000AAeB6D7670E522A718067333cd4E на Ethereum) для получения принудительных royalties на своей платформе.

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 проверяет, что вызывающий контракт зарегистрирован как «чистый» оператор (соблюдает royalties). Blur Marketplace зарегистрирован в реестре.

Для уже задеплоенных контрактов — если нет OperatorFilter и нет возможности апгрейда, принудительное применение невозможно. Только ERC-2981 через Manifold как best effort.

Процесс настройки

Анализ контракта (1-2 часа). Проверяем: есть ли ERC-2981, есть ли OperatorFilter, является ли контракт апгрейдаемым.

Настройка (2-4 часа). Для нового контракта — интеграция при разработке. Для существующего — Manifold Registry через их UI или прямой вызов setRoyalties() с owner-кошелька.

Верификация. Проверяем на Blur что коллекция отображает корректный royalty percentage. Тестовая продажа на tesnet если доступно.

Стоимость зависит от состояния существующего контракта и требуемого объёма работы.