Skip to content

You are viewing an older scan. This report is from 03 Nov 2026, 22:11 UTC. The latest scan (03 Nov 2026, 22:47 UTC) scored 80/100 and may say something different.

Open the latest scan

Base·Scanned 03 Nov 2026, 22:11 UTC·check #2

BrettToken $BRETT

0x532f27101965dd16442e59d40670faf5ebb142e4

Verdict

Safe

80/100 safety

Ownership renounced, not upgradeable; buys and sells work at 0% tax. Holder and LP-lock data unavailable.

Re-scan #2 · score 73 → 80+7

BRETT's contract is clean: ownership is renounced, the code cannot be upgraded, and our test buy and sell both worked at 0% tax. The remaining uncertainty is on the market side. We could not see who controls the main liquidity positions or whether they are locked, and we could not check how concentrated holdings are now. The team received 15% of supply at launch, while liquidity is deep and the official X account looks genuine and long-running.

Score breakdown

  • Contract
    93
  • Token
    63
  • Social / X
    72
  • Website
    n/a

Higher is safer · 0 = worst · 100 = best

Yes
0%
Renounced
0% / 0%
MC at check
$41.53M
MC now
—
Since check
—
Liquidity
$650.8K

Key findings

  • LowUnknown who controls the main liquidity or whether it is locked
  • GoodOwnership renounced and no backup admin exists

What would change the verdict

  • Raises safety:The main Uniswap v3 and Aerodrome liquidity positions are shown to be locked or burned → token score up
  • Lowers safety:Holders of the main v3 or Aerodrome LP positions withdraw that liquidity → down
  • Lowers safety:The team multisig that received 5% at launch, or a linked wallet cluster, sells a large share into the pools → down
  • Raises safety:A full holder scan confirms that supply is still widely spread → token score up

Findings

9 findings

Risks (1)

  • LowUnknown who controls the main liquidity or whether it is lockedliquidityAI

    At launch, addLiquidity paired the contract's token balance (85% of supply was minted to the contract) and sent the v2 LP tokens to owner(), which was the deployer at the time. Most trading now happens in other pools: a Uniswap v3 pool with about $1.38M and an Aerodrome Slipstream pool with about $618k. The facts layer could not analyse who owns those LP positions, because log scans failed and Slipstream ownership was not analysed. Whoever controls these positions could withdraw them. Their identity and any lock are unknown.

    Evidence

    • codeBrettToken.sol:L1294-L1301
      Show source
      uniswapV2Router.addLiquidityETH{value: address(this).balance}(
                  address(this),
                  balanceOf(address(this)),
                  0,
                  0,
                  owner(),
                  block.timestamp
              );
    • codeBrettToken.sol:L1267
      Show source
      _mint(address(this), (totalSupply / 100) * 85);
    • on-chainliquidity: uniswap-v3 0xBA3F945812a83471d709BCe9C3CA699A19FB46f7 liquidityUsd 1375751; aerodrome-slipstream 0x4e829F8A5213c42535AB84AA40BD4aDCCE9cBa02 liquidityUsd 618117
    • on-chainaerodrome-slipstream: LP position ownership not analysed for this pool type; LP analysis uniswap-v3: eth_getLogs: invalid params

    Confirmed by: claude-opus-5.5

Positive signals (4)

  • PositiveOwnership renounced and no backup admin existsownershipAI

    owner() returns the zero address. Every admin function (fees, wallets, limits, swap settings, airdrop, withdrawStuckTokens, addLiquidity, enableTrading) uses the standard OpenZeppelin onlyOwner check, so no one can call them any more. No second admin path was found. The launch whitelist (_isBrett) can only be written by the internal setBrett, which is called once in the constructor. Wallet variables such as marketingWallet only receive fee ETH and give no control. The contract is not a proxy, so its code cannot be replaced.

    Evidence

    • on-chainowner() returns 0x0000000000000000000000000000000000000000 (renounced)
    • codeBrettToken.sol:L81-L83
      Show source
      function _checkOwner() internal view virtual {
              require(owner() == _msgSender(), "Ownable: caller is not the owner");
          }
    • codeBrettToken.sol:L1315-L1319
      Show source
      function setBrett(address[] memory _bretts, bool set) internal {
              for(uint256 i = 0; i < _bretts.length; i++){
                  _isBrett[_bretts[i]] = set;
              }
          }
    • codeBrettToken.sol:L1269
      Show source
      setBrett(_bretts, true);
    • on-chainisProxy: false
    • on-chainowner() = null; ownerRenounced = true
      Show source
      owner:null, ownerRenounced:true, verified:true

    Confirmed by: claude-opus-5.5, grok-4.7

  • Positive0% buy/sell tax confirmed; fees were capped at 3% in codefeesAI

    The live buyTotalFees and sellTotalFees are both 0. The fork simulation confirmed a 0% token tax on buy, sell and transfer. The facts layer says the fee setters have no upper bound, but that is wrong. Both setters require the total to be at most 300/10000, which is 3%. Since ownership is renounced, the setters cannot be called and fees stay at 0. The line sellTotalFees = _previousFee at the end of each transfer only restores the same stored value (0) and cannot raise the fee.

    Evidence

    • codeBrettToken.sol:L1358-L1361
      Show source
      require(
                  _marketingFee + _developmentFee + _liquidityFee <= 300,
                  "ERC20: Must keep fees at 3% or less"
              );
    • codeBrettToken.sol:L1373-L1376
      Show source
      require(
                  _marketingFee + _developmentFee + _liquidityFee <= 300,
                  "ERC20: Must keep fees at 3% or less"
              );
    • codeBrettToken.sol:L1594
      Show source
      sellTotalFees = _previousFee;
    • on-chainbuyTotalFees = 0; sellTotalFees = 0
    • forkbuyTaxPct 0, sellTaxPct 0, transferTaxPct 0; second wallet could sell; sell after +1h: ok

    Confirmed by: claude-opus-5.5

  • PositiveTrading cannot be switched off and launch limits are disabledhoneypotAI

    tradingActive is true. The contract has no function that sets it back to false: enableTrading only switches trading on and refuses to run twice. limited is false, so the launch-time rules no longer apply. Those rules were a buy whitelist (_isBrett) and a max-wallet check on buys from the v2 pair. maxWallet and maxTransaction both equal 100% of supply. The simulation bought and sold successfully, including a sell from a second wallet and a sell one hour later.

    Evidence

    • codeBrettToken.sol:L1304-L1308
      Show source
      function enableTrading() public onlyOwner {
              require(!tradingActive, "Trading already active.");
              tradingActive = true;
              swapEnabled = true;
          }
    • codeBrettToken.sol:L1499-L1502
      Show source
      if (limited && from == address(uniswapV2Pair)) {  // has to be the LP 
                      require(balanceOf(to) + amount <= maxWallet, "Forbid");
                      require(_isBrett[from] || _isBrett[to], "Forbid");
                  }
    • on-chaintradingActive = true; limited = false; maxWallet = 10000000000000000000000000000
    • forkcanBuy true, canSell true, inconclusive false

    Confirmed by: claude-opus-5.5

  • PositiveVerified X account created just before launch, still activesocialAI

    @BasedBrett was created on 2024-02-20, four days before this contract was deployed (2024-02-24). The account is verified, has about 141k followers, and recent posts still get hundreds of likes, which does not look like a dead or freshly bought account.

    Evidence

    • Show source
      We know where to go, we know what to do.
    • on-chaindeployedAt = 2024-02-24T06:47:51.000Z
      Show source
      X profile createdAt 2024-02-20T16:34:10.000Z, verified, followers 141357, bio: $BRETT - The Leading Memecoin on Base.

    Confirmed by: grok-4.7

Notes (4)

  • InfoTeam got 15% of supply at launch; current holdings unknowninsidersAI

    The constructor minted 10% of supply to the deployer and 5% to a hard-coded 'brettMultisig' wallet. That same wallet is also the marketing, development and liquidity fee wallet. The deployer now holds 0%. The multisig's current balance and the top-holder list could not be built because the transfer scan failed, so any dump risk from team or insider wallets cannot be measured.

    Evidence

    • codeBrettToken.sol:L1265-L1266
      Show source
      _mint(owner(), (totalSupply / 100) * 10); 
              _mint(brettMultisig, (totalSupply / 100) * 5);
    • codeBrettToken.sol:L1228
      Show source
      address brettMultisig = 0x9BA188E4B2C46C15450EA5Eac83A048E5E5D9444;
    • on-chainDeployer 0x46f64bec31eaf281176f9bb5899107a80e932b45 holds 0% now
    • on-chainTransfer history too large for full scan ... holder figures are approximate; topHolders: []

    Confirmed by: claude-opus-5.5

  • InfoSlither 'high' alerts are not exploitable in practiceotherAI

    Slither flagged three issues. Each is harmless today: - 'arbitrary-send-eth' in _swapBack: ETH goes to the fixed marketingWallet, which only the (renounced) owner could change. - Reentrancy in _transfer: _swapBack only touches the trusted router and the fee wallets. With 0% fees it exits early because no fee tokens are tracked. - 'unchecked-transfer' in withdrawStuckTokens: the function can no longer be called. None of these give an outside attacker or an admin a way to take holder funds.

    Evidence

    • staticslither: arbitrary-send-eth BrettToken._swapBack() (BrettToken.sol#1627-1683)
    • codeBrettToken.sol:L1629-L1636
      Show source
      uint256 totalTokensToSwap = _tokensForLiquidity +
                  _tokensForMarketing +
                  _tokensForDevelopment;
              bool success;
      
              if (contractBalance == 0 || totalTokensToSwap == 0) {
                  return;
              }
    • codeBrettToken.sol:L1441
      Show source
      function withdrawStuckTokens(address tkn) public onlyOwner {

    Confirmed by: claude-opus-5.5

  • InfoDeployer's only other token, HONEY, has an unknown outcomedeployer-historyAI

    The deployer also created HONEY (0x0e82…2097). Its outcome is recorded as unknown, so this is neither a red flag nor a trust signal.

    Evidence

    • on-chaindeployerHistory: 0x0e82F2d85750218E7a6aa3f78324993FA6572097 HONEY outcome unknown
    • on-chaindeployerHistory token 0x0e82F2d85750218E7a6aa3f78324993FA6572097 symbol HONEY outcome unknown
      Show source
      deployer 0x46F64BeC31Eaf281176f9bb5899107A80e932B45; HONEY outcome unknown

    Confirmed by: claude-opus-5.5, grok-4.7

  • InfoThird-party post matches renounced, zero-tax factsclaims-mismatchAI

    A listing post describes this same contract as a Feb 2024 Base memecoin with a fixed supply, zero taxes, and a renounced contract. That renounce claim matches the on-chain owner fact. Taxes and supply were not independently re-checked in this social pass.

    Evidence

    • Show source
      $Brett is a memecoin on Base, launched in Feb. 2024 as a fan tribute to the Brett character from Matt Furie’s Boy’s Club comic (Pepe’s best friend). It has become the unofficial mascot of the Base ecosystem, with a fixed ~10 billion supply, zero taxes, and a renounced contract.
    • on-chainownerRenounced = true
      Show source
      owner:null, ownerRenounced:true

    Confirmed by: grok-4.7

Score breakdown

Higher is safer. The overall is the weighted average of the assessed parts, then capped by hard facts.

  • Contract

    weight 45%
    93

    The contract is verified, not upgradeable and has renounced ownership; buys and sells pass at 0% tax with no live admin powers.

    Why this score

    Raised the score

    • Ownership renounced, no backup admin path
    • Not a proxy, so the code cannot be replaced
    • 0% buy/sell/transfer tax confirmed by simulation
    • Fees hard-capped at 3% in code
    • Trading cannot be switched off; limits disabled

    Lowered the score

    • Slither alerts in the fee-swap code, though none are exploitable today
  • Token

    weight 30%
    63

    Liquidity is deep and the deployer holds nothing, but LP lock status and current holder concentration could not be measured.

    Why this score

    Raised the score

    • About $2M liquidity across several pools
    • Deployer holds 0% now
    • Long-running token, launched Feb 2024

    Lowered the score

    • Lock status of the main LP positions is unknown
    • 15% of supply went to team wallets at launch
    • Holder distribution could not be scanned
    • Deployer's other token HONEY has an unknown outcome
  • Social / X

    weight 15%
    72

    The verified X account was created days before launch and still has real engagement, though no team doxx was found.

    Why this score

    Raised the score

    • Verified @BasedBrett account created 4 days before deploy
    • About 141k followers with ongoing engagement
    • Third-party description matches the renounced, zero-tax facts

    Lowered the score

    • No publicly identified team
  • Website

    weight 10%
    —
    Not assessed

    Not enough data — excluded from the overall score.