Skip to the instrument
QUICKSILVER
engine · idleOpen Sniper

QUICKSILVER

—— CALIBRATING

Solana · trigger execution

Write the condition. Walk away.

QUICKSILVER watches Solana for the conditions you write down and executes when they hold. Every stage on that path carries its own clock.

Reduced motion is on, so the scrubbed film is not loaded. Nothing below it is missing.

01

Operating
principles

Four rules the engine is built around. They are constraints, not slogans, and each one costs us something.

  • State the condition, not the intention.

    A rule lives in your browser as a trigger, its gates and one size. The engine executes that and nothing inferred from it, so a gate it cannot evaluate stops the rule rather than passing it.

    costs us every inference we might have made for you
  • Every stage on the path is timed.

    Observe, decide, build, sign, submit, confirm. Six clocks, not one, so a slow stage can be named instead of averaged away.

  • An unmeasured claim is not a feature.

    Numbers appear on this page only after there is a corpus behind them. Until then they read as unknown, on purpose.

  • The operator can stop it, always.

    Halt is an ordinary button in the console and a SHIFT+H shortcut anywhere on the page. It refuses arming, tears down what is armed, and does it before the next stage.

02

Write the rule. Watch it wait.

The composer below runs. Its conditions are everything the engine can watch rather than a shortened list, the clause rail validates as you type, arming is a state transition the console counts, and halt tears it down. It has no endpoint: this build configures none, so nothing is signed, and every reading it cannot take stays a dash.

Rule composer

draft · unsaved
When
Pool liquiditySOL
Pool ageSEC
Holdersat leastADDR
Then
SizefixedSOL
Slippageabort above%
idle

Console

rpc · not attached
Halt takes effect before the next stage, from the button or the shortcut.
Slot——
Subscriptions——
Armed rules0
Stage clock——ms
quicksilver attach
no attach attempted in this session
the console reports what it can see, and nothing else
quicksilver 
Execution feedempty
TimeRuleEventMarketSizeStageSignatureLatency

No executions recorded

The feed writes one row when an armed rule fires. A row requires a transaction signature, and the type has no nullable signature field, so a receipt without one cannot be written. It stays empty until then.

03

Distribution,
not average.

One flattering average is the easiest number in this category to publish and the least useful one to read. The tail is where a trigger product actually fails, so the observatory plots the whole distribution and marks the three quantiles that decide whether a rule was worth arming.

Latency observatory

awaiting samples
end to end · observe → confirm
MS · SCALE UNSETDENSITYQUANTILES UNSETp50 · p90 · p99 HAVE NO POSITION ON THIS AXISNO SAMPLES · INSTRUMENT IDLENO AXIS SCALE AND NO MARKER POSITION IS IMPLIED BY THIS DRAWING
Quantile readout
p50
——ms
p90
——ms
p99
——ms
Corpus
state
empty
samples
——
window
——
source
——

The plot reads a distribution because an average hides the tail, and the tail is the part that costs money. No sample has been taken, so the scale is unset and the quantiles are a single bracket over the whole axis rather than three positions you could measure off the picture.

04

Three events, defined precisely.

A trigger is only useful if you can say exactly what fires it. The engine reads these three. Social and messaging triggers are held back because we cannot yet state their detection characteristics honestly.

  1. Trending surface entry

    A token appears on a major trending surface. The surfaces publish ranked lists; QUICKSILVER watches the ones that expose a feed and polls the ones that do not.

    Rank movement is noisy by design, so the trigger fires on entry into a band you set, not on any change. You choose the surface, the band, and how long a token must hold it before the rule counts the event as real. That hold requirement is the whole trigger: without it you are reacting to jitter.

    Watched inputs
    • surface rank feed
    • entry band
    • hold duration
    Characteristics
    unmeasured
    source
    ——
    detection
    ——ms
    coverage
    ——
  2. Enhanced Token Info purchase

    A team pays to enhance its pair listing. The payment settles on chain, which makes it observable the moment it lands rather than when a page updates.

    Watched inputs
    • payment instruction
    • pair binding
    Characteristics
    unmeasured
    source
    ——
    detection
    ——ms
    coverage
    ——
  3. Bonding curve graduation

    A curve completes and liquidity migrates to an AMM pool. The migration is an instruction, so the event has an exact slot rather than an approximate minute.

    Watched inputs
    • migration instruction
    • destination pool
    • slot
    Characteristics
    unmeasured
    source
    ——
    detection
    ——ms
    coverage
    ——
05

Six stages, each one timed.

The stages are a real sequence, so they are numbered. Each carries its own clock; the observatory above sums them. A stage with no reading has not been measured, and we will not fill it in from the others.

  1. 01

    Observe

    The event arrives on a subscription or a poll. The clock starts here, not at your click.

    stage clock——ms
  2. 02

    Decide

    Every clause in the rule is evaluated against the state at that slot.

    stage clock——ms
  3. 03

    Build

    The transaction is assembled: route, accounts, compute budget, fee.

    stage clock——ms
  4. 04

    Sign

    Signed by the key you nominated, in the place you nominated it.

    stage clock——ms
  5. 05

    Submit

    Handed to the sender you configured, with the retry policy you set.

    stage clock——ms
  6. 06

    Confirm

    The row closes when the slot confirms, and the receipt is written.

    stage clock——ms
06

What we will claim, and what we will not.

A latency number means nothing without three things beside it: what was measured, where the clock started, and how many samples it came from. Those three are what separate a measurement from a slogan, and they are the reason this page publishes a distribution or publishes nothing.

So this page ships empty readings. The observatory is built, the stage clocks are wired, and the quantiles will populate the moment there is a corpus worth publishing. Until then the honest value is a dash, and a dash is what you get.

Claim register

reviewed before release
ClaimEvidence requiredStatus
Latency distribution, p50 / p90 / p99Per-stage timestamps and a published sample corpusInstrument built, corpus not published
Fill price against a reference quoteA named quote source and a written fill modelFill model not defined. Claim withheld
Rule success rateA stated denominator: every armed rule, not every attemptDenominator defined, no data yet
UptimeA probe operated by someone other than usProbe not commissioned

The quantiles appear when there is a corpus to compute them from, measured on this engine, on mainnet, at a stated commitment. Until that exists the axis carries no scale, because a scale is itself a claim.

Write the condition once.

The engine holds it, watches for it, and reports what it did, with the clock running the entire time.

Open the composer