# Introduction

No-code NFT Smart Contract Platform

### What is NiftyKit?

At [NiftyKit](https://niftykit.com/), we empower creators, artists, brands, and businesses to unlock new economic opportunities and build community through NFTs. \
\
NiftyKit is a first-of-its-kind no-code NFT launchpad that allows people to easily create, manage, and sell NFTs on their custom smart contracts. We provide true ownership of smart contracts and NFTs through easy-to-use, accessible, and affordable tools.

### How Does NiftyKit Work?

We have developed a set of NFT smart contracts you can deploy to the blockchain using your crypto wallet. When you create a smart contract on NiftyKit, you are the complete owner of your work. Our tools help you create, manage, and launch your NFTs through our simple user interface.

Using NiftyKit simplifies the minting and selling of your NFTs, whether you want to sell on your website or a marketplace like Rarible, Opensea or LooksRare. We have developed unique features that will help you launch high-quality projects using tools you can rely on.

#### NiftyKit Basic

NiftyKit Basic is completely free to use for creators' looking to launch an NFT project. NiftyKit basic requires some knowledge of Web3, needs a crypto wallet, and some gas money to get started.

#### NiftyKit Pro

[NiftyKit Pro](https://niftykit.com/pro?utm_campaign=v8-1\&utm_source=docs\&utm_medium=introduction\&utm_content=doc) is a gas-free experience for brands that can launch NFT-related projects without dealing with the complexities of Web3. NiftyKit Pro handles everything from digital collectible asset creation to customer onboarding. Both brands or customers do not need a crypto wallet.

### Why Choose NiftyKit?

Experience. Knowledge. Dedication.

We are the first platform allowing creators to make NFT smart contracts without coding. We have assisted thousands of Web3 creators in their NFT journey and have been thoroughly tested during bull and bear markets.

We have collaborated with major brands such as Gucci, Takashi Murakami, NBCUniversal, Rally, and Macy's, and our focus has been on perfecting the minting of NFTs for our customers.

We are passionate about ensuring your satisfaction, and our team is here to assist you every step of the way. Please do not hesitate to reach out if you have any questions.

### Key Features of the Platform

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Create NFT Drop Collection</strong></td><td>Import your art &#x26; metadata, mint on your website,airdrop, create a reveal, launch your sale</td><td></td><td><a href="/pages/UIai91QILsBpuKU7SmRy">/pages/UIai91QILsBpuKU7SmRy</a></td></tr><tr><td><strong>Create NFT Editions</strong></td><td>Create open or limited editions of your NFTs, then customize your public mint page </td><td></td><td><a href="/pages/2WLaP8elvaa1YrQnZd0n">/pages/2WLaP8elvaa1YrQnZd0n</a></td></tr><tr><td><strong>Dynamic NFTs</strong></td><td>Change or evolve your mninted NFTs over time. This enables evolving digital experiences, engaging audiences in innovative ways.</td><td></td><td><a href="/pages/S9xC3466r6Ol5mZ6lNHE">/pages/S9xC3466r6Ol5mZ6lNHE</a></td></tr><tr><td><strong>Open Generative Collection</strong></td><td>Easily upload layer assets and create unique images for your NFTs. Power your collection to generate infinite variations of your artwork.</td><td></td><td><a href="/pages/ZOF3Av3V7zVBbHyaSctf">/pages/ZOF3Av3V7zVBbHyaSctf</a></td></tr><tr><td><strong>Soulbound Token</strong></td><td>Turn your NFTs into non-transferable tokens, and can be used for many use cases (eg. digital identities, badges, membership status).</td><td></td><td><a href="/pages/20KLMv4D4SbsaSIIO0Tm">/pages/20KLMv4D4SbsaSIIO0Tm</a></td></tr><tr><td><strong>Collaboration &#x26; Teams</strong></td><td>Invite team members to collaborate on NFT drops, artwork, metadata, and sales</td><td></td><td><a href="/pages/vl8L3ZcGvb0GoB7bFwjb">/pages/vl8L3ZcGvb0GoB7bFwjb</a></td></tr><tr><td><strong>Revenue Splits</strong></td><td>Split revenue earned for your NFTs different wallet addresses for primary &#x26; secondary sales</td><td></td><td><a href="/pages/Zsfs8w99DIkvFea28qiJ">/pages/Zsfs8w99DIkvFea28qiJ</a></td></tr><tr><td><strong>Token Gated Access</strong></td><td>Set secret content based on a single token, range of tokens, or entire smart contract</td><td></td><td><a href="/pages/PSNlXnutjioEoyZzU9kx">/pages/PSNlXnutjioEoyZzU9kx</a></td></tr><tr><td><strong>Customized Landing Pages</strong></td><td>Create a customizable landing page for your NFTs</td><td></td><td><a href="/pages/Rqtd4JEf0YtUwHn45Tos">/pages/Rqtd4JEf0YtUwHn45Tos</a></td></tr></tbody></table>


# Web3 and NFT Basics

Welcome to Web3! Here are a few tips for running in the decentralized ecosystem.

### Introduction to Web3

Web3 is the decentralized web built on blockchain technology. Creators and brands are moving to Web3 because it provides more security, privacy, transparency, and new business models. Web3 also offers a more equitable and inclusive platform for creators and users. It's an exciting new technology that empowers creators and promotes innovation.

### What are NFTs?

NFTs, or non-fungible tokens, are digital assets that use blockchain technology to verify ownership and authenticity. NFTs can represent various digital content, such as artwork, music, videos, and tweets.

Creators, artists, companies, and businesses can sell their digital art or assets as NFTs and have the potential to generate royalties whenever the NFT is resold.

### NFT Essentials

### 1. Digital Wallet

This is essentially your access passport to Web3. A digital wallet holds, manages, transfers, and receives cryptocurrency and NFTs. You can choose from many services, as NiftyKit supports software and hardware wallets. To get your wallet address, create an account with the wallet providers.

Some wallets we recommend:

* [MetaMask](https://metamask.io/)
* [Tally](https://tally.cash/)
* [Ledger](https://www.ledger.com/)
* [WalletConnect](https://walletconnect.com/)
* [Coinbase](https://www.coinbase.com/)

### 2. Cryptocurrency

To create an NFT, you'll need crypto to pay for the minting transaction and gas fees. Here are a few resources to help you purchase crypto:

* [How to purchase ETH](https://ethereum.org/en/get-eth/)
* [How to purchase OETH](https://app.optimism.io/bridge/deposit) (via bridging ETH)
* [How to purchase MATIC (via MoonPay)](https://www.moonpay.com/buy/matic)
* [How to purchase Arbitum ETH ](https://bridge.arbitrum.io/)(via bridging ETH)
* [How to purchase Arbitum Nova](https://bridge.arbitrum.io/?l2chainId=42170) (via bridging ETH)
* [How to purchase Base](https://bridge.base.org/) (via bridging ETH)

{% hint style="info" %}
**Why bridge ETH?** "Bridge ETH" typically means transferring Ethereum (ETH) to another network. Bridging avoids the hassle of exchanges and multiple steps needed for direct purchases on Layer 2 (i.e. Optimism, Polygon, Arbiturm) networks.
{% endhint %}

### 3. NiftyKit Account

Once you have a digital wallet and crypto, you can create your first smart contract and NFT using NiftyKit. Head over to [NiftyKit.com](https://app.niftykit.com) and sign up for an account – it's free to use our tools to create unlimited NFT Collections perfect for creators, artists, companies, and businesses transitioning from web2 to web3.

Or, if you are looking for a turnkey solution without using crypto, check out [NiftyKit Pro](https://niftykit.com/pro?ref=docs).

### 4. Blockchain Networks&#x20;

NFTs can be created on many different blockchains. Currently, the most widely used blockchains for NFTs are Ethereum and Polygon.

Ethereum is home to many widely popular collections, such as CryptoPunks, while Polygon has a wider adoption with enterprise companies such as Starbucks, Reddit, and Meta.

NiftyKit supports NFTs on the following networks:

* Ethereum Mainnet
* Polygon Mainnet
* Optimism
* Arbitrum One
* Arbitrum Nova
* Base
* Avalanche

### 5. Marketplaces

Marketplaces are where you transact (buy, sell, trade) your NFTs once created. Here is a list of top marketplaces that support Ethereum, Polygon, or Optimism:

1. OpenSea (ETH, Base, Polygon, Optimism, Arbitrum Nova)
2. Rarible (ETH & Polygon)
3. LooksRare (ETH)
4. Blur (ETH)
5. Wen Moon Market (ETH, Optimism, Polygon, Arbitum)
6. Zonic (Optimism & Arbitrum)
7. Floor (ETH & Polygon)
8. NFEarth (Arbitrum & Optimism)

[See the full list of NFT Marketplaces here](https://www.alchemy.com/dapps)

If you minted an NFT on NiftyKit, your collection would be viewable on any marketplaces that support the network you used to launch your contract.


# Getting Started

Overview of the products and services offered at NiftyKit.

Welcome to NiftyKit, the ultimate platform for creating, managing, and selling NFTs, and a smart contract creation platform. Our user-friendly interface makes it easy for anyone to create and sell unique digital assets, even without experience with blockchain technology.&#x20;

### How to Get Started

Go to the NiftyKit website at [app.niftykit.com](https://app.niftykit.com/signup) using your web browser.

Click the "Sign Up" button at the top of the page to create an account. You can connect and sign in with your existing email, Google, or Apple accounts to create an account.&#x20;

To set up a password for your NiftyKit account, you should use the **\[Sign up email]** button.

<figure><img src="/files/r6sQ9toH0oRpO9GKWVpu" alt=""><figcaption><p>Sign up for NiftyKit using Apple or Google email</p></figcaption></figure>

Once you are in, you are ready to go!


# Platform Overview

Learn how to navigate and create your NFT Collection.

### **Dashboard**

After [signing up](https://app.niftykit.com/signup), you will be taken to the Dashboard. This is where you will see all of your projects in an overview. You can access the **\[Create]** button to create a new NFT collection or a revenue split.&#x20;

Every collection created will have a draft state; feel free to create as many drafts as you need.

<figure><img src="/files/k1ghUPpeECciHJmwcwPc" alt=""><figcaption></figcaption></figure>

### Collections

A Collection is a reference to the Smart Contract that stores your NFTs. There are different collections you can choose from, but under the hood, they all leverage [Diamond Smart Contracts](/nft-collections/our-smart-contracts/diamond-smart-contracts), which gives you the freedom to upgrade/modify your Smart Contract after it's been minted.&#x20;

### Creating NFTs

After creating your collection, NFTs can easily be created using NiftyKit's Smart Contract and managed internally. Each NFT is dynamically backed by our Metadata API, giving you complete control over its assets.

* [Drops](/nft-collections/minting-101/minting-drop-and-dynamic-nfts)
* [Editions](/nft-collections/minting-101/minting-open-and-limited-editions)
* [Airdrops](/nft-collections/minting-101/airdropping-nfts)
* [NiftyKit Diamond Widgets](/customize-your-experience/niftykit-diamond-widgets) - embed on your own website
* [Mint Links](https://niftykit.com/pro) - easily onboard users to Web3
* [Minting API ](https://niftykit.com/pro)- leverage your custom smart contract for API-based NFT minting (gasless)

### Selling your NFTs

Our tools make it easy to sell your NFTs. Set a price and use our Diamond Widgets for paid mints on your website.&#x20;

We also provide additional collaboration tools for our creators, such as our [Revenue Split](/nft-collections/collaborations-and-shared-collections/revenue-split) feature, and [adding members](/nft-collections/collaborations-and-shared-collections) to manage your collection.

Read more here about our exclusive artists' program. Ready to join? Sign up here, and let's collaborate.

### Building Experiences around NFTs

NFTs serve as decentralized proof of membership, allowing easy identification of holders. Building a membership platform around NFTs is simpler than a Web 2-based membership platform.

As a creator, you can offer valuable experiences to your members with our diverse range of features:

* [Token Access](/customize-your-experience/token-access-in-collections) - create an NFT-gated experience within the NiftyKit Platform
* [Apps](#apps) - personalize your project by adding apps
* [NiftyKit Diamond Widgets](/customize-your-experience/niftykit-diamond-widgets) - create personalized, token-gated features for your website
* Redeem Links - easily push rewards to your creators

### Team Collaboration

The roles included in our Smart Contracts are organized in a hierarchy as follows:

* **Owner** - creator of the Smart Contract, can be transferable
* **Admin** - same privilege as owner, but cannot assign other admins or owner
* **Manager** - management privilege that doesn't require financials (setting treasury)

Team members can be invited directly to the collection, but the amount of team members varies depending on the type of Creator Pass you are holding.

[NiftyKit Pro](https://niftykit.com/pro?ref=docs) also comes bundled with enterprise-grade team collaboration, with the ability to create teams, invite unlimited team members, and host team wallets.


# NiftyKit Demo Collection

Learn how to navigate the NiftyKit Demo Collection! Your gateway into the realm of digital collectibles, this collection serves as your introduction to our platform.

See how you can offer a smooth and user-friendly experience for your collectors. The NiftyKit Demo Collection is a space for you to freely explore, understand, and adapt at your speed. Upon signing up, you're automatically included in this collection. Take your time to dive into the features! \
\
Remember, you're in charge here – whenever you're ready for the full experience, feel free to create your own collection. Let the creative journey begin!

{% embed url="<https://youtu.be/W4FFNSLdMMg>" %}

#### Explore the Demo Collection

1. After signing up, you'll be directed to your dashboard with a new NiftyKit Demo Collection.\
   \
   [Go to your dashboard now](https://niftykit.com/dashboard?tab=collections) and follow the guide below.

<figure><img src="/files/ro0tx4LwADuinS46zIJC" alt=""><figcaption><p>NiftyKit Demo Collection</p></figcaption></figure>

#### Upload NFTs

1. Navigate to the "Metadata" section.
2. Click on the "Import Assets" button to single/batch upload your NFT. Make sure that your images are correctly named in numerical order (1, 2,3...).&#x20;
3. Select or drop your asset/s with or without Metadata. Read more [here](/nft-collections/collection-management/importing-assets-and-metadata) for a step-by-step guide on how to upload.

<figure><img src="/files/0OsTiKISHrj8R7NwZgBg" alt=""><figcaption></figcaption></figure>

### Start a Waitlist

A waitlist is where people can join your collection so they can mint in your pre-sale phase. NFT creators often use waitlists as a strategic tool to gauge demand, build anticipation, and engage with potential buyers before the official release of their digital assets. With this, you can start collecting leads, get your collector's information, and more. This will not require any gas fee to set up and you can change and update this anytime.

1. Navigate to the "Waitlist" section in the "Prepare Drop" Button

   <figure><img src="/files/PpxzZYVuWtzPvbANhEHo" alt=""><figcaption></figcaption></figure>
2. Set up the waitlist and choose which information you will require for your collectors. Read more [here](/nft-collections/listing-nfts-for-sale/waitlist-management)
3. Share your mint page link with your collectors.&#x20;

### Mint Page Preview

{% hint style="warning" %}
Your mint page will be accessible once you have started your waitlist. &#x20;
{% endhint %}

Click "View" as shown below to preview your mint page.&#x20;

<figure><img src="/files/6BDuJ1R1NwYTHXzFTAex" alt=""><figcaption></figcaption></figure>

Review the mint page to understand the user experience. You can customize your mint page by adding and connecting your socials, discord, and website in the "Customize" link.

Take a moment to review all the settings and configurations you've explored. Edit and make changes as needed to understand how modifications affect the overall collection. If you need more help, feel free to email us at <support@niftykit.com>


# Generating Assets

Learn how you can generate assets with free NiftyKit desktop app or upload directly to your collection.

We have utilized the creative ideas from Hashlips to develop a fresh collection called Open Generative Collection. This collection can generate countless variations, making it ideal for open editions that seek to incorporate some generative playfulness.

## Free Open Generator Desktop App (BETA)

We've developed a FREE Desktop App that generates variations quickly.&#x20;

It works offline, and you can run as many tests as you want without uploading to a platform each time. You can upload the generated assets to your preferred Smart Contract platform (such as NiftyKit!) and create a new Drop.&#x20;

<div data-full-width="false"><figure><img src="/files/XogOUhfFIZz8gpokFArZ" alt=""><figcaption><p>Free NiftyKit Open Generator Desktop App (BETA)</p></figcaption></figure></div>

Download the free tool now available in Mac and Windows [here](https://niftykit.com/products/art-generator).

or upload your art layers directly on NiftyKit:[ ](/customize-your-experience/available-apps/generative-collection#uploading-your-layers)

-> [Generative Collection](/customize-your-experience/available-apps/generative-collection#uploading-your-layers)

-> [Generative Collection](/customize-your-experience/available-apps/generative-collection#art-generator-asset-guidelines)


# NiftyKit Creator Public Profile

Learn how to make your NiftyKit profile public and display all of your NFT collections on one page.

Showcase Your Work! Transform your NiftyKit creator profile into a public gallery! This feature allows creators to effortlessly share their collections and NFTs with a wider audience.

To make your profile public:

1. Go to your [NiftyKit account page](https://app.niftykit.com/account)
2. Choose "Make Profile Public"&#x20;

   <figure><img src="/files/XObF5HsIqcQiJ6seFHaB" alt="" width="563"><figcaption></figcaption></figure>
3. Click Save Changes. This will redirect you back to the main dashboard.
4. Navigate to 3 dots, and click view or copy link to get your shareable public profile link

   <figure><img src="/files/dooxFedxsAmzAtmxw3O6" alt=""><figcaption></figcaption></figure>


# File Asset, Size, and Requirements

Learn about the different file formats and file sizes you can upload to NiftyKit or IPFS. Assets manually uploaded to NiftyKit are stored in IPFS.

Below are the file formats that NiftyKit supports for its Standard Collection. You can initially upload your collection assets to IPFS or directly upload them to NiftyKit.

### Supported File Types:

* **Images** – PNG, JPG, SVG, GIFs.
* **Video** – .MP4 – (you can upload other formats, but Rarible and Opensea don’t always display them correctly).
* **Audio** – only on collection smart contracts via batch upload using CSV or JSON (Upload mp3s first to IPFS)
* **3D/AR** -glb.gltf, zip that contains a .gltf file (must be exported&#x20;

### **File Minting Size/ Accepted Types on NFT Marketplaces**

If you have big files, consider resizing or compressing your files before uploading to meet marketplace limitations for them to be displayed perfectly.

| NFT Marketplace    | File Minting Size/ Accepted File Types                                                                                                               |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Rarible.com**    | <p><strong>Maximum file size of 30MB</strong><br>(PNG, GIF, WEBP, MP4, or MP3.)</p>                                                                  |
| **OpenSea.io**     | <p><strong>Maximum file size of 100MB</strong><br>(Image, video, audio, and 3D model file types are supported)</p>                                   |
| **Mintable.app**   | <p><strong>Maximum file size of 200MB</strong><br>(All image formats, mp4 videos, and GLB 3D files.)</p>                                             |
| **Foundation.app** | <p><strong>Maximum file size of 50MB</strong><br>(JPG or MP4 format)</p>                                                                             |
| **SuperRare.co**   | <p><strong>Maximum file size of 50MB</strong> <strong>(Thumbnail: 10MB)</strong><br>(Image, video, audio, and 3D model file types are supported)</p> |
| **KnownOrigin.io** | <p><strong>Maximum file size of 75MB (Cover Image: 25MB)</strong><br>(Image, video, audio, and 3D model file types are supported)</p>                |


# Art Generator Asset Guidelines

Learn how to organizing your art files for your NFT generative collection. This guideline works both for Open Generative Collection and using NiftyKit Desktop Art Generator

By the end of this guide, you'll learn how to set up your file structure, export your files from Photoshop, and organize them into proper folders. No action is required from you, but we encourage you to watch the video to gain a better understanding of the process.&#x20;

{% embed url="<https://www.youtube.com/watch?v=kauZEyRpmqE>" %}
Simple Guide to Organizing Art Files for Your NFT Collection
{% endembed %}

{% hint style="success" %}
Download our Free Generative App (Windows/MacOS): <https://niftykit.com/products/art-generator>\
\
Upload Final Art to NFT collection: <https://app.niftykit.com/signup>&#x20;
{% endhint %}

### Folder Organization

Ensure that the traits are organized in a folder structure, with the folder name being the name of the trait category and individual files under the folder are traits.

Ensure that folders are named with the layering order, 0 being the bottom-most layer. The layering order should come first, then the underscore, and then the name of the trait category.

**Example:**

* 0\_Face
  * Oval.png
  * Round.png
  * Square.png
* 1\_Eyes
  * Round.png
  * Three Eyes.png
  * Anime.png
* 2\_Hair
  * Pink.png
  * Blue.png
  * Curly Black.png
* 3\_Weapon
  * Sword.png
  * Mace.png
  * Nunchaku.png

### Rarity

Rarity is defined by which trait will have a higher chance of appearing, almost like throwing a dart on a board.

For example:

```markdown
0_Face
- Oval.png
- Round.png
- Square.png
```

This setup will have an equal chance of getting each trait.

If we want to introduce rarity, we use the `__r` and a number assigned to it:

```markdown
0_Face
- Oval__r1000.png
- Round__r1.png
- Square__r500.png
```

By appending rarity numbers, this setup says **Oval** has a 1000/1501 chance of getting it, **Round** has a 1/1501 chance, and **Square** will have a 500/1501 chance.

Lower the number, rare it is.

### Empty Traits

Sometimes we want traits that don’t show up, and best way to do that is to create an empty transparent PNG file, called “None” or “Empty” whichever makes sense for your collection. For best results, try to keep the Empty file the same size dimension as your other layers.

```markdown
0_Face
- Oval__r1000.png
- Round__r1.png
- Square__r500.png
- Empty__r10000.png
```

This will have 10000/11501 chance of getting an empty face.

### Conditional Groups (new)

Sometimes, we have 2 traits that just simply doesn’t belong together.

Conditional groups allows only 1 of the “group” members to be selected. We use the `__g` and a number to specify the conditional group.

```markdown
0_Face
- Oval__r1000__g1.png
- Round__r1.png
- Square__r500.png
- Empty__r10000.png
1_Eyes
- Round.png
- Three Eyes__g1.png
- Anime.png
```

Because the layering logic works in sequential order (starts with `Face`, then `Eyes`), if `Oval` is selected, then `Three Eyes` will **never** be selected.

### Blend Modes (new)

The custom blend option can be one of `clear`, `source`, `over`, `in`, `out`, `atop`, `dest`, `dest-over`, `dest-in`, `dest-out`, `dest-atop`, `xor`, `add`, `saturate`, `multiply`, `screen`, `overlay`, `darken`, `lighten`, `colour-dodge`, `color-dodge`, `colour-burn`,`color-burn`, `hard-light`, `soft-light`, `difference`, `exclusion`.

You can read more about it here:

[sharp - High performance Node.js image processing](https://sharp.pixelplumbing.com/api-composite#composite)

You can apply any custom blend modes to any layers:

```markdown
0_Face
- Oval__r1000__g1__color-burn.png
- Round__r1.png
- Square__r500.png
- Empty__r10000.png
1_Eyes
- Round__darken.png
- Three Eyes__g1.png
- Anime.png
```

By default, is set to `over` which will allow the image to be placed on top of the previous layer.

If you are having trouble with your assets, contact us directly on our website.


# Pricing

Discover the perfect plan that suits your needs. Whether you're an individual creator, a pass holder, a small business, or a growing enterprise, we have tailored options designed to empower you.

## Table of contents

* View the full pricing list [here](https://niftykit.com/pricing).
* View Creator Pass Perks [here](#creator-passes-perks)
* View features [here](#features)

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>NiftyKit Starter</strong></td><td><p><code>Free (mint fee not included)</code></p><p></p></td><td>Create unlimited NFTs for drops, editions, all apps (ERC-20 , Crossmint, etc.) airdrops and more...<br></td><td><a href="/files/0s9nBmz0DRh4eXKX5lyI">/files/0s9nBmz0DRh4eXKX5lyI</a></td><td><a href="https://niftykit.com/pricing">https://niftykit.com/pricing</a></td></tr></tbody></table>

{% hint style="info" %}
If you have any further questions about pricing, feel free to reach out to us at <support@niftykit.com>.
{% endhint %}

### Features

<table data-full-width="false"><thead><tr><th width="161">Features</th><th width="191">NiftyKit</th><th width="192">NiftyKit Creator Pass</th></tr></thead><tbody><tr><td>Drops</td><td>✅</td><td>✅</td></tr><tr><td>Editions</td><td>✅</td><td>✅</td></tr><tr><td>Apps  (ERC-20, Credit Card Minting, Generative Collection, Soulbound Token, Share to Earn and more)</td><td>✅</td><td>✅</td></tr><tr><td>Revenue Splits</td><td>✅</td><td>✅</td></tr><tr><td>Token Access</td><td>✅</td><td>✅</td></tr><tr><td>Free Airdrops</td><td></td><td>✅</td></tr><tr><td>Creator Perks</td><td></td><td>✅</td></tr><tr><td>Custom Development</td><td></td><td>✅</td></tr><tr><td>Access to Experts</td><td></td><td>✅</td></tr><tr><td>Buyer Pay Per Mint (PPM)</td><td>$1.50 ea (Buyer pays)</td><td><p>$1.50 ea </p><p>(Buyer pays)</p></td></tr><tr><td>Support</td><td>Limited email &#x26; chat support, Helpdesk</td><td>Priority Support, Discord, In-app chat, Email</td></tr></tbody></table>

### Creator Passes Perks

If you're a current Creator Pass holder, you'll receive priority support for your drops and projects on NiftyKit.

<table><thead><tr><th width="166">Creator Pass</th><th width="131">Community</th><th width="131">Basic</th><th width="118">OG</th><th width="128">Advanced</th></tr></thead><tbody><tr><td>Included Seats (Access)</td><td>1</td><td>1</td><td>1</td><td>3</td></tr><tr><td>Airdrops Basic </td><td>$1.50</td><td>Free</td><td>Free</td><td>Free</td></tr><tr><td>** Pass Perks (% Fee back on every mint)</td><td>0%</td><td>10%</td><td>15%</td><td>25%</td></tr></tbody></table>


# What is an NFT Collection?

Learn how to create your first NFT collection, edit and manage, collaborate, promote and more

NFTs, or non-fungible tokens, have taken the digital world by storm, enabling creators to sell unique digital assets on blockchain networks. NFTs have been used to sell everything from digital art and music to in-game items and virtual real estate.

An NFT collection is a group of unique digital assets. Each asset in the collection is typically related to a specific theme or concept and can be owned and traded independently of the other assets in the collection. For example, an NFT collection might have unique digital trading cards featuring a different character or design.

Drop and Editions Collection is our innovative, easy-to-use toolkit to help you with generative drops or 10k+ NFT projects. It allows creators to seamlessly create smart contracts, upload assets, and prepare for launch.&#x20;

It also helps you lazy-mint your NFTs, saving you the burden of gas fees on larger drop quantities (100-1,000,000+ units). &#x20;

### Drop Collection vs. Edition Collection

Here at NiftKit, we have streamlined creating collections into two main types.&#x20;

Launch a **drop collection** to create and manage unique assets and metadata, control your reveal, do dynamic drop, airdrop token, and more.&#x20;

-> [Learn how to do a drop collection](/nft-collections/minting-101/minting-drop-and-dynamic-nfts)

Deploy an **edition collection** to create and manage editions (one asset, multiple tokens, or 1/1s). Edition does not support airdrop and reveal.

-> [Learn how to do an edition collection](/nft-collections/minting-101/minting-open-and-limited-editions)


# Minting 101

NFT minting is the process of creating unique digital assets on a blockchain network as non-fungible tokens.

Minting NFTs is a way for creators to establish ownership and authenticity of their digital assets, as well as to monetize their work by selling and trading the NFTs on various NFT marketplaces. NFTs are unique and cannot be replicated, making them valuable to collectors and investors.

### How to Mint

One of the key features of NiftyKit is the ability to choose from several different minting options, including lazy minting or drop minting, minting editions, minting dynamic NFTs, and minting through an airdrop. These different types of minting give creators and project managers the flexibility to create and distribute NFTs in different ways, depending on their needs and goals. Moreover, there are two types of collections where you can mint, these are DROPS and EDITIONS.

### **DROPS**

**Drop Minting** allows creators to **mint their NFTs on-demand** rather than all at once. It saves you the upfront costs of gas fees by letting your buyers or collectors pay for the transaction.&#x20;

With Drop minting, you can easily create:

* Generative Drop Collection
* Open Generative Drops
* Dynamic NFTs

-> [Learn to create your drop](/nft-collections/minting-101/minting-drop-and-dynamic-nfts)

**Minting Dynamic NFTs**

Dynamic NFTs, also known as "programmable NFTs," are tokens that can have to change attributes or behavior over time. They can be used for gaming, art, music, and more, and can provide users with unique and interactive experiences that traditional NFTs cannot offer. Using Niftykit Drop collections, you can edit the image and metadata, and re-arrange the order of tokens pre-mint and post-mint. This will give you the ability to create your own dynamic NFTs

[-> Learn to mint dynamic NFTs](/nft-collections/minting-101/minting-drop-and-dynamic-nfts)

### **EDITIONS**

**Edition Minting** is where **NFTs are only minted a set number of times**. Creators can decide how many NFTs to mint, and once that number is reached, no more NFTs will be minted. This approach can be useful for creators who want to create a sense of scarcity and exclusivity around their work, which can increase demand and value. Limited Editions can be used to create 1/1s.

With Edition minting, you can easily create:

* 1/1
* Limited Editions
* Open Editions

-> [Learn to create your edition](/nft-collections/minting-101/minting-open-and-limited-editions)

#### Minting Open Editions and Limited Editions

**Open Edition NFTs are NFTs that can be minted an unlimited number of times**. Creators can mint as many Open Edition NFTs as they want, and buyers can purchase as many as they want. This approach can be useful for creators who want to make their work accessible to a larger audience or want to generate more revenue by selling more NFTs.

**Limited Edition NFTs, on the other hand, are NFTs that are only minted a set number of times.** Creators can decide how many NFTs to mint, and once that number is reached, no more NFTs will be minted. This approach can be useful for creators who want to create a sense of scarcity and exclusivity around their work, which can increase demand and value.  Limited Editions can be used to create 1/1s.     &#x20;

[-> Learn to mint editions](/nft-collections/minting-101/minting-open-and-limited-editions)


# Creating Your Own NFT Collection

Learn how to fill in collection details when creating your first smart contract using NiftyKit

You are the full and only owner of the collection you created on NiftyKit and each smart contract is tied to your wallet address.&#x20;

Using your wallet you can execute blockchain commands to your smart contract for drop functions like starting a sale or withdrawing your earnings once your minting is complete.&#x20;

{% hint style="warning" %}
NiftyKit ***cannot*** execute administrative commands on your owned contract.
{% endhint %}

## Collection Overview

Once you log in, you will be directed to your `creator dashboard` as shown below. To create your first NFT collection, follow these steps:

1\. Navigate to the **\[Create]** button, then click continue.

<div data-full-width="true"><figure><img src="/files/krddCzB6cEhc6taZenOm" alt=""><figcaption><p>NiftyKit Creator Dashboard</p></figcaption></figure></div>

2\. Choose **\[Collection],** and click your preferred collection type: [**\[Drop\]**](/nft-collections/minting-101/minting-drop-and-dynamic-nfts) or [**\[Edition\]**](/nft-collections/minting-101/minting-open-and-limited-editions)

<figure><img src="/files/zCRZtsq4xjudWgiovA1I" alt=""><figcaption><p>Choose between drop or edition collection</p></figcaption></figure>

## Collection Details

Collection details (1 of 3) include:

<figure><img src="/files/NqD0cLGbF7eAZZen600Y" alt=""><figcaption><p>Collections details (1 of 3)</p></figcaption></figure>

| Collection Details (1 of 3) | Description                                                                                                                                                                                                            |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Network                     | By choosing a network, you're essentially designating the currency you'll use to cover the gas fee for creation, as well as the currency you'll receive from minting. Learn more [here](/nft-collections/minting-101). |
| Contract Name               | The label you wish to assign to your smart contract's address on the blockchain. This makes it to identify your collection in the web3 space.                                                                          |
| Contract Symbol             | This is the shortened or abbreviated identifier associated with your contract on the blockchain. Often used to represent your collection. For example: "BAYC" for Bored Ape Yacht Club.                                |
| Collection URL              | The link where your generated NiftyKit mint page will be assigned. This link will be publicly visible, allowing your collectors to mint their NFTs once the sale begins.                                               |

## Collection (2 of 3)

<figure><img src="/files/G0ijxzoktjSD0pPAT0XM" alt=""><figcaption><p>Collection Details 2 of 3</p></figcaption></figure>

| Primary Sales      | This refers to the initial sale of your NFTs directly to collectors.                                                                                                                                       |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Secondary Sales    | These are sales that happen after the primary sale, where collectors or investors resell the digital items they bought from you. You might receive a percentage of the resale price as a royalty.          |
| Royalty Percentage | This indicates the portion of the proceeds from secondary sales that you, as the creator, receive as compensation. It's a way for you to keep benefiting when your digital items are resold in the future. |

{% hint style="info" %}
What's my wallet address? [Learn more here](https://docs.niftykit.com/nft-collections/minting-101/pages/J2MULqa6ckkdbP8VnLgy#1.-digital-wallet).
{% endhint %}

## Collection image size

The mint page banner size is 600px tall and the width spans 100% of the browser. 1800x600&#x20;

The image is generally square and our preview cards are about 371px max width.

## Collection Description

A collection description in NFTs is a brief write-up that explains the theme, style, or artist behind a group of digital artworks. It helps potential buyers understand the collection's concept and artistic intent before making a purchase. You can change this at any time with NiftyKit.&#x20;


# Minting Drop & Dynamic NFTs

Learn how to create your drop collection and do dynamic NFTs

### Minting Dynamic NFTs to your Drop

#### Pre-requisite

* Deployed Drop Collection
* Save the metadata on NiftyKit API
* Ready to upload assets and Metadata

Because you're using NiftyKit's API, these changes do not require a contract/blockchain call and will be applied instantly. This means that you will not need to pay gas fees while editing.

There are two edit options for your drop. These changes will reflect on marketplaces even after your collectors have minted your NFTs.

### How to edit metadata:

* Bulk Edit using CSV Export tool
* Manual edit directly on Drop Dashboard

### Bulk Edit Your NFT and Metadata

To efficiently edit metadata for multiple NFTs and make them dynamic NFTs, follow these steps:

<figure><img src="/files/JzcnzPiXtRTXtLUIBJN0" alt=""><figcaption></figcaption></figure>

1. In your collection dashboard, navigate to the **Metadata Tab**
2. Select **\[CSV Export]**. This action will generate a CSV file containing your current metadata.
3. Open the CSV file in an application such as Microsoft Excel, Google Sheets, or any compatible tool.
4. Edit the metadata within the CSV file according to your preferences. Make the necessary changes.
5. Once you've completed editing the CSV, save the file.
6. Return to your Collection in NiftyKit and proceed to **\[Import assets]**. Choose the \[Metadata] option.
7. Import the CSV file you modified by selecting it from your saved location. This will incorporate the dynamic changes you made.

Additionally, you can also re-order your tokens when making changes in the CSV. This offers you the flexibility to arrange the tokens according to your desired sequence.

### Manual Edit

You can edit NFT metadata directly on NiftyKit, provided that you have stored your metadata in NiftyKit's API. This makes it easy to edit metadata for a specific NFT (or a few NFTs) from your collection

* **Edit Name & Description-** Under the Metadata ta&#x62;**,** Directly edit the name and description per token. Simply double-click on the cell you want to edit and erase or type directly as shown below. It will auto-save once you click outside the cell.&#x20;
* **Edit Button For Properties -** To change the properties manually, simply click the edit button to make changes. You can also edit the Title, asset, and description in this button

<figure><img src="/files/iIIgKv79lG8ak83hLt7f" alt=""><figcaption></figcaption></figure>


# Airdropping NFTs

Learn how to batch airdrop NFTs. Send tokens individually to a wallet address or batch airdrop to all of your community members.

Airdropping NFTs refers to sending NFTs for free to a specific group of individuals or to the wider public. Airdrops can be used as a marketing strategy to promote a new project or to reward existing supporters of a project.

When you airdrop, you mint the NFT for them. This means by airdropping you will pay the gas fee and mint fee. You can batch airdrop up to 250 wallet addresses in one transaction.  All transactions including airdrop are optimized with our Smart Contracts.

### How to Airdrop &#x20;

From your NiftyKit dashboard, go to the **\[Metadata]** tab and click on **"Airdrop".**

<figure><img src="/files/2CdDoY36EGeZWAizoU4D" alt=""><figcaption><p>Airdrop button in your drop collection dashboard in NiftyKit</p></figcaption></figure>

{% hint style="warning" %}
Please note: **ENS is currently not supported,** use only complete wallet addresses
{% endhint %}

To do a batch airdrop, you must list the wallet addresses along with the corresponding quantities of NFTs you intend to send in a CSV file. Make sure to follow the provided template below, otherwise, it will not be read by our system. \
\
Download the sample CSV file below:

{% file src="/files/UeQx9mAyoVY62RRNf51A" %}
CSV template for batch airdrop
{% endfile %}


# Minting Open & Limited Editions

Create limited and open editions of artwork or 1-of-1s within a single collection.

**Creating Open or Limited Edition**

To create an Open or Limited Edition, select **\[Edition]** when choosing a collection type. After creating the contract, you can now create edition tokens.

To create an Edition, select **Create > Edition**

<figure><img src="/files/YlsF0uC5bCUVXXYJokvU" alt=""><figcaption></figcaption></figure>

From there, you can customize your edition details, including:

* the number of copies available for purchase
* the price of each piece
* any additional details you wish to include: overview, description

## Starting Sales in your Editions

Click **\[Generate Link]** to each edition to make it **live**, share the link, and start minting.&#x20;

<figure><img src="/files/REUNW82FeyqOFepQHxTC" alt=""><figcaption></figcaption></figure>

###

### Setting up Pre-sale in Edition

In each edition. Click **\[Edit Access List]** to open up your pre-sale/waitlist/whitelist. This will open up a pop-up where you can enter all of the wallet addresses you wish to be included in this exclusive minting.&#x20;

<figure><img src="/files/dptLAztN9wxayKRQgEQC" alt=""><figcaption></figcaption></figure>

### Setting up Public Sale in Edition

If you have started your sale with pre-sale, simply **delete all of the wallet addresses** in the **\[Edit Access List]** shown in the image above and hit publish.&#x20;

This will immediately reflect and start the public sale.

{% hint style="info" %}
You can add and delete wallet addresses in the edit access list anytime.
{% endhint %}

## Managing Multiple Editions in One Collection

With your collection, you can create unlimited editions and add token access to the same contract. You can generate and disable the link anytime to have control over when you want to start and stop the sale.&#x20;

<figure><img src="/files/MIuvwJIqmTu7SdfUEe6l" alt=""><figcaption><p>Managing Multiple Editions in One Smart Contract</p></figcaption></figure>

&#x20;


# Collaborations & Shared Collections

Learn how to share your NFT projects with teammates, friends, or contributors

NiftyKit Team Collaboration makes it easy to add and remove members from your project. Each NFT project can have multiple viewers (eg. clients) and admins to help manage your NFTs.

You, as the owner of the smart contract, can add and remove admins to your collection.&#x20;

Admins have access to all transactions except the transfer of ownership

### **Pre-requisite**

* Deployed Collection
* Wallet addresses of your teammates
* All admins should be also added as a viewer for it to be visible on their NiftyKit Account

### How It Works

<figure><img src="/files/UhdufG7Vh9eS9MPHSsO1" alt=""><figcaption><p>Members tab in collection dashboard</p></figcaption></figure>

1. Inside your Collection, you will see a “Members” tab.
2. Click Add Admin to add an admin by wallet address
3. Click Invite to open Invite Dialog Box and invite a Viewer
4. You will see 2 options to invite a viewed user
   1. Email
   2. Invite Link
5. Add the user’s Email to send them an invite.
6. Or copy and send the invite link directly to invite users

If the invitee does not have an account, they will be prompted to create an account before accessing your project.

For the Invite Links, the link doesn’t expire until you regenerate one, which can be done in the same dialog.


# Revenue Split

Learn how to auto-distribute your earnings to your collaborators or teammates with NiftyKit Revenue Split

Our smart contracts allow creators and teams to split the primary or secondary sales revenue from their NFT Collections

The Revenue Split tool gives you the ability to add additional recipients to your NFT sales. These recipients can be contributors, collaborators, or donation-based participants in your project.&#x20;

Recipients are the individuals who will receive a portion of revenue from the sale of existing and future projects.

### In this section you'll learn how to:

1. Create your first revenue split contract
2. Apply a revenue split to a new collection

### Step 1: Launch the Revenue Split Builder

In your `creator dashboard`, tap the **\[Revenue Split] tab** to begin.

<figure><img src="/files/r40qUyuIFZGRTp3IYtxo" alt=""><figcaption></figcaption></figure>

### Step 2: Customize Your Revenue Split

In the `revenue split builder`, you'll be able to define the wallet addresses and split amounts for each recipient. When finished, your revenue split will be minted to the blockchain. Make sure to double-check all details before creating. No changes can be made upon creation.

<figure><img src="/files/BiCUtT0D9waa7eACfoiy" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
When minting, be sure you have a [digital wallet and crypto](/get-started/web3-and-nft-basics) in order to pay for transaction costs and gas fees.
{% endhint %}

### Step 3: Apply to New Collection

Once your revenue split contract model has been created, you can apply it to a new collection. From the `creator dashboard`, select **\[New Collection]** to launch the `collection builder`. \
\
You'll have the option to select your newly created revenue split contract for either primary or secondary sales.

{% hint style="info" %}
You can also create a new revenue split from the Collection Builder.
{% endhint %}

<figure><img src="/files/ofu1Cbcxs7cp9zjZ1sEu" alt=""><figcaption></figcaption></figure>


# Split with The Giving Block (Donations Partner)

Learn about our partnership with leading cryptocurrency fundraisers - The Giving Block.

![](/files/S1xqqaF2saGZsaMabSqS)

We're proud to announce that we've partnered with **The Giving Block** to give all our global creators the option to donate a portion of their NFT earnings to empower charities, universities, non-profits, and under-resourced people the world over.

[The Giving Block](https://thegivingblock.com) is one of web3's leading fundraising organizations that help connect non-profits to cryptocurrency donors to help shape a better future for the world. With more than 1500 non-profits to choose from, our users can help bring a direct positive impact to the causes that they choose to support.&#x20;

Read [Giving Back: How NFT Creators Split Revenue](https://thegivingblock.com/resources/giving-back-nft-revenue-split-to-charity/)[ with a Charity](https://thegivingblock.com/resources/giving-back-nft-revenue-split-to-charity/) to learn more.

{% embed url="<https://www.youtube.com/watch?v=a-GqvqIR06s>" %}


# Withdraw Your Revenue Splits

Cash out via NiftyKit Revenue Splitter or Etherscan

## NiftyKit Revenue Split For First Time Users

{% hint style="info" %}
For creators outside NiftyKit collaborating with other creators or brands that use NiftyKit, follow the simple instructions below to withdraw your revenue split income.
{% endhint %}

* Sign up for[ NiftyKit](https://docs.niftykit.com/nft-collections/collaborations-and-shared-collections/revenue-split/www.niftykit.com). No purchase or membership fee is required for this step.
* Connect your wallet at the top right corner, as shown below:

<figure><img src="/files/FsacQF9deKgbPLqul0xZ" alt=""><figcaption></figcaption></figure>

* You should then see "Revenue Split" on your dashboard.
* You now have two ways to withdraw your NFT earnings - either on NiftyKit Dashboard or via Etherscan. The withdrawal process is standard for new and existing users, as shown below:

## 1) Withdraw funds from your Revenue Split

On your dashboard, navigate to the `Revenue Split` tab and connect the Metamask wallet of one of the beneficiaries and you will be able to withdraw the shares that are in the contract.

<figure><img src="/files/RhmQWeYdIpf1uyb66Eyp" alt=""><figcaption><p>Withdrawing funds from your Revenue Split</p></figcaption></figure>

{% hint style="warning" %}
Please note: If you cannot access the funds, you will need to navigate to the Etherscan page of your specific Revenue Split contract. Once on Etherscan, follow the steps below to withdraw your earnings.
{% endhint %}

## 2) Using Etherscan to withdraw funds

Navigate to the smart contract section in Etherscan, connect the wallet, and then request to release the recipient share of funds from the **Revenue Split** smart contract.&#x20;

1. Navigate to the **\[Contract]** tab
2. Click **\[Write Contract]**&#x20;
3. Click **\[Connect to Web3]**&#x20;
4. Connect any wallet (this wallet will pay for the gas transaction)
5. Add the payout wallet address to `account (address) field` under **2. release**
6. Click **\[Write]** and submit for withdrawal. Note: you may need to pay gas for your transaction.

![](/files/NFcwCkfOqVXlTqW09DIg)


# Collection Management

Learn how to manage your smart contract. Easily control your sales, reveal, and post-drop setup

In this guide, we will explore some best practices and practical tips to help you effectively manage your NFT collection. We will focus on uploading your NFTs, managing sales, hiding and revealing your NFTs, and possible post-drop changes&#x20;

By following these guidelines, you'll be able to optimize your NFT collection management and make the most of your digital assets.

[-> Learn to import/upload assets and metadata](/nft-collections/collection-management/importing-assets-and-metadata)

[-> Learn to manage sale phases](/nft-collections/collection-management/sales-management)

[-> Learn to manage reveal modes](/nft-collections/collection-management/reveal-management)

[-> Learn to manage post drop set up](/nft-collections/collection-management/post-drop-management)


# Importing Assets & Metadata

Learn how to upload your assets and metadata directly to your drop.

NiftyKit simplifies digital asset management by enabling **direct asset and metadata uploads** without third-party apps. Our import tool will upload your assets directly to IPFS, saving time and ensuring asset accessibility and safekeeping.&#x20;

[-> Check supported file types here](/get-started/getting-started/file-asset-size-and-requirements)

<figure><img src="/files/F1YmfwaGhzFO5MGAOjFU" alt="" width="563"><figcaption><p>Import Asse: How to bulk upload NFTs using NiftyKit</p></figcaption></figure>

## Prerequisites

1. File names should be numerical (eg. 1.png, 2.png, 3.png, etc) otherwise the token IDs will be assigned randomly.
2. Assets should already be generated and in a single layer.&#x20;
3. Save metadata in NiftyKit API (Recommended)
4. For CSV or JSON files, it must follow the exact template below. Otherwise, it cannot be read by our system.

{% file src="/files/vjg2nnAYs28asUyGu9yw" %}
Sample  CSV with no image link
{% endfile %}

## How to upload assets and metadata?

There are two ways to upload your assets.

1. Upload assets separately with metadata
2. Upload CSV or JSON with IPFS links of your assets

<figure><img src="/files/Fj7pA671NXKs3Q3aBXPg" alt="" width="375"><figcaption><p>How to Import Assets to your NFT collection</p></figcaption></figure>

## [Ready to import assets?](https://app.niftykit.com/login)

#### [-> Import now](https://app.niftykit.com/login)

When utilizing the Import Metadata feature, you can either upload a file of just metadata or a combination of assets (images, videos, gifs) and metadata.

Note that when uploading metadata, the following are **optional fields:**&#x20;

* image
* animation\_url,&#x20;
* background\_color,&#x20;
* youtube\_url, and&#x20;
* external\_url.

Including an image field in your CSV or JSON file will override any previously uploaded images for that specific NFT.

Uploading a CSV or JSON with an image field will override any previously uploaded image.

If you upload image files and metadata already exists, we will update only the images. For example, if you have already uploaded ten tokens and uploaded image 5.png, we will update the image for token #5.

{% hint style="info" %}

{% endhint %}

<figure><img src="/files/YWO2lqP6zI73fVgWdFRZ" alt=""><figcaption><p>This is a sample CSV file when uploading metadata only.</p></figcaption></figure>

<figure><img src="/files/nv0LOYV8usDGwrOXw7Rw" alt=""><figcaption><p>This is a sample CSV file when uploading both assets and metadata.</p></figcaption></figure>

As an alternative, you can also add or edit the metadata directly from your dashboard. Just click on **\[EDIT]** next to the asset you want to edit, click **\[ADD PROPERTY],** enter the traits, and then **\[SAVE].**

## [**Ready to upload your metadata?**](https://app.niftykit.com/login)

#### [-> Upload metadata to your Collection here](https://app.niftykit.com/login)


# Sales Management

Learn how to create chain sales for pre-sale and public sales for your NFT drop collection. Set the mint price, max number of NFTs, & set up batch mints.

In the next few sections, we will guide you on different types of sales processes that are possible by combining our products and tools.

With your NiftyKit drop, you have full control over your sales setup. You can start your sale (pre-sale or public sale) in any order. If you wish to change your mint price or change the supply of your total NFTs, you need to stop and restart the sale in order to edit it.&#x20;

### Starting your Sale&#x20;

<figure><img src="/files/xiU4VzZCM8RJqy9QqtlU" alt=""><figcaption><p>Starting your Sale in your Drop Collection using NiftyKit</p></figcaption></figure>

* **Step 1:** To start your sales/drop - click on "**Prepare Drop**" on your Drop dashboard.
* **Step 2:** Upload a Pre-reveal Asset (Image or Video) to access Pre-sale or Public Sale. (Learn more about :[Pre-Reveal Placeholder](/nft-collections/collection-management/reveal-management/pre-reveal-placeholder))
* **Step 3**: Start your sale by clicking **\[Presale] or \[Public Sale].**

{% hint style="info" %}
&#x20;If you want to do a waitlist (collect wallet addresses to the mint for your pre-sale) read more here: [Waitlist Management](/nft-collections/listing-nfts-for-sale/waitlist-management)
{% endhint %}

### Sales Set up

You can set the number of NFTs to reflect the quantity of your drop. You can also set the price-per-mint, which will apply to all your NFTs. \
\
Next, set the max number of NFTs that any one wallet can mint in the "**Max NFTs Per Wallet**" section. The "**Max NFTs Per Mint**" section allows people to mint NFTs in batches, but will not exceed the Max NFTs Per Wallet limit.

After Clicking **\[Pre-sale],** you can now set up your sales in your contract. All values you see below can be changed anytime. Learn more in [#editing-your-sale](#editing-your-sale "mention")

{% hint style="info" %}
**Max NFTs Per Mint = Batch Minting**
{% endhint %}

{% hint style="info" %}
Please Note: For free mint, set the price to 0 (zero) and continue.
{% endhint %}

### Editing your Sale

If you want to edit or change your sale setup, tap on **\[Stop Pre-sale]** or **\[Stop Public Sale]** on your collection dashboard. Stopping the sale will allow you to edit:

* Switch type of sale (pre-sale or public)
* Change price per NFT
* Change max NFT per wallet
* Change max per mint


# Reveal Management

Learn how to set a pre-reveal placeholder, create an access list and airdrop.

On NiftyKit, your assets are set to hide by default when you create a Drop.&#x20;

Our Reveal Management tools give you the flexibility to create a fun and exciting reveal for your collectors. These tools include an access list and an easy airdrop tool!

### In this section you'll learn how to:

1. Set or update pre-reveal placeholders
2. Creating an allowlist
3. Push metadata to IPFS (or store on NiftyKit API)
4. Reveal Your Assets&#x20;

### Steps to Reveal Your NFT

1. Save your metadata in NiftyKit API (recommended)
2. Set your placeholder (recommended)
3. Set up your reveal&#x20;


# Pre-Reveal Placeholder

Learn how to set a pre-reveal placeholder for your minted NFTs.

### What is a Pre-Reveal Placeholder?

Pre-reveal placeholders are usually used to hide the NFTs before revealing the generative collection. The artwork won’t actually be revealed until the NFT is minted, and collectors will only know which NFT in the collection they own once they buy the NFT.&#x20;

In other words, the art only reveals itself ***after*** it’s purchased, and a placeholder is a temporary image, a curtain before the stage.&#x20;

We highly recommend saving your metadata on the NiftyKit API, so you can make changes any time (pre or post-mint)

{% hint style="info" %}
**Note:** Uploading a pre-reveal placeholder will be a required step so you can access your waitlist, pre-sale and public sale.
{% endhint %}

### Set up Pre-Reveal Placeholder Image

To change or update the pre-reveal image, tap **\[Prepare drop]**. This will open a dialog that will walk you through the process of adding a placeholder (image or video) for your NFTs. Once set, you will be able to control your [reveal](/nft-collections/collection-management/post-drop-management) at any time, and send airdrops.

<figure><img src="/files/i3doPhWMpLCDXe8Jfazw" alt=""><figcaption><p>Uploading pre-reveal asset using NiftyKit</p></figcaption></figure>

You can edit and change your image and metadata in your pre-reveal. All changes will be immediate to the blockchain but will need to refresh metadata on secondary marketplaces.

{% hint style="info" %}
Adding a pre-reveal placeholder to your drop makes it so that your NFTs and metadata are hidden upon initial mint. It allows you to control when your community gets to see the final assets and metadata. We recommend adding a pre-reveal placeholder so that your **NFTs and metadata are protected from sniping**. Without a placeholder, customers will see a broken image on OpenSea
{% endhint %}

### Add Attributes

You can now also set attributes for pre-reveal placeholders. This means that you can add a set of common properties that will show up on marketplaces.

To add attributes to your placeholder simply click **\[Upload or Edit Pre-reveal]** on your NFT tab and add it manually.

### Editing Pre-reveal image

<figure><img src="/files/cIc9ttPNXrWlfcrWhmVM" alt=""><figcaption><p>Edit your pre-reveal image to your NFT collection in NiftyKit</p></figcaption></figure>

Your uploaded pre-reveal asset is manageable under your NFT tab in the Drop dashboard. If you want to make changes and edit your pre-reveal asset and attributes, simply tap **\[Edit Pre-reveal]** button.&#x20;

All changes will be instant if you save your metadata through NiftyKit API.

### OpenSea Management

{% hint style="info" %}
**Not seeing your placeholder on OpenSea?**

It can take up to 24 hours for the image to show up and update on OpenSea. When you reveal or set a pre-reveal image, we update the metadata on IPFS. \
Propagation to OpenSea is NOT instant. If you aren’t seeing your NFTs, click `Refresh Metadata` on OpenSea to force request metadata.
{% endhint %}

There are ways you can investigate if your metadata is working.

* **Set Base URI** – Check Etherscan to ensure that you ran the Set Base URI request successfully. If your images haven’t shown up you may have an issue with your metadata not pointing to IPFS.<br>
* **Refresh Metadata** – Once IPFS is confirmed, click `Refresh Metadata` and do a hard browser refresh in OpenSea.<br>
* **Validate Using OpenSea API** – Check what metadata OpenSea is pointing to. Check for errors by visiting this link after entering your smart contract address and the token you wish to validate: `https://api.opensea.io/asset/{{ INSERT SMART CONTRACT ADDRESS }}/{{ INSERT TOKEN ID }}/validate`

{% hint style="info" %}
**Bonus feature**: Once assets have been uploaded on the DropKit dashboard, users can now also re-order their NFT rows by dragging the dots on the left-hand side of each of the assets.
{% endhint %}


# Revealing Your Metadata

Learn how to manage your reveal modes for your NFT drop collection.

### Reveal Your Metadata

Revealing is typically done once your project has sold out or whenever you choose to reveal it. Users can have as many sales as they would need before revealing their assets and even have the option to extend their supply even after they hit their max limit set when you configure a sale.

You can tap **\[Reveal]**. This will open a dialog that will walk you through the process of revealing your NFT assets and metadata.

<figure><img src="/files/2nS0WQJ0AoCWxmFzao1W" alt=""><figcaption></figcaption></figure>

For the pre-reveal, you can select Hide All: Show collectors only your pre-reveal placeholders.

While revealing your metadata, you will have 4 options on screen:

* **Reveal all**: Display all of your NFTs at onc&#x65;**.**&#x20;
* **Reveal-as-you-mint**: The NFTs will be displayed as soon as your collectors mint your assets. It hides all traits of unminted NFTs.
* **Reveal individual NFTs**: You can select the individual NFTs to reveal on screen.
* **Reveal custom range**: You can select a range of NFTs that you choose to reveal.

### Switching Reveal status

{% hint style="info" %}
Reverting back from revealed to hidden status is applicable but the minted NFTs on marketplaces will take up to 24 hours to reflect your changes&#x20;
{% endhint %}


# Post-Drop Management

Learn how to manage withdrawing funds, transferring ownership of your contract, and renouncing your contract.

### In this section you'll learn how to:

1. Withdraw your funds.
2. Transfer ownership of your contract.
3. Renounce your contract.


# Withdrawing Your Funds

Learn how to withdraw your funds on NiftyKit.

This guide will walk you through withdrawing funds from your NFT Collection, whether you prefer the convenience of the NiftyKit dashboard or the more granular control of a blockchain explorer like. Etherscan, Polygonscan, or Basescan.&#x20;

Learn how to withdraw money from your NFT collection directly through:

* [NiftyKit (no-code NFT tool)](#option-1-withdraw-your-funds-in-your-niftykit-dashboard) or&#x20;
* [Etherscan (for custom contracts)](#option-2-withdrawing-funds-directly-on-etherscan-polygonscan)

This works for all networks including Ethereum, Base, Optimism, Arbitrum, and more.

{% embed url="<https://youtu.be/8fhxEMoNunI>" %}
Video guide for Withdrawing Money on Etherscan
{% endembed %}

### Option 1: Withdraw Your Funds in your NiftyKit Dashboard

**Before you dive in, make sure you have a** [**NiftyKit account** ](/updates-and-changelog/security-report)**and a deployed smart contract. Don't have one yet?** Create your free NiftyKit account and build your no-code NFT collection.

Once your drop has started selling, you're eligible to withdraw funds from your drop contract at any time.&#x20;

With NiftyKit, there is no need to wait until your  NFT drop has sold out – feel free to withdraw at any time. You can view your total earnings on the `Overview` tab. Here are the steps to claim your NFT sales:

1. Log In: [app.niftykit.com/login](https://app.niftykit.com/login)
2. Go to Your Collection
3. Connect the correct wallet address that you used to create the contract
4. Click Withdraw
5. Receive Earnings: In the set primary wallet.

<figure><img src="/files/JOR8YPNON5nc9ijO8Ep8" alt=""><figcaption><p>Withdrawing Your Funds Directly in your NiftyKit Dashboard</p></figcaption></figure>

## Option 2: Withdrawing Funds Directly on Etherscan/Polygonscan

Creators can also interact directly on Etherscan and Polygonscan. Learn how you can directly withdraw your funds on the blockchain explorer.

* Head to your etherscan/polygon scan link. There are three ways to do this
  * Click the link from your Niftykit drop page
  * Click it on OpenSea
  * search your contract address  directly on etherscan/polygonscan&#x20;

On your **drop page** click the etherscan/polygon scan button at the top right corner

![](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyrUuRLqblqKRfJtuslV7%2Fuploads%2F7g062YTclqP6sZ86QyQc%2Fimage.png?alt=media\&token=ed04d7b9-1473-4358-8692-b370601fd39b)

​Make sure you are on the contract level. Click your contract address on the profile summary.​ The link should be <https://etherscan.io/address/\\[Your> contract address]

![Contract Etherscan link](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyrUuRLqblqKRfJtuslV7%2Fuploads%2FhH1GDV59gMnJRP8w9RXg%2Fimage.png?alt=media\&token=9685b68a-6272-4a0b-b140-dfe9c7723d35)

### Step 2: Go to the Contract Tab <a href="#step-2-go-to-contract-tab" id="step-2-go-to-contract-tab"></a>

* Once you are on the contract level of your etherscan/polygonscan.&#x20;
  * Go to the Contract tab&#x20;
  * click on write contract.
  * Connect to Web3 with the original wallet (ownership wallet).

mart Contract

<figure><img src="/files/2778em7XaTtsx9rkgVLl" alt=""><figcaption></figcaption></figure>

### Step 3.  Withdraw <a href="#step-2-add-new-ownership" id="step-2-add-new-ownership"></a>

* Scroll down and head over to Withdraw and click \[write]. Important Note: When using Etherscan/Polygonscan, you'll need to pay gas fees for the transaction.<br>

  <figure><img src="/files/EbnXmQAlaMKrwdR6uAr5" alt=""><figcaption></figcaption></figure>

### **Create a Smart Contract in Minutes!** [**Effortlessly Mint and Withdraw Here.** ](https://app.niftykit.com/signup)


# Renouncing Your Contract

Learn how to renounce your contract on NiftyKit.

### Renounce Your Contract

Once your drop has fully commenced and is considered complete, you might want to consider renouncing your contract. Here are a few reasons why renouncing might be wise:

* Show your collectors that no one will ever be able to run any admin functions on the contract keeping the integrity of the project intact long-term.
* You do not ever want your smart contract accessible by any malicious person that may happen to get access to your wallet's private keys and can access and run commands on your smart contract.
* You do not want to accidentally change or mess up the metadata and want to freeze the metadata as is.

Please ensure all your metadata is in place before you continue with this step. On your DropKit Dashboard, select the smart contract you've created that you would want to renounce.&#x20;

Next, select the dropdown option on the far right corner and click on "**Renounce Contract**" to complete this step.&#x20;


# Transfer Ownership of Contract

Learn how you can transfer ownership of your contract.

The transfer of smart contract ownership helps users to transfer their projects to new owners. This can be allowed to occur due to a change of leadership, shifting roles/responsibilities within the project, or even extreme cases such as a project being hacked.&#x20;

Follow the steps below to transfer NFT project ownership to new owners:

1. [For Collections created before March 2023](#for-eth-mainnet-collection-created-before-march-2023)
2. [For Collections created after March 2023](#for-collections-created-after-march-2023) (Diamond Smart Contract)

### For ETH Mainnet Collection created before March 2023.

#### Step 1: Go to Etherscan

* Head to your etherscan/polygon scan link. There are three ways to do this
  * Click the link from your NiftyKit drop page
  * Click it on OpenSea
  * search your contract address  directly on etherscan/polygonscan&#x20;

On your **drop page** click the etherscan/polygon scan button at the top right corner

![Etherscan link on your Drop Page ](/files/5PlQMznmM0Y7XL5f2xMI)

Make sure you are on the contract level. Click your contract address on the profile summary.&#x20;

![Contract Address Etherscan link](/files/cle3uyLIZcBBkD1hRk1b)

The link should be <https://etherscan.io/address/\\[Your> contract address]

#### Step 2: Go to  Contract Tab

* Once you are on the contract level of your etherscan/polygonscan. Go to the Contract tab then click on write contract. Connect to Web3 with the original wallet (ownership wallet).

![Write Contract on your Etherscan or Polygonscan of your Smart Contract](/files/i4cL71jFeQGmzVwSj4KD)

#### Step 3: Add New Ownership&#x20;

* Under section **\[17. transferOwnership]** paste the new wallet address and select "**Write**". The ownership of the smart contract will now be transferred to the new wallet address.
* Please note that completion of this step will incur gas fees.

![](/files/tu8FH8rSRT55NMNykRZY)

### For Collections created After March 2023:&#x20;

{% embed url="<https://www.youtube.com/watch?v=LZA-90d09qU>" %}
How to Transfer Ownership of Diamond Smart Contract
{% endembed %}

Pre- requisite:&#x20;

* Collection's contract address
  * To get the wallet address, go to your NiftyKit Mint Page and click the etherscan button

<figure><img src="/files/3B3oIcWhbQNpX1K0zpCF" alt="" width="375"><figcaption></figcaption></figure>

&#x20;Copy the contract address under Primary Summary

<figure><img src="/files/hvUANuG7Ak5zif4BMuNE" alt="" width="375"><figcaption></figcaption></figure>

1. Go to louper - [louper.dev](https://louper.dev/)
2. Paste your contract addrress under search by addresses
3. Click the correct network on the drop-down
4. Click Search

   <figure><img src="/files/WxRCmvMJLHyAwUvOlWAa" alt=""><figcaption></figcaption></figure>

   5\. Scroll down once pop-up

   6\. Find and Click to ‘’Writable’’&#x20;

<figure><img src="/files/bnYblvwO4BjO8o4OmPeF" alt=""><figcaption></figcaption></figure>

7\. Click "write" and connect your wallet that owns the collection.

<figure><img src="/files/rkyhRceq9fzFgCWTFi2H" alt=""><figcaption></figcaption></figure>

8. Once the wallet is connected, click the drop-down and Choose **transferOwnership**

<figure><img src="/files/LNUQOGRASsErfALRiw1A" alt=""><figcaption></figcaption></figure>

9. Under transferOwnership, you need to add:\
   "0" under Value \
   New wallet address under newOwner (address)
10. Click Write to push the changes (Note: This trasactions requires gas fee to execute this process)

<figure><img src="/files/zshXVhWr40hQ9R5z0GpC" alt=""><figcaption></figcaption></figure>

Check the contract if it’s successfully executed

<figure><img src="/files/DTtGkYE5ay4kuWOWzlDC" alt=""><figcaption></figcaption></figure>


# Listing NFTs for Sale

Learn how to list your NFTs for Sale for pre-sale and public sale

### Sale types

For collections, you can do multiple sale phases at a time. As the collection owner, you have full control over which sale type: pre-sale or public sale you want to do with your project.

The general sales flow for a basic drop is creating a waitlist page, open pre-sale then doing the public sale. With NiftyKit, you can strategize and restart/stop your sale at any point.

-> [Start creating your waitlist page here to start collecting wallet addresses to join your pre-sale](/nft-collections/listing-nfts-for-sale/waitlist-management)

-> [Learn how to start pre-sale and limit the minting to the collectors in your waitlist/access list](/nft-collections/listing-nfts-for-sale/presale-management)

->[ Learn how to start a public sale to let anyone mint to your collection](/nft-collections/listing-nfts-for-sale/public-sale-management)


# Waitlist Management

A waitlist can help you generate and collect interest in your NFT project before its sale. To set up a waitlist, you first need to define the requirements for collectors to join it.

To begin, [go to your draft or launched collection](https://app.niftykit.com/login).&#x20;

Click on the "Prepare Drop" button and select "Waitlist".

<figure><img src="/files/MOtBl05U2wZyy0devvf6" alt=""><figcaption><p>Step 1: Prepare Drop</p></figcaption></figure>

The **waitlist** helps you build and collect interest in your NFT project prior to your drop.

The following option will appear when starting the waitlist: Select the information you want to collect from your collector.

<figure><img src="/files/pyVzFkQVtK7v3NBG54yK" alt=""><figcaption><p>Step 2: Create Waitlist </p></figcaption></figure>

The **waitlist** can collect the following info from each submission:

* [ ] Require wallet address (required)
* [ ] Require Full Name
* [ ] Require postal address (country, city, zip code)
* [ ] Require email
* [ ] Require phone number
* [ ] Require minimum ETH balance
* [ ] Require specific token
* [ ] Require CAPTCHA (recommended)
* [ ] Display custom terms and conditions

Click the **\[Start Waitlist]** button once you have selected the information you want to collect.

*No blockchain transaction fee, just a signature is necessary.*

You can now share the Waitlist link with your collectors.

<img src="/files/qeT0QaCLcwQWuW0SJck6" alt="" data-size="original"> <img src="/files/zuSEkLV3UApSfTiKzLaP" alt="" data-size="original">

## [Ready to Start your waitlist?](https://app.niftykit.com/login)

### [-> Start your waitlist now](https://app.niftykit.com/login)


# Presale Management

Learn how to create a Pre-sale Access List for your NFT drop collection.

### Create an Access List (aka Presale List, Whitelist, or Mint List)

Set up an access list for your drop by navigating to the **\[Presale List]** tab within `Drop Dashboard`. From here, you can add any wallet or smart contract address.

<figure><img src="/files/SJAq0lUpr189lf8qoijg" alt=""><figcaption></figcaption></figure>

## Uploading your Waitlist

On your pre-sale tab, go to the **\[Setup]** button to upload your pre-sale list or waitlist CSV or add your collector's wallet address individually.

<figure><img src="/files/PJK53WsRMcjn89cYK9Hi" alt=""><figcaption><p>Pre-sale setupload: Upload wallet address list (waitlist)</p></figcaption></figure>

You can download the template here:

{% file src="/files/UeQx9mAyoVY62RRNf51A" %}
CSV template for Pre-sale list
{% endfile %}

* Quantity refers to the mint limit per wallet for the pre-sale phase

### Setting Mint Limit for Pre-sale

You can limit the number of mints allowable per wallet on your pre-sale. Set the maximum mint on your CSV, and set the **\[quantity]** to the number of mints you want to allow per wallet.

However, your **\[quantity]** should not exceed the **\[Max NFTs per Wallet]** on your pre-sale setup.&#x20;

Your contract will follow **\[Max NFTs per Wallet]** whenever **\[quantity]** is higher.&#x20;

{% hint style="warning" %}
Hit **\[Publish list]** to submit the list to your contract. Not publishing it will only save it on the NiftyKit UI and collectors on the list won't be able to mint on your pre-sale
{% endhint %}


# Public Sale Management

Learn how to set your price and type of sale for your NFT drop collection

### Step 1: Prepare Your Drop

Before launching your drop, you will need to set a few key values to set it up. In your`Drop dashboard`, tap on **\[Prepare Drop]** to open a dialog where you can modify the price and type of sale.

<figure><img src="/files/Q4F7tunJ37At6CWJo3Br" alt=""><figcaption></figcaption></figure>

### Step 2: Drop Launch

Drop Collection is flexible in that it allows you to set your price, max mints per wallet (meaning how many NFTs a particular wallet can mint), add revenue splits, and much more on each sale. \
\
When you're ready, tap **\[Start Sale]** to start selling and minting NFTs.

<figure><img src="/files/WiXu86plNoZYALo9D0LK" alt=""><figcaption></figcaption></figure>


# Our Smart Contracts

Learn more about optimized Diamond Smart Contracts launched with NiftyKit

[NiftyKit](https://niftykit.com/) is a blockchain-based platform that offers smart contract services. Smart contracts are self-executing contracts with the terms of the agreement directly written into code, which automatically enforces the rules and regulations agreed upon by the parties involved.&#x20;

The NiftyKit smart contract platform is built on the Ethereum blockchain and offers a user-friendly interface that allows users to create, deploy, and manage smart contracts with ease. The platform provides increased **security, transparency, and cost-effectiveness**, as smart contracts are stored on the blockchain and cannot be altered once deployed. Niftykit smart contracts also eliminate the need for intermediaries or third-party services, reducing costs and increasing efficiency.


# Perfect Abstractions Audit

NiftyKit has partnered with Nick Mudge, the author of Diamond Contract himself, and Perfect Abstractions, to audit our contracts.

Smart contracts are an essential component of blockchain technology, enabling automated, self-executing contracts to be created and executed based on specific conditions. However, while blockchains are generally resistant to attacks, smart contracts are not immune to vulnerabilities that can compromise their safety and security. To ensure that your smart contracts are as safe as possible, a smart contract audit is essential.

A smart contract audit is a comprehensive review of the code and functionality of a smart contract, which helps to expose any technical or code-related vulnerabilities, as well as any human errors that may exist.&#x20;

There are several common types of vulnerabilities in smart contracts that we look for during our audits, including re-entrancy attacks, function visibility errors, spelling mistakes, and gas optimizations. Re-entrancy attacks are among the most critical types of attacks, where malicious code tries to drain the funds in a particular contract. Function visibility errors can also be devastating, as a developer may forget to set the visibility of a function as private, allowing a hacker to call the "destruct" function to destroy the entire contract immediately. Even simple spelling mistakes can cause a smart contract to malfunction, leading to unexpected consequences. Finally, gas optimizations are often overlooked, and can lead to unnecessarily complicated and inefficient smart contracts.&#x20;

### About Perfect Abstractions

<figure><img src="/files/SceLeAMWCxuRXus6Fabn" alt=""><figcaption></figcaption></figure>

[Perfect Abstractions](https://www.perfectabstractions.com/) is a leading blockchain technology consulting firm that specializes in smart contract development, auditing, and security. Their team of experts has years of experience in Solidity programming and blockchain technology, and they use their extensive knowledge to provide top-quality smart contract auditing services that ensure the safety and security of your blockchain projects. Their commitment to excellence and attention to detail has earned them a reputation as one of the most trusted and reliable blockchain consulting firms in the industry.&#x20;

### Niftykit-Contracts-V3 Audit

Perfect Abstractions conducted a smart contract audit of Niftykit's Niftykit-Contracts-V3 from 7 March 2023 to 28 March 2023.&#x20;

\
This new version of NiftyKit implements EIP-2535 Diamonds, allowing it to easily add or remove functionality for NFT collections. The codebase is modular and well-written.

\
See the full audit [here](https://audit-niftykit-contracts-v3.perfectabstractions.com/)&#x20;


# Diamond Smart Contracts

Introducing "Diamonds",  ERC-2535: Diamonds, Multi-Facet Proxy, is a new type of smart contract system t- a highly modular, upgradable after deployment, and has virtually no size limit

All new upcoming tools and features released by NiftyKit will be applicable to all deployed Diamond smart contracts moving forward.

### Advantages of using Diamond Contracts:

1. **Single Address for Unlimited Contract Functionality.** Deployment, testing, and integration with other smart contracts, software, and user interfaces are made simpler through the use of a single address for contract functionality.
2. **Exceeding 24KB Maximum Contract Size.** It is possible to keep related functionality within a single contract or at a single contract address, as Diamonds have no maximum contract size.
3. **Organization of Contract Code and Data.** A Diamond provides an effective system for isolating different functionalities and connecting them together, as well as sharing data between them in a gas-efficient manner.
4. **Upgrading Functionality.** Upgradeable Diamonds can be improved to add, replace or remove features as required. As Diamonds have no maximum contract size, there is no limit to the amount of new functionality that can be added over time. Through upgrading, parts of a Diamond can be altered without having to re-deploy existing processes.
5. **Immutability.** It is possible to deploy an immutable Diamond or make an upgradeable Diamond immutable at a later stage.
6. **Reusing Deployed Contracts.** Existing, deployed contracts on the blockchain can be utilized to create Diamonds, allowing for the creation of on-chain smart contract platforms and libraries.


# Royalties

Setting Your Royalties

The wallet to receive royalties from secondary marketplace sales can be set here when you create a new smart contract.&#x20;

`Wallet Address or Revenue Split to Receive Secondary Sales`

<figure><img src="/files/eHfCqQblfKMIE6yvvQkh" alt=""><figcaption></figcaption></figure>

You can use a single address, or choose a Payment Splitter to set as the wallet address to receive royalties.&#x20;

{% hint style="info" %}
This **cannot be changed** once the smart contract is created.
{% endhint %}

###


# Updating Operator Filter (Blocking Blur and OpenSea)

Learn how to update your royalty operator filter subscription to block trading/buying on Blur and OpenSea.

Operator filter is a tool or feature provided by some NFT marketplaces that allows users to control whether or not creator royalties are included when NFTs are traded or sold on their platform.&#x20;

Subscribing to Lists: Not all NFT marketplaces automatically enforce royalties. To ensure that your royalties are respected and paid out appropriately, you may need to subscribe to specific lists or services.

If you want to keep your royalties, this guide will walk you through blocking specific operators and opt for NFT marketplaces like Magic Eden, which prioritizes creators' earnings.&#x20;

With NiftyKit, all Ethereum Mainnet and Polygon Diamond Contracts (created March 14, 2023, onwards) are fully compatible with Magic Eden’s standards. Plus, we’re providing updated contract filters to ensure a seamless transition for our users.

**Overview**

* [Check if you are currently subscribed to the default registry by OpenSea](#check-if-you-are-currently-subscribed-to-the-default-registry-maintained-by-opensea)
* [Check if you are currently subscribed to the default subscription](#check-if-you-are-currently-subscribed-to-the-magic-eden-default-subscription)
* [Subscribe to the Magic Eden subscription](#subscribe-to-the-magic-eden-list) (supports creator royalties)

**Requirements**

To complete this walkthrough, you will require:

* Your collection’s contract address
* Access to the wallet address you used to create the contract/collection (Collection owner address)
* Some ETH or Polygon in the owner's wallet for operation

### Check if you are currently subscribed to the default registry maintained by OpenSea.

First, check if you are subscribed to the default operator filter registry maintained by OpenSea.&#x20;

1. Visit the ETH [OperatorFilterRegistry](https://etherscan.io/address/0x000000000000aaeb6d7670e522a718067333cd4e#readContract) contract on Etherscan. \
   \
   If your collection is on Polygon, visit the Polygon [OperatorFilterRegistry](https://polygonscan.com/address/0x000000000000aaeb6d7670e522a718067333cd4e) contract on Polygonscan.

{% hint style="info" %}
If the above link did not already navigate you to the `“Read Contract”` tab, manually navigate to `“Contract”` > `“Read Contract”.` The UI should appear as follows:
{% endhint %}

<figure><img src="/files/ESYFjugetFGkoJtSqTu1" alt=""><figcaption><p>Checking if your NFT collection is subscribed to OpenSea Operator Filter .</p></figcaption></figure>

2. Scroll down and find **`“10. isRegistered,”`**&#x20;
3. Paste your collection’s contract address into the “registrant” field
4. select “query.”  This query doesn’t need your wallet connected thus, it is safe and free.

<figure><img src="/files/N4KKuEDgNNYnowF51Vcs" alt=""><figcaption></figcaption></figure>

The response will be `“true”` if your collection token contract is an existing registrant of the default Open Sea operator filter registry:

The response will be `“false”` if your collection’s token contract is not an existing registrant of the default Open Sea operator filter registry.

You are good if you are an existing registrant (query returns true). If not, please see the “How to switch to default registry” section. Once complete, please continue to the next step.

### Check if you are currently subscribed to the Magic Eden default subscription

The next step is to check if you are subscribed to the default subscription.

1. Go to `“13. subscriptionOf,”`&#x20;
2. Paste your collection’s contract address into the “registrant” field,&#x20;
3. Select “query.” The query doesn’t need your wallet connected thus, it is safe and free.
4. Check the subscription address.

<figure><img src="/files/wETfPEhAvfFjrOnPd73p" alt=""><figcaption><p>Checking if you are subcribe to Magic Eden Operator Filter</p></figcaption></figure>

Take a note of the subscription address. In the following example, the (3) subscription address is [`0xCcB7BD34a1fC6D256E3A9121ABa7bD3eEe28F885`](https://etherscan.io/address/0xCcB7BD34a1fC6D256E3A9121ABa7bD3eEe28F885). You may see different subscription addresses.

If your subscription address is <mark style="color:blue;">**`0xB197F889dd1550533A0F1112dbD5B12e5dded25d`**</mark>, you are subscribed to MagicEden default subscription. You are all set.

If your subscription address is NOT <mark style="color:blue;">**`0xB197F889dd1550533A0F1112dbD5B12e5dded25d`**</mark>, please follow the next step to change the subscription to MagicEden subscription.

### Subscribe to the Magic Eden List

In this step, you need to connect your collection owner wallet to Web3 to perform a write operation. You will also need some ETH in your wallet to pay for the gas transaction.

1. Connect the collection’s owner wallet by clicking “Connect to Web3” and follow up the instructions from your wallet.

<figure><img src="/files/yn63Aqz8g7RzyVFLsutW" alt=""><figcaption><p>Subcribing your NFT  Collection to Magic Eden</p></figcaption></figure>

\
&#x20; 2\. Click “5. subscribe”

3. Paste your collection’s token contract address into the `“registrant”` field.
4. Paste `0xB197F889dd1550533A0F1112dbD5B12e5dded25d` into the “newSubscription” field.
5. Click “write” to submit. (Sign in with your wallet and gas fee is required)

Your collection will now be blocking the Blur and OpenSea marketplace contracts.

### **How to switch to the default registry**

In some rare cases, your collection contract is not subscribing to the default OpenSea registry. Please contact Magic Eden for further assistance.


# Setting Royalties on NFT Marketplaces

Learn how to set up and receive your royalties on NFT Marketplaces.

EIP-2981 Royalty Standard Smart Contracts created with NiftyKit (as of April 3, 2022) use the EIP-2981 Royalty Standard. EIP-2981 is a standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal support for royalty payments across all NFT marketplaces and ecosystem participants.

->  <https://eips.ethereum.org/EIPS/eip-2981>


# Migrating Your Smart Contract to NiftyKit

**Introduction**

Welcome to the guide on migrating your NFT collection's smart contract to NiftyKit. This process is designed to seamlessly transition your collection, ensuring that each NFT is accurately represented and linked to its rightful owner on our platform.&#x20;

Below, we outline the key steps and provide examples to illustrate the migration process.

### **Process Overview**

#### **1. Token Owner Identification**

**What We Do:** We systematically identify the owner of each token in your NFT collection.

* **Example:** For Token ID 1, we find that the owner is Address A; for Token ID 2, the owner is Address B, and so on.

#### **2. Airdrop Preparation**

**What We Do:** We prepare the data for airdrop in an organized manner.

* **Example:** We create batches of token ownership data, with each batch containing information for up to 250 tokens. This makes the airdrop process manageable and efficient.

#### **3. Metadata Retrieval**

**What We Do:** We fetch and compile the metadata for each token from your original contract.

* **Example:** For Token ID 1, we retrieve its image, name, and description. This process is repeated for each token in your collection.

#### **4. Metadata Consistency**

**What We Do:** We ensure that the metadata for each token matches its corresponding token ID.

* **Example:** If Token ID 1 in your original collection has the name "Mythical Creature #1," we maintain this association in the migrated data.

#### **5. Metadata Format Options**

**What We Do:** We provide the metadata in both CSV and JSON formats.

* **Example:** You can choose to receive the metadata in a CSV file for easy viewing in spreadsheet software or a JSON file for technical integrations.

### **Customer Actions Required**

#### **A. Executing the Airdrop**

**Your Role:** Use the provided CSV files to distribute the NFTs to the listed owners.

* **Example:** You will receive a file named **`airdrop_batch_1.csv`**. Use this file to airdrop tokens to the addresses listed in this batch.

#### **B. Importing Metadata**

**Your Role:** Import the provided metadata into NiftyKit.

* **Example:** If you choose the JSON format, you can directly import the file **`metadata.json`** into NiftyKit to update your collection's information.


# Analytics

Access key metrics for your Drops, all inside your Drop Dashboard on NiftyKit.

Keep track of how your NFT projects are doing with our integrated Analytics tools. We provide NFT stats and analytics for Drops using stats provided by [@rantum](https://dune.com/rantum) on Dune: <https://dune.com/rantum/NFT-Collection-Dashboard>

![View Analytics on Dune by @rantum ](/files/fxFUedVprS668eSKKl0I)

#### Follow @rantum via the links below:

* Twitter: <https://twitter.com/RantumBits>
* Telegram: <https://t.me/RantumBits>
* Website: <https://Rantum.xyz>


# Troubleshooting

Learn how to troubleshoot some basic problems that may arise post your launch

#### 1) Collection Not Showing On OpenSea:

* There should be at least 1 minted NFT for your collection to be displayed on the marketplaces.

#### 2) NFT Image/Video Not Showing On OpenSea:

* Refresh your metadata. For Ethereum Collection you can use <https://www.nftrefreshmetadata.com/>  to refresh your whole collection.
* Check if your NFTs are displayed correctly on other marketplaces e.g. Rarible.

  Other Marketplaces to see if the issue is specific to Opensea only:

  * [https://looksrare.org](https://looksrare.org/) (Ethereum)
  * [https://rarible.com](https://rarible.com/) (Ethereum & Polygon)
  * <https://nftrade.com/> (Polygon)

  &#x20;If yes, this is most likely an issue with OpenSea. Please contact OpenSea support for further instructions.&#x20;
* If you still do not see your NFTs on OpenSea, please re-check your IPFS links to confirm if it is viewable on your browser. If this problem persists, please contact NiftyKit[ support ](http://discord.gg/xgjUQJhBFv)(<support@niftykit.com>).

#### 3) Dutch Auctions:

* Currently, we do not support the Dutch Auction feature on collection. But you can always request this feature if you would require it for your drop. Leave us a message on our [Discord](http://discord.gg/xgjUQJhBFv) to enable this feature.

4\) **Wallet not connecting on mint page:**

* If your Metamask is not responding but you have connected to NiftyKit before, disconnect your MetaMask wallet from the website to fix common issues with the mint button not responding, preventing the MetaMask confirmation from popping up.&#x20;

####


# Introduction

Create custom mint pages and more

With NiftyKit, it's possible to customize the minting experience on your website. We provide easy-to-use components you can copy-paste to your custom website or no-code platforms like WordPress, Wix, and Squarespace.

Leverage the power of NiftyKit to host your sales on your domain while using NiftyKit as a backend to manage your sale mechanics.

Get started with [NiftyKit Diamond Widgets](/customize-your-experience/niftykit-diamond-widgets) today, and create your own NFT experience on your website.

NiftyKit also provides apps that allow you to create a customized experience for your community, with new apps being added with each release. With [NiftyKit Diamond Contracts](/nft-collections/our-smart-contracts/diamond-smart-contracts), experience the power of apps, giving you the tools to manage your community of holders successfully.

## Customize your NiftyKit-generated mint site


# NiftyKit Diamond Widgets

Embedding NFT features on your website

### Introduction

NiftyKit Diamond Widgets are Web Components designed to help users create the perfect mint page. It's flexible, modern browser compatible, and it ships with the latest [WalletConnect 2.0](https://docs.walletconnect.com/2.0).

### Web Components

Web components are a set of web platform APIs that allow you to create new custom, reusable, encapsulated HTML tags to use in web pages and web apps. Custom components and widgets built on the Web Component standards will work across modern browsers and can be used with any JavaScript library or framework that works with HTML.

You can embed the components in any environment, including web and mobile, and use frameworks like React, Vue, and more. Web Components work natively with a browser with minimal dependencies.

### Getting Started

The fastest way to get started is to leverage our [Widget Builder](/customize-your-experience/niftykit-diamond-widgets/widget-builder), which will allow you to customize the mint button and give you a copy-paste code to put on your website. You can also check out our [Installation Guides](/customize-your-experience/niftykit-diamond-widgets/installation-guides) to integrate existing no-code tools.

If you are interested in implementing the widgets on your own, you can get started by adding this code to your website:

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>
```

We recommend putting it in `<head>` or anywhere before the first widget component is called.

Once the script tag has been added, you can add the following HTML anywhere on your page:

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-connect-wallet-button>
    Connect Wallet
  </nk-connect-wallet-button>
  <nk-is-connected>
    <h3>
      <nk-drop-supply-text /> Minted
    </h3>
    <nk-drop-mint-button success-title="Success!" success-message="You did it!">
      Mint NFT
    </nk-drop-mint-button>
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

The result should look like this:

{% embed url="<https://codepen.io/tpae/pen/WNavQNB>" %}
Please note the example widget is referencing testnets, but we currently don't support testnets for our customers. We apologize for the inconvenience.
{% endembed %}

#### How do I get my SDK Public Key?

You can click the \[...] menu in your Collection Dashboard and access it via **SDK Public Key**.

### Contributing

Our widgets are constantly improving with new features. Our widgets are open source, and we encourage our community members to help contribute to building a better widget ecosystem.

{% embed url="<https://github.com/niftykit-inc/niftykit-sdk/tree/main/packages/widgets>" %}


# Available Widgets

{% content-ref url="/pages/tXPrpUUSFEgKU0oIjYGx" %}
[Connect Wallet Button](/customize-your-experience/niftykit-diamond-widgets/available-widgets/connect-wallet-button)
{% endcontent-ref %}

{% content-ref url="/pages/lQXdlKkyhycgINUzDmDZ" %}
[Drop Mint Button](/customize-your-experience/niftykit-diamond-widgets/available-widgets/drops/drop-mint-button)
{% endcontent-ref %}

{% content-ref url="/pages/Fo4AeLZweIzbB7JcqyaF" %}
[Drop Mint Supply Text](/customize-your-experience/niftykit-diamond-widgets/available-widgets/drops/drop-mint-supply-text)
{% endcontent-ref %}

{% content-ref url="/pages/z2g9NSN4762OOK8HGV2F" %}
[Drop Mint Price Text](/customize-your-experience/niftykit-diamond-widgets/available-widgets/drops/drop-mint-price-text)
{% endcontent-ref %}

{% content-ref url="/pages/Bv2jkNYd0GmvIlDsdgne" %}
[Edition Mint Button](/customize-your-experience/niftykit-diamond-widgets/available-widgets/editions/edition-mint-button)
{% endcontent-ref %}

{% content-ref url="/pages/9SXON6v1OLusOzyvb45f" %}
[Edition Mint Supply Text](/customize-your-experience/niftykit-diamond-widgets/available-widgets/editions/edition-mint-supply-text)
{% endcontent-ref %}

{% content-ref url="/pages/Jn0uEo5pRY7paRCvoCus" %}
[Edition Mint Price Text](/customize-your-experience/niftykit-diamond-widgets/available-widgets/editions/edition-mint-price-text)
{% endcontent-ref %}

{% content-ref url="/pages/iilaFhhf06MOt3ZtgzT6" %}
[Is Connected](/customize-your-experience/niftykit-diamond-widgets/available-widgets/utilities/is-connected)
{% endcontent-ref %}

{% content-ref url="/pages/JFfEmTdnlVcpfIjMkA3R" %}
[Is Not Connected](/customize-your-experience/niftykit-diamond-widgets/available-widgets/utilities/is-not-connected)
{% endcontent-ref %}

{% content-ref url="/pages/0giWu1YxO6D5dkSS1Wde" %}
[Is Holder](/customize-your-experience/niftykit-diamond-widgets/available-widgets/utilities/is-holder)
{% endcontent-ref %}


# Connect Wallet Button

Simple Connect Button with WalletConnect 2.0

### Getting Started

Please be sure to have the following snippet in the head or upper portion of your HTML:

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>
```

### Code

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-connect-wallet-button>
    Connect Wallet
  </nk-connect-wallet-button>
</nk-diamond>
```

{% endcode %}

You can change the copy of the button by changing the content of the `<nk-connect-wallet-button>`:

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-connect-wallet-button>
    Connect to Metaverse
  </nk-connect-wallet-button>
</nk-diamond>
```

{% endcode %}

### Codepen

{% embed url="<https://codepen.io/tpae/pen/PoyKLMy>" %}


# Countdown  Timer

Follow these steps to integrate the countdown timer widget into your website:

1. **Access Your Website's HTML:** Open the HTML file of your website where you want to integrate the countdown timer.
2. **Get the following details of your drop:**&#x20;

* [ ] Collection mint page URL: i.e <https://app.niftykit.com/collections/base-diamonds>
* [ ] **Collection ID:** To get your collection ID:

- Go to your contract creation txn. This can be accessed in your etherscan.&#x20;
- &#x20;Scroll down and go to click more
- Click Decode Data
- Copy Collection ID

{% hint style="info" %}
Need help with your collection details? Email us at <support@niftykit.com> or directly ask for help in our chat support on our website.&#x20;
{% endhint %}

<br>

**3, Copy the Code, and Find and Replace it with Your Collection Details:**

```
<!DOCTYPE html>
<html>
<head>
    <title>Countdown Timer</title>
    <style>
        body {
            font-family: "DM Sans", sans-serif;
        }

        .mint-price {
            align-items: center;
        }

        nk-connect-wallet-button::part(wallet-btn-container) {
            margin: 20px auto;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        nk-connect-wallet-button::part(wallet-btn) {
            width: auto;
            height: auto;
            background: #fff;
            border-radius: 80px;
            font-size: 16px;
            padding: 10px 40px;
            color: #000;
        }

        nk-drop-mint-button::part(mint-btn-container) {
            max-width: 200px;
            margin: 20px auto;
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 999;
        }

        nk-drop-mint-button::part(mint-btn) {
            height: 40px;
            background: #fff;
            border-radius: 20px;
            border: 1px solid #fff;
        }

        nk-drop-mint-button::part(mint-text) {
            font-size: 14px;
            color: #000;
        }

        nk-drop-mint-button::part(mint-dropdown-icon) {
            width: 32px;
            height: 32px;
            fill: #000;
        }

        #countdownTimer {
            margin-top: 10px; /* Reduced spacing between button and text */
        }
    </style>
</head>
<body>
    <div class="framer-10k6086-container">
        <div style="width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center">
            <script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>

            <nk-diamond collection-id="clrjmbjbv0001109jmix9erk4" class="hydrated">
                <nk-connect-wallet-button class="hydrated">
                    Connect Wallet
                </nk-connect-wallet-button>
                <nk-drop-supply-text>
                    minted / OE <span id="countdownTimer">[Limited Time]</span>
                </nk-drop-supply-text>
                <nk-is-connected class="hydrated">
                    <nk-drop-mint-button success-title="Success!" success-message="You did it! View your Base NFT" success-link="https://app.niftykit.com/collections/base-diamonds" success-link-text="NOW" class="hydrated">
                        Mint NFT
                    </nk-drop-mint-button>
                </nk-is-connected>
            </nk-diamond>
        </div>
    </div>

    <script>
        function updateCountdown() {
            var countdown = document.getElementById("countdownTimer");
            var now = new Date().getTime();
            var countdownDate = new Date("January 28, 2024 10:00:00 PST").getTime();
            var timeLeft = countdownDate - now;

            var days = Math.floor(timeLeft / (1000 * 60 * 60 * 24));
            var hours = Math.floor((timeLeft % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            var minutes = Math.floor((timeLeft % (1000 * 60 * 60)) / (1000 * 60));
            var seconds = Math.floor((timeLeft % (1000 * 60)) / 1000);

            countdown.innerHTML = "[" + days + "d " + hours + "h " + minutes + "m " + seconds + "s" + "]";

            if (timeLeft < 0) {
                clearInterval(interval);
                countdown.innerHTML = "[SOLD OUT]";
            }
        }

        var interval = setInterval(updateCountdown, 1000);
    </script>
</body>
</html>
```


# Drops

The following widgets are currently available for Drops.

[-> Mint Button](/customize-your-experience/niftykit-diamond-widgets/available-widgets/drops/drop-mint-button)

[-> Mint Supply Text](/customize-your-experience/niftykit-diamond-widgets/available-widgets/drops/drop-mint-supply-text)

[-> Mint Price Text](/customize-your-experience/niftykit-diamond-widgets/available-widgets/drops/drop-mint-price-text)


# Drop Mint Button

### Getting Started

Please be sure to have the following snippet in the head or upper portion of your HTML:

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>
```

Mint Buttons require users to connect their wallet first.

We can leverage [Is Connected](/customize-your-experience/niftykit-diamond-widgets/available-widgets/utilities/is-connected) utility component to hide the Mint Button until the user has connected their wallet.

### Code

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-connect-wallet-button>
    Connect Wallet
  </nk-connect-wallet-button>
  <nk-is-connected>
    <nk-drop-mint-button success-title="Success!" success-message="You did it!">
      Mint NFT
    </nk-drop-mint-button>
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

You can change the copy of the button by changing the content of the `<nk-drop-mint-button>` as well as `success-title` , `success-message` for the confirmation modal at the end.

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-connect-wallet-button>
    Connect To Metaverse
  </nk-connect-wallet-button>
  <nk-is-connected>
    <nk-drop-mint-button success-title="Success!" success-message="One of US!">
      All Systems Go
    </nk-drop-mint-button>
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

### Codepen

{% embed url="<https://codepen.io/tpae/pen/dygzLyJ>" %}


# Drop Mint Supply Text

### Getting Started

Please be sure to have the following snippet in the head or upper portion of your HTML:

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>
```

Mint Texts require users to connect their wallet first.

### Code

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-is-connected>
    <nk-drop-supply-text />
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

You can think of the component like any other element:

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-is-connected>
    <h3>Current Supply is: <b><nk-drop-supply-text /></b></h3>
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

### Codepen

{% embed url="<https://codepen.io/tpae/pen/NWOvmqZ>" %}


# Drop Mint Price Text

### Getting Started

Please be sure to have the following snippet in the head or upper portion of your HTML:

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>
```

Mint Texts require users to connect their wallet first.

### Code

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-is-connected>
    <nk-drop-price-text />
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

You can think of the component like any other element:

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-is-connected>
    <h3>Current Price is: <b><nk-drop-price-text /></b></h3>
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

### Codepen

{% embed url="<https://codepen.io/tpae/pen/LYgjvpO>" %}


# Editions

The following widgets are currently available for Editions.

[-> Mint Button](/customize-your-experience/niftykit-diamond-widgets/available-widgets/editions/edition-mint-button)

[-> Mint Supply Text](/customize-your-experience/niftykit-diamond-widgets/available-widgets/editions/edition-mint-supply-text)

[-> Mint Price Text](/customize-your-experience/niftykit-diamond-widgets/available-widgets/editions/edition-mint-price-text)


# Edition Mint Button

### Getting Started

Please be sure to have the following snippet in the head or upper portion of your HTML:

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>
```

Mint Buttons require users to connect their wallet first.

We can leverage [Is Connected](/customize-your-experience/niftykit-diamond-widgets/available-widgets/utilities/is-connected) utility component to hide the Mint Button until the user has connected their wallet.

### Code

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-connect-wallet-button>
    Connect Wallet
  </nk-connect-wallet-button>
  <nk-is-connected>
    <nk-edition-mint-button edition-id="Your-Edition-Id" success-title="Success!" success-message="You did it!">
      Mint NFT
    </nk-edition-mint-button>
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

You can change the copy of the button by changing the content of the `<nk-drop-mint-button>` as well as `success-title` , `success-message` for the confirmation modal at the end.

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-connect-wallet-button>
    Connect To Metaverse
  </nk-connect-wallet-button>
  <nk-is-connected>
    <nk-edition-mint-button edition-id="Your-Edition-Id" success-title="Success!" success-message="One of US!">
      All Systems Go
    </nk-edition-mint-button>
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

### Codepen

{% embed url="<https://codepen.io/jcurbelo/pen/rNoraGj>" %}


# Edition Mint Supply Text

### Getting Started

Please be sure to have the following snippet in the head or upper portion of your HTML:

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>
```

Mint Texts require users to connect their wallet first.

### Code

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-is-connected>
    <nk-edition-supply-text edition-id="Your-Edition-Id" />
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

You can think of the component like any other element:

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-is-connected>
    <h3>Current Supply is: <b><nk-edition-supply-text edition-id="Your-Edition-Id" /></b></h3>
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

### Codepen

{% embed url="<https://codepen.io/jcurbelo/pen/GRPBgOP>" %}


# Edition Mint Price Text

### Getting Started

Please be sure to have the following snippet in the head or upper portion of your HTML:

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>
```

Mint Texts require users to connect their wallet first.

### Code

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-is-connected>
    <nk-edition-price-text edition-id="Your-Edition-Id" />
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

You can think of the component like any other element:

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-is-connected>
    <h3>Current Price is: <b><nk-edition-price-text edition-id="Your-Edition-Id" /></b></h3>
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}

### Codepen

{% embed url="<https://codepen.io/jcurbelo/pen/yLGqypO>" %}


# Utilities

Utilities are a set of components used to create custom experiences, and they can be used to create more dynamic content on the website.

[-> Is Connected](/customize-your-experience/niftykit-diamond-widgets/available-widgets/utilities/is-connected)

[-> Is Not Connected](/customize-your-experience/niftykit-diamond-widgets/available-widgets/utilities/is-not-connected)

[-> Is Holder](/customize-your-experience/niftykit-diamond-widgets/available-widgets/utilities/is-holder)


# Is Connected

### Getting Started

Please be sure to have the following snippet in the head or upper portion of your HTML:

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>
```

Anything underneath this component will only appear when the user has connected their wallet.

### Code

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-is-connected>
    <h3>Foo?</h3>
    <p>Why does everyone keeps using Foo</p>
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}


# Is Not Connected

### Getting Started

Please be sure to have the following snippet in the head or upper portion of your HTML:

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>
```

Anything underneath this component will only appear when the user has not connected their wallet yet.

### Code

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-is-not-connected>
    <h3>Foo?</h3>
    <p>Why does everyone keeps using Foo</p>
  </nk-is-not-connected>
</nk-diamond>
```

{% endcode %}


# Is Holder

### Getting Started

Please be sure to have the following snippet in the head or upper portion of your HTML:

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>
```

Anything underneath this component will only appear when the user is a holder. Remember that this does not replace Token Access because they can see this in their source code. This is only to provide the experience, not to share secret messages.

This component requires users to connect their wallets first.

### Code

{% code lineNumbers="true" %}

```html
<nk-diamond collection-id="Your-SDK-Public-Key">
  <nk-is-connected>
    <nk-is-holder>
      <h3>Thanks Ape :)</h3>
    </nk-is-holder>
  </nk-is-connected>
</nk-diamond>
```

{% endcode %}


# Widget Builder

Our no-code widget builder offers a set of custom widgets that you can embed into your website with a simple HTML snippet – with this, you skip the need for JavaScript code.

{% hint style="info" %}
To navigate to the widget builder, you must create the \[drop] contract first. Once created, click the three dots on your drop dashboard.
{% endhint %}

<figure><img src="/files/Y8FJDfhwomsCktYkWfro" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/RsPRPDfCsF0lwIZx9HYG" alt=""><figcaption></figcaption></figure>


# Installation Guides

Quick guides to help you install our widgets on supported platforms.

In the sections to follow, we will guide you on installation paths for different supported platforms:

{% content-ref url="/pages/yv0wrXE0ZjML8aXmlyIy" %}
[Install for WordPress](/customize-your-experience/niftykit-diamond-widgets/installation-guides/install-for-wordpress)
{% endcontent-ref %}

{% content-ref url="/pages/V3B0BoyK0t3HWNhO3FHB" %}
[Install for Webflow](/customize-your-experience/niftykit-diamond-widgets/installation-guides/install-for-webflow)
{% endcontent-ref %}

{% content-ref url="/pages/kxr3oQpcUoNdqR3q1G0c" %}
[Install for Wix](/customize-your-experience/niftykit-diamond-widgets/installation-guides/install-for-wix)
{% endcontent-ref %}

{% content-ref url="/pages/XOwOPMHAR1ux8J6rQCLW" %}
[Install for Squarespace](/customize-your-experience/niftykit-diamond-widgets/installation-guides/install-for-squarespace)
{% endcontent-ref %}


# Install for WordPress

Learn how to install the NiftyKit Diamond Widgets for Wordpress.

This tutorial will show you how to install the NiftyKit Diamond Widgets on your WordPress.&#x20;

To start, make sure you're in the WordPress page builder.

### 1. Switch to "Code Editor" mode

Depending on your theme or plugins, this view might be different; please refer to the following helpful links:

* <https://wordpress.com/support/editors/>
* <https://www.wpbeginner.com/wp-tutorials/how-to-edit-html-in-wordpress-code-editor-beginners-guide/>

![Highlighted in blue is the Code editor mode](/files/KLQN3pFd80f8AKwk7oh4)

### 2. Paste your SDK widget code

```html
<!-- Import NiftyKit Widgets library -->
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>

<nk-diamond collection-id="YOUR-SDK-KEY">
  <nk-is-not-connected>
    <nk-connect-wallet-button>
      Connect Wallet
    </nk-connect-wallet-button>
  </nk-is-not-connected>
  <nk-is-connected>
    <nk-drop-mint-button success-title="Success!" success-message="You did it!">
      Mint NFT
    </nk-drop-mint-button>
  </nk-is-connected>
</nk-diamond>
```

Be sure to replace `YOUR-SDK-KEY` it with your actual SDK key.

### 3. Update your mint page

![](/files/vTgeZeRMK9kSelEuTOCY)

{% hint style="info" %}
This also works in Elementor if you embed the HTML element.
{% endhint %}


# Install for Webflow

Learn how to install the NiftyKit Diamond Widgets for Webflow.

This tutorial will show you how to install the NiftyKit Diamond Widgets button on your Webflow website. Here's a basic example to view before getting started: <https://dropkit-883093.webflow.io/>.

To begin, make sure you're in the Webflow website builder.

### 1. Click on "Add Elements"

Within the Webflow left-side menu, click on the button labled **"Add Elements"**

![Webflow Builder](/files/NtS09Srni8ljpZG2slpN)

### 2. Click on "Embed"

Under the Components dropdown, select **"Embed \</>"**

![Webflow Builder](/files/4dyCQb86PZwqIp8JiEkX)

### 3. Add the NiftyKit Diamond Widget code snippet

Add the following code snippet within the embed editor:&#x20;

```html
<!-- Import NiftyKit Widgets library -->
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>

<style>
</style>

<nk-diamond collection-id="YOUR-SDK-KEY">
  <nk-is-not-connected>
    <nk-connect-wallet-button>
      Connect Wallet
    </nk-connect-wallet-button>
  </nk-is-not-connected>
  <nk-is-connected>
    <nk-drop-mint-button success-title="Success!" success-message="You did it!">
      Mint NFT
    </nk-drop-mint-button>
  </nk-is-connected>
</nk-diamond>
```

Be sure to replace `YOUR-SDK-KEY` with your SDK key.

### 4. Publish Your Site

Your widget will be visible when you publish your site.&#x20;


# Install for Wix

Learn how to install the NiftyKit Diamond Widgets for Wix.

This tutorial will show you how to install the NiftyKit Diamond Widgets button on your Wix website.&#x20;

To begin, make sure you're in the Wix website builder.

### 1. Click on the “Add” icon, then “Embed” and finally select the “Embed a widget” option

![](/files/U9jkZTdXYvUszM6DJtEH)

### 2. Place your widget in your desired location and then click “Enter Code”

Make sure you set your widget big enough to contain the wallet modal

![You will see the button once you publish your site](/files/mShTKh5O9zBuuJedsKBU)

### 3. Select the “Code” Option and add the following snippet

```html
<!-- Import NiftyKit Widgets library -->
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>

<nk-diamond collection-id="YOUR-SDK-KEY">
  <nk-is-not-connected>
    <nk-connect-wallet-button>
      Connect Wallet
    </nk-connect-wallet-button>
  </nk-is-not-connected>
  <nk-is-connected>
    <nk-drop-mint-button success-title="Success!" success-message="You did it!">
      Mint NFT
    </nk-drop-mint-button>
  </nk-is-connected>
</nk-diamond>
```

Be sure to replace `YOUR-SDK-KEY` with your SDK key.

Finally, click on "Update."

> Note: Wix widgets are embedded within the site using an `iframe` element. This can confuse users when connecting their wallets since the URL they will be seeing will not be the same as the site URL. It can be seen as a security risk, we currently do not encourage users to embed your Mint buttons with Wix


# Install for Squarespace

Learn how to install the NiftyKit Diamond Widgets for Squarespace.

This tutorial will show you how to install the NiftyKit Diamond Widgets button on your Squarespace website.&#x20;

To begin, make sure you're in the Squarespace website builder.

### 1. Add a "Code" Block

![](/files/TpPbfDZct2ai2QCH6Smq)

### 2. Embed the following snippet within your Code Block

```html
<!-- Import NiftyKit Widgets library -->
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>

<nk-diamond collection-id="YOUR-SDK-KEY">
  <nk-is-not-connected>
    <nk-connect-wallet-button>
      Connect Wallet
    </nk-connect-wallet-button>
  </nk-is-not-connected>
  <nk-is-connected>
    <nk-drop-mint-button success-title="Success!" success-message="You did it!">
      Mint NFT
    </nk-drop-mint-button>
  </nk-is-connected>
</nk-diamond>
```

Be sure to replace `YOUR-SDK-KEY` with your SDK key.

### 3. Save your changes

![](/files/8jsqBqYSZ2s9mDQphA0f)


# Available Apps

Learn how to monetize NFT collections and incentivize supporters to promote your NFT project.

In this guide, we will look closely at the current apps that you can freely install to your NiftyKit Collection.&#x20;

All apps are not a one-time setup and can be adjusted after making the changes. This flexibility allows you to adapt to changing circumstances or adjust your strategy to optimize your earnings.&#x20;

Feel free to experiment and make changes as needed, without worrying about locking yourself into a fixed structure.

{% hint style="success" %}
Starter (Free) creators have access to all available apps
{% endhint %}

### Apps Overview

The [Pay What You Want](/customize-your-experience/available-apps/pay-what-you-want-app) enables users to let their collectors enter any amount that they would like to pay for their NFTs. This can be used to help creators to gauge market value for their NFTs and get paid.&#x20;

The [Crossmint App (Credit Card Minting)](/customize-your-experience/available-apps/crossmint-app-credit-card-minting) enables credit card minting to your drop or edition collection.&#x20;

The [Augmented Reality app](/customize-your-experience/available-apps/augmented-reality-app-token-access) will create a token gated access for your collectors and view your 3D asset using their mobile phones

The [ERC-20 app](/customize-your-experience/available-apps/accept-erc-20) enables you to accept payments with ERC-20 Coins. Accept popular tokens such as USDC, ApeCoin or add in your [Custom ERC-20](/customize-your-experience/available-apps/accept-erc-20/custom-erc-20) coin. &#x20;

The [generative collection app](/customize-your-experience/available-apps/generative-collection) generates countless NFT variations, making it ideal for open editions and generating art as minted. Artists upload their layers and allow the blockchain to determine the final result.

The [soulbound token app](/customize-your-experience/available-apps/soulbound-token) enables creators to take control of the tradability of their NFTs in secondary marketplaces. Easily switch on and off soulbound to allow buying and selling&#x20;

The[ fee allocation ](broken://pages/TmNPpyFCcEsYmqm3nOlo)app allows creators to offer additional sales mechanics, such as absorbing fees or passing fees onto buyers, to increase their average sales and revenue.&#x20;

The [share-to-earn](/customize-your-experience/available-apps/share-to-earn) app enables creators to share a percentage of their earnings with supporters who bring in sales, creating a win-win situation for both parties.

The [royalty update](/customize-your-experience/available-apps/royalty-update) app enables creators to adjust their collection royalty percentages post-mint, giving them more flexibility and control over their earnings.

To navigate and install apps, click the following pages for the guides and instructions.


# NFT Generator Desktop App

Learn how to generate unique images in seconds. Easily import your art layers and have unique images generated on the fly.

The NiftyKit NFT Art Generator is completely free to use. Generate thousands of unique NFTs at no cost. [Download the Generator Desktop here.](https://niftykit.com/products/art-generator)

<figure><img src="/files/ZXL0ezuXqP3nFWB4BVae" alt=""><figcaption></figcaption></figure>

### **Simplified Art Creation**

Merge art layers, generate previews, and effortlessly manage metadata. Our updated app streamlines the process of getting your art generated in seconds. Read full [asset guidelines here](/get-started/getting-started/art-generator-asset-guidelines).

### **Seamless Integration**

Upload your creations to IPFS and import them directly to NiftyKit. The latest updates address metadata generation issues and foster an increase in collection creations.

[Go to your NiftyKit dashboard now](https://app.niftykit.com/login)


# Pay What You Want App

Let your collectors choose how much they would like to pay for your NFTs. This can be used to help you gauge market value for your NFTs and get paid.

## To activate the Pay What You Want App follow these steps:

1. Launch your collection by creating the smart contract using NiftyKit
2. [Go to your collection dashboard](https://app.niftykit.com/dashboard?tab=collections)
3. Navigate to the app tab
4. **Click on \[Add] in Pay What You Want to Install.**

<figure><img src="/files/cljNiQUUGgJ5RX9dbUYk" alt=""><figcaption></figcaption></figure>

### Set up the Pay What You Want App&#x20;

Once installed, a Pay What You Want section will now be accessible in your collection overview. Click \[setup] and choose "ENABLED" to get started.&#x20;

{% hint style="danger" %}
Pay What You Want App is not compatible with Apecoin or any ERC-20 tokens.
{% endhint %}

<figure><img src="/files/8Gno4K4PA4Sx6afwJivi" alt=""><figcaption></figcaption></figure>

Start your [pre-sale or public sale](/nft-collections/collection-management/sales-management), to finalize your sale type and input your desired suggested price per NFT.&#x20;

<figure><img src="/files/YobOsJ4xi8NzjADLSBET" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
You can change the setup anytime by stopping and restarting your sale.
{% endhint %}

### Mint and Pay What You Want

Once your sale is live, collectors will now have the option to enter any amount they would like for each NFT when minting your NFT.\
\
Your suggested price will be shown a default but they can enter any price below or above the suggested price.&#x20;

<figure><img src="/files/AkvJCMsGtn1wEe7o0eXM" alt=""><figcaption></figcaption></figure>


# Crossmint App: Credit Card Minting

## To activate and accept Credit Card Minting follow these steps:

{% embed url="<https://www.youtube.com/watch?v=imYjF0hyPss>" %}

1. Launch your collection by creating the smart contract using NiftyKit
2. [Go to your collection dashboard](https://app.niftykit.com/dashboard?tab=collections)
3. Navigate to the app tab
4. **Click on \[Add] in Crossmint to install.**

<figure><img src="/files/lFVcYV5oFaSHum3JRQ5O" alt=""><figcaption><p>Crossmint App</p></figcaption></figure>

### Set up the Crossmint App for your Pre-sale or Public Sale

Once installed, a Crossmint section will now be accessible in your collection overview. Click \[setup] to get started.

You can  follow our step-by-step guide in [Integrate Credit Card Minting](/customize-your-experience/integrate-credit-card-minting) on how to get your project ID and Collection ID. This will require you to sign up to Crossmint.&#x20;

<figure><img src="/files/2HJdCnA8IQSrVSL91ICC" alt=""><figcaption></figcaption></figure>


# Augmented Reality App (Token Access)

Learn how to create token-gated AR experiences for your community. Add a fun, gamified element to your collection!

Welcome to the NiftyKit Augmented Reality Guide – your gateway to enhancing your NFT collection with token-gated Augmented Reality experiences. Through AR, you can immerse collectors in an interactive world of 3D content with increased exclusivity, increased value, and unique community engagement.

Before we dive in, make sure you have:

* Launched NiftyKit collection (Drop or Edition)
* 3D Asset
* Marker Image (image that will trigger augmented reality)

Supported 3D Format Files

* .glb
* .gltf
* .zip that contains a .gltf file<br>

{% hint style="success" %}
All the metadata and data that you will input in your token-gated AR are editable even after creation. This allows you to maintain flexibility and refine your AR as needed. Let's get started! 🛠️🔄
{% endhint %}

## To activate  your Augmented Reality (AR)  follow these steps:

1. Launch your collection by creating the smart contract using NiftyKit
2. [Go to your collection dashboard](https://app.niftykit.com/dashboard?tab=collections)
3. Navigate to the app tab
4. **Click on \[Add] in Augmented Reality.**

<figure><img src="/files/wOjEz3KNBH2AMj9KrseX" alt=""><figcaption><p>AR App in your Collection Dashboard</p></figcaption></figure>

5. Once installed, an Augmented Reality section will now be accessible in your collection overview. This means that the Augmented Reality app has been enabled. You can now use this feature when you create a new Token Access.

## Augmented Reality **App Set up**

1. Click the create button and choose Token Access

<figure><img src="/files/d2TqrrN0t4Y0G6MGdtWO" alt="" width="563"><figcaption><p>Creating AR Token access</p></figcaption></figure>

2. Set up your AR Token Access details as shown below and select "Enable Augmented Reality."

   For access type, you can choose who can see your AR. You can select specific tokens who are in your collection to limit access.&#x20;

<figure><img src="/files/oSsdY9m8zJe5nczF5D6H" alt=""><figcaption><p>Enable AR and select access type</p></figcaption></figure>

3. Upload your 3D asset and marker image

<figure><img src="/files/Z0UchornESuVqpesNABG" alt=""><figcaption><p>Upload your 3d asset to create your AR Token Access</p></figcaption></figure>

4. Click continue and create.  You can now announce that your AR token access is now live! Your collectors can connect their wallets on your Mint page to view your exclusive AR.&#x20;

<figure><img src="/files/3MlATAbWjBwWuBMkn5OI" alt=""><figcaption></figcaption></figure>


# Accept ERC-20

Learn how to accept any ERC-20 token as a form of payment for your NFTs. Accept popular tokens such as USDC, ApeCoin and more.

With the ERC-20 app, powered by NiftyKit, you have the seamless ability to accept any ERC-20 token as a form of payment for your NFTs. Accept popular tokens such as USDC, ApeCoin, or [your custom token](/customize-your-experience/available-apps/accept-erc-20/custom-erc-20). Start accepting payments with ease!

{% embed url="<https://www.youtube.com/watch?v=QoTCGUiHkKo>" %}
Step-by-step guide on how to add ERC-20 coins; USDC, $PEPE, $BRETT, $DEGEN to your NFT Collection
{% endembed %}

Before starting your sale in your collection, you must install the ERC-20 app to your collection and choose which token you would like to accept for your drop.

{% hint style="info" %}
ERC-20 App is available to all networks.
{% endhint %}

## To activate and accept ERC-20 follow these steps:

1. Launch your collection by creating the smart contract using NiftyKit
2. [Go to your collection dashboard](https://app.niftykit.com/dashboard?tab=collections)
3. Navigate to the app tab
4. **Click on \[Add] in ERC-20 to install.**

<figure><img src="/files/YbnxWscsnQN2Zfr5neto" alt=""><figcaption><p>Download ERC-20 App to in your Collection Dashboard</p></figcaption></figure>

### Set up ERC-20 Payment for your Pre-sale or Public Sale

1. Once installed, a **Custom ERC-20** section will now be accessible in your collection overview. Click edit to get started. If you're planning to accept your custom ERC-20, [go here](/customize-your-experience/available-apps/accept-erc-20/custom-erc-20).&#x20;

<figure><img src="/files/VExP41APP5zVC0Ty7EWV" alt=""><figcaption><p>ERC-20 Setting in Collection</p></figcaption></figure>

2. Choose an ERC-20 token to apply to your sales then click Update now. This will pop up your wallet and will ask you to confirm the transaction (with a minimal gas fee). &#x20;

<figure><img src="/files/liOR7xOVw5dUaz6n8pHw" alt=""><figcaption><p>Choose ERC-20 token</p></figcaption></figure>

{% hint style="info" %}
Only one token can be applied at a time per sale. You can also set up any custom token to accept here via [louper](https://louper.dev/).
{% endhint %}

3. You can now start your sale. Go to **\[Prepare Drop]**. and select Pre-sale or Public Sale.

<figure><img src="/files/WixsJGuIWsvALgL29IuT" alt=""><figcaption><p>Start your Pre-sale or Public Sale with ERC-20 payment</p></figcaption></figure>

4. Input the price here. Once you start your sale. you can switch later on to accept Ethereum or other ERC-20 anytime by stopping and restarting your sale.

   <figure><img src="/files/TBCVpTtGySDou3Cff8Gm" alt=""><figcaption><p>Set up your ERC-20 Sales</p></figcaption></figure>

5. Customize your drop page and start minting! [Go to your Collection Dashboard now](https://app.niftykit.com/login)

<figure><img src="/files/v6RLG0USGBq0luDci7yO" alt=""><figcaption><p>Start minting and accept ERC 20</p></figcaption></figure>

### **How Minting in ERC-20 Works**

On the mint page, the mint dialog will show the cost in ERC-20 and the fee in ETH. The first transaction processes the mint with the ERC-20 and there will be a separate transaction for the fees in ETH.

<figure><img src="/files/9TI1yQjlZd9Pwo1V51pN" alt=""><figcaption></figcaption></figure>

### Withdrawing your ERC-20 sale

To withdraw your ERC-20 [earnings from your collection](https://app.niftykit.com/login), go to the overview tab and click on the drop-down as shown below:

<figure><img src="/files/FsCrNy6WvY5HsDx2fna1" alt=""><figcaption><p>How to withdraw your ERC-20 sales</p></figcaption></figure>


# Custom ERC-20

Learn how to add and accept your own custom ERC-20 token as a form of payment for your NFTs.

Before starting your sale in your collection, you must install the ERC-20 app to your collection and add the custom token to your contract.

### **Step 1: Install the ERC-20 App**

Make sure you have installed the ERC-20 app to your collection before proceeding to the next step. To install:

* [Go to your collection dashboard](https://app.niftykit.com/dashboard?tab=collections) in NiftyKit
* Navigate to the app tab
* **Click on \[Add] in ERC-20 to install.**

<figure><img src="/files/uSkkZkF7zeRSev0Eeas5" alt="" width="375"><figcaption><p>Apps you can install with your Diamond Contract in NiftyKit</p></figcaption></figure>

### **Step 2: Verify Token Existence**

Ensure that your **custom ERC-20 token exists on the Ethereum network** where your NFT collection is deployed.

### **Step 3: Access your Contract via** [**louper.dev**](https://louper.dev/)

Go to[ louper.dev](https://louper.dev/), the platform where you can configure the Smart Contract of your NFT Collection. Access our contract by searching your contract address

<figure><img src="/files/K7a8EA2ZYA6A0yoymMe7" alt="" width="563"><figcaption><p>Searching Your Contract in louper.dev</p></figcaption></figure>

### **Step 4: Add the Custom ERC-20 Token**

Within louper.dev, you need to:

* Navigate to the "Write" function, find the option named `"erc20SetActiveToken."`
* Enter the `tokenAddress` of your custom ERC-20 token into this field. This specifies which token will be accepted as payment for NFTs in your collection.
* "Execute" to confirm the transaction.

{% hint style="info" %}
Make sure the wallet connected is the collection owner and the token exists on the network
{% endhint %}

<figure><img src="/files/jMlqF5HvdetGvj4ZUDkD" alt=""><figcaption><p>Adding custom ERC-20 token in your contract via louper</p></figcaption></figure>

### **Step 5: Refresh the Collection Dashboard**

* After you've entered the custom token's address in louper, [go back to your collection dashboard](https://app.niftykit.com/login) and refresh the page. Once it's properly added a "CUSTOM" active token  will show under your overview dashboard.

<figure><img src="/files/XCqJ8l2m0qczHn9Vyt65" alt=""><figcaption><p>Custom Token added to your collection dashboard</p></figcaption></figure>

### **Step 6: Verify Custom Token**

Click edit and check your custom ERC-20 token is now listed.

### **Step 7: Adjust Sale Settings**

You can activate the sale of your NFTs via the \[Prepare Drop Button]. You will still have the option to use either the base token (e.g., ETH) or an app token (e.g., apeCoin) according to your preferences

{% hint style="danger" %}
If you want to switch from one token to another while the sale is active, collectors may encounter errors when trying to mint NFTs. In such cases, you should "Stop Sale" and then restart your sale with the newly selected ERC-20 token.
{% endhint %}

<figure><img src="/files/jetG9CQgSDQQntA8qRLt" alt=""><figcaption><p>Starting your Pre-sale or Public Sale</p></figcaption></figure>

<figure><img src="/files/5OoAOls0YL41r6eHJm0v" alt="" width="375"><figcaption><p>Choosing your Custom ERC-20 Token to accept as payment for your NFT Sales</p></figcaption></figure>

&#x20;**Note on USD Conversion**

Please note that custom tokens may not display a USD conversion in the user interface for the Drop Sale (start sale) dialog or the Mint Checkout dialog.&#x20;

The default will be to show the Tokens Total + Mint Fee ($USD Total)

<figure><img src="/files/2ptqHFelIjMsaOgD0nb9" alt=""><figcaption></figcaption></figure>


# Generative Collection

Learn how to organize, set up your rarity, and launch your generative collection with NiftyKit.

Unlock your artistic potential with two exciting options for generating stunning art effortlessly. Choose the user-friendly [**NFT Generator App**](/customize-your-experience/available-apps/nft-generator-desktop-app) to import your layers, generate artwork with metadata, and upload seamlessly to IPFS – all without any coding hassle. Or dive into innovation with our [**Open Generative App**](#to-activate-the-open-generative-app-follow-these-steps), where art is created when minting happens. Artists provide different layers, and the blockchain decides the final artwork. This will create unique versions of your art in infinite quantity.&#x20;

You can enable this feature for both new and existing **Diamond Drop Collections.**

{% hint style="danger" %}
Generative Collection is not available for Edition Collections
{% endhint %}

## To activate the Open Generative App, follow these steps:

1. Launch your Drop or Pro collection by creating the smart contract using NiftyKit
2. [Go to your collection dashboard](https://app.niftykit.com/dashboard?tab=collections)
3. Navigate to the app tab
4. Click on \[Add] for the Generative Collection option, as illustrated below.&#x20;

<figure><img src="/files/hpAuML9atlXkoAYabmHd" alt=""><figcaption><p>Activating the Generative Collection App</p></figcaption></figure>

## Uploading Your Layers

{% hint style="info" %}
Read full [asset guidelines here](/get-started/getting-started/art-generator-asset-guidelines)
{% endhint %}

1. Once the app is activated, go back to the Overview tab of your collection.&#x20;
2. Click set up in Generative Collection

<figure><img src="/files/BTXGSsV7bJR0DWTGZ1wV" alt=""><figcaption></figcaption></figure>

3. Upload your layers

<figure><img src="/files/j88ZQXYKdjzyWlIsPqdv" alt=""><figcaption></figcaption></figure>

Click activate and start minting your Open Gen

<figure><img src="/files/wX9DJgj1a7B4e0pk85QJ" alt=""><figcaption></figcaption></figure>

[Go to your NiftyKit dashboard now.](https://app.niftykit.com/login)

###


# Soulbound Token

Learn how you can start and stop NFT collection's secondary sales in marketplaces.

With NiftyKit's Diamond Smart Contract, you can easily enable or disable the Soulbound state for all new or existing collections. There are no restrictions, holders won't be able to immediately trade their NFTs once the Soulbound Token app is enabled.&#x20;

## To activate the Soulbound Token App, follow these steps:

1. Launch your Drop or Edition collection by creating the smart contract using NiftyKit
2. [Go to your collection dashboard](https://app.niftykit.com/dashboard?tab=collections)
3. Navigate to the app tab
4. Click on \[Add] for the Soulbound option. When activated it will show installed as illustrated below.&#x20;

<figure><img src="/files/7jznYCUoI1NViWbBjKH2" alt=""><figcaption></figcaption></figure>

For additional information regarding use cases and detailed explanations about Soulbound, you can find more details in this [resource](https://niftykit.com/blog/product-insights-soulbound-token?utm_campaign=v8-1\&utm_source=docs\&utm_medium=guide\&utm_content=doc).


# Share To Earn

Learn how to set up referrals, and sell better with your NFT collection.

Sell better by sharing a percentage of earnings with those who bring in sales. You as the creator, can set the percentage that you want to give to your community/referrals.&#x20;

### Pre-requisite

* Deployed Smart Contract
* The sale phase has not yet started or been stopped

### Installing Share to Earn

Anyone using a share-to-earn link to sell your NFTs can earn a portion of your revenue. Share-to-earn links are unique to each wallet address so revenue can be split when the NFT is sold.

Share-to-earn links will be displayed on your collection mint site upon activation and set up of %.

To install, [go to the apps tab and add Share to Earn to your collection](https://app.niftykit.com/dashboard?tab=collections).

&#x20;Go to your collection and set up the % you want to give to grant your referrals.

<div><figure><img src="/files/hjbRnXybvfGlzh0UeEB1" alt=""><figcaption><p>Share to rearn button on your mint page</p></figcaption></figure> <figure><img src="/files/rTAeg7jUG34hivZCtGKG" alt=""><figcaption><p>Share to earn set up inside your drop dashboard</p></figcaption></figure></div>


# ApeCoin

The ApeCoin app allows you to accept $APE as a payment method for your NFTs. For a limited time, enjoy 0% fees on all ApeCoin revenue.

### Pre-requisite

* Deployed Ethereum Contract using NiftytKit
* Sales must be paused or not yet started.

{% hint style="info" %}
**ApeCoin payments are not available in Polygon, Arbitrum, or Optimism projects**
{% endhint %}

### Installing ApeCoin

[Go to your collection](https://app.niftykit.com/dashboard?tab=collections), then navigate to the  **\[APPS]** tab and click on **\[Add]** as shown below.

<figure><img src="/files/2MlI1wcuHv0wYJESAPGI" alt=""><figcaption><p>ApeCoin App</p></figcaption></figure>

Select the collection you want to add the ApeCoin App to.

<figure><img src="/files/2xx1B86bbniIy0qjzx40" alt=""><figcaption><p>Select NiftyKit Eth Drop Collection</p></figcaption></figure>

{% hint style="info" %}
Be sure to restart any active sale after installing or uninstalling the ApeCoin App for it to take effect.
{% endhint %}

You can select one of the following options when starting a sale:

<figure><img src="/files/Wh91CpDtsCbY9TD6to8R" alt=""><figcaption><p>Starting a Sale</p></figcaption></figure>


# Royalty Update

Learn how to update your Royalty and adjust your royalty percentage any time after your collection has been minted.

To access editing your royalty, you would need to install the Royalty update first per collection.

Royalties are not enforced across all secondary marketplaces and may need to be set per marketplace.

### Pre-requisite

* Deployed Smart Contract

### Installing Royalty Update

Install the app in your **\[Apps tab]** and click add on **\[Royalty Update]**. Search the Collection you want to update and add a royalty update

After installing the Royalty update app, you can now make changes to your secondary royalties to your drop. To make changes, go to your collection, and the royalty update section will be your overview page.

<div><figure><img src="/files/o658ZoywYOlaGAxd33rU" alt=""><figcaption><p>Royalty Update in your NFT Drop overview</p></figcaption></figure> <figure><img src="/files/LJ98lwTObzZHgvOcwPh5" alt=""><figcaption><p>Royalty Update Set up</p></figcaption></figure></div>

###


# Submit an App Request

At our platform, we strive to provide the best possible experience for our creators and their community. We welcome requests for new apps and features that can add value to your NFT project.

Submit your app request below:

<https://app.niftykit.com/contact>


# Token Access In Collections

Custom gated experience for Drop Collections

**Token access** or **token gate** is a utility feature that allows users to create an exclusive, gated experience for their NFT holders.

You can create Token Access pages for each token or range of tokens. For example, holders of NFTs #1 to #5 from your collection/drop can access certain special/exclusive content, while holders of NFTs #6 to #100 can access general (standard) content. This is similar to [OpenSea Unlockables](https://support.opensea.io/hc/en-us/articles/1500011542482-What-makes-a-great-NFT-offering-).

This experience can include messages, embedded URL content (images, audio, videos, and other forms of embeddable media content), or a redirection to another URL. After creating it, you can share the link with your NFT holders for immediate access. This is perfect for any content creator, including visual artists, musicians, bloggers, vloggers, photographers, filmmakers, influencers, and more!

**Creation: Token Access**

You can create Token Access directly inside your Drop dashboard under the \[Token Access Tab]

You can only change the ***Name, Access Type & Description***

Select the details on the Access Type you want to provide to your token holders.

All Tokens in the Contract or specific tokens listed

This is where you can add your content, such as a link, image, or access to another webpage

<figure><img src="/files/B5FF5SfcG89Fef2C2Cj2" alt=""><figcaption><p>Token Access Content</p></figcaption></figure>

{% hint style="info" %}
NiftyKit text area boxes can be customized and styled using[ Markdown](https://www.notion.so/docs-niftykit-com-0af1c11518674c64b81457bee9b5a557).
{% endhint %}

<figure><img src="/files/S4e3u5cmAdofBQGO1KdT" alt=""><figcaption><p>Token Access Summary</p></figcaption></figure>

Here are the required fields for your Token Access Details:

**Name -** Write in the name for your token access

**Description -** Write in the description for your unlockable content


# Integrate Credit Card Minting

Learn how to Integrate Credit Card Minting via Crossmint and start accepting fiat payments for your NFT collection.

Crossmint is a payment gateway that allows you to accept payments in fiat or without the need for cryptocurrency. Here's how to set up minting using a credit card via Crossmint for both "Edition" and "Drop" collections:

{% content-ref url="/pages/Ag59w2DyEXViWpJICIT6" %}
[Drop Collection Credit Card Integration](/customize-your-experience/integrate-credit-card-minting/drop-collection-credit-card-integration)
{% endcontent-ref %}

{% content-ref url="/pages/f3smnHpe2YDCvef6GxZ4" %}
[Edition Collection Credit Card Integration](/customize-your-experience/integrate-credit-card-minting/edition-collection-credit-card-integration)
{% endcontent-ref %}


# Drop Collection Credit Card Integration

{% embed url="<https://www.youtube.com/watch?v=imYjF0hyPss>" %}

**Step 1: Sign up for Crossmint**

To get started, sign up and create a developer account at [crossmint.com](https://www.crossmint.com/console/create-account)

### **Step 2: Register Your Collection**

Once you've signed up, you'll need to register your collection. Here's how:

1. **Collection Details**: Enter the details of your collection, such as the name and description.
2. **Contract Registration**: Enter your contract address. You can get it by looking up the Etherscan link on your public mint page in your NiftyKit account

<figure><img src="/files/XjLS2EyavJnjdLbTqUED" alt=""><figcaption><p>Getting Contract address to your NFT Collection</p></figcaption></figure>

<figure><img src="/files/9DIVRqGfQlPLQiTyveZB" alt=""><figcaption><p>Copying your contract address from etherscan</p></figcaption></figure>

Make sure to choose the following:

* Network of your Contract
* Contract Type: ERC-721
* Contract Address
* Contract ABI - Copy/Paste the following ABI

```json
[{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"airdropFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64[]","name":"quantities","type":"uint64[]"},{"internalType":"address[]","name":"recipients","type":"address[]"}],"name":"batchAirdrop","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"displayPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dropRevenue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"quantity","type":"uint64"}],"name":"mintTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"presaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"quantity","type":"uint64"},{"internalType":"uint256","name":"allowed","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"presaleMintTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newRoot","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxAmount","type":"uint256"},{"internalType":"uint256","name":"newMaxPerMint","type":"uint256"},{"internalType":"uint256","name":"newMaxPerWallet","type":"uint256"},{"internalType":"uint256","name":"newPrice","type":"uint256"},{"internalType":"bool","name":"presale","type":"bool"}],"name":"startSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopSale","outputs":[],"stateMutability":"nonpayable","type":"function"}]
```

* Mint Function
  * For Presale: `presaleMintTo`
  * For Public Sale: `mintTo`
* Parameter For Recipient Address: `recipient`
* Parameter For Quantity Of NFTs Purchased: `quantity`

<figure><img src="/files/ox1b4DdUJ7QGMB4ZppH0" alt="" width="563"><figcaption><p>Drop Collection Public Sale Example</p></figcaption></figure>

<figure><img src="/files/XWLriQzTGrVV20NeYAwy" alt="" width="563"><figcaption><p>Drop Collection Presale Example</p></figcaption></figure>

### **Step 3: Submit Verification for Payments**

You'll be limited on how much you can accept until you are fully verified. Here's what you need to do to lift the limit restriction:

1. **Project Owner KYC**: Complete the KYC process for the project owner.
2. **Collection Review**: Your collection will be reviewed to ensure it meets Crossmint's standards.

### **Step 4: Integrate into Your Website**

Once you're verified, you can integrate Crossmint into your website. Here are two ways to do it

1. **Embedding our Widget:** You need to grab both values `collection-id` and `project-id` from crossmint dashboard and use them as parameters for our web components

<figure><img src="/files/bYy871dWw3BaBxeG5Aur" alt=""><figcaption><p>Example of Project Id and Collection Id on Crossmint Dashboard</p></figcaption></figure>

* **Widget for Drop Collection**

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>

<nk-diamond collection-id="Your-Collection-SDK">
  <nk-connect-wallet-button>
    Connect Wallet
  </nk-connect-wallet-button>
  <br />
  <nk-is-connected>
    <nk-drop-mint-button success-title="Success!" success-message="You did it!">
      Mint NFT
    </nk-drop-mint-button>
    <br />
    <nk-drop-mint-crossmint-button collection-id="Your-Crossmint-Collection-Id" project-id="Your-Crossmint-Project-Id" />
  </nk-is-connected>
</nk-diamond>

```

2. **Implement a No-Code Storefront**: You can implement a no-code storefront by following these steps:&#x20;
   1. **Enter Your Payment Details**: Enter your payment details, such as the amount you want to charge and the cryptocurrency you want to accept.
   2. **Add Page Link**: Add the page link to your drop or share it directly with your collectors to mint.

### **Step 6: Start Minting**

That's it! You can now start minting and accepting payments in cryptocurrency.

We hope this helps. Let us know if you have any questions or concerns.

{% hint style="info" %}
If you have any questions or concerns, please contact Crossmint support at <support@crossmint.com>. Please note that review times can vary, but should be a few days.
{% endhint %}


# Edition Collection Credit Card Integration

{% embed url="<https://www.youtube.com/watch?v=imYjF0hyPss>" %}

**Step 1: Sign up for Crossmint**

To get started, sign up and create a developer account at [crossmint.com](https://www.crossmint.com/console/create-account)

### **Step 2: Register Your Collection**

Once you've signed up, you'll need to register your collection. Here's how:

1. **Collection Details**: Enter the details of your collection, such as the name and description.
2. **Contract Registration**: Enter your contract address. You can get it by looking up the Etherscan link on your public mint page in your NiftyKit account

<figure><img src="/files/XjLS2EyavJnjdLbTqUED" alt=""><figcaption><p>Getting Contract address to your NFT Collection</p></figcaption></figure>

<figure><img src="/files/9DIVRqGfQlPLQiTyveZB" alt=""><figcaption><p>Copying your contract address from etherscan</p></figcaption></figure>

Make sure to choose the following:

* Network of your Contract
* Contract Type: ERC-721
* Contract Address
* Contract ABI - Copy/Paste the following ABI

```json
[{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"editionId","type":"uint256"}],"name":"EditionCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"editionId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"quantity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"EditionMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"string","name":"tokenURI","type":"string"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxQuantity","type":"uint256"},{"internalType":"uint256","name":"maxPerWallet","type":"uint256"},{"internalType":"uint256","name":"maxPerMint","type":"uint256"}],"name":"createEdition","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"editionMintFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"editionRevenue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"editionsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"editionId","type":"uint256"}],"name":"getEdition","outputs":[{"components":[{"internalType":"string","name":"tokenURI","type":"string"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"maxQuantity","type":"uint256"},{"internalType":"uint256","name":"maxPerWallet","type":"uint256"},{"internalType":"uint256","name":"maxPerMint","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"signer","type":"address"},{"internalType":"bool","name":"active","type":"bool"}],"internalType":"struct EditionStorage.Edition","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"editionId","type":"uint256"}],"name":"getEditionPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"editionId","type":"uint256"},{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"mintEdition","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"editionId","type":"uint256"},{"internalType":"bool","name":"active","type":"bool"}],"name":"setEditionActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"editionId","type":"uint256"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"setEditionMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"editionId","type":"uint256"},{"internalType":"address","name":"signer","type":"address"}],"name":"setEditionSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"editionId","type":"uint256"},{"internalType":"string","name":"tokenURI","type":"string"}],"name":"setEditionTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"editionId","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxQuantity","type":"uint256"},{"internalType":"uint256","name":"maxPerWallet","type":"uint256"},{"internalType":"uint256","name":"maxPerMint","type":"uint256"}],"name":"updateEdition","outputs":[],"stateMutability":"nonpayable","type":"function"}]
```

* Mint Function: `mintEdition`
* Parameter For Recipient Address: `recipient`
* Parameter For Quantity Of NFTs Purchased: `quantity`

<figure><img src="/files/4NTRspPjPpkgNIOOEUsE" alt="" width="563"><figcaption><p>Edition Collection Example</p></figcaption></figure>

### **Step 3: Submit Verification for Payments**

You'll be limited on how much you can accept until you are fully verified. Here's what you need to do to lift the limit restriction:

1. **Project Owner KYC**: Complete the KYC process for the project owner.
2. **Collection Review**: Your collection will be reviewed to ensure it meets Crossmint's standards.

### **Step 4: Integrate into Your Website**

Once you're verified, you can integrate Crossmint into your website. Here are two ways to do it

1. **Embedding our Widget:** You need to grab both values `collection-id` and `project-id` from crossmint dashboard and use them as parameters for our web components

<figure><img src="/files/bYy871dWw3BaBxeG5Aur" alt=""><figcaption><p>Example of Project Id and Collection Id on Crossmint Dashboard</p></figcaption></figure>

* **Widget for Edition Collection**

> Note: The edition component requires your "edition id".

```html
<script type="module" src="https://sdk.niftykit.com/widgets/widgets.esm.js"></script>

<nk-diamond collection-id="Your-Collection-SDK">
  <nk-connect-wallet-button>
    Connect Wallet
  </nk-connect-wallet-button>
  <br />
  <nk-is-connected>
    <nk-edition-mint-button edition-id="your-edition-id" success-title="Success!" success-message="You did it!">
      Mint NFT
    </nk-edition-mint-button>
    <br />
    <nk-edition-mint-crossmint-button edition-id="your-edition-id" collection-id="Your-Crossmint-Collection-Id" project-id="Your-Crossmint-Project-Id" />
  </nk-is-connected>
</nk-diamond>

```

2. **Implement a No-Code Storefront**: You can implement a no-code storefront by following these steps:&#x20;
   1. **Enter Your Payment Details**: Enter your payment details, such as the amount you want to charge and the cryptocurrency you want to accept.
   2. **Add Page Link**: Add the page link to your drop or share it directly with your collectors to mint.

### **Step 6: Start Minting**

That's it! You can now start minting and accepting payments in cryptocurrency.

We hope this helps. Let us know if you have any questions or concerns.

{% hint style="info" %}
If you have any questions or concerns, please contact Crossmint support at <support@crossmint.com>. Please note that review times can vary, but should be a few days.
{% endhint %}


# Migrating Your Smart Contract to NiftyKit (via Airdrop)

Learn how to seamlessly transition your collection, ensuring that each NFT is accurately represented and linked to its rightful owner on NiftyKit platform.

Welcome to the guide on migrating your NFT collection's smart contract to [NiftyKit](https://app.niftykit.com/). This process is designed to seamlessly transition your collection. NiftyKit can provide the collection snapshot tool and help migrate your collection to a more secure diamond contract.

Below, is the outline of the key steps and provide examples to illustrate the migration process.

### **Process Overview**

#### **1. Token Owner Identification**

* **What We Do:** We systematically identify the owner of each token in your NFT collection.
* **Example:** For Token ID 1, we find that the owner is Address A; for Token ID 2, the owner is Address B, and so on.

#### **2. Airdrop Preparation**

* **What We Do:** We prepare the data for airdrop in an organized manner.
* **Example:** We create batches of token ownership data, with each batch containing information for up to 250 tokens. This makes the airdrop process manageable and efficient.

#### **3. Metadata Retrieval**

* **What We Do:** We fetch and compile the metadata for each token from your original contract.
* **Example:** For Token ID 1, we retrieve its image, name, and description. This process is repeated for each token in your collection.

#### **4. Metadata Consistency**

* **What We Do:** We ensure that the metadata for each token matches its corresponding token ID.
* **Example:** If Token ID 1 in your original collection has the name "Mythical Creature #1," we maintain this association in the migrated data.

#### **5. Metadata Format Options**

* **What We Do:** We provide the metadata in both CSV and JSON formats.
* **Example:** You can choose to receive the metadata in a CSV file for easy viewing in spreadsheet software or a JSON file for technical integrations.

### **Customer Actions Required**

#### **A. Executing the Airdrop**

* **Your Role:** Use the provided CSV files to distribute the NFTs to the listed owners.
* **Example:** You will receive a file named **`airdrop_batch_1.csv`**. Use this file to airdrop tokens to the addresses listed in this batch.

#### **B. Importing Metadata**

* **Your Role:** Import the provided metadata into NiftyKit.
* **Example:** If you choose the JSON format, you can directly import the file **`metadata.json`** into NiftyKit to update your collection's information.

By following this process, you ensure that your NFT collection is accurately represented on our platform, with each NFT linked to its correct owner and displaying its unique metadata.

Need more help? Please reach out to <support@niftykit.com>

[Migrate and secure your NFTs now](https://app.niftykit.com/)


# NiftyKit Integration with Farcaster Frames

Learn how to seamlessly integrate Farcaster Frames with your NiftyKit collections for enriched, interactive broadcasting on Warpcast. Watch the full tutorial below.

{% embed url="<https://youtu.be/Ex1ozh8pXEY>" %}
Creating NFTs and Minting on Farcaster Frames Tutorial
{% endembed %}

## **Introduction**

NiftyKit is excited to announce the integration with [Farcaster Frames](https://docs.farcaster.xyz/learn/what-is-farcaster/frames), a feature that transforms standard casts into interactive applications within the Farcaster ecosystem. This new collaboration allows creators on NiftyKit to engage with their audience through interactive experiences directly within Warpcast, Farcaster's primary client.

## **What are Farcaster Frames?**

Frames are an innovative feature that enables Farcaster to provide interactive and authenticated experiences. With Frames, you can turn any cast into an app-like experience, allowing users to interact with polls, live feeds, or galleries without leaving the Warpcast environment. It's a step up from the traditional static embeds, offering a dynamic way to interact with content ([Farcaster](https://docs.farcaster.xyz/learn/what-is-farcaster/frames)) (<https://blog.developerdao.com/farcaster-frames-explained>)

Farcaster Frames have two main UI components:

* an **Image** and
* a set of **Intents**

<figure><img src="/files/gvgVikjXrrF8iJkkCd5I" alt=""><figcaption><p>Anatomy of a frame, see: <a href="https://frog.fm/concepts/images-intents">https://frog.fm/concepts/images-intents</a></p></figcaption></figure>

## **Supported Chains**

NiftyKit collections can now leverage Farcaster Frames on the following chains:

* Ethereum
* Base
* Optimism
* Arbitrum Nova
* Arbitrum One

## **Accessing and Testing Your Collection's Frame**

### **Seeing Your Frame In Action**

Once your collection has been minted, you will get a public mint page like:

* **Public Drop Page:**  <https://app.niftykit.com/collections/based-rice-cookers>

Simply sharing this URL will allow Warp Frames to fetch all necessary metadata to generate the frame, simplifying the process for users.

<figure><img src="/files/suiIuz8JdUxGBzHKA1yM" alt=""><figcaption><p>Example of a Cast with a NiftyKit collection link</p></figcaption></figure>

### **Testing Your Frames**

To test your Frames, use the Warpcast tool:

* <https://warpcast.com/~/developers/frames>

Images from these tests are crucial for ensuring your Frame operates as expected across different scenarios.

<figure><img src="/files/U4L1dKDYDVN10jteHaiR" alt=""><figcaption><p>Using warpcast frames validator</p></figcaption></figure>

## Advanced Options

For those needing more control or wanting to customize their experience further, you can manually configure your Frames. Every collection minted on NiftyKit is given a unique "slug" that is part of their mint page. For example, "Based Rice Cookers" has the following slug: `based-rice-cookers`

* **Simple Frame:** **`https://frames.niftykit.com/<slug>`**
* **Advanced Frame:** **`https://frames.niftykit.com/<slug>/advanced`**

The advanced view supports a quantity selector for minting, offering greater flexibility for collections involving multiple items.

### Seeing Advanced Options In Action

<figure><img src="/files/vkqbazKfAG3qtYdzIc9b" alt=""><figcaption><p>Frame with a quantity selector to mint</p></figcaption></figure>

## Wallet Simulations

Users will see a summary of all the interactions they are about to make, giving them transparency about the frames intents:<br>

<figure><img src="/files/ciEhCf7zQqhsrRJVClnA" alt=""><figcaption><p>TX simulation</p></figcaption></figure>

## **Final Thoughts**

By integrating with Farcaster Frames, NiftyKit collections are now part of an innovative web of interactive social engagements. This feature is a fun and secure way to interact with your audience and a step forward in bridging the gap between static content and dynamic user experiences in the social media landscape.


# Community Guidelines

NiftyKit drives creators to their highest potentials. Here are a few basic guidelines to follow.

We are a home to creators, culture curators and collectors from across the world. Being so, we do not take disrespectful or dishonest behavior lightly. We have a secure system to ensure that legitimate projects make the cut in our larger ecosystem and focus on fulfilling NFT projects with the best support that money can buy. Please take your time to read our guidelines to follow when you join us.

### **Guidelines:**

* Treat others online as you would treat them in real life.
* Be tolerant towards other’s viewpoints; respectfully disagree when opinions do not align.
* Respect the privacy and personal information of other users.
* Communicate with courtesy and respect.

### **Please do not:**

* Make personal attacks on other community members.
* Use defamatory remarks or make false statements against others.
* Post prejudiced comments or use profanity.
* Bully or make inflammatory remarks to other community members.


# FAQ

Find some of the frequently asked questions and learn more about NiftyKit.

### ***1) What do I get with my NiftyKit account?***

* After signing up, all users will have access to all the NiftyKit tools to create and manage your smart contracts in an efficient way.&#x20;
* You can now deploy your own smart contract with no upfront fees.&#x20;

### ***2) Do I lose my minted collections if I lose access to my NiftyKit account***?

* Absolutely not. Anything you have already minted is owned by you or the wallet used to create the smart contract. NiftyKit allows you to access the tools to mint, you can always access and transact with your NFTs and smart contracts directly in your etherscan.&#x20;

### ***3) Can I add to an existing collection I made on OpenSea, Rarible, or on any other NFT platform?***

* No. You can’t continue in an existing contract with NiftyKit. You will be starting with a new contract specifically owned by you.

### *4) Is my Royalty Fee built into the contract or is it specific to the platform, like Opensea?*

* Currently, the Royalty Fees that you set for your Smart Contract are specific to each platform. They are NOT baked into the smart contract code.&#x20;
* NiftyKit only supports primary sales and will honor your commission settings set on your collection on the NiftyKit platform.&#x20;
* In order to set commissions for your Smart Contract on OpenSea, you can connect to OpenSea with the MetaMask wallet connected to your Smart Contract and then navigate to the Edit settings of that contract and adjust the commission.&#x20;
* Learn more here: [OpenSea Creator Earnings](https://docs.opensea.io/docs/part-2-edit-collection-settings#creator-earnings)

### *5) How do we enforce royalties on NiftyKit for artists? What do on-chain royalties mean?*

* NFTs are basically coded in the form of smart contracts, and when marketplaces execute "transfer" to "trade/sell", the code does a lookup on the smart contract to see where/how the royalties get paid.
* When it facilitates the payment, it enforces it in that same call. Currently, on-chain royalty is based on marketplace trust.&#x20;
* Artists are giving them room to say "enforce it please", but there's no actual logic stopping these marketplaces from not enforcing them.
  * Every once in a while, a new marketplace comes out and says "we don't believe in it" - this goes against the on-chain royalties that many artists have been fighting for all this time.&#x20;
* But there is a way to enforce royalties and have marketplaces adopt them whether they like it or not. This is where web3 stands out to provide value to the artists - being built on global democracy.&#x20;
  * It's hard to enforce on-chain royalties when there aren't many creators supporting, pushing, or in a lot of cases even aware of the royalty standards on web3. More artists need to opt in for royalties enforcement.&#x20;

### ***6) Can I restart the Waitlist phase on my drop?***&#x20;

Yes, but you need to stop any type of sale if you wish to return to the Waitlist stage. You can only set the waitlist, pre-sale, and public at a time.&#x20;

### ***7) What's the difference between saving or updating my metadata on NiftyKit API vs IPFS?***

**NiftyKit API** is a useful tool for NFT creators who wants more **control over their metadata** and the ability to **easily edit it as needed (minted or unminted)**. It is also built for **data protection** and hides the traits/metadata of unminted or placeholder NTFs (before revealing).

On the other hand, **IPFS** is a better option when the priority is the long-term accessibility and decentralization of NFT metadata. Using IPFS ensures that metadata remains publicly accessible over time, and **cannot be censored or deleted.**

{% hint style="info" %}
Got more questions? Send your questions in our support chat,  or message us on [Discord](https://discord.gg/xgjUQJhBFvhttps://discord.gg/xgjUQJhBFv)
{% endhint %}


# Meet the Team

Building a Decentralized world, one day at a time.

### Founding Team

* [@dan](https://twitter.com/0xdancarr) – co-founder
* [@tpae](https://twitter.com/tpae) – co-founder
* [@loftxn](https://twitter.com/loftxn) – co-founder
* jcurbelo – software engineer
* kelok – software engineer
* matthew – software engineer
* eugene – customer support
* loise – customer support
* shirly - customer support
* juvy – admin & finance<br>


# Contact Info

Reach out to our team for any partnerships, growth opportunities or support.

### Contact Us

Interested in what we're building and want to work together? We’re always looking to build synergy and expand our reach. Drop us a line:

* <hello@niftykit.com>
* <partners@niftykit.com> (for partnership inquiries)
* <support@niftykit.com>

### Feedback on Docs

Did you find an error or typo? Think a section is missing? Want us to add more info on a specific feature? Reach out on our [Discord](https://discord.gg/xgjUQJhBFv)!


# Security Report

We appreciate your effort in discovering a security issue. Please send reports to <security@niftykit.com>


# Deprecated features

* Redeemables are being changed to Editions, still using the ERC721a protocol. If any projects using legacy collections are launching, please reach out for help at <support@niftykit.com>.
* Dutch Auction (Discontinued)
* Fee Allocation App (Discontinued)


