outcome.
The three outcomes
alert
Notify only. The engine opens an alert and emits the portfolio_wallet.risk.alert.triggered webhook. No funds move and no action is created. Use this to observe a source before deciding to act.
prevent_additional_allocation
While the alert is open, the rebalancer is blocked from buying into the affected yield source. Funds already in the source stay put; the engine simply stops adding more. Once the metric recovers and the alert resolves, allocation into the source is allowed again.
exit_position
The engine exits the position in the affected source. It redeems the holdings and redeploys them into the wallet’s other eligible yield sources, falling back to the wallet’s cash account when no other yield source is available. This is the strongest response and is meant for a source you want out of entirely on breach.
Approval modes
Any non-alert outcome requires an approvalMode:
automatic: the engine carries out the outcome on its own as soon as the rule breaches.approval_required: the engine creates the action and waits for you to approve it before anything happens.
alert outcomes have no approval mode.
Actions
Forprevent_additional_allocation and exit_position outcomes (and any approval_required outcome), the engine creates a risk action tied to the alert. The action moves through these statuses:
| Status | Meaning |
|---|---|
pending_approval | Waiting for you to approve or reject (approval_required) |
pending_auto_execution | Queued to run on its own (automatic) |
executing | In progress |
executed | Completed |
rejected | Declined, or cancelled because the rule changed, paused, or was deleted |
failed | Execution did not complete |
portfolio_wallet.risk.action.status_changed webhook.
List actions
status and outcome, and scope to one or more wallets.
Approve or reject an action
Forapproval_required actions, submit your decision with a PATCH:
"approved" to execute the action, or "rejected" to decline it. Approving an exit_position action begins the redeem-and-redeploy flow; rejecting it leaves the position untouched (the alert stays open until the metric recovers).
If a rule is edited, paused, or deleted while one of its actions is still pending, that action is rejected automatically and a
portfolio_wallet.risk.action.status_changed webhook is emitted.Monitoring
Drive your automation off the webhooks rather than polling:portfolio_wallet.risk.alert.triggered: a rule breached and an alert opened.portfolio_wallet.risk.action.status_changed: an action was created, approved, executed, rejected, or failed.
GET /v2/wallets/risk/actions polling.
Next steps
- Alerts and Recovery: how alerts open and auto-resolve.
- Creating Risk Rules: rule anatomy and the create/edit/delete flow.