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
https://kist-mc3c.onrender.com/api/v1Local development
During development the relayer runs at http://localhost:8080/api/v1.
Devices
POST
/devices/enrollRegister a device public key on-chain and locallyGET
/devicesList enrolled devices for your clientAnchoring
POST
/anchorStore one signed proof on SolanaPOST
/anchor/batchSync offline captures in a batchPOST /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.
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}'
{ "status": "anchored", "txHash": "5h3…8k", "recordId": "a3c9f2…", "creditsUsed": 1}
Verification
POST
/verifyVerify an image hash against SolanaPOST
/verify/imageVerify raw image bytes (hash computed server-side)POST
/verify/hashCompute the SHA-256 hash of raw bytes onlyCredits
GET
/credits/balanceBalance and pricingGET
/credits/usageRecent usage eventsGET
/credits/transactionsCredit ledgerPOST
/credits/checkPre-flight an operationPOST
/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.