> For the complete documentation index, see [llms.txt](https://docs.talus.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.talus.network/reference/move/nexus_workflow/execution_events.md).

# execution\_events

* [Struct `AgentVertexAuthorizationRequiredEvent`](#struct-agentvertexauthorizationrequiredevent)
* [Struct `InvocationAuthorizationRequiredEvent`](#struct-invocationauthorizationrequiredevent)
* [Struct `RequestWalkExecutionEvent`](#struct-requestwalkexecutionevent)
* [Struct `AgentSkillExecutionRequestedEvent`](#struct-agentskillexecutionrequestedevent)
* [Struct `EndStateReachedEvent`](#struct-endstatereachedevent)
* [Struct `WalkAdvancedEvent`](#struct-walkadvancedevent)
* [Struct `WalkFailedEvent`](#struct-walkfailedevent)
* [Struct `TerminalErrEvalRecordedEvent`](#struct-terminalerrevalrecordedevent)
* [Struct `SubmissionFailureEvidenceRecordedEvent`](#struct-submissionfailureevidencerecordedevent)
* [Struct `ToolVerificationResolvedEvent`](#struct-toolverificationresolvedevent)
* [Struct `CommittedToolResultEvent`](#struct-committedtoolresultevent)
* [Struct `WalkCancelledEvent`](#struct-walkcancelledevent)
* [Struct `WalkAbortedEvent`](#struct-walkabortedevent)
* [Struct `WalkPendingAbortEvent`](#struct-walkpendingabortevent)
* [Struct `ExecutionFinishedEvent`](#struct-executionfinishedevent)
* [Struct `ExecutionPaymentInsufficientSettlementEvent`](#struct-executionpaymentinsufficientsettlementevent)
* [Struct `ExecutionPaymentRefilledEvent`](#struct-executionpaymentrefilledevent)
* [Function `request_walk_execution_event_dag_id`](#function-request_walk_execution_event_dag_id)
* [Function `request_walk_execution_event_invocation`](#function-request_walk_execution_event_invocation)

### Struct `AgentVertexAuthorizationRequiredEvent`

Emitted when a walk reaches a vertex that requires agent authorization before it can be executed.

```move
public struct AgentVertexAuthorizationRequiredEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)`tool_fqn: std::ascii::Stringagent_id: std::option::Option<sui::object::ID>skill_id: std::option::Option<u64>`

</details>

#### Struct `InvocationAuthorizationRequiredEvent`

Emitted when an active runtime vertex needs an exact accounting \[Invocation].

```move
public struct InvocationAuthorizationRequiredEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)

</details>

#### Struct `RequestWalkExecutionEvent`

Emitted to request off-chain leaders to execute the next vertex of a walk.

```move
public struct RequestWalkExecutionEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDinvocation: sui::object::IDinvoker: addresswalk_index: u64next_vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)`evaluations: sui::object::ID`Dynamic object field which contains vertex evaluations for the next vertex.`agent_id: sui::object::IDskill_id: u64interface_version:` [`nexus_interface::version::InterfaceVersion`](/reference/move/nexus_interface/version.md#nexus_interface_version_InterfaceVersion)`task_id: sui::object::IDoccurrence_id: u64`

</details>

#### Struct `AgentSkillExecutionRequestedEvent`

Emitted when execution of a registered agent skill is requested.

```move
public struct AgentSkillExecutionRequestedEvent has copy, drop
```

<details>

<summary>Fields</summary>

`execution_id: addressagent_id: sui::object::IDskill_id: u64interface_revision:` [`nexus_interface::version::InterfaceVersion`](/reference/move/nexus_interface/version.md#nexus_interface_version_InterfaceVersion)`payment_id: address`

</details>

#### Struct `EndStateReachedEvent`

Emitted when a walk reaches an end state, ie. a vertex that has no further outgoing edges.

```move
public struct EndStateReachedEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)`variant:` [`nexus_interface::graph::OutputVariant`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_OutputVariant)`variant_ports_to_data: sui::vec_map::VecMap<`[`nexus_interface::graph::OutputPort`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_OutputPort)`,` [`nexus_primitives::data::NexusData`](/reference/move/nexus_primitives/data.md#nexus_primitives_data_NexusData)`>`

</details>

#### Struct `WalkAdvancedEvent`

Emitted when a walk advances to next vertex/vertices.

```move
public struct WalkAdvancedEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)`variant:` [`nexus_interface::graph::OutputVariant`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_OutputVariant)`variant_ports_to_data: sui::vec_map::VecMap<`[`nexus_interface::graph::OutputPort`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_OutputPort)`,` [`nexus_primitives::data::NexusData`](/reference/move/nexus_primitives/data.md#nexus_primitives_data_NexusData)`>`

</details>

#### Struct `WalkFailedEvent`

Emitted when a walk fails due to structural errors in the DAG.

```move
public struct WalkFailedEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)`reason: std::ascii::String`

</details>

#### Struct `TerminalErrEvalRecordedEvent`

Emitted when the authoritative per-walk `_err_eval` record is created or updated.

```move
public struct TerminalErrEvalRecordedEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)`leader: addressfailure_class:` [`nexus_workflow::execution_failure::WorkflowFailureClass`](/reference/move/nexus_workflow/execution_failure.md#nexus_workflow_execution_failure_WorkflowFailureClass)`outcome: std::option::Option<`[`nexus_interface::graph::PostFailureAction`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_PostFailureAction)`>reason: std::ascii::Stringerr_eval_hash: vector<u8>duplicate: bool`

</details>

#### Struct `SubmissionFailureEvidenceRecordedEvent`

Emitted when a later success wins over a provisional tool-evidence `_err_eval`.

```move
public struct SubmissionFailureEvidenceRecordedEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)`failed_leader: addresswinning_leader: std::option::Option<address>reason: std::ascii::Stringerr_eval_hash: vector<u8>`

</details>

#### Struct `ToolVerificationResolvedEvent`

Emitted for every completed off-chain Tool verification submission.

```move
public struct ToolVerificationResolvedEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)`leader_cap_id: sui::object::IDtool_id: sui::object::IDverifier_kind:` [`nexus_interface::verifier::ToolVerifierMode`](/reference/move/nexus_interface/verifier.md#nexus_interface_verifier_ToolVerifierMode)`verifier_witness_id: std::option::Option<sui::object::ID>decision:` [`nexus_interface::verifier::VerifierDecision`](/reference/move/nexus_interface/verifier.md#nexus_interface_verifier_VerifierDecision)

</details>

#### Struct `CommittedToolResultEvent`

Emitted when a committed tool result is created or updated for settlement.

```move
public struct CommittedToolResultEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)`leader: sui::object::IDhas_primary_failure_evidence: boolhas_secondary_failure_evidence: bool`

</details>

#### Struct `WalkCancelledEvent`

Emitted when an active walk is cancelled after execution abortion.

```move
public struct WalkCancelledEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)

</details>

#### Struct `WalkAbortedEvent`

Emitted when `_err_eval` resolves through failure policy as `Terminate` or double expiration.

```move
public struct WalkAbortedEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)

</details>

#### Struct `WalkPendingAbortEvent`

Emitted when a double-expired walk enters abort intent while other active walks may still need to settle.

```move
public struct WalkPendingAbortEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64vertex:` [`nexus_interface::graph::RuntimeVertex`](/reference/move/nexus_interface/graph.md#nexus_interface_graph_RuntimeVertex)

</details>

#### Struct `ExecutionFinishedEvent`

Emitted when no more work needs to be done.

```move
public struct ExecutionFinishedEvent has copy, drop
```

<details>

<summary>Fields</summary>

`dag: sui::object::ID`[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDhas_any_walk_failed: boolhas_any_walk_succeeded: boolwas_aborted: bool`

</details>

#### Struct `ExecutionPaymentInsufficientSettlementEvent`

Emitted when a walk's settlement cannot proceed because the execution payment is short by the recorded amount.

```move
public struct ExecutionPaymentInsufficientSettlementEvent has copy, drop
```

<details>

<summary>Fields</summary>

[`execution`](/reference/move/nexus_workflow/execution.md#nexus_workflow_execution)`: sui::object::IDwalk_index: u64required_shortfall: u64`

</details>

#### Struct `ExecutionPaymentRefilledEvent`

Emitted when an execution's payment is topped up from a source, recording the refill amount.

```move
public struct ExecutionPaymentRefilledEvent has copy, drop
```

<details>

<summary>Fields</summary>

`execution_id: addresspayment_id: addresssource: addressrefill_amount: u64`

</details>

#### Function `request_walk_execution_event_dag_id`

Returns the DAG ID recorded in the walk-execution request event.

```move
public fun request_walk_execution_event_dag_id(self: &nexus_workflow::execution_events::RequestWalkExecutionEvent): sui::object::ID
```

#### Function `request_walk_execution_event_invocation`

Returns the exact \[Invocation] that admits this Tool execution request.

```move
public fun request_walk_execution_event_invocation(self: &nexus_workflow::execution_events::RequestWalkExecutionEvent): sui::object::ID
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.talus.network/reference/move/nexus_workflow/execution_events.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
