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

ParameterOptionalDisplayed in walletDescription
$schemaRequiredNot applicableContent file
languageRequiredMessage main language
titleRequiredMessage title
contentRequiredText message content
picturesOptionalPictures and media in the message
i18nOptionalOther 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"
    ]
  }
...