# The totalSyntheticsIssued is not updated in some cases in the claimRedemption causing bad debt

Transmuter.claimRedemption burns synthetic tokens without calling AlchemistV3.redeem when yield balance suffices, leaving totalSyntheticsIssued inflated and reducing payouts via badDebtRatio.

- Payout: Contest reward
- Severity: high
- Program: Alchemix
- Credited: TamayoNft
- Disclosed: 2025-07-15
- Write-up quality: 6/10
- Original: https://cdn.cantina.xyz/reports/cantina_competition_alchemix_may2025.pdf#3.1.11
- Library page: https://bugbountylibrary.com/r/cantina%3Aalchemix_may2025%3A3.1.11
- Tags: domain:web3 impact:funds-loss kind:contest platform:cantina sev:high tech:evm tech:solidity technique:source-review vuln:accounting-error vuln:business-logic

**Target:** Transmuter.sol claimRedemption / AlchemistV3.sol accounting
**Root cause:** claimRedemption only calls AlchemistV3.redeem (which decrements totalSyntheticsIssued) when the Transmuter's yield token balance is insufficient; otherwise it burns synths directly, so totalSyntheticsIssued is never decremented.
**Steps:**
1. Deposit yield tokens into Alchemist and mint alTokens for two users.
2. Have a user call `transmuterLogic.createRedemption(50e18)`.
3. Advance blocks so redemption matures.
4. Transfer yield tokens directly to the Transmuter so its balance covers the redemption (amountToRedeem == 0).
5. Call `transmuterLogic.claimRedemption(1)`; observe `alchemist.totalSyntheticsIssued()` unchanged before and after.
**How found:** Code reading of claimRedemption: noticed the conditional `if (amountToRedeem > 0) alchemist.redeem(...)` means the redeem path (and its totalSyntheticsIssued decrement) is skipped when yield balance is sufficient, while the synth burn still happens.
**Exploitation:** Not an attacker-profit exploit; the stale counter accumulates, inflating badDebtRatio computed in claimRedemption, which scales down claimAmount and feeAmount for all redeemers.
**Insight:** When a burn helper bypasses the protocol's redeem path, check whether global debt counters are decremented elsewhere; direct token transfers to a contract can flip a conditional branch and skip accounting side effects.
