Schema
Complete field definitions for legal-context.json — required and optional fields.
The legal-context.json discovery document has one required field and a set of optional fields that correspond to increasing levels of trust.
Required Fields
| Field | Type | Required | Description |
|---|---|---|---|
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 and Custom Terms). |
Optional Fields
| Field | Type | Required | Description |
|---|---|---|---|
termsFormat | string | OPTIONAL | The format or schema of the terms document. Signals to agents whether the terms are machine-readable before fetching. Known values: "agentic-transaction-record-v1", "pdf", "markdown", "html", "plain". When absent, agents determine format from the Content-Type header after fetching. |
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. |
disputeResolution.clauseId | string | OPTIONAL | Content-addressed identifier of the dispute resolution clause. Format: sha256:0x<hex>. When present, the clause is verifiable — any party can retrieve the text and confirm it matches the hash. |
disputeResolution.source | string | OPTIONAL | URL where the dispute resolution clause text can be retrieved. Any resolvable URI (HTTPS, IPFS, Arweave, etc.). |
disputeResolution.catalog | string | OPTIONAL | URL of the dispute resolution provider's service catalog. When present, agents can browse offerings, parameters, and constraints, and generate customized clause specifications programmatically. |
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
{
"terms": "https://example.com/terms/v3.json",
"termsFormat": "agentic-transaction-record-v1",
"contentHash": "0x7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069",
"hashAlgorithm": "sha256",
"acceptanceRequired": true,
"disputeResolution": {
"method": "AAA Commercial Arbitration Rules",
"jurisdiction": "New York, USA",
"contact": "disputes@example.com",
"clauseId": "sha256:0x<hash>",
"source": "https://adr.org/clauses/commercial-arbitration",
"catalog": "https://adr.org/.well-known/dispute-services.json"
},
"returns": "https://example.com/api/returns",
"contact": {
"legal": "legal@example.com",
"technical": "api-support@example.com"
},
"api": "https://api.integraledger.net/v1/records/0xabcdef1234567890"
}Extensibility
The field set is extensible. Implementations SHOULD ignore fields they do not recognize.