# Launchifi Documentation

**Welcome to the Official Launchifi Documentation page!**

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FMzrkY2wSSVgtjkQyP9Wb%2FLaunchifiDocsImageTemplateLaunchifi.png?alt=media&amp;token=1f3a5eb5-576d-4144-969e-b626db22edc1" alt=""><figcaption></figcaption></figure>

Launch your web3 project to the blockchain in minutes, all code free!

Here you will find guides, references and resources that will help you build with **Launchifi**.

Or try **Launchifi** immediately at our website [Launchifi](https://app.launchifi.xyz/)


# Setup

Let's discover what you'll need to use **Launchifi in less than 5 minutes**.

## Getting Started

Get prepared for **creating your first smart contract in just minutes**.

## What you'll need

### 1. Javascript Enabled Browser

In order to use the Launchifi application you will need to access it from a **javascript enabled browser**.

* Browsers we recommend
  * [Brave Browser](https://brave.com/) Secure, Fast & Private Web Browser with Adblocker designed for Web3, built on the google chrome engine
  * [Google Chrome](https://www.google.com/chrome/dr/download/) High performance browser built by google

### 2. Web3 Wallet Extension

This will need to be installed on your browser in order to access the application and use our tools.

* Compatible Web3 Wallets
  * [Metamask Wallet](https://metamask.io/) Most Popular Web3 Crypto Wallet
  * [Coinbase Wallet](https://www.coinbase.com/wallet) Web3 Crypto Wallet Built By Coinbase
  * [Torus Wallet](https://tor.us/) An Open Source, Non-Custodial Key Management Network
  * [Binance Chain Wallet](https://www.binance.com/en/wallet-direct) Web3 Crypto Wallet for Binance Chain
  * [WalletConnect Wallets](https://explorer.walletconnect.com/?type=wallet) Web3 Gateway for Connecting to Most Major Wallets, See if Your Wallet is Compatible

### 3. Funds In Your Wallet On The Network You Want To Deploy On

When deploying anything to the network you will need to pay for gas in the native currency of the **network of your choice**. You will need to have this available in your Web3 Wallet at the time at which you want to deploy. I.E. If you want to deploy on Ethereum network, you will need Ethereum in your wallet.


# Smart Contracts Explained

A smart contract is a computer program that automatically executes the terms of a contract when certain conditions are met. They are often built using blockchain technology, which allows for secure and transparent execution of the contract.

## How do smart contracts work?

A smart contract is triggered when specific conditions are met, such as the receipt of a payment or the passage of a certain amount of time. Once the conditions are met, the contract automatically executes the terms of the agreement, such as the transfer of funds or the release of information.

## What are the benefits of using smart contracts?

Smart contracts can improve efficiency and reduce the need for intermediaries, as they can automatically execute the terms of an agreement without the need for human intervention. They also provide a high level of transparency and security, as the terms of the contract are recorded on a tamper-proof blockchain.

## How can I use smart contracts?

You can use smart contracts for a variety of purposes, such as in supply chain management, real estate, and financial services. You can also create your own custom smart contract using programming languages such as Solidity or Vyper.

## Conclusion

Smart contracts have the potential to revolutionize the way that we conduct business and interact with one another. They can increase efficiency, reduce costs, and provide a new level of transparency and security. As the technology continues to evolve, we can expect to see more and more industries adopt smart contracts in the near future.


# What is a Dapp?

### What are Dapps

Dapps or Decentralized Applications are applications that are connected to a blockchain and use smart contracts to execute their functionality.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FEEntYiipgfR5mqhvyIhD%2Fdapp.gif?alt=media&amp;token=7b3e2788-7700-4352-a60d-7134459a92b1" alt=""><figcaption></figcaption></figure>

### How to use a DApp

To use a DApp, you will typically need to access it through a browser extension that allows you to interact with the blockchain, such as MetaMask for Ethereum.

Once you have connected to the DApp, you can interact with it as you would with any other web application, but your actions will trigger the execution of smart contracts on the blockchain.


# What is Etherscan?

Etherscan is a blockchain explorer that allows you to view transaction history, smart contract code, and other information on the Ethereum blockchain.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FeTB5PsTmbh8aU16pjmoE%2Fetherscan.PNG?alt=media&amp;token=686a1a0b-eb6e-4aee-a10e-b6fbc7aef2bc" alt=""><figcaption></figcaption></figure>

## How to use

* To use Etherscan, navigate to the website (<https://etherscan.io/>) and enter the address of the smart contract or wallet that you want to view information for.

{% hint style="info" %}

```
Every Chain has its own "Etherscan" for mainnet and testnet, for example 
Polygon has https://polygonscan.com/
```

{% endhint %}

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FmWUhTz4MT1JYqh2Lx0Y1%2Fpolygonscan.PNG?alt=media&amp;token=a824ffec-eec2-41f8-be90-1c003ccd884d" alt=""><figcaption></figcaption></figure>

* You can view the transaction history, view the smart contract code and even see the analytics of the contract such as the number of transactions, holders and more.


# P2P NFT Marketplaces

**I have deployed my contract, what now?**

### How to show and sell my NFT collection

1. Create a Dapp (previously explained) or you can use the dapp provided by Launchifi, fully customizable.

## P2P NFT marketplace

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FJv02xlNiMucLzKdLAfDc%2Frarible.PNG?alt=media&amp;token=0bee4b35-8654-4e64-835c-29498a69e59d" alt=""><figcaption></figcaption></figure>

[Rarible](https://rarible.com/)

**OpenSea, Rarible** are a secondary NFT marketplace meaning that sellers and buyers can trade NFTs directly with each other. This is different from a primary NFT market, where sales take place on the creator’s website (Dapp). Hence, trading occurs directly between the creator and buyers.

It allows users to trade items like digital art, collectible items, and other digital goods on a decentralized, peer-to-peer platform, without the need for a centralized intermediary.

The marketplace also has an explorer where users can browse and discover new NFTs and creators. This platfrom offers as well to see the ranking of each NFT, to check its rarity in the collection.

OpenSea provides cross-chain support across the Ethereum, Solana, Polygon blockchains and all transactions are made in crypto. The main digital currencies used on the platform are ETH/WETH, DAI, SOL, and USDC.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2F6kK20N8UZke9mh82wuVa%2Fopensea.PNG?alt=media&amp;token=c45bc950-c951-4e3e-9217-356881dbddd0" alt=""><figcaption></figcaption></figure>

[Opensea](https://https://opensea.io/)


# Getting Started!

### What you'll need

* An idea
* A wallet to connect

At Launchifi we will provide the rest


# Contracts

Launchifi offers a vast array of contracts and customizations to set up your web3 project idea fast, without the need of a developer, in just a few simple clicks.

## Current Contract Offering

* `Token contracts` - allows you to create your own cryptocurrency tokens.
* `Standard NFT contracts` - allows you to create your own NFT collection.
* `Batch Mint NFT contracts` - allows you to create your own NFT collection that enables extreme gas optimizations when minting in batches.
* `Free Mint/Degen NFT contracts` - allows you to create your own NFT collection while allowing free mints.
* `Fungible NFT contracts` - allows you to create your own NFT collection for games and others.
* `NFT Staking contracts` - allows you to reward customers for the staking of your NFT collection.
* `Auctions contracts` - allows you to create a bidding system for your NFT collection.
* `Reflection Tokens` - allows you to create a pool on a defi rewarding system for your holders from the fees collected from exchanges.

**At Launchifi we will be continuously adding to this list of contracts based on market demand and trends, keeping our users always one step ahead of the market.**


# Connect

To deploy any contracts you will be required to connect with your wallet.

Here are the following steps:

You can go to the bottom of the website.

## 1. Click on Connect Wallet button

Located in the bottom left hand corner of the application you will see a button to connect your wallet.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FVCYhQSHxoUSyiVGnXPOs%2FLaunchifiDocsImageTemplateConnect.png?alt=media&amp;token=42c862a8-1aa0-4a2e-a096-a47376f89dec" alt=""><figcaption></figcaption></figure>

## 2. Select your type of wallet

Once you click on the Connect You Wallet button you will see an array of options that we accept for web3 wallet compatibility. Please choose the one that you have installed and ready to use.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FsSJn5o9Jv4nGK6NuoxtO%2Fwallets.png?alt=media&amp;token=d3870aa2-c4d0-44c0-aa6c-081e860cb61b" alt=""><figcaption></figcaption></figure>

## 3. Accept the connection

Follow the prompts on your web3 wallet to accept the connection to our decentralized application.

*Please read all messages thoroughly and never sign anything with your wallet that you are unsure of.*

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FTZQ3vx9O2W4t056jcXmV%2Fconnect.png?alt=media&amp;token=88ce3f63-85b6-4a8d-a062-74e0f7c4fbac" alt=""><figcaption></figcaption></figure>

In the example above we used Metamask.

## 4. Your Connected

Congratualations! You are now connected to Launchifi with your web3 wallet and are ready to choose the network chain you would like the work on.


# Choosing the Network Chain You Want to Use

{% hint style="info" %}

```
Once a contract is deployed to a network you cannot move it to a different
network so it is important to choose the correct one before doing so.
```

{% endhint %}

### Default Network

By default we will connect you to the Ethereum Mainnet Network. You may want change the network chain you are working on to save gas or if you have a specific network you'd like to deploy to. If this is the case please follow the instructions below.

### 1. Select Your Desired Network.

Please click on the account button in the top left (This will appear in place of the "Connect Your Wallet" button after you have successfully connected your wallet) to view the available network options.&#x20;

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FqfF7K58qkBG3J3uTTbm6%2FLaunchifiDocsImageTemplateAccountbtn.png?alt=media&amp;token=13e210c4-5869-4dde-96b0-40724755839c" alt=""><figcaption></figcaption></figure>

Select the one you would like to use from the change network dropdown button.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FoMkuBoV3bgKgdwDAOGoH%2FLaunchifiDocsImageTemplateNetworks.png?alt=media&amp;token=c1e1a84e-00de-4e0b-a5c5-42bf45bdec51" alt=""><figcaption></figcaption></figure>

### 2. Add The New Network.

In case you never configured this network into your wallet. it will ask you to add it to your wallet (approve) before you will be able to switch to it.

If you don't see the network switch message, you might see a blue or red alert icon on your wallet extension. If so, click on your wallet extension to view the message.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2F51q0eX4nE6r0Nxp60k9p%2Faddnetwork.png?alt=media&amp;token=1048d1eb-e82a-41b5-b94a-d9cb37a1cf43" alt=""><figcaption></figcaption></figure>

### 3. Click on the Network Again.

You will now receive a message to switch to the selected network. Accept the prompts in the message in order to switch to this network.

*Please read through all messages that you receive to your web3 wallet, never accept anything you are unsure of.*

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2F40rBPO7FIzhwW8gaF54k%2Fswitchnetworks.png?alt=media&amp;token=817399df-82f0-4c53-941e-c4e3550b18b9" alt=""><figcaption></figcaption></figure>

### Well done!

If your wallet sidebar area is now showing the newly selected network, then you have successfully switched networks and are now working on the one you have selected. To change networks feel free to do so at anytime before deployment of your contracts.


# Choose your contract

## Choosing Your Contract Type

On the top of the window you have the main navigation **bar**, allowing you to choose the contract you wish to deploy. Or you can access our contract types from the boxes on the initial explore contracts page.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FJ8B4wZM2S6IzKabkD4Ww%2FLaunchifiDocsImageTemplateContracts.png?alt=media&amp;token=842f22ba-1770-4910-8a57-a3e6eb6a2d94" alt=""><figcaption></figcaption></figure>

Each icon represent a contract.

Once you select a contract type your page should update with the relevant inputs for that contract. If the page title doesn't match the contract type that you have selected please try selecting the correct contract type from the navigation bar or the explore page.


# Upload to IPFS

## What is IPFS?

In general, blockchains do not store large quantities of data (onchain) because it is quite expensive. Instead of storing the content of your image or video on the blockchain, you’ll want to store the content on IPFS (offchain) to be decentralized, and provide the IPFS URI to your content in the metadata of the NFT token.

The easiest way to upload your content to IPFS is through the use of Pinata, a 3rd party IPFS storage company.

## Pinning Your Collection on Pinata

### Create an account

Visit the [Pinata website](https://www.pinata.cloud/)

Click on Try For Free button which will take you to a registration page, fill all the details. A confirmation code will be sent to your mail, which you will use to confirm your account. You will be redirected to dashboard on successful registration

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FvUHN8nKG2W7DLtL2HumE%2Fpinata.png?alt=media&amp;token=329325c8-91b8-4853-b74b-ae956383822b" alt=""><figcaption></figcaption></figure>

### Upload Files

You can upload either a file or folder containing all your arts.

**For a file:** Click on the upload button > File > Select File > Enter file name > upload.

**For a folder:** Click on the upload button > Folder > Select a folder to upload > Enter folder name > >upload.

On successful upload a success message will display, and the new added file will display in dashboard.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2Fr1X6seFvwx9UE88ZcVEf%2Fpinataupload.png?alt=media&amp;token=311fd6e6-49ae-4d87-b3cb-e029b1da961c" alt=""><figcaption></figcaption></figure>

### Files Break Down

Now your file has been fully uploaded clicking on the file name will open the file in new tab, where you will see the newly uploaded file. **You can see on your screen:**

**CID** — hash of the file uploaded (the one we will use for our metadata) **More** — give more controls like edit name, delete file and share.

You can now access your new file on IPFS link using <https://gateway.pinata.cloud/ipfs/CID>.

In case of folders you can now access your new files on IPFS link using <https://gateway.pinata.cloud/ipfs/CID/numberOfFile>.

Replace the CID with your file CID, congratulations you just uploaded your first file on IPFS.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2F6KUQq6MBzIFeQA3uf2DY%2Fpinataipfs.png?alt=media&amp;token=8ab13f50-622f-43f8-a694-df84f6e721ae" alt=""><figcaption></figcaption></figure>

### NFT MetaData

{% hint style="info" %}
For NFTS - you will have to upload two folders. A folder containing all the jsons metadata of your collection. Another folder containing the images like the picture above.
{% endhint %}

Metadata is a JSON file which allows applications like OpenSea, Rarible and other Marketplace to pull in the data for digital assets and easily display them in-app. Though different platform have their meta data standard, here is a link to [opensea standard](https://docs.opensea.io/docs/metadata-standards).

The metadata should look like this for a single file:

```
{
"name" : // Collection Name
"description": // Description of your collection
"image" : // URL to image on IPFS
}
```

```jsx
{
"name" : "My First Upload",
"description": "my first upload",
"image" : "ipfs://QmYmfHMJiEipeXC94iGHPixR4jcDDUP4CcQNTiFWMk6iNb/1.png"
}
```

### Well done!

You have successfully uploaded your collection to IPFS and are ready to use it in your contract.


# Copy and Deploy

{% hint style="info" %}

```
Make sure you fill out all of the inputs that apply to your
contract before attempting to copy or deploy your contract.
```

{% endhint %}

We have built our tools to appeal to both our **non-technical** and **technical users** looking to launch their project with increased speed to market. Therefor we have created the deploy and copy functions in order to accomplish just that.

### Copy and Deploy Functions

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FtctCe0J8NrCBngOQcsNr%2FLaunchifiDocsImageTemplateCopyDeploy.png?alt=media&amp;token=4c3c94ac-c986-44da-92c6-4968f54b91a5" alt=""><figcaption></figcaption></figure>

### Deploy

We've created a deployment system that is as easy as a click of a button. With the deploy option it allows you to deploy your contract directly to the network and verify it all in one system.

The only thing you need to do is connect your wallet, fill out all of the contract details and click on the `deploy` button at the bottom of the contract form.

This will begin the deployment process during which you will be asked to sign transactions from your wallet. Once the deployment process is completed you will receive a confirmation alert notifying you that it is complete and where you can go view and interact with your newly deployed contract.

### Copy

We also include a copy button for the convenience of the **technical users** which allows you to copy the contract code with your inputs already inserted and preformatted.

They only thing you need to do is connect your wallet, fill out all of the contract details and click on the `copy` button at the bottom of the contract form.

This is gives you the possibility to add other parameters that we may not yet offer into your contract before you deploy saving you a great deal of time on the main contract structure and setup.


# Gas Fees

### What are Gas fees

**Gas fees** are the transaction fees that users pay to miners on a blockchain protocol to have their transaction included in the block.

The system works on a standard supply and demand mechanism. If there is more demand for transactions, miners can choose to include the transactions that pay more, compelling users to pay more to have their transactions processed quickly and efficiently.

The fees are changing along the day.

### How do I know the current Gas fees

To save some money we included in our website an option to know what are the estimated current fees to help you choose the best time to deploy.

You can see it on the top of our app.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FNOKPiLoPD89UA9mHCFyU%2FLaunchifiDocsImageGas.png?alt=media&amp;token=8b1e7add-c11d-4179-ab4b-4d4eb0258ddd" alt=""><figcaption></figcaption></figure>

### What Gas Price is Ideal?

Honestly, it all depends on when you need something deployed. If you need your smart contract deployed immediately then you really have no choice but to take whatever the gas price is currently at. However, if you have time to deploy and want to wait for an ideal time to deploy, we typically think that anything in the 10 Gwei to 30 Gwei range is considered low gas prices and an ideal time to deploy. If the gas price is gas prices of over 70 Gwei is considered high and a non-ideal time to deploy.&#x20;


# Profile page

## How to access it

To access the **Profile page you need to click on your account button at the top right hand corner once you have connected to our app.**

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FqfF7K58qkBG3J3uTTbm6%2FLaunchifiDocsImageTemplateAccountbtn.png?alt=media&amp;token=13e210c4-5869-4dde-96b0-40724755839c" alt=""><figcaption></figcaption></figure>

Once you have clicked on this button the account modal will popup, from this window you will need to click on the Profile button to get to your profile page.

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FpqJDwDeiswOIL2FrfX3t%2FLaunchifiDocsImageTemplateProfileBtn.png?alt=media&amp;token=db242f79-306e-46df-b63c-15af317c7d40" alt=""><figcaption></figcaption></figure>

The **Profile page**-is an important tool to consider when you want to organize your deployments. It is a page that highlights the deployment of your smart contracts using Launchifi and it shows different parameters like:

* Contract name
* Contract type
* Network (ChainId)
* Contract address

## How does it look like

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FJXzfnxKawLofw7fLCH3Y%2FLaunchifiDocsImageTemplateProfile.png?alt=media&amp;token=6b7b2e14-e063-4842-a2aa-ab94b5ce4ef4" alt=""><figcaption></figcaption></figure>

You might consider changing some parameters to your smart contract so we implemented a link to it at the `Manage` Buttton.

{% hint style="info" %}
We will be releasing a contract manager tool in the future for making contract calls directly to the network.
{% endhint %}


# Contract Manager

Unreleased (Coming Soon)

The **Dashboard panel**-is an important tool to consider when you want to change parameters of your smart contract easily. It is a panel that highlights the different functions of your deployed smart contracts using Launchifi and it shows different functions like:

* mintForAddress
* mint
* updatePrice
* etc...

{% hint style="info" %}
To choose a certain contract go to your `Profile page`
{% endhint %}

## How to access it

To access it click on your Profile button, click on manage contract button.

## How does it look like

Then you will be able to access the page.


# Token Contract

Create your own cryptocurrency (ERC-20)

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FMxKUHIgpUnudPPMPqL2Z%2FLaunchifiDocsImageTemplateToken.png?alt=media&amp;token=99d76e12-76aa-4698-8a18-274e3876413b" alt=""><figcaption></figcaption></figure>

**To create your cryptocurrency**

You will have to insert a few parameters:

## Contract Details

* **Contract Name** - The Name of your smart contract. (Cannot contain spaces or start with a number, i.e. EthereumContract)
* **Token Symbol** - The symbol of your cryptocurrency. (i.e ETH,DAI)
* **Token Name** - The full name of your currency. (i.e. Ethereum)

## Advanced Setup

If you have a more complex idea, you can click on the `Advanced Setup` then you will be able to:

* **Burnable** - Adds a function to burn some tokens to increase its value.
* **Pausable** - Adds function to pause the contract functions in case of Hack or else.
* **Premint** - Adds a function for the contract owner to mint a certain amount of tokens for themselves.
* **Decimals** - Allows you to choose the number of decimals for your token (default is 18).
* **Airdrop** - Adds a function to airdrop tokens to community members.
* **Withdraw** - Adds a function to withdraw the money that is currently stored on the contract.
* **Max Supply** - Gives you the ability to set a max cap of the total supply of tokens.


# Standard NFT Collection

One Mint One NFT (ERC-721)

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FaDavYrqDht9lJsKJrp5e%2FLaunchifiDocsImageTemplateNFT.png?alt=media&amp;token=be479de8-950b-4c88-82c9-bb9d88e552f4" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
This contract implements the ERC721 token standard
{% endhint %}

**To create your NFT collection**

*You will have to insert a few parameters:*

## Contract Details

* **Contract Name** - The name of your contract on the network. (No Spaces or Cannot Start with Numbers, i.e. BoredApeYachtClub)
* **Collection Symbol** - The symbol of your Collection. (i.e BAYC)
* **Collection Name** - The full name of your NFT Collection. (i.e Bored Ape Yacht Club)
* **Collection IPFS** - Location of the metadata stored. (can be on your server or IPFS,PINATA)

## Supply Details

* **Price** - How much will each NFT be worth.
* **Total Supply** - How many total NFTs your collection will contain.
* **Max Per Transaction** - Anti-Whale - Limit the minting (creation of NFT) quantity per transaction for each user.
* **Max Per Wallet** - Anti-Whale - Limit the minting (creation of NFT) quantity per wallet for each user.

## Advanced Setup

* **Whitelist Functionality** - Allows you to let Whitelisted members of your community that you want to allow to mint first before anyone else. You will need to enter the root hash of your whitelist merkletree.
* **Hidden/Reveal Functionality** - Allows you to reveal your real collection at a certain time. You will be required to enter a hidden ipfs to display the image that will show until your collection is revealed.
* **Airdrop** - Allows you to airdrop NFTs to specific wallets.
* **Split Payment** - Allows you to split the payout between multiple wallets. This is good to use if you have multiple team members that need to receive a percentage of the payout.


# Low Gas NFT Collection

Gas optimized NFT Collection for efficient batch minting (ERC-721A)

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FkzPKMv0fjfko9ETQQPox%2FLaunchifiDocsImageTemplateLowGas.png?alt=media&amp;token=71c8e819-53be-4611-bb00-8fe83b635d02" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The ERC721A contract is a powerful way to save your community gas costs and save the Ethereum network from unnecessary congestion by batch minting NFTs.
{% endhint %}

**To create your NFT collection**

*You will have to insert a few parameters:*

## Contract Details

* **Contract Name** - The name of your contract on the network. (No Spaces or Cannot Start with Numbers, i.e. BoredApeYachtClub)
* **Collection Symbol** - The symbol of your Collection. (i.e BAYC)
* **Collection Name** - The full name of your NFT Collection. (i.e Bored Ape Yacht Club)
* **Collection IPFS** - Location of the metadata stored. (can be on your server or IPFS,PINATA)

## Supply Details

* **Price** - How much will each NFT be worth.
* **Total Supply** - How many total NFTs your collection will contain.
* **Max Per Transaction** - Anti-Whale - Limit the minting (creation of NFT) quantity per transaction for each user.
* **Max Per Wallet** - Anti-Whale - Limit the minting (creation of NFT) quantity per wallet for each user.

## Advanced Setup

* **Whitelist Functionality** - Allows you to let Whitelisted members of your community that you want to allow to mint first before anyone else. You will need to enter the root hash of your whitelist merkletree.
* **Hidden/Reveal Functionality** - Allows you to reveal your real collection at a certain time. You will be required to enter a hidden ipfs to display the image that will show until your collection is revealed.
* **Airdrop** - Allows you to airdrop NFTs to specific wallets.
* **Split Payment** - Allows you to split the payout between multiple wallets. This is good to use if you have multiple team members that need to receive a percentage of the payout.


# Fungible NFTs

Create your own NFT collection for games or a collection that utilizes 1 image accross the entire collection (ERC-1155)

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FDmxZtaUCPWbaq42nH8N5%2FLaunchifiDocsImageTemplateFungi.png?alt=media&amp;token=8fef45a0-2939-4284-b117-615e35920df6" alt=""><figcaption></figcaption></figure>

ERC-1155 is a digital token standard created by Enjin that can used to create both fungible (currencies) and non-fungible (digital cards, pets and in-game skins) assets on the Ethereum Network. ERC-1155 a new way of creating tokens that allow for more efficient trades and bundling of transactions – thus saving costs. This token standard allows for the creation of both utility tokens (such as $BNB or $BAT) and also Non-Fungible Tokens like CryptoKitties.

**To create your ERC1155 Collection**

*You will have to insert a few parameters:*

## Contract Details

* **Contract Name** - The name of your contract on the network. (No Spaces or Cannot Start with Numbers, i.e. BoredApeYachtClub)
* **Collection Symbol** - The symbol of your Collection. (i.e BAYC)
* **Collection Name** - The full name of your NFT Collection. (i.e Bored Ape Yacht Club)
* **Collection IPFS** - Location of the metadata stored. (can be on your server or IPFS,PINATA)

## Supply Details

* **Price** - How much will each NFT be worth.
* **Total Supply** - How many total NFTs your collection will contain.
* **Max Per Transaction** - Anti-Whale - Limit the minting (creation of NFT) quantity per transaction for each user.
* **Max Per Wallet** - Anti-Whale - Limit the minting (creation of NFT) quantity per wallet for each user.

## Advanced Setup

* **Burnable** - Adds a function to burn some NFTs to increase their value.
* **Pausable** - Adds function to pause the contract functions in case of a Hack or something else.
* **Burn and Mint Match** - Can burn and mint batches of NFT.
* **Payable** - This allows you to charge people to mint your collection otherwise it will be a free mint.
* **Hidden/Reveal Functionality** - Allows you to reveal your real collection at a certain time. You will be required to enter a hidden ipfs to display the image that will show until your collection is revealed.
* **Premint** - Adds a function for the contract owner to mint a certain amount of NFTs for themselves.


# Free Mint NFT Collection

NFT Collection featuring free NFTs (ERC-721A)

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FzZQwFIOOXXzlJld04YIy%2FLaunchifiDocsImageTemplateFree.png?alt=media&amp;token=52fa7fde-09d9-4086-9161-99b32682603a" alt=""><figcaption></figcaption></figure>

While many NFT projects require us to pay an upfront fee to mint, there are some which provide a free mint. Here, we look at how we can profit from free mint and degen plays that have become the roaring theme in this bear market. One famous collection: goblin town NFT launched during a bear market has taken the internet by storm. Currently, it sits at a floor price of 3.37ETH at the time of writing.

**To create your Degen collection**

*You will have to insert a few parameters:*

## Contract Details

* **Contract Name** - The name of your contract on the network. (No Spaces or Cannot Start with Numbers, i.e. BoredApeYachtClub)
* **Collection Symbol** - The symbol of your Collection. (i.e BAYC)
* **Collection Name** - The full name of your NFT Collection. (i.e Bored Ape Yacht Club)
* **Collection IPFS** - Location of the metadata stored. (can be on your server or IPFS,PINATA)

## Supply Details

* **Price** - How much will each NFT be worth.
* **Total Supply** - How many total NFTs your collection will contain.
* **Max Free NFTs Per Wallet** - Anti-Whales - Limit the free minting(creation of NFT) per transaction for each user other will be payed.
* **Total Free NFTs** - Anti-Whales - Limit the free minting (creation of NFT) per wallet for each user other will be payed.

## Advanced Setup

* **Hidden/Reveal Functionality** - Allows you to reveal your real collection at a certain time. You will be required to enter a hidden ipfs to display the image that will show until your collection is revealed.
* **Free Supply Limit** - Set the max amount of NFTs to be free, other than that the remaining NFTs will cost something.
* **Split Payment** - Allows you to split the payout between multiple wallets. This is good to use if you have multiple team members that need to receive a percentage of the payout.


# English Auction

Create an auction for an NFT collection, price starts low to high

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2F4EBiVMIiet210BgdITDT%2FLaunchifiDocsImageTemplateEnglish.png?alt=media&amp;token=16710ec1-e265-4cb7-926e-7e0285853c14" alt=""><figcaption></figcaption></figure>

The standard for art, antiquity and real estate auction sales is the English auction. Even this standard can contain minor variances but ones that are nonetheless important to understand in order to develop a successful bidding strategy. As the most popular auction type, the English auction pits bidders against each other with the eventual winner being the highest bidder.

In the typical English auction, participants bid against each other. Bidding begins either with an opening bid from the participants or from the auctioneer. Bidding progresses when a bidder offers a higher bid and continues until the last bidder is standing. Bids can be announced by the auctioneer or by the bidder himself or by a third party as in a proxy call. Today, bids are also received via electronic media.

In certain cases where arrangements between prospective bidders and the auctioneer have been prearranged, a bid can be offered by the auctioneer. The English Auction ends when bidding stops. At this point, the highest bidder pays the successful bid price and claims the item. In most English Auctions, the seller establishes a minimum sale price, also known as the “Reserve Price.” The auctioneer cannot sell the item for less than this price.

In many English auctions, the auctioneer establishes an incremental amount. Each progressive bid must exceed the previous bid by at least the incremental amount. The fact that the current highest bid is known to the participants adds interesting degrees of strategy to this type auction.

{% hint style="info" %}
The token owner have to approve the token to be sent to the contract
{% endhint %}

***You will have to insert a few parameters:***

## Contract Details

* **Contract Name** - How do you want to name your smart contract.
* **Collection Address** - The address of your Collection you want to apply the bidding.

1. To create an auction: you will have to click on create auction function and insert the parameters: \_tokenId - The token Number of the selected collection. \_startingBid - The opening bid. \_startTime - Time in timestamp, when the bidding will start. \_endTime - Time in timestamp, when the bidding will end.
2. Then activate the auction by clicking AuctionStart and insert the auction number issued above.
3. Users will be able to bid using AuctionBid and insert the auction number issued above.
4. When the auction will be done the owner will be able to end the auction by clicking AuctionEnd and the money will be sent to him the NFT will be transfered.
5. Owner can cancel the auction if it wasn't activated by clicking on AuctionCanceled.
6. To allow users bidding higher, they can withdraw their money if they are not the highest bid.
7. There is an option to see which NFTs bid are still opened and which one were closed.


# Dutch Auction

Create an auction for an NFT collection, price starts high to low

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FXu1gO12mGHz9lahPAnGU%2FLaunchifiDocsImageTemplateDutch.png?alt=media&amp;token=e65033df-c142-4490-8f9a-b8f5e5b97811" alt=""><figcaption></figcaption></figure>

The Dutch Auction – Unlike most auction types, the Dutch Auction relies upon an open descending price bidding system to decide the successful bidder. The Dutch auction is moist often connected to the famous Dutch fresh cut flower auction. It is designed to expedite sales. Product knowledge is important in this type bidding.

In Dutch Auctions, the auctioneer begins with a high price for the sale of the a specific lot size. If the opening bid is not met, lower bids drive the price down. When all bidding ceases, or when the seller’s Reserve Price is not met, the bidding ends unless the auctioneer can award quantities of the lot at certain prices until the seller’s Reserve Price is met. If the fit bidder does not match the price for the entire lot, the auctioneer will reduce the price until the Reserve is reached and the entire lot is sold.

In Dutch Auctions, items within the lot can be allocated based on bid order. The highest bidder earns the right to select first. The remainder of items are chosen by bidders according to the weight of their final bid. Dutch Auctions are popular in certain online bidding and in most perishable product auctions, such as fish and tobacco auctions.


# NFT Staking

Create a reward based system for an NFT Collection

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2F6AIZUUyID8TH3rdgX3eE%2FLaunchifiDocsImageTemplateNftStake.png?alt=media&amp;token=4f4901ca-dac9-4951-aa42-1c71a0bf28af" alt=""><figcaption></figcaption></figure>

Staking has the added benefit of contributing to the security and efficiency of the blockchain projects you support. For a lot of traders and investors, knowing that staking is a way of earning rewards for holding certain cryptocurrencies.

**To create your NFT Staking**

*You will have to insert a few parameters:*

## Contract Details

* **Contract Name** - How do you want to name your smart contract.
* **Collection Address** - The address of your Collection (i.e 0x...).
* **Reward Token Address** - The address of your ERC20 reward.

## Staking Details

* **Staking Duration** - How long the users will have to stake to receive rewards.
* **Staking Reward** - How much of your cryptocurrency users will receive after the staking duration.


# LP Token

Create a token with rewards built into them

<figure><img src="https://58762777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9I0NYQoruZ3ItahEMqSC%2Fuploads%2FO6hiXJP0447R3LNgeruB%2FLaunchifiDocsImageTemplateLp.png?alt=media&amp;token=76509d56-b36d-4bf0-bf42-72680f97539c" alt=""><figcaption></figcaption></figure>

An LP token, or reflection token, is a cryptocurrency whose holders are rewarded by levying fees on transactions and then redistributing a percentage of the fees charged to them.

A ‘reflective token’ distributes a percentage of every transaction back to its holders. Token holders are encouraged to hold onto their tokens and earn rewards from transactions on the market by using this mechanism.

**To create your LP Tokens**

You will have to insert a few parameters:

## Token Details

* **Contract Name** - The Name of your smart contract. (Cannot contain spaces or start with a number, i.e. EthereumContract)
* **Token Symbol** - The symbol of your cryptocurrency. (i.e ETH,DAI)
* **Token Name** - The full name of your currency. (i.e. Ethereum)

## Supply Details

* **Total Supply** - Gives you the ability to set a max cap of the total supply of tokens.
* **Decimals** - Allows you to choose the number of decimals for your token (default is 18).

## Liquidity Pool Details

* **Router** - Set the Defi exhange router address that people will be able to use to swap for your currency. (i.e uniswap v2 - 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D)
* **Treasury Fee** - Set the % fee from every transaction that are sent to the treasury address.
* **Tax Fee** - Set the % fee from every transaction that are distributed to all token holders.
* **Liquidity Fee** - The % fee from every transaction that are distributed to the liquidity pool.
* **Treasury Wallet** - All treasury tokens from the “Treasury Fee” will be distributed to this address.


# ERC20 vs ERC721

ERC20 and ERC721 are two different standards for creating tokens on the Ethereum blockchain.

**ERC20**

ERC20 is a standard for creating fungible tokens, meaning that each token is identical and interchangeable with another. They are like currency and can be used to represent assets such as a company's stock or a currency and are used in Defi.

Some examples of ERC20 tokens are:

* Binance Coin (BNB)
* Tether (USDT)
* Chainlink (LINK)
* Polkadot (DOT)
* Uniswap (UNI)
* Wrapped Bitcoin (WBTC)

**ERC721**

ERC721 on the other hand, is a standard for creating non-fungible tokens, (NFT) meaning each token is unique and cannot be exchanged for another token on a 1-to-1 basis. They are like collectibles and can be used to represent assets such as art, real estate, or in-game items.

Some examples of ERC721 tokens are:

* Bored Ape Yacht Club
* Doodles
* CryptoKitties
* CryptoPunks

&#x20;*(above Doodles collection, the famous Doodles)*

In summary, the key difference between ERC20 and ERC721 is that ERC20 is for fungible tokens and ERC721 is for non-fungible tokens.


# ERC721A vs ERC721

ERC 721A is an improvement standard for ERC721 tokens. It was proposed by the Azuki team and used for developing their NFT collection.

Compared with ERC721, ERC721A is a more gas-efficient standard to mint thousands of NFTs simultaneously. It allows developers to mint multiple NFTs at the same gas price. This has been a great improvement due to Ethereum’s sky-rocketing gas fee.

The goal of ERC721A is to provide a fully compliant implementation of IERC721 with significant gas savings for minting multiple NFTs in a single transaction.

This table shows how the gas used for ERC721A for an increasing number of mints scales at a much smaller constant factor. This may be the a good answer for high ethereum gas fees for multiple mints.

## Cheaper batch mints sound awesome! Are there any downsides to all this good? (Yes)

The tradeoff of the ERC721A contract design is that functions using `transferFrom` and `safeTransferFrom` cost more gas, which means it may cost more to gift or sell an ERC721A NFT after minting than a normal ERC721 NFT.

The ERC721A `_safeMint` logic makes efficiency gains by not setting explicit owners of specific tokenIDs when they are consecutive IDs minted by the same owner.


# ERC721 vs ERC1155

ERC-1155 and ERC-721 are both Ethereum token standards, but they have different properties and uses:

**ERC-1155** It's a multi-token standard that allows for the creation of both fungible (interchangeable) and non-fungible (unique) tokens within the same smart contract.

Some functions described below:

This allows for more flexibility and can result in reduced gas costs compared to using separate contracts for different types of tokens.

**ERC-721** It's a non-fungible token standard that defines a minimum interface for unique, indivisible tokens on the Ethereum blockchain. This means each token has its own unique identity, attributes and ownership.

ERC-721 is most commonly used for creating unique digital assets such as collectible items, virtual real estate and more.

&#x20;*(above BAYC collection, the famous Apes)*

In summary, ERC-1155 is a more versatile token standard while ERC-721 is mainly focused on unique digital assets.


# ERC721i

**ERC721i is an improvement standard for ERC721 tokens.**

By utilizing and only slightly adapting the popular Open Zeppelin ERC721 contracts in order to maintain the highest level of open standards. However, the approach we have taken is so simple, that it can be easily adapted to any ERC721 framework.

Their goal is to Eliminate Minting Fees for all NFT projects by providing a new method of Pre-Minting an entire collection up-front for half the cost of minting a single, standard NFT.

Then users will be able to `transfer` the `premint` NFT instead of minting them, alleviating some of the network congestion caused when there is huge demand for a new token, allowing a decline cost in Gas.

**Some Numbers:**


# Rate Configuration

* Does your crowdsale sell tokens at a fixed price?
* Does the price change over time or as a function of demand?

Understanding the rate of a crowdsale is super important, and mistakes here are a common source of bugs.

In Ether, the smallest unit of the currency is wei, and `1 ETH === 10^18 wei` . You will have to set the number of tokens per wei payed.


# Distribution

* Does distribution of funds happen in real-time or after the crowdsale?
* Can participants receive a refund if the goal is not met?

There comes a time in every crowdsale’s life where it must relinquish the tokens it’s been entrusted with. It’s your decision as to when that happens!

The default behavior is to release tokens as participants purchase them, but sometimes that may not be desirable. For example, what if we want to give users a refund if we don’t hit a minimum raised in the sale? Or, maybe we want to wait until after the sale is over before users can claim their tokens and start trading them, perhaps for compliance reasons?

### PostDeliveryCrowdsale

The PostDeliveryCrowdsale, as its name implies, distributes tokens after the crowdsale has finished, letting users call withdrawTokens in order to claim the tokens they’ve purchased.

### RefundableCrowdsale

The RefundableCrowdsale offers to refund users if a minimum goal is not reached. If the goal is not reached, the users can claimRefund to get their Ether back.


# Token Emission

* How is this token actually sent to participants?
* Validation — Who is allowed to purchase tokens?

## One of the first decisions you have to make is "how do I get these tokens to users?"

This is usually done in one of three ways:

### (default)

The Crowdsale contract owns tokens and simply transfers tokens from its own ownership to users that purchase them.

### MintedCrowdsale

The Crowdsale mints tokens when a purchase is made.

To use a MintedCrowdsale, your token must also be a ERC20Mintable token that the crowdsale has permission to mint from.

### AllowanceCrowdsale

The Crowdsale is granted an allowance to another wallet (like a Multisig) that already owns the tokens to be sold in the crowdsale.

Use an AllowanceCrowdsale to send tokens from another wallet to the participants of the crowdsale. In order for this to work, the source wallet must give the crowdsale an allowance via the ERC20 approve method.


# Validation

* Are there KYC / AML checks?
* Is there a max cap on tokens?
* What if that cap is per-participant?
* Is there a starting and ending time frame?

There are a bunch of different validation requirements that your crowdsale might be a part of:

### CappedCrowdsale

Adds a cap to your crowdsale, invalidating any purchases that would exceed that cap

### IndividuallyCappedCrowdsale

Caps an individual’s contributions.

### WhitelistCrowdsale

Only allow whitelisted participants to purchase tokens. this is useful for putting your KYC / AML whitelist on-chain!

### TimedCrowdsale

Adds an `openingTime` and `closingTime` to your crowdsale


