Frameworks

Supported open-source frameworks, pinned versions, capability matrix.

GET/runtime/frameworks

Which frameworks the runtime executes, at which exact versions, against which venues.

Response — 200

json
{
  "frameworks": [
    {
      "id": "freqtrade",
      "language": "python",
      "version": "2026.6",
      "image_digest": "sha256:beb99f2e…",
      "venues": ["hyperliquid", "binance"],
      "strategy_shape": "IStrategy subclass (populate_indicators / populate_entry_trend / populate_exit_trend)",
      "docs": "https://www.freqtrade.io/en/stable/strategy-customization/"
    },
    {
      "id": "nautilus",
      "language": "python",
      "version": "1.220.0",
      "image_digest": "sha256:8a41cc07…",
      "venues": ["polymarket", "lighter", "hyperliquid"],
      "strategy_shape": "nautilus_trader Strategy with venue-native instrument IDs",
      "docs": "https://nautilustrader.io/docs/"
    }
  ]
}

Pinning

image_digest is the contract: every deployment and backtest records the digest it ran on, and the runtime never upgrades a running deployment underneath you. Creates use the digest currently listed here; to stay on an older listed digest, pass it explicitly ("image_digest" on POST /runtime/deployments) — new versions appear as new entries and never change what an existing or pinned deployment runs.

What's in the image

Your code is one strategy file, imported inside the framework's official image — so "will my imports work" is answered by the image, not by us:

  • freqtrade: the official image's full dependency set — talib.abstract, qtpylib, freqtrade's technical, numpy/pandas. Not included: pandas_ta or other third-party indicator packages; an unavailable import fails at validation with strategy_invalid naming the module, not silently at 3am.
  • nautilus: nautilus_trader and its standard dependencies.

Multi-file strategies and custom packages aren't supported in stage 1 — inline the helper into the strategy file. (Requirements-per-deployment is a tracked candidate in the design log.)

Bring the strategy you already have

The point of running open frameworks rather than a proprietary DSL: your existing bot works here. A freqtrade strategy file that runs locally is the same file you send to POST /runtime/deployments — same class, same config keys (guide). Same for a Nautilus strategy (guide). No translation layer, no lock-in either direction: stop deploying and your strategy still runs anywhere the framework does.