Elixir client for the metamorphic-log transparency-log engine.
MetamorphicLog wraps the audited metamorphic-log Rust crate via precompiled
Rust NIFs — no Rust toolchain, no C compiler, no system packages required. It
surfaces the engine's verification + monitor SDK plus the deterministic
ingestion primitives, byte-for-byte compatible with the browser WASM SDK
and the native core.
Verification-focused
This package verifies and recomputes; it does not run a hosted log. All
cryptography is the single-source-of-truth metamorphic-crypto core.
Modules
MetamorphicLog.Proof— RFC 6962/9162 inclusion & consistency proofsMetamorphicLog.Checkpoint— signed tree heads (parse/verify + proofs)MetamorphicLog.Note— C2SP signed-note verification (Ed25519 + hybrid PQ)MetamorphicLog.Coniks— CONIKS key-transparency lookup/absence proofsMetamorphicLog.Commitment— SHA3-512 commitment verificationMetamorphicLog.Policy— signed namespace policy + declared==observedMetamorphicLog.Leaf— canonicalmosslet/key-history/v1leaf encodingMetamorphicLog.Ingest— dedup keys, flush geometry, Merkle recomputation
Wire format
Binary values (hashes, roots, proof nodes, keys, openings) are base64-encoded strings; checkpoint/note bodies and verifier keys are UTF-8 text. This matches the WASM SDK and is what makes cross-target digests identical.
Quick start
# Verify an inclusion proof against a verified checkpoint
{:ok, %MetamorphicLog.Checkpoint{}} =
MetamorphicLog.Checkpoint.verify(note_text, [vkey])
:ok =
MetamorphicLog.Checkpoint.verify_inclusion(
note_text, [vkey], leaf_index, leaf_hash, proof
)
Summary
Functions
Convenience delegate for MetamorphicLog.Proof.verify_consistency/5.
Convenience delegate for MetamorphicLog.Proof.verify_inclusion/5.
Functions
@spec verify_consistency( non_neg_integer(), non_neg_integer(), [String.t()], String.t(), String.t() ) :: :ok | {:error, String.t()}
Convenience delegate for MetamorphicLog.Proof.verify_consistency/5.
@spec verify_inclusion( non_neg_integer(), non_neg_integer(), String.t(), [String.t()], String.t() ) :: :ok | {:error, String.t()}
Convenience delegate for MetamorphicLog.Proof.verify_inclusion/5.