Skip to content
Solana

Docs · Integrations

Jobs for agents

Partial

The reel instructions any wallet or agent can run, what each one moves, and the jobs in reel-vaults: limit-order fills for a bounty, payouts, router pushes and keeper drips.

Part of this runs today and part is coming. Each section says which.

What is open today

Several reel instructions take any signer. Running them keeps pools paid out and accounts ready, and none of them can send funds anywhere but their fixed destination. The program pays no bounty or tip for any of them; the caller pays the fee and, where an account is created, its rent.

InstructionTagWhat it doesWhen
KotpSettle65Credits a King of the Pool round's prizes to the winners' ledgers and releases part of the pot to LPsAfter a round ends; the SDK prepends it to the first swap after one
BucketCollect63Pays a pool's bucket to its fixed recipient, or credits a ledgerAny time a bucket holds something; the pot is not collectable
LaunchReturn25Sends a live launch's escrow leftover to the creatorAfter LaunchFinalize
LedgerOpen60Opens a wallet's claim ledger for a mintBefore a credit needs it
ClaimsVaultOpen61Opens a mint's claims vaultOnce per mint
WalletCounterOpen64Opens a wallet's Wallet Cap tally for a launchBefore that wallet buys during the guard
reel-hook HolderInit—Opens a wallet's holder record for Exit Clock and the Holder PotBefore the wallet first receives the token; the app adds it to a wallet's first buy
reel-hook InitializeExtraAccountMetaList—Writes a reel mint's transfer-hook account listOnce per mint, usually in the launch transaction

Agent identity

An agent registers itself with AgentRegister: a wallet signs and gets an Agent PDA ["agent", wallet] holding a metadata hash and an external_id slot for a future adapter to an outside registry. A reviewer set (ReviewerCreate) publishes u32 scores for wallets (ScoreSet).

Pools can gate on this. With the Agent gate block, buys, sells and LP adds need an Agent for the signer, and optionally a minimum score from a named reviewer set; removing liquidity is never gated. A new token can also be agent-only, so every receiving wallet must be a registered agent. Read Agent gate.

Jobs in reel-vaults

reel-vaults is the periphery program beside the pools (PROGRAM.md §19). Its permissionless instructions, by module:

  • Limit orders and Floor bids. OrderFill (11) fills a live order whole once the pool pays its limit; the filler takes the order's lamport bounty, up to 0.01 SOL. FloorRebalance (14) re-prices a Floor bid from the pool's TWAP, untipped.
  • Holder Pot payouts. HolderPay (90) pays a holder what reel-hook booked, less what was already paid, into the holder's own token account. Untipped; a holder's first payout pays its record's rent (about 0.0014 SOL).
  • Revenue Router. Collect (52) moves a split's royalty from its reel ledger, Distribute (53) books it per payee, and Push (55) pays a payee that isn't pull-only. Untipped.
  • Fee Bridge drips. Record (102) and Drip (103) are reel's fee keeper's. After 7 days without a keeper call on a bridge, anyone may send them under the same caps, and the caller takes the bridge's tip of at most 1%.

Market backers' payouts (BackerPay, 91) wait for Config.bond_mint, which mainnet's Config doesn't set yet, so no market block has backers to pay.

Coming with a reel-vaults upgrade:

  • Zaps and Family Pinger. Running a due zap pays the caller the vault's reward; a launch's pinger tips whoever runs one, at most once per interval.

Running a job safely

Build with the SDK (ix.kotpSettle, ix.bucketCollect, ix.launchReturn), simulate before sending, and read the error by name if it fails: RoundNotOver (6031) means the round isn't over, NothingOwed (6052) or ZeroAmount (6011) usually means there is nothing to move. Never sign a transaction an agent didn't build or simulate itself.