NanoCore Hack

Reported loss $23K
Ethereum
Abandoned

What happened

NanoCore (NANOCORE) is an Ethereum token copied from the cVault CORE design. For five days after its 25 October 2020 deployment, users sent ETH to the token contract through addLiquidity(), and on 30 October 2020 addLiquidityToUniswapNANOCORExWETHPair() placed 60.094 WETH and the full 10,000 NANOCORE supply into a Uniswap V2 pool, with contributors able to claim the LP tokens. Every NANOCORE transfer, including the pool paying out tokens when liquidity is removed, runs through an external "transfer checker" contract that the owner can replace at any time, so the owner decides whether tokens and LP positions can move.

De.Fi's REKT database lists the project as abandoned, with LP tokens that cannot be used to remove liquidity; about 62 WETH was still sitting in the pool when checked on 30 September 2026.

How it happened

  1. The constructor mints the whole supply to the token contract itself: _mint(address(this), initialSupply); with initialSupply = 10000e18.
  2. During the 5-day event, users send ETH with addLiquidity(bool ...), capped per address by if (ethContributed[sender] + value <= 2.5 ether), and the ETH stays in the token contract.
  3. While that ETH sits in the contract, the owner can move it to any address with function _convertWETH(address payable wethAddress, uint amount) payable public onlyOwner { wethAddress.transfer(amount); }, despite the name.
  4. After the event, addLiquidityToUniswapNANOCORExWETHPair() wraps the ETH, moves the token balance into the pair and mints LP tokens to the token contract; contributors then call claimLPTokens() to receive their share.
  5. Every token movement calls an owner-chosen contract: IFeeApprover(transferCheckerAddress).calculateAmountsAfterFee(sender, recipient, amount);, set through setShouldTransferChecker(address) public onlyOwner. If that contract reverts, every NANOCORE transfer reverts, including the pool sending NANOCORE out when LP holders remove liquidity. It can also route up to the full amount to the owner-set feeDistributor, because the only check is that the two outputs add up to amount.

Protocol details

Classification Other
Protocol Type Exit Scam/Abandoned
Affected asset / contract NANOCORE

Build your security review skills

Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.