Launches
Companions: how the companion fee runs on the companion program
A companion is the program that runs a script on chain, with the companion fee as its pot: it makes a market, fills a game’s pot, pays back holders under water, or runs a Workshop script, paired with a custom hook or on its own.
How it works#
- The companion creates the launch, signing as its creator from the companion address (
["creator", mint]), which only its program can sign for. The launch’s fee lands there, and only its code decides what happens to it: the launcher’s creator fee is paid to them, the companion fee stays in the pot. - Every step is open to anyone: claim the fees, buy back and burn, share with holders, pay the launcher, release the first buy as it vests. Each checks that it is due and pays whoever sends it 0.5% of what it moves.
- One program, Companion program 6ZUM1gWBH9hBBNoJoaVAGwSftyZ6CUda6vUZTW9MsJuo, on Solscan; each launch has its own account at
["companion", mint], which a token’s page reads.
The creator fee and the companion fee#
The launch page has two rows. The Creator fee is yours, paid to you on each trade. The Companion fee fills the companion’s pot, and you pick what spends it: the Snowball market maker, a game, Lossback or a script from the Workshop. The two together stay within the 5% of a trade a launch may charge. A pair (a Workshop custom hook matched with its companion) or a Workshop config fixes the split between them; you can’t change it. On chain they travel as one balance that the companion claims; it pays you your creator fee in SOL and keeps the companion fee for its pot, with the whole of a paired hook’s own cut on trades. The old choice of where the creator fee goes is gone; its three splits are no longer offered at launch, and the coins that run them keep them:
| Split | Where each fee goes | The launcher’s first buy |
|---|---|---|
| Buy back & burn | 100% bought back and burnedNo first buy | None |
| Share with holders | 50% to holders, 50% to the launcher, in SOLFirst buy sent to you at launch; vests over 7, 30 or 90 days only if you choose | Yours at launch |
| Buy back & share | 50% bought back and burned, 50% to holdersFirst buy sent to you at launch; vests over 7, 30 or 90 days only if you choose | Yours at launch |
Buybacks#
- At most 1 SOL a buyback, at least a minute apart, and never more than a quarter of what a buy and a sell pay in fees, as a share of the pool’s SOL (at most 1%): at that size a sandwich costs more than it makes.
- Each buys no worse than the pool’s own quote at that moment, less its fees and 2%, and burns what it bought.
- A buyback waits while the price is more than 3% above its reference: the opening price, which moves toward the price by 5% an interval while it waits, and only down when it buys.
Snowball: the market maker#
A Snowball’s companion fee fills a pot that trades the token on its own pool, nonstop: the market maker. Its SOL and its tokens are the companion’s, kept apart from any first buy, and anyone may send its next trade, which pays its sender 0.5% of it.
- A fall of its trigger below the reference buys with a share of its SOL; a rise of its trigger above it sells a share of its tokens. The reference is the price its last trade left.
- While the price holds still it trades anyway, on the side that rebalances what it holds: it sells while its tokens are worth more than its SOL, and buys otherwise, so the pot keeps cycling through the pool.
- At most one trade an interval, from a minute after the launch and the end of any early-buyer lock. One trade moves at most its cap of the pool’s SOL, and takes no less than the pool’s own quote less its fees and 2%.
- Each trade pays the pool’s fees like any other; the market maker’s part of them comes back to its pot with the next claim.
The presets: the move that triggers a trade, the size of a trade (a share of its SOL for a buy, of its tokens for a sell), the cap on one trade (a share of the pool’s SOL) and the least time between trades. Custom takes a trigger of 0.5% to 10%, a size of 10% to 100%, a cap of 1% to 10% and 10 s to 5 min between trades, and may wait while the price holds still.
| Preset | Trigger | Size | Cap | Every |
|---|---|---|---|---|
| Conservative | 3% | 10% | 1% | 60 s |
| Normal | 2% | 25% | 2% | 30 s |
| Aggressive | 1% | 50% | 5% | 10 s |
The Jackpot#
A game’s companion fee fills a pot the companion holds and pays out in SOL, by code; the rest of that fee is bought back and burned. A pot pays from its minimum, set at the launch (0.1 SOL to 1,000 SOL), and holds at most 10 SOL while its game’s hook is not audited: its part above that is bought back and burned too. Each payout pays its sender 0.5% of it.
Each round (15 minutes to 30 days, set at the launch), one holder wins the pot. Your tickets are the tokens you held through the round, so your odds are your share of them: tokens you buy count from the next round, and selling during a round takes you out of it. Once a round is over with the pot at its minimum, anyone may start the draw: the random number comes from ORAO, an outside service, and the drawn ticket’s holder is paid the prize (10% to 100% of the pot, set at the launch) if they still hold. A round with no winner (no tickets, the pot under its minimum, the prize not claimed in time) leaves the pot to the next.
Lossback#
A Lossback coin’s companion fee fills a pot the companion holds and pays out in SOL, by code, to the holders who are under water: every round, each holder whose average entry price is above the price now is paid the same share of what they are down, as much as the pot allows. The round is set at the launch (60 seconds to 24 hours), and a round only starts once the pot holds the minimum set with it (0 to 100 SOL; 1 SOL to start).
- The token’s hook keeps each holding’s average entry price. A buy on the pool blends the price paid into it; tokens that arrive by transfer count at the price of the moment, so a loss can’t be handed to another wallet; a sell or a send keeps the entry and takes its share of the cover already paid with it.
- A holding’s loss is its entry less the price now, times what it holds. The pot covers the share set at the launch (100%, 50% or 25%) of it, less what the holding has already been paid. A holding counts from the minimum set at the launch (100,000 tokens to start, at most 1% of the supply), from a loss of 0 SOL, 60 seconds after its last buy.
- Each round pays every holder under water the same fraction of their uncovered loss: the pot at the round’s start over the loss the previous round measured, at most all of it. The first round measures and pays nothing; so does a round after one in which nobody was under water. When the loss grew since the previous round, the pot runs out before the last holders, who are paid first in the next; when it shrank, the pot keeps the rest.
- Anyone may send a round’s steps, every 15 seconds at most, each paying up to 7 holders and its sender a bounty from the pot. The launcher’s own holding is never paid.
- A Lossback coin has no other token rules: it launches from Bordrless’s Lossback config of its fee, which names the hook; its creator fee goes to the launcher and its companion fee to the pot, and nowhere else.
The launcher’s first buy#
Made through the companion with the launch, within what max wallet lets one wallet hold, and sent to the launcher’s wallet right after, unless the launcher turned a vest on beside it: then it stays with the companion and is sent to them evenly over 7, 30 or 90 days, once the early-buyer lock has ended, and they can’t sell what hasn’t vested.
Limits#
- No creator wallet lock; the launcher may vest their first buy instead.
- Holder rewards on whenever holders take a share of the fee.
- Every fee bought back and burned means no dev: no first buy.
- From DIY’s Companion fee row, or a config made for a companion: a Workshop pair’s (its custom hook with its companion, under Workshop config), a game hook’s or Lossback’s. Any other launch config (Half-Life, your own hook) launches with no companion: its fee is the creator fee.
- Setting up the companion is a transaction of its own before the launch. If it lands and the launch doesn’t, the launch page offers “Get your SOL back”, signed by your wallet and the token’s key, which the page keeps in your browser until the launch lands.
From code: launch with a companion or crank one with the SDK.