metapro
Ask or searchโ€ฆ
โŒƒK

Explanation of URI (Metadata structure)

Offers detailed classification within primary categories offers detailed classification within primary categories The Role of Metadata Structures in Gaming

In the gaming universe, metadata plays a fundamental role. It ensures that digital assets, like in-game items, characters, and collectibles, are accurately represented and described. Think of metadata as the rich information that brings these digital entities to life, much like the description on the back of a trading card or the stats on a piece of equipment in a role-playing game.
But what's even more crucial is the existence of standardized metadata structures. These structures are the agreed-upon formats and frameworks that define how this vital information is organized and presented. They are the common language that gaming platforms, marketplaces, and applications like Metapro use to make sense of the data associated with in-game assets.
For example, a digital sword in a game might have metadata fields that include its name, description, image, rarity, and damage stats. With standardized metadata structures, these attributes are consistently organized, making it easy for platforms like Metapro to fetch and display this information in a coherent and user-friendly manner.
Properties are an essential component of these metadata structures. They provide a way to highlight additional attributes and characteristics of in-game assets. In the context of weapons, properties might include details like elemental damage, special abilities, or any other unique traits that set one sword apart from another. When presented through properties, players and collectors can quickly assess the distinct features and values of digital assets, making informed decisions about their use or trade.
In summary, metadata structures are the backbone of the gaming world, enabling consistent, accurate, and detailed descriptions of digital assets. Standardized metadata is the common language that applications like Metapro rely on to make sense of in-game data, and properties are the showcase for the unique attributes that make each digital asset special. This combination creates a richer and more informative gaming experience for players and collectors alike.
Our metadata is inspired by the Enji metadata standard. To learn more about the Enji standard, click on the link.โ€‹

Token

In the 'Token' section, you'll discover essential details about the token. Here, you can access crucial information, such as the token's unique identifier (Token ID), the contract or protocol address associated with the token, and the quantity of this specific token that has been created (a characteristic often seen in tokens based on the ERC1155 standard). Below, you'll find a breakdown of the specific information contained within this section. FilesSpec and Properties have been addressed separately in the documentation for your convenience.
...
"token": {
"_id": "6536535c9832b155f2791fe7",
"_tokenId": 1258,
"address": "0xa293d68684be29540838dc8a0222de0c43c6b5b4",
"_quantity": 100,
"burn": false,
"createdAt": "2023-10-23T11:05:00.659Z",
"createdBy": "0x767e5c2359e7c809b16d8cffdb9464f91b6c970b",
"creationBlock": 32852815,
"description": "The Green Sword is a formidable weapon that requires a maximum level of expertise to wield, which is level 100. This sword holds incredible power, inflicting an additional 60% damage against earth and water-based creatures. It is particularly suited for battles against all types of earthbound monsters due to its bonus power against rocky and aquatic foes. However, it's essential to remember that the Green Sword is entirely unsuitable for encounters with fire-based creatures, as it deals 50% less damage against these types of adversaries.\n\n- Potency Against Earth and Water Creatures: The Green Sword boasts extraordinary abilities, enabling it to deal significant additional damage to earth and water-based creatures. It's the perfect choice for engaging in battles against these kinds of monsters, granting a substantial 60% bonus to damage.\n\n- Weakness Against Fire Monsters: Despite its prowess against earth and water beings, the Green Sword comes with a significant drawback. It's exceptionally ineffective against fire monsters, causing 50% less damage when confronting these fiery foes.\n\nThe Green Sword is a potent weapon in the right hands, excelling in battles against earth and water adversaries. However, wield it cautiously, as it's not the best choice for battles against fire-based creatures. Your success in battle depends on your knowledge of this sword's properties and your choice of opponents!",
"extraFiles": [
"https://prdmetaassetfiles.blob.core.windows.net/e5bad177-f506-4d49-9f7b-ddaeb3c3e94d/assets/aec237b3-200b-4965-9b18-dac54e5e1152.mp3"
],
"favorites": 1,
// filesSpec structure
"image": "https://gateway.metaproprotocol.com/0x04ea/preview",
"initialOwner": "0x767e5c2359e7c809b16d8cffdb9464f91b6c970b",
"minifiedImage": "https://gateway.metaproprotocol.com/0x04ea/minified-preview",
"owner": "0x767e5c2359e7c809b16d8cffdb9464f91b6c970b",
// properties structure
"tokenName": "New Era - Green Sword",
"transactionHash": "0x853fe7f76d69dd3db518ed19aac4d1c0464fe18b92b993f93ee398b71fdfb9a3",
"updatedAt": "2023-10-24T06:25:57.158Z",
"wishes": 1
}
...
Key
Value
_id
A unique identifier for the asset.
_tokenId
The asset's identifier of the protocol can be used for unambiguous identification.
address
The address associated with the asset (Protocol Address).
_quantity
Specifies the quantity of available assets of the same type.
burn
A Boolean value (true/false) indicates whether the asset has been burned.
createdAt
The date and time the asset was created.
createdBy
The address of the person or entity who created this asset.
creationBlock
The blockchain block number in which this asset was created.
description
A description of the asset.
extraFiles
A reference to additional files or resources related to this asset, such as sound files, etc.
favorites
A number indicating how many users have added this asset to their favorites.
image
A reference to an image associated with the asset.
initialOwner
The wallet address of the individual who initially owned the asset.
minifiedImage
A reference to a downsized image linked to the asset.
owner
The current owner of the asset.
tokenName
The name of the asset.
transactionHash
The transaction hash associated with this asset.
updatedAt
The date and time of the last update to the asset.
wishes
The number of wishes or desires from users, may reflect interest in the asset within the gaming community.

Metadata Properties

Properties in NFT metadata are used to provide additional information and parameters about a digital asset. They offer more detailed data about items, which can be especially useful in blockchain-based games and NFT collectibles.
Example of the Visual Properties Implementation in the Metapro Market
Click to see it live: New Era - Green Swordโ€‹

Why Do We Create Collections?

The Collection field is an additional parameter in metadata and is not required, but it can significantly enhance the value of the game. Collections are used when there is a need to differentiate between various types of items, characters, or other resources in the game. For example, if you're creating a fantasy game, collections can help label different types of weapons, such as swords, bows, or shields. This allows players to easily identify, collect, and utilize various types of items.
"collection": "New Era Swords",

Why Do We Use Properties?

Similar to collections, properties (Properties) are not mandatory, but they are incredibly useful. Properties enable the description of attributes or characteristics of specific characters, items, or other game elements. This can be particularly useful in games where different characters possess unique abilities. For instance, if you're designing a character in an RPG game, properties can describe their skills, like the ability to ride a horse, which sets them apart from other characters.
"properties_Total Damage": {
"name": "Total Damage",
"value": 1354,
"display_value": ""
},
Why Do We Have Levels?
The "Levels" parameter is optional but plays a crucial role in games, especially when determining access levels to specific weapons or items. Levels allow game developers to control when and at what point players can gain access to certain game elements. For example, regarding weapons, levels can specify when a player gains access to more advanced types of weaponry, influencing the dynamics and difficulty of the gameplay. This allows developers to provide players with challenges and encourage them to continue playing.
"levels_Enchant level": {
"name": "Enchant level",
"value": 7,
"max_value": 10,
"display_type": "level"
},
"levels_Weapon level": {
"name": "Weapon level",
"value": 100,
"max_value": 100,
"display_type": "level"
},

Why Do We Use Boosts?

The "Boosts" parameter is an optional attribute for weapons or items that affects their effectiveness in specific situations. In the context of weapons, boosts allow for the customization of a weapon's behavior for different types of opponents or in various game scenarios. For example, a weapon like the "Fire Sword" can deal additional fire damage to monsters, making it effective against them, but it may be less effective against other types of enemies, such as dragons or demons. Boosts add an element of tactics and strategy, enabling players to adapt their choices during gameplay.
"boosts_Damage vs Earth and Water Creatures": {
"name": "Damage vs Earth and Water Creatures",
"value": 60,
"display_type": "boost_percentage"
},
"boosts_Damage vs Fire Creatures": {
"name": "Damage vs Fire Creatures",
"value": -50,
"display_type": "boost_percentage"
}
Example of the properties asset structure
"properties": {
"collection": "New Era Swords",
"properties_Total Damage": {
"name": "Total Damage",
"value": 1354,
"display_value": ""
},
"levels_Enchant level": {
"name": "Enchant level",
"value": 7,
"max_value": 10,
"display_type": "level"
},
"levels_Weapon level": {
"name": "Weapon level",
"value": 100,
"max_value": 100,
"display_type": "level"
},
"boosts_Damage vs Earth and Water Creatures": {
"name": "Damage vs Earth and Water Creatures",
"value": 60,
"display_type": "boost_percentage"
},
"boosts_Damage vs Fire Creatures": {
"name": "Damage vs Fire Creatures",
"value": -50,
"display_type": "boost_percentage"
}
},
In summary, collections, properties, levels, and boosts are tools that allow for more intricate and engaging gaming experiences. While not mandatory, they can significantly enrich gameplay and contribute to more diverse and engaging player experiences.

Metadata FileSpec

In the context of gaming, FileSpec structures play a significant role in digital assets, such as weapons, characters, or other in-game elements. They are used to identify, describe, and manage various types of files or multimedia resources associated with a specific game asset. This can include images, sounds, animations, or even 3D files that add visual and auditory elements to the game.
With FileSpec, games can precisely manage files and multimedia linked to specific elements, allowing for more advanced visual and auditory effects in the game. For example, for a given weapon in the game, FileSpec can indicate which textures, 3D models, and sounds are used in connection with that weapon. As a result, players can enjoy more advanced and diversified experiences while using that weapon.
Overall, in gaming, FileSpec helps developers manage and utilize a variety of multimedia resources, translating into more elaborate and thrilling player experiences.
When creating an NFT Meta asset resource on our marketplace, you will find this in the third step of the resource creation process.

Standard

This metadata segment is of paramount importance because:
  • It helps unequivocally identify and describe NFTs, making asset management in the game more streamlined.
  • It defines licensing terms that must be adhered to, which is crucial for legal compliance and copyright.
  • It specifies restrictions and tags, aiding in adapting assets to various contexts and needs.
  • It categorizes assets, simplifying asset organization within the game and facilitating navigation.
As a result, proper management of this metadata segment is essential for the design and management of Web3 technology-based games.
"standard": [
{
"key": "asset_type",
"value": [
"2D meta asset"
],
"value_type": "string array"
},
{
"key": "asset_licence",
"value": "Royalty Free (RF)",
"value_type": "string"
},
{
"key": "asset_restriction",
"value": "Public meta asset",
"value_type": "string"
},
{
"key": "asset_tags",
"value": [
"weapon",
"sword",
"NewEra"
],
"value_type": "string array"
},
{
"key": "asset_tag_ids",
"value": [
60,
61,
166
],
"value_type": "integer array"
},
{
"key": "asset_category",
"value": "Weapons",
"value_type": "string"
},
{
"key": "asset_subcategories",
"value": [],
"value_type": "string array"
},
{
"key": "asset_category_ids",
"value": [
6
],
"value_type": "integer array"
}
],
Key Value
Purpose
Application in Gaming
asset_type
Determine asset type for proper categorization
Used to classify assets as 2D images, 3D models, audio
asset_licence
Specify asset's license terms
Informs asset Licence (e.g., Royalty Free, Rights Managed, Creative Commons)
asset_restriction
Describe any asset usage restrictions
Communicates specific usage limitations (e.g., Public meta asset or Resticted meta asset)
asset_tags
Add tags for asset categorization and searchability
Helps in find assets with specific attributes (e.g., "NewEra")
asset_tag_ids
Assign integer identifiers to tags
Ensures consistent and efficient asset categorization
asset_category
Choose predefined primary asset category
Categorizes assets broadly (e.g., "Weapons")
asset_subcategories
Choose predefined additional subcategories
Offers detailed classification within primary categories
asset_category_ids
Assign integer identifiers to categories
Precisely determines the primary category of assets

2D Spec

This JSON fragment, identified by the "2d_spec" key, contains essential information. It specifies the dimensions and characteristics of 2D assets within the game.
"asset_height" and "asset_width" provide the height and width dimensions of the 2D assets, both set at 1024 pixels as integer values. These dimensions are crucial for accurately rendering and displaying the assets in the game.
"2d_spec": [
{
"key": "asset_height",
"value": 1024,
"value_type": "integer"
},
{
"key": "asset_width",
"value": 1024,
"value_type": "integer"
},
{
"key": "asset_layers",
"value": false,
"value_type": "boolean"
}
],
Key Value
Purpose
Application in Gaming
asset_height
Determining the height (size) of 2D assets
Helps in precisely adjusting the size of objects in 2D games.
asset_width
Determining the width of 2D assets
Enables precise specification of the width of objects in 2D games.
asset_layers
Indicating whether 2D assets consist of multiple layers
Informs whether objects can be composed of multiple layers.

3D Spec

The "3d_spec" JSON fragment provides essential information about working with 3D assets in the game. It offers detailed insights into the characteristics and complexity of these assets:
"3d_spec": [
{
"key": "asset_geometry",
"value": "",
"value_type": "string"
},
{
"key": "asset_polygons",
"value": 0,
"value_type": "integer"
},
{
"key": "asset_vertices",
"value": 0,
"value_type": "integer"
},
{
"key": "asset_materials",
"value": false,
"value_type": "boolean"
},
{
"key": "asset_textures",
"value": false,
"value_type": "boolean"
},
{
"key": "asset_uv_mapped",
"value": false,
"value_type": "boolean"
},
{
"key": "asset_animated",
"value": false,
"value_type": "boolean"
}
],
Key Value
Purpose
Application in Gaming
asset_geometry
Description of 3D asset geometry and structure
Provides information about the 3D asset's geometry, helping developers understand its structure.
asset_polygons
Number of polygons in the 3D asset
Indicates the level of detail in 3D models, affecting rendering and performance in 3D games.
asset_vertices
Number of vertices in the 3D asset
Specifies the number of vertices in 3D models, impacting the overall complexity and rendering quality in games.
asset_materials
Presence of materials in the 3D asset
Indicates whether the 3D asset has associated materials, crucial for defining its appearance and behavior in gaming environments.
asset_textures
Presence of textures in the 3D asset
Informs whether textures are applied to the 3D model, enhancing its visual realism and rendering quality in games.
asset_uv_mapped
Indicating whether UV mapping is applied
Specifies whether UV mapping is used, allowing proper texturing and shading in 3D gaming objects.
asset_animated
Indicating if the 3D asset is animated
Identifies whether the 3D asset has animations, which are vital for creating dynamic and interactive elements in games.

Sound Spec

The "sound_spec" JSON fragment provides technical details about sound assets. It covers aspects such as BPM, sample rate, bit depth, channels, duration, and an ISRC code, offering valuable information for audio integration and management within the game.
"sound_spec": [
{
"key": "asset_bpm",
"value": 0,
"value_type": "integer"
},
{
"key": "asset_sample_rate",
"value": "",
"value_type": "string"
},
{
"key": "asset_bit_depth",
"value": 0,
"value_type": "integer"
},
{
"key": "asset_channels",
"value": "",
"value_type": "string"
},
{
"key": "asset_duration",
"value": "",
"value_type": "string"
},
{
"key": "asset_isrc_code",
"value": "",
"value_type": "string"
}
]
Key Value
Purpose
Application in Gaming
asset_bpm
Beats per Minute (BPM)
Specifies the speed of the sound, important in music, rhythm-based games, or sound-related gameplay.
asset_sample_rate
Sound Sampling Rate
Determines the sound's sampling rate, affecting sound quality and ensuring compatibility with the audio system.
asset_bit_depth
Sound Bit Depth
Indicates the sound's bit depth, influencing sound quality and the precision of sound reproduction.
asset_channels
Number of Sound Channels
Informs about the number of sound channels, which is important with multi-track sound or spatial sound.
asset_duration
Sound Duration
Specifies the sound's duration, essential where controlled sound duration is critical.
asset_isrc_code
International Standard Recording Code (ISRC)
Introduces the ISRC code, which is a unique identifier for sound recordings and can be useful in managing music or sound in game.
Eexmaple of the Metadata FileSpec Structure
"filesSpec": {
"item_experiance": [],
"common": {
"standard": [
{
"key": "asset_type",
"value": [
"2D meta asset"
],
"value_type": "string array"
},
{
"key": "asset_licence",
"value": "Royalty Free (RF)",
"value_type": "string"
},
{
"key": "asset_restriction",
"value": "Public meta asset",
"value_type": "string"
},
{
"key": "asset_tags",
"value": [
"weapon",
"sword",
"NewEra"
],
"value_type": "string array"
},
{
"key": "asset_tag_ids",
"value": [
60,
61,
166
],
"value_type": "integer array"
},
{
"key": "asset_category",
"value": "Weapons",
"value_type": "string"
},
{
"key": "asset_subcategories",
"value": [],
"value_type": "string array"
},
{
"key": "asset_category_ids",
"value": [
6
],
"value_type": "integer array"
}
],
"2d_spec": [
{
"key": "asset_height",
"value": 1024,
"value_type": "integer"
},
{
"key": "asset_width",
"value": 1024,
"value_type": "integer"
},
{
"key": "asset_layers",
"value": false,
"value_type": "boolean"
}
],
"3d_spec": [
{
"key": "asset_geometry",
"value": "",
"value_type": "string"
},
{
"key": "asset_polygons",
"value": 0,
"value_type": "integer"
},
{
"key": "asset_vertices",
"value": 0,
"value_type": "integer"
},
{
"key": "asset_materials",
"value": false,
"value_type": "boolean"
},
{
"key": "asset_textures",
"value": false,
"value_type": "boolean"
},
{
"key": "asset_uv_mapped",
"value": false,
"value_type": "boolean"
},
{
"key": "asset_animated",
"value": false,
"value_type": "boolean"
}
],
"sound_spec": [
{
"key": "asset_bpm",
"value": 0,
"value_type": "integer"
},
{
"key": "asset_sample_rate",
"value": "",
"value_type": "string"
},
{
"key": "asset_bit_depth",
"value": 0,
"value_type": "integer"
},
{
"key": "asset_channels",
"value": "",
"value_type": "string"
},
{
"key": "asset_duration",
"value": "",
"value_type": "string"
},
{
"key": "asset_isrc_code",
"value": "",
"value_type": "string"
}
]
}
},
โ€‹

Base NFT Information

This data structure contains essential information about a specific NFT asset. It includes the asset's identifier, owner's wallet address, contract address, the NFT standard used (in this case, "erc1155"), the protocol (here, "metaprotocol"), the blockchain network (e.g., "bnb-chain"), block number, version, listing status (whether it is available for sale), the creation date of this information, and the "__v" field used for document versioning in the database. This structure is crucial for identifying and managing NFT assets on the platform.
"_id": "63341a5e626025ac7c4511af",
"address": "0xa293d68684be29540838dc8a0222de0c43c6b5b4",
"createdBy": "0x832735f45299c8b6f7263e758cadba766459cd21",
"contractAddress": "0xa293d68684be29540838dc8a0222de0c43c6b5b4",
"standard": "erc1155",
"protocol": "metaprotocol",
"network": "bnb-chain",
"chainId": 56,
"creationBlock": 21722028,
"version": 0,
"isListed": false,
"isAsset": true,
"createdAt": "2022-09-28T09:56:46.051Z",
"__v": 0,
"token": [...]
โ€‹
_id
A unique identifier for the NFT asset.
address
The address of the smart contract associated with the NFT.
createdBy
The wallet address that created this asset.
contractAddress
The address of the smart contract associated with the NFT.
standard
Indicates the NFT standard, which is "erc1155" in this case.
protocol
Specifies the protocol being used; here, it's "metaprotocol."
network
Indicates the blockchain network where this NFT resides, "bnb-chain" in this example.
chainId
The chain ID, which is 56 in this case.
creationBlock
The block number on the blockchain where this NFT was created.
version
The version of this NFT, with a value of 0 in this example.
isListed
A boolean flag indicating whether this NFT is listed for sale (false in this case).
isAsset
A boolean flag indicating that this item is indeed an asset (true).
createdAt
The date and time when this information was created.
__v
A version field, is typically used for tracking document versions in databases.
token
The "token" section provides detailed information about the token, including its metadata and meta-assets. The components of this section have been previously discussed, covering essential details related to the token's characteristics and associated resources.
โ€‹
Asset Card Page of the Presented NFT Metadata Structure New Era - Green Swordโ€‹
Preview of the Complete Structure of the NFT Meta Asset
{
"_id": "63341a5e626025ac7c4511af",
"address": "0xa293d68684be29540838dc8a0222de0c43c6b5b4",
"createdBy": "0x832735f45299c8b6f7263e758cadba766459cd21",
"contractAddress": "0xa293d68684be29540838dc8a0222de0c43c6b5b4",
"standard": "erc1155",
"protocol": "metaprotocol",
"network": "bnb-chain",
"chainId": 56,
"creationBlock": 21722028,
"version": 0,
"isListed": false,
"isAsset": true,
"createdAt": "2022-09-28T09:56:46.051Z",
"__v": 0,
"token": {
"_id": "6536535c9832b155f2791fe7",
"_tokenId": 1258,
"address": "0xa293d68684be29540838dc8a0222de0c43c6b5b4",
"_quantity": 100,
"burn": false,
"createdAt": "2023-10-23T11:05:00.659Z",
"createdBy": "0x767e5c2359e7c809b16d8cffdb9464f91b6c970b",
"creationBlock": 32852815,
"description": "The Green Sword is a formidable weapon that requires a maximum level of expertise to wield, which is level 100. This sword holds incredible power, inflicting an additional 60% damage against earth and water-based creatures. It is particularly suited for battles against all types of earthbound monsters due to its bonus power against rocky and aquatic foes. However, it's essential to remember that the Green Sword is entirely unsuitable for encounters with fire-based creatures, as it deals 50% less damage against these types of adversaries.\n\n- Potency Against Earth and Water Creatures: The Green Sword boasts extraordinary abilities, enabling it to deal significant additional damage to earth and water-based creatures. It's the perfect choice for engaging in battles against these kinds of monsters, granting a substantial 60% bonus to damage.\n\n- Weakness Against Fire Monsters: Despite its prowess against earth and water beings, the Green Sword comes with a significant drawback. It's exceptionally ineffective against fire monsters, causing 50% less damage when confronting these fiery foes.\n\nThe Green Sword is a potent weapon in the right hands, excelling in battles against earth and water adversaries. However, wield it cautiously, as it's not the best choice for battles against fire-based creatures. Your success in battle depends on your knowledge of this sword's properties and your choice of opponents!",
"extraFiles": [
"https://prdmetaassetfiles.blob.core.windows.net/e5bad177-f506-4d49-9f7b-ddaeb3c3e94d/assets/aec237b3-200b-4965-9b18-dac54e5e1152.mp3"
],
"favorites": 1,
"filesSpec": {
"item_experiance": [],
"common": {
"standard": [
{
"key": "asset_type",
"value": [
"2D meta asset"
],
"value_type": "string array"
},
{
"key": "asset_licence",
"value": "Royalty Free (RF)",
"value_type": "string"
},
{
"key": "asset_restriction",
"value": "Public meta asset",
"value_type": "string"
},
{
"key": "asset_tags",
"value": [
"weapon",
"sword",
"NewEra"
],
"value_type": "string array"
},
{
"key": "asset_tag_ids",
"value": [
60,
61,
166
],
"value_type": "integer array"
},
{
"key": "asset_category",
"value": "Weapons",
"value_type": "string"
},
{
"key": "asset_subcategories",
"value": [],
"value_type": "string array"
},
{
"key": "asset_category_ids",
"value": [
6
],
"value_type": "integer array"
}
],
"2d_spec": [
{
"key": "asset_height",
"value": 1024,
"value_type": "integer"
},
{
"key": "asset_width",
"value": 1024,
"value_type": "integer"
},
{
"key": "asset_layers",
"value": false,
"value_type": "boolean"
}
],
"3d_spec": [
{
"key": "asset_geometry",
"value": "",
"value_type": "string"
},
{
"key": "asset_polygons",
"value": 0,
"value_type": "integer"
},
{
"key": "asset_vertices",
"value": 0,
"value_type": "integer"
},
{
"key": "asset_materials",
"value": false,
"value_type": "boolean"
},
{
"key": "asset_textures",
"value": false,
"value_type": "boolean"
},
{
"key": "asset_uv_mapped",
"value": false,
"value_type": "boolean"
},
{
"key": "asset_animated",
"value": false,
"value_type": "boolean"
}
],
"sound_spec": [
{
"key": "asset_bpm",
"value": 0,
"value_type": "integer"
},
{
"key": "asset_sample_rate",
"value": "",
"value_type": "string"
},