Skip to content

Risk fuses

developer

All 15 fuse kinds, the required capsule set, bounds, and how fuses compile.

What a fuse is

A risk fuse is a typed, checkable constraint. It either bounds what a compiled artifact may instruct (position weight, order notional, turnover) or defines a hard stop — a “blow” condition that halts the session. Fuses are all binding: every capsule lists them verbatim, the compiler checksums them (fuseChecksum), and each fuse kind may appear at most once per Coil.

The 15 fuse kinds

The description column renders live from describeFuse() in @hiss/core — the same one-liners that appear inside capsules and checklists.

KindRequiredParamsBoundsdescribeFuse (example instance)
maxPositionWeightcapsule-requiredmaxBps(0, 10000] bpsNo position may exceed 40.0% of the strategy.
maxSingleOrderNotionalcapsule-requiredmaxUsd> 0No single order above $500.
maxDailyTurnovercapsule-requiredmaxBps(0, 10000] bpsDaily turnover capped at 20.0% of the book.
maxDrawdownAlertoptionalalertPctpercentAlert and pause if drawdown exceeds 15%.
maxVolatilityBucketoptionalbucketlow | medium | highOnly medium-volatility assets are in scope.
restrictedSymbolsoptionalsymbols[]plain tickers only (^[A-Z][A-Z0-9.]{0,9}$)Never trade: TSLA.
marketHoursOnlyoptionalOrders only during regular market hours.
earningsBlackoutoptionaldaysBefore, daysAfterdaysNo trades 2d before through 1d after earnings.
manualConfirmAboveNotionaloptionalthresholdUsdUSDExplicit human confirmation for any order above $100.
noOptionscapsule-requiredNo options, ever.
noMargincapsule-requiredNo margin, ever.
noCryptoUnlessAllowedoptionalallowed?[]empty = none allowedNo crypto.
noLeveragedETFsUnlessAllowedoptionalallowed?[]empty = none allowedNo leveraged ETFs.
stopIfOracleUnhealthyoptionalStop if any referenced price feed is stale, paused, or unavailable.
stopIfReceiptMismatchoptionalStop if the Coil's receipt hash no longer matches the manifest.

Required for every capsule

REQUIRED_CAPSULE_FUSES — a capsule cannot compile without all 5:

  • maxPositionWeight
  • maxSingleOrderNotional
  • maxDailyTurnover
  • noOptions
  • noMargin

A missing one fails validation with MISSING_REQUIRED_FUSE. Note noOptions is in the required set: the default posture is equities-only, and a Coil author must deliberately remove that stance (and re-validate) before a capsule can reference options at all.

Validation rules

  • DUPLICATE_FUSE — each fuse kind may appear at most once.
  • FUSE_BOUNDSmaxPositionWeight and maxDailyTurnover must be in (0, 10000] bps; maxSingleOrderNotional must be positive.
  • FUSE_SYMBOL — restricted symbols must be plain tickers, never addresses.
  • MISSING_REQUIRED_FUSE — capsule compilation only; the five required kinds above.

The default fuse set

New Coils start with eleven fuses — the five required kinds plus manual-confirm above $100, market-hours-only, crypto and leveraged-ETF exclusions, and the two stop fuses:

defaultFuses()
"fuses": [
  { "kind": "maxPositionWeight", "maxBps": 4000 },
  { "kind": "maxSingleOrderNotional", "maxUsd": 500 },
  { "kind": "maxDailyTurnover", "maxBps": 2000 },
  { "kind": "manualConfirmAboveNotional", "thresholdUsd": 100 },
  { "kind": "marketHoursOnly" },
  { "kind": "noOptions" },
  { "kind": "noMargin" },
  { "kind": "noCryptoUnlessAllowed" },
  { "kind": "noLeveragedETFsUnlessAllowed" },
  { "kind": "stopIfOracleUnhealthy" },
  { "kind": "stopIfReceiptMismatch" }
]

$HISS is independent research software in paper mode — not investment advice, and not affiliated with Robinhood, Bankr, or Chainlink.