Skip to main content


Metadata simply put is a bundle of data that contains all the "content" for each NFT within your collection. Metadata is what assigns an NFT its name, image/audio, and traits where relevant. When deploying with Scatter, you will upload your Metadata via our content uploader.

Scatter's Metadata Standard

Below are the principle metadata fields Scatter supports. You can add more if you'd like, but the table below covers everything that is required.

nameThe name of the NFT. Typically this is like "Token #123"
imageRequired. The link to the image of this NFT. Can be an IPFS or HTTP protocol link. A maximum image size of approximately 1024x1024 is recommended.
image_nsfwOptional. This version of your image can be toggled on platforms which support the _nsfw tag.
animation_urlOptional. Link to video file or .HTML page. Any .HTML page will be securely sandboxed and will not be allowed access to browser extensions. There are many features not available to sandboxed iframes so make sure your project works in this case. Sandboxing is required for user safety.
animation_url_nsfwOptional. The NSFW version of your animation_url
external_urlOptional. This can be a link to your site, a social media profile, or a link somewhere related to the specific NFT.
attributesOptional. A list of traits which this specific NFT has.

Sometimes whatever tool you use to generate your JSONs adds extra unnecessary fields that bloat your JSONs and make them ugly. You can adapt one of these Python scripts to loop through all of your JSON files and update them to clean away the bloat:

Or use this webtool version:

Extra files such as _metadata.json can also be deleted safely from your JSON folder if that is generated.

If you are on macOS you can avoid including the system files (such as .DS_Store and __MACOSX folder) in the zip you are uploading by running this command in the folder of the "json" and "images" folders:

zip -r . -x '**/.*' -x '**/__MACOSX'

If you are wanting to use Instareveal you cannot include these extra generated / system files when you upload your zip containing the "images" and "json" folder.

If you are hand making the JSON files or making your own script make sure you use double quotes " and not single quotes ' as JSON expects only double quotes to be used in JSON files.


Attributes or traits are a way to define the unique aspects of each NFT within your collection, while also adding an element of collectibility based on varying trait rarities. Typically, you would have an assortment of traits ranging from extremely rare to very common. You want enough variety in your common traits for your collection to not look too 'samey'. At the same time, generally you want to create some feeling of uniformity so that your collection feels like a unified set, assuming that's the intention.

Scatter uses OpenRarity for calculating trait rarity rankings.

Sometimes you want to force some NFTs (such as 1/1s) to have higher rarities in your collection. You can achieve this by stuffing every trait_trait type possible with a unique string that is not listed in any other NFT. The following is an example of this where each trait_type is stuffed with a unique string to ensure it has a high rarity within the collection as a 1/1:

JSON Example

The below is the JSON of this NFT:

"name": "Oekaki #4272",
"description": "Neo-chibi aesthetic enthusiast network cohesion lainpilled artisanal AI generative synthesis NFTS",
"external_url": "",
"image": "ipfs://bafybeic5yxtsyokpmlkzqyxx7rtyvm7apmkm52byjh6fqu5wm45kpvelem/4272.png",
"attributes": [
"trait_type": "Name",
"value": "Taruho"
"trait_type": "Background",
"value": "Toshokan"
"trait_type": "Skin",
"value": "Tan"
"trait_type": "Outfit",
"value": "Black Lolita Dress"
"trait_type": "Mouth",
"value": "Cutie Fanged"
"trait_type": "Eyes",
"value": "Simply Blue"
"trait_type": "Hair",
"value": "Kitten"
"trait_type": "Headwear",
"value": "Maid Headdress"
"trait_type": "Core",
"value": "Otaku-Dark"