HashAnchor verifiable machine records

A receipt a stranger can check.

Anchor any machine record on a public chain, and hand out a receipt anyone can verify — without your database, and without trusting us.

Batch
8 records
closes every15 min
anchored with1 transaction
Receipt
yours · 3-step proof
hash0x5333a8d8…
rooton chain
✓ anyone can verify
1 tx
anchors a whole batch of records
32 bytes
all that has to leave your system
15 min
between batches on the managed service
0
parties to trust when you read the anchor yourself
Why

Every party keeps its own records. Then they disagree.

A charger says it delivered 10 kWh; the robot's log says 4. Without shared evidence, the argument is the product.

4 kWh 10 kWh ?
Today

Two databases, two truths.

Each side trusts its own records and can't prove them to the other. Disputes go to whoever argues longest.

RECEIPT4 kWhboth can check
With HashAnchor

One receipt both sides can check.

The record is fixed on a public chain the moment it is anchored. Nobody has to take anyone's word for it.

What

Evidence that travels without you.

A receipt that travels

A small file with everything needed to check it. Give it to a customer, an auditor, an insurer.

receipt.jsonhashanchor.io/receipt/v1
hash0x5333a8d8…816b1843
proof3 sibling hashes
merkleRoot0xab143451…0df7c2b6
chainPolygon · 137
no later thanblock timestamp
✓ verifies offline, no account

One root for thousands

Records share one on-chain transaction; each stays provable.

Checkable by anyone

No account, no trust in us.

Merkle proof reaches the root✓
root committed on chain✓
record unchanged since✓
How

Hash it. Batch it. Anchor it. Check it.

Submit now; the receipt arrives when the batch closes.

Hash

Turn the record into 32 bytes. The data stays with you.

Batch

Thousands of hashes become one Merkle root.

Anchor

The root goes on a public chain in one transaction.

Verify

Anyone walks the receipt's path back to the root.

batch window · managed servicelive
pendingbatchedanchoredreceipt ready
00:00batch closes at 15:00
■ your record   ■ others in the batch0 records
Compressed: fifteen minutes plays in a few seconds.
Try it

Change one character. Watch the proof break.

This check runs in your browser, the same way the SDK does it.

verify a receipt — in this browser
Edit it — the leaf, every level and the verdict update as you type.
…Computing
A sample receipt over an eight-record batch, computed here so the proof is real. It is not anchored on any chain.
check a real recordpublic receipt lookup
Text is hashed here with SHA-256; only the hash is sent.
Where it fits

Anywhere a record will be questioned later.

Tamper-evident IoT logs
Maintenance and calibration
Energy and carbon data
Supply-chain milestones
Payment reconciliation
AI-made machine decisions
Start

A free key, a hash, and twenty minutes.

No sign-up form. Most of the time is waiting for the first batch.

anchor.mjs
const { apiKey } = await HashAnchor.provision("my-app");   // free, self-serve
const client = new HashAnchor({ apiKey });
const { hash } = await client.submitHash(myHash);    // "accepted"
// …about 15 minutes later: "anchored"
const receipt = await client.getReceipt(hash);
verifyReceiptProof(receipt);                          // true ✓
HashAnchor

Give your records a receipt.