Transparency & independent verification
A ChainAnchor proof doesn’t ask you to trust ChainAnchor. Every proof is recorded on a public blockchain and can be verified by anyone, with our open-source tool or your own — even if ChainAnchor disappeared tomorrow.
How a proof is verified
- 1. Your file → hash. SHA-256 is computed from the bytes. The same content always produces the same hash; any change produces a different one.
- 2. Hash → Merkle root. Batched anchors fold the hash with its proof (sorted-pair SHA-256) to reconstruct the root that was anchored. A forged proof can’t make a different file fold to a real root.
- 3. Root → blockchain. The root (or, for instant anchors, the hash itself) is looked up in the public contract’s
timestamps()function on-chain. A non-zero result is immutable, timestamped proof of existence.
On-chain
- Loading…
The contract
It’s deliberately tiny, open-source, and verified on-chain. All it does is record the block timestamp a hash (or Merkle batch root) was first registered — values can’t be changed or deleted once written.
View the verified source on the explorer ↗Show source
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
contract ChainAnchor {
// Unix time a hash/root was registered (0 = never).
mapping(bytes32 => uint256) public timestamps;
event HashRegistered(bytes32 indexed fileHash, uint256 timestamp);
function registerHash(bytes32 _fileHash) external {
require(timestamps[_fileHash] == 0, "Hash already registered");
timestamps[_fileHash] = block.timestamp;
emit HashRegistered(_fileHash, block.timestamp);
}
}
Verify it yourself
Open-source, ~80 lines, no dependency on ChainAnchor. It recomputes your file’s hash, validates the Merkle proof, and reads the contract on-chain via a public RPC you control.
# 1. Download the verifier + the proof bundle curl -O /tools/chainanchor-verify.js curl -O /proof/<id>/verify.json # 2. Verify your file against the chain npm i ethers node chainanchor-verify.js verify.json yourfile.pdf
Recent anchoring transactions
Continuity
Proofs live on the public blockchain, not just on our servers. You can export all of your proofs at any time from your account, and any proof remains independently verifiable with the tool above regardless of ChainAnchor’s status.