Skip to main content

Pre-trade safety scanner for Robinhood Chain — checks a swap before you sign it.

Project description

Hood Trade — Trade Smarter. Let AI Do the Rest.



Hood Trade

Pre-trade safety scanner for Robinhood Chain

CI Website Python 3.10+ License: MIT Robinhood Chain Claude AI


Point it at a swap you're about to sign — get a GO / CAUTION / NO-GO verdict with on-chain evidence.

Read-only. Never signs. Never holds funds. Never trades. It inspects — you decide.


╭─ Hood Trade verdict ──────────────────────────────────╮
│  CAUTION   risk score 43                              │
╰───────────────────────────────────────────────────────╯

The Problem

Robinhood Chain launched July 2026 as a permissionless Arbitrum-Orbit L2. Permissionless + brand new = risk:

Risk Why it matters
Unverified tokens Anyone can deploy; the token you're buying may be hours old
Rug pulls Uniswap liquidity can be removed — the pool can be drained
Honeypots Token lets you buy but blocks sells via a reverting transfer()
Stock token debt Tokenized equities are debt instruments, not shares — counterparty risk
Residual MEV FCFS sequencing blunts sandwiching, but latency races and oracle timing remain

Hood Trade turns these into a 21-check battery that runs in seconds before you sign.


How It Works

                          ┌─────────────────────────────────────────────┐
                          │            Check Battery (21 checks)        │
                          │                                             │
  ┌──────────┐            │  Contract ── code? owner? supply? honeypot? │
  │   CLI    │  Trade     │  Pool ────── exists? paired? liquid?        │          ┌──────────┐
  │  typer   │──Request──▶│  Execution ─ chain-id? size? MEV context    │──Score──▶│  Engine  │
  │  + rich  │            │  Concentration ─ self-hold? burned?         │          │ decide() │
  └──────────┘            │  Stock ────── disclosure? divergence?       │          └────┬─────┘
                          └─────────────────────────────────────────────┘               │
                                                                                Verdict │
                                                                            (deterministic)
                                                                                       │
                                                                                ┌──────▼──────┐
                                                                                │ AI Summary  │
                                                                                │   Claude    │
                                                                                │ (optional)  │
                                                                                └─────────────┘

Key design: the verdict is deterministic — any DANGER → NO-GO, score thresholds for CAUTION/NO-GO. Claude only explains findings; it never overrides the gate. No API key? Template fallback. Fully offline.


Check Reference

IDAreaWhat it checksSeverity
CONTRACT-EXISTSContractToken address has deployed bytecodeOK / DANGER
CONTRACT-OWNERContractOwner / admin key — renounced or activeOK / WARN
CONTRACT-SUPPLYContractERC-20 reads: name, symbol, totalSupplyOK / WARN
CONTRACT-HONEYPOTHoneypotSimulated transfer() to dead addressOK / DANGER
CONTRACT-APPROVEHoneypotSimulated approve() callOK / WARN
CONC-SELFConcentrationToken contract self-holds supply shareOK / WARN / DANGER
CONC-BURNEDConcentrationBurned supply ratio — thin float riskOK / WARN
POOL-EXISTSPoolPool address has deployed codeOK / INFO / DANGER
POOL-PAIRPoolPool pairs expected token0 / token1OK / DANGER
POOL-LIQUIDITYPoolActive in-range liquidity (Uniswap V3)OK / DANGER
EXEC-CHAINIDExecutionRPC chain-id matches configured valueOK / DANGER
EXEC-SIZEExecutionTrade size band vs. pool depthOK / INFO / WARN
EXEC-MEVExecutionFCFS sequencing context + residual MEVINFO
STOCK-DISCLOSUREStock TokenDebt-instrument disclosure for tickersWARN
STOCK-DIVERGENCEStock TokenOff-hours / underlying price divergenceOK — DANGER
REP-HONEYPOTReputationGoPlus honeypot flag + buy/sell taxOK / WARN / DANGER
REP-PERMISSIONSReputationMintable, pausable, blacklist, hidden ownerOK / WARN / DANGER
REP-SOURCEReputationVerified source code + holder countOK / INFO / WARN
MKT-LIQUIDITYMarketAbsolute quote-side liquidity (DexScreener)OK / WARN / DANGER
MKT-DEPTHMarketTrade size vs available liquidityOK / INFO / WARN
MKT-ACTIVITYMarket24h volume + buy/sell transaction balanceOK / INFO / WARN

Quick Start

git clone https://github.com/qumiann/hoodtrade
cd hoodtrade
python -m venv .venv && source .venv/bin/activate
pip install -e '.[ai,dev]'       # drop [ai] to skip Claude summaries
cp .env.example .env             # set HOODTRADE_RPC_URL

Dependencies: httpx pydantic typer rich — no web3. Optional: anthropic.


Usage

# Verify RPC connectivity
hoodtrade doctor

# Scan a buy
hoodtrade scan \
  --token 0xTokenAddr \
  --quote 0xUSDGAddr  \
  --amount 2500       \
  --pool  0xPoolAddr  \
  --direction buy

# JSON for scripting (exit: 0=GO, 1=CAUTION, 2=NO-GO)
hoodtrade scan --token 0x.. --quote 0x.. --amount 500 --json --no-ai
Example output
╭─ Hood Trade verdict ─────────────────────────────────╮
│  CAUTION   risk score 43                             │
╰──────────────────────────────────────────────────────╯
Proceed carefully — the scanner found notable risks.

Key risks
  • Token has an active owner: An owner address can pause transfers…
  • Trade size: large (>= $100k): split or route via an aggregator…
  • AAPL may be a tokenized equity (debt instrument)

Verify yourself
  → Confirm the token and pool addresses against the official source.
  → Check the pool's real depth for your size on the DEX UI.
  → Set a tight slippage limit; split large orders.

┌─ Findings ───────────────────────────────────────────┐
│ check              │ sev    │ finding                 │
│ EXEC-CHAINID       │ ok     │ Chain id verified       │
│ CONTRACT-EXISTS    │ ok     │ Contract code present   │
│ CONTRACT-OWNER     │ warn   │ Active owner detected   │
│ CONTRACT-HONEYPOT  │ ok     │ Transfer sim passed     │
│ CONC-SELF          │ ok     │ Self-holding negligible │
│ POOL-LIQUIDITY     │ ok     │ Active liquidity OK     │
│ EXEC-SIZE          │ warn   │ Trade size: large       │
│ STOCK-DISCLOSURE   │ warn   │ Tokenized equity (debt) │
│ EXEC-MEV           │ info   │ FCFS — reduced MEV      │
└──────────────────────────────────────────────────────┘
Honeypot detection (NO-GO)
╭─ Hood Trade verdict ─────────────────────────────────╮
│  NO-GO   risk score 190                              │
╰──────────────────────────────────────────────────────╯
High-risk trade — the scanner flagged blocking issues.

Key risks
  • Honeypot risk — transfer() reverts
  • Token self-holds 65% of supply

Configuration

All settings via env vars (prefix HOODTRADE_) or .env — see .env.example.

Variable Default Description
HOODTRADE_RPC_URL (required) JSON-RPC endpoint for Robinhood Chain
HOODTRADE_CHAIN_ID (unset) Pin expected chain id for RPC verification
HOODTRADE_CAUTION_SCORE 25 Score threshold for CAUTION
HOODTRADE_NOGO_SCORE 60 Score threshold for NO-GO
HOODTRADE_LIQ_DANGER_BELOW 5000 Liquidity (USD) below which a book is "very thin"
HOODTRADE_LIQ_WARN_BELOW 25000 Liquidity (USD) below which a book is "low"
HOODTRADE_BLOCK_ON_THIN_LIQUIDITY true Thin liquidity is NO-GO (false → CAUTION)
HOODTRADE_BLOCK_ON_HIGH_IMPACT true Oversized trade is NO-GO (false → CAUTION)
HOODTRADE_AI_ENABLED true Enable Claude risk summaries
HOODTRADE_AI_MODEL claude-opus-4-8 Model for AI summaries
ANTHROPIC_API_KEY (unset) Required only when AI is enabled

New-chain leniency

A freshly-launched chain legitimately has thin books and little trading history, so flagging every low-liquidity token as NO-GO is noise. For young chains (Robinhood Chain by default) the scanner relaxes only the market-maturity signals — thin liquidity, low volume and trade-size impact become CAUTION instead of a hard block. Security signals are never relaxed: a honeypot, hidden transfer fee, mint capability or owner permission still forces NO-GO on any chain.

  • hoodtrade scan 0x… --strict — full strictness even on a new chain
  • hoodtrade scan 0x… --lenient — apply new-chain leniency on any chain

Development

ruff check src tests            # lint
ruff format --check src tests   # format check
pytest -q                       # 156 tests

See CONTRIBUTING.md for the check protocol, severity guide, and PR conventions.


Roadmap

  • Tick-by-tick depth simulation (Uniswap V3 tick math)
  • Live USD/equity price oracles for divergence measurement
  • Holder-concentration via indexer (Blockscout / Dune)
  • Bytecode pattern analysis (proxy detection, exploit signatures)
  • Multi-venue routing comparison (Uniswap vs Pleiades vs 0x)
  • Telegram / Discord bot interface
  • Watch mode — continuous token monitoring

Project Structure

hoodtrade/
├── src/hoodtrade/
│   ├── checks/
│   │   ├── contract.py        # code, owner, supply
│   │   ├── honeypot.py        # transfer/approve simulation
│   │   ├── concentration.py   # self-holding, burned supply
│   │   ├── pool.py            # exists, liquidity, pair integrity
│   │   ├── execution.py       # chain-id, size, MEV context
│   │   ├── stock_token.py     # disclosure, divergence
│   │   ├── reputation.py      # GoPlus-backed checks
│   │   └── market.py          # DexScreener-backed checks
│   ├── engine.py              # verdict decision (deterministic)
│   ├── ai.py                  # Claude summary layer
│   ├── rpc.py                 # minimal JSON-RPC client
│   ├── sources/
│   │   ├── goplus.py          # GoPlus Security API client
│   │   └── dexscreener.py     # DexScreener market data client
│   ├── cli.py                 # typer CLI
│   ├── config.py              # pydantic-settings
│   └── models.py              # core types
├── tests/                     # 152 tests
├── docs/architecture.md
├── examples/sample_output.md
└── .github/workflows/ci.yml   # ruff + pytest on 3.10-3.12

Hood Trade is not financial advice. A green verdict means "no automated red flags" — not "safe."

Always verify addresses against official sources before signing.

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hoodtrade-0.3.0.tar.gz (52.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hoodtrade-0.3.0-py3-none-any.whl (55.1 kB view details)

Uploaded Python 3

File details

Details for the file hoodtrade-0.3.0.tar.gz.

File metadata

  • Download URL: hoodtrade-0.3.0.tar.gz
  • Upload date:
  • Size: 52.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for hoodtrade-0.3.0.tar.gz
Algorithm Hash digest
SHA256 dca49d8006bfdee641119e8f700785fc3df647caef6cbe3ce981546ed6f95001
MD5 c69802a3d3b59f0ec3c3e7a5cc513413
BLAKE2b-256 4cb1c1ec59630066716c4a3dfe00ae1dd5ac9456cae0eac39ff5cb2351af58d0

See more details on using hashes here.

File details

Details for the file hoodtrade-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: hoodtrade-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 55.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for hoodtrade-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 61ae0c84626d94ead99498851e5c0cf7c22f690dc72bf27d812a33ea50edd48f
MD5 c96ec19f9f0f57027eecc2d9bc404e7f
BLAKE2b-256 b1695f22da91e2d269fc6528f7503172a9df1b8569f245dc8a91ea1e05b2c822

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page