StakingVault tier transitions
green- 0xcdede2564b573037dcd2ad3a1219bafd2e2875ac8c9faf8c86590ae147a13aa8block #41,874,782what moved
Max-approve KEYNOTE to StakingVault
what it provedStandard ERC20 allowance pattern; max-approve avoids per-stake re-approval
- 0x5a24ad2f09032bbfc2d804dfaefc50db16ca6f9568e0dd48f202ac83f596e11fblock #41,874,782what moved
Stake 25M KEYNOTE → tier 1 (15% Pro USDC discount)
what it provedFirst-time stake initializes stakeStartTime; tier threshold uses >= so exact 25M = tier 1
- 0x292c89050f7ef3e36f2c545c6c815532cab6b6f80270b9cb792ffcce452aa266block #41,874,782what moved
Stake +25M → total 50M; tier 2 (25%)
what it provedTier is recomputed per-call from stakeOf; no snapshot, no race
- 0xeedb5259f63558160e284152ee3e8afb2bd5443b4e8d04ff9e32b3da1c2a3b0cblock #41,874,782what moved
Stake +50M → total 100M; tier 3 (40%, max)
what it provedMax discount tier; stakeStartTime preserved across additions
- 0x0da9cf73e020851d91e05e3c718f9c26fd068fcc6270f204e0f32342fd61e524block #41,874,782what moved
Unstake 50M → back to 50M staked; tier 2
what it provedPartial unstake demotes tier instantly; no lockup, no penalty; stakeStartTime preserved
- 0x8c66c5419280ad20b653caa600bbfedb3cfb16c11625625b3e3eee461df8ba08block #41,874,782what moved
Unstake remaining 50M → tier 0; stakeStartTime cleared
what it provedFull unstake resets duration clock so future stake re-starts time tracking
- 0x356f26b5b0e1a3b36ac7b76440c107e04fdf5b7d86f1d84f487e6fab3257b3b3block #41,874,782what moved
Stake 24,999,999 ether → tier 0 (one wei below threshold)
what it provedTier boundary is exclusive of sub-threshold values; >= 25M required for tier 1
- 0x64666d02910b2f1d60d17741401acca2fd9bcfc3b6719aab56549b10b9de9596block #41,874,782what moved
Stake +1 ether → exactly 25M; tier 1
what it provedTier threshold inclusive at the exact value (>= comparison); crossing the boundary unlocks the tier
- 0xcef8cffe5a89cda9c9d7da4ff16808954e3b1791db6cbf6c1c0c39d663282ce5block #41,874,782what moved
Cleanup: full unstake → tier 0
what it provedScript is idempotent across re-runs; no residual stake leak