Skip to content

crypto-wasm-ts

TypeScript abstractions over a Rust crypto library’s WASM wrapper, for verifiable credentials.

Contributor, 2024 – 2025

  • TypeScript
  • WebAssembly
  • BBS+
  • Accumulators
  • Composite proofs
Open on GitHub

What it is

Dock Labs’ crypto library, written in Rust, implements the primitives anonymous credentials are built from. BBS and BBS+ signatures sign a list of messages and let the holder prove the signature while revealing only some of them. Accumulators are a constant-size set with membership proofs. A composite proof system combines them with range proofs, verifiable encryption and predicates written in Circom.

crypto-wasm-ts is the TypeScript layer over all of that: classes and types a web or Node developer can use without touching the WebAssembly calls underneath.

What I did

I came to it as a user, building verifiable-credential proofs of concept at C4DT, and started where users notice the gaps: the documentation. I rewrote the examples for selective disclosure and composite proofs so they match what the code does, drew the line between BBS and BBS+ where the README blurred it, and fixed a missing export for the in-memory accumulators.

In 2025 the work moved to keeping the library current: bringing in each new release of crypto-wasm, updating the typings where the Rust side had changed, dropping support for old presentation formats, and modernising the build and the CI matrix.

More in the open.

The rest of what I’ve built where anyone can read it.

Want to build the next one together?

Open-source, research or a product with real stakes — I’d like to hear about it.

Write to me on LinkedIn