📪Launching on Launchpad

Step 0 - Prepare your NFT Images & metadata

So you want to start a collection?

When you plan, you plan to succeed! So let's plan for our success shall we?

Most important for us launchpad Partners, is to setup our NFT images and metadata. If you head over to Step 2, you will see an attribute labeled token_uri. What this attribute is, is the URI which rolls a digit behind from 1 - <NFT collection size>.

Let's take the example of LunaBugz, our first ever launched NFT Project by TrashClanz & Finn.

Their token URI is https://ipfs.lunapunks.io/ipfs/Qmaiz46i8JJTcszoctiiF6sgvfPYWLXXKYiauVNbbziMg6/

Consequently, their token IDs of their NFT collection fall into place from:

https://ipfs.lunapunks.io/ipfs/Qmaiz46i8JJTcszoctiiF6sgvfPYWLXXKYiauVNbbziMg6/1

https://ipfs.lunapunks.io/ipfs/Qmaiz46i8JJTcszoctiiF6sgvfPYWLXXKYiauVNbbziMg6/2

..

..

https://ipfs.lunapunks.io/ipfs/Qmaiz46i8JJTcszoctiiF6sgvfPYWLXXKYiauVNbbziMg6/298

All the way to 298, which is the size of their collection.

Their launch transaction can be tracked here https://finder.terra.money/classic/tx/36B09A43C3B42D62754C7C40E913865540D0DF730EB01E33F86BE9061A70C36C

Hence, launching is simple, we just have to prepare the NFT metadata + images as per a fixed link with incremental numbers behind.

The NFT metadata that we run in our Launchpad dApp follows closely to Opensea's metadata standard. Reason why we do so is because of potential interoperability. Creating a USB-c charging port should be universal and enforced for our users' convenience.

Step 1 - Allow Launchpad contract to burn on behalf

Firstly, we head to LunaPunks NFT contract and execute the following message.

{
    "approve":
    {
        "spender":"terra1dkeg3uvglsgph0vqwz9ejyaye6nla3d8smlsxl",
        "token_id":"890"
    }
}

What this does is it allows the Launchpad smart contract to become authorised as a spender of the token id. Currently, only launching of contracts require this initial approval. Do remember to run this step only once step 0 is done.

Step 2 - Launch Message

Next, we head to LunaPunks Staking contract and execute the following message.

{
    "launch":
    { 
        "launch_date": "1650385200000000000", 
        "token_id": "890", 
        "icon_image_url": "https://ipfs.lunapunks.io/ipfs/QmcYd3ae6wPVgFggasANeaCW895ZMYYxdtzg4hoeTKjhsk/icon.jpg", 
        "banner_image_url": "https://ipfs.lunapunks.io/ipfs/QmcYd3ae6wPVgFggasANeaCW895ZMYYxdtzg4hoeTKjhsk/banner.jpg", 
        "social_links": [
            "https://twitter.com/LunaBugz", 
            "https://t.me/lunabugz", 
            "https://lunabugz.com/"
        ], 
        "nft": { 
            "name": "Luna Bugz", 
            "symbol": "BUGZ" 
        }, 
        "marketplace": { 
            "royalty_fee": 500, 
            "royalty_wallet": "terra1250kexag0jkafftdc5lu3qt394ut4uv89zynhr" 
        }, 
        "minter": { 
            "public_mint_height": 0, 
            "price_bag": [{"amount":"42069000000","denom":"uluna"}], 
            "max_supply": 298, 
            "mint_limit": 298,
            "nft_name": "Luna Bugz", 
            "nft_description": "Appearing randomly in Terra Luna smart contracts.", 
            "token_uri": "https://ipfs.lunapunks.io/ipfs/Qmaiz46i8JJTcszoctiiF6sgvfPYWLXXKYiauVNbbziMg6/" 
        } 
    }
}

Important attributes

launch_date is the date which minting opens. You can use the service https://www.epochconverter.com/ to obtain the timestamp. Note* that the launch_date parameter is accurate to nanoseconds. Hence from the EpochTimestamp value that you generate, add 9 zeroes to it.

token_id is the id of the LunaPunks which you have approved for launchpad wallet to burn, as well as LunaPunk you want to burn to launch your NFT collection.

royalty_fee is a number from (0 - 9900). 0 being 0% of marketplace transaction goes to you while 9900 means 99% of marketplace transaction fees go to you.

royalty_wallet is the wallet address which marketplace royalty fees goes to.

price_bag the amount follows the decimals of the token, for Lunc, we use uluna, and it has 6 decimals, hence we add 6 zeroes to the back of the price point.

max_supply is the total supply that you have in the NFT collection.

mint_limit is the limit set for individual wallets.

token_uri is extremely important to setup, refer to Step 0 for detailed setup instructions.

public_mint_height doesn't do anything at the moment.

Last updated