2026-09-18
Kaimeter v0.1.0: the aluminium rule bundle
We've tagged v0.1.0. It is one crate and no application: kaimeter-rules
writes the CBAM methodology for primary aluminium as code, with the provision
each rule comes from recorded beside it.
What it implements:
- Reporting-period identification - IR (EU) 2025/2547, Article 7.
- Sector-dependent mark-ups - IR (EU) 2025/2621, Article 4(2), as corrected by IR (EU) 2026/1740.
- Default-value selection, with the other-countries and Annex IV fallbacks.
- Precursor averaging under Articles 13-14.
- The Annex I scope table for aluminium, and the primary route with slope-method PFCs.
Every other sector is a stub.
The crate is no_std, does no I/O, and forbids floating-point arithmetic at
the lint level. Every quantity is an integer scaled by 10⁶ and held in an
i128; multiplication and division round half to even. The scale and the
rounding rule are themselves part of the bundle's identity, so an independent
implementation can reproduce every intermediate value exactly rather than
approximately.
The bundle has a hash
crates/kaimeter-rules is a rule bundle: its semantic files are serialised
canonically and hashed. Bundle 2026.2.0 is
sha256:cd4f4446cf09ac8c0b5bb5a5cf91dd774eeb885c034674c09507696f60604c27
and you can print it yourself from the tag:
cargo run -p kaimeter-rules --bin bundle-hash -- crates/kaimeter-rules
A test pins that value. Edit any semantic file - a rule, a parameter table,
bundle.json, the citation map - and the hash changes, and CI fails until the
constant is regenerated in the same commit. That is the property the paper
asks for: the declared figure and the rules that produced it travel together.
What is not in it
No prover. The first zkVM guest, which evaluates this bundle as witness, is
planned for v0.2 in November 2026, along with secondary aluminium and the
overvoltage method. Steel follows in v0.3, in Q1 2027; cement, fertilisers and
hydrogen after that. The crate is publish = false, so it is not on crates.io
-
build it from the tag.
-
Release: v0.1.0
-
Status: docs/STATUS.md
-
Paper: 10.5281/zenodo.22740284