TRBAS3 Rug Pull
What happened
TRBAS3 is an airdrop-style token whose owner address keeps unrestricted minting rights. The constructor credits a 768,800-token team fund to the deployer, and DistributeAirdrop(address _participant, uint _amount) is onlyOwner and credits any amount to any address; the only check is require( totalDistributed < totalSupply ), which is evaluated before the amount is added, and the owner can raise totalSupply with add(uint256 _value). The owner also has withdrawAll() for the contract's ETH and withdrawForeignTokens. Etherscan shows the deployer address calling DistributeAirdrop twice on 2020-12-14, minting 537,600 TRBAS3 in one call and about 7.69 million TRBAS3 to its own address in the other. De.Fi's REKT database lists the project as an exit scam/rug pull with a loss of 3,176 USD and says the deployer sold tokens in multiple transactions through the Uniswap router.
The contract deployer invoked the minting function and DistributeAirdrop() to generate new tokens onto his wallet: Tx 1 0xd1a7…51a7 Tx 2 0x9cd3…c1f2 Tx 3 0xd2ac…7e1c
De.Fi's listing says tokens were sold by the contract deployer in multiple transactions: Source
How it happened
- The constructor sets
owner = msg.sender;and callsdistr(owner, teamFund)withuint256 teamFund = 768800e18;, so the deployer starts with the whole declared supply (deployment transaction 0xd1a72cc4…5351a7). function DistributeAirdrop(address _participant, uint _amount) onlyOwner external { Distribute(_participant, _amount); }callsDistribute, which runsrequire( totalDistributed < totalSupply );and thenbalances[_participant] = balances[_participant].add(_amount); totalDistributed = totalDistributed.add(_amount);. The check happens before the new amount is added andDistributeis not gated bycanDistr, so a single call can credit an amount far above the remaining supply, andfinishDistribution()does not stop it.- The owner can also raise the ceiling with
function add(uint256 _value) onlyOwner public { uint256 counter = totalSupply.add(_value); totalSupply = counter; }. The on-chaintotalSupplyvalue read on 2026-09-30 is 110,707,200 tokens against the 768,800 declared at deployment; in this source onlyaddraises that variable, but the value alone does not show how many tokens were minted. - On 2020-12-14, per Etherscan, the deployer address 0xBE923088…461734 called
DistributeAirdropin transactions 0x9cd32b80…3dc1f2 (537,600 TRBAS3) and 0xd2acd26e…057e1c (about 7.69 million TRBAS3, to 0xBE923088…461734). - De.Fi's REKT database lists the deployer as selling tokens in multiple transactions with the Uniswap router; those sale transactions were not opened.
Protocol details
Evidence
- report De.Fi REKT database listing for TRBAS3 (listing data supplied with the input) twitter.com
- transaction Etherscan transaction 0x9cd32b80...dc43dc1f2 (DistributeAirdrop) etherscan.io
- transaction Etherscan transaction 0xd2acd26e...57e1c (DistributeAirdrop) etherscan.io
- transaction Etherscan transaction 0xd1a72cc4...351a7 (contract creation) etherscan.io
- address Etherscan verified source, TRBAS3 0x43eb8277b06ec9a6b6ea32953c2ac34c18c44d02 etherscan.io
- analysis Web Archive web.archive.org
- analysis Sourcify repository, TRBAS3 repo.sourcify.dev
- analysis bloxy.info page 0xbe92…1734 bloxy.info
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.