Buyback Vault
Turns the 40% buyback share of revenue into $VYLO and holds it.
Overview#
The buyback share is paid to token accounts owned by the authority PDA. Nobody can withdraw from them. The only way funds leave is a buyback into $VYLO.
A buyback wraps a swap through the whitelisted swap router. The vault signs for its PDA and checks balances afterwards: input spent must be above 0 and at most amount_in, and $VYLO received must be at least min_out.
Bought $VYLO stays in the vault (buy and hold). Burning exists but is off until the admin enables it.
The $VYLO mint is set after the pump.fun launch and locks after the first buyback.
Instructions#
| Instruction | Who | What it does |
|---|---|---|
| init | Admin (once) | Sets the executor key and the whitelisted swap router. |
| set_executor / set_router | Admin | Rotates the executor or router. |
| set_vylo_mint | Admin | Sets the $VYLO mint. Locked after the first buyback. |
| buyback | Executor | Swaps vault funds into $VYLO through the router, with the onchain post-checks. |
| set_burn / burn | Admin | Enables burning and burns held $VYLO. |
Accounts#
| Account | Seeds | Notes |
|---|---|---|
| Config | ["buyback"] | 168 bytes: admin, executor, $VYLO mint, router, totals. |
| Authority | ["authority"] | Owns the buyback token accounts. This is the Fee Router buyback destination. |
Guarantees#
- No withdrawal instruction exists.
- The executor can only swap into $VYLO, never send funds elsewhere: every route is checked by balances after the swap.
- Only the whitelisted router program can be invoked, with at most 40 route accounts.
Events#
Events are emitted as program data logs and can be indexed from transaction logs.
- Buyback: input mint, spent, bought, count
Source and client#
Source: programs/vylo-buyback. TypeScript builders and decoders: @vylo/solana/programs. See the SDK.