Aqua Protocol Tooling & Components
Overview of Aqua Protocol v1.2 tools and components
Aqua Protocol Tooling & Components
This document provides a comprehensive overview of all the tools and components available in the Aqua Protocol ecosystem version 1.2.
Aqua CLI
Aqua CLI is a command line utility that enables you to create, verify, witness, and sign aqua chains. There are two implementations available:
Rust Implementation (Recommended)
The Rust CLI is the stable implementation and the recommended choice for getting started with the Aqua protocol.
Installation:
- Via cargo:
cargo install aqua-cli - Building from source:
Codebash1git clone git@github.com:inblockio/aqua-cli-rs.git2cargo build --release3cd target/release/ && cp aqua-cli /usr/bin
Repository: https://github.com/inblockio/aqua-cli-rs
Key Features:
- Verify aqua chain JSON files
- Generate aqua chains
- Generate validation reports
- Sign and witness aqua chains
Available Commands:
-aor--authenticate: Verify an aqua JSON file-sor--sign: Sign an aqua JSON file-wor--witness: Witness an aqua JSON file-for--file: Generate an aqua JSON file-vor--verbose: Provide logs about the process-oor--output: Save output to file (JSON, HTML, or PDF)-lor--level: Define validation strictness (1 or 2)-dor--delete: Remove revision from an aqua JSON file-cor--count: Specify number of revisions to remove
Environment Variables:
aqua_domain: Random alphanumeric valueaqua_network: "sepolia", "holesky", or "mainnet"verification_platform: "alchemy", "infura", or "none" (default: "none")aqua_alchemy_look_up: true or false
Example Usage:
1aqua-cli -a chain.json2aqua-cli -s chain.json --output report.json3aqua-cli -w chain.json --output report.json4aqua-cli -f document.pdf5aqua-cli --file image.png --verboseJavaScript Implementation
The JavaScript implementation is used to quickly prototype ideas.
Repository: https://github.com/inblockio/aqua-verifier-js
:::warning If you are just getting started, use the Rust CLI. The JS version is primarily used to prototype ideas. :::
Environment Setup:
- Install Node.js (latest version)
- Ensure you have Yarn or npm installed
Installation:
1git clone git@github.com:inblockio/aqua-cli-js.git2cd aqua-cli-js && npm i && npm buildConfiguration:
Create a credentials.json file with the following structure:
1{2 "mnemonic": "sample sample sample sample sample sample sample sample sample sample sample author matter",3 "nostr_sk": "xxxxxxxxxxxxxxxx",4 "did:key": "xxxxxxxxxxxxxx"5}Usage Commands:
Notarize:
1./notarize.js [OPTIONS] <filename>Options:
--sign [cli|metamask|did]: Sign with Ethereum seed phrase, MetaMask, or DID key--witness-eth: Witness to Ethereum on-chain with MetaMask--witness-nostr: Witness to Nostr network--witness-tsa: Witness to TSA DigiCert--link <filename.aqua.json>: Add a link to an AQUA chain as a dependency
Verify:
1./verify.js [OPTIONS] <page title>2# or3./verify.js [OPTIONS] --file <offline file.json or file.xml>Options:
-v: Verbose--server: The URL of the server (e.g., https://pkc.inblock.io)--ignore-merkle-proof: Ignore verifying the witness merkle proof--file: The file to read from for the data
Aqua Container (Aquafier)
Aqua Container is a Rust web application with a React frontend that implements the Aqua protocol. It enables data to be signed, witnessed, and verified through a web browser interface.
Try it online: https://aquafire.aqua-protocol.org/
Technical Details:
- Backend: Axum web server in Rust
- Frontend: React (TypeScript)
- Database: SQLite with Diesel ORM
- Communication: HTTP protocol
- File size limit: 20 MB maximum
- Docker container available for quick deployment
Repository: https://github.com/inblockio/aqua-verifier-rs
The container is built using the same libraries as the CLI, providing all CLI capabilities with a graphical interface.
Aqua Verifier (Chrome Extension)
The Aqua Verifier is a Chrome extension that can be used to verify aqua chains directly in your browser. This is the easiest and fastest way to get started with the Aqua protocol.
Installation: Available on the Chrome Web Store
Personal Knowledge Container (PKC)
The Personal Knowledge Container was a prototype implementation of Aqua protocol v1.1.
:::note For information about PKC, please refer to version 1.1 documentation. :::
Aqua Guardian
Aqua Guardian is a security gateway designed to exchange Aqua-Chains and enforce policies of Aqua-Contracts. It provides secure connectivity between Guardians and verifies the integrity of Aqua storage containers.
:::warning The Aqua Guardian still uses Aqua protocol version 1.1, making it incompatible with protocol 1.2 and all tools that use protocol 1.2 (such as Aqua Container and Aqua CLI). :::
Why Two CLI Implementations?
The JavaScript implementation enables rapid prototyping of new ideas, while the Rust implementation provides stability and production-ready features. This dual approach allows the team to experiment quickly while maintaining a reliable tool for end users.
Getting Started
For most users, we recommend starting with either:
- Aqua Verifier Chrome Extension - For the quickest and easiest start
- Aqua CLI (Rust) - For command-line users who want full control
- Aqua Container Sandbox - For a web-based graphical interface
All tools support the core Aqua protocol operations: creating, signing, witnessing, and verifying aqua chains to ensure data integrity.
