Docs · Integrations
Jobs for agents
PartialThe 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.
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.
| Instruction | Tag | What it does | When |
|---|---|---|---|
KotpSettle | 65 | Credits a King of the Pool round's prizes to the winners' ledgers and releases part of the pot to LPs | After a round ends; the SDK prepends it to the first swap after one |
BucketCollect | 63 | Pays a pool's bucket to its fixed recipient, or credits a ledger | Any time a bucket holds something; the pot is not collectable |
LaunchReturn | 25 | Sends a live launch's escrow leftover to the creator | After LaunchFinalize |
LedgerOpen | 60 | Opens a wallet's claim ledger for a mint | Before a credit needs it |
ClaimsVaultOpen | 61 | Opens a mint's claims vault | Once per mint |
WalletCounterOpen | 64 | Opens a wallet's Wallet Cap tally for a launch | Before that wallet buys during the guard |
reel-hook HolderInit | — | Opens a wallet's holder record for Exit Clock and the Holder Pot | Before 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 list | Once 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, andPush(55) pays a payee that isn't pull-only. Untipped. - Fee Bridge drips.
Record(102) andDrip(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.