# Veriql: how the scores are computed > This is the full methodology behind every number Veriql publishes, written out > so a reader, a journalist or a model can check our reasoning rather than > believe it. Nothing here is secret. The moat is being right in public over > time, not an unexplained algorithm. > > Short index for machines: https://veriql.app/llms.txt ## Principles that constrain every score below 1. Absence is unknown, never zero and never clean. If a source does not answer, the dimension is reported as unknown. It is never filled in from a different instrument. (This rule exists because it was once broken: a dollar figure silently substituted from a second provider published a liquidity collapse that had not happened. The record was deleted after being disproved against both providers.) 2. A lower bound can support a reassuring claim, never an alarming one. Veriql reads specific pools on specific venues. More liquidity elsewhere only helps, so a high reading is conclusive and a low reading is not. Below the conclusive floor the dimension is unknown rather than "thin". 3. Incompleteness withdraws a clean verdict and never softens a dirty one. A check that could not run every dimension is marked partial; if it found nothing, no score is shown. If it found a honeypot, the honeypot still shows. 4. A measurement, never an accusation. Outcomes are recorded as "pool liquidity went from $X to $Y, N hours after the verdict", never as "the team rugged", which is a claim about people we cannot name. 5. Never earn on a flagged token. The trade referral appears only on a clean, complete verdict. A partial check can never earn a fee. ## Launch safety score (token rug/scam score), 0-100 Starts at 100. Each finding subtracts a stated number of points, and every penalty is published with the measurement that produced it. Bands: 70+ no known risks, 40-69 caution, under 40 danger, honeypot forces critical. ### Liquidity ownership (up to 20 points) The question is WHO can remove the float, not how much of it happens to be unlocked. Penalty scales with the largest single unlocked liquidity position, because a rug is one party withdrawing the pool. - A pool spread across many independent providers cannot be pulled by anyone, however little of it is "locked". Chainlink has 189 liquidity providers, the largest holding 16.9%: nobody can pull that pool. - A pool where one wallet holds 49% can be halved by that wallet. - Burn addresses and verified locker contracts are excluded from the "can withdraw" calculation, because they cannot. ### Contract powers, read from the chain where possible Solana mint accounts are read directly, so these are what is true now rather than what a vendor last indexed: - Non-transferable: 90 points (you cannot sell it at all). - Permanent delegate: 30 points. The holder can move your tokens out of your wallet without your signature. Ranked just under a freeze because a freeze traps your tokens where they are and a delegate takes them. - Freeze authority active: 25 points. - Mint authority active: 18 points. - Transfer hook with a program actually set: 12 points. - Transfer fee: scaled by the EXACT rate in basis points read off the mint. A 0.3% tax and a 10% tax are not the same warning: 3 points under 1%, 6 to 1%, 12 from 5%, 20 from 10%. EVM contract traits: honeypot 90, sell tax 50%+ 18, mintable supply, owner can edit balances, hidden owner, reclaimable ownership and self-destruct up to 12 combined, unverified source 5, upgradable proxy 3, pausable transfers and blacklist up to 4 combined. ### Holder concentration Top 10 wallets holding 50%+ costs up to 12-14 points, scaled. A top-10 share of exactly 0% is treated as a MISSING measurement and not displayed: ten wallets cannot hold 0% of a token that exists, so that value only ever meant the source returned no holder list. ### Pool depth and trading activity, kept separate Depth and activity are different dimensions and only depth can be read from a pool account. Collapsing them was caught by measurement: dropping the volume leg RAISED a token's score and made it referral-eligible, which is the exact fake-green this project refuses. - Depth: under $5k very thin (8), under $25k thin (4), under $100k modest (2). - Volume to liquidity above 10x is flagged as likely wash-traded (7), above 5x as possibly inflated (4). Labelled a proxy, because the public feeds give no unique-trader count. - Trades more than 80% one-sided: 2. ### Verified issuers A vendor "verified issuer" flag may change the WORDING of a verdict and may mute a market-shape heuristic that does not measure that class of token. It may never mute a power read off the chain, and it may never clear a honeypot. Why the wording has to change: the default sentence for a low band says "treat it as a likely scam", which is false about an identified regulated issuer. Why the powers must stay: they are real. A regulated stablecoin is supposed to be able to freeze and mint; the identical powers on an anonymous memecoin are how holders get robbed. Veriql names the powers and states which situation the reader is in, rather than hiding them behind a badge or crying scam. Why two market heuristics are suppressed for this class: a settlement asset is almost always the QUOTE side of a pair, so its deepest base-side pool is shallow by nature and the depth reading is a floor rather than a measurement; and a stablecoin turning over many times its float per day is what a stablecoin is for, not evidence of wash trading. Measured before this rule existed, Veriql reported "very thin liquidity ($981)" for Tether and "likely wash-traded" for USD Coin. Both were artefacts of applying a memecoin instrument to a settlement asset. ## Wallet security score, 0-100 Counts risky ERC-20 and NFT approvals across Ethereum, Base, Arbitrum, Polygon and BNB Chain. An approval is risky when it is unlimited, or when the spender is unverified, or when the spender appears on Drain Watch. A spender on the drainer list is not a warning, it is the finding. Any wallet with a live approval to a listed drainer is capped at 19 out of 100 regardless of how clean the rest of the wallet is: an unrevoked approval to a known drainer is an open door, and averaging it against good news would hide it. Value-at-risk, where shown, is min(allowance, balance) x price, computed per approval. It is omitted entirely rather than estimated when any term is unknown. ## Market Integrity score, 0-100 Computed from raw Uniswap V2 Swap logs rather than resold from an indexer: trader concentration, round-trip trading, volume against distinct traders, price impact, and ping-pong patterns. Thin data or no pair returns an honest unknown, never a fake clean. ## Honeypot simulation One `eth_call` with state overrides against a compiled simulator contract, executed on an RPC node: buy the token, then attempt to sell it, and report what actually happens including the realised tax. This is Veriql's own computation on raw chain data, not a resold flag. ## Drain Watch Addresses are ingested only from feeds whose licence permits redistribution, and ingestion fails closed when a licence is missing. Community reports are reviewed before publication and never auto-published. Every entry carries its category, confidence, first-seen date and the sources that reported it. An address absent from the list means no known listing was found. It is not a statement that the address is safe. ## The record Every verdict Veriql publishes is written to an append-only ledger and given a permanent page at https://veriql.app/v/, carrying a SHA-256 digest of the verdict's exact contents plus the recipe to recompute it. Records are never re-scanned and never edited. Outcomes are stored in a separate table so that adding one cannot invalidate the digest of the verdict it describes. Verdicts that later proved wrong are kept and shown. The scoreboard at https://veriql.app/track-record counts "after we warned" and "after we found nothing" in the same cell at the same size, and publishes no success-rate percentage, because the sample is too small for a percentage to carry meaning. ## What Veriql does not do - It never asks for a private key, a seed phrase or a wallet connection, never signs a transaction and never moves funds. There is no custody and no connect-wallet button anywhere on the site, deliberately: drainer kits pose as wallet checkers, so the absence of that button is part of the product. - It does not predict price and does not give financial advice. - It does not say "safe". It says "no known risks found", which is a different and smaller claim.