Skip to main content
SuperVaults Strategy Canvas — three-column canvas with Redemption Strategy, Vault Asset Pool center node, and Deposit Strategy columns The Strategy Canvas is where curators build rule-based automation for vault operations. Strategies evaluate indicator values on configurable tick intervals and dispatch DeFiX intents to the OMS when conditions are met. Navigate to /strategy/{chainId}/{vaultAddress} or select a vault from the dropdown.

Canvas Layout

Strategies are partitioned into three columns by action type:
ColumnActionDescription
InflowDEPOSITDeploy capital into yield sources
OutflowWITHDRAWALUnwind positions to fulfill redemptions
RebalanceREBALANCERedistribute capital between yield sources
Each strategy card displays its name, state, tick interval, and last intent result.

Strategy States

StateDescription
CREATEDDefined but never activated
IDLEReady, not ticking
RUNNINGActively evaluating rules each tick
PAUSEDHalted by vault kill switch
ERRORRuntime error (hover for details)
ARCHIVEDSoft-deleted
Toggle between IDLE and RUNNING using the state control on each card.

Kill Switch

The vault-level kill switch (top of canvas) pauses all strategies simultaneously. When engaged, all RUNNING strategies transition to PAUSED. Use this for emergency stops without toggling individual strategies. API: PATCH /api/v1/vaults/{vault_id} with { "kill_switch": true }

Creating a Strategy

Click New Strategy to open the creation form.

Core Fields

FieldDescription
NameHuman-readable identifier
ActionDEPOSIT, WITHDRAWAL, or REBALANCE
Tick IntervalEvaluation frequency in milliseconds
CooldownMinimum time between intent dispatches (milliseconds)
PriorityExecution order within column (lower = higher priority)

Indicators

Named variables evaluated each tick. Define with a name (e.g., usdc_morpho_apy) and a data source expression. Live values are visible by hovering over a running strategy’s shard state.

Rule Tree

Boolean logic tree that determines when the strategy dispatches an intent:
Node TypeDescription
EXPRindicator op value (e.g., apy > 0.05)
ANDAll children must be true
ORAt least one child must be true
NOTNegates a child rule
VOTEN-of-M children must be true

Action Config

FieldDescription
size_exprPosition size expression (e.g., free_assets * 0.5)
objectiveOptimization goal
execution_nameTarget hook name
target_addressYield source address
max_slippage_bpsMaximum acceptable slippage in basis points

Conviction Config

Controls how many consecutive passing ticks are required before dispatching an intent. Prevents excessive churn on noisy signals.

Viewing Intents

Each strategy card has an Intents tab showing its dispatch history: intent ID, action, status (Processing/Completed/Failed/Cancelled), size, slippage, gas used, and timestamps. Vault-level intent history is also available across all strategies.

Live Shard State

Running strategies maintain in-memory shards with current indicator values, active intent count, and last tick timestamp. GET /api/v1/engine/shards/{vault_id}/state returns this state. A 404 means no shard exists (no running strategies).

Drag-to-Reorder

Drag strategy cards within a column to change priority order. When multiple strategies trigger simultaneously, higher-priority strategies dispatch first.

Optimistic Concurrency

Strategy updates require a version field. If two clients edit the same strategy, the second write returns 409 Conflict. Refresh and retry with the latest version.

OMS Session Key

Before strategies can dispatch intents, the vault must have a valid OMS session key — a delegated signing key that authorises the OMS to execute onchain actions on behalf of the vault. If no valid session key exists, the canvas displays an OMS Canvas Gate overlay blocking automation. Use the Session Key panel (accessible via VaultStrategyHeaderControls in the header) to grant or renew.

Session Key States

StateDescription
ReadyValid key exists, automation can run
Not ReadyNo key or key expired — canvas gate shown
Pending RotationRotation initiated but not yet completed onchain

Grant / Renew Flow

  1. Open the session key panel from the strategy header controls
  2. Click Grant (new) or Renew (expiring soon) — the UI calls the OMS grant/rotation endpoint and returns EVM calldata
  3. Sign the transaction with your connected wallet
  4. Call Complete Rotation after the transaction confirms
The UI polls readiness every 45 seconds; polling accelerates to every 20 seconds while the signing popover is open.

Session Key API Endpoints (OMS)

EndpointMethodDescription
/defix/vaults/{vault_id}/session-key/readinessGETCheck if key is ready
/defix/vaults/{vault_id}/session-key/grantGETGet grant calldata
/defix/vaults/{vault_id}/session-key/rotationGETGet renewal calldata
/defix/vaults/{vault_id}/session-key/rotation/completePOSTComplete rotation
/defix/vaults/{vault_id}/session-key/rotation/cancelPOSTCancel pending rotation
/defix/vaults/{vault_id}/session-key/revokeGETGet revoke calldata
See OMS API for full endpoint documentation.

API Reference

EndpointMethodDescription
/api/v1/strategies?vault_id={id}&limit=50GETList strategies
/api/v1/strategiesPOSTCreate strategy
/api/v1/strategies/{id}PUTUpdate (requires version)
/api/v1/strategies/{id}DELETEDelete strategy
/api/v1/strategies/{id}/statePATCHTransition state
/api/v1/strategies/{id}/reloadPOSTHot-reload running strategy
/api/v1/strategies/{id}/intents?limit=50GETStrategy intent history
/api/v1/vaults/{vault_id}GET/PATCHKill switch and rate limits
/api/v1/engine/statusGETActive shard count
/api/v1/engine/shards/{vault_id}/stateGETLive indicator values
vault_id in the Strategy Engine uses {chainId}:{vaultAddress} format (e.g., 8453:0xdef...). Erebor uses separate chain_id and vault_address parameters.