Search

Search benchmark pages, protocols, published runs and the docs

Rout

Protective exit on outside flow

Sell a position this sniper holds when outside flow after a launch turns weak, with its own tip and a slippage that may widen if the sale reverts. The response time is not measured yet.

How this differs from a gross-buy threshold guard

external_flow sums net flow (buys minus sells) and judges it at one exact slot after creation. A typical launch guard sums outside buys and acts the moment a total is exceeded.

So a continuous guard in Rout is a ladder of rules judged at successive slots, at least one slot behind the flow it judges. Gross-buy semantics need elapsed_flow, whose speed depends on an outside provider's aggregation. Protocol A1 measures both.

The sell rule

examples/external-flow-host-required.json · sells
{
  "proceeds": "native",
  "rules": [
    {
      "name": "g1-fast-fail-weak-flow",
      "firing": "once",
      "when": {
        "external_flow": {
          "venues": {
            "one_of": [
              "pump-fun"
            ]
          },
          "quote_mint": "So11111111111111111111111111111111111111112",
          "through_slots": 3,
          "net_quote_raw": {
            "at_least": 0,
            "at_most": 9999999999
          }
        }
      },
      "sell": {
        "amount": "all",
        "slippage": {
          "start_bps": 2000,
          "max_bps": 5000
        }
      }
    }
  ]
}
PartWhat it does
firing: onceFires at most once; firings are tracked by rule name.
external_flow.through_slotsThe exact creation-relative slot at which flow is judged.
net_quote_rawBounds on buys less sells, in quote base units (lamports here). at_least 0, at_most 9999999999 means: under 10 SOL net.
sell.amount: allSells the whole holding.
slippage start_bps → max_bpsBuilt at 20%; a reverted sale may widen to 50%. Never unbounded.
tip_lamports (optional)A tip for this rule's sales only. Absent inherits execution.tip_lamports.

What the host must provide

Rout/affiliate wallet exclusions, versioned, and proof that the venue-activity stream covered the whole slot span. A definition can't replace either with a hand-written wallet list. A host without them refuses the rule when it builds.

Missing, stale or partial coverage becomes Unknown, and dependent rules fail closed: they don't act on partial data. Engine ask E16 tests this with fault injection. Source: d.ts:599-640; rout-provider-sdk docs/INTEGRATION.md.

How its speed will be measured

Protocol A1 anchors on the threshold-cross slot that the verifier recomputes from chain data, and reports exits landed within the window, false and missed triggers, and the outside flow that entered before the exit. Read A1.

On this page