Freee Docs
  • Guide
  • Getting Started
    • How do I connect my wallet to Freee?
    • How do I mint on Freee?
    • Gas Fees
  • Freee Create
    • What can I create on Freee?
    • Single-Edition (ERC-721)
      • How to create a Edition
      • Managing your Edition (ERC-721)
    • Drop (ERC-721)
      • How to create a Drop (ERC-721)
      • How to set up the artwork folder for your Drops collection
      • How to set up the .csv file in your Drops collection
      • Managing your Drop (ERC-721)
    • Collection (ERC-721)
      • How to create a collection (ERC721)
      • How to upload collection artworks?
      • Managing your Collection (ERC721)
        • Manage Sale Stages
        • Manage Pre-reveal & Reveal
        • General Settings
      • Others
        • In depth outline of collection artworks folder
        • In-depth Outline of collection metadata CSV
    • Multi-Edition (ERC-1155)
      • How to Create a Multi-Edition
      • Managing your Collection (Onchain)
    • More Features
      • How can I create an Airdrop?
      • How can I create an Allowlist?
      • Receive blast rewards
    • Create FAQs
      • Can I connect a multi-sig wallet?
      • How do I use a split contract with my collection?
      • How do I withdraw my earnings?
      • Do I have to pay a fee to collect my earnings?
      • Can I add a custom payout address to my collection?
  • Smart Contracts
    • Deployed Contract Addresses
      • Mainnets
      • Testnets
    • Smart Contracts Event-based Overview
    • 1155 Contracts
      • Creating a Contract
      • Creating a Token
      • Selling a Token
      • Minting Tokens
      • Permissions
    • 721 Contracts
      • NFT Creator Factory
      • NFT Implementation
      • Edition Metadata Renderer
      • Drop Metadata Renderer
      • Collection Metadata Renderer
  • Freee Platform Fees
  • Create, share, and collect to earn
    • Understanding Rewards on Freee
    • How to create to earn
    • How to share to earn
    • How to collect to earn
    • Diamond Rewards Chart
  • Freee FAQs
    • Why can't I mint from a collection ?
    • Why can't I see my minted NFT(s) ?
    • Why did my mint transaction fail ?
  • Legal
    • Privacy Policy
    • Terms of Service
Powered by GitBook
On this page
  • Edition vs Drop
  • Global Variables
  • Creating an NFT Contract
  • createEdition
  • createDrop
  1. Smart Contracts
  2. 721 Contracts

NFT Creator Factory

A factory that deploys new NFT contracts.

The factory references an implementation contract and clones it to give it it's own unique address.

Edition vs Drop

This contract can be used to create either Editions or Drops.

  • Editions: All the NFTs share the same media asset.

  • Drops: All the NFTs have individual pieces of media.

Platforms have the ability to earn some of the protocol rewards for helping creators deploy their smart contracts.

Global Variables

  • implementation: An NFT contract used for cloning.

  • editionMetadataRenderer: A contract for rendering editions metadata.

  • dropMetadataRenderer: A contract for rendering drops.

Creating an NFT Contract

createEdition

Creates a new edition contract with an address. Note, not all of these fields can be changed after creating the contract.

  • name: Name of the edition contract (cannot be changed)

  • symbol: Symbol of the edition contract (cannot be changed)

  • defaultAdmin: Default admin address (contract sets the owner to this address by default)

  • editionSize: Total size of the edition (number of possible editions)

  • royaltyBPS: BPS amount of royalty (cannot be changed)

  • fundsRecipient: Recipient for sales and royalties

  • description: Metadata: Description of the edition entry

  • animationURI: Metadata: Animation url (optional) of the edition entry

  • imageURI: Metadata: Image url (semi-required) of the edition entry

function createEdition(
    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
) 

createDrop

Creates a new drop contract with a deterministic address. Note, not all of these fields can be changed after creating the contract.

  • name: Name for new contract (cannot be changed)

  • symbol: Symbol for new contract (cannot be changed)

  • defaultAdmin: Default admin address (contract sets the owner to this address by default)

  • editionSize: The max size of the media contract allowed

  • royaltyBPS: BPS for on-chain royalties (cannot be changed)

  • fundsRecipient: Recipient for sales and royalties

  • metadataURIBase: URI Base for metadata

function createDrop(
    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
) 
Previous721 ContractsNextNFT Implementation

Last updated 1 year ago

metadataContractURI: URI for

contract metadata