Last updated 11 months ago

The Live Contract template can be instantiated to create a contract. It holds a templated version of the natural language text, a form definition to collect the data and links to associated scenarios of the digitized procedures.


JSON Schema | changelog


"$schema": "https://specs.livecontracts.io/01-draft/template/schema.json#",
"id": "lt:/templates/ac19b51f-4cd2-413e-b283-a51c533580ad?v=GKot5hBs",
"name": "NDA US",
"description": "A general non-disclosure agreement legally enforcable in the United States of America",
"form": "lt:/forms/3c7c628f-e586-4362-9162-8a0e089a9d06?v=d81kMupN",
"content": {
"hash": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad",
"encryptkey": "8MeRTc26xZqPmQ3Q29RJBwtgtXDPwR7P9QNArymjPLVQ"
"content_type": "text/html",
"locale": "en_US",
"scenarios": [
"id": "lt:/scenarios/d2e147fb-cb62-4070-9575-8a672d35724a?v=HECPrZDs",
"name": "Sign document"
"id": "lt:/scenarios/0f379b89-1a41-4b97-a9f8-30433fe3c30d?v=8cWTaKQL",
"name": "NDA violated",
"paragraph": "#2"

Template schema



The Live Contracts Scenario JSON schema URI that describes the JSON structure of the scenario.


A URI as a unique identifier for the template. This is typically an LTRI.

The id MUST point to an immutable version of the template. Modifying the template SHOULD always result in a new id. Previous versions of the template SHOULD remain available.


The name of the template. Shown when listing scenarios. The title SHOULD be unique within your set of scenarios.


A description of the document shown as template details.


A form definition or the id of a form definition. When creating a contract, the user is asked to fill out this form in order to gather the contract information.


The template content in natural language. Typically the template content contains fields that are filled in using the information collected from filling out the form.

Alternatively the content may not be embedded, but linked. In this case content is an object following the linked content schema.


The MIME type of the content. It the template has content, the content type must be set.


If specified the string SHOULD be interpreted as binary data and decoded using the encoding named by this property.


The language of the template as ISO-639 locale.


A list of scenarios that are related to this template.

Linked content schema


Linking the content rather embedding it reduces the size of the event.

"url": "https://example.com/2ejVRPkvyC9q3s5g1t2HWjN9Cf5KxM1BHyrYahevSJ8f.html",
"hash": "2ejVRPkvyC9q3s5g1t2HWjN9Cf5KxM1BHyrYahevSJ8f",
"decryptkey": "A9FN0apAXVgica00XpJmTUOdJVsVE6Y9JukxAWpkGLfN"


The URL to the file holding the content of the template. It's recommended to use the hash as filename. All nodes that are allow to participate in the event chain MUST be able access the file. This might mean that the file is publicly available.


A base58 encoded SHA256 hash of the content. The hash should be of the unencrypted content.


The file SHOULD be encrypted. Encryption MUST be done using the XSalsa20 algorithm. If the content is encrypted, the encryptkey property contains the base58 encoded encryption key which can be used to decrypt the content.

Related scenario schema


A link to a scenario that relates to this schema. This is either a procedure that is described in the contract or a procedure that applies to the contract.


The scenario id as URI, typically an LTRI.


The scenario name.


The paragraph anchor, if scenario references a particular paragraph of the contract.