Getting started

Three bindings shipped today. Pick your language.

Ruby

gem install confium

The native extension is built at install time via rake-compiler. You need Ruby ≥ 3.1 and Rust stable. See the Ruby installation guide.

Quickstart: build a Sinatra verifier app in ~60 lines → Sinatra verifier quickstart.

Rust

cargo add confium-core

The cdylib is built as target/{debug,release}/libconfium.{so,dylib,dll}. See the Rust installation guide.

Quickstart: walk through threshold signing with FROST-P256 → threshold-signing.mdx.

WASM

npm install @confium/confium-wasm

Browser / Node.js verifier for composite signatures, transparency logs, attribute predicates, and X.509 / CMS structures. The WASM package is verifier-only — it cannot sign.

Quickstart: load a composite signature and verify it in the browser:

import init, { CompositeSignature } from "@confium/confium-wasm";
await init();
const sig = CompositeSignature.from_json(jsonString);
const result = sig.verify(messageBytes, {
  "Ed25519": "builtin",
  "ECDSA-P256": "builtin",
  "ML-DSA-65": (pk, msg, sig) => myExternalVerifier(pk, msg, sig),
});
console.log(result.all_verified);

Concepts

If you’re new to threshold cryptography:

Specs

For normative specifications, see the specs repository.