> For the complete documentation index, see [llms.txt](https://seize-io.gitbook.io/nextgen/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://seize-io.gitbook.io/nextgen/for-creators/sales-models.md).

# Sales Models

The NextGen contract supports a wide range of sales models, allowing for experimentation in pricing. These models can be combined in multiple phases to support different pricing for different types of collectors.

### Sales Models Parameters:

The Sales Models are based on 4 parameters:

* `collectionMintCost that refers to the starting/fixed minting cost.`
* `collectionEndMintCost that refers to the ending/resting price of a sale.`
* `rate that refers to the descending/increasing rate based on which the minting cost will be updated.`
* `timePeriod that refers to time period which affects the minting price.`

### Sales Models Types

**Airdrops**

NFTs are airdropped directly to a list of collectors.

**Fixed Price Sale**

The minting cost is fixed during the minting phase.&#x20;

The rate and timeperiod need to be set to 0 as they do not affect the price.

**Exponential Descending Sale**

At each time period (which can vary), the minting cost decreases exponentially until it reaches its resting price (ending minting cost) and stays there until the end of the minting phase.

In this model the starting and ending minting costs and the time period are set while the rate is 0.

**Linear Descending Sale**

At each time period (which can vary), the minting cost decreases linearly until it reaches its resting price (ending minting cost) and stays there until the end of the minting phase.

In this model all parameters need to be set.

**Periodic Sale**

Mints are limited to 1 token during each time period (e.g. minute, hour, day). The minting cost can either stable or have a bonding curve (increase) over time. This allows for long-lived or experimental mints.

Two options:

1. If rate is set to 0, then the minting cost price does not increase per minting.
2. If rate is set, then the minting cost price increases based on the tokens minted as well as the rate.

**Burn-to-Mint**

Mints in this model can be one of two types:

1. A user burns a NextGen token to get a new NextGen token on a different collection
2. A user burns a non-NextGen token to get a NextGen token on a collection

**Mint-to-Auction**

Mints are limited to 1 token during each time period (e.g. minute, hour, day). Once a token is minted its directly send to an auction.

### Sales Models Examples

**Exponential Descending Sale Example:**

<table data-full-width="false"><thead><tr><th>Starting Price</th><th>Resting Price</th><th>Time Period</th></tr></thead><tbody><tr><td>4ETH</td><td>1ETH</td><td>600s</td></tr></tbody></table>

<figure><img src="https://1668473490-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3qI2FLgAYXA3Xwo3vYpc%2Fuploads%2FuoFGMkINuwL5XOhzhRVw%2Fimage.png?alt=media&amp;token=40627884-185e-468d-bc3f-5e49b12d7905" alt=""><figcaption></figcaption></figure>

At the above example the price decreases gradually each second until it reaches the resting price 30mins (3 periods) after the start of the sale and stays there until the end of the sale.

During the 1st time period price will move from 4ETH --> 2ETH

During the 2nd time period price will move from 2ETH --> 1,3333... ETH

During the 3rd time period price will move from 1,33333... ETH --> 1ETH

After the 3rd period the price will be 1ETH (resting price) until the end of minting.

**Linear Descending Sale Example:**

| Starting Price | Resting Price | Rate   | Time Period |
| -------------- | ------------- | ------ | ----------- |
| 4ETH           | 3ETH          | 0.1ETH | 600s        |

<figure><img src="https://1668473490-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3qI2FLgAYXA3Xwo3vYpc%2Fuploads%2FCpIIHIzdRM78gST78Rnk%2Flinearde.png?alt=media&amp;token=dc87793c-7912-4530-b16d-b4a9053a310f" alt=""><figcaption></figcaption></figure>

At this example the price decreases 0.1 ETH during each time period of 600s until it reaches the resting price 3ETH and stays there until the end of the sale.

During 1st time period price will be 4ETH.

During 2nd price period price will be 3.9ETH.

During 3rd price period price will be 3.8ETH.

...

During 9th price period price will be 3.1ETH.

After that period the price will be 3ETH (resting price) until the end of the minting.

**Periodic Sale Example:**

| Starting Price | Rate | NFTs Minted | Time Period |
| -------------- | ---- | ----------- | ----------- |
| 1ETH           | 10%  | 5           | 600s        |

<figure><img src="https://1668473490-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3qI2FLgAYXA3Xwo3vYpc%2Fuploads%2FdHywKHvFFGpULS1SzTEf%2Fperiodic.png?alt=media&amp;token=756023e5-2aee-42c0-bd82-fd0c72a468a6" alt=""><figcaption></figcaption></figure>

At this example the minting price increases by 10% based on the NFTs minted. In addition during each time period of 600s just 1 NFT can be minted.

Let's assume that the minting sale starts at 24/07/2023 14:00. The first minting takes place at 24/07/2023 14:03. Users will be able to mint again after the time period has elapsed so after 24/07/2023 14:10. In case they try to mint prior that time their transaction will be reverted.

Any unminted tokens from previous periods are transferred for minting in upcoming periods, ex: in the above case if none was minting during the first period a user is able to mint 2 tokens during the 2nd period. Please note that as the max Number of Tokens to mint must be 1 in order to mint the 2 tokens it needs to execute 2 different transactions.
