Sale Phases

What are sale phases?

A sale phase is a control mechanism that defines how you will sell the collection. You can add different phases to control how you will sell the collection. For example, you might have a total of 5000 NFTs, and you want to sell them in three phases.
sale phases
You can create a pre-sale phase to sell the first 1000 NFTs to previous customers at a special price and within a specific time range. You can identify these customers with a condition; that would be an NFT with one particular policy id on their wallets. Then you create another sale phase for the public drop with 3900 NFTs and no conditions, and last, you leave 100 NFTs as a reserve to mint in the last phase.
This is not a real example; the idea is that you can create several sale phases, and each one can have different parameters and conditions.

Step 1: Create a sale phase

To create a sale phase go to the collection, select Sale Phases tab and click on Add Sale phase.
Sale phase
  • name: Sale phase name. For example, pre-sale.
  • type: (Mandatory) Defines.
    • fixed: Use fixed for selling a particular token or token list identified by the token-id on each token. Use random for random sales, it will pick random tokens from the collection.
    • random: Use random for random sales, it will pick random tokens from the collection.
  • total_tokens: (Mandatory) Defines how many NFTs you will sell in this phase. For example, you are doing a pre-sale, and you want to sell 1000 NFTs.
  • reservation_time: (Mandatory) Reservation time in seconds. This timer defines how long an NFT will be reserved once a potential buyer starts the buying process. During this time interval, the NFT won't be available for sale. No other buyer will be able to create a new reservation. If the payment is not received and this timer expires, then the NFT is ready for sale again, and it can be reserved by another buyer.
  • start_time: Starting date for the sale phase in ISO 8601 format yyyy-mm-ddThh:mm:ss[.mmm]. If you don't provide this value you can start selling immediately and the time condition won't be checked.
  • end_time: Ending date for the sale phase in ISO 8601 format yyyy-mm-ddThh:mm:ss[.mmm]. If you don't provide this value, there is no time boundary; thus, you can sell NFTs until you reach the collection's total amount.

Step 2: Create a price tier within the sale phase.

Create price tiers per sale phase. A price tier is a way to create bundles and sell them for different prices. For example, you can create a price tier with 10 NFTs for 100 ADA, and the buyer will pay 100 ADA and receive 10 NFTs in their wallet. You can create up to 10 price tiers per sale phase.
Price tiers
  • name: Price tier name. You can name your price tiers within a sale phase.
  • quantity: Amount of tokens to mint in a price tier. For example, you can specify that buyers selecting the bronze price tier will mint 1 token and the buyers choosing the silver price tier will mint a bundle with 5 tokens. You can create a price tier with a maximum of 100 tokens.
  • supply: Token supply. If you don''t specify the supply, it will be set to 1 by default.
  • price: Price for the tier. You can include multiple prices and assets. For example, one NFT can be paid with 50 ADA, 1000000 HOSKY or 500000 LQ.
When you enable payments with native tokens, the QR option is removed from the payment gateway. Only buyers with browser wallets will be able to make purchases.
When the price tiers are created, you'll see them in the first tab (Price Tiers). It also shows the total number of NFTs in the sale phase, and it gives you how many sales of each price tier. In that way, you can know which one is the most popular. The following image shows that 40% of the NFTs have been sold, and the platinum tier is the most popular.
Sale phase and price tiers
Every price tier will generate a payment link. These payment links are the ones you use on your website for customers to buy your NFTs.
Payment links for light and dark mode
Here is a code example showing a demo website with a dropdown for the buyer to select how many NFTs they want to purchase.
<!DOCTYPE html>
<meta charset="utf-8">
<title>Minting Site</title>
<div class="container">
<p style="text-align:center;">My minting website</p>
<p style="text-align:center;">
<br>Please Select the number of NFT that you will be Minting<br>
<select id="NFT">
<option value="None">-- Select --</option>
<option value="https://buy.tangocrypto.com?q=test_eyJjb2xsZWN0aW9uX2lkIjoiMDFnYjNmc3Y4Yms1N3p4YXBkNzNnOHJkN3oiLCJwaGFzZV9pZCI6IjAxZ2IzZnZ4MnF6enB0cjVuajB2bjdrc3g4Iiwic3RhcnRfZGF0ZSI6IiIsImVuZF9kYXRlIjoiIiwicnVsZXMiOltdLCJwcmljZSI6MTAwMDAwMDAsInByaWNlX2lkIjoiMDFnYjNmdngya2RwejN6MjBmcGh5cDY5cGIiLCJxdWFudGl0eSI6MSwic3VwcGx5IjoxLCJ0eXBlIjoiUGhhc2VTYWxlIiwiaXNfcmFuZG9tIjp0cnVlLCJ0aXRsZSI6IkFmZmlsaWF0ZTIiLCJ0Y2MiOiJxWCtwZ0lSbTRCbmJVVHZScXN4a0xibnlBYWwrQkg5THpER3IxK1RSaDV1U2RRUGQrVzB6dHVCekF5eHNQZmZRSlFQR3pIVVV2b0F0R09tTW5iWVZJWFRBTkIyNWlSRTFiMFArN2MvNEFzSjQydWhMbFhFZ3dramNWQWZWQWc9PSIsIm1heF90eF9mZWUiOjg3NjI3NywicmVzZXJ2YXRpb25fdGltZSI6MTgwMCwibmZ0X2Nvc3QiOjM0NDgyfQ">1</option>
<option value="https://buy.tangocrypto.com?q=test_eyJjb2xsZWN0aW9uX2lkIjoiMDFnYjNmc3Y4Yms1N3p4YXBkNzNnOHJkN3oiLCJwaGFzZV9pZCI6IjAxZ2IzZnZ4MnF6enB0cjVuajB2bjdrc3g4Iiwic3RhcnRfZGF0ZSI6IiIsImVuZF9kYXRlIjoiIiwicnVsZXMiOltdLCJwcmljZSI6NDAwMDAwMDAsInByaWNlX2lkIjoiMDFnYjQ0ZGhlc3RreTExYndoazd2NDB5c3YiLCJxdWFudGl0eSI6NCwic3VwcGx5IjoxLCJ0eXBlIjoiUGhhc2VTYWxlIiwiaXNfcmFuZG9tIjp0cnVlLCJ0aXRsZSI6IkFmZmlsaWF0ZTIiLCJ0Y2MiOiJxWCtwZ0lSbTRCbmJVVHZScXN4a0xibnlBYWwrQkg5THpER3IxK1RSaDV1U2RRUGQrVzB6dHVCekF5eHNQZmZRSlFQR3pIVVV2b0F0R09tTW5iWVZJWFRBTkIyNWlSRTFiMFArN2MvNEFzSjQydWhMbFhFZ3dramNWQWZWQWc9PSIsIm1heF90eF9mZWUiOjg3NjI3NywicmVzZXJ2YXRpb25fdGltZSI6MTgwMCwibmZ0X2Nvc3QiOjM0NDgyfQ">2</option>
<option value="https://buy.tangocrypto.com?q=test_eyJjb2xsZWN0aW9uX2lkIjoiMDFnYjNmc3Y4Yms1N3p4YXBkNzNnOHJkN3oiLCJwaGFzZV9pZCI6IjAxZ2IzZnZ4MnF6enB0cjVuajB2bjdrc3g4Iiwic3RhcnRfZGF0ZSI6IiIsImVuZF9kYXRlIjoiIiwicnVsZXMiOltdLCJwcmljZSI6NTAwMDAwMDAsInByaWNlX2lkIjoiMDFnYjV3NWYyenBmdGVnazczM2VoODZwbnIiLCJxdWFudGl0eSI6NSwic3VwcGx5IjoxLCJ0eXBlIjoiUGhhc2VTYWxlIiwiaXNfcmFuZG9tIjp0cnVlLCJ0aXRsZSI6IkFmZmlsaWF0ZTIiLCJ0Y2MiOiJxWCtwZ0lSbTRCbmJVVHZScXN4a0xibnlBYWwrQkg5THpER3IxK1RSaDV1U2RRUGQrVzB6dHVCekF5eHNQZmZRSlFQR3pIVVV2b0F0R09tTW5iWVZJWFRBTkIyNWlSRTFiMFArN2MvNEFzSjQydWhMbFhFZ3dramNWQWZWQWc9PSIsIm1heF90eF9mZWUiOjg3NjI3NywicmVzZXJ2YXRpb25fdGltZSI6MTgwMCwibmZ0X2Nvc3QiOjM0NDgyfQ">3</option>
</script> </p>
<p style="text-align:center;">
<button onclick="javascript:tangoPay()"> Pay </button>
<script type="text/javascript">
function tangoPay() {
const paymentUrl = NFT.value;
// Specify the popup width and height
const width = 500;
const height = 910;
// Calculate the center of the screen
const left = window.top.outerWidth / 2 + window.top.screenX - ( width / 2);
const top = window.top.outerHeight / 2 + window.top.screenY - ( height / 2);
const popup = window.open(paymentUrl, "Tangopay", `popup=1, location=1, width=${width}, height=${height}, left=${left}, top=${top}`);
That will render the following page. In this example, the buyer selected 2 NFTs and then clicked on the pay button. That will launch the payment gateway where the buyer can buy with their wallet or send Ada to an address.
When you pay using a browser wallet everything happens in one multisig transaction:
  • The buyer sends the payment
  • The NFT is minted to the buyers wallet
  • The collection owner gets paid
  • We receive our minting fee