Skip to content

Robinhood Chain·Scanned 05 Nov 2026, 13:31 UTC

PonsV2LauncherToken $GH0ST

0x2eb2849cde7957b86d0dfd4b59e450a9f9d15559

Verdict

High risk

37/100 safety

No owner powers; dApp withdraw test failed but pool sells work (2.5% pool fee); 17% sniped at launch.

This is rated high risk mainly because our test of the project's own app could not complete a withdrawal or exit step. No funds were deposited in that test, so no loss path was shown. The token contract itself has no owner powers, and buying and selling through the main pool works with no token tax beyond the 2.5% pool fee. Its liquidity is permanently locked. The launch, however, was sniped and bundled: about 17% of supply was bought in the first seconds and has since been sold to later buyers. The project's marketing also overstates how much of its AI runs on-chain.

Score breakdown

  • Contract
    15
  • Token
    58
  • Social / X
    55
  • Website
    45

Higher is safer · 0 = worst · 100 = best

Yes
0%
None (no owner role)
0% / 100%
MC at check
$52.6K
MC now
no live price
Since check
—
Liquidity
$21.3K

$GH0ST · Live price chart

Live chart

The chart updates live; “MC at check” above is the market cap when this check ran.

LIVE
DexScreener · uniswap · pair 0x42ce…1d01

Key findings

  • CriticalWithdrawing through the dApp failed ("get the money back out (withdraw, sell or exit)")
  • HighToken's pool uses an unverified v4 hook that can change swap amounts
  • MediumToken's pool uses an unverified v4 hook
  • MediumOne funder's 2 wallets bundled 5.17% of supply
  • GoodOngoing token burns verified on-chain: 5.0% of supply burned

What would change the verdict

  • Raises safety:The gh0st.fyi withdraw/exit flow completes a real withdrawal on a re-test → up
  • Raises safety:Unverified side-pool hooks get verified source showing no sell blocking → up
  • Lowers safety:The deployer or its funded wallets start selling their remaining tokens at scale → down
Post on XView on explorer ↗

Findings

17 findings

Risks (10)

  • CriticalWithdrawing through the dApp failed ("get the money back out (withdraw, sell or exit)")honeypotDeterministic

    We ran the project's own dApp on a local fork. The "get the money back out (withdraw, sell or exit)" 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 (timeout). | driver: timeout — goal time cap reached. Money deposited may be impossible to take out.

    Evidence

    • forkdApp test "get the money back out (withdraw, sell or exit)" on a local fork (https://gh0st.fyi/legacy)
      Show source
      wallet no balance change; 0 tx (none). No successful transaction was made for this goal (timeout). | driver: timeout — goal time cap reached
    • forkuse the main action of the app (deposit, buy or open a position): step tx beginConstrained ok
      Show source
      wallet balance did not decrease — nothing was actually deposited
    • forkget the money back out (withdraw, sell or exit)
      Show source
      timeout: goal time cap reached
    • on-chainS0ULAgent gh0stToken = 0x2eb2849cDE7957b86d0dFD4B59e450a9F9D15559 (immutable)

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

  • HighToken's pool uses an unverified v4 hook that can change swap amountshoneypotDeterministic

    A Uniswap v4 pool of this token (pool.hooks (0x462eea4c…)) runs hook 0x5b90…e0cC on every swap (beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta). The hook's source code is not verified, so it cannot be checked whether it blocks sells for some wallets or later, or takes a hidden fee — its ReturnDelta permissions allow changing the amounts traders get. A passing sell simulation only shows it works for our test wallet right now.

    Evidence

    • on-chainpool hook 0x5b907B52eAcBCeE78F2C56A6e74F5cf04A96e0cC permission bits: beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
    • on-chainv4-hook 0x5b907B52eAcBCeE78F2C56A6e74F5cf04A96e0cC verified=false owner=0x2f7CE7eeF4b091E0827dA1E8C2E10D061d95d180; fn setPaused(bool), setFee(bytes32,uint24)
    • on-chainliquidity pool 0xcdafeea66f3300eb9f96a2f93f70a3c82bd88edc6e97048a4733234b94a0e7bc liquidityUsd=10

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

  • MediumToken's pool uses an unverified v4 hookhoneypotDeterministic

    A Uniswap v4 pool of this token (pool.hooks (0x90fbab7e…)) runs hook 0x25E6…5040 on every swap (afterInitialize, afterSwap). The hook's source code is not verified, so it cannot be checked whether it blocks sells for some wallets or later, or takes a hidden fee. A passing sell simulation only shows it works for our test wallet right now.

    Evidence

    • on-chainpool hook 0x25E6366C490225358625d941C7B147360b155040 permission bits: afterInitialize, afterSwap

    Confirmed by: facts

  • MediumOne funder's 2 wallets bundled 5.17% of supplysnipersDeterministic

    2 wallets funded by the same address 0x037a…a58e bought 5.17% of the supply together (block 93673576). Spreading one buyer over many wallets hides how much a single entity controls.

    Evidence

    • on-chainbundles with commonFunder 0x037a28654af107a41f86536134f264dd6a05a58e: 2 wallets, pctSupply 5.17

    Confirmed by: facts

  • MediumOne Pons admin controls the launchpad hook, factory, vault and lockerownershipAI

    Address 0x263e…19Dd owns PonsV2MemeHook, PonsV2LaunchFactory, PonsV2BuybackVault and PonsV2LaunchLocker. Hook ownership cannot be renounced. On the hook it can do the following: - Change fee policy for future launches. - Change the sweep operator that converts and distributes fees (no timelock). - Call rescuePoolFees, which pays pending fees directly to this pool's snapshotted protocol and creator recipients. None of these hook powers can block GH0ST trading or take holder tokens. The factory owner also has rescue functions (rescueCurveFees, rescueSweptGraduation) and can override the creator fee recipient. The factory source was omitted, so their exact limits could not be verified. This is launchpad-wide trust, not something specific to this token.

    Evidence

    • on-chainPonsV2MemeHook owner = 0x263ed295dAFaE1d9AAdD6E56c4B6F9f38eE019Dd; PonsV2LaunchFactory owner = 0x263ed295dAFaE1d9AAdD6E56c4B6F9f38eE019Dd
    • codePonsV2MemeHook.sol:L235-L237
      Show source
      function renounceOwnership() public pure override {
              revert OwnershipCannotBeRenounced();
          }
    • codePonsV2MemeHook.sol:L274-L278
      Show source
      function setFeeSweepOperator(address operator) external onlyOwner {
              if (operator == address(0)) revert ZeroAddress();
              feeSweepOperator = operator;
              emit FeeSweepOperatorUpdated(operator);
          }
    • codePonsV2MemeHook.sol:L555-L603
      Show source
      function rescuePoolFees(PoolId poolId)
              external
              onlyOwner
              nonReentrant
              returns (uint256 protocolAmount, uint256 creatorAmount)
          {
              LaunchInfo memory info = launches[poolId];
              if (!info.registered) revert UnknownPool();
              address quoteToken = info.quoteToken;
      
              if (quoteToken != address(0)) {
                  (protocolAmount, creatorAmount) = _rescueCurrency(poolId, info, quoteToken);
              }
              (uint256 memecoinProtocol, uint256 memecoinCreator) = _rescueCurrency(poolId, info, info.memecoin);
              if (protocolAmount == 0 && creatorAmount == 0 && memecoinProtocol == 0 && memecoinCreator == 0) {

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

  • MediumX bio claims a fully on-chain AI, but the site says it runs on ICPclaims-mismatchAI

    The X bio markets GH0ST as a "0-offchain" smart-contract transformer "live on Robinhood in 500 contracts." The project's own homepage says the larger Qwen voice runs inference on the Internet Computer, Robinhood only checks a threshold-signed result, and it does not prove every model step. Weight-contract counts on the site (48 for S0UL, 5,516 for the GPT-2 experiment) also do not match "500 contracts." Buyers who trust the bio can think a 1.7B model is executing entirely on Robinhood when the site says it is not.

    Evidence

    • Show source
      Inference runs on ICP; the result arrives in a separate Robinhood transaction.
    • Show source
      Robinhood checks a threshold-signed result; it does not independently prove every model operation.
    • Show source
      PARAMETERS48 WEIGHT CONTRACTS

    Confirmed by: grok-4.7 · Disputed by: gpt-5.6-sol

  • LowLaunch sniped: 10 wallets took 17.1% of supply in 10 secondssnipersDeterministic

    The launch was captured: 10 wallets bought 17.1% of the supply within 10 seconds. A small, fast group set the early price and could sell into everyone who bought later — bad for launch fairness and a strong insider/bot signal. They now hold 0% of supply, so current dump pressure from them is low — most of it was already sold, i.e. they exited on later buyers.

    Evidence

    • on-chainsnipers: windowBlocks=100, wallets=10, pctSupplyBought=17.0664, pctSupplyHeldNow=0
    • on-chainsnipers: pctSupplyBought=17.0664, pctSupplyHeldNow=0
    • on-chainbundles: block 93673577 pctSupply 9.1597; block 93673576 commonFunder 0x037a28654af107a41f86536134f264dd6a05a58e pctSupply 5.1725

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

  • LowDeployer sold 3.57%; wallets it funded still hold 0.61%insidersAI

    The deployer 0x8D6B…91c6 has sold 3.57% of supply. It now holds 0.12%. Two wallets it funded hold 0.61%. The amounts are small. Separately, the deployer burned 4.74% of supply across 10 burns, which reduced supply.

    Evidence

    • on-chaindeployerSoldPct=3.5685; Deployer 0x8d6b11cfdf079e27c17e05cb7ea81235887691c6 holds 0.1199% now
    • on-chaininsiders: wallets funded by 0x8d6b11cfdf079e27c17e05cb7ea81235887691c6 pctSupplyHeldNow=0.6086
    • on-chainburns by 0x8d6b11cfdf079e27c17e05cb7ea81235887691c6 kind=deployer pct=4.7448 count=10

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

  • LowOne funder controls a 3% wallet clusterholdersAI

    Two wallets funded by 0xf70d…dbef hold 3.03% combined. The largest non-infrastructure holder has 3.06%. There are 542 holders. Excluding the PoolManager, locker and burn address, no single holder dominates.

    Evidence

    • on-chainclusters: funder 0xf70da97812cb96acdf810712aa562db8dfa3dbef pctSupplyHeldNow=3.034
    • on-chainholdersCount=542; top non-infra holder 0x0e49931340da953c28a59b3c5cb734922c109484 3.0591%

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

  • LowSite presents the AI brain as live while the homepage calls it a pilotwebsiteAI

    Whispers presents a live window into a Qwen3 1.7 billion parameter brain whose thoughts return to Robinhood. The homepage is more limited: one readable RH to ICP to RH pilot is verified, and the buy-triggered rollout is still underway. The live page also says each buy joins a line for a new thought. Animation is labeled an illustration, so this is overstated product status, not a hidden drain.

    Evidence

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

Positive signals (5)

  • PositiveOngoing token burns verified on-chain: 5.0% of supply burnedburnDeterministic

    5.0% of the supply ever minted is burned, in 24 burn transfer(s), last 2026-11-02. Burned by: the deployer 0x8d6b…91c6 (4.7%, 10 burns); holder 0xb235…8c2b (0.06%, 3 burns); holder 0xaa37…bdd5 (0.06%, 3 burns). Burned tokens are gone for good, which reduces the supply over time.

    Evidence

    • on-chainTransfer events to 0x0 / 0x…dEaD and balanceOf(burn addresses) of 0x2eb2849cde7957b86d0dfd4b59e450a9f9d15559

    Confirmed by: facts

  • PositiveToken is a fixed-supply ERC-20 with no owner powersownershipAI

    GH0ST is the standard Pons V2 launchpad template. It is OpenZeppelin ERC20 plus ERC20Burnable, with no owner, no mint after deployment, no fees, no blacklist and no pause. The whole supply was minted once to the bonding curve in the constructor. The 'deployer' field is reference data only and gives no privileges. Holders can only burn their own tokens, or tokens they have approved someone to burn.

    Evidence

    • codePonsV2LauncherToken.sol:L21
      Show source
      contract PonsV2LauncherToken is ERC20, ERC20Burnable {
    • codePonsV2LauncherToken.sol:L70
      Show source
      _mint(curve_, supply_);
    • codeERC20.sol:L176-L204
      Show source
      function _update(address from, address to, uint256 value) internal virtual {
              if (from == address(0)) {
                  // Overflow check required: The rest of the code assumes that totalSupply never overflows
                  _totalSupply += value;
              } else {
                  uint256 fromBalance = _balances[from];
                  if (fromBalance < value) {
                      revert ERC20InsufficientBalance(from, fromBalance, value);
                  }
                  unchecked {
                      // Overflow not possible: value <= fromBalance <= totalSupply.
                      _balances[from] = fromBalance - value;
                  }
              }
    • staticslither 0.11.6: issues = [] ; privileges = []

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

  • PositiveFork test: buy, sell and transfer work with 0% token taxhoneypotAI

    On a fork, a real buy and sell through the graduated Uniswap v4 pool both returned exactly the expected amounts. A second wallet that received tokens by transfer could sell, and selling one hour later also worked. The token itself charges 0% on buy, sell and transfer. The pool-level hook fee is covered in a separate finding.

    Evidence

    • forksimulation: canBuy=true, canSell=true, buyTaxPct=0, sellTaxPct=0, transferTaxPct=0
    • forksecond wallet (received via transfer) could sell; sell after +1h: ok

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

  • PositiveMain pool liquidity is permanently locked in the Pons lockerliquidityAI

    The main pool's liquidity position is 100% locked in PonsV2LaunchLocker. That contract has no withdraw or arbitrary-call function. Its owner can only perform a one-time factory wiring, which is already done. Liquidity therefore cannot be pulled by the creator or by the Pons admin. The locker also holds 8.19% of supply as a permanently locked remainder of the virtual reserves.

    Evidence

    • on-chainliquidity pool 0x42ce003822cbaa9eb94e9e07ef8d988e5a998ded86b189fd4f3e25b68f001d01: lpLockedPct=100, lpHeldByDeployerPct=0
    • codePonsV2LaunchLocker.sol:L11-L20
      Show source
      /**
       * @title PonsV2LaunchLocker
       * @notice Permanently holds the graduated Uniswap V4 position NFT for every
       * pons v2 launch. Unlike v1's locker, there is no `collectFees()` here: fee
       * collection and distribution belong entirely to PonsV2MemeHook and
       * PonsV2FeeEscrow, since a V4 position accrues fees inside the singleton
       * PoolManager rather than on the NFT itself. This contract exposes no
       * withdrawal or arbitrary-call function, so locked liquidity can never be
       * removed by an administrator.
       */
    • codePonsV2LaunchLocker.sol:L60-L66
      Show source
      function setFactory(address factory_) external onlyOwner {
              if (factory != address(0)) revert AlreadyInitialized();
              if (factory_ == address(0)) revert ZeroAddress();
              factory = factory_;
              emit FactorySet(factory_);
          }
    • codePonsV2LaunchLocker.sol:L109-L116
      Show source
      function lockTokenSupply(address token, uint256 amount) external onlyFactory {
              if (token == address(0)) revert ZeroAddress();
              if (amount == 0) return;
              IERC20(token).safeTransferFrom(msg.sender, address(this), amount);
              lockedTokenSupply[token] += amount;
              emit TokenSupplyLocked(token, amount);
          }

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

  • PositiveTeam says it claimed a verified dev tag on FOMOsocialAI

    The project account says it moved GH0ST into a FOMO wallet and acquired a Team Tag for this contract. On FOMO that is a verified developer profile, which makes the team easier to identify in the app. Nothing in the given facts shows that wallet dumping.

    Evidence

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

Notes (2)

  • LowEvery swap pays a fixed 2.5% pool fee to the protocol and creatorfeesAI

    The PonsV2MemeHook takes hookFeeBps plus creatorTaxBps from each swap's output or input in its afterSwap callback. For this pool that is 1% + 1.5%. The fee terms are snapshotted into the pool's LaunchInfo at registration, and afterSwap reads that snapshot, not the live owner settings. So if the hook owner later calls setHookFeeBps (max 10%), only new launches change, not this pool. Combined fees are also capped at 20% at registration. The hook only has beforeInitialize, afterSwap and afterSwapReturnDelta permissions. It has no beforeSwap logic that could block sellers. The fee money goes to the fee escrow for the protocol and creator. Part of the creator's share buys back GH0ST and locks it in the buyback vault for 5 years.

    Evidence

    • codePonsV2MemeHook.sol:L444-L485
      Show source
      function _afterSwap(address, PoolKey calldata key, SwapParams calldata params, BalanceDelta delta, bytes calldata)
              internal
              override
              returns (bytes4, int128)
          {
              // The conversion and buyback legs swap against this same pool, but
              // they are never taxed here: v4-core skips a pool's hooks when the
              // hook itself is the caller (Hooks.afterSwap). Were that not so, the
              // skim would come out of the buyback before it reached the vault.
              PoolId poolId = key.toId();
              LaunchInfo memory info = launches[poolId];
              if (!info.registered) return (IHooks.afterSwap.selector, 0);
              if (info.hookFeeBps == 0 && info.creatorTaxBps == 0) return (IHooks.afterSwap.selector, 0);
      
              bool specifiedIsCurrency0 = (params.amountSpecified < 0) == params.zeroForOne;
    • codePonsV2MemeHook.sol:L364-L378
      Show source
      launches[poolId] = LaunchInfo({
                  registered: true,
                  memecoinIsCurrency0: memecoinIsCurrency0,
                  memecoin: memecoin,
                  quoteToken: quoteToken,
                  creator: creator,
                  buybackCreatorRecipient: buybackCreatorRecipient,
                  protocolFeeRecipient: policy.protocolFeeRecipient,
                  creatorTaxBps: creatorTaxBps,
                  protocolFeeShareBps: policy.protocolFeeShareBps,
                  buybackBurnBps: policy.buybackBurnBps,
                  hookFeeBps: policy.hookFeeBps,
                  maxInternalPriceImpactBps: policy.maxInternalPriceImpactBps,
                  buybackEnabled: buybackEnabled
              });
    • codePonsV2MemeHook.sol:L352
      Show source
      if (uint256(creatorTaxBps) + policy.hookFeeBps > MAX_TOTAL_TRADE_FEE_BPS) revert InvalidBps();
    • codePonsV2MemeHook.sol:L184-L201
      Show source
      function getHookPermissions() public pure override returns (Hooks.Permissions memory) {
              return Hooks.Permissions({
                  beforeInitialize: true,
                  afterInitialize: false,
                  beforeAddLiquidity: false,
                  afterAddLiquidity: false,
                  beforeRemoveLiquidity: false,
                  afterRemoveLiquidity: false,
                  beforeSwap: false,
                  afterSwap: true,
                  beforeDonate: false,
                  afterDonate: false,
                  beforeSwapReturnDelta: false,
                  afterSwapReturnDelta: true,
                  afterAddLiquidityReturnDelta: false,
    • on-chaincurve: graduated=true, feeBps=100, creatorTaxBps=150

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

  • InfoWebsite domain registered on launch day; on-chain link points to GitHubwebsiteAI

    The on-chain website social points to a GitHub repo, while the project site is gh0st.fyi. That domain was created on 2026-10-20, the same day as the token deployment. This is context only.

    Evidence

    • on-chainOn-chain socials: website=https://github.com/8tk8m2kv9f-lang/GH0ST
    • Show source
      Whispers — Inside the GH0ST brain
    • on-chainsite.domainCreatedAt=2026-10-20T16:17:12.573Z; deployedAt=2026-10-20T18:54:55.000Z

    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 "get the money back out (withdraw, sell or exit)" failed — funds may not be withdrawable → max 15

    The token itself is a clean fixed-supply template with working 0% tax sells, but the project's dApp withdraw test failed, which caps this part.

    Why this score

    Raised the score

    • Plain ERC-20 with no owner, mint, blacklist or pause
    • Buy, sell and transfer work at 0% token tax
    • Main pool liquidity permanently held by the Pons locker
    • Main pool fee frozen at 2.5% per swap

    Lowered the score

    • dApp 'get the money back out' test failed (timeout)
    • Unverified hooks with amount-changing permissions on side pools
    • One Pons admin owns hook, factory, vault and locker
    • Bonding curve contract is unverified
  • Token

    weight 30%
    58

    Liquidity is locked and holders are spread out, but the launch was captured by snipers and bundles who have since sold to later buyers.

    Why this score

    Raised the score

    • 100% of main pool LP locked in Pons locker
    • Ongoing burns: 5% of supply burned
    • 542 holders; no non-infrastructure wallet above about 3%

    Lowered the score

    • 10 wallets sniped 17.1% in the first 10 seconds and sold out
    • Same-block bundles, one funder controlling 5.17%
    • Deployer sold 3.57% of supply
    • A 3% wallet cluster under one funder
  • Social / X

    weight 15%
    55

    The X account is verified and posts product updates, and the team claimed a FOMO dev profile, but it is brand new and its bio overstates how on-chain the AI is.

    Why this score

    Raised the score

    • Verified X account posting product updates, not paid shill
    • Team claims a verified dev tag on FOMO
    • No third-party scam reports found

    Lowered the score

    • Account created on launch day with a small following
    • Bio claims a fully on-chain model that the site contradicts
  • Website

    weight 10%
    45

    The site was registered on launch day and overstates live product status compared with its own disclosures.

    Why this score

    Raised the score

    • Site discloses that inference runs on ICP

    Lowered the score

    • Domain registered the day of launch
    • Whispers page presents a live 1.7B brain while the homepage calls it a pilot
    • Product claims unverifiable
    • On-chain website link points to GitHub, not the site