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.