Execution flow
Relationship to wallet actions
The execution’swallet_action_id identifies the action created by the automation. The wallet action contains the detailed onchain lifecycle, including steps and transaction identifiers.
The wallet_automation.submitted webhook is emitted when the execution reaches triggered. It does not indicate that the swap completed.
To observe the final outcome:
- Read
action_idfrom the submitted webhook orwallet_action_idfrom the execution. - Fetch the wallet action status.
- Subscribe to the corresponding
wallet_action.*events.
List executions
UseGET /v1/wallet_automations/executions to list executions across the app. Pass wallet_id to restrict results to one source wallet.
- cURL
- Node SDK
- Python
next_cursor. With cURL, pass the returned next_cursor as cursor in the next request until it is null.
Each execution includes:
- The source
wallet_idand matchedautomation_attachment_id. - The triggering information (e.g. transaction, block, chain, and asset).
- The linked
wallet_action_idafter submission. - Status timestamps and an optional
failure_reason.
Delivery and concurrency
Privy deduplicates repeated delivery of the same detected triggers. Apps should also process webhook deliveries idempotently bytrigger_id.
Only one automation runs for a wallet at a time. If another matching trigger arrives while the first execution is executing, the later execution can become skipped because the remaining balance is zero.

