# Outstanding reserved tokens are incorrectly counted in total redemption weight

Juicebox NFT delegate added reserved-token count to redemption weight instead of contribution-floor-weighted quantity, skewing overflow redemption payouts.

- Payout: Contest reward
- Severity: high
- Program: Juicebox
- Credited: Jeiwan
- Disclosed: 2023-01-09
- Write-up quality: 6/10
- Original: https://github.com/code-423n4/2022-10-juicebox-findings/issues/129
- Library page: https://bugbountylibrary.com/r/c4%3A2022-10-juicebox%3AH-03
- Tags: domain:web3 impact:funds-loss kind:contest platform:code4rena sev:high tech:evm tech:solidity technique:source-review vuln:accounting-error vuln:reward-distribution

**Target:** JBTiered721DelegateStore redemption weight accounting
**Root cause:** totalRedemptionWeight adds the raw number of outstanding reserved tokens to the weight sum instead of multiplying by contributionFloor, so total weight is not the sum of individual redemption weights.
**Steps:**
1. Read JBTiered721DelegateStore.sol#L563-L566 totalRedemptionWeight loop.
2. Observe weight += contributionFloor*(initialQuantity-remainingQuantity) + numberOfReservedTokensOutstandingFor(...).
3. Note reserved tokens are added as a count, not scaled by contributionFloor.
4. Compare to per-user redemption weight (contributionFloor * NFT count) to see mismatch.
5. Conclude overflow*(userWeight/totalWeight) is distorted when reserved tokens outstanding.
**How found:** Code reading of the redemption weight formula; noticed the reserved-token term is added as a raw count while minted tokens are multiplied by contributionFloor, breaking the invariant that total weight equals sum of individual weights.
**Exploitation:** Contributors redeem NFTs for overflow; inflated/deflated totalRedemptionWeight skews each redeemer's share of overflow, letting some redeem more than proportional and others less.
**Insight:** When a total is meant to equal the sum of per-user weights, verify every term uses the same units/scaling; a raw count added to a floor-weighted sum is a classic accounting mismatch in redemption/reward math.
