The seven stages
A transaction submitted through Sinker passes through seven distinct stages. Each stage transition is detected from the live Yellowstone gRPC stream and written to the lifecycle log.Lifecycle entry
Every bundle submission produces aLifecycleEntry written to lifecycle.jsonl. You can read all entries with sinker.getLifecycle() or filter to a single transaction with tx.lifecycle().
LifecycleEntry fields
string
Unique identifier assigned by the Jito block engine (or a synthetic ID for
faulted/errored submissions).
number
The slot at which the bundle was submitted.
string | null
The validator identity pubkey scheduled to lead
slot_submitted.number
The tip amount included in this bundle attempt, in lamports.
TipSnapshot | null
The live Jito floor snapshot captured at submit time (
p50 / p75 / p95 / ema / stale).number | null
The slot the tip transaction was processed in — may drift from
slot_submitted.number
Submission attempt number for this bundle (1-based; increments on retry).
string
Strategy that produced this bundle:
agent | bypass | naive.'reflex' | 'cortex' | ''
The decision tier the agent submitted under. Empty for script / bypass / naive submissions.
See AI Agent → Two-tier router.
boolean | null
Reflex-only: whether this submission was escalated to the LLM (Cortex).
null when not in reflex mode.string
ISO 8601 timestamp of submission.
BundleStage
Current lifecycle stage:
submitted | landed | processed | confirmed |
finalized | failed | invalid | unknownFailureClass | null
Structured failure class when
stage is failed. See Fault Injection
for the full taxonomy.number | null
Wall-clock milliseconds from
confirmed to finalized. Observed values on
mainnet: ~11,700–13,000 ms (~29–32 slots) — the protocol’s finalization depth.
(An earlier revision reported ~2.3 s here; that was an instrumentation artifact,
since fixed — see the lifecycle log notes.)string | null
The AI agent’s chain-of-thought for this bundle: tip selection rationale,
failure pattern analysis, and escalation decisions.
string[]
The
tx_id values from /tx/enqueue that were included in this bundle.Commitment levels
Sinker uses
confirmed commitment when fetching blockhashes, giving 148 valid slots (~59s) vs 118 slots (~47s) for finalized. This is meaningful when targeting a specific 4-slot Jito leader window.
Observed latencies (mainnet-beta)
From real bundle submissions during development:
Variance in
submitted → confirmed is primarily driven by leader window alignment at submission time.