Sign-in

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

Checking session...

Timestamp Service

Verify your receipt in the browser

Drop the file and evidence JSON to check the signature and hashes.

Prepare the inputs

Original file

Drop a file here

PDF, DOCX, TXT, JPG, PNG up to 10 MB

The file never leaves your browser.

Evidence JSON (.json)

Drop a file here

EvidenceV1 receipt

JSON must match the EvidenceV1 format.

Fetch evidence by receipt_id

We can fill this from the receipt link, or you can paste it yourself.

JWKS

Auto-loads the service public key from the API. You can override by pasting your own JWKS below.

  1. 1
    Schema Idle

    Validate JSON against evidence.v1.schema.

  2. 2
    Profile Idle

    Check whether canon_profile is supported (PDF, DOCX, TXT, JPG, PNG, bytes).

  3. 3
    Hash alg Idle

    hash_alg is supported (keccak256).

  4. 4
    Canonicalization Idle

    Canonicalized file matches the expected bytes.

  5. 5
    Commitment Idle

    keccak256(canon_bytes) == commitment_hex.

  6. 6
    Raw hash Idle

    keccak256(original bytes) == raw_file_hash_hex.

  7. 7
    Merkle leaf Idle

    Leaf constructed per leaf_rule: keccak256(commitment || raw_hash).

  8. 8
    Proof Idle

    Merkle proof reconstructs merkle_root_hex.

  9. 9
    Root vs anchor Idle

    Root matches anchor.tx in L2.

  10. 10
    RPC confirmations (optional)Idle

    TX found and confirmed by >=k blocks.

  11. 11
    service_sig (optional)Idle

    JWS is signed by the service key.

The file and evidence are processed locally in the browser. The service never receives your data.