Launching a fund
Designing strategies
Choosing an asset, a starting price, an epoch and a multiplier; adding and killing strategies.
Loading…
Browse documentation
Launching a fund
Choosing an asset, a starting price, an epoch and a multiplier; adding and killing strategies.
Loading…
Launching a fund
Choosing an asset, a starting price, an epoch and a multiplier; adding and killing strategies.
A strategy is the treasury's standing order to buy one asset with mining revenue. Choosing its parameters is the most consequential thing a creator does, because they are immutable for that strategy and a killed strategy cannot be revived.
The payment token is the asset the treasury will accumulate. It must be a deployed ERC-20 on the same chain and cannot be sCoin.
There is no protocol-wide token whitelist. The fund's creator can add strategies for standard ERC-20 assets, including large caps, small caps, memecoins and LP tokens. Auctions acquire tokens without price oracles, and the treasury pays out token balances proportionally on withdrawal. Existing holdings are not sold to rebalance toward target weights, so asset selection does not depend on oracle coverage or a rebalancing integration. The creator still chooses which strategies are available to that fund's allocators.
Some things to check before committing:
1.5 tokens for an 18-decimal token is 1,500,000,000,000,000,000; the interface converts from decimal input for you.| Parameter | Bound | How to think about it |
|---|---|---|
| Initial price | at least the minimum price | The first epoch's asking price in the asset. After that, every epoch starts at the previous clearing payment times the multiplier, so this only matters until the first fill. |
| Minimum price | at least 10 raw units | A floor on every later epoch's starting price, not on fills. It stops a chain of near-zero fills from pinning the starting price at dust. Set it around the least you would ever want an epoch to open at. |
| Epoch duration | 1 hour to 365 days | How long the price takes to decay to zero. Shorter epochs track the market faster and sell smaller pools more often; longer epochs let more USDG accumulate per sale. One day is the launch default. |
| Price multiplier | 1.1× to 3× | How far above the last clearing price the next epoch opens. A higher multiplier is more aggressive and relies on decay to find the price; a lower one clears sooner but can undersell in a rising market. 1.2× is the launch default. |
The auction is a Dutch auction, so it discovers the price on its own: whatever you set, competition among buyers will fill it at roughly the market rate of USDG in your asset. The parameters change how quickly and how often that happens, not whether it does.
After launch, Manage → Assets → Add assets adds each strategy with one controller transaction:
FundController.addStrategy(paymentToken, {initialPrice, epochDuration, priceMultiplier, minimumPrice});It deploys the Auction, its Bribe and its BribeRouter atomically and registers the payment token as the Bribe's first reward token. The new strategy has no allocation and receives nothing until someone allocates to it, and it cannot claim revenue that accrued before it existed. Its first epoch starts immediately at the initial price. Assets chosen on the Launch page are created the same way inside the launch transaction, up to five in the app.
In Manage → Assets, choose Remove beside an asset and review the confirmation. This stops its active buying strategies; it does not sell or delete treasury holdings. The asset remains visible with a Stopped label. The list scrolls to show every asset, with search available for larger funds.
FundController.killStrategy(strategy);Irreversible. The strategy stops receiving new allocations and new revenue. What it had already accrued stays available for distribution and its auction can still be filled, so USDG already inside it is still sold for the asset. Allocators can remove their allocations and claim rewards at any time. The last live strategy cannot be killed.
Kill a strategy when the asset no longer belongs in the treasury or its token turns out to misbehave. Its existing holdings remain in the treasury, and holders decide whether to select or omit them when withdrawing.
Manage → Settings → Allocation settings adapts to the fund's allocation mode.
Opening a managed fund to the community preserves its current allocation reward share. The allocation settings owner controls these changes: normally the FundController owner, or the independent Resonance owner if ownership was transferred. A delegated allocation manager can change allocations but cannot change these settings.
FundController.addBribeRewardToken(strategy, token) registers another token on a strategy's Bribe, up to 16 per strategy. Anyone can then start a reward stream of that token with Bribe.notifyReward, for example to pay holders to allocate to a strategy you want funded. Registration alone pays nothing.
New funds start with one default auction paid in their pool’s LP tokens. Base-asset and fund-token auctions are optional. Historical funds may retain all three strategies. Earlier funds launched on Uniswap V2 have fund-token and pair-token strategies. The fund-token strategy acquires fund tokens for the fund, where anyone can burn them. Add further compatible token strategies at launch or after it. LP tokens from another pool can be chosen by their exact ERC-20 address; each pool keeps its own ownership and deposits, even when two pools trade the same pair.