VDB-57: VIP-660 [BNB Chain] September 2026 Prime Allocation - #763
Conversation
Enable the U market for Prime on the borrow side (addMarket on PrimeV2 with supplyMultiplier 0, borrowMultiplier 2e18) and set the September reward speeds on the PrimeLiquidityProvider: $64K to USDT suppliers, $16K to U borrowers, and wBNB rewards ended (speed 0). REGULAR proposal. Fork simulation verifies pre/post state, the 3-arg PrimeV2 addMarket, MarketAdded + TokenDistributionSpeedUpdated events, and that speeds stay under the configured max. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Greptile SummaryAdds VIP-665 for the September 2026 BNB Chain Prime allocation.
Confidence Score: 5/5The PR appears safe to merge, with the governance actions and resulting state covered by the included fork simulation. The proposal uses established BNB Chain reward-speed conventions, targets the expected PrimeV2 and liquidity-provider interfaces, and successfully verifies both actions and their post-execution state on a representative fork.
|
| Filename | Overview |
|---|---|
| vips/vip-665/bscmainnet.ts | Defines the two regular-governance actions, allocation constants, addresses, and proposal metadata; no actionable defect was identified. |
| simulations/vip-665/bscmainnet.ts | Exercises the proposal on a BNB Chain fork and verifies pre-state, execution events, market registration, multipliers, distribution speeds, and configured maxima. |
| simulations/vip-665/abi/PrimeV2.json | Supplies the PrimeV2 interface required to execute and inspect the new three-argument addMarket action in simulation. |
| simulations/vip-665/abi/PrimeLiquidityProvider.json | Supplies the PrimeLiquidityProvider interface required to execute and validate reward-speed updates in simulation. |
Reviews (1): Last reviewed commit: "vip-665: September 2026 Prime allocation..." | Re-trigger Greptile
Squad review — round 1, head
|
- meta.description: note the temporary Prime score-update freeze (ScoreUpdateInProgress) that addMarket triggers for existing holders - regenerate PrimeLiquidityProvider ABI from deployed impl 0x46bed43b (drop proxy/getBlockNumber entries, add isTimeBased et al.) - add argument-level assertions for MarketAdded and the three TokenDistributionSpeedUpdated events - comment: reference the on-chain August speeds at the fork block (VIP-652 convention) instead of the out-of-repo Notion doc - fold the redundant "wBNB rewards ended" test into the speeds test Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Squad review — round 2 (final), head
|
| # | Item | Verdict |
|---|---|---|
| 1 | Freeze sentence in meta.description |
Partially fixed — sentence added, mostly accurate, two clauses defective (below) |
| 2 | Count-only event assertions | Fixed — argument-level withArgs added and verified against deployed source and on-chain state at the fork block (incl. U previous speed = 0, USDT 8506944444444444, wBNB 6166906433170) |
| 3 | PLP ABI fixture drift | Fixed — exact entry-for-entry match with deployed impl 0x46bed43b… (58/58 after canonical sort) |
| 4 | Out-of-repo (Notion) comment | Fixed — self-contained sentence matching the VIP-652 convention |
| 5 | Duplicate wBNB test | Fixed — folded with equivalent coverage; the explicit == 0 literal now pins the constant |
Open items — vips/vip-665/bscmainnet.ts:60 (voter-facing description)
- "no vU Prime score accrues" until the round finishes — inaccurate. vU score goes live per holder as each holder's score is updated: partial
updateScoresbatches mark users one by one, and any vU interaction through the Comptroller hook (permissionlessaccrueInterestAndUpdateScore) or an XVS-stake change updates that holder immediately. Early-updated holders share the full $16K/mo U stream while not-yet-updated holders earn nothing from vU. The freeze gatesclaimPrime/issue/burn, not scoring. - "resolves once the score update completes" — implies self-resolution. Nothing on-chain drives the round:
updateScoresis permissionless but keeper-driven, batches capped at 20 loops (≥25 transactions at ~500 holders). Claim functions revert until someone runs it — minutes-scale with a prompt keeper, indefinite without one.
New non-material nit (listed only because this is the final round): simulations/vip-665/bscmainnet.ts:73-74 — a two-line comment restates what the withArgs calls and constant names already show.
Dimensions this round
VIP review — clean (no-logic-change proof, event args vs chain, ABI fidelity, sim re-run). Functional Correctness — the two description findings above; fresh sweep of the change surface otherwise clean (speed math exact, addMarket preconditions hold, action ordering safe). Code Quality — clean, one nit.
Squad review loop closed at its 2-round cap (cap set by Aditya). Reviewed by the Get Things Done squad; consolidated by the squad lead. Tracker: VENUS-257 / VENUS-260. Round-1 review: comment.
…ot in VIP Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Renumber vip-665 -> vip-660 (on-chain proposalCount 659), rework the description around the verified on-chain funding picture, add References.
|
Next step once vip get executed --> VenusProtocol/venus-protocol#709 |
VIP-660 [BNB Chain] September 2026 Prime Allocation
Summary
This proposal sets the September 2026 Prime reward allocation on BNB Chain — $80K in total, split 80/20 ($64K to USDT suppliers and $16K to U borrowers) — and ends wBNB Prime rewards. It is the first month U is a Prime market, and the first Prime market scored on the borrow side rather than the supply side. It also rebalances the PrimeLiquidityProvider's reward inventory toward USDT to match that split. Refer to the community post for the full background and rationale.
Actions
This VIP performs the following actions on BNB Chain:
Actions 2–4 are a single setTokensDistributionSpeed call on the PrimeLiquidityProvider; action 5 is a sweepToken call on the same contract. The Normal Timelock holds the PrimeV2 addMarket and PrimeLiquidityProvider setTokensDistributionSpeed ACM permissions and owns the PrimeLiquidityProvider, so no ACM grants are needed. The Critical Timelock's privileges were removed in VIP-645, so — as with the August allocation — this proposal is submitted as a Normal VIP.
Funding the reward legs
U, USDT and wBNB are already configured reward tokens on the PrimeLiquidityProvider (each with a max distribution speed of 1e18, unchanged here), so no initializeTokens or setMaxTokensDistributionSpeed call is needed.
References
Voting options
Tests:
npx hardhat test simulations/vip-660/bscmainnet.ts --fork bscmainnet→ 16 passing.yarn lint0 errors, prettier clean. propose() via proposer Safe requiredGasLimit ≈ 1.26M (7.5% of the 16.78M per-tx cap).Originally opened by the Venus dev bot as VIP-665; renumbered to VIP-660 at proposal time (on-chain proposalCount = 659).