Creating proofs

To create a proof of existence for a file, you need to create what we call an ‘anchor’. An anchor is basically a proof creation request. To do so, you only need to compute the SHA256 hash of the file client side and choose a name for the anchor. Since the platform doesn’t need the actual file, there is no limitation on the size or on the type of the file, and the file is not even leaked to Woleet.

To create a proof of signature for a file, you also need to create an anchor, and so to compute the SHA256 hash of the file and choose a name for the anchor, but some additional data is required: your public key (the one associated with the private key used to sign the SHA256 hash of the file) and your signature itself. Optionally, you can provide an URL allowing to verify your identity by ensuring you own the public key and the TLS certificate of the URL.

Newly created anchors are automatically collected by the platform and recorded in the Bitcoin blockchain: this can take from 10 mn to a few hours, depending on the load the the Bitcoin network. To check the state of your anchors, you can pull them using the Woleet API, or you can associate a callback URL to an anchor that the platform will call whenever the anchor status changes.

Once an anchor is recorded in the Bitcoin blockchain, you can retrieve its associated proof receipt using the Woleet API. Proof receipts conform to the Chainpoint 2 proof receipt format (with some Woleet extensions when it comes to proofs of signature). The proof receipt is the only piece of data required to prove the existence/signature of a file at a given date (obviously the file itself is also required, since it is not included in the proof receipt). Thus, it is highly recommended you keep your proof receipts (and your files) in your own data store, so that you don’t depend on the Woleet API to generate the proof receipt on-demand whenever you want to verify a file.