# Execute

Source: https://docs.settlemint.com/docs/user-guides/system-addons/xvp-settlement/actions/execute
Learn how to manually execute an XvP settlement when auto-execute is disabled.
Manual execution gives you a final review step before committing.




When auto-execute is disabled, you must manually trigger execution after all approvals are received. This gives participants a final review step before the settlement commits.

## When manual execution is needed [#when-manual-execution-is-needed]

Manual execution is required when:

* Auto-execute was disabled during settlement creation
* The settlement is in **Ready** state (local) or secret was revealed (HTLC)
* All pre-conditions are met but execution hasn't occurred

<Callout type="info" title="Auto-execute is default">
  Most settlements use auto-execute, which triggers immediately when all conditions are met. Manual execution is only
  needed when explicitly disabled.
</Callout>

## Prerequisites [#prerequisites]

For local settlements:

* Settlement is in **Ready** state (all senders have approved)
* Auto-execute is disabled

For HTLC settlements:

* Settlement is in **Armed** state and secret has been revealed
* Auto-execute is disabled

## Steps [#steps]

<Steps>
  <Step>
    ### Verify settlement is ready [#verify-settlement-is-ready]

    Navigate to **Settlements** and open the settlement detail page.

    Confirm:

    * Status shows "Ready to execute" or similar
    * All required approvals are complete
    * For HTLC: the secret has been revealed
  </Step>

  <Step>
    ### Execute the settlement [#execute-the-settlement]

    Click **Execute** on the settlement detail page.

    Review the confirmation showing all flows that will execute.

    Click **Confirm** and authenticate with your PIN or OTP.
  </Step>

  <Step>
    ### Verify execution [#verify-execution]

    After the transaction confirms:

    * Settlement status changes to **Executed**
    * All flows complete atomically
    * Recipients receive their assets
    * The settlement is final
  </Step>
</Steps>

## Who can execute? [#who-can-execute]

Anyone can trigger manual execution once all conditions are met. The execution is completely permissionless.

While typically executed by participants (senders, recipients, or addresses in flows), any Ethereum address can call the execute function.

## What happens during execution [#what-happens-during-execution]

The settlement contract:

1. Validates all flows one final time
2. Transfers assets from escrow to recipients atomically
3. Records the execution on-chain
4. Marks the settlement as complete

If any flow fails (e.g., compliance block added after approval), the entire settlement reverts.

## Troubleshooting [#troubleshooting]

| Issue                      | Solution                                                  |
| -------------------------- | --------------------------------------------------------- |
| Execute button not visible | Auto-execute may be enabled, or settlement isn't ready    |
| Execute button disabled    | Not all approvals received, or secret not revealed (HTLC) |
| "Settlement expired"       | Cutoff date passed - use withdraw instead                 |

## Next steps [#next-steps]

<Cards>
  <Card title="Withdraw expired" href="/docs/user-guides/system-addons/xvp-settlement/actions/withdraw-expired">
    How to recover assets from expired settlements.
  </Card>

  <Card title="XvP overview" href="/docs/user-guides/system-addons/xvp-settlement/overview">
    Return to the XvP Settlement overview.
  </Card>
</Cards>

## Related [#related]

* [XvP settlement overview](/docs/user-guides/system-addons/xvp-settlement/overview)
* [Reveal secret](/docs/user-guides/system-addons/xvp-settlement/actions/reveal-secret)
