Sign-in

PoE keeps you anonymous. Google/OIDC binds receipts to your Google account.

Checking session...

Timestamp Service

Anchor proof of existence for a file

Canonicalization and hashing happen locally. Only commitment_hex and raw_file_hash_hex are sent to the server, Merkle batching happens on our side, and the root is anchored to Ethereum L2 blockchain.

PoE file

Drop a file here

PDF up to 100 MB; DOCX/TXT/JPG/PNG up to 10 MB

commitment_hex and raw_file_hash_hex are calculated in the browser. The file never leaves the device.

Canonicalization

pdf.v1.basic

Hashing

keccak256

Submitting request

/v1/poe/anchor

commitment_hex (canon)

Waiting for local hashing

raw_file_hash_hex

Waiting for raw hash

canon_profile

pdf.v1.basic

hash_alg

keccak256

How this works

  1. 1. Canonicalize locally. We normalize file and hash it right in your browser; if a file can't be normalized, we hash the raw bytes.
  2. 2. Merkle batch. The canon + raw hashes are paired and batched into a Merkle tree.
  3. 3. Anchoring. The Merkle root is sent to the on-chain anchor contract.