ChildDoge Honeypot
What happened
De.Fi's REKT database lists ChildDoge (BNB Chain, contract 0x0671d181…a6d574) as an exit scam/honeypot dated 2021-06-23, stating that the contract owner could disable the transfer function and so restrict users from selling. In the verified source, a variable newun acts as a blocked address: transfer and transferFrom both revert with "please wait" when the recipient equals newun. The first transferFrom call with a non-zero sender sets newun to its recipient, and the owner can overwrite it with transfernewun.
A DEX sell sends tokens to the pool through transferFrom, so it reverts once newun holds the pool address. The contract was deployed on 2021-06-23; no loss figure is listed.
How it happened
- The constructor sets
owner = msg.sender(viaOwned) and credits the whole supply to it:balances[owner] = _totalSupply;. The deployer, 0x30EA6880…184A77, is also the current on-chain owner. transfercarries the guardrequire(to != newun, "please wait");, andtransferFromstarts withif(from != address(0) && newun == address(0)) newun = to; else require(to != newun, "please wait");.- While
newunis still zero, the firsttransferFromfrom a non-zero sender stores its recipient innewunand goes through. The source does not say who that recipient is; the linked blog describes the same pattern capturing the liquidity pool address when liquidity is first added, on other tokens. - After that, every
transferFromandtransferwhose recipient isnewunreverts. A DEX sell has the router calltransferFrom(holder, pool, amount), so with the pool address stored innewunthe sell reverts; the holder's balance is not debited because the require runs first. - Buys are not covered by the guard: the pool sends tokens out with
transfer(buyer, amount), which only fails if the buyer isnewun. - The owner holds the switch:
function transfernewun(address _newun) public onlyOwner { newun = _newun; }. Pointing it at an unused address lifts the block, while setting it to zero would let the next non-zerotransferFromcapture a new recipient and block it. - Separately,
clearCNDAO()is owner-only and sends the contract's native-coin balance to the caller, and theChildDogecontract declares a payable fallback so it can receive BNB. - What happened, per the listing: De.Fi's REKT database lists the token as an exit scam/honeypot where the owner could disable transfers so users could not sell. No transaction was opened, so the value of
newun, whethertransfernewunwas called, and any amount lost are not established.
Protocol details
Evidence
- report @Token_Sniffer incident report twitter.com
- address BscScan verified source, ChildDoge bscscan.com
- analysis Stealthy LP block scam, explained (CryptoT3ddyBear blog, 2021-04-11) cryptot3ddybear.gitlab.io
- analysis Sourcify match copy of 0x0671d181e36f207b22df910fb9d1f2d981a6d574 repo.sourcify.dev
- analysis De.Fi REKT database listing for ChildDoge (Exit Scam/Honeypot, 2021-06-23, Binance) de.fi
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.