JSON Schemas

JACS schemas now describe a small portable signing surface instead of many narrow workflow document types. The core model is a generic signed JSON document: canonical JSON bytes, a common header, cryptographic signatures, signer identity, hashes, optional files, and optional multi-party agreements.

Application-specific payloads belong in the document body or in a custom schema layered on top of the header schema.

Preserved Schemas

Document and Agent Schemas

SchemaPurpose
header/v1/header.schema.jsonGeneric signature wrapper for signed JSON documents
agent/v1/agent.schema.jsonAgent identity and public signing metadata
a2a-verification-result.schema.jsonCross-language A2A artifact verification result

Component Schemas

SchemaPurpose
components/signature/v1/signature.schema.jsonCryptographic signatures
components/agreement/v1/agreement.schema.jsonMulti-party agreement metadata and co-signatures
components/files/v1/files.schema.jsonFile attachments and content hashes

Configuration Schema

SchemaPurpose
jacs.config.schema.jsonAgent configuration file format

Schema Locations

Schemas are available as HTTPS URLs and local files:

https://hai.ai/schemas/header/v1/header.schema.json
https://hai.ai/schemas/agent/v1/agent.schema.json
https://hai.ai/schemas/components/signature/v1/signature.schema.json
https://hai.ai/schemas/components/agreement/v1/agreement.schema.json
https://hai.ai/schemas/components/files/v1/files.schema.json
https://hai.ai/schemas/jacs.config.schema.json

Generic Signed Documents

Every signed document includes a $schema field. Generic payloads use the header schema directly:

{
  "$schema": "https://hai.ai/schemas/header/v1/header.schema.json",
  "jacsId": "550e8400-e29b-41d4-a716-446655440000",
  "jacsVersion": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "jacsType": "document",
  "jacsLevel": "artifact",
  "content": {
    "invoice_id": "INV-001",
    "amount": 100.0
  }
}

Custom schemas may extend the header when an integration needs stronger payload validation:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://example.com/schemas/invoice.schema.json",
  "allOf": [
    { "$ref": "https://hai.ai/schemas/header/v1/header.schema.json" },
    {
      "type": "object",
      "properties": {
        "content": {
          "type": "object",
          "required": ["invoice_id", "amount"]
        }
      }
    }
  ]
}

Agreements

Use jacsAgreement on any generic signed document when multiple agents need to approve the same payload. Agreement metadata records the required signers, quorum, deadline, algorithm requirements, and collected signatures.

HAI Extensions

JACS schemas include a custom hai property that categorizes fields:

ValueDescription
metaMetadata fields such as IDs, timestamps, and versions
baseCore cryptographic fields such as hashes and signatures
agentAgent-controlled content fields

These categories help determine which fields participate in hashing and signing.