🖼️Preparing your NFTs

As Empawrium exclusively accepts NFTs with on-chain metadata, we will only focus on this type of NFTs in this documentation. Preparing your NFTs before launching them is a critical step, and it is essential to ensure that everything is in perfect order. Once these NFTs are deployed on the blockchain, any modifications or changes become impossible. Therefore, it is crucial to meticulously review and verify all aspects of your NFTs before finalizing and launching them on Empawrium. This ensures that your NFTs are accurately represented and cannot be altered after deployment.

What do you need to prepare to create and store an NFT on Chihuahua's blockchain?

Below is the information you will need to provide in order to mint NFTs. The NFT standard we use is similar to the ERC-2981 but accepts multiple recipients (at different rates) for the royalties. If you want more info about other NFT standard, we recommend you to look into Ethereum's documentation: https://ethereum.org/en/developers/docs/standards/tokens/erc-721/.

CW2981-multi-royalties NFT with on-chain metadata:

To make it simple, in order to store an NFT on the Chihuahua blockchain, you will need 2 things:

  • A permanent URL to your NFT image

  • The information to define your NFT

Permanent URL to your NFT image

We will start by showing 2 ways of storing an NFT image permanently. There are many other ways of doing it but it is out of this scope.

How to store an image on IPFS for free? (scalability is limited)

Use Nft.Storage to store NFTs on IPFS:

  1. Login (or create an account)

  2. Upload an image for your NFT

  3. Choose your file and click "Upload"

  4. It will take up to 48h for your image to be stored and you will be given a permanent link. Click on "Actions" and "Copy IPFS URL"

  5. You will get something like the following as the URL: ipfs://bafybeif5ataox2lvpqfrsawceq22lfekon4jxfbolqu7lfcalfqmcsdcyy which you can visualize with IPFS that way: https://ipfs.io/ipfs/bafybeif5ataox2lvpqfrsawceq22lfekon4jxfbolqu7lfcalfqmcsdcyy.

  6. Keep that link as it will be the permanent link to your underlying image in your NFT.

How to store an image on Arweave? If you intend to upload multiple images and ensure their long-term preservation on a blockchain, we highly recommend utilizing Arweave. Arweave is a blockchain specifically designed for storing permanent data, and you can learn more about it at https://www.arweave.org/. While it is not free to store images or data on Arweave, the cost is relatively affordable. By utilizing Arweave, you can have the assurance that your images or data will remain in existence indefinitely, providing a reliable and secure storage solution for your valuable content.

  1. Storing an image or Arweave using the "Permaweb Dropper". Note: We cannot confirm if the Permaweb Dropper is secure, USE AT YOUR OWN RISK: https://arweave.net/7izfDARufPcQr0qNLYtVGaeZK1UlQM8B_2VFznNosMs

  2. You can drag your .JSON file wallet you created from the Arweave wallet creator in step 1 and you should see something like this:

  3. Drag the images you want to upload and click "Upload". You will then get a permanent link for every images or file you uploaded.

Creating your NFT (NFT Metadata)

Now that you have obtained the permanent link to your image using Arweave or IPFS, you are ready to create your NFT. Creating an NFT entails adding the necessary information that will define your NFT on the blockchain.

If you opt to use either the Open Edition Minter or the Random Minter, the process of uploading your NFTs to the blockchain may differ a bit. However, in the following explanation, we will focus on defining your NFT.

By adhering to the NFT standard mentioned earlier, you will need to define the following elements to establish your NFT on the blockchain. For more detailed information about NFT metadata, you can refer to the documentation provided at https://docs.opensea.io/docs/metadata-standards. The following is a general representation of what an NFT typically comprises. It is worth noting that while many fields are optional, some specific information needs to be provided to ensure that relevant details about your NFT are displayed on Empawrium.

// Below will be the identifier of a specific NFT
NftTokenId = String


// For all the info about the below, refer to: https://docs.opensea.io/docs/metadata-standards
Metadata = {
    image: Option<String>,
    image_data: Option<String>,
    external_url: Option<String>,
    description: Option<String>,
    name: Option<String>,
    attributes: Option<Vec<Trait>>,
    background_color: Option<String>,
    animation_url: Option<String>,
    youtube_url: Option<String>,
    /// Vector of Royalties to be paid to different addresses
    royalties: Option<Vec<Royalty>>,
}

Let's take an example that is available on Empawrium to give you a better idea: https://www.empawrium.wtf/collection/chihuahua1jntphfr4y699halym3a8l7cjqutygm98jm73e7hwahp5v0jsnzwq34l6ud?=Genesis%20Background%20#0

/// Example of an NFT on Empawrium

NftTokenId = "Genesis Background #0"

Metadata = {
    image:"https://iayasdqzb3pj3nnbfpboemzvg4s4wfrrbe46je53mjpbm57om4wq.arweave.net/QDAJDhkO3p21oSvC4jM1NyXLFjEJOeSTu2JeFnfuZy0",
    description:"Breath taking views of an unknown planet.",
    name:"Genesis Background #0",
    attributes:[{"display_type":null,"trait_type":"Location","value":"NovaHaven"},{"display_type":null,"trait_type":"Mood","value":"Synthetica"}],
}

// If the NFT had 10% royalties payable to two wallets (5% each), it would look like this:
Metadata = {
    image: "https://iayasdqzb3pj3nnbfpboemzvg4s4wfrrbe46je53mjpbm57om4wq.arweave.net/QDAJDhkO3p21oSvC4jM1NyXLFjEJOeSTu2JeFnfuZy0",
    description:"Breath taking views of an unknown planet.",
    name:"Genesis Background #0",
    attributes:[
        {trait_type:"Location", value:"NovaHaven"},
        {trait_type:"Mood", value:"Synthetica"}
    ],
    royalties: [
        {receiver: "chihuahua1p06guptkql3eannp5clzzzad47xwhzjq5ghtbd", royalty_permille_int: 50}, 
        {receiver: "chihuahua1p06guptkql3eannp5clzzzad47xwhzjq444321", royalty_permille_int: 50},
    ]
}

As depicted in the previous explanation, several fields were left without information as they were not required. This section delves into the technical aspects of how NFTs are stored on a blockchain.

What if you want to upload several NFTs to make a collection of multiple items?

The process outlined above for uploading a single NFT to IPFS or Arweave can become cumbersome when dealing with numerous images. In order to simplify the upload process and create metadata for multiple NFTs, you may explore "bulk" uploaders designed for Arweave or IPFS.

Please note that providing detailed guidance on bulk uploaders falls outside the scope of this discussion. However, if you are interested in exploring a bulk uploader specifically for Arweave, you can consider examining the code available at https://github.com/thuglabs/arweave-image-uploader. It is important to exercise caution as we cannot confirm the safety or security of the aforementioned code.

As with any third-party tool or code, it is crucial to conduct thorough research, perform security assessments, and exercise discretion when utilizing such tools.

Need help? Reach out to us on Discord! https://discord.gg/QV5cDdxn4q

Last updated