HomeDocumentationRecipesAPI ReferenceChangelog
Arianee Protocol DocumentationLog In
Documentation
These docs are for v1.9. Click to read the latest docs for v2.1.

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"
    ]
  }
...