OpenAttestation

  • Name: OpenAttestation
  • URL: https://github.com/Open-Attestation/open-attestation
  • Category: verifiable-documents framework / document-attestation-and-notary infrastructure / transferable-record substrate
  • Tags: ethereum-ecosystem
  • Summary: OpenAttestation is a lower-layer document-trust framework, not a generic credential app. The useful split is between document integrity, issuer identity, issuance publication, revocation control, selective disclosure, and optional transferability. Keep it because those layers stay visible instead of getting flattened into one certificate product.
  • What it does:
    • Wraps arbitrary JSON documents into verifiable documents with Merkle-root-based integrity proofs
    • Supports batch issuance, where multiple documents share one Merkle root while preserving per-document target hashes and proofs
    • Allows publication either through onchain smart-contract registries or through offchain digital signatures, which separates integrity proof from settlement cost
    • Verifies document signatures and Merkle inclusion proofs locally before any registry lookup
    • Supports data obfuscation so issuers or holders can remove selected fields while keeping the underlying document hash relationship intact
    • Provides Document Store smart contracts for issuance and revocation management of non-transferable documents
    • Provides Transferable Document Store contracts where individual documents become ERC-721-style assets, optionally including soulbound issuance behavior
    • Exposes admin, issuer, and revoker roles as separate smart-contract permissions rather than flattening issuance and revocation into one operator role
  • Key claims:
    • The OpenAttestation README describes the framework as attestation and notary infrastructure for any document type on the blockchain, which is the clearest reason to catalog it as reusable document-verification middleware rather than as one sector-specific app.
    • The wrapping flow is the main reusable mechanism. The README says wrapped documents embed a Merkle root and proofs so provenance can later be checked against either a blockchain-published root or a cryptographic signature, which makes integrity, publication, and issuer identity separable layers.
    • The framework’s support for both smart-contract publication and pure digital signatures matters analytically because it prevents document attestation from collapsing into one fixed trust model. Some users can inherit blockchain registries; others can use signature-based issuance without onchain fees.
    • The obfuscateDocument utility is a meaningful control-surface clue because it shows OpenAttestation is not only about immutable publication. It also packages selective disclosure as a first-class feature while preserving document provenance.
    • The Document Store contracts reveal another important split. The README for document-store distinguishes ordinary document stores from transferable document stores, which means issuance/revocation and ownership-transfer semantics can be composed differently rather than bundled into one generic credential primitive.
    • The transferable branch is especially useful for comparison because each transferable document is effectively an ERC-721 record, and the contracts also allow soulbound issuance. That makes ownership, transferability, and revocation explicit design choices rather than hidden app logic.
    • OpenAttestation belongs in the active corpus because it makes document trust legible as content hashing, issuer identity proof, issuance publication, revocation control, transferability, and disclosure policy. If it stayed folded into generic credential or document verification coverage, those lower-layer control surfaces would be easy to miss.
  • Whitepaper: No standalone whitepaper surfaced in this pass. The strongest primary materials were the OpenAttestation framework README and the companion Document Store smart-contract README; see ../whitepapers/openattestation-primary-sources-2026-05-12.md.
  • Sources:

Internal linkages