What existed?
A blinded commitment binds your evidence to exact bytes without exposing those bytes to the proof service.
Timestamp sensitive files without uploading them. This service turns a local fingerprint into a signed checkpoint anchored on SwissDLT — portable, independently verifiable evidence.
Your file stays yours.
Hashing happens in this browser.
Your proof travels.
Merkle receipts and SwissDLT transaction proofs.
Your trust endures.
Verify later, without asking us first.
A blinded commitment binds your evidence to exact bytes without exposing those bytes to the proof service.
Signed checkpoints provide immediate evidence; SwissDLT adds an independently checkable transaction confirmation.
Your original file, salt and receipt reproduce the commitment. The proof does not depend on a customer account.
Check a file against its evidence package. Your original file remains in this browser throughout verification.
Only blinded commitments and proof metadata are stored here. No filenames or source documents.
| Receipt | Created | Commitment | Status | Height | Actions |
|---|---|---|---|---|---|
| Loading receipts… | |||||
Integrate commitments and receipts without creating a raw-data path through your application or AI agent.
curl http://localhost:4173/api/v1/timestamps \
-H 'Content-Type: application/json' \
-d '{
"commitment": "YOUR_64_CHARACTER_BLINDED_SHA256",
"clientReference": "opaque-workflow-id"
}'
Source files, original hashes, filenames and salts are deliberately not accepted.
POST /mcp
proof_submit Submit a blinded commitment
receipt_get Retrieve proof and status
anchor_run Process pending commitments
proof_verify Verify a local digest + receipt
Streamable HTTP · JSON-RPC 2.0 · Optional bearer-token enforcement.
/mcpEd25519 public key used to validate signed checkpoints. This is a public verification key, not a secret.
Service health ↗Full reference: Documentation →
How the service works, how to integrate it, and where its limits are. For teams handling sensitive files in regulated environments, including health-sector evidence workflows.
Drop a file on the create page. It is hashed locally in your browser; only a blinded 32-byte commitment is sent. Download the evidence package — it carries the salt and file metadata the server never saw.
Store the evidence package next to the original file, or in your records system. Verification needs the original file and this package; there is no account to log into and nothing to request from us.
Open the verify page, provide the original file and the package, and the attestations are re-checked: commitment, Merkle path, signed checkpoint and SwissDLT transaction confirmation.
10 free stamps per day · larger plans via office@operal.biz
Base URL is the service origin. All endpoints speak JSON. A bearer token is required only when the operator has configured one.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/health | Service status and anchor mode. |
| GET | /api/v1/config | Region, anchor mode, checkpoint key, stats, MCP and live quota. |
| POST | /api/v1/timestamps | Submit a blinded commitment; returns the receipt. |
| GET | /api/v1/timestamps | List receipts: commitments and proof metadata only. |
| GET | /api/v1/timestamps/{id} | One receipt with checkpoint and confirmation state. |
| GET | /api/v1/timestamps/{id}/transaction | Download the SwissDLT transaction proof for a confirmed receipt. |
| POST | /api/v1/anchor | Process pending commitments into a signed checkpoint. |
| POST | /api/v1/upgrade | Check for SwissDLT transaction confirmations. |
| POST | /api/v1/verify | Verify an evidence package against a local digest and commitment. |
curl http://localhost:4173/api/v1/timestamps \
-H 'Content-Type: application/json' \
-d '{
"commitment": "YOUR_64_CHARACTER_BLINDED_SHA256",
"clientReference": "opaque-workflow-id"
}'
The commitment is SHA-256(domain · SHA-256(file) · salt). Source files, original hashes, filenames and salts are deliberately not accepted.
One streamable-HTTP endpoint at /mcp speaking JSON-RPC 2.0 (protocol version 2026-07-28). Optional bearer-token enforcement; an origin check can be enabled by the operator.
| Tool | Description |
|---|---|
proof_submit | Submit an existing blinded SHA-256 commitment. |
receipt_get | Retrieve a timestamp receipt and its proof status by receipt ID. |
anchor_run | Anchor all currently pending commitments and check for confirmations. |
proof_verify | Verify an evidence package against a locally computed file digest and commitment. |
Agents must never place source files, original hashes, filenames or salts in tool arguments — only blinded commitments and receipt IDs.
Every commitment first enters a Merkle batch. The batch root is signed with an Ed25519 checkpoint key, producing a signed checkpoint: immediate, independently verifiable evidence that this commitment existed at checkpoint time.
Signed checkpoints are then anchored in a SwissDLT transaction submitted from the BCTS anchor wallet. Once the transaction is confirmed, the receipt carries an independently verifiable SwissDLT transaction proof, downloadable per receipt at /api/v1/timestamps/{id}/transaction.
The service publishes the anchor wallet address here as soon as the operator configures it.
Not published yet10 free stamps per day per client. The create page and this section show the live remaining count when the service publishes it.
Commitment requests up to 16 KB. Verification requests up to 8 MB. Evidence packages up to 8 MB. Source files up to 250 MB, hashed locally in the browser.
For higher volumes, anchoring under your own BCTS anchor wallet, or health-sector deployments, contact office@operal.biz.