Contracts Repository
View royalty implementation source code
How Royalties Work
When an NFT or SFT is sold on the secondary market, a royalty fee automatically directs a portion of the transaction value to the original creator.| Component | Description |
|---|---|
| Royalty Percentage | Set at contract deployment (e.g., 5% = 500 basis points) |
| Recipient | Address that receives royalties (can be a Fee Splitter) |
| Standard | EIP-2981 for on-chain royalty info |
| Enforcement | Via Operator Allowlist |
Royalty fees are optional—it’s up to the collection owner. If set, Immutable’s ecosystem enforces payment.
Setting Royalties
Via Hub
- Go to Hub → Contracts → Deploy
- Select your contract type (ERC-721 or ERC-1155)
- Configure:
- Royalty Recipient: Address to receive royalties
- Royalty Percentage: Percentage of sale price (e.g., 5%)
- Deploy contract
Via Code
Fee Splitter
For distributing royalties to multiple recipients, use the Fee Splitter contract.Fee Splitter Contract
View the Fee Splitter source code
Key Features
- Multi-Recipient Support: Allocate fees to multiple recipients
- On-Chain Transparency: Wallet addresses and shares stored on-chain
- Gas Efficiency: More efficient than real-time splitting
How It Works
- Set the Fee Splitter contract as your royalty recipient
- Configure recipients and their percentage shares
- Fees accumulate in the Fee Splitter contract
- Call
releaseAll()to distribute accumulated fees
ERC-20 Allowlist
The Fee Splitter includes an allowlist for accepted tokens:Updating Allocation
Admin users can update fee allocation. When updated:- All unreleased fees are redistributed according to the new configuration
- Existing minted assets automatically use the new configuration
Multiple Fee Splitters
Different scenarios require separate Fee Splitter contracts:| Scenario | Solution |
|---|---|
| Different recipients | One contract per unique recipient combination |
| Different percentages | One contract per unique split ratio |
| Multiple games | One contract per game/collection |