hentol
00 · HENTOL(1) — THE CHECK BEFORE YOU SIGN · MAINNET

scan → signexit: ok

hentol(1)
security layer for onchain execution; reads the bytecode before you sign.
scan
paste any EVM address — selectors, proxies and privileged writes are recovered.
simulate
512 sells + 4,096 attack sequences on a fork of the live chain.
verdict
one score 0–100 → exit: ok or the exact selector that traps you.
monitor
webhook the moment a tax, owner or implementation changes.
00scanlive
$ hentol scan 0x7A1C...91c2 --chain base | verdict -
SECURITY SCORE
92/100
LOW RISK
  • owner tax controlcapped 10%
  • hidden mintnone
  • sell simulationpass
  • blacklistnone
  • proxynone
28,481 paths43.7 ms · scn_47ddd11ef630open report →
CONTRACTS
2,481,902
= scanned · all chains
NETWORKS
18/24
= 6 live · 12 queued
PATHS
892M
= executed · 90 d
MEDIAN
31.4ms
= p50 · budget 50 ms
HONEYPOTS
41,207
= sell-path revert confirmed
ENGINE
active
= v1.4.2 · 0 incidents
01·HOW IT WORKS

Three steps.
Before you sign.

No setup and no wallet connection needed to scan. You see what a contract can do to you before it can do it.

  1. 01

    Paste or detect

    Drop in a contract address — or let the wallet, DEX or extension pick it up automatically when you're about to sign.

    ANY EVM ADDRESS
  2. 02

    Hentol runs it

    We read the bytecode, fork the live chain and run hundreds of buys, sells and attacks against it. No trust in the token's own claims.

    < 50 MS · 9 CHECKS
  3. 03

    You get a verdict

    One score from 0 to 100 and plain-language findings: can the owner mint, raise taxes, block your sell or pull liquidity?

    SCORE · FINDINGS · TRACE
02·DETECTION SURFACE

Attack surface
visibility.

Detect dangerous contract behavior before execution.

DETECTORS
08
RULESET
2026.10.1
MODE
BYTECODE + SIM
  • 01
    SEV-01

    HIDDEN MINT

    Detect supply expansion paths unavailable in the visible interface.

    0x40c10f19 → SSTORE slot[0x02]
    OP SSTOREPREVALENCE 3.1%
  • 02
    SEV-01

    BLACKLIST LOGIC

    Identify owner-controlled address restrictions.

    0x153b0d1e → mapping(addr⇒bool)
    OP SLOADPREVALENCE 6.8%
  • 03
    SEV-01

    SELL RESTRICTIONS

    Simulate token exit paths and asymmetric transfer behavior.

    JUMPI 0x1a4f ← CALLER == pair
    OP JUMPIPREVALENCE 4.2%
  • 04
    SEV-02

    TAX MUTATION

    Detect mutable buy/sell fee controls.

    0x2e5bb6ff → SSTORE slot[0x08]
    OP SSTOREPREVALENCE 21.4%
  • 05
    SEV-02

    OWNER PRIVILEGES

    Map privileged state-changing methods.

    CALLER EQ SLOAD slot[0x00]
    OP CALLERPREVALENCE 48.9%
  • 06
    SEV-03

    UPGRADEABILITY

    Resolve proxies, implementations and admin authority.

    DELEGATECALL 0x3608…2bbc
    OP DELEGATECALLPREVALENCE 12.7%
  • 07
    SEV-01

    LIQUIDITY RISK

    Inspect ownership and LP control surfaces.

    LP.balanceOf(0x70a08231) → EOA
    OP STATICCALLPREVALENCE 17.3%
  • 08
    SEV-01

    HONEYPOT PATHS

    Execute adversarial buy/sell transaction sequences.

    buy() ✓ → sell() REVERT
    OP REVERTPREVALENCE 2.9%

PREVALENCE = share of scanned contracts triggering detector

03·STATIC + SYMBOLIC ANALYSIS

Read the code
users can't.

Every privileged write is mapped from selector to storage slot to the user-facing path it affects.

PIPELINE CFG → SSTORE GRAPH
SOURCE VERIFIED · solc 0.8.24
Token.sol · 0x182E...001A · verified
1// SPDX-License-Identifier: MIT
2pragma solidity ^0.8.24;
3
4contract Token {
5 address public owner;
6 uint256 public sellTax; // slot[0x01]
7 mapping(address => uint256) balanceOf;
8
9 modifier onlyOwner() {
10 require(msg.sender == owner);
11 _;
12 }
13
14 function setTax(uint256 value)
15 external
16 onlyOwner
17 {
18 sellTax = value;MUTABLE FEE AUTHORITY
19 }
20
21 function _transfer(
22 address from,
23 address to,
24 uint256 amount
25 ) internal {
26 uint256 fee = amount * sellTax / 100;READS slot[0x01]
27 balanceOf[from] -= amount;
28 balanceOf[to] += amount - fee;
29 }
30}
● FINDING // SEV-02
F-0193
SEV-02PRIVILEGEFEE

Owner-controlled sell tax

FUNCTION
setTax(uint256)
SELECTOR
0x2e5bb6ff
AUTHORITY
OWNER · slot[0x00]
BOUND CHECK
NONE
MAXIMUM OBSERVED
100%
CONFIDENCE
0.982
IMPACTOwner may modify token exit cost after launch.
TRACE
  1. CALLERmsg.sender == owner
  2. setTax()0x2e5bb6ff
  3. SSTORE slot[0x01]PUSH1 0x01 · SSTORE
  4. sellTaxuint256 · unbounded
  5. _transfer()SLOAD slot[0x01] → fee
04·SIMULATION

Break it
before users do.

Code can lie. Execution can't. Every contract is run against a fork of the live chain — buys, sells and attacks — before anyone signs.

SELL SEQUENCES
512 / contract
ATTACK SEQUENCES
4,096 / contract
MAX DEPTH
8 TX

Sells run against a forked state before the user signs. A revert is traced to the exact opcode.

CALL TRACE // sell 148,204 TOKEN → ETH
REVERTED
  1. STEP 01
    SELLER
    EOA 0x5c2E...a9D1
    CALL21,000 gas
  2. STEP 02
    ROUTER
    0x791ac947 swapExact…FeeOnTransfer
    CALL43,821 gas
  3. STEP 03
    TOKEN
    0x23b872dd transferFrom
    CALL72,194 gas
  4. STEP 04
    _transfer
    from → PAIR 0xC9a1...04E7
    SLOAD96,402 gas
  5. STEP 05
    GUARD
    slot[0x0b][from] == 0
    JUMPI101,233 gas
  6. STEP 06
    REVERT
    pc 0x1a53 · data 0x
    REVERT103,887 gas
OPCODE TAPE // TOKEN 0x98aF...713c
0x1a2c
CALLER
0x1a2d
PUSH1 0x0b
0x1a2f
SLOAD
0x1a30
ISZERO
0x1a31
PUSH2 0x1a4f
0x1a34
JUMPI
0x1a4f
JUMPDEST
0x1a50
PUSH1 0x00
0x1a52
DUP1
0x1a53
REVERT
SIMULATION RESULT
Sell path failed
CONFIDENCE
99.7%
REASON
conditional transfer restriction
BUY PATH
PASS · 512/512
SELL PATH
REVERT · 512/512
05·LIVE CONTRACT SCANNER

Scan before
you sign.

Paste any EVM contract address. One number, seven scored surfaces, every finding traced to a selector.

06·INTEGRATIONS

Not a launchpad.
The layer on top.

Hentol renders inside interfaces users already trust. The host keeps its UI; users get a verdict before they sign.

  • LAUNCHPADSSDK overlay
  • WALLETSpre-sign hook
  • DEX UIsroute guard
  • BROWSERSextension
A·DEX · THIRD-PARTY HOST
THIRD-PARTY INTERFACE // HOST
swapdesk.xyz0x91e…b03
$
USD Coin
$USDC · Circle · native on Base
$1.0000
Issuer
Circle
Decimals
6
Standard
FiatToken v2.2
0.5ETH
✓
HENTOL OVERLAY // INJECTED
HENTOLSYSTEMSLIVE
CONTRACT DETECTED
0x8335...2913 · BASE · USDC
SECURITY SCORE
88/ 100
LOW RISK
INFO
Issuer-controlled mint (Circle)
WARNING
Pausable · issuer blacklist role
WARNING
Upgradeable proxy · issuer admin
PASS
Sell simulation · no fee logic
VIEW FULL ANALYSIS →
B·BROWSER · ANY TAB
swapdesk.xyz/token/0x8335…2913
07·API / SDK

One security layer.
Every interface.

Typed SDK, REST API and webhooks. Drop a verdict into any wallet, DEX or launch flow.

$ npm i @hentol/sdk
scan.ts
1import { Hentol } from "@hentol/sdk";
2
3const hentol = new Hentol({
4 network: "base",
5 apiKey: process.env.HENTOL_KEY,
6});
7
8const report = await hentol.scan({
9 address: "0x7A1C92e3319b0FE2A8D48B90EA52C14E991C91c2",
10});
11
12console.log(report.riskScore);
stdout
{
"address": "0x7A1C92e3319b0FE2A8D48B90EA52C14E991C91c2",
"chain": "base",
"riskScore": 92,
"severity": "low",
"findings": 1,
"executionPaths": 28481,
"analysisMs": 43.7
}
POST /v1/scan
scan a contract
POST /v1/simulate
simulate a pending tx
GET /v1/reports/:id
fetch a report
POST /v1/monitors
watch state changes
08·NETWORK // LIVE

18 EVM networks.
One engine.

Dedicated archive nodes and fork simulators per chain. Every new deployment is scanned within the block it lands in.

ALL SCANNERS ACTIVE
NETWORK MATRIX 7 / 7 ONLINE
NETWORKLATEST BLOCKLATENCYSCANNERSIM
ETHEREUM#12138411724msACTIVEACTIVE
BASE#84532840182217msACTIVEACTIVE
ARBITRUM#4216128419055319msACTIVEACTIVE
OPTIMISM#1012900481121msACTIVEACTIVE
POLYGON#1376511840228msACTIVEACTIVE
BNB CHAIN#564491027626msACTIVEACTIVE
AVALANCHE#431145520739033msACTIVEQUEUED
+11 MORE · zkSync Era · Linea · Scroll · Blast · Mantle · Gnosis · Celo · Fantom · Mode · Zora · Taiko
LIVE FEED2 CRIT4 WARN2 PASS
  • OWNER PRIVILEGE22:41:08 · BASE · 0x71b...19faMEDIUM
  • HONEYPOT PATH22:41:05 · ETH · 0x98a...713cCRITICAL
  • CLEAN22:40:59 · ARB · 0xaa4...91b2PASS
  • MUTABLE TAX22:40:44 · BASE · 0x182...001aHIGH
  • PROXY · EOA ADMIN22:40:31 · OP · 0x3c0...e7d4MEDIUM
  • HIDDEN MINT22:40:17 · BSC · 0x5f1...0b8eCRITICAL
  • CLEAN22:40:02 · BASE · 0x9d7...44a1PASS
  • LP UNLOCKED22:39:48 · POL · 0xe20...6c39HIGH
09·ENGINE // ARCHITECTURE

Request in.
Verdict out.

One pipeline from the edge to the risk engine, with a hard budget of under 50 ms per request — fast enough to finish before the wallet confirmation dialog renders.

  1. WEB3 INTERFACE
    wallet · dex · launchpad · terminal
    —
  2. HENTOL EDGE
    42 PoPs · request dedupe · cache
    1.2ms
  3. TRANSACTION NORMALIZER
    calldata decode · ABI recovery
    0.8ms
  4. BYTECODE ENGINE
    CFG · selector map · SSTORE graph
    6.4ms
  5. STATE SIMULATOR
    fork @ head · revm · state diff
    9.7ms
  6. ADVERSARIAL EXECUTOR
    4,096 seq · invariants · fuzzing
    11.9ms
  7. RISK ENGINE
    7 surfaces · weighted · capped
    0.3ms
  8. VERDICT
    score · findings · trace
    —
LATENCY BUDGET // p50
0ms30.3ms used50ms budget
DELIVERY SURFACES
VERDICT
{ score, findings[], trace }
  • API
    REST /v1
  • SDK
    ts · react
  • EXTENSION
    chromium · ff
  • RPC
    eth_sendTx guard
  • WEBHOOK
    state events
B·BENCHMARKS
EXEC_SEQ_RATE
0
execution sequences / sec
PATH_EVAL_P50
0.0 µs
median path evaluation
HEAP_UNBOUNDED
0
unbounded allocations
cargo bench --release · x86_64 · 32c
benchmark::erc20_transfer
iterations1,000,000median41.2usp95 / p9947.8us / 52.4us
benchmark::state_diff
iterations1,000,000median8.3usp95 / p999.9us / 11.6us
benchmark::risk_classifier
iterations5,000,000median2.1usp95 / p992.6us / 3.0us
benchmark::selector_recovery
iterations500,000median17.9usp95 / p9921.3us / 24.8us
benchmark::proxy_resolve
iterations500,000median5.6usp95 / p996.4us / 7.7us
alloc: 0 B/iter (arena) · rss 412 MiB · cache-hit 97.2%
10·PRICING

Free to start.
Priced to scale.

Scanning in the web app is free. Plans cover API, SDK and monitoring for products that put Hentol in front of their users.

BETA
$0during private beta

For builders testing Hentol in a product.

  • 60 scans / min
  • 120 simulations / min
  • 10 monitors
  • REST API + SDK
  • Community support
REQUEST ACCESS →
MOST POPULAR
GROWTH
$399per month

For wallets, DEXes and launchpads in production.

  • 600 scans / min
  • 1,200 simulations / min
  • 250 monitors + webhooks
  • Overlay & React components
  • 99.9% uptime SLA
  • Priority support
TALK TO US →
ENTERPRISE
Customvolume pricing

For exchanges and infrastructure at scale.

  • Custom rate limits
  • Unlimited monitors
  • Dedicated RPC + fork capacity
  • On-prem / VPC deployment
  • Security review support
CONTACT SALES →
11·ROADMAP

Where we're
going.

Engine first, distribution second. Every phase ships something users can touch.

  1. Q3 2026SHIPPED

    Risk engine v1.4

    • Bytecode + proxy analysis
    • Fork simulation & adversarial executor
    • 6 EVM chains
  2. Q4 2026IN PROGRESS

    Private beta

    • Web scanner
    • REST API, TypeScript & Python SDK
    • Browser extension (Chromium)
  3. Q1 2027PLANNED

    Wallet & DEX rollout

    • Pre-sign guard for wallet partners
    • Overlay for launchpads
    • Monitors + webhooks GA
  4. Q2 2027PLANNED

    Scale

    • 18+ EVM chains
    • Firefox & mobile extension
    • Enterprise VPC deployment
12·FAQ

Questions.

Something else? Read the docs or write to access@hentol.systems.

Is a high score investment advice?+

No. Hentol measures contract and execution risk — whether the code can trap, drain or dilute you. It says nothing about price, team or market.

How accurate is it?+

Findings come from executing the contract on a fork of the live chain, not from guessing. If a sell reverts in simulation, it reverts for real. What a scan can't see is what changes after it — that's what monitors are for.

Can a contract change after it was scanned?+

Yes, through proxies, owner functions or liquidity moves. Every report is tied to a block, and monitors alert you the moment a tax, owner or implementation changes.

Does Hentol need my wallet or private keys?+

Never. Scanning needs only a contract address. The extension and wallet guard read unsigned transaction data — they cannot sign or move funds.

Which chains are supported?+

Ethereum, Base, Arbitrum, Optimism, Polygon and BNB Chain today, with more EVM chains on the roadmap.

How do I get API access?+

Email access@hentol.systems with your project and expected volume. Beta keys are free.

13 · HENTOL VERIFY --BEFORE-EXECUTION

check itbefore you sign

Paste an address and get a verdict in under 50 ms. Same engine in the web scanner, the extension and the SDK — so your users see it in the interface they already use.