DocsReferenceAPI reference

API reference

The Kist relayer API is a JSON HTTP API. Authenticate metered requests with an API key and read verification results straight from Solana.

Base URL

basebash
https://kist-mc3c.onrender.com/api/v1
Local development

During development the relayer runs at http://localhost:8080/api/v1.

Devices

POST/devices/enrollRegister a device public key on-chain and locally
GET/devicesList enrolled devices for your client

Anchoring

POST/anchorStore one signed proof on Solana
POST/anchor/batchSync offline captures in a batch

POST /anchor expects the device id, the image hash, the device signature over that hash, and the capture timestamp. An Idempotency-Key header makes retries safe.

request — anchorcurl
curl -X POST $KIST_API_BASE/anchor \  -H "Authorization: Bearer $KIST_API_KEY" \  -H "Idempotency-Key: 8f2c…91c" \  -d '{"deviceId":"0x…","imageHash":"0x…","signature":"0x…","captureTimestamp":1712345678}'
response — anchoredbash
{  "status": "anchored",  "txHash": "5h3…8k",  "recordId": "a3c9f2…",  "creditsUsed": 1}

Verification

POST/verifyVerify an image hash against Solana
POST/verify/imageVerify raw image bytes (hash computed server-side)
POST/verify/hashCompute the SHA-256 hash of raw bytes only

Credits

GET/credits/balanceBalance and pricing
GET/credits/usageRecent usage events
GET/credits/transactionsCredit ledger
POST/credits/checkPre-flight an operation
POST/credits/top-upAdd credits (session token)

Status codes

  • 200 / 201 — success (existing or new record).
  • 400 — missing or malformed fields.
  • 401 / 403 — missing key, or a client id that does not match the key.
  • 404 — device not enrolled, or no anchored record found.
  • 422 — signature verification failed.
  • 502 — Solana temporarily rejected the transaction; it is queued for retry.