Hash in. Receipt out.
Your application computes the SHA-256 of an event and sends those 32 bytes. It gets back a receipt that anyone can verify, offline, without an account. The content never leaves you.
Seal a hash.
One request. Send the hash as 64 hexadecimal characters, with your key in the X-API-Key header. Your key is in the console, under Connect. Each receipt spends one tick.
HASH=$(sha256sum minutes.pdf | cut -d' ' -f1)
curl https://api.recognitium.com/v1/digital-clock \
-H "X-API-Key: $RECOGNITIUM_KEY" \
-H "Content-Type: application/json" \
-d "{\"data_hash\": \"$HASH\"}"The same call in Python, with nothing to install:
import hashlib, json, os, urllib.request
data_hash = hashlib.sha256(open("minutes.pdf", "rb").read()).hexdigest()
request = urllib.request.Request(
"https://api.recognitium.com/v1/digital-clock",
data=json.dumps({"data_hash": data_hash}).encode(),
headers={"X-API-Key": os.environ["RECOGNITIUM_KEY"],
"Content-Type": "application/json"},
)
receipt = json.load(urllib.request.urlopen(request))
print(receipt["receipt_id"])The receipt comes back.
Status 201, and a receipt. This one is real: it was sealed on 6 September 2026 and holds the fingerprint of this site’s pages.
{
"receipt_id": "DG-49af8db600f9418986e9d665870db7a4",
"sequence_number": 149705,
"prev_tip": "4f628a39eeb740e9a5d73846b3deeb3a7be96f6f8a8273825fe367519f59431d",
"new_tip": "721f67522caef7aa0a08f0e1caec9b21007c9f4ed581c3d3660a0e8966607139",
"fingerprint": "b4629cc3b84a516a9f8f00231b0ee428d7e0b00e6509a521f7f6d7d1cbb531de",
"payload_hash": "60fad4214aa252eab8b6fdfb25d7ecbe875878e63ce2d489e6d27a75dedea10b",
"content_hash": "bb690e7df7d4c2323419b2e177c42e69d96366ca793c6ba582061d44506b87ba",
"timestamp_ns": 1788715908895188519,
"timestamp": "2026-09-06T17:31:48Z",
"entropy_tier": "csprng-512",
"binding": "BHB-TIER-BIND-v1"
}- receipt_id
- Its name, unique on the chain. Check this one.
- content_hash
- The hash you sent.
- payload_hash
- Your hash bound to the tier that sealed it, so no one can later claim another.
- fingerprint
- The event fingerprint: a random value drawn for this receipt alone, not your hash.
- prev_tip, new_tip
- Where the chain stood just before this receipt, and just after.
- timestamp_ns
- The instant, in nanoseconds since 1970, sealed into the tip.
A receipt proves when a hash was sealed. It never says whether the content is true.
Verify it, free.
No key, no account. Anyone holding the receipt ID can ask:
curl https://api.recognitium.com/v1/verify/receipt/DG-49af8db600f9418986e9d665870db7a4
The answer says "verified": true and lists every check it ran. Or trust no one: the receipt carries everything needed to recompute its tip yourself.
payload_hash = SHA-256( "BHB-TIER-BIND-v1:" ‖ content_hash ‖ ":" ‖ entropy_tier ) new_tip = SHA-256( prev_tip ‖ fingerprint ‖ payload_hash ‖ timestamp_ns )
Hashes as raw bytes, timestamp_ns as 8 bytes, big-endian. The offline verifier recomputes the tip in a single page that makes no network request.
When it says no.
- 400
- The hash is not 64 hexadecimal characters.
- 401
- The key is missing or not valid.
- 402
- The meter is empty. Top it up in the console Wallet.
Or let your AI make the call.
The same receipts through MCP. Give your AI one link and it can seal, verify and prove anteriority on its own: for AI agents.
https://api.recognitium.com/mcp
€5 buys 500 receipts.
One tick seals one receipt. Verifying is free, for everyone, forever.