Skip to content

Installation

Achronyme is written in Rust. You need a recent Rust toolchain (1.77+).

Terminal window
git clone https://github.com/eddndev/achronyme.git
cd achronyme
cargo build --release

The binary is at target/release/ach.

Terminal window
cargo test --workspace # 718 unit tests
bash test/run_tests.sh # 54 integration tests

For full Groth16 proof generation with ach circuit, install snarkjs:

Terminal window
npm install -g snarkjs

Achronyme can generate .r1cs and .wtns files directly consumable by snarkjs:

Terminal window
snarkjs groth16 setup circuit.r1cs pot12_final.ptau circuit.zkey
snarkjs groth16 prove circuit.zkey witness.wtns proof.json public.json
snarkjs groth16 verify verification_key.json public.json proof.json

Achronyme includes native Groth16 (ark-groth16) and PlonK (halo2-KZG) backends. No external tools needed for prove {} blocks — proofs are generated in-process.

For prove {} blocks with Groth16 via snarkjs, you need a Powers of Tau file:

Terminal window
ach run script.ach --ptau pot12_final.ptau

Without --ptau, prove blocks still compile the circuit, generate the witness, and verify constraints locally (returning nil instead of a proof object).