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.
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 youEvery 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.
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
Console
quicksilver attach
no attach attempted in this session
the console reports what it can see, and nothing else
quicksilver | Time | Rule | Event | Market | Size | Stage | Signature | Latency |
|---|
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.
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- p50
- ——ms
- p90
- ——ms
- p99
- ——ms
- 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.
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.
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
- ——
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
- ——
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
- ——
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.
- 01
Observe
The event arrives on a subscription or a poll. The clock starts here, not at your click.
stage clock——ms - 02
Decide
Every clause in the rule is evaluated against the state at that slot.
stage clock——ms - 03
Build
The transaction is assembled: route, accounts, compute budget, fee.
stage clock——ms - 04
Sign
Signed by the key you nominated, in the place you nominated it.
stage clock——ms - 05
Submit
Handed to the sender you configured, with the retry policy you set.
stage clock——ms - 06
Confirm
The row closes when the slot confirms, and the receipt is written.
stage clock——ms
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| Claim | Evidence required | Status |
|---|---|---|
| Latency distribution, p50 / p90 / p99 | Per-stage timestamps and a published sample corpus | Instrument built, corpus not published |
| Fill price against a reference quote | A named quote source and a written fill model | Fill model not defined. Claim withheld |
| Rule success rate | A stated denominator: every armed rule, not every attempt | Denominator defined, no data yet |
| Uptime | A probe operated by someone other than us | Probe 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