Staking & Listing Economics
StakingPool rewards, the listing bond, and LP locking — the Phase 2 incentive machinery.
Planned
All three mechanisms are implemented and tested, and all three are undeployed — they activate with the Phase 2 deployment.
StakingPool
- Stake
$SEAT, earn a share of desk fees (the 10% staker slice of performance + AUM fees). - Rewards track an
accUsdgPerShareaccumulator: deposits of USDG rewards increase the accumulator; each staker's pending reward isstaked × (accPerShare − userDebt). - Rewards that arrive while nobody is staked land in
undistributedUsdgand fold into the accumulator when staking resumes — they are not lost and not skimmed. stake/unstake/claimare the full interface. No lockup, no slashing.
Listing bond (stake-to-list)
DeskFactory.createDeskis owner-only (curated desks).DeskFactory.listDeskis permissionless but pulls a$SEATbond — default100_000e18— from the caller.returnBondreturns the bond. The bond is anti-spam, not a fee: it is not revenue and is not burned.- One vault per leader address, always.
LpLocker
- Holds a Uniswap v3 position NFT (the SEAT/USDG liquidity position) for ≥ 365 days.
- Early withdrawal reverts; after the lock, only the beneficiary can withdraw.
- The cited NPM is
0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3on 4663; the mint itself is a manual operator step — the deploy script only logs intent.
How the pieces interact
Honest status
| Mechanism | Code | Tests | Deployed |
|---|---|---|---|
| StakingPool | ✅ | ✅ | ❌ |
| Listing bond | ✅ | ✅ | ❌ (factory on 46630 predates it) |
| LpLocker | ✅ | ✅ | ❌ |
Until Phase 2 ships, none of these economics exist on-chain. Treat any claim otherwise as fraudulent.