Aqua ProtocolAqua Protocol
Aqua Protocol
Aqua ProtocolAqua Protocol, an open protocol for verifiable data provenance and accountability. Developed in the open as a proposed standard, with public specification, documentation, and reference implementations.

Documentation

Welcome to Aqua ProtocolQuick StartCore ConceptsRelease Status & Versioning
Developer Onboarding
aqua-rs-sdk-coreTemplate RegistryAudit Trails for AI Agents
Protocol Reference
Protocol ReferenceData ModelHashing and CanonicalizationTemplatesSignaturesAnchors and LinksSelective DisclosureVerification
Use Cases
Aqua Protocol Use CasesDocument VerificationIdentity AttestationSupply Chain Tracking

Documentation

Welcome to Aqua ProtocolQuick StartCore ConceptsRelease Status & Versioning
Developer Onboarding
aqua-rs-sdk-coreTemplate RegistryAudit Trails for AI Agents
Protocol Reference
Protocol ReferenceData ModelHashing and CanonicalizationTemplatesSignaturesAnchors and LinksSelective DisclosureVerification
Use Cases
Aqua Protocol Use CasesDocument VerificationIdentity AttestationSupply Chain Tracking
Docs
Schema Reference
Protocol Reference

Protocol Reference

Readable reference for the Aqua Protocol v4 core profile: data model, hashing, templates, signatures, anchors, selective disclosure, and verification

4 min read

This section is the readable reference for the Aqua Protocol v4 core profile — the protocol subset implemented by aqua-rs-sdk-core. It covers the wire formats, the algorithms, and the rules a conforming producer or verifier follows: revisions and trees, hashing and canonicalization, templates, signatures, anchors and links, selective disclosure, and the verification procedure.

The specification is authoritative

The normative specification lives in the SDK repository at protocol-specification/ (Status: Draft). These pages are the readable reference; on any disagreement between these pages and the specification, the specification wins. The specification itself states: "Where this document and an implementation disagree, that is a defect in one of them and must be reconciled; this document states the intended protocol."

Conformance language

The specification uses the key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL as described in RFC 2119. These pages reproduce that language where they restate normative rules.

Two conformance roles are used throughout:

  • a producer creates revisions and trees;
  • a verifier checks them.

A statement without an explicit role binds both.

Outside the core profile are: execution of template compute (WASM) sections, timestamping providers, identity verification beyond raw key material, and policy evaluation over stateful trees. At each of these boundaries the governing rule, quoted from the specification, is that "a core-profile verifier MUST fail closed — it never treats a capability it lacks as implicitly satisfied."

Protocol constants

ConstantValue
Wire schema version (the only legal version value)https://aqua-protocol.org/docs/v4/schema
Hash algorithmsSHA3-256 (multicodec 0x16), BLAKE3-256 (multicodec 0x1e), both 32-byte digests
Nonce16 random bytes
Selective-disclosure KDFHKDF with SHA3-256, extract salt "AquaSD" (ASCII)
Merkle domain tags0x00 leaf, 0x01 internal node, 0x02 value commitment, 0x03 label commitment
Template identity hashAlways SHA3-256, regardless of the tree's algorithm
Genesis bootstrap type hashSHA3-256 of the ASCII string aqua:genesis:template_meta

The catalog of shipped template hashes is normative and appears in the specification's 03 — Templates; the readable version is on the Templates page.

Terminology

TermMeaning
TreeA set of revisions keyed by revision hash, together with an informational file index. Structurally a forest of in-trees; colloquially "an Aqua tree".
RevisionThe atomic protocol object: a JSON object of one of four kinds, content-addressed by its revision hash.
Revision linkThe string form of a revision hash: 0x + the lowercase hex encoding of the full multihash (70 characters for the registered algorithms). Used both to address a revision and to reference it from other revisions.
KindWhich of the four wire shapes a revision has: object, template, signature, or anchor.
BranchA revision not on the chain's spine. Distinct from the branch kinds (signature, anchor, timestamp) — a classification by naming value, independent of tree position.
TipA revision that no other revision names as its previous_revision.
Content tipThe tip that is an object or template revision, with object preferred — the natural target for extending the tree.

The Data Model page defines all of these precisely.

Pages in this section

PageScope
Data ModelRevisions and trees on the wire: common fields, the four revision kinds, kind discrimination, genesis, structural rules, chains and tips.
Hashing and CanonicalizationContent addressing: the Aqua multihash profile, Aqua Pointer Form, and the scalar and tree hashing methods.
TemplatesHash-identified types: schema validation, template derivation and narrowing, bounds, and the shipped template catalog.
SignaturesThe signature revision, the signing pre-image, the four signature suites, and signer identity binding.
Anchors and LinksStructural and compositional links, genesis anchors, and cross-tree references.
Selective DisclosureField-level redaction with salted commitments, selective trees, and the disclosure presets.
VerificationThe staged verification procedure, verification policies, and the error vocabulary.

See also

  • Data Model — the revision and tree wire formats
  • Verification — how a conforming verifier checks a tree
  • Core Concepts — the ideas behind the protocol, informally
  • aqua-rs-sdk-core — the Rust implementation of this profile
  • Quick Start — create and verify your first tree
Edit this pageReport an issue
Previous
Audit Trails for AI Agents
Next
Data Model

Documentation

  • Getting Started
  • Protocol Reference

Community

  • GitHub

Copyright © 2026 inblock.io assets GmbH. All rights reserved.

On this page

Conformance languageProtocol constantsTerminologyPages in this sectionSee also