Stargaze
  • Welcome
    • Coming from Ethereum?
    • Coming from Solana?
    • Coming from Coinbase or other exchange?
    • Coming from MANTRA?
  • Introduction
    • What is Stargaze?
    • Meet the Team
  • Core Apps
    • Launchpad
      • Minters
      • Whitelists
      • Minter and Whitelist Fees
    • Marketplace
      • Governance Parameters
    • Names
    • Live Auctions
    • Infinity Swap
      • How it works
      • Price Mechanics
      • Swap
      • Why use Infinity Swap
      • Infinity Swap Fees
      • Examples
    • DAO DAO
    • StarDEX
      • Navigating StarDEX
      • Swapping Tokens
      • Providing Liquidity
      • Pool Analytics & Metrics
      • Managing and Removing Liquidity
  • Creators
    • Launching a Collection on Stargaze
    • Collection Guidelines
    • Content Guidelines
    • Featured Projects
  • Creator Tools
    • Stargaze Studio
      • Create an NFT Collection
        • Upload Assets and Metadata
        • Configure Collection and Minting Details
        • Creating a Standard Collection
          • Upload Assets and Metadata
          • Configure Collection and Minting Details: Standard Collection
          • Whitelist and Royalty Options
        • Creating an Open/Limited Edition Collection
          • Upload Assets and Metadata
          • Configure Collection and Minting Details: OE/LE
          • Whitelist and Royalty Options
        • Creating a 1/1 Collection
          • Upload Assets and Metadata
          • Configure Collection Details: 1/1 Collection
          • Whitelist and Royalty Options
          • Adding Additional Tokens to a 1/1 Collection
        • Creating a Burn to Mint Collection
          • Upload Assets and Metadata
          • Configure Collection and Minting Details: Standard Collection
          • Whitelist and Royalty Options
      • Interact with a Collection
        • Execute Messages
        • Query Data
    • Launching an NFT project via CLI
      • 1. Setup a basic project
        • 1a. Need help?
      • 2. Configure your project
      • 3. Add assets and metadata
        • Pinata Upload
      • 4. Instantiate minter contract on testnet
      • 5. Whitelist
      • 6. Mint from your contract
      • 7. Query contract
      • 8. Testing your contract on testnet
      • 9. Launching on mainnet
        • 9a. Launching on mainnet with Keplr (optional)
    • Create a Multisig Wallet
      • Create a Multisig using Keplr
      • Create a Multisig using DAO DAO
      • Create a Multisig using CLI
    • Stargaze Studio Fees
  • Developers
    • CosmWasm Contracts
      • Contract Code IDs
      • Deploy to Testnet
      • Deploy to Mainnet
    • Stargaze API
    • Indexers
      • Constellations
      • SubQuery
    • Token Factory
    • Minting and Trading Denoms
  • Tokenomics
    • STARS Token
    • Fair Burn
    • Real Yield
    • Governance
  • Nodes & Validators
    • Getting Setup
    • Running a Full Node
    • Setting up Cosmovisor
    • Running a Validator
    • Configuring StateSync
    • Running a Relayer
    • Foundation Delegation Program
  • Extras
    • FAQ
    • Stargaze Assets
    • Ranking and Algorithms
Powered by GitBook
On this page
  • Project Structure
  • Structuring metadata
  • Uploading to IPFS and getting the Base URL
  1. Creator Tools
  2. Launching an NFT project via CLI

3. Add assets and metadata

Previous2. Configure your projectNextPinata Upload

Last updated 7 months ago

Stargaze's sg721 contract allows for off-chain metadata storage. We recommend using a decentralized storage solution such as IPFS.

In this guide, we will cover basic project structure as well as using or to upload your project to IPFS.

Project Structure

Add your NFT images and metadata .json files to the respective images and metadata folders. Your project should be structured like this:

Project Folder:
  - images
    - 1.jpg
    - 2.jpg
    - 3.jpg
  - metadata
    - 1.json
    - 2.json
    - 3.json

Files should be numbered sequentially and there should be a matching metadata file for each image.

NOTE: It is very important that each of the images are numbered sequentially and have corresponding metadata files.

NOTE: If using NFT.storage, remove the .json extension from metadata files or switch to the branch nft.storage.

NOTE: Images can be JPG, PNG, SVG, GIF. We are adding support for other formats soon.

Structuring metadata

Sample metadata files are available in /metadata. Let's take a look at one of them.

NOTE: use animation_url for multimedia content

// 1.json
{
  "attributes": [
    {
      "trait_type": "hat",
      "value": "bandana"
    },
    {
      "trait_type": "glasses",
      "value": "sunglasses"
    },
    {
      "trait_type": "personality",
      "value": "chill"
    },
    {
      "trait_type": "shirt_color",
      "value": "purple"
    },
    {
      "display_type": "number",
      "trait_type": "generation",
      "value": 1
    }
  ],
  "description": "Just some guy that likes to code and listen to Stargaze Trooprs music.",
  "external_url": "https://example.com/?token_id=1",
  "image": "ipfs://bafybeih3ykpa42eipgtzcrfkeo5nvazcdqhj3oh3ztju44tcoipzsdaauy/images/1.png",
  "animation_url": "ipfs://bafybeia5r3hwyou3iggzfvakjkxu2zy5pt3kjil6nyqzvrqwrrtkwe6xrm/images/Genesis.m4a"
  "name": "Shane Stargaze"
}

Uploading to IPFS and getting the Base URL

After setting up your project, upload the files to IPFS using one of our guides:

Pinata website can be used to upload assets, but a script is also provided for convenience.

After following the steps in the guides above, you'll receive a baseTokenUri for your project. This way, the contract knows how to associate each token ID with an individual token URI without having to send the contract a list of URIs. All token URIs can be determined by appending the token ID to the base URL.

Be sure to update your config.js with this baseTokenUri.

Stargaze NFT metadata follows the .

(with script)

NFT.storage
Pinata
OpenSea metadata standards
Pinata