Makoto
Menu
Schema reference

origin.schema.json

The origin predicate. Source claims, event identity and time, and the exact subjects first observed.

Title
Makoto v0.2 Origin Predicate
Identifier
https://usemakoto.dev/schema/v0.2/origin.schema.json
Digest
sha256:3f56d68d758bb72c2bcbabd922e1ac7d6eb6dd9c3e6baa78a9f104cf0a64badc
Raw
/schema/v0.2/origin.schema.json
Carried in
The predicate of a statement whose predicateType is https://usemakoto.dev/predicate/v0.2/origin.
Responsibility
Common event fields plus source fields and prohibition of predecessors.

All schemas§11.2§11.3FieldsRaw JSON

A real instance. Read from demos/end-to-end/artifacts/positive-bundle/attestations/56b7be4394fe09c62ec7a3d5763cecc251e9696f267f35b2acc717b0d170a27a.dsse.json → predicate, which validates against this schema.
{
  "event": {
    "id": "urn:uuid:11111111-1111-4111-8111-111111111111",
    "occurredAt": "2026-09-16T16:00:00Z"
  },
  "profiles": [],
  "schemaVersion": "0.2",
  "source": {
    "kind": "urn:makoto:demo:source:synthetic-file",
    "uri": "urn:makoto:demo:v0.2:source:customers-raw"
  }
}

Referenced by

Fields

Top leveltimestampeventsourceextensions

Top level#

Shape object
  • closed object
FieldTypeConstraints, rules, and a real value
schemaVersion
required
string constant
  • = "0.2"
Makoto predicate version.
"0.2"
event
required
event
{"id": "urn:uuid:11111111-1111-4111-8111-111111111111", "occurredAt": "2026-09-16T16:00:00Z"}
source
required
source
{"kind": "urn:makoto:demo:source:synthetic-file", "uri": "urn:makoto:demo:v0.2:source:customers…
profiles
optional
array of profile-reference.schema.json
Additional schemas to apply.
[]
extensions
optional
extensions
URI-namespaced extension values.

timestamp#

Shape string
  • min length 20
  • max length 30

Appears at event.occurredAt, source.retrievedAt

event#

Shape object
  • closed object

Appears at event

FieldTypeConstraints, rules, and a real value
id
required
string
  • min length 1
  • max length 4096
Producer-selected event identifier; uniqueness is enforced across the verified graph.
"urn:uuid:11111111-1111-4111-8111-111111111111"
occurredAt
required
timestamp
Signer-asserted event time; not a trusted timestamp unless policy adds that guarantee.
"2026-09-16T16:00:00Z"

source#

Shape object
  • closed object

Appears at source

FieldTypeConstraints, rules, and a real value
kind
required
string
  • min length 1
  • max length 4096
Machine-readable source category.
"urn:makoto:demo:source:synthetic-file"
uri
optional
string
  • min length 1
  • max length 4096
Source locator. It may be omitted or redacted for privacy; an empty string is invalid when the member is present.
"urn:makoto:demo:v0.2:source:customers-raw"
name
optional
string
  • max length 4096
Human-readable source name.
mediaType
optional
string
  • max length 255
Media type observed at collection.
retrievedAt
optional
timestamp
Time the producer retrieved or observed the source.
version
optional
string
  • max length 4096
Source-controlled version or revision.

extensions#

Shape object

Appears at extensions

Real documents that validate

  • demos/end-to-end/artifacts/positive-bundle/attestations/56b7be4394fe09c62ec7a3d5763cecc251e9696f267f35b2acc717b0d170a27a.dsse.json → predicate

Raw JSON

The published document (1,643 bytes)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://usemakoto.dev/schema/v0.2/origin.schema.json",
  "title": "Makoto v0.2 Origin Predicate",
  "type": "object",
  "required": ["schemaVersion", "event", "source"],
  "properties": {
    "schemaVersion": { "const": "0.2" },
    "event": { "$ref": "#/$defs/event" },
    "source": { "$ref": "#/$defs/source" },
    "profiles": {
      "type": "array",
      "items": { "$ref": "https://usemakoto.dev/schema/v0.2/profile-reference.schema.json" }
    },
    "extensions": { "$ref": "#/$defs/extensions" }
  },
  "$defs": {
    "timestamp": {
      "type": "string",
      "minLength": 20,
      "maxLength": 30
    },
    "event": {
      "type": "object",
      "required": ["id", "occurredAt"],
      "properties": {
        "id": { "type": "string", "minLength": 1, "maxLength": 4096 },
        "occurredAt": { "$ref": "#/$defs/timestamp" }
      },
      "additionalProperties": false
    },
    "source": {
      "type": "object",
      "required": ["kind"],
      "properties": {
        "kind": { "type": "string", "minLength": 1, "maxLength": 4096 },
        "uri": { "type": "string", "minLength": 1, "maxLength": 4096 },
        "name": { "type": "string", "maxLength": 4096 },
        "mediaType": {
          "type": "string",
          "maxLength": 255
        },
        "retrievedAt": { "$ref": "#/$defs/timestamp" },
        "version": { "type": "string", "maxLength": 4096 }
      },
      "additionalProperties": false
    },
    "extensions": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "additionalProperties": false
}

The published bytes, unmodified.