Binary tower fields
AES and Keccak are native to the field, and arithmetic is constant-time by default. The tower runs from GF(2) to GF(2^128), with PMULL on aarch64.
Proving Stack · 01 Prove and verify
Generate zero-knowledge proofs on the phone that holds the private data.
Write zero-knowledge programs in Rust and prove them in linear time and bounded memory over binary fields, with no trusted setup.
Apple M3 Max, public prover build with table-math, zero knowledge on, best of three runs. All benchmarks
Proving one ML-DSA-65 signature verification peaks at 202 MiB. Hekate streams through the trace, folds in place and discards each segment once it is proved, and it encodes one table's codewords at a time.
AES and Keccak are native to the field, and arithmetic is constant-time by default. The tower runs from GF(2) to GF(2^128), with PMULL on aarch64.
The commitment is hash-based and needs no trusted setup: Brakedown with a Reed-Solomon row code over an additive binary-field FFT. The Merkle tree covers encoded columns only, and the raw trace is never hashed.
Your program carries columns and rows only for the chiplets it attaches. Keccak, AES, SHA-256, RAM, NTT, ML-KEM and ML-DSA run as independent AIR tables, each with its own trace and height, under one commitment and linked by a LogUp bus.
Keccak commits its 1,600 state bits as 25 physical 64-bit columns, where a layout with one column per bit would need 1,600. The bits expand just in time in registers.
Attach a chiplet to your program and prove the operation without revealing the key, the signature or the plaintext. Each chiplet is built to its NIST or IETF specification.
hekate-gadgets: 32- and 64-bit integer arithmetic, RAM and ROM chiplets.All benchmarksFour steps from a Rust program to a verified proof, shown on the Fibonacci example that ships with Hekate. You never touch Sumcheck or Brakedown directly.
use errors;
use IntArithmeticChiplet;
use ;
use FixedShape;
use ChipletDef;
use ;
type F = Block128;
use errors;
use ;
use ;
use ;
const PHY_VAL_A: usize = 0;
const PHY_VAL_B: usize = 1;
use Config;
use InnerProof;
use ;
use prove;
use ;
use Error;
use Config;
use InnerProof;
use DefaultHasher;
use Transcript;
use ProgramInstance;
use CircuitProgram;
use HekateVerifier;
Hekate's open code is AGPL-3.0-only; its signed prover binary is free. A product shipped under other terms, open source or closed, needs a commercial license.
The verifier, the core SDK and every cryptographic chiplet. Read and audit the code that decides whether a proof is valid.
The prover ships as a signed shared library for macOS, Linux, iOS and Android on ARM64, with SHA-256 hashes and Ed25519 and ML-DSA-65 signatures. The AGPL linking exception covers combining it with open code.
Pro adds the 128-bit build and a reply within two days; Enterprise adds pluggable ZeroCheck kernels, customization and a 24/7 support line.
aarch64Production · PMULL, NEONx86_64Software fallbackWASMPlannedhekate-mathBinary tower field arithmetic, constant-time, PMULL on aarch64. The mathematical core.hekate-cryptoHash functions, Merkle trees and the Fiat-Shamir transcript. BLAKE3 by default, SHA-256 or SHA3-256 by feature.hekate-coreConfiguration, execution traces and proof types: Config, TraceBuilder and InnerProof.hekate-programThe circuit DSL: columns, constraints, fixed columns, public inputs, chiplets, LogUp buses and program ids.hekate-sdkPreflight diagnostics and the proof wire format. Preflight names what fails before you spend a proof.hekate-verifierThe verifier, in pure Rust. Checks a program's constraints, pinned cells and bus relations over the committed tables.hekate-prover-sysOpen FFI shim. Links the signed prover cdylib over a stable C ABI; the only crate that can call the prover.hekate-gadgetsBase AIR chiplets and atoms: 32-bit integer arithmetic, RAM, ROM and the bignum modexp the RSA chiplet builds on.hekate-keccakKeccak-f[1600] chiplet plus SHA-3 / SHAKE. Virtual packing, ~16× memory savings.hekate-aesAES-128 / AES-256 round-function chiplet (FIPS 197) with an S-box ROM.hekate-sha2SHA-256 compression chiplet (FIPS 180-4). Bit-expanded B32 columns, degree 2, 1-16 rounds per row.hekate-rsaRSA-2048 PKCS#1 v1.5 signature statements (RFC 8017) over the modexp and SHA-256 chiplets.hekate-pqcML-KEM KeyGen, Encaps and Decaps and ML-DSA verification (FIPS 203 / 204) over NTT, Sampler, Codec tables.hekate-mobileWraps a Rust prover into a signed iOS .xcframework / Android .aar with a typed Swift / Kotlin API.hekate-scribbleTrace-mutation fuzzer. Tampers a valid trace, panics if your constraints miss the tamper.APIs, ABIs and cryptographic signatures still change without notice, and the workspace has not been independently audited. Build and experiment with it today; do not deploy it to mainnet yet.
Soundness and SecurityHekate is a zero-knowledge proof system written in Rust. It proves computations over binary tower fields in GF(2^128) with Sumcheck and Brakedown commitments, in linear time and bounded memory: proofs can be generated on phones and edge devices instead of servers.
No. Brakedown commitments are built from a linear code and a Merkle tree: there is no setup ceremony and no secret to destroy.
Signed prover builds ship for macOS, Linux, iOS and Android on ARM64. aarch64 is the production target, accelerated with PMULL and NEON; x86_64 runs a software fallback and WASM is planned. Mobile apps get the prover through the ZK Toolkit for iOS & Android.
The verifier, the core SDK and the cryptographic chiplets are open source under AGPL-3.0-only. The prover is a free proprietary binary, and a linking exception under AGPL section 7 lets open code call it.
Only if your product ships under terms other than AGPL-3.0. An open-source protocol under another license needs one, and a closed-source product does too. A product under AGPL-3.0 uses Hekate free. The Pricing page compares the tiers.
Not yet. The workspace has not been independently audited and its APIs still change: treat it as pre-production software.
A few megabytes for typical workloads: about 1.3 MiB for one ML-DSA-65 signature verification with zero knowledge on.
Yes, with Charon ZK Engine. It wraps each Hekate proof into a smaller form and accumulates any number of wrapped proofs into one result that keeps the same size, checked once. Charon will be provided as SaaS.