ShareDeFi Protocol Honeypot
What happened
ShareDeFi Protocol (SHADE) is a BNB Chain reflection token deployed on 1 March 2021 at 0x9e1c8ef6…b56991. Its owner can set the transfer tax (setTaxFee) and the liquidity fee (setLiquidityFee) to any number with no upper limit. The fees are computed as a share of the amount out of 10,000 and subtracted with SafeMath, so a _taxFee above 10,000 (100%) makes every taxed transfer, including every sale into the PancakeSwap pair, revert, while fee-exempt addresses such as the deployer keep moving tokens.
The tax fee is redistributed to holders through the reflection total. Only the liquidity fee is credited to the token contract, which swaps it for BNB it holds itself, and the owner-only balanceSH sends the contract's BNB to the owner. De.Fi's REKT database lists ShareDeFi Protocol as an exit scam/honeypot, stating that the contract owner could disable the transfer function and so stop users from selling their tokens.
How it happened
- The constructor gives the deployer the whole 100,000 SHADE supply, creates the PancakeSwap pair, and marks only the deployer and the token contract in
isExcludedFromFee. The owner can add or remove exemptions withsetExcludedFromFee. - For any transfer where neither side is exempt,
collectFeecomputestaxFee = amount.mul(_taxFee).div(10**(_feeDecimal + 2)), that is_taxFeeout of 10,000, and runstransferAmount = transferAmount.sub(taxFee). - It then subtracts a liquidity fee: a fixed 3% (
_liquidityFeeSell = 300) when the caller is the PancakeSwap router, as in a sale, or_liquidityFeeout of 10,000 otherwise. setTaxFee(uint256 fee)andsetLiquidityFee(uint256 fee)are owner-only and store any value. A_taxFeeabove 10,000 makes the fee larger than the amount, so the subtraction reverts every taxed sale, purchase and wallet transfer; a high value below that, such as 9,000 (90%), leaves the recipient a small fraction of an amount debited in full from the sender.- The liquidity fee is credited to the token contract, and on transfers not sent by the pair the contract sells its token balance for BNB to itself through
swapTokensForEth. The owner-onlybalanceSH()then sends the contract's BNB to the owner; no code adds it to liquidity. tradingEnabledstarts astrueand no function sets it back tofalse, so the transfer block comes from the fee setters, not a trading switch.renounceOwnership()would freeze the fees at their current values.
Protocol details
Evidence
- transaction ShareDeFi Protocol contract creation transaction bscscan.com
- address ShareDeFi Protocol (SHADE) verified contract code on BscScan bscscan.com
- analysis Sourcify match for 0x9e1c8ef68a378ddcfd6607956c289fedbfb56991 on BNB Chain repo.sourcify.dev
- analysis De.Fi REKT database listing for ShareDeFi Protocol (SHADE) de.fi
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.