Responses and errors.
Each tool returns a result or an error. The error includes a code, a message, and a retry flag.
This page describes the Starknet backend. For Monad, see the Monad deal flow.
The envelope
All responses use the same envelope format, whether a call succeeds or fails. Every response includes backend (mock or seam) and network metadata, so logs identify the selected backend and network. These fields alone do not prove that a transaction reached the chain.
{"ok": true, "backend": "seam", "network": "sepolia", "result": {...}}{"ok": false, "backend": "seam", "network": "sepolia", "error": {"code": "...", "message": "...", "retryable": false}}Use the groups below to find the relevant recovery steps. Check the retryable boolean field on the error object to determine if a call can be retried. Do not guess retry behavior from the error code name.
Proof generation can keep a write pending for minutes. A slow response does not prove that the call failed. Never create a new operation_id for a slow write, as this risks duplicate transactions and double payment. Call reconcile first to inspect state, then run resume_operation with the original operation_id when permitted.