Solana
08

Programs and addresses

Tribute's program keeps the houses and burns their fees, and every launch and trade runs on Meteora's programs directly.

8.1The tribute program

The tribute program is written in Anchor. It keeps the houses and their vaults, and burns each house's share of the fees in its token.

Tribute program

8.2Accounts

Every account is a PDA under the tribute program, with these seeds.

Protocol
["protocol"]
House
["house", quote_mint]
House vault
["vault", house]
  • Protocol: the operator key, the protocol share and the reserve mints. Its token accounts hold the protocol share in every house token.
  • House, one per quote mint: the quote mint and its token program, the current curve config, the parent house and origin launch, whether it burns, when it opened, and running totals burned and sent to the protocol.
  • House vault: the fee claimer of every curve config the house uses and the owner of its locked pool positions. Tribute burns from it.

8.3Instructions

  1. init_protocolThe upgrade authority calls it. Sets the operator key, the protocol share and the reserve mints.
  2. open_houseThe operator calls it. Creates a house and its vault for a mint, recording the parent house and the origin launch when the house opens from a graduation.
  3. set_configThe operator calls it. Points a house at a curve config after checking on chain that its quote mint is the house's, its fee claimer is the house vault, its fees are collected in the house token, and its fee and liquidity parameters are the house template.
  4. harvest_curveAnyone calls it. Claims the vault's curve fees from one pool on a config of the house through DBC, with the vault signing, and the vault's part of the surplus when a curve finished above its threshold.
  5. harvest_poolAnyone calls it. Claims the fees of a locked pool position the vault owns through DAMM v2, with the vault signing.
  6. tributeAnyone calls it. Sends the protocol share of the vault's house-token balance to the protocol PDA and burns the rest. In a reserve-mint house it sends all of it to the protocol PDA.

8.4The protocol PDA

The protocol PDA is the Protocol account, at the seeds ["protocol"] under the tribute program. No key signs for it. Its token accounts receive the protocol share from every house.

Protocol PDA

8.5Programs it composes with

Launches are Meteora Dynamic Bonding Curve pools on each house's configs, and graduated launches are Meteora DAMM v2 pools. Launch metadata is written with Metaplex Token Metadata. Jupiter routes buys and sells between the house token and SOL or USDC.

Meteora Dynamic Bonding Curve (DBC)
DBC pool authority
Meteora DAMM v2
DAMM v2 pool authority
Metaplex Token Metadata

8.6The trading path

Launch, buy, sell and migration are Meteora's instructions, called directly in transactions the server builds, and so are creator claims. The tribute program is never in the trading path.

The launch and the creator's first buy are top-level DBC instructions in one transaction, which is what lets the first buy pay the base rate.