Ursa Major Honeypot
What happened
Ursa Major (URSA) is a BNB Chain token deployed on 20 April 2021 at 0xb486d4c4…13360b by 0x4930Ed93…8dEa54, which still holds ownership. Its _approve function stores the requested allowance only when the approving wallet is that hard-coded deployer address; for every other holder it stores 0 while emitting an Approval event with the value 2. A PancakeSwap sale pulls tokens with transferFrom, which subtracts the sale amount from that zero allowance and reverts, so ordinary holders can buy URSA but cannot sell it through the router, while the deployer can still add liquidity and sell.
The owner can also create new supply with mint. De.Fi's REKT database lists Ursa Major as an exit scam/honeypot and describes it as the owner disabling transfers, but the code contains no transfer switch.
How it happened
- The constructor hard-codes
_name = "Ursa Major"and_symbol = "URSA"and credits all 12500000000000000 raw units (125,000,000 URSA at 8 decimals) to the deployer, who also becomesowner(). - Every allowance write goes through
_approve. Ifowner == address(0x4930Ed9333e8e16084F0E3ee656C4c51518dEa54)the requested amount is stored; otherwise_allowances[owner][spender] = 0and the event reportsApproval(owner, spender, 2).approve,increaseAllowanceanddecreaseAllowanceall end in this function, so a holder's wallet shows an approval succeeding while the stored allowance stays 0. - Buying works because the PancakeSwap pair sends tokens out with plain
transfer, which has no allowance check. - Selling through the router calls
transferFrom(holder, pair, amount)._transfermoves the tokens, then_allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance")underflows against the zero allowance and the whole transaction reverts. - The hard-coded wallet keeps real allowances, so it can add liquidity and sell through the router. The exemption is tied to that literal address, not to
owner(), sorenounceOwnershipwould not remove it. mint(uint256 amount)isonlyOwnerand credits new tokens to the caller with no cap. The total supply read on 2026-09-30 equals the constructor amount, so no net minting shows in the current state.
Protocol details
Evidence
- report @Token_Sniffer incident report twitter.com
- report Token Sniffer post 1380219360631906307 (seed link) twitter.com
- transaction Ursa Major contract creation transaction bscscan.com
- address Ursa Major (URSA) verified contract code on BscScan bscscan.com
- analysis Sourcify match for 0xb486d4c4de6200fed48b2fb90527dc75a913360b on BNB Chain repo.sourcify.dev
- analysis BSC-SCAM: PancakeSwap NoApproval cryptot3ddybear.gitlab.io
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.