Skip to content

Verifying a signed contract

Every sealed contract mints a certificate with a public verification page: /verify/<certificateId>. Anyone with the certificate ID can confirm that the agreement is authentic and unaltered — no login required.

The page checks the certificate and renders one of two outcomes.

Authentic — a green check, with: “Signed by [name] on [date] — unaltered. The agreed content and the signed record both match the sealed certificate.”

Could not verify — a red mark, meaning the seal didn’t verify or the agreed content no longer matches what was signed.

Below that, a details panel lists:

  • Signer — name and email.
  • Signed at — the signing timestamp (UTC).
  • HMAC seal — Verified / Failed / Not sealed.
  • Content hash — Matches / Mismatch.
  • PAdES signature — Present (with serial) / Not present.
  • The certificate ID and document SHA-256.

A Download certificate PDF button on the page provides the certificate document.

  • Certificate not found — no certificate matches that ID; check the ID and try again.
  • Could not verify (service) — the verification service couldn’t be reached; try again shortly.

The signer gets the verify link on their post-signing hand-off (see The signing flow). You can share a certificate ID with anyone who needs to confirm the agreement — the page is public and read-only.