The analyst
An analyst model reads this coin’s numbers — price, flow, the vault’s window and thresholds — and writes a plan: what kind of market this is right now, and how fast the vault should sell into it. It writes down why, with the numbers it used, and you can read every plan here. It is scored against what happened next.
What it cannot do. It never sets a price, never sizes a trade, never buys above the floor or sells under 2× it, and never holds a key. The vault’s rules are on-chain and the same for every coin; the analyst only chooses timing and pacing inside them. If it is wrong, the worst case is a slower sale. If it is down, the vault runs its default rules, and this page says so.
Who pays. 10% of every coin’s creator fees fund LOADED’s AI. Half of this coin’s share pays for its own analyst; when that is spent, the analyst sleeps until new fees come in. The budget and the spend are shown above. (On this sheet: each coin's budget and spend are on its coin page; every desk at once is on /agent.)
What the analyst may move#
Only these knobs of the vault agent's strategy, each inside the bounds below (a strict subset of the executor's own parameter space). Not a price, not a size, not buy_floor, which is permissionless and has no knob.
| Knob | Template default | Analyst bounds | What it changes |
|---|---|---|---|
windowShareAtThreshold | 75% | 25% – 100% | Sell pacing at the threshold: a smaller value keeps window cap for higher prices |
fullWindowMultiple | 1.5× | 1× – 5× | At what multiple of the threshold the whole window cap is used |
redFlowShare | 50% | 0% – 100% | How much of the allowance sells into red tape (0 = green only) |
crashDrawdown | 35% | 15% – 60% | How deep off the 15-min high (with net selling) strength sells pause |
recallMaxVolume24hSol | 100 SOL | 0 SOL – 200 SOL | The “coin is dead” volume gate for recall_inventory |
pulseClipShare | 100% | 20% – 100% | Share of the program's 10% clip a pulse spends |
pulseStallRange | 15% | 5% – 30% | How flat a chart must be to count as a stall |
observeNearThreshold | 50% | 25% – 75% | How early the reference is kept fresh ahead of a sale |
| pause flags | none | sell, burn, pulse, recall; each ≤ the plan's TTL, ≤ 30 min; ≤ 2 h cumulative per 6 h per coin | delays, never cancels: the window keeps rolling and the template resumes when the pause budget is spent |
The regimes#
The shipped policy already encodes the backtest's answer for the average path. The analyst's job is to say which kind of market this coin is in right now, and the regime decides the knobs:
| Regime | Sell pacing | Flow gate | Crash pause | Pulse | Recall | Typical facts |
|---|---|---|---|---|---|---|
| launch (first 10 min, no history) | template | template | template | off | no | spanSecs < 600 |
| run | windowShareAtThreshold 0.25–0.5, fullWindowMultiple 3–5 | redFlowShare 0.25 | 0.25 | off | no | imbalance > +0.3, volume rising, spot ≥ 1.5× threshold, new 15-min highs |
| fade | 0.75–1, 1–1.5 | 0.5–1 | 0.35–0.5 | off | no | drawdownHigh 0.2–0.6, imbalance < 0, volume falling |
| chop | 0.5, 2 | 0 (green only) | 0.35 | on, clip 0.5 | no | stallRange ≤ 0.15, imbalance ≈ 0, volume flat |
| crash | pause sell ≤ 30 min | — | — | off | no | drawdownHigh > 0.35 with net selling since the high |
| resting | template | template | template | off | no | spot under the threshold but not dead: under it for less than an hour, or volume24h > 20 SOL |
| dead | template | template | template | off | recallMaxVolume24hSol 100–200, allow | volume24h ≤ 20 SOL and spot under the threshold for an hour or more |
Every plan is validated before anything reads it: strict schema, bounds, the facts it was based on, every number in its rationale present in the facts sheet (or a knob value the plan itself sets), and cheap consistency rules (a crash needs a drawdown of 20% or more, a dead needs 24 h volume at or under 20 SOL and an hour under the threshold, a resting needs spot under the threshold). A plan that fails is stored as invalid, shown greyed with the reason, and the vault keeps its current valid plan or the template.
Fallbacks and the kill switch#
The vault agent never waits for the model and never needs it. A kill switch in the AI service (off, shadow, live) is read by the agent every 10 s; it refuses to apply a plan unless the mode is live. Everything below shows on the coin page's desk and on /agent.
| Situation | Executor behaviour | Desk shows |
|---|---|---|
| no valid plan yet / plan expired | DEFAULT_PARAMS (template) | “Template policy” with the reason |
| model down (both providers), timeout, 4xx | template; retry at the next trigger with back-off 1 → 3 → 10 min | “Analyst unavailable since …” |
| invalid plan | keep the current valid plan if unexpired, else template; counts toward the streak | the invalid plan, greyed, with the validation error |
| ≥ 5 invalid plans in a row on a coin, or > 20% invalid across coins in an hour | that coin (or all) to shadow for 1 h, alert webhook | “Shadow (auto): invalid-plan streak” |
| coin budget 0 | dormant (template), memos stop | “Dormant: this coin's AI budget is spent; refills from its fees” |
| global analyst cap (AI_CAP_ANALYST_USD) or AI_DAILY_BUDGET_USD reached | all coins template until UTC midnight; reviews skipped | “Paused: daily AI ceiling” |
| ANALYST_MODE=off | template | “Analyst off” |
| ANALYST_MODE=shadow | template; plans still produced, validated, scored | plans labelled “shadow — not applied” |
| per-coin skip (ANALYST_SKIP_MINTS, or /ops/analyst/coins/:mint {mode}) | template | “Analyst off for this coin” |
The budget rule#
Every launch's AI share of creator fees reaches the AI treasury through sweep_fees. On each sweep, half of that coin's share (ANALYST_SHARE, 50%) is credited to the coin's own desk budget at the sweep's SOL/USD; at launch the desk gets a $0.10 grant so it works before the first sweep. Every memo and review is costed from usage and debited from that coin's balance. At zero the desk is dormant until the next sweep; the grant is not renewed. A global analyst cap ($25/day) under the AI daily budget pauses every desk until UTC midnight.