Appendix: constants (v1.0.0)
Source of truth:
- docs/spec/env-config-and-constants-v1.0.0.md
- docs/spec/launch-controller-spec-v1.0.0.md (genesis-only constants)
- src/lib/Constants.sol
- src/genesis/LaunchController.sol (genesis-only constants)
All numeric values below assume:
- CLAIM has 18 decimals
- ve uses the same 18-decimal scalar (but is not a token)
Global
| Name | Value |
|---|---|
| BPS_DENOM | 10,000 |
| ACC (index scaling) | 1e18 |
| SWAP_DEADLINE_SECONDS | 120 |
Takeovers (MineCore)
| Name | Value |
|---|---|
| TAKEOVER_PRICE_FLOOR | 0.001 ETH |
| TAKEOVER_DECAY_PERIOD | 1 hour |
| Reference price update | newReferencePrice = pricePaid * 2 |
| King payout share (non-genesis) | 75% of pricePaid |
| Barons payout share (non-genesis) | 25% of pricePaid |
| Genesis behavior (prevKing == 0x0) | 100% to Barons |
| GENESIS_ACCRUAL_DURATION | 10 days |
| KING_PAYOUT_GAS_STIPEND | 30,000 |
Genesis (LaunchController)
| Name | Value |
|---|---|
| GENESIS_SEED_ETH | 10 ETH |
| GENESIS_LP_LOCK_DURATION | 24 months (730 days) |
Emissions (MineCore)
Linear decay over:
- EMISSION_DECAY_PERIOD = 63,072,000 seconds (2 years)
| Stream | Initial rate (per sec) | Floor rate (per sec) |
|---|---|---|
| Crown stream (King) | 50 CLAIM/s | 50/9 CLAIM/s |
| Furnace reserve stream | 5 CLAIM/s | 5/9 CLAIM/s |
veCLAIM locks (VeClaimNFT)
| Name | Value |
|---|---|
| MIN_LOCK_AMOUNT | 1,000 CLAIM |
| MIN_LOCK_DURATION | 7 days |
| MAX_LOCK_DURATION | 365 days |
| MAX_VE_NFTS_PER_USER | 32 |
ShareholderRoyalties
| Name | Value |
|---|---|
| MIN_VE_FLUSH | 100e18 ve |
| MAX_SHAREHOLDER_COMPOUND_USERS_PER_CALL | 25 |
Furnace bonus engine
| Name | Value |
|---|---|
| MAX_USER_BONUS_BPS | 10,000 |
| MAX_GROSS_BONUS_BPS | 12,500 |
| LOCK_TARGET | 120,000,000 CLAIM (legacy) |
| LOCK_PCT_TARGET_BPS | 550 (5.5%) |
| RESERVE_TARGET_FINAL | 25,000,000 CLAIM |
| RESERVE_FACTOR_MAX_BPS | 20,000 |
| RESERVE_FACTOR_MAX_BPS_LOWLOCK | 15,300 |
| LOCK_PCT_MIN_FOR_BOOST_CAP_BPS | 500 (5%) |
| LOCK_PCT_FULL_BOOST_CAP_BPS | 2,000 (20%) |
| SWING_TIME | 90 days |
| BONUS_DECAY_WINDOW | 3 hours |
| LP_TOPUP_RATE_MIN_BPS | 750 |
| LP_TOPUP_RATE_MAX_BPS | 1,500 |
| LP_TOPUP_GAMMA | 2 |
Duration weights:
- The user bonus is duration-weighted using the curve defined in docs/spec/env-config-and-constants-v1.0.0.md.
Furnace LP overflow drip
| Name | Value |
|---|---|
| LP_OVERFLOW_DRIP_START | 18 months |
| LP_OVERFLOW_DRIP_RAMP | 180 days |
| LP_OVERFLOW_DRIP_FIXED_CAP_PER_DAY | 30,000 CLAIM/day |
| LP_OVERFLOW_DRIP_INFLOW_SHARE_CAP_BPS | 1,000 |
| LP_OVERFLOW_DRIP_GATE_K | 2,000,000 CLAIM |
Furnace LP rewards stream (smoothing)
| Name | Value |
|---|---|
| LP_STREAM_WINDOW | 14 days |
Furnace sellback (lock → liquid CLAIM)
| Name | Value |
|---|---|
| SELL_SPREAD_MIN_BPS | 500 |
| SELL_SPREAD_MAX_BPS | 7,000 |
| SELL_SPREAD_FLOOR_7D_BPS | 120 |
| SELL_SPREAD_GAMMA | 2 |
| LP_SALE_MIN_BPS | 500 |
| LP_SALE_MAX_BPS | 1,500 |
| LP_SALE_GAMMA | 2 |
| LP_SALE_REWARD_CAP_INFLOW_SHARE_BPS | 2,500 |
| LP_SALE_REWARD_CAP_FIXED_CAP_PER_DAY | 150,000e18 |
Market (MarketRouter)
| Name | Value |
|---|---|
| SELL_ROUND_TRIP_LOSS_MAX_BPS | 2,500 (25% at max duration) |
| DEFAULT_MIN_GLOBAL_OFFER_BUDGET | 10,000 CLAIM |
| DEFAULT_MAX_GLOBAL_OFFER_DISCOUNT_BPS | 8,000 |
| DEFAULT_GLOBAL_OFFER_TTL_SECONDS | 30 days |
| MAX_GLOBAL_OFFER_TTL_SECONDS | 90 days |
| EMERGENCY_DELIST_MIN_AGE | 7 days |
Maintenance
| Name | Value |
|---|---|
| MAX_MAINTENANCE_OFFERS_PER_CALL | 25 |
| MAX_LP_COMPOUND_USERS_PER_CALL | 25 |
LP vault fee harvest bounty (LpStakingVault7D)
| Name | Value |
|---|---|
| STALE_BOUNTY_AFTER | 60 minutes |
| BOUNTY_BPS | 100 |
| MAX_BOUNTY_WETH | 0.01 ETH |