Verifiable document memory is a system property ensuring that every document an AI agent interacts with is sealed with a cryptographic proof of integrity and origin, allowing third parties to verify the interaction independently of the provider's active systems.
Standard application logs are entries stored in a vendor-controlled database. A third party cannot verify their integrity or detect if they have been modified, deleted, or backdated. Verifiable document memory commits every completed document event to a signed manifest, making any modification instantly detectable via standard signature verification.
A RAG citation is a text string generated by an LLM asserting what document it referenced. It is not cryptographic proof. Verifiable document memory generates a binary Merkle tree over the actual document chunks, allowing a third party to verify that a specific retrieved chunk is a mathematically proven portion of the original document.
For each document event that successfully completes (bundle status: complete), DocImprint generates a downloadable ZIP bundle containing the original files, a manifest.json with SHA-256 hashes and Merkle roots, and a signature.json with a secp256k1 (EIP-191) signature. Anyone can verify this bundle completely offline using standard cryptographic tools and published keys.
It is tamper-evident. Any modification to the evidence bundle's files or manifest invalidates the cryptographic hashes and signatures. This provides an absolute mathematical proof of integrity (tamper-evidence) but does not physically prevent modification or deletion (tamper-proof).
Conventional systems for AI agent interactions, such as Retrieval-Augmented Generation (RAG) pipelines or standard agent frameworks, log information about "what was read" in one of two ways: application logs inside the provider's infrastructure, or text citations returned by the LLM within its response.
Both mechanisms are assertions (claims) made by the system. A third party has no way to verify if the cited document actually contained that text, or if the database logs have been altered, deleted, or misreported by the system operator.
As autonomous AI agents are increasingly deployed in high-stakes and regulated industries — legal contract review, financial auditing, regulatory compliance, and medical record processing — simple assertions are insufficient. Verifiable document memory shifts the trust model from "trust the operator's infrastructure" to "verify the mathematical proof."
DocImprint implements verifiable document memory through a three-layered trust chain:
1. Content chunking and Merkle trees (merkle_version: 2) When a document is ingested and processed successfully, it is divided into discrete chunks. A binary Merkle tree is constructed over these chunks. This produces a single, unique Merkle root that represents the entire document content. It also allows the generation of compact, chunk-specific citation proofs (proof[]) that prove specific passages were part of the original document.
2. Tamper-evident manifest signatures (secp256k1 / EIP-191) All document metadata, content hashes, and Merkle roots are compiled into a canonical manifest.json. DocImprint cryptographically signs the SHA-256 hash of this manifest using standard secp256k1 private keys.
3. Out-of-band key publication for offline verification The public keys used for signing are published out-of-band at a well-known endpoint. Anyone can retrieve these keys, recompute the SHA-256 hashes of the downloaded manifest, walk the Merkle proofs, and recover the signer's public key offline using standard cryptographic libraries. No active API calls to DocImprint's servers are required to verify the integrity and origin of the evidence bundle.
DocImprint guarantees that evidence bundles are tamper-evident, not tamper-proof. Any alteration of the document content or manifest will cause the SHA-256 hashes to mismatch and the signature verification to fail. While this mathematically proves whether tampering has occurred, it does not prevent physical deletion of the files or unauthorized local modification of storage objects.
Standard RAG pipelines embed document chunks and retrieve them at query time. This answers "what does this document say?" but cannot answer "was this document captured unmodified?", "who created this chunk?", or "can I prove this passage to a third party?"
Verifiable document memory adds the provenance layer RAG omits:
| RAG | Verifiable document memory | |
|---|---|---|
| Retrieval | Yes | Yes |
| Citation source | Approximate (cosine match) | Exact (chunk_id + Merkle proof) |
| Tamper detection | No | Yes (manifest SHA-256 + signature) |
| Capture timestamp | No | Yes (captured_at + on-chain anchor) |
| Chain of custody | No | Yes (agent provenance logs) |
| Legal hold | No | Yes (PUT /v1/extract/:id/hold) |
For most question-answering use cases, RAG is sufficient. When answers must be defensible — to regulators, auditors, courts, or counterparties — verifiable document memory is required.
Standard application logs are entries stored in a vendor-controlled database. A third party cannot verify their integrity or detect if they have been modified, deleted, or backdated. Verifiable document memory commits every completed document event to a signed manifest, making any modification instantly detectable via standard signature verification.
Verify a bundle without trusting DocImprint servers:
bash# 1. Download the bundle ZIP curl -o bundle_ev_abc123.zip \ https://api.docimprint.com/v1/extract/ev_abc123/download # 2. Unzip and compute manifest hash locally unzip bundle_ev_abc123.zip -d bundle/ sha256sum bundle/manifest.json # 3. Verify signature.json against GET /v1/keys # EIP-191 over manifest_sha256 # 4. Check each artifact's hash matches the manifest jq '.artifacts[].sha256' bundle/manifest.json | while read hash; do echo "Checking $hash" done
The bundle is valid if the manifest SHA-256 matches, signature.json verifies against a key from GET /v1/keys, and each artifact hash matches file bytes.
For each document event that successfully completes (bundle status: complete), DocImprint generates a downloadable ZIP bundle containing:
Anyone can verify this bundle completely offline using standard cryptographic tools and published keys — no API key or active DocImprint account required.
curl -X POST https://api.docimprint.com/v1/extract \
-H "Content-Type: application/json" \
-H "X-Payment: <eip712-signed-usdc-transfer>" \
-d '{"source":"https://example.com/contract.pdf","mode":"extract","store":true}'