Draft, route, counter-sign. The finished document is a self-contained cryptographic artifact — verifiable offline, independent of any SaaS platform still being around in ten years.
For NDAs, offers, MSAs, SOWs, waivers, policy acknowledgments, board resolutions.
Four steps. Every signature is an Ed25519 signature over the document hash. The executed original bundles the document and every signer's signature into one verifiable artifact.
Choose from NDA, offer letter, consulting agreement, MSA, SOW, waiver, board resolution. Or upload your own PDF. Typed fields (party, date, dollar amount, jurisdiction) become structured data, not freeform text.
Each signer gets a URL. They review the document, see the full text, and sign with their Ed25519 key (browser WebAuthn, hardware key, or Verita-family identity). Ordering is declared and enforced.
Each signature commits to the document hash and the hashes of prior signatures — so a signer after you can't silently modify what you signed. Witness timestamp is collected at execution.
The final executed original is the PDF plus a small .sig.json bundle. Together, they're verifiable offline with any VeritaDoc client — or by hand against published spec — long after any vendor has gone.
Other e-sign tools cover the same signing workflow. The difference shows up ten years later, when you still need the audit trail but the vendor has been acquired, repriced, or shuttered.
.sig.jsonTyped-field templates so "effective date" is a date and "party name" is a party, not freeform text. Upload-your-own PDF is first-class too.
The verifier ships as a CLI and a library. It reads the PDF, the sidecar bundle, and tells you exactly who signed, in what order, and whether the document has been touched since.
Nothing is trusted by default. The verifier checks every signature against its signer's published key, walks the commitment chain to confirm ordering integrity, and validates the witness timestamp against an RFC 3161 trust root.
If the document was modified after signing, any signature was forged, or the ordering was tampered with, the verifier says so — and refuses to report "valid."
Published spec. Reference implementation. Reproducible from the ground up.
$ verita doc verify nda.signed.pdf nda.sig.json ✓ valid executed original document Mutual NDA (2026-Q2 template, v1.4) sha256 a3f1c2…9b4e signers 2/2 required, in declared order 1. ✓ J. Ramirez · Acme Robotics signed 2026-04-12T14:20:51Z 2. ✓ M. Chen · Northwind Consulting signed 2026-04-12T14:22:07Z (commits to prior signatures ✓) witness RFC 3161, Let's Timestamp CA ✓ 2026-04-12T14:22:07Z
VeritaDoc is the workflow sibling. It reuses the family's identity scheme and signature format; the routing and counter-sign layer is where the document-specific logic lives.