Настройка роялти на Magic Eden: EIP-2981, Solana, enforced

Настройка роялти на Magic Eden **Техническая задача:** контракт должен сообщать роялти on-chain, а маркетплейс — соблюдать. На практике 90% проблем возникает из-за несовместимости стандартов: ETH-коллекции с EIP-2981 корректно отображаются, Solana требуют настройки Metaplex. Разберёмся с каждым б

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

Часто задаваемые вопросы

Последние работы

  • 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

Настройка роялти на Magic Eden

Техническая задача: контракт должен сообщать роялти on-chain, а маркетплейс — соблюдать. На практике 90% проблем возникает из-за несовместимости стандартов: ETH-коллекции с EIP-2981 корректно отображаются, Solana требуют настройки Metaplex. Разберёмся с каждым блокчейном детально.

Роялти — единственный способ для команды проекта получать доход после продажи NFT. Но стандарты на разных блокчейнах различаются, а маркетплейсы периодически меняют политику. Мы настроим роялти вашей коллекции так, чтобы вы получали выплаты независимо от платформы.

Война роялти предыдущих лет разрушила ожидания большинства NFT-проектов: Blur ввёл опциональные роялти, объём торгов утёк с OpenSea, и многие коллекции потеряли основной источник дохода. Magic Eden прошёл через несколько итераций политики роялти. Сейчас ситуация стабилизировалась, но настройка — это не одна кнопка, а набор решений на уровне контракта и платформы.

Как работает EIP-2981?

EIP-2981 добавляет единственную функцию: royaltyInfo(uint256 tokenId, uint256 salePrice) returns (address receiver, uint256 royaltyAmount). Маркетплейс вызывает её перед каждой сделкой, получает адрес получателя и сумму. Это рекомендательный стандарт — маркетплейс может проигнорировать ответ. OpenSea, Magic Eden (в режиме enforced) и LooksRare чтут его для совместимых коллекций. Blur — нет, если контракт не использует блокировку трансферов.

Реализация через OpenZeppelin занимает от 2 до 4 часов, требует ~20000 газа на развёртывание:

import "@openzeppelin/contracts/token/common/ERC2981.sol"; contract MyNFT is ERC721, ERC2981 { constructor() { // 5% роялти на адрес команды _setDefaultRoyalty(teamAddress, 500); // 500 = 5% (basis points) } } 

Для разных tokenId можно установить разные роялти через _setTokenRoyalty. Это удобно для коллекций с несколькими tiers.

Как Magic Eden обрабатывает роялти на Solana?

На Solana механика другая. Royalty задаётся в метаданных NFT через поле seller_fee_basis_points (0–10000, где 10000 = 100%) и массив creators с долями каждого. Это часть Metaplex Token Metadata standard. Magic Eden читает эти данные и выплачивает роялти при продаже через свою программу. Настройка занимает около 3–5 часов через Sugar CLI.

Параметр Ethereum Solana
Стандарт EIP-2981 (on-chain) Metaplex Token Metadata (метаданные)
Реализация royaltyInfo в контракте seller_fee_basis_points + creators
Изменение post-mint Возможно (upgradeable) Только если mutable
Уровень контроля Высокий (каждый токен) Весь набор (default)

EIP-2981 реализуется примерно в 3 раза быстрее, чем настройка Metaplex, но Solana-подход проще для однородных коллекций.

Что такое enforced royalties и когда они нужны?

Enforced royalties — единственный способ технически принудить к выплате роялти: ограничить трансфер NFT только одобренными маркетплейсами. Реализуется через _beforeTokenTransfer hook с проверкой allowlist операторов.

Magic Eden поддерживает такие коллекции через operator filter. OpenSea запустил OperatorFilterRegistry, но позже отказался от него. Сейчас наиболее актуальный подход — собственный allowlist в контракте.

Подход Принуждение Ликвидность Сложность
Enforced Да (100% роялти) Низкая (нет P2P) Средняя
Опциональные Нет (зависит от маркетплейса) Высокая Низкая

Компромисс: жёсткий enforce снижает объём продаж на 30–50%, но гарантирует доход команды. Без enforce — роялти могут быть обнулены маркетплейсами, как это было с Blur.

Настройка на Magic Eden

Для Ethereum коллекций: Контракт с EIP-2981 автоматически определяется. В dashboard Magic Eden Creator Hub указываем адрес коллекции, верифицируем ownership через подпись. Роялти отображаются из контракта.

Для Solana коллекций: Через Metaplex Sugar CLI или ручное создание: устанавливаем sellerFeeBasisPoints и creators при деплое. Magic Eden верифицирует коллекцию через систему заявок — нужен verified badge для полного отображения роялти.

Что входит в настройку под ключ

  • Аудит существующего контракта на совместимость с EIP-2981 или Metaplex
  • Реализация роялти в контракте (EIP-2981) или корректировка метаданных Solana
  • Настройка allowlist операторов (enforced royalties) по желанию
  • Верификация коллекции на Magic Eden (включая подачу заявки)
  • Тестирование выплат роялти на testnet (например, 5–10 сделок)
  • Документация по управлению роялти
  • Поддержка после запуска в течение 30 дней

Ориентиры по срокам

Настройка EIP-2981 в новом контракте — несколько часов. Добавление роялти к существующему контракту без EIP-2981 — возможно только через апгрейд (если контракт upgradeable) или деплой нового контракта с миграцией. Верификация коллекции на Magic Eden — 1–3 рабочих дня на их стороне. Мы работаем с NFT с момента появления стандарта, реализовали роялти для 50+ проектов на Ethereum и Solana.

Свяжитесь с нами для расчёта стоимости вашей коллекции. Закажите настройку роялти — получите консультацию по стеку и срокам.

Стандарт EIP-2981 описан в официальной документации Ethereum.