← Protocols
protocols/STEP0-protection-gap.json · v1
Step 0 · Launch-guard protection gap on public launches
Between the slot at which external buy flow on a new launch first reaches a threshold and the slot of the creator's first exit, a material amount of external flow still enters. If the gap is ~0 slots everywhere, a faster guard has nothing to win and a guard-speed claim is not worth making.
draft
5 values must be agreed before this can run
$.parameters.thresholds_lamports · $.parameters.observation_window_slots · $.parameters.max_signature_pages_per_mint · $.parameters.mint_selection · $.parameters.launchpad
Check with
python3 -m rbench.prereg check protocols/STEP0-protection-gap.json.Design
- Why it matters
- Sizes the window any faster launch guard could close, whoever runs it. Useful to any launch platform whether or not it uses Rout.
- Unit
- One launch (mint) from a published mint list.
- Primary metric
gap_slots: exit_slot - cross_slot for launches where the creator exits after the threshold is crossed (rbench.step0).- Denominator
- Every mint in the published input list, including excluded (truncated/no_history) ones.
- Randomization
- Mint list fixed and hashed before extraction (none)
- Stopping rule
- Single analysis after extraction of the whole pre-registered list.
Arms
Secondary metrics
Exclusions, decided before the run
- Mints whose history exceeds max_signature_pages_per_mint are labelled truncated and counted, 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
- nothing
Waits on
APPROVE-STEP0
The file
protocols/STEP0-protection-gap.json
{
"protocol_id": "STEP0-protection-gap",
"version": 1,
"experiment": "STEP0",
"status": "draft",
"title": "Step 0 · Launch-guard protection gap on public launches",
"hypothesis": "Between the slot at which external buy flow on a new launch first reaches a threshold and the slot of the creator's first exit, a material amount of external flow still enters. If the gap is ~0 slots everywhere, a faster guard has nothing to win and a guard-speed claim is not worth making.",
"customer_value": "Sizes the window any faster launch guard could close, whoever runs it. Useful to any launch platform whether or not it uses Rout.",
"unit": "One launch (mint) from a published mint list.",
"arms": [
{
"arm_id": "observed",
"description": "Observation only; no transactions sent."
}
],
"primary_metric": {
"id": "gap_slots",
"definition": "exit_slot - cross_slot for launches where the creator exits after the threshold is crossed (rbench.step0)."
},
"secondary_metrics": [
{
"id": "entered_after_lamports",
"definition": "External buy lamports in slots cross_slot < s <= exit_slot."
},
{
"id": "share_crossed",
"definition": "Share of all input launches whose external flow reached T within the window (Wilson CI)."
},
{
"id": "outcome_mix",
"definition": "Counts of exit_after_cross, crossed_no_exit_in_window, exit_before_cross, never_crossed, excluded."
}
],
"parameters": {
"confidence": 0.95,
"quantiles": [
0.5,
0.9,
0.95,
0.99
],
"bootstrap_resamples": 0,
"thresholds_lamports": null,
"observation_window_slots": null,
"max_signature_pages_per_mint": null,
"flow_mode": "gross_buys",
"mint_selection": null,
"launchpad": null,
"block0_policy": "report_both"
},
"randomization": {
"unit": "none (observational)",
"method_id": "none",
"method": "Mint list fixed and hashed before extraction",
"strata": []
},
"denominator": "Every mint in the published input list, including excluded (truncated/no_history) ones.",
"exclusions": [
"Mints whose history exceeds max_signature_pages_per_mint are labelled truncated and counted, not dropped."
],
"stopping_rule": "Single analysis after extraction of the whole pre-registered list.",
"acceptance": {},
"redact_by_tier": {
"partner_confidential": [],
"public": []
},
"requires": [
"APPROVE-STEP0"
]
}