TensorCash.Verify

Guide

Quickstart

Five minutes, one terminal. You need curl and a proof to verify.

1. Get a key

  1. Open https://verify.tensorcash.boblabs.eu and enter your email. Type the six-digit code from the email; that signs you in (no password).
  2. On Keys, name the key and press Create key. A page opens with one button; press it and the key is created.
  3. Copy the key. It starts with tvk_ and is shown once. Back on Keys, press Refresh keys to see it listed.

Keep it in an environment variable rather than on the command line:

read -rs TVK && export TVK   # paste the key, press Enter

A key can call every endpoint on these pages (share verification needs one extra scope, see Verifying shares). An account can hold five keys.

2. Verify a proof

The request body is a ValidationRequest FlatBuffer holding a BlockValidation: the same bytes a TensorCash node sends to its verifier for every block it validates (schema shared-utils/fb-schemas/validation.fbs in the TensorCash repository). If you run a node or a pool you already have them. Save one as request.bin and submit it for a Quick check:

curl -sS https://api.verify.tensorcash.boblabs.eu/v1/verify/quick/request/submit \
  -H "Authorization: Bearer $TVK" \
  -H "Content-Type: application/octet-stream" \
  -H "X-Verify-Result-Contract: scoped/1" \
  --data-binary @request.bin

A new request is accepted with 202 and tells you where to poll:

{
  "status": "pending",
  "state": "queued",
  "final": false,
  "hash_id": "6f1c…e2a9",
  "verification_type": "quick",
  "scope_key": "5b0d…c7e1",
  "status_ref": "/v1/verify/result/5b0d…c7e1",
  "retry_after_seconds": 5
}

If the service already knows the answer you get 200 with the result at once.

3. Read the answer

Wait retry_after_seconds, then poll status_ref:

curl -sS https://api.verify.tensorcash.boblabs.eu/v1/verify/result/5b0d…c7e1 \
  -H "Authorization: Bearer $TVK"

202 means still running; poll again. 200 is the answer:

{"status": "Quick_OK", "verdict": "Quick_OK", "final": true, "hash_id": "6f1c…e2a9", "…": "…"}

Quick_OK means the proof passed the CPU checks; Quick_Fail means it did not. Polling is free; it does not count against your submit limit.

Next: pools read Verifying shares; nodes and wallets read Verifying blocks. Every endpoint is in the API reference, every status in Statuses.

Updated 2026-10-07