Skip to content
Mainnet

Docs · Protocol

The vault agent

One rate-limited signer that trades each vault on its venue: selling slowly into strength, buying back dips with what it sold, and paying backers back when the vault has grown.

What it does

The agent sells slowly into strength: the higher the multiple over cost and the more real buy volume, the more it may sell, sized so it doesn’t dent the chart. It buys back dips with what it sold. All sell proceeds stay in the vault as quote.

When the vault's liquid quote is 5× what it held at launch and the chart is strong, the agent may pay backers back (principal first, then 15% of the vault at most every 4h). Buying back dips always comes first.

The rules, on-chain

Limits are copied into each launch at creation (terms); the values below are today’s defaults from /api/platform. The program checks every one on the measured fill of each agent trade.

RuleBuy (agent_buy)Sell (agent_sell)
Price vs EMASpot ≤ EMA − 2%Spot ≥ EMA + 2%
Fill vs vault costFill ≤ vault average cost, or a buy-back ≥ band under the average agent sellFill ≥ vault average cost + 2%
Budget per window≤ 10% of vault quote per 60 min≤ 5% of vault tokens per 60 min
Price impact≤ 3%≤ 3%
Vault floorVault quote stays ≥ the quote's floor (min_vault)—
RateOne agent trade per slotOne agent trade per slot
ProceedsPaid from vault quoteStay in the vault as quote
Payback (payout_backers)Rule
SignerAgent authority only
Vault quote≥ 5× initial_vault_quote (liquid quote; tokens don't count)
ChartStrong: price above the EMA band, real buy flow, not in a drawdown (the agent's own check; the program enforces every other row)
AmountThe principal first, then 15% of vault quote
FrequencyAt most one payout per 4h, the principal payout included
FloorNever below the vault floor (min_vault)

Which venue it trades

LaunchLab pool statusAgent trades
0 · trading on the curveOn the LaunchLab curve (buy and sell exact-in)
1 · curve filled, waiting for RaydiumRefused (VenueMigrating) until the pool exists
Graduated (graduate recorded the CPMM pool)On the Raydium CPMM pool (swap_base_input)

The EMA

The EMA is sampled by the program at every agent trade, before reserves change:

update_ema
ema += (spot − ema) · dt / (dt + period)   // dt = seconds since the last agent trade, clamped to the period; period = 1800s

Spot is read from the venue’s reserves in the quote’s raw units. A single large trade moves the EMA only a little, so a dump opens a gap below the band; that gap is what the agent buys.

Who runs it

The agent is an off-chain service holding the platform’s agent authority key (D1Mv…xd6d ↗), the only key that can sign agent_buy, agent_sell and payout_backers. The trades themselves are signed on the venue by the launch’s own authority address, so there are no separate trading wallets: the vault buys and sells as itself. Every executed trade is a Trade event; ticks where it decides to do nothing aren’t logged on-chain. Its reasoning for each launch is public at /agents.

Indexer synced· lag 9Slot461,669,583Agent online· tick 99Mainnet