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
Unique identifier assigned by the Jito block engine (or a synthetic ID for
faulted/errored submissions).
The slot at which the bundle was submitted.
The validator identity pubkey scheduled to lead
slot_submitted.The tip amount included in this bundle attempt, in lamports.
ISO 8601 timestamp of submission.
Current lifecycle stage:
submitted | landed | processed | confirmed |
finalized | failed | invalid | unknownStructured failure class when
stage is failed. See Fault Injection
for the full taxonomy.Wall-clock milliseconds from
confirmed to finalized. Observed values on
mainnet: ~2,300–2,400ms (~5–6 slots).The AI agent’s chain-of-thought for this bundle: tip selection rationale,
failure pattern analysis, and escalation decisions.
The
tx_id values from /tx/enqueue that were included in this bundle.Commitment levels
| Level | Slots from tip | Description |
|---|---|---|
processed | 0 | Included in a block. Can reorg. |
confirmed | ~2 | Supermajority vote. Reorg rate <0.1% on mainnet. |
finalized | ~32 | Irreversible under BFT assumption. |
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:| Bundle | submitted → confirmed | confirmed → finalized |
|---|---|---|
| 160974fe | 11,875ms | 2,480ms |
| b9e8b294 | 13,354ms | 2,355ms |
| 4359b58d | 13,053ms | — |
submitted → confirmed is primarily driven by leader window alignment at submission time.