Message Schema
The Json Schema contains the content of the message.
Keys cannot start with
$
, except schema. Example: { $schema: "http://myschema.com", name:'my name', $ref:'my internalref '}.
Overview
Parameter | Optional | Displayed in wallet | Description |
---|---|---|---|
$schema | Required | Not applicable | Content file |
language | Required | ❌ | Message main language |
title | Required | ✅ | Message title |
content | Required | ✅ | Text message content |
pictures | Optional | ✅ | Pictures and media in the message |
i18n | Optional | ❌ | Other languages |
Schema file content
$Schema
- URL of the Schema JSON file.
{
"$schema": "https://cert.arianee.org/version1/ArianeeMessage-i18n.json",
...
{
"$id": "https://cert.arianee.org/version1/ArianeeMessage-i18n.json",
"$schema": "https://cert.arianee.org/version1/ArianeeMessage-i18n.json",
"title": "Arianee Message",
"description": "Describing an Arianee Message.",
"type": "object",
"properties": {
"$schema": {
"title": "$schema",
"type": "string",
"default": "https://cert.arianee.org/version1/ArianeeMessage-i18n.json",
"widget": "hidden"
},
...
Language
language
- The main language of the NFT, displayed as the default language when the translation is not available.
...
"language": "en-US",
...
...
"language": {
"type": "string",
"title": "Language",
"widget": {
"id": "select"
},
"description": "Descriptions and external contents can be stored in different languages",
"oneOf": [
{
"title": "French",
"description": "French",
"enum": [
"fr-FR"
]
},
{
"title": "English (US)",
"description": "English (US)",
"enum": [
"en-US"
]
},
{
"title": "Chinese (traditional)",
"description": "Chinese (traditional)",
"enum": [
"zh-TW"
]
},
{
"title": "Chinese (simplified)",
"description": "Chinese (simplified)",
"enum": [
"zh-CN"
]
},
{"enum": ["ko-KR"], "title":"Korean", "description": "Korean"},
{"enum": ["ja-JP"], "title":"Japanese", "description": "Japanese"},
{"enum": ["de-DE"], "title":"German", "description": "German"},
{"enum": ["es"], "title":"Spanish", "description": "Spanish"},
{"enum": ["it"], "title":"Italian", "description": "Italian"}
...
Message title
title
- Synthetic title of the message.
...
"title": "Title of your message",
...
...
"title": {
"type": "string",
"title": "Title of your message"
},
...
Description
content
- Detailed description of the message.
...
"content": "Content of your message.",
...
...
"content": {
"type": "string",
"title": "Content of your message"
},
...
Pictures
pictures
- Pictures and media inside the message.
Pictures format: .jpg or .png.
...
"pictures": [{
"type": "picture",
"title": "Picture title",
"description": "Description of the picture.",
"url": "https://documentation.arianee.com/pub/-Lzfbb6qGXMN3LVhPRWG_arianeeResized",
"order": 1
},
...
...
"pictures": {
"type": "array",
"title": "Pictures & Medias",
"description": "Pictures & Medias used inside the message (as attachements)",
"items": {
"type": "object",
"properties": {
"mediaType": {
"type": "string",
"title": "Media Type",
"widget": {
"id": "select"
},
"oneOf": [
{
"enum": [
"picture"
],
"title": "Picture (png / jpg)",
"description": "Picture (png / jpg)"
},
{
"enum": [
"youtube"
],
"title": "Youtube video",
"description": "Youtube video"
}
]
},
"type": {
"type": "string",
"title": "Type",
"widget": {
"id": "select"
},
"oneOf": [
{
"enum": [
"product"
],
"title": "Product media / picture",
"description": "used to support the presentation of the product in the wallet app. (ideally .png with transparent background and square, less than 1mo)"
}
]
},
"url": {
"type": "string",
"title": "URL",
"widget": {
"id": "staticAssets"
}
},
"hash": {
"type": "string",
"title": "Image Hash",
"widget": {
"id": "string"
}
}
}
}
},
...
Localize content
i18n
- Storing of international content.
The displayed language is based on the device language. If not available, the main language of the NFT is displayed.
...
"i18n": [{
"language": "fr-FR",
"title": "Navyclock",
"content": "<b>Description</b>\nLa montre The Navyclock d'Arianee est un petit modèle utilisant le mouvement à quartz. Boitier en or rose 18 carats, Couronne perlée en or rose 18 carats sertie d'un spinelle synthétique en forme de cabochon, bracelet en cuir.\n\n<b>Dimensions</b>\ndiamètre: 29.5 mm, épaisseur: 6.35 mm, étanche à 3 bar (environ 30 mètres/100 pieds).",
"subDescription": [],
}],
...
...
"i18n": {
"type": "array",
"title": "Other languages",
"description": "If you want your message to be translated",
"items": {
"type": "object",
"properties": {
"language": {
"type": "string",
"title": "Language",
"widget": {
"id": "select"
},
"oneOf": [
{"enum": ["fr-FR"], "title":"French", "description": "French"},
{"enum": ["en-US"], "title":"English (american)", "description": "English (american)"},
{"enum": ["zh-TW"], "title":"Traditional chinese", "description": "Traditional chinese"},
{"enum": ["zh-CN"], "title":"Simplified chinese", "description": "Simplified chinese"},
{"enum": ["ko-KR"], "title":"Korean", "description": "Korean"},
{"enum": ["ja-JP"], "title":"Japanese", "description": "Japanese"},
{"enum": ["de-DE"], "title":"German", "description": "German"},
{"enum": ["es"], "title":"Spanish", "description": "Spanish"},
{"enum": ["it"], "title":"Italian", "description": "Italian"}
]
},
"title": {
"type": "string",
"title": "Title of your message"
},
"content": {
"type": "string",
"title": "Content of your message"
},
"externalContents": {
"description": "This field is designed to store the links to external contents the Brand whish to introduce to the end customer in a wallet app.\n Specific external contents can be stored for each language.",
"required": false,
"type": "array",
"title": "External Contents",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"title": "Type",
"widget": {
"id": "select"
},
"oneOf": [
{
"enum": [
"website"
],
"title": "Website (main)",
"description":"Regular link"
},
{
"enum": [
"proofLinkAction"
],
"title": "proofLinkAction",
"description": "Link with a proof of ownership"
},
{
"enum": [
"arianeeAccessTokenAuthLink"
],
"title": "arianeeAccessTokenAuthLink",
"description": "Link with a Arianee Access Token, proof of ownership. The difference with proofLinkAction is that arianeeAccessTokenAuthLink does not need blockchain transaction. It is instant but cannnot be revoked. However it does expire."
},
{
"enum": [
"actionButton"
],
"title": "transparency",
"description": "Url of transparency events json"
}
]
},
"title": {
"type": "string",
"title": "Title"
},
"url": {
"type": "string",
"title": "Url"
},
"order": {
"type": "number",
"title": "Order (number)"
}
}
}
}
}
}
},
"pictures": {
"type": "array",
"title": "Pictures & Medias",
"description": "Pictures & Medias used inside the message (as attachements)",
"items": {
"type": "object",
"properties": {
"mediaType": {
"type": "string",
"title": "Media Type",
"widget": {
"id": "select"
},
"oneOf": [
{
"enum": [
"picture"
],
"title": "Picture (png / jpg)",
"description": "Picture (png / jpg)"
},
{
"enum": [
"youtube"
],
"title": "Youtube video",
"description": "Youtube video"
}
]
},
"type": {
"type": "string",
"title": "Type",
"widget": {
"id": "select"
},
"oneOf": [
{
"enum": [
"product"
],
"title": "Product media / picture",
"description": "used to support the presentation of the product in the wallet app. (ideally .png with transparent background and square, less than 1mo)"
}
]
},
"url": {
"type": "string",
"title": "URL",
"widget": {
"id": "staticAssets"
}
},
"hash": {
"type": "string",
"title": "Image Hash",
"widget": {
"id": "string"
}
}
}
}
},
...
External Contents
externalContents
- Storing of links to external contents your brand wishes to introduce to owners in the wallet.
...
"externalContents": [{
"type": "website",
"title": "Website",
"url": "https://www.arianee.org/",
"order": 1
}, {
"type": "website",
"title": "About Arianee",
"url": "https://www.arianee.org/about-arianee",
"order": 3
}, {
"type": "website",
"title": "History of Watches",
"url": "https://en.wikipedia.org/wiki/History_of_watches",
"order": 2
}, {
"type": "proofLinkAction",
"title": "Link with a proof of ownership",
"url": "https://test.arian.ee/proofLinkAction.html"
}],
...
...
"externalContents": {
"description": "This field is designed to store the links to external contents the Brand whish to introduce to the end customer in a wallet app.\n Specific external contents can be stored for each language.",
"required": false,
"type": "array",
"title": "External Contents",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"title": "Type",
"widget": {
"id": "select"
},
"oneOf": [
{
"enum": [
"website"
],
"title": "Website (main)",
"description":"Regular link"
},
{
"enum": [
"proofLinkAction"
],
"title": "proofLinkAction",
"description": "Link with a proof of ownership"
},
{
"enum": [
"arianeeAccessTokenAuthLink"
],
"title": "arianeeAccessTokenAuthLink",
"description": "Link with a Arianee Access Token, proof of ownership. The difference with proofLinkAction is that arianeeAccessTokenAuthLink does not need blockchain transaction. It is instant but cannnot be revoked. However it does expire."
},
{
"enum": [
"actionButton"
],
"title": "transparency",
"description": "Url of transparency events json"
}
]
},
"title": {
"type": "string",
"title": "Title"
},
"url": {
"type": "string",
"title": "Url"
},
"order": {
"type": "number",
"title": "Order (number)"
}
}
}
}
},
"required": [
"$schema"
]
}
...
Updated about 1 year ago