Skip to main content

ERC-721

ERC-721 is arguably the most commonly utilized NFT standard. In an ERC-721 each NFT is a unique token. Profile Picture and Banner style projects, for example, are almost all ERC-721.

Some things to know about the ERC-721 standard

  • Good for generative and hand made collections where you only want to sell 1/1s.
  • Each NFT is a distinct token that only one wallet can hold.
  • Each NFT can have unique traits / unique JSON files / unique rarity values.
  • You need images / JSON file for as many NFTs as you want to mint.
  • Most general PFP collections are this contract type.
  • Milady, Redacted Remilio Babies, and Sprotogremlins are all examples of an ERC-721 collection.

Scatter's ERC-721 contracts use ERC-721A and Solady. They are optimized for minting in order and do not allow out of order minting.

This contract begins at the index of 1 and not 0.

Deploying an ERC-721 Collection

Deploy: https://www.scatter.art/create?contract=ERC721

To create an ERC-721 collection, select the ERC-721 option on the create collection page of Scatter.

The Name and Symbol cannot be changed after you deploy.

  • Name: The name of your collection. Cannot be changed. An example of a collection name is "Bisou Bijouterie"
  • Symbol: The symbol of your collection. Cannot be changed. Should be short and all caps. You do not have to use a unique symbol but you should try to. An example of a symbol is "BBS"
  • Max Supply: The initial max supply of your collection. Can be changed, but can never be lowered below the current highest ID minted.
  • Token Price: The public price you intend to use. This price is used by Scatter to estimate discounts and is not the actual price that has to be used when minting. Actual mint prices are set when you create your lists.
  • Base URI: Either an HTTPS or IPFS URI is supported. You can leave this field blank when you deploy and a generic ??? IPFS will be used. Can be changed. Your base URI should look something like ipfs://CID/ with the trailing slash. Scatter contracts add the token ID to the baseURI to get the token's URI.
  • Custom Withdraw Address: By default, when you withdraw your proceeds will be sent to the wallet which currently owns the collection. You can set a custom withdraw address here which will allow you to send funds to another address when you withdraw. This is useful if you wish to send funds to a moneypipe that automatically splits proceeds.
  • Default Royalty: This value is used by secondary markets which comply with EIP-2981 to set your royalty % on secondary proceeds. Most markets still allow you to update which address and % you want to use on their sites. The general recommend percent for royalties is 5%. Most secondary marketplaces no longer do royalty enforcement so paying the royalty % will be optional when secondary sales happen.
  • Affiliate Fee: You can optionally set an affiliate fee. If you have this enabled at a value higher than 0%, anyone will be able to connect to Scatter, go to the Affiliates tab of your collection, and 1 click join your affiliate program. The max possible affiliate fee is 50%. If you do set a 50% affiliate fee the affiliate will get 50% of the mint price, you will get 45%, and Scatter will get 5%. We recommend setting as high of an affiliate fee as you are comfortable with. Not all projects need the affiliate program enabled, and you can enable it later on if you do not want it enabled initially.
  • Affiliate Discount: You can optionally set an affiliate discount. This gives an incentive to use affiliate links by giving the person who mints with the affiliate link a discount of an amount you set. The max affiliate discount is 50%, which lowers the base price by 50%.
  • Bulk Discounts: You can optionally set bulk discount tiers. This enables minters to get a discount when minting bulk amounts of NFTs. You can set the amount of NFTs required along with the % off is granted for that amount.

After you fill out all fields, you can deploy your collection. After your collection has been successfully deployed and confirmed, you will get a message "Contract deployed successfully" along with a "Manage Collection" button.

Watch Youtube tutorial https://www.youtube.com/watch?v=OuXHn445bPM

Manage Collection

When you are the collection owner you are able to edit that collection's page on Scatter. Your wallet will be the only one able to modify the collection on-chain.

When editing a collection on Scatter you gain access to these tabs:

  • Info: Displays read only information about your collection.
  • Profile: Edit your collection display name on Scatter (this does not change your collection's name on chain), edit your collection's description, set royalties for Scatter secondary sales (this does not affect sales on other marketplaces), add icon/hero/banner images for your collection, and setup your collection's links.
  • Invite List: Until you make lists, it will be impossible to mint your collection's NFTs. Create a public list (no address), and address only you can use (with only your address on it) with a zero price, and create whitelists for various address lists such as for giving collections free mints.
  • Affiliates: This allows you to manually add addresses to your affiliate program to give them links. This is not necessary for everyone to do, they can simply go to your collection, your affiliates tab, and create their own affiliate link.
  • Contract Methods: Run various contract methods. Not all possible functions are shown here, some less commonly used ones you will need to run on sites like Etherscan.

Contract Methods

  • setBaseURI: If you need to update your baseURI you can do it here. When we give you an Instareveal baseURI this is where you update it.
  • withdraw: You can withdraw your mint proceeds here at any time. If you have any ERC-20 balances they will also show up here and be easy for you to withdraw your share. If you have an altOwnerPayout address set when you withdraw the proceeds will be sent to that address. Some ERC-20 contracts may have a max limit of tokens that can be sent in one transaction, so make sure you withdraw such tokens from time to time (it's possible to withdraw the entire balance only), otherwise it may locked on the contract forever.
  • setMaxSupply: This allows you to increase/decrease the max supply of your collection. Can never be lowered below the current highest ID minted.
  • enableBurnToMint: Used to setup your Burn to Mint setup if you wish. You can specify the address the "burned" tokens are sent to, they do not actually have to be burned. You can have setups where you burn 1 token to get 3, or burn 3 to get one. This is handled by the ratio.
  • setBulkDiscount: Used to set/edit bulk discount tiers. This enables minters to get a discount when minting bulk amounts of NFTs. You can set the amount of NFTs required along with the % off is granted for that amount.
  • batchMintTo: This allows you to airdrop tokens to many addresses at once. Make sure you do not include any extra whitespace. This airdropping system is very efficient and can be used by anyone for any purpose. If you want to use this you should create a list that only has your address on it with a 0 price and then use that list for airdropping.
  • setAffiliateFee: Used to set/edit an affiliate fee (optional). If you have this enabled at a value higher than 0%, anyone will be able to connect to Scatter, go to the Affiliates tab of your collection, and 1 click join your affiliate program. The max possible affiliate fee is 50%. If you do set a 50% affiliate fee the affiliate will get 50% of the mint price, you will get 45%, and Scatter will get 5%. We recommend setting as high of an affiliate fee as you are comfortable with. Not all projects need the affiliate program enabled.
  • setApprovalForAll: Currently meant for use with Burn to Mint.
  • setMaxBatchSize: You can change the maximum number of NFTs that can be minted in a single transaction. It’s strongly recommended that you don’t change the default parameter and don’t set it above 100 on ERC721A contracts, because it will cause problems with later transfers.

Burn to Mint

Scatter's contract factory offers a Burn to mint functionality. This involves permanently burning one or more NFTs to mint a new NFT. By default NFTs burned through Scatter's burn to mint functionality are transferred on chain to burn wallet 0x000000000000000000000000000000000000dEaD. This will be changeable via the front end in future updates, but for now if you'd like to make use of an alternate burn address reach out to us on X or Discord and we can assist.

Burn to mint does not have whitelist features. Anyone with the target token can use it to redeem while there is supply left.

You can only burn collections you own and ones that were deployed on Scatter or are in the Scatter database. If it's not a Scatter collection that you wish to burn, you still need to be the owner of it. Grant transfer permissions from burn contract to your new contract at Etherscan (usually it's SetApprovalForAll function) and open a ticket in Scatter Discord, because we have to manually import the collection in our DB.

Cyclical Burn to Mint

While Burnt to Mint is most often employed for minting entirely new collections, Scatter's contract factory also allows for a Cyclical Burn to Mint mechanism. This is where one or more tokens from a particular collection are burned to mint a new token within that same collection. We strongly recommend teams utilizing cyclical burn to mint require at least 2 NFTs be burned to mint a new one.

Burn to Mint Contract Methods

  • address: The contract address of ERC-721 tokens can be be redeemed with burn to mint.
  • reversed: This reverses the burn ratio for input/output. With this disabled, a ratio of 3 would mean you need to burn 3 to mint 1. With this enabled, a ratio of 3 would mean when you burn 1 you get 3. Make sure your ratio is evenly divisible by your supply if you want the entire supply to be able to be used for burn to mint.
  • ratio: The amount you need to get 1, or the amount you get if you burn one depending on the status of reversed.
  • start: The start time of when your burn to mint setup will be enabled.
  • limit: The maximum number of NFTs a wallet is allowed to mint through burn to mint. Optional value that can be left empty. If left empty there will be no limit.