Protocol mechanics
Authority after creation
Creator controls, protocol controls, and the limits of both.
Loading…
Browse documentation
Protocol mechanics
Creator controls, protocol controls, and the limits of both.
Loading…
Protocol mechanics
Creator controls, protocol controls, and the limits of both.
Each fund's FundController initially owns Coin, Mine, Resonance and the launch's official LP token. Its owner can use the controls below while the controller still owns the relevant component. The Launchpad owner separately controls the global mining protocol fee, and the FullRange owner controls the trading-fee protocol recipient. Owning a fund token does not grant any of these roles.
| Action | Function | Bound or consequence |
|---|---|---|
| Update metadata | setMetadataURI(uri) | Up to 2,048 raw bytes; name and symbol remain immutable. |
| Change creator fee recipient | setCreatorFeeRecipient(address) | Future accruals only; zero disables the fee claim. |
| Change creator fee rate | setCreatorFeeBps(bps) | 1 to 200 basis points (0.01% to 2%). |
| Redirect future mining revenue | setRevenueRouter(address) | Must be a nonzero deployed contract; compatibility is not verified. |
| Add a strategy | addStrategy(paymentToken, config) | Must satisfy the auction bounds. |
| Kill a strategy | killStrategy(strategy) | Irreversible; cannot kill the last live strategy. |
| Register a reward token | addBribeRewardToken(strategy, token) | Append-only, at most 16 per Bribe; excludes sCoin. |
| Set the allocation reward share | setBribeBps(bps) | 0 to 2,000 in either mode; applies to future auction payments. |
| Add or remove an allocation manager | setSignalManager(address,bool) | Managed mode only; existing positions do not move. |
| Clear a revoked manager's position | forceRemoveSignal(account, strategy) | Managed mode only; Coin returns to that account. |
| Open community allocation | openToCommunity() | Irreversible. |
| Change LP fee destinations | setLiquidityFeeRecipients(pool, recipient0, recipient1) | Controller-owned LP tokens only; also applies to unclaimed fees. |
| Transfer or renounce ownership | transferOwnership, acceptOwnership, renounceOwnership | Transfer requires acceptance; renunciation disables this controller’s actions. |
The controller owner can call transferCoinOwnership(newOwner), transferMineOwnership(newOwner), transferResonanceOwnership(newOwner) or transferLiquidityPoolOwnership(pool, newOwner). Moving an LP token's ownership moves only its fee configuration, never LP shares. Each component uses one-step ownership: the transfer takes effect immediately and requires a nonzero recipient. Its new owner administers its settings directly; the original controller's forwarded calls to it revert. Coin's owner controls metadata, while Mine remains its permanently selected minter.
A component owner can return it by calling transferOwnership(originalFundController) directly. Read each component's owner() to determine its actual authority; the controller's owner alone is not sufficient.
The launch-time ResonanceRouter is permanently bound to its Resonance, but the Mine's destination is configurable. The controller owner can direct the remainder of future mining payments to another contract, including the treasury. An incompatible or malicious destination can strand or divert future revenue.
This change does not move old router balances, existing allocations, strategies or accrued claims. FundController remains bound to the original Resonance. Inspect the Mine's current revenueRouter and understand that destination's code; the original Launchpad record alone does not prove where new payments go. See Revenue routing.
Set the protocol fee recipient and the independent protocol fee rate through setProtocolFeeBps, from 1 to 200 basis points (0.01% to 2%), initially 50. These affect future mining payments across existing and future launches. Recorded payment claims remain unchanged.
Seed amounts are explicit inputs of each launch; the Launchpad owner cannot change them. The Launchpad does not own individual FundControllers or control their treasury balances.
The FullRange owner sets the protocol recipient of swap fees. While it is set, realized fees split 70% to creator destinations and 30% to it; when it is zero, new and unclaimed protocol fees go to the creator destinations.
FundController ownership transfer requires the current owner to nominate an address and that address to accept. Until acceptance, the current owner retains control and can replace or cancel the nomination. Renouncing FundController ownership clears its own pending nomination and disables its administration. It does not revoke independent component owners. Components still owned by the controller become frozen.
If Resonance remains owned by the renounced controller, managed mode also fixes the current manager permissions: nobody can change membership, force a revoked manager’s exit or open community allocation. If approved managers become unavailable, new allocations can stall. Open to the community first if permissionless allocation is intended.
The core contracts provide no owner-controlled upgrade, pause, treasury sweep or arbitrary-call function. A creator cannot mint outside the Mine after launch, change its emission schedule, seize another account's allocations, withdraw the locked genesis LP tokens, or rewrite accrued payment claims.
In managed mode, the owner can withdraw a revoked manager's entire position in one strategy. Coin returns only to that account, and earned rewards remain claimable. This owner action is disabled permanently in community mode.
Holders can remove their own allocations, including from killed strategies. Mining payment claims, reward claims and direct withdrawal remain callable under the contracts' rules. That does not guarantee execution: token failures, gas limits, network availability and each transaction's bounds still apply.