Recognitium
FR Create account

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.

Open the console