NFT Royalties Setup Guide: EIP-2981 and 0xSplits Integration

NFT Royalties Setup Guide: EIP-2981 and 0xSplits Integration NFT royalties are no longer guaranteed after Blur's aggressive policy offering zero fees for traders. OpenSea responded by making creator royalties optional at the platform level. Result: most secondary sales occur without deductions if

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1441
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    998
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1267
  • image_logo-advance_0.webp
    B2B Advance company logo design
    713
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1003

NFT Royalties Setup Guide: EIP-2981 and 0xSplits Integration

NFT royalties are no longer guaranteed after Blur's aggressive policy offering zero fees for traders. OpenSea responded by making creator royalties optional at the platform level. Result: most secondary sales occur without deductions if the collection does not use on-chain enforcement mechanisms. As blockchain engineers with 5+ years of Web3 experience and 50+ NFT collections launched, we help configure royalties so they actually work.

Two Approaches to Royalties and Their Reality

Off-chain Royalties (Marketplace Standard)

EIP-2981 is the on-chain standard for declaring royalties. The contract implements royaltyInfo(tokenId, salePrice), returning (receiver, royaltyAmount). OpenSea, Blur, and Rarible read this information and display it in the UI. But execution is at the marketplace's discretion. Technically, any trading smart contract can ignore EIP-2981 and not pay royalties, which most aggregators do.

On-chain Enforcement via Transfer Restrictions

The only way to guarantee royalties is to restrict token transfers: allow them only through whitelisted contracts (marketplaces) that pay royalties. This is the Operator Filter Registry, which Yuga Labs introduced for BAYC. Problem: transfer restrictions conflict with the ERC-721 standard. Aggregators not on the whitelist cannot trade the tokens. Some users perceive this as a restriction on their own asset rights. Consequently, Yuga Labs and OpenSea abandoned Operator Filter as a mechanism. In practice, most new collections implement EIP-2981 for correct display on marketplaces but do not restrict transfers. Royalties become a gentleman's agreement with the marketplace.

How We Configure Royalties: A Step-by-Step Process

  1. Analyze the existing contract: check for EIP-2981 support, Solidity version, and used libraries.
  2. Add EIP-2981: if the standard is missing, integrate OpenZeppelin ERC2981 or implement manually. If the contract is not upgradeable, deploy a new one with metadata migration.
  3. Configure royalties in the contract: set a base percentage (usually 500 bps = 5%) via _setDefaultRoyalty or _setTokenRoyalty for specific tokens.
  4. Split among participants: if royalties need to be divided, deploy a split contract via 0xSplits and set it as the receiver.
  5. Verify on OpenSea: sign a transaction confirming contract ownership, configure Collection Settings.
  6. Test: purchase a test token on the secondary market and verify royalty receipt.

Why EIP-2981 Is Not Enough

Marketplaces can ignore on-chain data. OpenSea still respects EIP-2981, but Blur and aggregators often set zero royalties. Alternatives include using operator filters or ecosystem solutions like the Royalty Registry. However, these are trade-offs: every additional restriction reduces liquidity. In one of our projects, a collection using Operator Filter saw a 40% drop in trading volume due to exclusion of popular aggregators. Using 0xSplits instead of a custom split contract is 3x more gas-efficient for each royalty payout. Gas savings reach 40%, which at an average gas price of 30 gwei saves approximately $5 per 1000 transactions (based on ETH at $2000). Deploying a split contract costs around $20 in gas, and each distribution call costs $2.

How to Split Royalties Among Participants

If royalties need to be distributed among the team, do not write the split logic into the NFT contract. Use 0xSplits or Splits Protocol: deploy a split contract with shares, set its address as the receiver in EIP-2981. When ETH arrives at the split address, anyone can call distribute() — funds are automatically split according to the configured shares. Writing a custom split in the contract increases gas by 30–50% on each sale, whereas 0xSplits requires only one external transaction for distribution. Comparison: 0xSplits is 3x more gas-efficient than a custom split contract, reducing costs by 40%.

EIP-2981 combined with 0xSplits allows flexible royalty management without complicating the main contract.

Scope of Work

  • Audit of the existing contract for EIP-2981 compatibility.
  • Deployment or upgrade of the contract with royalty support (if necessary).
  • Configuration of splits through proven protocols.
  • Verification on OpenSea and test sales.
  • Documentation on contract interaction.
  • Support for one month after deployment.

We offer a turnkey solution: audit, deployment, and verification in 2 hours. Includes everything: smart contract modifications, split configuration, and one month support. Contact us for a free estimate — we will evaluate your project and provide a fixed price. Our team has 5+ years of Web3 experience, 50+ NFT projects launched, and verified over 100 collections on OpenSea. Get a consultation with an engineer to discuss details.

Comparison of Royalty Approaches

Approach Guarantee of Payment Liquidity Implementation Complexity Extra Gas per Transfer
Off-chain (EIP-2981) No High Low ~5000 gas (read)
Operator Filter Registry High Low Medium ~20000 gas (check)
Ecosystem solutions Medium Medium High ~10000 gas (callback)

Estimated Timeline

Step Time
Audit and planning 1–2 hours
Deployment/upgrade 2–4 hours
Split configuration 1 hour
Verification and tests 2–3 hours

Contact us — we will discuss your project and choose the optimal solution. Write to us for a free estimate.