Search

Search benchmark pages, protocols, published runs and the docs

Rout
← Protocols
protocols/S0-shadow-execution.json · v1

S0 · Shadow benchmark of a partner's own execution (no keys, no spend)

A partner's current guard, exit and launch transactions have a measurable landing rate, Δslot tail, fail rate and cost per landed transaction. Nothing is compared and nothing is sent: this is the baseline every later head-to-head (A2, B, C) is judged against.
draft
6 values must be agreed before this can run
$.parameters.bootstrap_resamples · $.parameters.landing_window_slots · $.parameters.window_start · $.parameters.window_end · $.parameters.intent_kinds · $.parameters.min_intents
Check with python3 -m rbench.prereg check protocols/S0-shadow-execution.json.

Design

Why it matters
The partner learns how its own execution performs today, from chain data it can re-check, without giving Rout keys or traffic. Rout learns the workload it would have to beat.
Unit
One partner intent: a transaction the partner decided to send, identified by the partner with the on-chain transaction that triggered it (or, failing that, its decision time) and every signature it sent for it.
Primary metric
landed_within_window: Share of all partner intents with a landed_ok copy at slot - anchor.slot <= landing_window_slots. anchor = the slot of the trigger transaction the partner names (anchor.kind = trigger_tx); intents with only a decision time are reported separately, never pooled.
Denominator
Every intent the partner made in the agreed window and kinds. A gap in the partner's own sequence numbers is reported as missing data, never filled.
Randomization
No assignment. The partner fixes the time window and the intent kinds before sharing, and shares every intent in it, failures included. (none)
Stopping rule
Single analysis of the agreed window.

Arms

ArmWhat it does
partner pathThe partner's existing sending path, exactly as it runs today. Route labels are the partner's own and stay partner-confidential.

Secondary metrics

MetricDefinition
delta_slot_quantilesΔslot quantiles over landed intents with order-statistic intervals.
fail_classesEvery intent by outcome class: landed_ok, landed_err (with the on-chain error), not_landed.
double_landed_intentsIntents with more than one landed copy: executions the partner did twice.
spend_per_landedChain-observed fees, plus tips where the partner names its tip accounts, divided by landed intents.
route_win_shareFor intents sent through several routes, which route's copy landed (partner-confidential).

Exclusions, decided before the run

  • None after the fact. Intents the partner cannot tie to signatures are counted as 'unattributed', not dropped.

Acceptance

CriterionAgreed value

Descriptive study: no pass/fail.

What each tier hides

Signatures, slots and ids are never redacted: they are how anyone re-checks a result. A run can't be published wider than the tier it was registered at.

Partner-confidential removes
nothing
Public also removes
mint, size_raw, quote, endpoint_region, refusal_code, send_error, route, host_id, nonce_account, stratum

Waits on

PARTNER-SIGNATURESSHADOW-IMPORTERLICENCE

The file

protocols/S0-shadow-execution.json
{
  "protocol_id": "S0-shadow-execution",
  "version": 1,
  "experiment": "S0",
  "status": "draft",
  "title": "S0 · Shadow benchmark of a partner's own execution (no keys, no spend)",
  "hypothesis": "A partner's current guard, exit and launch transactions have a measurable landing rate, Δslot tail, fail rate and cost per landed transaction. Nothing is compared and nothing is sent: this is the baseline every later head-to-head (A2, B, C) is judged against.",
  "customer_value": "The partner learns how its own execution performs today, from chain data it can re-check, without giving Rout keys or traffic. Rout learns the workload it would have to beat.",
  "unit": "One partner intent: a transaction the partner decided to send, identified by the partner with the on-chain transaction that triggered it (or, failing that, its decision time) and every signature it sent for it.",
  "arms": [
    {
      "arm_id": "partner_path",
      "description": "The partner's existing sending path, exactly as it runs today. Route labels are the partner's own and stay partner-confidential."
    }
  ],
  "primary_metric": {
    "id": "landed_within_window",
    "definition": "Share of all partner intents with a landed_ok copy at slot - anchor.slot <= landing_window_slots. anchor = the slot of the trigger transaction the partner names (anchor.kind = trigger_tx); intents with only a decision time are reported separately, never pooled."
  },
  "secondary_metrics": [
    {
      "id": "delta_slot_quantiles",
      "definition": "Δslot quantiles over landed intents with order-statistic intervals."
    },
    {
      "id": "fail_classes",
      "definition": "Every intent by outcome class: landed_ok, landed_err (with the on-chain error), not_landed."
    },
    {
      "id": "double_landed_intents",
      "definition": "Intents with more than one landed copy: executions the partner did twice."
    },
    {
      "id": "spend_per_landed",
      "definition": "Chain-observed fees, plus tips where the partner names its tip accounts, divided by landed intents."
    },
    {
      "id": "route_win_share",
      "definition": "For intents sent through several routes, which route's copy landed (partner-confidential)."
    }
  ],
  "parameters": {
    "confidence": 0.95,
    "quantiles": [
      0.5,
      0.9,
      0.95,
      0.99
    ],
    "bootstrap_resamples": null,
    "landing_window_slots": null,
    "commitment": "finalized",
    "window_start": null,
    "window_end": null,
    "intent_kinds": null,
    "min_intents": null,
    "strata": [
      "intent_kind",
      "congestion_tercile",
      "leader_window_position",
      "route"
    ]
  },
  "randomization": {
    "unit": "none (observational)",
    "method_id": "none",
    "method": "No assignment. The partner fixes the time window and the intent kinds before sharing, and shares every intent in it, failures included.",
    "strata": []
  },
  "denominator": "Every intent the partner made in the agreed window and kinds. A gap in the partner's own sequence numbers is reported as missing data, never filled.",
  "exclusions": [
    "None after the fact. Intents the partner cannot tie to signatures are counted as 'unattributed', not dropped."
  ],
  "stopping_rule": "Single analysis of the agreed window.",
  "acceptance": {},
  "redact_by_tier": {
    "partner_confidential": [],
    "public": [
      "mint",
      "size_raw",
      "quote",
      "endpoint_region",
      "refusal_code",
      "send_error",
      "route",
      "host_id",
      "nonce_account",
      "stratum"
    ]
  },
  "requires": [
    "PARTNER-SIGNATURES",
    "SHADOW-IMPORTER",
    "LICENCE"
  ]
}