Metatron Launch Watch

Methodology

Each launch gets a deterministic 0-100 score. Higher means more risk signals. A risk signal is a measurable property that has been common in failed or abusive launches (for example, one wallet controlling owner functions). It is not a finding about any team's intent, and many legitimate projects carry several.

How the score is built

Checks and weights

Contract

RulePointsWhat it means
No contract code
not_contract
+40eth_getCode returns empty: the address is a wallet or the contract is not deployed on this chain.
Source not verified
unverified
+15Neither Sourcify nor Blockscout has verified source code, so the logic can only be read from bytecode. Verified on either one counts as verified. If one of them could not be checked (for example Blockscout's Cloudflare blocked the request after retries) and the other has no match, the check is marked unknown, not unverified.
Unverified, but matches a verified template
unverified_template_match
+4Not verified itself, but the runtime bytecode is the same length and at least 97% byte-identical to a verified reference contract (for example the Pons launchpad token). Differences are constructor values such as name and symbol.
Upgradeable proxy
upgradeable_proxy
+15An EIP-1967 implementation or beacon slot is set (or Sourcify reports a proxy), so the logic can be replaced after launch. EIP-1167 clones are not upgradeable and are not flagged.
Proxy admin is a single wallet
proxy_admin_eoa
+5The EIP-1967 admin slot points at an address with no code: one key controls upgrades.

Owner and privileged functions

RulePointsWhat it means
Owner is a single wallet
owner_eoa
+8owner()/getOwner() returns an address with no code, or a wallet with an EIP-7702 delegation (code starting 0xef0100), so one key controls every owner-only function.
Owner is a contract
owner_contract
+3owner() is a contract (multisig, timelock or factory). Not classified further, so it carries a small weight. EIP-7702 delegated wallets are not counted here; they are single wallets.
Mint function
fn_mint
+12A mint function exists (exact selector in bytecode, or a name match in the verified ABI). New supply can be created.
Blacklist / bot-block function
fn_blacklist
+12A function that can block specific addresses from transferring.
Pause function
fn_pause
+8Transfers can be paused.
Fee / tax / limit setter
fn_fee_setter
+8Buy/sell fees or max-transaction/wallet limits can be changed after launch.
Trading on/off switch
fn_trading_switch
+6Trading can be enabled or disabled by a privileged caller.
Withdraw / rescue function
fn_withdraw
+5Tokens or ETH held by the contract can be withdrawn by a privileged caller.
Upgrade function
fn_upgrade
+10upgradeTo/upgradeToAndCall is present.

Trading (GoPlus, honeypot.is)

RulePointsWhat it means
Sell blocked in simulation
honeypot
+35GoPlus is_honeypot=1, or the honeypot.is buy/sell simulation fails to sell (Base only).
Buy or sell tax above 10%
high_tax
+10Reported by GoPlus or measured by the honeypot.is simulation.
GoPlus contract flags
goplus_flag
+8Any of: cannot_sell_all, transfer_pausable, hidden_owner, can_take_back_ownership, owner_change_balance, selfdestruct, slippage_modifiable, is_blacklisted, is_mintable.
Creator history flag
same_creator_honeypot
+15GoPlus honeypot_with_same_creator=1.

Liquidity

RulePointsWhat it means
Top pool under $5k
very_low_liquidity
+15Largest DexScreener/GeckoTerminal pool holds less than $5,000. If the two sources disagree by more than 5x the check is marked unknown instead.
Top pool under $25k
low_liquidity
+10Largest pool holds $5,000-$25,000.
No pool listed
no_pool
+6Neither DexScreener nor GeckoTerminal lists a pool at scan time.
LP not locked or burned
lp_unlocked
+12Less than 90% of LP tokens are locked or burned (GoPlus LP holders, or the burned share of a V2 pair). LP held by a verified locker contract (source verified on Sourcify or Blockscout; name or functions identify it as a locker) counts as locked even when GoPlus reports 0%, because GoPlus may not recognise custom lockers. The locker's unlock terms are not analysed. Concentrated-liquidity and bonding-curve pools cannot be read from free sources and are marked unknown.

Holders

RulePointsWhat it means
Launch wallet holds 5%+
launcher_holds_supply
+10The wallet that sent the launch transaction (or deployed the contract) still holds 5% or more of supply.
One wallet holds 10%+
holder_concentration
+10The largest non-contract holder (pools, vaults and curves excluded; EIP-7702 delegated wallets kept) holds 10% or more of supply.

Deployer

RulePointsWhat it means
Fresh deployer wallet
fresh_deployer
+8The launch wallet has sent 5 or fewer transactions in total.
Serial deployer
serial_deployer
+8The launch wallet directly created 10 or more live contracts, or has sent more than 400 transactions.
Young deployer wallet
young_deployer
+6The launch wallet's oldest transaction is less than 7 days before the scan.

Site and social

RulePointsWhat it means
Shared server with watchlist sites
hosting_cluster
+25The project website resolves (Google DNS-over-HTTPS) to the same IP as a server on the hosting watchlist. Shared hosting is common and is a risk signal only; it is not evidence that the projects share owners or of any wrongdoing. Shared CDN/PaaS ranges (Cloudflare, Vercel, Netlify, GitHub Pages, Fastly) are never counted.
Same /24 network as a watchlist server
hosting_cluster_subnet
+8The site's IP is in the same /24 block as a watchlist server (outside shared CDN ranges).
Domain under 14 days old
young_domain
+5RDAP registration date is less than 14 days before the scan. Subdomains of site builders (lovable.app, vercel.app, ...) are not scored.
X account under 3 days old
young_x_account
+4The X account behind the launch post was created less than 3 days before the scan.

Data sources

Public, keyless sources only: chain RPC (Robinhood Chain 4663, Base 8453), Sourcify, Blockscout, GoPlus, honeypot.is (Base), DexScreener, GeckoTerminal, Google DNS-over-HTTPS and RDAP. Launch posts come from public X search. The GoPlus and honeypot.is query pattern is reused from the open-source token-launch-scan.

Known limits

What is not listed

A scored launch is left off this site when its evidence is incomplete or broken: a flagged check without a verifiable link, a scan that aborted, a malformed record, or a launch post that turned out to belong to a third party or to point at a different contract. These are not judgments about the projects. Excluded so far: 3.

Known-dead evidence links are repaired before publishing (for example, a Sourcify link for a contract that is only verified on Blockscout is replaced by the Blockscout source link). Hosting facts are stated as infrastructure overlap only.

Corrections

If a team shows that a signal is wrong (for example a multisig owner misclassified), it is corrected publicly. Email metatron@mail.grokbot.com with the chain, address and the evidence.

All weights (scorer v0.2.0)

RulePoints when flagged
not_contract40
unverified15
unverified_template_match4
upgradeable_proxy15
proxy_admin_eoa5
owner_eoa8
owner_contract3
fn_mint12
fn_blacklist12
fn_pause8
fn_fee_setter8
fn_withdraw5
fn_upgrade10
fn_trading_switch6
honeypot35
high_tax10
goplus_flag8
same_creator_honeypot15
low_liquidity10
very_low_liquidity15
no_pool6
lp_unlocked12
launcher_holds_supply10
holder_concentration10
fresh_deployer8
serial_deployer8
young_deployer6
hosting_cluster25
hosting_cluster_subnet8
young_domain5
young_x_account4
any check unknown3
privileged-function points when owner() is 0x0/deadx0.5