Skip to main content
ActionResponse is the JSON object returned by POST /substrate/v1/action after the daemon attempts to execute your requested action. It tells you whether the action ran (executed), whether any post-action verification passed (verification), what changed in the application’s state (state_delta), and the total wall-clock time for the operation (total_latency_ms). When verification fails, the HTTP status is 422 and success is false — the action itself may have run, so always inspect executed separately from success.

JSON Example

Fields

boolean
required
true only when both conditions are met: the action was dispatched to the runtime and the verify_expression (if provided) evaluated to true within the timeout window. If no verify_expression was provided, success is true as long as the action ran without error. Check executed separately to distinguish a pre-flight rejection from a verification failure.
string (UUIDv7)
required
A time-ordered unique identifier for this specific action execution. Store this value if you need to correlate log events, audit trails, or WebSocket notifications back to a particular POST /action call.
string
required
The action name that was executed — echoed from your request body. Useful for logging when you fire actions asynchronously.
boolean
required
true if the action was actually dispatched to the runtime probe. false means the request was rejected before execution — for example, because confidence was too low, the action name was not found, or a required parameter was missing. An action can have executed: true and success: false simultaneously if the action ran but verification failed.
string
required
The runtime the daemon used to execute this action. One of v8, jvm, clr, or native.
integer
required
The total wall-clock time in milliseconds from when the daemon received the request to when the response was returned. This includes optional fresh-state capture, action dispatch, post-action settlement wait, and all verification polling cycles.
string
required
A human-readable summary of the outcome, such as "Action executed and verified successfully" or "Verification failed: inbox.sent_count remained 14 after 10 poll cycles". Intended for logging and debugging, not programmatic branching — use success and verification.passed for control flow.
VerificationOutcome | null
The result of evaluating your verify_expression against the post-action state. null when no verify_expression was provided. When present, see VerificationOutcome for the full field reference.Key sub-fields at a glance:
  • passed — whether the expression became true within the timeout
  • poll_cycles — how many state probes were run
  • changed_fields — array of { path, before, after } diffs
SubstrateState | null
The full SubstrateState snapshot captured after the action completed. Included when verification ran (since a post-action probe is required). null for read actions and actions dispatched without a verify_expression.
object | null
A condensed before/after diff of every objects key that changed as a result of the action. Each entry has the form { "before": <value>, "after": <value> }. null when no post-action state was captured. Use this instead of comparing full states when you only care about what changed.
any | null
The raw return value from the runtime method invocation, available for JVM and CLR actions that call typed methods via JVMTI or the CLR MMF bridge. For V8 actions executed via CDP, this is typically null. Useful for debugging or when an action’s return value carries meaningful data beyond a simple boolean.
any | null
A structured snapshot of the JVM method invocation context, captured at the time the action was dispatched. Only populated for JVM actions. Contains reflection metadata such as the invoked class name, method descriptor, and argument types. null for V8 and CLR actions.