Skip to content

You are viewing an older scan. This report is from 04 Nov 2026, 10:13 UTC. The latest scan (04 Nov 2026, 10:13 UTC) scored 31/100 and may say something different.

Open the latest scan

Robinhood Chain·Scanned 04 Nov 2026, 10:13 UTC

WormbookToken $BORESCOPE

0xb067269b44a5a27f2eb6ca7a1ec5a426d4cc566c

Verdict

High risk

31/100 safety

Token has no owner, mint or fees, but a test buy reverted and liquidity is under $150 and unlocked.

This is rated high risk mainly because a simulated buy failed and the project's dApp withdraw test failed. The dApp test agent reported that the site has no deposit or withdraw feature at all. The token itself is clean: no owner, no mint, no fees, no blacklist and a fixed supply. Trading runs through a Uniswap v4 hook and launcher whose code was not reviewed, liquidity is under $150 with no locked LP, and one funder controls wallets holding about 4.9%.

Score breakdown

  • Contract
    15
  • Token
    42
  • Social / X
    48
  • Website
    42

Higher is safer · 0 = worst · 100 = best

Unknown
—
None (no owner role)
0% / 0%
MC at check
$43.3K
MC now
—
Since check
—
Liquidity
$30.0K

Key findings

  • CriticalWithdrawing through the dApp failed ("withdraw")
  • MediumBuying currently fails
  • MediumLiquidity is under $150 across pools and none is locked
  • LowUnreviewed Wormbook pool hook can change swap amounts
  • GoodToken has no owner, fixed supply and no transfer restrictions

What would change the verdict

  • Raises safety:A fork buy and sell on the main Wormbook pool both succeed at about the 1% hook fee → contract score up
  • Raises safety:Wormbook hook and launcher source is published and shows no power to block sells or pull curve liquidity → up
  • Lowers safety:Outside LP positions are withdrawn, leaving the pools empty → down

Findings

12 findings

Risks (7)

  • CriticalWithdrawing through the dApp failed ("withdraw")honeypotDeterministic

    We ran the project's own dApp on a local fork. The "withdraw" step did not work. Expected: Withdrawing returns the deposited funds to the wallet (minus any documented fee).. Observed: wallet no balance change; 0 tx (none). No successful transaction was made for this goal (fail). | driver: fail — Borescope does not support deposits or withdrawals; it is an analytics and token-gating platform with no vault or staking mechanism, and no funds were deposited in this session.. Money deposited may be impossible to take out.

    Evidence

    • forkdApp test "withdraw" on a local fork (https://borescope.io/token)
      Show source
      wallet no balance change; 0 tx (none). No successful transaction was made for this goal (fail). | driver: fail — Borescope does not support deposits or withdrawals; it is an analytics and token-gating platform with no vault or staking mechanism, and no funds were deposited in this session.

    Confirmed by: facts

  • MediumBuying currently failshoneypotDeterministic

    A simulated buy reverted. Trading may not be enabled yet, or the contract restricts who can buy. Re-check before interacting.

    Evidence

    • forkfork simulation on uniswap-v4 pool 0xd6a85150c3845e4c139feb3363fc9fc2b2d73b3278ffee2a1955bbc04ab949af: buy reverted
      Show source
      buy reverted: Execution reverted for an unknown reason. | venue uniswap-v4 fee tier 500100 — pool LP fee is included in quotes; reported taxes are token-level
    • forkbuy reverted: Execution reverted for an unknown reason.
      Show source
      buy reverted: Execution reverted for an unknown reason.
    • forkvenue uniswap-v4 fee tier 500100
      Show source
      venue uniswap-v4 fee tier 500100 — pool LP fee is included in quotes; reported taxes are token-level
    • codeERC20.sol:L159-L204
      Show source
      function _transfer(address from, address to, uint256 value) internal {
              if (from == address(0)) {
                  revert ERC20InvalidSender(address(0));
              }
              if (to == address(0)) {
                  revert ERC20InvalidReceiver(address(0));
              }
              _update(from, to, value);
          }
      
          /**
           * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`
           * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding
           * this function.
           *
    • codeWormbookTypes.sol:L68-L71
      Show source
      /// @notice The pool's static LP fee in pips: 0.10%, D-LP option F, signed
          /// 2026-09-29 (section 7.3, "The pool", `LP_FEE`; "Constants and state",
          /// `LP_FEE`). Fixed in every PoolKey forever; no dynamic-fee flag.
          uint24 internal constant LP_FEE = 1_000;

    Confirmed by: facts, claude-opus-5.5, grok-4.7, gpt-5.6-sol

  • MediumLiquidity is under $150 across pools and none is lockedliquidityAI

    The four v4 pools hold about $82, $47, $2 and $2 of liquidity. Even small sells will move the price heavily, and an exit may return very little. All pools report 0% LP burned and 0% locked. Positions belong to various outside addresses, which can withdraw them. The template has a 24-hour minimum hold on outside positions. None of the LP is reported as held by the deployer.

    Evidence

    • on-chainliquidity pool 0xd6a85150c3845e4c139feb3363fc9fc2b2d73b3278ffee2a1955bbc04ab949af liquidityUsd=82 lpBurnedPct=0 lpLockedPct=0
    • on-chainliquidity pool 0xd05ade11ba5eeaf99b4c0284ed697b36c64bb0df7983f85e116f0041e7b12207 liquidityUsd=47 lpBurnedPct=0 lpLockedPct=0
    • codeWormbookTypes.sol:L110-L112
      Show source
      /// @notice The hold on every outside position after its last add (line
          /// 3876).
          uint256 internal constant LP_MIN_HOLD = 86_400;

    Confirmed by: claude-opus-5.5, grok-4.7, gpt-5.6-sol

  • LowUnreviewed Wormbook pool hook can change swap amountsotherAI

    Under the template's permission table, the Wormbook hook can run before and after every swap and return deltas (beforeSwapReturnDelta and afterSwapReturnDelta). In Uniswap v4 this lets the hook take part of, or change, what a trader pays or receives. The hook can also gate adds and removes of liquidity. The constants describe a fixed 1% hook fee, split 30% to Wormbook and 70% to the creator. There is also a 72-hour delay before a fee-recipient change takes effect. The hook and launcher source and addresses were not in the material, so we could not verify that the hook only takes 1% or that it cannot block sells.

    Evidence

    • codeWormbookTypes.sol:L256-L273
      Show source
      function hookPermissions() internal pure returns (Hooks.Permissions memory) {
              return Hooks.Permissions({
                  beforeInitialize: true,
                  afterInitialize: false,
                  beforeAddLiquidity: true,
                  afterAddLiquidity: false,
                  beforeRemoveLiquidity: true,
                  afterRemoveLiquidity: false,
                  beforeSwap: true,
                  afterSwap: true,
                  beforeDonate: true,
                  afterDonate: false,
                  beforeSwapReturnDelta: true,
                  afterSwapReturnDelta: true,
                  afterAddLiquidityReturnDelta: false,
    • codeWormbookTypes.sol:L49-L66
      Show source
      /// @notice The hook fee: 1% of the gross quote amount of every swap
          /// (section 7.3, "Constants and state", `FEE_BPS`; section 7.4
          /// `FEE_SPLIT.hookFeeBps`).
          uint256 internal constant FEE_BPS = 100;
      
          /// @notice The basis-point denominator every bps value here divides by.
          uint256 internal constant BPS = 10_000;
      
          /// @notice Wormbook's share of the hook fee (section 7.3, "Constants and
          /// state", `PROTOCOL_SHARE_BPS`). The creator receives `fee -
          /// protocolPart`, so the rounding remainder is theirs (section 7.3, the
          /// fee's split bullet).
          uint256 internal constant PROTOCOL_SHARE_BPS = 3_000;
      
          /// @notice The creator's share of the hook fee, as `feeTerms` reports it
    • codeWormbookTypes.sol:L114-L116
      Show source
      /// @notice The delay between proposing and accepting a recipient change
          /// (section 7.3, "Constants and state", `RECIPIENT_DELAY`).
          uint256 internal constant RECIPIENT_DELAY = 259_200;
    • codeHooks.sol:L266-L280
      Show source
      if (self.hasPermission(BEFORE_SWAP_RETURNS_DELTA_FLAG)) {
                      hookReturn = BeforeSwapDelta.wrap(result.parseReturnDelta());
      
                      // any return in unspecified is passed to the afterSwap hook for handling
                      int128 hookDeltaSpecified = hookReturn.getSpecifiedDelta();
      
                      // Update the swap amount according to the hook's return, and check that the swap type doesn't change (exact input/output)
                      if (hookDeltaSpecified != 0) {
                          bool exactInput = amountToSwap < 0;
                          amountToSwap += hookDeltaSpecified;
                          if (exactInput ? amountToSwap > 0 : amountToSwap < 0) {
                              HookDeltaExceedsSwapAmount.selector.revertWith();
                          }
                      }
                  }

    Confirmed by: claude-opus-5.5 · Disputed by: grok-4.7, gpt-5.6-sol

  • LowOne funder's 4-wallet cluster holds about 4.9% of supplyinsidersAI

    Wallets funded by 0xf70d…dbef together hold 4.8653% of supply. They include top holder 0xdfa2…ed28 (2.3056%) and bundle wallet 0xbb09…1413. Against the very thin liquidity, one party selling this stake could crash the price.

    Evidence

    • on-chainclusters: funder 0xf70da97812cb96acdf810712aa562db8dfa3dbef pctSupplyHeldNow 4.8653
    • on-chainbundle block 105445003 wallets 0xbb09faa509ee2709b810548ca0cc91465a671413, 0xb8c9dee7897aa5eb6514a954f267700e4f5dbd71 pctSupply 0.6743

    Confirmed by: claude-opus-5.5, grok-4.7 · Disputed by: gpt-5.6-sol

  • LowX replies are mostly bot-like collab spam, not real communitysocialAI

    The only visible discussion under @RHborescope is a burst of near-identical 'collab / DM me / follow back' replies from unrelated accounts, not people talking about the product or the contract. That is bot-like attention, not proof the token is a rug, but it is not an organic community either. The account itself has only two posts, both launch copy, and 51 followers.

    Evidence

    Confirmed by: grok-4.7

  • LowToken page says perks are live yet also 'switch on at launch'claims-mismatchAI

    The same token page says the product is already live and that perks are checked on-chain, but the commission and seat sections still say they switch on the moment $BORESCOPE launches. The contract was deployed on 2026-11-03. This is leftover copy, not a drain, but it means those perks may not actually be on yet.

    Evidence

    • Show source
      Switches on the moment $BORESCOPE launches.
    • Show source
      Live. Perks are checked on chain each time you use them.
    • on-chaindeployedAt = 2026-11-03T23:19:25.000Z
      Show source
      WormbookToken deployed 2026-11-03T23:19:25.000Z

    Confirmed by: grok-4.7, gpt-5.6-sol

Positive signals (1)

  • PositiveToken has no owner, fixed supply and no transfer restrictionsownershipAI

    WormbookToken is a plain OpenZeppelin ERC-20. The whole 1,000,000,000 supply was minted once to the launcher 0x4eaf…422c in the constructor. There is no owner, no later mint, no burn of others, no fee, no blacklist, no pause and no upgrade path. Static analysis found no privileged functions; the only slither note is a harmless missing zero-check. The factory 0x5003…5ed0 can only be called by the launcher and has no owner. Holders' remaining risk sits in the hook, launcher and liquidity, not the token.

    Evidence

    • codeWormbookToken.sol:L52-L66
      Show source
      constructor(
              string memory name_,
              string memory symbol_,
              string memory description_,
              string memory logo_,
              // The address comes from the deployer the launcher created, and
              // OpenZeppelin's _mint refuses a zero launcher (ERC20InvalidReceiver).
              // forge-lint: disable-next-line(missing-zero-check)
              address launcher_
          ) ERC20(name_, symbol_) {
              _description = description_;
              _logo = logo_;
              LAUNCHER = launcher_;
              _mint(launcher_, TOTAL_SUPPLY);
          }
    • on-chainprivileges: [] ; isProxy: false
    • codeWormbookTokenDeployer.sol:L27-L40
      Show source
      function deployToken(
              bytes32 salt,
              string calldata name,
              string calldata symbol,
              string calldata description,
              string calldata logo
          ) external override returns (address token) {
              if (msg.sender != LAUNCHER) revert NotLauncher();
              bytes memory initCode = _initCode(name, symbol, description, logo);
              assembly ("memory-safe") {
                  token := create2(0, add(initCode, 0x20), mload(initCode), salt)
              }
              if (token == address(0)) revert TokenCreateFailed();
          }

    Confirmed by: claude-opus-5.5, grok-4.7, gpt-5.6-sol

Notes (4)

  • InfoMain website failed to load; site has no deposit/withdraw featurewebsiteAI

    The capture of http://borescope.io/ failed with ERR_NAME_NOT_RESOLVED, so the site's claims could not be checked. The scripted dApp tests reached borescope.io pages. The site only asked for a free sign-in signature, which approves nothing, and the AI driver found it to be an analytics tool with no deposit or withdraw feature. The failed deposit and withdraw tests reflect missing features, not lost funds.

    Evidence

    • forkdappTests deposit: personal_sign
      Show source
      It costs nothing, sends nothing and approves nothing.

    Confirmed by: claude-opus-5.5, grok-4.7, gpt-5.6-sol

  • InfoSite warns that copy pools exist; claim not checked on-chainwebsiteAI

    The token page warns that other pools using this name can hold money and that buyers should trade only in the Wormbook pool. That is a real way people lose money on copy pools, but this investigation did not check pool balances on-chain, so the '3 copies' figure is the site's claim, not a confirmed fact.

    Evidence

    • Show source
      3 copies of its pool hold money: buy only through Wormbook, where it trades in its one real pool.

    Confirmed by: grok-4.7, claude-opus-5.5, gpt-5.6-sol

  • InfoLaunch snipers bought 0.70% and have fully soldsnipersAI

    Five wallets bought 0.6965% of supply in one block inside the sniper window. They now hold 0%, so they add no further dump risk.

    Evidence

    • on-chainsnipers pctSupplyBought 0.6965 pctSupplyHeldNow 0

    Confirmed by: claude-opus-5.5, grok-4.7, gpt-5.6-sol

  • InfoDeployer holds 0.66% and has not soldholdersAI

    The transaction sender 0x9B1d…b86e holds 0.6564% and is reported as having sold 0%. No deployer history was found.

    Evidence

    • on-chainDeployer 0x9b1df1c895bbd83f8c7ce7f5edcc914d5454b86e holds 0.6564% now; deployerSoldPct 0

    Confirmed by: claude-opus-5.5, grok-4.7, gpt-5.6-sol

Score breakdown

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

  • Contract

    weight 45%
    15
    Capped · max 15

    dApp test "withdraw" failed — funds may not be withdrawable → max 15

    The token code is a clean ownerless ERC-20, but a test buy reverted and a hard rule caps this score after the dApp withdraw test failed.

    Why this score

    Raised the score

    • Plain OpenZeppelin ERC-20, verified, not upgradeable
    • No owner, mint, fee, blacklist or pause
    • Fixed 1B supply minted once to the launcher

    Lowered the score

    • Simulated buy on the v4 pool reverted for an unknown reason
    • Sell was never simulated
    • Pool hook can alter swaps and its source was not reviewed
    • Launcher source and admin powers unknown
    • dApp withdraw test failed; the site appears to have no withdraw feature
  • Token

    weight 30%
    42

    Launch sniping was small and those wallets have sold out, but liquidity is tiny and unlocked, and one funder controls a cluster holding about 4.9%.

    Why this score

    Raised the score

    • Snipers bought only 0.70% and now hold 0%
    • Deployer holds 0.66% and has not sold
    • Top 10 non-pool holders hold about 17.8%

    Lowered the score

    • Total liquidity across four pools is under $150
    • No LP burned or locked
    • One funder's 4-wallet cluster holds about 4.9%
    • Three bundled buys at launch
  • Social / X

    weight 15%
    48

    A verified X account whose posts match the contract, but it has a tiny audience, no named team and bot-like replies.

    Why this score

    Raised the score

    • X account verified and active since March 2026
    • Posts reference the correct contract address
    • No third-party scam warnings found

    Lowered the score

    • Only 51 followers and two posts
    • Replies are generic collab and follow-back spam
    • No team named
  • Website

    weight 10%
    42

    The main domain did not resolve during capture; subpages gave only partial, unverifiable claims with some outdated copy.

    Why this score

    Raised the score

    • Site sign-in asked only for a free signature that approves nothing
    • Site warns buyers about copy pools

    Lowered the score

    • borescope.io did not resolve during capture
    • Token-holder perk claims are unverifiable
    • Token page still says perks switch on at launch