Makoto
Menu

Know where data began, what changed, and who attested to it.

Makoto is a source-first, SLSA-like framework for data. It keeps a verifiable history beside the bytes as data moves between systems, teams, and organizations.

A portable record of custody

Data does not need another catalog entry. It needs evidence that survives the handoff.

The hard part is not identifying one source file. It is keeping origin, processing history, attesters, and exact artifacts connected after the file becomes ten copies across systems, teams, vendors, and forgotten exports. See why lineage matters.

Three questions, one signed history

  1. Where did this data begin?An origin statement binds claims about collection and source to exact artifact bytes.
  2. What happened along the way?Each transformation points to predecessor statements and artifacts. History grows by addition, never by rewriting an earlier claim.
  3. Who stands behind each claim?Signatures prove control of keys. The receiver separately decides whether those keys were authorized for the claims they signed.
  4. Are these still the same bytes?Digests bind the signed history to the source, intermediate artifacts when available, and the final data delivered to the receiver.

What the protocol carries

EvidenceWhat it answersWho decides
Origin statementWhere and how the data beganThe producer states it; the receiver evaluates it
Transformation graphWhich exact inputs and steps produced this artifactEach participating system appends its claim
DSSE signaturesWhich keys attested to each statementThe receiver authorizes or rejects the signers
JSON Schema profilesWhich public or private structural rules applyData teams define them; receivers resolve exact digests
Artifact digestsWhether the delivered bytes match the signed handoffThe receiver hashes the bytes it actually received
The casebook

Real failures, not toy metadata

See every example →
  1. 01

    Independent data handoff

    A producer signs an origin and two transformations. A receiver applies its own trust policy and verifies the final bytes.

    Run it →
  2. 02

    Poisoned pipeline

    Trace malicious or corrupted input through the transformations that spread it.

    Read the case →
  3. 03

    Scientific reproducibility

    Preserve the source and processing evidence needed to reproduce a published result.

    Read the case →
  4. 04

    Release provenance

    Bind a published dataset to its inputs, build history, signed handoff, and exact release bytes.

    Read the case →
  5. 05

    Configuration postmortem

    Reconstruct which configuration and processing step altered downstream data and where it propagated.

    Read the case →
  6. 06

    AI dataset verification

    Refuse training data unless its source, processing claims, authorized signers, profiles, and bytes verify.

    Read the case →
  7. 07

    Invisible Unicode

    Make a policy-relevant normalization or rejection step explicit when hidden characters alter meaning.

    Read the case →
Build and extend

One protocol, many implementation paths

See tooling status →
Reference implementationCreate, sign, bundle, and verify evidence locally from the open-source core repository.Open core repository ↗
Hosted JSON SchemasValidate core statements and resolve exact digest-pinned private profiles.Open schema catalog
Integration patternsAttach evidence at lifecycle hooks, materializations, writes, releases, and organizational handoffs.Explore integrations
Apache-2.0 · built in public

A common language should be built by the people who need it.

The protocol, schemas, verifier, conformance fixtures, demos, and site are open on GitHub. Bring a real handoff, challenge a claim, add a denial case, or send a tested patch.