← 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
Secondary metrics
Exclusions, decided before the run
- None after the fact. Intents the partner cannot tie to signatures are counted as 'unattributed', not dropped.
Acceptance
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"
]
}