How to launch an NFT Collection on Cardano with no code

Tangocrypto
8 min readSep 14, 2022

This guide assumes you already have a Tangocrypto account and access to our Dashboard. Otherwise, you are welcome to register.

What it a collection?

A collection is a way to create a group of individual NFTs with similar attributes. All the NFTs belonging to the same collection share attributes like the artist, year of creation, social networks, name of the collection, etc.

1. Information

To create a new collection, go to NFT Studio and select the network. Use the testnet for testing and getting familiarized with the platform. Select the mainnet once you feel confident and you want to launch the collection to the public.

Collection information

Parameters

  • name: (Mandatory) Collection name. The collection name is internal to your Tangocrypto account. This is just a way to identify different collections.
  • description: (Optional) Collection description. The collection description is internal to your Tangocrypto account.
  • url: (Optional) URL of the website where the collection is going to be sold.
  • payout_address:(Mandatory) Wallet address that is going to receive the payments of the NFT sale. This should be the wallet address of the seller.
  • Royalty address: Royalties from the NFTs sales will give you a percentage of the sale price each time the NFT is sold on a marketplace, and this is the address receiving those payments.
  • Royalty percentage: Percentage of the sale price each that goes to your address everytime the is sold on a marketplace. IMPORTANT: Take into consideration that it cannot be changed once your collection is created!

2. Policy

The next step will be to define the policy.

Collection policy

When you create a new collection we do several steps in the background; we create a new key pair (public verification key/private signing key), a policy script and the policy id. Then during the sale process, all the tokens are minted with the same policy script and the policy id is attached permanently to the NFT.

  • Policy will lock: Defines if the policy will be locked or not. If you leave it as default (No) then you are not required to choose a date and time to lock the policy, therefore the policy will be open and you can be minting NFTs under this policy forever. If you set the policy to lock (Yes) then you have to specify a locking date.
  • Locking date: It defines how long you’ll be able to mint NFTs for the collection. The policy will lock after that date, and you won’t be able to mint more NFTs using the same policy id (even if you use the same key). Take into consideration the desirability and size of your collection before setting this date and leave enough time for selling the NFTs. There is no limited time for the future.

3. Metadata

Next step will be to define the metadata for the NFTs in the collection.

Collection metadata definition

Here you can define custom attributes or traits for an NFT. You can create 2 types of attributes, fixed or variables.

  • Fixed properties: Type a key-value pair, and it will be added to every NFT in the collection. The value can be a single word or sentence and is not evaluated; what you type here is what we add to the collection. For example, if you set a key with Twitter and the value with @tango_crypto, then every NFT in your collection will have the property "Twitter": "@tango_crypto".
Fixed properties
  • Variable properties: Use a <tag> to say you want this property to be included in every NFT in the collection, but you don't know the value yet. You will specify the value in the NFT creation step. For example, if you set a key with color and the value with <color>, then every NFT in your collection will have the property "color" that must be filled depending on the background color used.
Variable properties

4. Summary

The final step is a summary of the collection.

5. Create a NFT

Once the collection is created you can start adding what will become a NFTs (technically speaking to be an NFT it needs to be minted in the blockchain). The next step is to upload the images and define the metadata for each NFT in the collection.

Go to the collection and click on the NFTs tab. Then click on New NFT and select Single NFT.

Create single NFT

Upload an image or paste the IPFS link and click Continue.

Upload image

Define the properties of the NFT. The fixed properties are taken from the collection; thus, we don’t have to define them on every NFT. In this example, we have the website, Twitter and collection name as fixed properties. The required and variable properties are the ones we have to define. In this example, we have the asset name, colour, and background.

Define properties

​You can see a preview of the NFT on the right side. You can add more properties here by adding name and value. For example, we added the new property element with a value fire.

Once you are ready, click on Create NFT, and the content will be uploaded to our system, and the image will be uploaded to IPFS automatically.

NFT properties and preview

Once the NFT is uploaded to IPFS and ready for sale, it will show up on the list with the status For sale.

NFTs list

You can see the details and edit the image or properties if you click on it.

NFT detail

6. 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.

7. 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 tier
  • 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 (in Lovelaces) for the tier. For example, you can create a price tier with amount 5 and price 50. That means the buyer is going to pay 50 ADA for 5 NFTs.

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><html><head><meta charset="utf-8"><title>Minting Site</title></head><body><div class="container"><div><div><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><br><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></select><br><br></script> </p><p style="text-align:center;"><button onclick="javascript:tangoPay()"> Pay </button></div></div></div><script type="text/javascript">function tangoPay() {const paymentUrl = NFT.value;// Specify the popup width and heightconst width = 500;const height = 910;// Calculate the center of the screenconst 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}`);}</script></body></html>

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.

Demo website and payment gateway

--

--

Tangocrypto

Everything you need to create your next idea. Our APIs and developer tools suite provides you with fast and reliable access to the Cardano network.