CreatorGaugeController
Product role: Per-creator tradeFeeCollector: receives ShareOFT trade fees, splits them by immutable BPS, and custodies jackpotReserve. Jackpot payout authority is LotteryManager4626.
Fee split (immutable)
uint256 public constant burnShareBps = 961; // 9.61% → unwrap → ▢ burn (PPS)
uint256 public constant lotteryShareBps = 6900; // 69% → jackpotReserve (■)
uint256 public constant creatorShareBps = 0; // 0% → creatorTreasury (off)
uint256 public constant protocolShareBps = 2139; // 21.39% → voter/protocol (■)
No setFeeSplit — read via getFeeSplit(). Conservation: Lean §4. Boost math: Curve 2.5×.
Distribution flow
Primary ShareOFT path — split in ■ first:
receiveFees() → pending (■) → distribute()
69% → jackpotReserve (■)
21.39% → voter/protocol (■)
creator% → creatorTreasury (■; default 0%)
9.61% residual → unwrap → ▢ burned (PPS ↑)
Key functions
function receiveFees(uint256 amount) external;
function receiveWETHFees(uint256 amount) external;
function deposit(uint256 amount) external;
function distribute() external;
function forceDistribute() external onlyOwner;
function payJackpot(address winner, uint256 amount) external; // lottery manager only
function getJackpotReserve() external view returns (uint256);
function setCreatorTreasury(address treasury) external onlyOwner;
function getFeeSplit() external pure returns (uint256 burn, uint256 lottery, uint256 creator, uint256 protocol);
function processWETHFees() external;
If creatorShareBps > 0, treasury must be non-zero (CreatorTreasuryRequired).
WETH / hook path
Alternate ingress: WETH → creator coin → vault deposit. Lottery/voter slices are wrapped back to ■; burn stays ▢. Large swaps are owner/keeper-gated by default (setWethFeeKeeper, setWethProcessingConfig).
Prev: CreatorOVaultWrapper · Next: Share CCA Launch Arm
Was this page helpful?