diff --git a/ERCS/erc-8326.md b/ERCS/erc-8326.md index ec15822e897..08ec3595a3e 100644 --- a/ERCS/erc-8326.md +++ b/ERCS/erc-8326.md @@ -4,7 +4,8 @@ title: Canonical Document Bundle Anchor description: A deterministic document-entry bundle hash and subject-scoped anchoring interface with supersession history author: Chris Turner , David Hay (@david-hay), Reagan Simpson (@krumg111), Collins Musyimi (@Musyimi97) discussions-to: https://ethereum-magicians.org/t/erc-8326-canonical-document-bundle-anchor/28935 -status: Review +status: Last Call +last-call-deadline: 2026-10-19 type: Standards Track category: ERC created: 2026-07-05 @@ -13,8 +14,9 @@ requires: 165 ## Abstract -This ERC defines a deterministic manifest and anchoring interface for -commitments to bundles of off-chain documents. Each document is represented by +This Ethereum Request for Comments (ERC) defines a deterministic manifest and +anchoring interface for commitments to bundles of off-chain documents. Each +document is represented by a fixed-width entry containing a content hash, document role, media-type hash, filename hash, and normalization-profile identifier. Entries are placed in a total order and hashed under a schema-version prefix to produce one `bytes32` @@ -245,6 +247,8 @@ total order. ### Anchor Interface ```solidity +pragma solidity ^0.8.20; + interface IDocumentBundleAnchor { struct AnchorRecord { bytes32 bundleHash; @@ -384,6 +388,8 @@ Administrative slot recovery is OPTIONAL. A registry that supports principal reassignment MUST implement: ```solidity +pragma solidity ^0.8.20; + interface IDocumentBundleAnchorRecovery { event SlotPrincipalAssigned( bytes32 indexed subjectId, @@ -527,13 +533,6 @@ those files. ### Prior Art -The Document Management proposal numbered 1643 defines document references for security tokens. It stores individual -named documents rather than a deterministic, schema-versioned bundle manifest. - -[ERC-5289](./eip-5289.md) defines document signing and verification. This ERC -defines deterministic bundle commitments and supersession rather than a signing -workflow. - [ERC-5732](./eip-5732.md) defines a generic commit-reveal mechanism. It can be used as a privacy layer around publication but does not define document entries or bundle hashing. @@ -548,22 +547,6 @@ redemption flow but does not define deterministic bundle manifesting. flow. It can retrieve material referenced by an anchor but does not determine how a document bundle commitment is derived. -The Ethereum Attestation Service provides generic schema-based attestations. -Such attestations can reference a bundle hash, but they do not define this -manifest or supersession model. - -[RFC 8785](https://www.rfc-editor.org/rfc/rfc8785) defines deterministic JSON -serialization and is used directly by `PROFILE_JSON_RFC8785`. - -[Canonical XML 1.1](https://www.w3.org/TR/2008/REC-xml-c14n11-20080502/) -defines deterministic XML serialization and is used directly by -`PROFILE_XML_C14N11`. - -W3C Verifiable Credential Data Integrity defines proof transformation, -canonicalization, hashing, and verification pipelines for verifiable -credentials. This ERC applies a document-entry manifest and Ethereum anchoring -interface to arbitrary document commitments rather than credential proofs. - ## Backwards Compatibility This ERC introduces new interfaces and does not change existing token or @@ -717,7 +700,7 @@ profile and reproduce the exact transformation. ### Canonicalization Boundary The Solidity hashing library receives document-entry fields and does not parse -or canonicalize JSON, XML, PDF, images, filenames, or MIME types. A caller can +or canonicalize JSON, XML, PDF, images, filenames, or media types. A caller can submit a hash while falsely claiming that a profile was followed. Consumers must reproduce normalization and entry derivation off-chain.