Status overview
Pending
When an intent is proposed, via the API or the Dashboard, it starts in the Pending status. The intent remains pending until one of the following occurs:- Enough signers authorize it to meet the threshold (transitions to Processing, Executed, or Failed).
- The intent is cancelled (transitions to Rejected).
- The authorization window elapses without enough signatures (transitions to Expired).
- The underlying resource is modified or deleted (transitions to Dismissed).
Granted
An intent moves to Granted when the current signer has authorized it but the threshold is not yet met. This state is specific to the current signer and is not shared across all authorizers. The intent remains pending, awaiting authorization from more owners or signers.Processing
An intent moves to Processing when the authorization threshold is met and execution begins. This applies to asynchronous actions such as transfers.Executed
An intent moves to Executed when the authorization threshold is met and execution succeeds. The proposed action completes automatically — the transaction is signed and broadcasted, or the wallet or policy is updated. After execution, the intent’saction_result field contains the response. For transaction intents, this includes the transaction hash. Fetch the intent or listen to the intent.executed webhook to retrieve these results.
Failed
An intent moves to Failed when the authorization threshold is met, but execution fails. Intent execution can fail for various reasons, such as a policy blocking the transaction or insufficient gas or balance to transact. At this point, the intent is in a terminal state and must be recreated to try again.Rejected
An intent can be cancelled before it executes, moving it to Rejected. In the Dashboard, cancel an intent from the Approvals page by selecting Cancel proposal. Once rejected, the intent is in a terminal state and cannot execute.Expired
Intents expire 72 hours after creation by default. If the authorization threshold has not been met within that window, the intent moves to Expired and can no longer accept authorizations. Once expired, the intent is in a terminal state and cannot execute.Dismissed
An intent is automatically dismissed when the underlying resource changes or is deleted. This prevents stale proposals from executing against a resource that no longer matches the original intent. When this may happen:- Updating a wallet dismisses all pending intents for that wallet.
- Deleting a policy dismisses all pending policy and rule intents for that policy.
Next steps
Sign intents
Add authorization signatures to execute a proposed intent.
Fetch intent
Retrieve intent status and execution results via the API.

