built on nautilus trader·open strategy research·19.6K ★ foundation·crowdsourced intelligence·multi-source token intelligence·don't trust, verify·contribute strategies·backtest with real data·collective intelligence·7 data sources·built on nautilus trader·open strategy research·19.6K ★ foundation·crowdsourced intelligence·multi-source token intelligence·don't trust, verify·contribute strategies·backtest with real data·collective intelligence·7 data sources·
// documentation

Fathom Guide

Everything you need to run fathom locally.

CONTENTS

What is Fathom?

Fathom is an open-source Solana trading engine focused on pump.fun graduation events. When a token fills its bonding curve (~85 SOL), it graduates — migrating liquidity to a DEX pool. Fathom detects these migrations, analyzes holder distribution on-chain, filters scams, and executes via Jupiter.

It's a local tool — you clone it, configure your own keys, run it on your machine. No SaaS, no wallet-connect, no multi-user features.

Quickstart

$git clone https://github.com/late-build/fathom.git && cd fathom
$pip install -r requirements.txt
$cp fathom.toml.example fathom.toml
# edit fathom.toml with your Helius key (optional)
$python -m fathom collect --hours 24
$python -m fathom backtest --data data/collect-latest.json
$python -m fathom run --mode paper

Configuration

All settings live in fathom.toml. Environment variables override with FATHOM_ prefix.

# fathom.toml
[rpc]
helius_key = "your-helius-key"
rpc_url = "https://mainnet.helius-rpc.com/?api-key=..."
[strategy]
take_profit = 0.50 # 50%
stop_loss = 0.20 # 20%
trailing_stop = 0.15 # 15%
max_hold_minutes = 10
position_size = 50 # USD
[filters]
min_liquidity = 3000
max_mcap_liq_ratio = 200
max_top10_concentration = 80

Data Sources

No proprietary APIs. No paid feeds. Everything is free and public.

DexScreener3Profiles, boosts, token search300/min
pump.fun2Graduated tokens, top runners~60/min
GeckoTerminal3Trending, PumpSwap pools, volume30/min
Solana RPC3/tokenHolders, supply, deployerHelius free tier

Scoring Model

Each token gets a conviction score from 0–100 based on five signal categories. Baseline is 50. Score ≥60 = TRADE, <60 = SKIP. Hard filters override the score.

Momentum±28Buy/sell ratio 1h, price change 5m/1h
Activity±18Transaction count 24h
On-Chain Quality±55Top 10 concentration, dev holdings, snipers, holder count
Liquidity Health±50MCap/liquidity ratio, absolute liquidity
Freshness±20Time since graduation

Strategies

GraduationSniper — The default strategy. Monitors pump.fun graduations, scores each token, and trades those above the conviction threshold. Supports take-profit, stop-loss, trailing stops, and timeout exits.

LogOnly — Monitor mode. Logs all graduations and scoring decisions without trading. Use with python -m fathom monitor.

Strategies implement the same interface for backtest, paper, and live execution. Write once, test everywhere.

Backtesting

Collect real graduation data, then replay it through any strategy:

# collect 24h of graduation data
$python -m fathom collect --hours 24
# backtest with default strategy
$python -m fathom backtest --data data/collect-latest.json
# backtest with custom params
$python -m fathom backtest --tp 0.4 --sl 0.15 --data data/collect-latest.json

Paper Trading

Run the full pipeline with simulated fills against real price data:

$python -m fathom run --mode paper
# tracks balance, P&L, and fill history
# uses real prices from DexScreener/Helius
# same strategy code as live execution
View full source on GitHub →