Protocol mechanics
Who controls what
Creator controls, protocol controls, and the limits of both.
Loading…
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 team fee recipient | setCreatorFeeRecipient(address) | Future accruals only; zero disables the fee claim. |
| Change team 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 signal reward share | setBribeBps(bps) | 0 to 2,000 in either mode; applies to future auction payments. |
| Add or remove a signal manager | setSignalManager(address,bool) | Manager-led mode only; existing positions do not move. |
| Clear a revoked manager's position | forceRemoveSignal(account, strategy) | Manager-led mode only; Coin returns to that account. |
| Open to holders | 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 signals, 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 team destinations and 30% to it; when it is zero, new and unclaimed protocol fees go to the team 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, manager-led mode also fixes the current manager permissions: nobody can change membership, force a revoked manager’s exit or Open to holders. If approved managers become unavailable, new signals can stall. Open to holders first if permissionless signaling is intended.
The core contracts provide no owner-controlled upgrade, pause, treasury sweep or arbitrary-call function. A team cannot mint outside the Mine after launch, change its emission schedule, seize another account's signals, withdraw the locked genesis LP tokens, or rewrite accrued payment claims.
In manager-led 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 holder-led mode.
Holders can remove their own signals, 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.