Web application to check if a Bitcoin address has any connection to Satoshi Nakamoto's wallets through transaction history.
Try it live: TaintedBySatoshi.com
- Check direct and indirect connections to Satoshi's ~22,000 known addresses
- Track transaction paths showing how Bitcoin flowed from Satoshi
- Uses verified Patoshi pattern analysis (21,953 blocks)
- Privacy-respecting analytics (no cookies, anonymous data)
- Background blockchain synchronization
- Node.js v18+
- Bitcoin Core v22+ with
txindex=1enabled - 10GB+ free disk space
git clone https://github.com/MikelCalvo/TaintedBySatoshi.git
cd TaintedBySatoshi
# Install dependencies
cd backend && npm install
cd ../frontend && npm installBackend (backend/.env):
PORT=3001
BITCOIN_RPC_HOST=localhost
BITCOIN_RPC_PORT=8332
BITCOIN_RPC_USER=your_username
BITCOIN_RPC_PASS=your_password
DB_PATH=./data/satoshi-transactionsFrontend (frontend/.env):
NEXT_PUBLIC_API_URL=http://localhost:3001# Terminal 1: Backend
cd backend && npm run dev
# Terminal 2: Frontend
cd frontend && npm run devAccess at http://localhost:3000
First run requires building the taint database:
cd backend
npm run update-satoshi-dataThis extracts ~22,000 Satoshi addresses and scans the blockchain for connections (takes several hours).
Use PM2 for production deployment:
# From root directory
npm run install:all
npm run build:frontend
npm run pm2:startThe backend auto-syncs new blocks in the background.
See docs/DEPLOYMENT.md for full production setup.
Check if an address is connected to Satoshi.
Response:
{
"isConnected": true,
"isSatoshiAddress": false,
"degree": 3,
"connectionPath": [
{"from": "1A1z...", "to": "1BvB...", "txHash": "abc123...", "amount": 50}
]
}| Endpoint | Description |
|---|---|
GET /api/sync-status |
Blockchain sync progress |
GET /api/health |
Health check |
GET /api/analytics/stats |
Public usage statistics |
- Development Guide - Scripts, debugging, local setup
- Deployment Guide - PM2, production, monitoring
- Configuration Reference - All environment variables
- Patoshi Analysis - Technical background on Satoshi identification
| Component | Technology |
|---|---|
| Frontend | Next.js 14, Material-UI, React |
| Backend | Express.js, LevelDB |
| Bitcoin | bitcoinjs-lib, Bitcoin Core RPC |
| Process Manager | PM2 |
- Only tracks outgoing transactions from Satoshi to avoid false positives
- Supports all address types (P2PKH, P2SH, SegWit)
- Initial sync takes several hours depending on hardware
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing) - Commit changes
- Push and open PR
