Skip to content

v0.11.0 — the verifiers come from libid-contracts

Choose a tag to compare

@xgreenx xgreenx released this 14 Sep 22:13
· 22 commits to main since this release
65eb28b

The ceremony verifiers now come from libid-contracts. bb no longer runs in this repo, and nothing
is generated here at all.

Changes

  • Pins libid-contracts / libid-identity / libid-profiles 0.10.0 → 0.12.0.
  • Deletes scripts/vendor-artifacts.sh, the vendor-artifacts CI action and circuits-manifest.json.
    Building this repo needs neither forge nor bb.
  • ceremony.rs is replaced by circuits.rs: bindings, artifacts, Circuit and Initializer come
    from the crate, and this repo only decides where things land.
  • Libraries deploy through Libraries::deploy — CREATE2, address derived from the bytecode, so a
    re-run and any later circuit find the same pair instead of deploying their own.
  • Platform Verifiers initialize through Initializer::call, which checks the contract's own rules
    before a transaction is built.
  • plan, --print-addresses and the apply summary list the libraries.

Addresses

The canonical table is unchanged — the factory and proxy artifacts are byte-identical in 0.12.0. Only
the circuit verifiers move, because their names now carry the circuits version:

contract was now
bearer-link verifier 0x21c26fde…1879 0xab8c8aabbcd921a8bd944ca693cd2426369d702f
oidc-google verifier 0xfe6de589…2ba6 0xc1150bc7e095aa56654b5c9f6b4561c1751b8352
RelationsLib nonce-dependent 0x306319f854a5596e1e9e2ec59f99f82ea48abeef
ZKTranscriptLib nonce-dependent 0x7bb464aa25203cc5b199e0fd7a4258580d71d2a1

libid-circuits 0.3.0 and 0.4.0 carry the same verification keys, so every artifact is byte-identical
to what was vendored here. Only the verifiers' code hashes change, through the library addresses they
now carry.

Known

An existing deployment is not migrated. A later apply deploys the new pair and rotates the affected
trust roots; the previously deployed verifiers stay on chain, unreferenced.