Elastic Staking Rug Pull
What happened
Elastic Staking (EStake, 9 decimals) is an Ethereum token contract at 0x88f63918…0225e8, deployed by 0xa4715671…A2539c in the transaction 0x5f767b81…783b15. Its constructor credits the entire initial supply of 1,210,000 tokens to the deployer, and the source lets a single owner-chosen Distributor address overwrite any holder's balance and the total supply. Nothing in the code caps those writes or says what the Distributor contract does.
De.Fi's REKT database lists the project as an exit scam / rug pull on 2021-01-26 with a loss of 208,514 USD. The listing's transactions, kept here: the deployer airdropped tokens to community members in 0xe1faff1c…2631e3, 0x563523b4…92fd64 and 0xc9c4771b…40ed6c. Once liquidity had grown, the listing says the deployer called an unverified contract through method 0x8a4995ae three times (0xd08a5d8a…6b491e, 0xdd255f83…d6a85d, 0xb0f8eedc…0cd4c5) to mint more tokens onto its wallet, then sold tokens in 0xb5a83eed…9aa32e, 0x5e315dee…2cb124, 0xb0f7e4d5…c8e77f and 0xc8e7050c…78e8ca. The Etherscan pages for the first call and the first sale confirm the sender and the sale (details in the steps below); the minting effect of the 0x8a4995ae calls is the listing's claim and was not independently confirmed.
How it happened
- What the code allows: the constructor sets
_totalSupply = INITIAL_SUPPLY;and_updatedBalance[msg.sender] = _totalSupply;, so the deployer holds the full 1,210,000 EStake at launch. - What the code allows:
function setDistributor(address _Distributor) public onlyOwner { Distributor = _Distributor; }lets the owner point the token at any address, with no lock, timelock or limit on how often it changes. (lockOwnershiponly freezestransferOwnership; it does not locksetDistributor.) - What the code allows: the Distributor can call
function setUserBalance(address _user, uint256 _balance) public onlyDistributor { _updatedBalance[_user] = _balance; }andfunction setTotalSupply(uint256 _supply) public onlyDistributor { _totalSupply = _supply; }. Balances are plain numbers, so a Distributor can credit any wallet with any amount without a matching debit, and_totalSupplychanges only through this setter. A currenttotalSupplyread of 1,625,223 tokens (an eth_call on 2026-09-30, not a historical value) is above the 1,210,000 constructor supply, which in this source can only come fromsetTotalSupply; which transactions did that is not established here. - What the code allows: balance credited this way is spendable like any other, so it can be sold into a Uniswap pool for real ETH.
- What was recorded: on 2021-01-26 the deployer address 0xa4715671…A2539c called method 0x8a4995ae on the unverified contract 0xfB842aD4…Cc9042 (block 11732400, per Etherscan). That selector is not a function of the EStake source; it is not the selector of
setUserBalance(0xfe177700) orsetTotalSupply(0xf7ea7a3d). Whether 0xfB84... is the token'sDistributoris not shown by the opened pages. - What was recorded: the same deployer address swapped 300,000 EStake for 43.38 WETH on the Uniswap V2 router in transaction 0xb5a83eed…9aa32e (block 11732384, 2021-01-26 16:18 UTC, per Etherscan). The listing counts 208,514 USD lost across the sales.
Protocol details
Evidence
- report Report estake.io
- transaction Etherscan transaction 0xd08a5d8aadee2a84301aa2d60a5e234faeecc04733960e40d314cf7e676b491e etherscan.io
- transaction Etherscan transaction 0xb5a83eed35a89523149d4767647fdeb008af166b5c4e1cb7be8642499c9aa32e etherscan.io
- transaction etherscan.io transaction 0x5635…fd64 etherscan.io
- transaction etherscan.io transaction 0x5e31…b124 etherscan.io
- transaction etherscan.io transaction 0x5f76…3b15 etherscan.io
- transaction etherscan.io transaction 0xb0f7…e77f etherscan.io
- transaction etherscan.io transaction 0xb0f8…d4c5 etherscan.io
- transaction etherscan.io transaction 0xc8e7…e8ca etherscan.io
- transaction etherscan.io transaction 0xc9c4…ed6c etherscan.io
- transaction etherscan.io transaction 0xdd25…a85d etherscan.io
- transaction etherscan.io transaction 0xe1fa…31e3 etherscan.io
- address Elastic Staking (EStake) verified source on Etherscan etherscan.io
- address Etherscan address page for 0xfB842aD4FbB3AB9ccfF7b92BcD5F659F08Cc9042 etherscan.io
- analysis Sourcify match for 0x88f639186aee2fc903da4fe5742df35b760225e8 repo.sourcify.dev
- analysis De.Fi REKT database entry for EStake (Exit Scam/Rugpull, 2021-01-26, 208,514 USD) de.fi
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.