Skip to main content

Protocol Rewards


Introduction#

At Zora, we are passionate about providing the best experience to create and earn onchain. Protocol Rewards is a split of our 0.000777 ETH mint fee allowing:

  • Creators to monetize their work
  • Developers to earn from NFT mints and creations they facilitate

Fee Split (Per Mint)#

Free Mint#

RecipientAmount
Creator0.000333 ETH
Create Referral0.000111 ETH
Mint Referral0.000111 ETH
First Minter0.000111 ETH
Zora0.000111 ETH

Paid mint#

RecipientAmount
Create Referral0.000222 ETH
Mint Referral0.000222 ETH
First Minter0.000111 ETH
Zora0.000222 ETH

Mint Referral: The platform that referred a specific mint of an NFT
Create Referral: The platform that referred the creator to deploy the NFT collection First Minter: The first collector to mint an NFT, defaults to the NFT creator if a normal NFT

How It Works: Creator#

  1. Creator selects the "Free + Rewards" pricing option when creating their 721 or 1155 NFT
  2. Creator specifies a wallet address eligible to claim their rewards
  3. Creator opens up their edition for minting -- that's it!

The creator's total ETH generated from rewards is aggregated into an escrow contract and can be withdrawn at any time.

How It Works: Developer#

Create Referral Reward#

The create referral reward is paid out to the developer or platform that referred the creator to deploy their NFT collection using Zora's contracts.

Creating an ERC-721 Token#

The createReferral address is the parameter to specify the reward recipient when calling the createEditionWithReferral or createDropWithReferral functions. More info on the other parameters from our standard createEdition and createDrop functions can be found here.

function createEditionWithReferral(    string memory name,    string memory symbol,    uint64 editionSize,    uint16 royaltyBPS,    address payable fundsRecipient,    address defaultAdmin,    IERC721Drop.SalesConfiguration memory saleConfig,    string memory description,    string memory animationURI,    string memory imageURI,    address createReferral) external returns (address)
function createDropWithReferral(    string memory name,    string memory symbol,    address defaultAdmin,    uint64 editionSize,    uint16 royaltyBPS,    address payable fundsRecipient,    IERC721Drop.SalesConfiguration memory saleConfig,    string memory metadataURIBase,    string memory metadataContractURI,    address createReferral) external returns (address)

Creating an ERC-1155 Token#

The createReferral address is specified upon token creation.

function setupNewTokenWithCreateReferral(    string calldata newURI,    uint256 maxSupply,    address createReferral) public

Mint Referral Reward#

The mint referral reward is paid out to the party that referred the collector to mint an NFT.

ERC-721 Minting#

The mintReferral address is the parameter to specify as the reward recipient upon mint.

function mintWithRewards(    address recipient,     uint256 quantity,     string calldata comment,     address mintReferral)

ERC-1155 Minting#

function mintWithRewards(    IMinter1155 minter,    uint256 tokenId,    uint256 quantity,    bytes calldata minterArguments,    address mintReferral)

Withdrawing Rewards#

Rewards must be withdrawn from the escrow contract, which the address can be found here.

function withdraw(address to, uint256 amount)
function withdrawWithSig(    address from,     address to    uint256 amount,     uint256 deadline,     uint8 v,     bytes32     r,     bytes32 s)