Skip to main content

Who does what

Five parties take part in a v2 launch: the creator, the buyer, the keeper, the protocol and the owner Safe. Nobody is appointed. Each table lists what the party does, pays and receives, and what it can change.

At a glance​

CreatorBuyerKeeperProtocolOwner Safe
doespicks a stock, a tax, a window and a strategy kind; launches oncebuys on the curve or in the pool; sells at willsends due callsreceives its share of every taxlists stocks, sets defaults for future launches, may upgrade a treasury's logic after two days
pays0.0005 ETH and gas; optionally a first buystock, or any asset the router converts to stockgasnothing per launchnothing per launch
receivesup to half of the collected tax, in stock, for as long as the token tradestokens; a shrinking supply0.1% of what each strategy action produced30% of the collected tax, in stock, plus the launch feenothing from these contracts
can losethe fee and the first buy, like any buyerthe token's price; no claim on the treasurygas on a call that lands second
can change a live launchthe token's page onlynononotreasury logic, with a two-day notice

Creator​

choosesa listed stock; name and symbol; tax 1% to 15%; own share 0% to 10% of the collected tax; opening window 0 to 180 s; strategy kind and its numbers; staleness band, where the stock allows one; up to 40 addresses exempt from the opening premium
cannot choosesale share (79.31%); LP share (70% of the raise, per stock); opening price ($2,140.38 FDV at listing)
pays0.0005 ETH to the protocol at launch; gas; optionally a first buy, which pays the base tax and skips the opening premium
receivescreatorBps of every collected tax, curve and pool, buy and sell, in stock. Curve stage: anyone may push it with claimFees(creator). Pool stage: paid by sweep
income formulatraded stock volume × taxBps × creatorBps
gives upthe tax, split, kind, rule and liquidity, all frozen at launch; the treasury's logic, which only the owner can change
must keepthe receiving address. After 14 days of a payout proposal on chain, vetoCreator ends it and bars another for 180 days. An EOA or a Safe
volume per day, both sidestax 3%, creator 10%tax 1%, creator 10%
$10,000$30$10
$100,000$300$100
$1,000,000$3,000$1,000

Buyer​

pays on the curvethe stock price of the tokens; the tax in stock, 1% to 15%; in the opening window, a premium burned from the tokens (99% at the launch second, the tax from the end of the window)
pays in the poolthe tax in stock, taken before the swap; the 0.20% pool fee on the net amount. About 1.2% at the minimum tax. No sell spike
receivesa token whose supply only shrinks: the opening premium, the treasury's buy-backs and the token side of the pool fee are burned
does not receivedividend, yield, a share of the treasury, redemption
can sellback to the curve before graduation; in the pool after
exposurethe token's price, and the stock through the treasury's holdings
what to readwhere
stagecurve.status(): 0 Active (sell back to the curve only), 2 Graduated (the pool)
graduation progressrealStockReserve() / terminalStock()
the kind and its numberstreasuryDeployer.strategyKindOf, treasury.params(), treasury.engineConfig()
the creator's exemptionscurve.openingTaxExemptions
whether the treasury can trade nowtreasury.health()
a pending logic upgradecontroller.proposals(treasury)

Keeper​

There is no keeper role in the contracts. Every call checks its own trigger and either fires or reverts NotDue.

calldue whenreceivesin
execute(), kinds 0, 4, 5a stop, a take-profit or a dip buy is due0.1% of the profit (take-profit), of the proceeds (stop), of the spend (dip buy)stock, USDG, USDG
execute(), kinds 2, 3the treasury is outside its band and past its cooldown0.1% of the gross swap outputUSDG or stock
buyback(), every kindbuybackStock() is nonzero and 10 s have passed0.1% of the tokens boughtthe token
book()stock has arrived and the oracle is livenothing
hook.sweep(poolId)tax has accrued on a poolnothing (sweepTipBps 0)
vault.collectFees()pool fees have grownnothing
curve.claimFees(recipient)fees are owed on an Active curvenothing
paysgas; a call that lands second reverts NotDue
examplea 2,000 USDG take-profit at a 3% gain pays about 0.06 USDG
who runs itthe protocol runs one, because 0.1% does not pay an outside keeper; the calls stay open to anyone
cannothold the treasury's money or pick a price; every trade executes inside the oracle-derived bound

Protocol​

receives30% of every collected tax, curve and pool, buy and sell, in stock, at protocol; the launch fee of 0.0005 ETH at the same address
collectscurve stage: claimFees(protocol) by anyone; pool stage: sweep
use of income30% of its tax income is used by the Safe to buy back $HEDGE, periodically; see the protocol's share
runsthe in-house keeper, at the same 0.1% reward anyone receives
cannotchange a frozen rate or reach a treasury's money

Owner Safe​

for future launches only
setDefaultstax bounds, splits, pool fee, gates, keeper reward, buy-back pace, launch fee
list, setListingGates, setBandCeilinglistings, their gates and band ceilings
setLpBpsthe per-stock LP share, 10% to 100%
setLauncher, setPublicLaunchwhich routers may launch; whether launching is public
registerKind, registerEngineKind, registerPolicy, disablePolicythe registry; append-only; a policy may be disabled for new launches

A pending launch quoted before any such change reverts Restated. Nothing launched is touched.

over a live launchbound
schedule a treasury logic upgrade through V2TreasuryUpgradeControllerfixed 2-day delay; matching code and calldata hashes; same config hash and storage schema; anyone executes after the delay; the owner may cancel; an ownership handover voids pending proposals
halt trading through the calendaran unscheduled closure
setProtocol(poolId, to)the protocol's own payout address
proposeCreator(poolId, to)14 days on chain; the creator's veto ends it and bars a new proposal for 180 days
cannot
remove liquidity from the vaultno function exists
withdraw from a treasuryno function exists
change a frozen rateRestated protects pending launches; launched terms are immutable
move a launched curve's fee recipientsimmutable

One wallet, several hats​

A creator is usually the first buyer. The protocol runs a keeper. A buyer with a script can be a keeper. Each hat is paid by its own rule, and none of them adds a power over a live launch beyond the owner's table.