Galler NFT Metadata Standard
Metadata format
Implementing token URI
For off-chain metadata for BEP721/ERC721 assets, contract need to implement BEP721Metadata/ERC721Metadata interfaces. You should implement the 'tokenURI' function in the Contract:
/// @notice A distinct Uniform Resource Identifier (URI) for a given asset.
/// @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC
/// 3986. The URI may point to a JSON file that conforms to the "ERC721
/// Metadata JSON Schema".
function tokenURI(uint256 _tokenId) external view returns (string);
The tokenURI
function in your Contract should return an HTTP or IPFS URL. When queried, this URL should in turn return a JSON blob of data with the metadata for your token.
Metadata format
{
"name":"NFT Name",
"description":"NFT Description, MAX LENGTH 500 char",
"image":"https://somedomain.com/pic/xxxx.jpg",
"attributes":[
{
"trait_type":"Trait Type 1",
"value":"Trait Value"
},
{
"trait_type":"Trait Type 2",
"value":"Trait Value"
}
]
}
Data | ||
---|---|---|
name | NFT name | Max 200 characters |
description | NFT description text | Max 500 characters |
Image | URL of image | |
attributes | NFT attributes | All should be placed as a JSON array in the “attributes” object. attribute name keep in “trait_type”, and value keep in “value”. trait_type and value Max 128 characters Max attributes number 20 |
Attributes specification
trait_type
is the name of trait, should be a readable text;
value
is the value of trait, should be readable text, number is also supported;
Metadata example
{
"name":"#2",
"description":"BladeRunner Punks are the new generation of punk avatars. 10,000 futuristic dystopian PFPs newly constructed from scratch from over 100 traits, to a defined punk DNA rarity system. With a cool clean confident look, always forward facing and drawing eye-to-eye contact, they emanate strong identity and status.",
"image":"https://bladerunner-punks.cryptohelper.io/2.png",
"attributes":[
{
"trait_type":"Rarity Class",
"value":"Normal"
},
{
"trait_type":"Type",
"value":"Male"
},
{
"trait_type":"Face",
"value":"Mole"
},
{
"trait_type":"Beard",
"value":"Chinstrap"
},
{
"trait_type":"Hair",
"value":"Frumpy Hair"
},
{
"trait_type":"Eyes",
"value":"VR"
}
]
}