Skip to main content
The OMS (Order Management System) implements the DeFiX v0.1 protocol: a standardized intent interface for DeFi vault operations. It receives intents from the Strategy Engine and executes them on-chain. Base URL: https://oms.superform.xyz Auth: Authorization: Bearer <jwt> OpenAPI spec: oms-openapi.json
The OMS is primarily backend-facing. In normal operations, the Strategy Engine submits intents automatically when strategies trigger. Direct OMS access is relevant for custom strategy implementations or advanced automation.

Intent Lifecycle

Submit → Processing → Completed
                   ↘ Failed
                   ↘ Cancelled (only while Processing)
Terminal states (Completed, Failed) cannot be modified.

Endpoints

Submit Intent

POST /defix/intents
{
  "vault_id": "8453:0xdef...",
  "action": "DEPOSIT",
  "action_config": {
    "size_expr": "1000000000",
    "execution_name": "MorphoDepositHook",
    "execution_address": "0xHookContract...",
    "target_address": "0xMorphoVault...",
    "from_address": "0xVaultContract...",
    "max_slippage_bps": 50,
    "execution_params": {}
  },
  "auth_signing": {
    "proof": "0xmerkleproof...",
    "root": "0xmerkleroot..."
  }
}
Response:
{
  "id": "intent-uuid",
  "status": "Processing",
  "created_at": "2025-03-01T10:00:00Z"
}

Get Intent

GET /defix/intents/{intent_id}
{
  "id": "intent-uuid",
  "vault_id": "8453:0xdef...",
  "action": "DEPOSIT",
  "status": "Completed",
  "created_at": "2025-03-01T10:00:00Z",
  "completed_at": "2025-03-01T10:01:32Z",
  "tx_hash": "0xabc...",
  "gas_used": 180000,
  "error": null
}

Cancel Intent

POST /defix/intents/{intent_id}/cancel
Only Processing intents can be cancelled. Returns 409 Conflict if the intent is already terminal.

Get Intent Events

GET /defix/intents/{intent_id}/events
State transition log:
{
  "events": [
    { "timestamp": "2025-03-01T10:00:00Z", "event_type": "submitted", "details": {} },
    { "timestamp": "2025-03-01T10:01:00Z", "event_type": "processing", "details": { "attempt": 1 } },
    { "timestamp": "2025-03-01T10:01:32Z", "event_type": "completed", "details": { "tx_hash": "0xabc...", "gas_used": 180000 } }
  ]
}

Intent Status Values

StatusDescription
ProcessingQueued or being executed
CompletedSuccessfully executed on-chain
FailedExecution failed (see error in intent detail)
CancelledCancelled before execution

DeFiX v0.1 Protocol Notes

  • Intents are idempotent: submitting the same intent twice returns the existing intent (based on vault + action + config hash)
  • The OMS handles nonce management, gas estimation, and transaction broadcasting
  • Failed intents include error messages and may be retried by the Strategy Engine
  • The OMS validates the merkle proof in auth_signing before broadcasting

Summary

EndpointMethodDescription
/defix/intentsPOSTSubmit DeFiX intent
/defix/intents/{id}GETGet intent state
/defix/intents/{id}/cancelPOSTCancel pending intent
/defix/intents/{id}/eventsGETIntent event log