Runs as a local/self-hosted process on :4477 -- not a hosted multi-tenant service. Every field name below is copied from the actual request/response structs, not reconstructed from memory.
/healthzNo body. Returns 200 once the server is ready to accept requests.
/v1/proofsRequest:
{ "program": "INIT 5\nADD 3\nMUL 2\nSUB 4" }Response:
{
"initial": "5",
"result": "24",
"proof_bytes": 11234,
"proof_base64": "..."
}Rejects anything over the 2,000-instruction cap -- see Features for why that number specifically.
/v1/verifyRequest:
{ "program": "INIT 5\n...", "proof_base64": "..." }Response:
{ "valid": true, "result": "24", "error": null }Deliberately doesn't require anything from the /v1/proofs response other than the proof bytes -- the program itself is the only shared trust anchor.
/v1/backends{ "backends": ["stark", "mock-echo"], "default": "stark" }mock-echo is a routing stub -- its verify always errors, never reports valid: true.
/v1/backends/{name}/proofsSame request shape as /v1/proofs. A 404 if {name} isn't registered.
/v1/backends/{name}/verifyRequest:
{ "program": "...", "bytes_base64": "..." }Response:
{ "valid": false, "error": "mock-echo cannot verify anything" }