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
Release Status & Versioning

Release Status & Versioning

What the Aqua Protocol v4 release contains, what it deliberately excludes, and which stability guarantees apply

6 min read

This page is the definitive statement of the current status of Aqua Protocol v4: what is published, what is deliberately out of scope, and which guarantees do — and do not — apply.

Experimental release

Aqua Protocol v4 is under active development. The published components — aqua-rs-sdk-core and aqua-template-registry — are an early community release with a deliberately limited functionality scope. Version numbers have not yet been increased, backward compatibility is not yet provided, and breaking changes are expected and may occur without notice. The full aqua-rs-sdk, which extends this core, is scheduled for a later publication. For production use today, refer to the stable v3 documentation.

Specification status

The normative protocol specification has status Draft. It lives in the aqua-rs-sdk-core repository under protocol-specification/ and is the authoritative description of the v4 core profile: where the specification and an implementation disagree, the specification states the intended protocol. Revisions on the wire carry the schema version identifier https://aqua-protocol.org/docs/v4/schema.

What this release contains

ComponentVersionScope
aqua-rs-sdk-core0.1.0Protocol engine: object, template, signature, and anchor revisions; hashing and canonicalization (SHA3-256 default, BLAKE3-256 optional); four signature suites (Ed25519, Ethereum EIP-191, ECDSA P-256, WebAuthn P-256); selective disclosure; the verification pipeline; 19 shipped templates (machinery, file, signature, and audit families). Library only; ships zero WASM bytes.
aqua-template-registry0.1.0Distribution layer: a publisher-DID-scoped template registry, as a Rust library and an HTTP service (registryd), with publisher tooling and a subscribing consumer client. A hosted instance runs at aqua-registry.inblock.io, provided without SLA.

Both are licensed Apache-2.0. aqua-rs-sdk-core is a compatible subset of the full aqua-rs-sdk: trees created and signed with the core verify in the full SDK and vice versa, enforced by an integration test suite that runs both crates side by side.

What this release deliberately excludes

The core profile is explicit about what it does not do, and it is never silently permissive about it:

Excluded capabilityBehavior in this release
WASM compute executionRejected, fail closed. Any template whose chain carries a verification (compute) section produces COMPUTE_UNSUPPORTED: the core has no WASM runtime and refuses to guess. The registry service likewise refuses definitions containing a WASM verification section.
Full-SDK template setAnswered explicitly. Template hashes published by the full SDK but not shipped by the core sit in a built-in lookup; a resolution miss answers with an explicit "not supported for verification by aqua-rs-sdk-core: it depends on <module>" message instead of guessing.
TimestampingNot created; classified on input. The core creates no timestamp revisions and ships no TSA or EVM providers. Incoming timestamp revisions are still classified: the strict() policy rejects them, offline() tolerates them with a warning.
Policy engineNot included. The core's VerificationPolicy presets (strict(), offline(), debug()) are part of the verification pipeline, not a policy engine; the policy engine belongs to the full SDK.
Daemon / forest runtimeNot included. The core is a library; there is no long-running service runtime.
Template registry clientNot bundled. Template distribution is the separate aqua-template-registry project; retrieved templates are passed to the core as explicit template sources.

The invariant behind this table: the core is never more permissive than the full SDK under the same verification policy.

Registry scope

The registry deliberately validates coherence, not trustworthiness: every write is a signed Aqua tree that authenticates itself, vendor namespaces are first-come-first-served, and templates are identified by hash — names are display data. In the registry's own words, "'this registration is coherent' and 'this publisher is someone you should trust' are different claims, and only the first is in scope for a registry." Out of scope by design: on-chain registration, trust stores or ENS/DNS resolution, freshness or liveness guarantees, cross-registry mirroring and federation, transport security in the built-in client, and plugin/WASM distribution. Templates on the hosted instance may be wiped without notice while it runs under experimental conditions.

Versioning policy

  • Both crates are at version 0.1.0. Version numbers have not been increased since the initial release.

  • No backward-compatibility guarantees are provided yet. Breaking changes are expected and may occur without notice.

  • Neither repository carries release tags, a changelog, or a semantic-versioning policy yet.

  • Not on crates.io yet. Publication is planned; until then, install via git dependency:

    Code
    toml
    1[dependencies]
    2aqua-rs-sdk-core = { git = "https://github.com/inblockio/aqua-rs-sdk-core" }
  • No MSRV commitment. aqua-rs-sdk-core declares no minimum supported Rust version; aqua-template-registry currently sets rust-version = "1.85" in its manifest, but neither value is a compatibility commitment.

Known upcoming changes

Two changes are already announced and worth planning for:

  1. Audit templates move to registry-only distribution. The sanctioned distribution channel for the audit/agent template family is the template registry. This release still carries in-crate copies (they back the compatibility test suite), so built-in resolution of these templates still succeeds today — do not depend on it: it is not part of the supported contract, and removal from the catalog is a tracked breaking change.
  2. Audit-family harmonization will change template hashes. The audit templates in this release are a deliberate, test-bounded fork of the full SDK's family, pending upstream harmonization. When the two families are reunified, the audit template hashes will change. Treat current audit template hashes as pinned per release, not as permanent identifiers.

Relationship to Aqua v3

Aqua Protocol v3 is the stable, production release, built around a JavaScript/TypeScript SDK. It is documented under v3 documentation and is unaffected by v4's experimental status.

If you needUse
A production deployment todayv3 — stable JavaScript/TypeScript SDK
Timestamping / witnessing todayv3 — the published v4 core profile excludes timestamping
The v4 data model in Rust: typed objects, selective disclosure, template distribution, agent audit trailsv4 — accepting experimental status and breaking changes

Where future components will appear

The full aqua-rs-sdk — which extends the published core with the WASM compute runtime, the policy engine, the daemon runtime, and timestamping providers — is scheduled for a later publication. Until then, the capabilities listed above remain outside the published surface, with the fail-closed behavior described.

The Aqua CLI and the hosted Aquafier application belong to the v3-era toolchain today; they are not part of the v4 release. For current CLI and Aquafier usage, see the v3 tooling documentation.

See also

  • Welcome — what Aqua Protocol v4 is
  • aqua-rs-sdk-core — the published crate in detail
  • Template Registry — the distribution layer
  • Verification — policies and decision points in detail
  • Aqua v3 introduction — the stable release
Edit this pageReport an issue
Previous
Core Concepts
Next
aqua-rs-sdk-core

Documentation

  • Getting Started
  • Protocol Reference

Community

  • GitHub

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

On this page

Specification statusWhat this release containsWhat this release deliberately excludesRegistry scopeVersioning policyKnown upcoming changesRelationship to Aqua v3Where future components will appearSee also