Reflation Rug Pull
What happened
Reflation (RLF) was an Ethereum token deployed on 14 December 2020 at 0xdc65d31b…e86bac by 0x13e5e454…664066, with a stated supply of 125,000 RLF. Its increaseAllowance function hides a mint: when the owner approves itself, the added amount is credited straight to the owner's balance, with no Transfer event and no change to totalSupply. The deployer added 200 ETH and 66,500 RLF of liquidity in transaction 0xb52e11e1…1f82af, called increaseAllowance on itself (one such call is 0xaa141fae…03e3a0), and within the hour sold 9.5 million, 95 million and 950 million RLF, far more than the stated supply, in 0x6d54fe5e…ff39f0, 0xebffb4e0…a3b0d5 and 0xd70328a7…f64e69.
The sales returned about 212.58 WETH, roughly 12.6 more than the deployer had put in, which left buyers' RLF with almost no ETH behind it; the deployer then sent 215.17 ETH to 0x601a1dd6…1905F7 in 0xa8fb0d30…fcc00b. De.Fi's REKT database puts the loss at $8,987.
How it happened
- The constructor credits the deployer with the full 125,000 RLF, and the token's rate helper
_getCurrentSupplyreturns(rSupply, rSupply), so the reflection rate is always 1 and raw_rOwnedvalues equal token balances. increaseAllowancecontainsif (msg.sender == spender && spender == owner()) { _rOwned[spender] = _rOwned[spender].add(addedValue); }, so the owner can add any amount to its own balance by approving itself. Only anApprovalevent is emitted and_tTotal, whichtotalSupplyreturns, does not change.- On 14 December 2020 the deployer seeded a Uniswap V2 pool with 200 ETH and 66,500 RLF, keeping the LP tokens.
- Between 21:23 and 21:30 UTC the deployer called
increaseAllowancewith itself as spender (0xaa141fae…03e3a0 is one such call) and sold 9.5 million, 95 million and 950 million RLF into the pool, receiving 211.19, 1.27 and 0.12 WETH. - The pool was left holding a very large RLF balance and almost no WETH, so holders who had bought RLF could no longer sell it for meaningful ETH. The deployer moved 215.17 ETH to 0x601a1dd6…1905F7.
Protocol details
Evidence
- transaction Reflation contract creation transaction etherscan.io
- transaction Etherscan transaction 0xb52e11e1... (addLiquidityETH) etherscan.io
- transaction Etherscan transaction 0xaa141fae... (increaseAllowance) etherscan.io
- transaction Etherscan transaction 0x6d54fe5e... (RLF sale) etherscan.io
- transaction Etherscan transaction 0xebffb4e0... (RLF sale) etherscan.io
- transaction Etherscan transaction 0xd70328a7... (RLF sale) etherscan.io
- transaction Etherscan transaction 0xa8fb0d30... (ETH transfer) etherscan.io
- address Reflation (RLF) verified contract code on Etherscan etherscan.io
- analysis Sourcify match for 0xdc65d31b94dbc5188ee5e01c22618537e5e86bac on Ethereum repo.sourcify.dev
- analysis De.Fi REKT database listing for RLF de.fi
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.