Metadata
Our Metadata for now lives on Arweave, a permanent, cheap, and decentralized storage platform. You can either store the metadata on NEAR as the NEP 171 suggests, this would be extremely expensive if we are storing thousands for say a stadium seating. We use the reference to get the entire metadata block (title, description, media) to save on space.
1
type TokenMetadata = {
2
title: string|null, // ex. "Arch Nemesis: Mail Carrier" or "Parcel #5055"
3
description: string|null, // free-form description
4
media: string|null, // URL to associated media, preferably to decentralized, content-addressed storage
5
media_hash: string|null, // Base64-encoded sha256 hash of content referenced by the `media` field. Required if `media` is included.
6
copies: number|null, // number of copies of this set of metadata in existence when token was minted.
7
issued_at: number|null, // When token was issued or minted, Unix epoch in milliseconds
8
expires_at: number|null, // When token expires, Unix epoch in milliseconds
9
starts_at: number|null, // When token starts being valid, Unix epoch in milliseconds
10
updated_at: number|null, // When token was last updated, Unix epoch in milliseconds
11
extra: string|null, // anything extra the NFT wants to store on-chain. Can be stringified JSON.
12
reference: string|null, // URL to an off-chain JSON file with more info.
13
reference_hash: string|null // Base64-encoded sha256 hash of JSON from reference field. Required if `reference` is included.
14
}
Copied!
If you are using the NEAR CLI via command line on mainnet:
1
export NEAR_ENV=mainnet
2
near hellovirtualworld.mintbase1.near nft_token '{"token_id": "75"}'
Copied!
Returns
1
{
2
token_id: '75',
3
owner_id: 'microchipgnu.near',
4
approved_account_ids: {},
5
metadata: {
6
title: null,
7
description: null,
8
media: null,
9
media_hash: null,
10
copies: 1,
11
issued_at: null,
12
expires_at: null,
13
starts_at: null,
14
updated_at: null,
15
extra: 'vr',
16
reference: 'nGr-c_UfzHr515RPqVJfQNdFV1Eivo0as2RGOo-2Z24',
17
reference_hash: null
18
},
19
royalty: {
20
split_between: { 'microchipgnu.near': { numerator: 10000 } },
21
percentage: { numerator: 1000 }
22
},
23
split_owners: {
24
split_between: {
25
'microchipgnu.near': { numerator: 5000 },
26
'3xr.near': { numerator: 5000 }
27
}
28
},
29
minter: 'microchipgnu.near',
30
loan: null,
31
composeable_stats: { local_depth: 0, cross_contract_children: 0 },
32
origin_key: null
33
}
Copied!

Find the Metadata via the UI

If we inspect our thing page:
First Gallery 3XR template #1
Mintbase
If you scroll down to Details, you' see transaction hash
Combine the Storage Gateway with Transaction Hash
https://arweave.net/nGr-c_UfzHr515RPqVJfQNdFV1Eivo0as2RGOo-2Z24
arweave.net
Arweave Metadata Source
1
{
2
"category": "vr",
3
"description": "Credits to Mozilla for creating this model",
4
"copies": 1,
5
"media_hash": "zRHjE6nUSHUN4YB3FWx__57EWNpIAOUenf4_gddCArg",
6
"lock": null,
7
"visibility": "safe",
8
"youtube_url": null,
9
"animation_url": "https://arweave.net/bUj-aADWZ1RV9Od4QYx-99oAOcVbvRcep3Fdg9OpCP8",
10
"animation_hash": "bUj-aADWZ1RV9Od4QYx-99oAOcVbvRcep3Fdg9OpCP8",
11
"document": null,
12
"document_hash": null,
13
"royalty": {
14
"microchipgnu.near": 10000
15
},
16
"royalty_perc": 0.1,
17
"split_revenue": {
18
"3xr.near": 5000,
19
"microchipgnu.near": 5000
20
},
21
"tags": [
22
23
],
24
"media": "https://arweave.net/zRHjE6nUSHUN4YB3FWx__57EWNpIAOUenf4_gddCArg",
25
"extra": [
26
{
27
"trait_type": "website",
28
"value": ""
29
},
30
{
31
"trait_type": "asset_places",
32
"value": "[ { \"position\": { \"x\": -5.6, \"y\": 1.5, \"z\": 5 }, \"rotation\": { \"_x\": 0, \"_y\": 1.5707963267948966, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": -5.6, \"y\": 1.5, \"z\": 3 }, \"rotation\": { \"_x\": 0, \"_y\": 1.5707963267948966, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": -5.6, \"y\": 1.5, \"z\": 1 }, \"rotation\": { \"_x\": 0, \"_y\": 1.5707963267948966, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": -5.6, \"y\": 1.5, \"z\": -1 }, \"rotation\": { \"_x\": 0, \"_y\": 1.5707963267948966, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": -5.6, \"y\": 1.5, \"z\": -3 }, \"rotation\": { \"_x\": 0, \"_y\": 1.5707963267948966, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 5, \"y\": 1.5, \"z\": 6.65 }, \"rotation\": { \"_x\": 0, \"_y\": 3.141592653589793, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 3, \"y\": 1.5, \"z\": 6.65 }, \"rotation\": { \"_x\": 0, \"_y\": 3.141592653589793, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 1, \"y\": 1.5, \"z\": 6.65 }, \"rotation\": { \"_x\": 0, \"_y\": 3.141592653589793, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": -1, \"y\": 1.5, \"z\": 6.65 }, \"rotation\": { \"_x\": 0, \"_y\": 3.141592653589793, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": -3, \"y\": 1.5, \"z\": 6.65 }, \"rotation\": { \"_x\": 0, \"_y\": 3.141592653589793, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 8.3, \"y\": 1.5, \"z\": -6 }, \"rotation\": { \"_x\": 0, \"_y\": -1.5707963267948966, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 8.3, \"y\": 1.5, \"z\": -4 }, \"rotation\": { \"_x\": 0, \"_y\": -1.5707963267948966, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 8.3, \"y\": 1.5, \"z\": -2 }, \"rotation\": { \"_x\": 0, \"_y\": -1.5707963267948966, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 8.3, \"y\": 1.5, \"z\": 0 }, \"rotation\": { \"_x\": 0, \"_y\": -1.5707963267948966, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 8.3, \"y\": 1.5, \"z\": 2 }, \"rotation\": { \"_x\": 0, \"_y\": -1.5707963267948966, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 8.3, \"y\": 1.5, \"z\": 0 }, \"rotation\": { \"_x\": 0, \"_y\": -1.5707963267948966, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": -3, \"y\": 1.5, \"z\": -7.2 }, \"rotation\": { \"_x\": 0, \"_y\": 0, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": -1, \"y\": 1.5, \"z\": -7.2 }, \"rotation\": { \"_x\": 0, \"_y\": 0, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 2, \"y\": 1.5, \"z\": -7.2 }, \"rotation\": { \"_x\": 0, \"_y\": 0, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 4, \"y\": 1.5, \"z\": -7.2 }, \"rotation\": { \"_x\": 0, \"_y\": 0, \"_z\": 0, \"_order\": \"XYZ\" } }, { \"position\": { \"x\": 6, \"y\": 1.5, \"z\": -7.2 }, \"rotation\": { \"_x\": 0, \"_y\": 0, \"_z\": 0, \"_order\": \"XYZ\" } } ]"
33
},
34
{
35
"trait_type": "3xr_frame_color",
36
"value": "#472558"
37
}
38
],
39
"title": "First Gallery 3XR template #1",
40
"store": "hellovirtualworld.mintbase1.near",
41
"external_url": "https://mintbase.io/store/hellovirtualworld.mintbase1.near",
42
"type": "NEP171"
43
}
Copied!
Trait type structure can also follow OpenSea attributes structure.
​
​
​
​
​
​
​
Last modified 5d ago