Skip to content

Instantly share code, notes, and snippets.

Last active May 17, 2022 23:40
What would you like to do?
Loopring Layer 2 Minting Metadata

Basis: Around March 3rd, 2022, there was a large influx of high-quality mints on the Loopring Layer 2 protocol. All of the NFTs created followed this exact structure, and even new mints continue to follow this format. Some GME specific fields have been ommitted here as they are not necessary.

The Bare Minimum

At the very least, it would be a good idea to include these fields. Note that the "image" field is intended to be a smaller, faster loading thumbnail of your content, while the "animation_url" is intended to be the full size, video, or other file type of your NFT. It's OK to set both to the same value, several NFTs have done it this way.

    "name": "NFT Name",
    "description": "Description of your collection.",
    "image": "ipfs://CID-TO-SMALL-THUMBNAIL",
    "animation_url": "ipfs://CID-TO-FULL-SIZE-IMAGE-OR-VID",
    "royalty_percentage": 0

A note about image and animation_url

The image field in the metadata should always be an image file type (png, jpg, gif, etc.). This is what marketplaces consider to be a lower quality thumbnail.

If you have a larger quality picture, GIF, video or audio, then you should put a thumbnail version into the image field, and the higher quality file into the animation_url field. Marketplaces will automatically display the correct file, even HTML, if it is in the animation_url field.

More info from the OpenSea standard:


The royalty_percentage field is an integer. So far we've seen anywhere between 0 - 10 in actual mints. In the Smart Contract, there is also a creatorFeeBips field. So far all of the royalty_percentage fields have matched the creatorFeeBips set in the smart contract.

According to documentation and testing, the maximum value accepted for creatorFeeBips is 50. However, Loopring's Minting UI limits this value to 10, and it is likely any marketplace will as well.

Example with Traits

With traits you can give some indication of rarity. This is just an example. "properties" and "attributes" are identical information, setting traits for any given NFT. They are both slightly different data types, and may just be for various purposes on the marketplace frontends.

    "name": "NFT Name",
    "description": "Description of your NFT",
    "image": "ipfs://CID-TO-THUMBNAIL-SIZE",
    "animation_url": "ipfs://CID-TO-FULL-SIZE-OR-FILE",
    "royalty_percentage": 0,
    "attributes": [{
        "trait_type": "Hair",
        "value": "Curly"
    }, {
        "trait_type": "Nose",
        "value": "Massive"
    }, {
        "trait_type": "Mouth",
        "value": "Closed"
    }, {
        "trait_type": "Chin",
        "value": "Beard"
    "properties": {
        "Hair": "Curly",
        "Nose": "Massive",
        "Mouth": "Closed",
        "Chin": "Beard"
Copy link

Thumbnail size as of 16/03/2021 is best at 512x512 pixels to display properly in loopring explorer in its current form.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment