Longfellow Docs
AI-generated documentation. This site was generated with AI assistance and is maintained for personal use only. It is not affiliated with, supported by, or endorsed by Google and/or Longfellow authors. Content may be incomplete or inaccurate — always cross-reference the upstream source and the libzk IETF draft for authoritative information.
An unofficial reference and guide for building zero-knowledge systems with Longfellow , Google’s C++ ZK library for legacy identity standards and attestation formats.
Who this site is for
You are a developer or researcher who wants to use Longfellow’s primitives — field arithmetic, a circuit authoring surface, sumcheck, and the Ligero commitment — to build your own ZK system. The identity use cases that ship inside the library (ISO 18013-5 mdoc) appear here only as a worked case study; the focus is on the primitives themselves.
How to read this site
Four sections, read in order if you are starting fresh:
- Getting Started — install and build Longfellow, run a “hello circuit” end-to-end, and get a conceptual map of the proof system.
- Guides — composition patterns that cut across multiple modules. This is where you learn how the primitives fit together to express a statement.
- Reference — per-module technical documentation, organized by layer (algebra → arrays → circuits → proof system → serialization).
- Case Studies — the mdoc credential system, treated as a worked example of everything above.
About this documentation
Longfellow’s upstream source is vendored here as a read-only git submodule and referenced throughout. Where a page needs authoritative usage examples, it links directly to the test files under longfellow-zk/lib/**/*_test.cc on GitHub.
This site is not affiliated with Google. For the canonical specification, see the libzk IETF draft and the paper Anonymous credentials from ECDSA .