Agent Only — Hooks Preflight

Proof $PROOF

A measurement token, launched 2026-10-17 as the first launch under the AgentOnly partner identity to record exactly what directories and trading apps do with a launcher mint. Its results — including the unflattering ones — are this page's main content.

Preflight report · last verified 2026-10-21 · all preflight reports

The platform trust assumption — read this first

Per-token configurations are Locked — no one can change a launched token's rules. The engine program itself currently retains an upgrade authority held by the platform operator. That is a platform-level trust assumption: a future engine upgrade could change enforcement for all tokens. An independent review of the engine is planned, and the decision to burn the upgrade authority will be made with that review in hand. Until then, AgentOnly does not claim the engine is fully immutable.

Identity

MintAA7YKCXhW8YyeMeka3Nv868B1WCBLRit1amiz4mt23kY
Pool (Meteora DBC)Ah4W4fPbJVGckmA7ZCrgdjBtNPTnh9pdwshmAepJhmLv
Token programToken-2022 — standard Token-2022 for the token's whole life; no proprietary token program
Hook / engine programEPdYVfsX7Lk9gtLp8CVouiFrNwtxP5g11NR6DDgs6akT
Engine config (this token)8kE3AwrMxkQNf1LRGbzQDU9HcaDbLeKr7adLRu2To9fx
Launched2026-10-17 (pool created 2026-10-17T04:56:13Z)
Creator fee100 bps (1%) of curve trades, to the deployer / fee-claimer wallet FMYVMuJgoM9J41PaXBmJe6ijSHUtSr2VPRbAJvH4MhCP.
Holder feesOff — no Distributor on this token.
Config authority modeLocked — the rule stack below cannot be changed by anyone

The rule stack, decoded

RuleWhat it does here — parameters in plain numbers
Basis Latch (rule 1) — classic modeSells and sends are vetoed while the feed price is at or above the holder's entry basis. The first time the feed price dips below basis, the holder is latched unlocked permanently. Basis blends on buys and ratchets down on cheaper rebuys. Price feed maximum staleness: 300 seconds.
Max Wallet (rule 9)No wallet may hold more than 500 bps = 5% of supply = 50,000,000 PROOF.

Graduation — mode: release

At 42 SOL of curve progress the pool migrates to DAMM v2 and the transfer hook is revoked inside the completing swap. Both rules end at graduation. Current status: still on the bonding curve (not migrated).

Enforcement scope

The rules are enforced by a mint-level Token-2022 transfer hook: the engine program runs inside every transfer of this token — curve trades, venue trades, and plain wallet-to-wallet sends alike, whoever builds the transaction. There is no off-chain component to bypass. Rules that carry per-holder state read it from holder records keyed to the receiving token account, in the templated form the standard Token-2022 extra-accounts resolver builds — which is why generic routers can construct a first buy for a wallet that has never held the token, with no custom integration.

Trading routes — status by axis

Three separate questions, never collapsed into one badge: can the route be built (supported), has it actually run (tested), and does a named provider surface the token (indexed). Simulation results are labeled as simulation.

CheckStatusEvidence & scope
Route supported — generic resolvers & DBC doorsRoute supportedStandard Token-2022 mint + Meteora DBC pool; templated extra accounts (live meta list: 261 bytes / 7 extras, zero data-derived seeds). PROOF's config is byte-for-byte the launcher's standard template — that was the point of the test.
Route tested — fresh-wallet buy via the generic resolverTested on mainnetA fresh wallet (token account verified nonexistent immediately before the build) bought 0.01 SOL → 748,452.588404 PROOF (2026-10-17), built exclusively with the standard resolver: 3RYmStrgsw…yM32MD. Holder record basis equal to the cranked feed price.
Route tested — immediate sell vetoed by the latchTested on mainnetThe buyer's immediate full sell 5nKGH6bnze…Q3kQom failed with engine error Locked inside the transfer; swap unwound atomically; balance unchanged to the raw unit.
Provider indexed — JupiterIndexed as generic DBCJupiter's token index was queried ~84 seconds after pool creation (2026-10-17T04:57:37Z): the record reads launchpad: "met-dbc" — indexed as a generic Meteora DBC token, with no AgentOnly partner label, and with the token's icon present from first indexing (metadata was written at creation). That reading is a first-query snapshot recorded as-is; the launch record in the repository states plainly that whether the label resolves later was not decided by that measurement.
Provider indexed — BasedBotNot indexedBasedBot's app answers “No route to SOL” for this mint (observed 2026-10-20, as for the launcher's mints generally). Our assessment is that the refusal happens in the app's backend before any transaction is built — the same mint structure routes through generic resolvers, as the tested rows above show. BasedBot has not confirmed the reason; we state the observation and label the explanation as our assessment.
Graduation to DAMM v2Not yet tested liveNo launcher token has completed a live release graduation on mainnet yet. In simulation: launcher graduation suite 46/46 — curve completion, hook revocation by the completing swap, DAMM v2 migration, in simulation against the venue's real binaries (the original standalone graduation proof passed 22/22).
Rule behavior in simulationTested in simulationLatch-on-curve suite 55/55 · engine trial suite 64/64 · DBC×Engine integration suite 40/40 (real Meteora DBC binaries, local validator). Simulation is not mainnet execution.

Price feed & the crank

The Basis Latch reads a cranked price feed (an EMA of the pool price). The feed goes stale after 300 seconds and the hook vetoes transfers while it is stale — that is deliberate: a latch decision is never made on old prices. A dedicated crank service (Railway, polling every 30 seconds, crank wallet Hmuum57dKYa2XEm198fa5jCeKMJobxWHR3iq4mwV5rmN) keeps every launcher feed inside the gate; observed feed ages in steady state sawtooth between 0 and ~270 seconds. This token's feed is in the crank set.

Evidence & how to verify

Last verified: 2026-10-21. Statuses on this page describe what was true at that date; simulation results are labeled as simulation wherever they appear and are never presented as mainnet execution.