The Standard
Schema
Complete field definitions for legal-context.json — required and optional fields.
The legal-context.json discovery document has two required fields and a set of optional fields that correspond to increasing levels of trust.
Required Fields
| Field | Type | Required | Description |
|---|---|---|---|
version | string | REQUIRED | Protocol version. MUST be "2.0" for this specification. |
terms | string | REQUIRED | Absolute HTTPS URL of the legal terms document. MUST return a standalone, downloadable file. For services with only confidential/private terms, this URL MAY return a document stating that terms are provided at transaction time (see Private Terms). |
Optional Fields
| Field | Type | Required | Description |
|---|---|---|---|
contentHash | string | OPTIONAL | SHA-256 hash of the terms document, 0x-prefixed hex (66 characters). See Level 2: Provable. |
hashAlgorithm | string | OPTIONAL | Hash algorithm used. Defaults to "sha256" if contentHash is present. |
acceptanceRequired | boolean | OPTIONAL | If true, counterparties MUST explicitly accept terms before transacting. See Level 3: Signed. Default: false. |
disputeResolution | object | OPTIONAL | Dispute resolution process. See Level 4: Integrated. |
disputeResolution.method | string | OPTIONAL | The dispute resolution method (e.g., "AAA Commercial Arbitration Rules"). |
disputeResolution.jurisdiction | string | OPTIONAL | Governing jurisdiction. |
disputeResolution.contact | string | OPTIONAL | Contact for dispute filing. |
returns | string | OPTIONAL | URL of a returns or claims API/process. |
contact | object | OPTIONAL | Contact information for the service. |
contact.legal | string | OPTIONAL | Legal department contact. |
contact.technical | string | OPTIONAL | Technical support contact. |
api | string | OPTIONAL | URL of a legal context API providing richer functionality (record management, verification, dispute filing). See Level 4: Integrated. |
Full Example
{
"version": "2.0",
"terms": "https://example.com/terms/v3.pdf",
"contentHash": "0x7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069",
"hashAlgorithm": "sha256",
"acceptanceRequired": true,
"disputeResolution": {
"method": "AAA Commercial Arbitration Rules",
"jurisdiction": "New York, USA",
"contact": "[email protected]"
},
"returns": "https://example.com/api/returns",
"contact": {
"legal": "[email protected]",
"technical": "[email protected]"
},
"api": "https://api.integraledger.net/v1/records/0xabcdef1234567890"
}Extensibility
The field set is extensible. Implementations SHOULD ignore fields they do not recognize. Vendors MAY add custom fields as needed for their use case. The standard does not define a namespace for custom fields — any key not defined above is considered an extension.