Robinhood Chain·Scanned 05 Nov 2026, 11:02 UTC
PonsV2LauncherToken $ARCOM
Verdict
66/100 safety
Template token with no owner powers; buys and sells work at ~3% curve fee; 18.8% was sniped at launch, and one cluster…
ARCOM is a standard Pons launchpad token with no owner powers, and buys and sells work at about a 3% curve fee. The main risks are on the holder side: snipers and bundles took about 19% of supply in the first seconds and have since sold, and one funder's six wallets still hold about 7% against only about $3k of liquidity. The bonding curve contract is unverified, and the launchpad owner keeps limited, mostly timelocked powers. The project is brand new, with an anonymous team, a new X account and a domain registered the day before launch.
Score breakdown
- Contract85
- Token50
- Social / X50
- Website50
Higher is safer · 0 = worst · 100 = best
- Yes
- 3%
- None (no owner role)
- 0% / 0%
Key findings
- MediumUnverified bonding curve holds 57% of supply and all buy money
- MediumLaunchpad owner can redirect creator fees after a 3-day timelock
- MediumOne funder's six wallets hold about 7% against thin liquidity
- LowLaunch sniped: 16 wallets took 18.8% of supply in 11 seconds
- GoodToken is a fixed-supply template with no owner powers
What would change the verdict
- Raises safety:Bonding curve source gets verified and confirms factory-only access → contract score up
- Lowers safety:Launchpad owner repoints the locker/vault factory or force-sweeps reserves → down
Findings
14 findingsRisks (7)
MediumUnverified bonding curve holds 57% of supply and all buy moneyotherAI
Every trade goes through the curve contract, which holds 56.83% of supply plus the collected quote reserve. Its source is not verified. Its function list includes sweepFees, rescueFees, setCreatorFeeRecipient, setBuybackEnabled, initialize and graduate, but who may call these, and what they can move, cannot be confirmed. The factory code calls the curve's rescueFees, setCreatorFeeRecipient, setBuybackEnabled and graduate, which suggests these are factory-gated. That is an inference, not proof, so the safety of the curve reserves rests on unverified code.
Evidence
- on-chainrelated contract curve 0x73ecCD7c2F1e5BaFC4F386730A51561D7D535470 verified=false
- on-chaintopHolders: 0x73ecCD7c2F1e5BaFC4F386730A51561D7D535470 pct 56.8326 label bonding curve
- codePonsV2LaunchFactory.sol:L1222-L1226
Show source
function rescueCurveFees(address token) external onlyOwner nonReentrant { LaunchedToken storage launch = _launchedTokens[token]; if (!launch.exists) revert TokenNotFound(); PonsV2BondingCurve(payable(launch.curve)).rescueFees(); }
Confirmed by: claude-opus-5.5, grok-4.7, gpt-5.6-sol
MediumLaunchpad owner can redirect creator fees after a 3-day timelockownershipAI
The factory owner (0x263e…19Dd) can propose a new creator fee recipient for any launch. Once 3 days pass, anyone can execute it within a 3-day window. This redirects the 2% creator tax and the buyback-vault vest beneficiary, and the code comments state the creator cannot veto it. This affects the creator's income, not holders' tokens or the curve reserves. The owner can also turn the buyback off for a launch, but cannot turn it on.
Evidence
- codePonsV2LaunchFactory.sol:L946-L957
Show source
function setCreatorFeeRecipient(address token, address newRecipient) external onlyOwner { LaunchedToken storage launch = _launchedTokens[token]; if (!launch.exists) revert TokenNotFound(); if (newRecipient == address(0)) revert ZeroAddress(); uint256 effectiveAt = block.timestamp + CREATOR_FEE_RECIPIENT_TIMELOCK; uint256 expiresAt = effectiveAt + CREATOR_FEE_RECIPIENT_EXECUTION_WINDOW; pendingCreatorFeeRecipient[token] = PendingCreatorFeeRecipient({newRecipient: newRecipient, effectiveAt: effectiveAt, expiresAt: expiresAt}); emit CreatorFeeRecipientChangeProposed(token, launch.creatorFeeRecipient, newRecipient, effectiveAt, expiresAt); } - codePonsV2LaunchFactory.sol:L99
Show source
uint256 public constant CREATOR_FEE_RECIPIENT_TIMELOCK = 3 days; - codePonsV2LaunchFactory.sol:L988-L1003
Show source
function _setCreatorFeeRecipient(address token, LaunchedToken storage launch, address newRecipient) private { if (newRecipient == address(0)) revert ZeroAddress(); address previousRecipient = launch.creatorFeeRecipient; launch.creatorFeeRecipient = newRecipient; if (launch.phase == GraduationPhase.PoolCreated) { memeHook.setCreatorFeeRecipient(_poolIdFor(token, launch), newRecipient); } else { PonsV2BondingCurve(launch.curve).setCreatorFeeRecipient(newRecipient); } // Keep the buyback vest's beneficiary aligned with the live creator // recipient so recovery and self-service transfers redirect vested // buyback tokens as well, not only immediate fee payouts. - codePonsV2LaunchFactory.sol:L904-L911
Show source
function setBuybackEnabled(address token, bool enabled) external { LaunchedToken storage launch = _launchedTokens[token]; if (!launch.exists) revert TokenNotFound(); bool isCreator = msg.sender == launch.creatorFeeRecipient; bool isOwner = msg.sender == owner(); if (!isCreator && !isOwner) revert NotBuybackController(); // Enabling spends the creator's bucket, so only the creator may enable. if (enabled && !isCreator) revert NotBuybackController();
Confirmed by: claude-opus-5.5, gpt-5.6-sol
MediumOne funder's six wallets hold about 7% against thin liquidityinsidersAI
Wallet 0xf70d…dbef funded six wallets that together hold 7.07% of supply now. Two of them bought as a bundle in the first blocks. Four of the top-10 holders belong to this cluster. If one entity controls these wallets, it can sell about 7% at once into a curve with only about $3,089 of liquidity, causing a sharp price drop.
Evidence
- on-chainclusters: funder 0xf70da97812cb96acdf810712aa562db8dfa3dbef, 6 wallets, pctSupplyHeldNow 7.0678
- on-chainbundle block 106516347 wallets 0x879ceea9c1b363f2a02d95a77db1da29e9b36cac, 0xf3f0d201bb034a4922f578cc6d69c5efa729622c commonFunder 0xf70da97812cb96acdf810712aa562db8dfa3dbef pctSupply 2.7898
- on-chainliquidity pons-v2-bonding-curve liquidityUsd 3089
Confirmed by: claude-opus-5.5, grok-4.7 · Disputed by: gpt-5.6-sol
LowLaunch sniped: 16 wallets took 18.8% of supply in 11 secondssnipersDeterministic
The launch was captured: 16 wallets bought 18.8% of the supply within 11 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=16, pctSupplyBought=18.7512, pctSupplyHeldNow=0
- on-chainsnipers: pctSupplyBought 18.7512, pctSupplyHeldNow 0
Confirmed by: facts, claude-opus-5.5, grok-4.7, gpt-5.6-sol
LowOwner can rescue reserves only if graduation cannot be seededliquidityAI
At graduation the curve's reserves move into the factory. They are then seeded by createGraduatedPool, which anyone can call and retry, into a full-range Uniswap v4 position minted to the Pons locker. The owner can send swept reserves to an address of their choice only in two cases. First, rescueSweptGraduation, which requires the launch to sit in the Swept phase for 7 days. Any holder can close that window permanently by calling createGraduatedPool. Second, forceSweptGraduation, which reverts if the seed is still viable. So the owner cannot take a healthy launch's liquidity, but they are trusted in the edge case of a launch that cannot be seeded.
Evidence
- codePonsV2LaunchFactory.sol:L1254-L1285
Show source
function rescueSweptGraduation(address token, address recipient) external onlyOwner nonReentrant { LaunchedToken storage launch = _launchedTokens[token]; if (!launch.exists) revert TokenNotFound(); if (launch.phase != GraduationPhase.Swept) revert WrongGraduationPhase(); if (recipient == address(0)) revert ZeroAddress(); uint256 availableAt = launch.sweptAt + GRADUATION_RESCUE_DELAY; if (block.timestamp < availableAt) revert GraduationRescueTooEarly(availableAt); uint256 quoteAmount = launch.sweptQuote; uint256 tokenAmount = launch.sweptTokens; address pairToken = launch.pairToken; launch.sweptQuote = 0; launch.sweptTokens = 0; - codePonsV2LaunchFactory.sol:L1109-L1123
Show source
function forceSweptGraduation(address token) external onlyOwner nonReentrant { LaunchedToken storage launch = _launchedTokens[token]; if (!launch.exists) revert TokenNotFound(); if (launch.phase != GraduationPhase.NotGraduated) revert WrongGraduationPhase(); PonsV2BondingCurve curve = PonsV2BondingCurve(launch.curve); if (!curve.readyToGraduate()) { revert PonsV2BondingCurve.NotReadyToGraduate(); } if (_graduationSeedable(token, launch, curve.realQuoteReserve(), curve.tokenReserve())) { revert GraduationStillViable(); } _sweepCurve(token, launch, curve); emit LaunchForceSwept(token); } - codePonsV2LaunchFactory.sol:L1193-L1211
Show source
function createGraduatedPool(address token) external nonReentrant returns (uint256 positionId) { if (address(graduationExecutor) == address(0)) revert GraduationExecutorNotSet(); LaunchedToken storage launch = _launchedTokens[token]; if (!launch.exists) revert TokenNotFound(); if (launch.phase != GraduationPhase.Swept) revert WrongGraduationPhase(); uint256 sweptQuote = launch.sweptQuote; _assertGraduationSeedable(token, launch, sweptQuote, launch.sweptTokens); uint256 tokenAmount = _lockExcessGraduationTokens(token, launch, sweptQuote, launch.sweptTokens); launch.sweptQuote = 0; launch.sweptTokens = 0; launch.sweptAt = 0; launch.phase = GraduationPhase.PoolCreated; - codePonsV2LaunchFactory.sol:L1386-L1402
Show source
(int24 tickLower, int24 tickUpper) = _fullRangeTicks(launch.tickSpacing); positionId = positionManager.nextTokenId(); uint256 nativeValue = _fundGraduationExecutor(currency0, currency1, amount0, amount1); graduationExecutor.mintFullRangePosition{value: nativeValue}( token, key, tickLower, tickUpper, sqrtPriceX96, amount0, amount1, currency0, currency1, policy.protocolFeeRecipient
Confirmed by: claude-opus-5.5, gpt-5.6-sol
LowOwner can repoint the locker and buyback vault factory addressproxy-upgradeAI
The owner 0x263e…19Dd can call setFactory on both the LP locker and the buyback vault. These contracts trust the factory for locking positions, locking tokens and updating vest recipients. Their sources were omitted, so it cannot be checked whether a replaced factory could unlock positions or move vested tokens. No timelock is shown.
Evidence
- on-chainPonsV2LaunchLocker setFactory(address) [owner] @PonsV2LaunchLocker.sol:L60-L66
- on-chainPonsV2BuybackVault setFactory(address) [owner] @PonsV2BuybackVault.sol:L98-L104
Confirmed by: claude-opus-5.5 · Disputed by: gpt-5.6-sol
LowWebsite domain registered the day before the token launchwebsiteAI
arcom.space shows a domain creation date of 2026-11-04, one day before the token launch. Yet the Wayback Machine has snapshots back to 2018. This pattern suggests an expired domain re-registered for this project, so the older history does not belong to this team.
Evidence
- on-chainsite.domainCreatedAt = 2026-11-04T18:28:14.960Z
- on-chainsite.waybackFirstSeen = 2018-09-04T20:59:43Z
Confirmed by: claude-opus-5.5, grok-4.7 · Disputed by: gpt-5.6-sol
Positive signals (2)
PositiveToken is a fixed-supply template with no owner powersownershipAI
ARCOM is the standard Pons V2 launch token: plain OpenZeppelin ERC20 plus ERC20Burnable. The whole supply is minted once to the bonding curve in the constructor, and no further mint function exists. There is no owner, fee, blacklist, pause or max-transaction logic.
deployer,launchFactoryandcurveare immutable reference values and give no privileges. Holders can only burn their own tokens, or tokens they have been approved to spend. Slither reported no issues.Evidence
- codePonsV2LauncherToken.sol:L21
Show source
contract PonsV2LauncherToken is ERC20, ERC20Burnable { - codePonsV2LauncherToken.sol:L44-L71
Show source
constructor( string memory name_, string memory symbol_, string memory logo_, string memory description_, Socials memory socials_, address deployer_, address curve_, address launchFactory_, uint256 supply_ ) ERC20(name_, symbol_) { if (deployer_ == address(0) || curve_ == address(0) || launchFactory_ == address(0)) { revert ZeroAddress(); } - codeERC20Burnable.sol:L35-L38
Show source
function burnFrom(address account, uint256 value) public virtual { _spendAllowance(account, _msgSender(), value); _burn(account, value); } - staticslither 0.11.6: issues = []
Confirmed by: claude-opus-5.5, gpt-5.6-sol
PositiveSimulated buy, sell and transfer work at about 3% curve feehoneypotAI
A real buy and sell on the bonding curve both succeeded. A second wallet that received tokens by transfer could also sell, and a sell one hour later worked. Buy tax was 2.98% and sell tax 3%, which is the curve's 1% protocol fee plus the 2% creator tax. Wallet-to-wallet transfers have no tax. Nothing indicates a honeypot.
Evidence
- forkcanBuy=true, canSell=true, buyTaxPct=2.98, sellTaxPct=3, transferTaxPct=0
- forksecond wallet (received via transfer) could sell
- forkcurve fees: feeBps=100, creatorTaxBps=200
Confirmed by: claude-opus-5.5, grok-4.7, gpt-5.6-sol
Notes (5)
InfoOne-time burn: 1.1% of supply sent to a burn addressburnDeterministic
1.1% of the supply ever minted is burned, in 1 burn transfer(s), last 2026-11-05. Burned by: the deployer 0xea47…cb5b (1.1%, 1 burn). This happened once, around launch; there is no sign of a continuing burn mechanism.
Evidence
- on-chainTransfer events to 0x0 / 0x…dEaD and balanceOf(burn addresses) of 0xd31e178d7e33694a7f538b5c2698a644556699ee
- on-chainDeployer 0xea47b808dbebeff4a7da7f946c226b0743b8cb5b holds 0% now
- on-chainburns.by: 0xea47b808dbebeff4a7da7f946c226b0743b8cb5b kind deployer pct 1.1415
Confirmed by: facts, claude-opus-5.5, grok-4.7, gpt-5.6-sol
InfoLaunchpad fee settings cannot change this token's feesfeesAI
The launchpad owner's setters only govern new launches. These include the snipe-tax start, bounded to 0 or 2001-9900 bps, and the snipe-tax window, bounded to 1-60 s. The code bounds these setters, contrary to the 'unbounded' note in the params table. This token's 2% creator tax is fixed at launch, and its snipe tax has already decayed to 0.
Evidence
- codePonsV2LaunchFactory.sol:L564-L583
Show source
function setSnipeTaxStartBps(uint256 bps) external onlyOwner { if (bps != 0 && (bps <= MAX_TOTAL_TRADE_FEE_BPS || bps > MAX_SNIPE_TAX_START_BPS)) { revert InvalidBasisPoints(); } snipeTaxStartBps = bps; emit SnipeTaxStartBpsUpdated(bps); } /** * @notice Sets the decay window new launches snapshot at creation, in * seconds. Capped at one minute so a misconfiguration cannot leave a * launch effectively closed to the public for minutes; disabling the * tax is done through `setSnipeTaxStartBps`, so a zero window is * refused rather than overloaded to mean off. */ - codePonsV2LaunchFactory.sol:L545-L554
Show source
/** * @notice Adjusts the ceiling a creator's chosen trade tax is validated * against at launch time. Already-launched tokens keep the immutable * tax rate they launched with regardless of later ceiling changes. */ function setMaxCreatorTaxBps(uint256 bps) external onlyOwner { if (bps > MAX_CREATOR_TAX_CEILING_BPS) revert InvalidBasisPoints(); maxCreatorTaxBps = bps; emit MaxCreatorTaxUpdated(bps); } - on-chaincurve: graduated=false, feeBps=100, creatorTaxBps=200, snipeTaxNow=0bps over 3s
Confirmed by: claude-opus-5.5, gpt-5.6-sol
InfoSite has no on-chain features, so the mint test could not runwebsiteAI
The scripted mint test made no transaction because the site is a read-only AI-agent workspace with no mint feature. No approvals or signatures were requested, so the failure does not indicate a trap. An upgradeable EtherPool contract (UUPS, admin can pause) was referenced in the site's JavaScript. Its connection to the project is unclear, and the test made no interaction with it.
Evidence
- forkdappTests mint: observed
Show source
wallet no balance change; 0 tx (none). - on-chainEtherPool 0xEC5266c9e44631e1ba22FD6377C38130c1F3B738 found via site-js:index-BDT92T_b.js (L2); admin = 0x44eb9939cfdE7C394f1632C6890191d695f0a3ce
Confirmed by: claude-opus-5.5, grok-4.7, gpt-5.6-sol
InfoNew, unverified X account created on launch daysocialAI
@arcomspace was created on 2026-11-05, about two hours before this token was deployed, and is not verified (87 followers, following 3). arcom.space was registered the day before. The posts describe the same product as the site (read-only Robinhood Chain tools, app or MCP, opened by holding $10 of $ARCOM). Nothing in the posts shows an older unrelated account that was renamed, but there is also no public track record before this launch.
Evidence
Show source
your agent can write code all day and still can't read Robinhood Chain Arcom gives it a computer that can nine live tools, one workspace, an app you can installShow source
Arcom is the agent computer for Robinhood Chain: agents with live tools for stock tokens, Morpho rates, new coins, wallets and the model router, in a web app you can install and over MCP for Claude Code, Codex and Cursor. Opened by holding $10 of $ARCOM.- on-chaindeployedAt=2026-11-05T06:08:20.000Z; deployerHistory=[]
Confirmed by: grok-4.7
InfoNo rug reports found; one caller's holder figures contradict factssocialAI
A search for scam, rug, and honeypot posts did not return accusations naming $ARCOM or this contract. Mentions of @arcomspace are mostly generic follow-back, DM, and collab replies, not independent holder warnings. Larpcheck (an automated scanner) called the story partly real and the coin neutral, and said agent runs behind the $10 hold were not tested. That is an allegation, not proof the app works or fails. One caller post claimed top 10 holders own 53%; the facts given here say top 10 hold about 23.2%, so that caller figure is not supported.
Evidence
Show source
$ARCOM · TOTAL 54/100 · NARRATIVE: PARTLY REAL 57 · COIN: NEUTRAL 50 Story partly real, untested agents; spread-out but young, 89 holders, top 10 hold 23%Show source
@arcomspace 🏹🚀🚀 Ready for the next move? Follow back! 🔥@arcomspaceShow source
🎯 Top-1: 8% | Top-10: 53%- on-chainholdersCount=90; top10Pct=23.2458
Confirmed by: grok-4.7, claude-opus-5.5
Score breakdown
Higher is safer. The overall is the weighted average of the assessed parts, then capped by hard facts.
Contract
weight 45%85The token is a clean, verified fixed-supply template with no owner powers, but the curve holding the reserves is unverified and the launchpad owner keeps some limited powers.
Why this score
Raised the score
- Verified, non-upgradeable ERC20 with no owner, mint, blacklist or pause
- Buy, sell and transfer all pass in simulation
- About 3% curve fee, no transfer tax
- Slither found no issues
Lowered the score
- Bonding curve holding 57% of supply is unverified
- Launchpad owner can redirect creator fees after a 3-day timelock
- Owner can repoint the locker and buyback vault factory address
Token
weight 30%50The launch was captured by snipers and bundles who have since exited, and a single funded cluster still holds about 7% against very thin liquidity.
Why this score
Raised the score
- Deployer holds 0% and sold nothing
- Snipers now hold 0%
- Top 10 holders hold about 23%
Lowered the score
- 16 sniper wallets bought 18.8% in the first 11 seconds
- Five same-block bundles at launch
- Six wallets with one funder hold about 7%
- Only about $3,089 of liquidity on the curve
Social / X
weight 15%50The X account is brand new, unverified and anonymous, but its posts match the site and no scam reports were found.
Why this score
Raised the score
- Posts consistently describe the same product as the site
- No rug or scam accusations found
Lowered the score
- X account created on launch day and not verified
- Team is not identified
- Replies are mostly collab spam
Website
weight 10%50The site is a minimal one-page product description on a freshly registered domain; it is read-only, and its token-gating claims are unverified.
Why this score
Raised the score
- Site confirmed read-only and never asks for signatures
- Burn claim confirmed on-chain
Lowered the score
- Domain registered the day before launch
- Older archive history likely belongs to a previous owner
- Claim that holding $10 of the token unlocks the app is untested