VYLO
Launch App
Smart contracts

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#

InstructionWhoWhat it does
initAdmin (once)Sets the executor key and the whitelisted swap router.
set_executor / set_routerAdminRotates the executor or router.
set_vylo_mintAdminSets the $VYLO mint. Locked after the first buyback.
buybackExecutorSwaps vault funds into $VYLO through the router, with the onchain post-checks.
set_burn / burnAdminEnables burning and burns held $VYLO.

Accounts#

AccountSeedsNotes
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.