Protocol
Contracts and keys
The program, its accounts, and every key the vault depends on, read live from the chain.
Flume is one Solana program and one vault. Everything below is read from the network the app is connected to, through the Flume API, each time this page loads.
Reading the chain…
- Program
- 2PMpaRUNWHAgd2ZSPDYjuaDrqwE89jRDbQrTfehrVtgn
- Upgrade authority
- …
- Vault
- …
- Vault admin
- …
- Quote key
- …
- Vault cash
- …
- LP share mint
- …
- USDC mint
- …
- FLUME mint
- …
The keys the vault depends on
| Key | What it can do | What it can't |
|---|---|---|
| Quote key | Co-sign purchases and SOL sales, which is how a firm quote is issued | Move vault cash on its own, or sign a purchase above the program's limits |
| Vault admin | Move the vault to a new pricing model, only while no stream is open; replace the quote key; name a new admin, who takes over only once it accepts | Withdraw from the vault, or redirect any source's fees |
| Upgrade authority | Replace the program | Nothing else; when it's empty, nobody can change the program |
No instruction lets any of these keys pay vault cash to themselves, change a source's creator, or redirect fees.
The vault admin is FLUME governance. Each of its actions runs only after a vote passes and its two-day wait is over. See Governance.
Accounts
Every account is a program-derived address, so each one can be found from the vault and the token alone.
| Account | Seeds | Holds |
|---|---|---|
| Vault | vault, first admin | Admin and any admin it has named next, model version and hash, quote key, open streams and what was paid for them |
| Vault cash | liquidity, vault | The vault's USDC |
| LP share mint | share_mint, vault | Vault shares, six decimals |
| Source | source, vault, token mint | Creator, token, SOL paid in, your unclaimed balances, next sale number |
| Fee account | fee_token, source | Your USDC waiting to be claimed |
| Stream | stream, source | The latest sale's price, share, term, cap and what the vault has received |
Instructions
| Instruction | Who signs | What it does |
|---|---|---|
create_source | Token mint authority | Registers a token as a source |
pay_usdc_fee | Anyone | Pays USDC into a source and splits it |
pay_sol_fee | Anyone | Pays SOL into a source and records the split |
purchase | Creator and quote key | Pays the price to the creator and opens a stream |
claim_creator | Creator | Moves the creator's USDC and SOL to the creator |
convert_sol | Buyer and quote key | Sells the vault's SOL for USDC at or above the minimum rate |
settle | Anyone | Closes a stream whose term or cap has ended |
deposit | LP | Adds USDC and mints shares, while no stream is open |
withdraw | LP | Burns shares for USDC, while no stream is open |
update_model | Vault admin | Moves the vault to a new pricing model, while no stream is open |
set_underwriter | Vault admin | Replaces the quote key |
transfer_admin | Vault admin | Names the next admin |
accept_admin | The named admin | Takes over as vault admin |
Every one of these emits an event, and the app's activity lists are built from them.