Both score lexically, by token overlap between the intent and the surface text. No
vectors. At this scale lexical retrieval is more accurate and fully deterministic — the
graph never approximately remembers. BM25 and semantic tiers sit behind evidence gates
that flip only on measured recall failure, fed by a misrank-aware evaluation (a golden
set plus a closed miss-cause vocabulary). Misses are instrumented categorically —
never the intent text.
The API catalog
find_start, on-chain
0 means a start was found; 1 is an honest no-start.
It returns, per ranked candidate:
- The start point —
program/instruction, itsprogram_id, the score, and which tokens matched. - A dependency-ordered derive plan — every account in the order you must derive it, each carrying a provenance tag.
- Declared preludes — the instructions that must ride along for the transaction to land (idempotent ATA creation with the Token-2022 resolution note, compute budget).
- Flagged gaps — facts Gecko will not guess, named explicitly so you resolve them before building.
- An execute pointer — the external builder’s URL. Orquestra builds; Gecko never signs or broadcasts.
Provenance is the point
Every account in the plan carries one of three closed tags:recovered is where the value is. bonding_curve_v2 is required by Pump.fun’s buy
and never appears in the IDL. Meteora’s base_factor seed was added by the SDK in 2024
and the deprecated three-seed scheme derives the wrong pool, silently. A tool that
only reads the IDL cannot know either.
On the HTTP side the vocabulary is richer, because docs make claims:
EXTRACTED > DECLARED > INFERRED > CLAIMED → VERIFIED / REFUTED. A claim
recovered from a docs page stays CLAIMED until a probe verifies or refutes it. See
From docs.
The honesty floor
Below the retrieval floorfind_start returns NO START FOUND and labels the
closest candidates as GUESS — never dressed up as starts. A nonsense intent cannot
clear the floor on stopword overlap alone.
This is the same rule as the rest of the system: an unknown is FLAGGED, not
fabricated.
Not built yet
Catalog breadth is the open frontier: 4,500 projects are listed, 5 are wired deep. For an unwired project,find_start returns it as a catalog candidate with the
comprehend-first command rather than pretending it has a plan. See Status.
The Program Surface
What a program surface is, and the mainnet programs it’s proven on.
The Receipt
Once you have the plan: simulate it to a receipt before anything is signed.