MedSeal
← Transparency

Verify the Bitcoin anchor yourself.

You should not have to trust MedSeal. Here is how to independently confirm that a sealed scan’s proof is fixed in Bitcoin’s history — using open tools and the public blockchain, no account and nothing of ours involved.

  1. Step 1

    Get the proof and the root

    After sealing a scan, open the Seal console → Anchor root on Bitcoin → Download .ots proof. You want two things: the .ots file, and the Merkle root it commits to (below). You never need MedSeal again after this.

  2. Step 2

    Install the OpenTimestamps client

    It’s a free, open-source tool — the same standard used well beyond MedSeal. Prefer not to install anything? Skip to the web verifier in the last step.

    shell
    pip install opentimestamps-client
    ots --version
  3. Step 3

    Inspect what the proof commits to

    ots info prints the exact hash the proof stamps and its attestations. Confirm that hash equals the Merkle root you fetched — that ties the Bitcoin proof to MedSeal’s log.

    shell
    ots info medseal-root.ots
    
    # look for the stamped SHA-256 and either:
    #   “Pending confirmation in the Bitcoin blockchain”   (not yet mined)
    # or:
    #   “Bitcoin block 8XXXXX attests existence as of …”   (confirmed)

    Pending is normal. A fresh anchor waits for a Bitcoin block (usually a few hours). Complete it with ots upgrade medseal-root.ots once mined, then re-run ots info.

  4. Step 4

    Verify against Bitcoin

    With the stamped bytes present (the raw Merkle root, saved as medseal-root), verify the timestamp. OpenTimestamps checks it against a Bitcoin node / block explorer — not against us.

    shell
    ots verify -f medseal-root medseal-root.ots
    
    # → “Success! Bitcoin block 8XXXXX attests existence as of <UTC>”

    The block height and timestamp it reports are the independent proof: that root existed by then, and Bitcoin’s history can’t be rewritten to say otherwise. Cross-check the block on any explorer if you like.

  5. Step 5

    Confirm your scan is under that root

    The anchor proves the root. To prove your scan is in it, use its inclusion proof: the sibling hashes that recompute the root from your leaf. Fetch it, and let MedSeal — or your own code — check it.

    shell
    # fetch the O(log N) inclusion proof for leaf <i>
    curl -s https://medseal-ai.duckdns.org/flask/merkle/proof/<i>
    
    # hash your leaf with each sibling, in order, up to the root;
    # the result must equal the root the .ots stamped.

    If the recomputed root matches the anchored root, your scan is provably part of the timestamped log. Any edit to the scan changes its leaf, breaks the recomputation, and the match fails.

  6. Step 6

    No install? Use the web verifier

    Drag the .ots file (and the stamped root file) onto the official OpenTimestamps verifier. It performs the same Bitcoin check in your browser.

Check an inclusion proof — in your browser

Pure SHA-512, no server does the math. Paste a proof, or fetch one by leaf index.

That’s the whole point.

A verdict you can reproduce without us is a verdict you can actually rely on. Seal a scan and try it end to end.

Seal a scan