Aqua ProtocolAqua Protocol
Aqua Protocol
Aqua ProtocolAqua

Documentation

Welcome to Aqua ProtocolQuick StartDevelopment GuideVersion v4 (beta)
Use Cases
Document VerificationIdentity AttestationAqua Protocol Use CasesSupply Chain Tracking
Development Tools
Aqua CLIAqua SDKAquafier API
Schema Reference
Aqua TreeFile IndexAqua Protocol Schema Reference
Revision Types

Documentation

Welcome to Aqua ProtocolQuick StartDevelopment GuideVersion v4 (beta)
Use Cases
Document VerificationIdentity AttestationAqua Protocol Use CasesSupply Chain Tracking
Development Tools
Aqua CLIAqua SDKAquafier API
Schema Reference
Aqua TreeFile IndexAqua Protocol Schema Reference
Revision Types
Docs
Dev Tools
Aqua CLI

Aqua CLI

Install a binary for notarization and verification

3 min read

The Aqua CLI is a command-line tool for creating, signing, witnessing, and verifying Aqua Protocol chains. Built with Rust, it provides a simple interface for working with Aqua chains without writing code.

Features

  • Chain Validation: Verify Aqua chain integrity and signatures
  • Signing: Add cryptographic signatures to revisions
  • Witnessing: Anchor chains to Ethereum networks (mainnet, Sepolia, Holesky)
  • Batch Operations: Process multiple chains efficiently
  • Environment Configuration: Flexible configuration via environment variables

Installation

From Source

Code
bash
1git clone https://github.com/inblockio/aqua-cli-rs
2cd aqua-cli-rs
3cargo build --release

The binary will be available at target/release/aqua-cli

Local Development

Code
bash
1cargo build
2cd target/debug
3./aqua-cli --help

Configuration

Configure the CLI using environment variables:

Code
bash
1# Optional: Domain identifier (auto-generated if not specified)
2export aqua_domain="your_domain"
3 
4# Network for witnessing (default: sepolia)
5export aqua_network="sepolia" # or "holesky" or "mainnet"
6 
7# Verification platform (default: none)
8export verification_platform="alchemy" # or "infura" or "self"
9 
10# Blockchain for witnessing (default: none)
11export chain="sepolia" # or "mainnet" or "holesky"
12 
13# API key for Alchemy or Infura
14export api_key="your_api_key"
15 
16# Path to keys file for signing
17export keys_file="path/to/keys.json"

Basic Usage

Get started with the CLI:

Code
bash
1# Display help
2./aqua-cli --help
3 
4# Verify an Aqua chain
5./aqua-cli verify --file chain.aqua.json
6 
7# Sign a chain
8./aqua-cli sign --file chain.aqua.json --keys keys.json
9 
10# Witness a chain on Sepolia testnet
11./aqua-cli witness --file chain.aqua.json --network sepolia

Keys File Format

Create a keys.json file for signing operations:

Code
json
1{
2 "private_key": "your_private_key_hex",
3 "wallet_address": "0xYourEthereumAddress"
4}

Security Note: Use a wallet without MetaMask for CLI operations. Keep your keys file secure and never commit it to version control.

Versioning

Ensure the CLI version matches your Aqua Protocol version:

  • Use CLI version 4.0.x for Aqua Protocol v4 chains
  • Use CLI version 3.x.x for Aqua Protocol v3 chains

Testing

The repository includes a test script for verifying functionality:

Code
bash
1# Grant execution permissions
2chmod +x test_aqua_cli.sh
3 
4# Run tests
5./test_aqua_cli.sh

Use Cases

  • Quick Verification: Validate chain integrity without building applications
  • CI/CD Integration: Automate verification in deployment pipelines
  • Batch Processing: Process multiple chains in scripts
  • Development Testing: Quickly test chain creation and verification
  • System Administration: Manage Aqua chains from the command line

Repository

GitHub: github.com/inblockio/aqua-cli-rs

Documentation

For more information about Aqua Protocol v4:

  • Schema Reference

Version

Current Version: 4.0.0

Built using the Aqua Rust SDK for Aqua Protocol v4 support.

Edit this pageReport an issue
Previous
Supply Chain Tracking
Next
Aqua SDK

Documentation

  • Getting Started
  • API Reference

Community

  • GitHub
  • Discord

Copyright © 2024 Aqua. All rights reserved.

On this page

FeaturesInstallationFrom SourceLocal DevelopmentConfigurationBasic UsageKeys File FormatVersioningTestingUse CasesRepositoryDocumentationVersion