ProvenDB adds metadata to each document which includes a hash value and effective version numbers. Normally, this metadata is suppressed. However, the showMetadata command can be used to request that metadata be displayed in query results. This command takes effect across all sessions for a given user.

ProvenDB maintains a set of collections that are used to define version information and record proofs. These collections cannot be modified by ProvenDB users but can be viewed normally. The diagram below documents these collections.


User collection metadata

The attributes added to each user collection in the _provendb_metadata embedded document are listed below




Hash value for the document. The hash includes metadata attributes but (of course) not the hash itself


The database version in which this version of the document first became visible


The database version in which this version of the document last became visible


If true, the contents of this document have been forgotten


the "ProvenDB" _id - this is the same for all versions of a document


The actual MongoDB "_id" of the document. Unlike the provenDB _id , this value changes every time a document is updated.

provenDB metadata collections

Below is a definition of each ProvenDB metadata collection




Contains details of each database version including it's timestamp and status


Contains details of each proof created in the database including it's Chainpoint proof, collections included in the proof and bitcoin block and tranaction ids


Contains collection-level locking information.


Contains a single document that defines the current version status


Records the status of each forget request.


Contains details of document proofs that have been requested. This acts mainly as a cache to avoid recalculation of document proofs should the same document proof be requested more than once

What’s Next