██████╗ ██████╗ ██╗ ████████╗
██╔══██╗██╔═══██╗██║ ╚══██╔══╝
██████╔╝██║ ██║██║ ██║
██╔══██╗██║ ██║██║ ██║
██████╔╝╚██████╔╝███████╗██║
╚═════╝ ╚═════╝ ╚══════╝╚═╝
A $1,000 memecoin trading experiment. Fully logged. Fully open.
Bolt is a transparent, self-contained trading experiment built around a fixed $1,000 wallet.
It does not use trading bots, APIs, or automated execution. Every trade is manually entered via CLI and logged to a flat CSV. Every position is tracked in a local JSON file. The point is visibility — knowing exactly where the money is, how it got there, and what the portfolio looks like at any given moment.
The experiment started with three memecoin positions:
| Token | Entry Price | Capital Allocated |
|---|---|---|
| PENGUIN | $0.00012 | $326 |
| WHITEWHALE | $0.00031 | $339 |
| WOJAK | $0.000087 | $335 |
All positions are tracked in data/wallet.json. All trades are appended to data/trades.csv.
┌─────────────────────────────────────────────────────────┐
│ │
│ $1,000 STARTING CAPITAL │
│ │ │
│ ▼ │
│ ┌─────────┐ run.py buy TOKEN 300 │
│ │ CLI │ ──────────────────────► core/trader.py │
│ └─────────┘ │ │
│ ▼ │
│ core/wallet.py │
│ (state manager) │
│ │ │
│ ┌─────────────────┤ │
│ ▼ ▼ │
│ data/wallet.json data/trades.csv │
│ (positions) (full history) │
│ │
└─────────────────────────────────────────────────────────┘
Every command flows through run.py → core/trader.py → core/wallet.py. The wallet file stores live state. The trades CSV stores an append-only history. Nothing is ever overwritten — only appended.
bolt/
│
├── run.py ← CLI entrypoint (all commands go here)
│
├── core/
│ ├── wallet.py ← Load, save, mutate wallet state
│ ├── portfolio.py ← Compute metrics, validate trades
│ └── trader.py ← Execute buys and sells
│
├── config/
│ └── settings.py ← Constants: capital, max position size, flags
│
├── data/
│ ├── wallet.json ← Live wallet state (positions + balance)
│ └── trades.csv ← Append-only trade log
│
└── utils/
└── logger.py ← CSV writer for trade history
run.py buy WOJAK 300
│
▼
core/trader.py → execute_buy()
│
├── core/portfolio.py → validate_trade()
│ Checks: sufficient balance? within max position size?
│
├── core/wallet.py → add_position()
│ Updates wallet.json (deducts balance, appends position)
│
└── utils/logger.py → log_trade()
Appends row to trades.csv
Requirements: Python 3.11+
git clone https://github.com/BryanFrontend/bolt.git
cd bolt
pip install -r requirements.txtpython run.py
# or
python run.py portfolioOutput:
██████╗ ██████╗ ██╗ ████████╗
...
╭──────────────── ⚡ BOLT WALLET ─────────────────╮
│ Starting Capital: $1,000.00 │
│ Available Balance: $0.00 │
│ Total Invested: $1,000.00 │
│ Total Value: $1,000.00 │
│ PnL: $0.00 │
╰─────────────────────────────────────────────────╯
Open Positions
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Token Invested Entry Price Alloc% Date
──────────────────────────────────────────────────
PENGUIN $326.00 $0.00012000 32.6% 2026-03-09
WHITEWHALE $339.00 $0.00031000 33.9% 2026-03-09
WOJAK $335.00 $0.00008700 33.5% 2026-03-09
python run.py buy PENGUIN 300Executing BUY — PENGUIN — $300.00
✓ Bought $300.00 of PENGUIN. Remaining balance: $700.00
# Close full position
python run.py sell WOJAK
# Partial close
python run.py sell WOJAK 150python run.py trades Trade History
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Timestamp Token Side Amount Balance
───────────────────────────────────────────────────────────
2026-03-09T00:00:00Z PENGUIN BUY $326.00 $674.00
2026-03-09T00:00:00Z WHITEWHALE BUY $339.00 $335.00
2026-03-09T00:00:00Z WOJAK BUY $335.00 $0.00
config/settings.py
STARTING_CAPITAL = 1000 # Fixed starting balance
MAX_POSITION_SIZE = 0.35 # Max 35% of capital per trade
LOG_TRADES = True # Toggle CSV logging on/offBolt enforces MAX_POSITION_SIZE on every buy. If you try to put more than 35% into a single token, the trade is rejected before it touches the wallet.
data/wallet.json
{
"starting_balance": 1000,
"available_balance": 0,
"positions": [
{
"token": "PENGUIN",
"amount_usd": 326,
"entry_price": 0.00012,
"timestamp": "2026-03-09"
}
],
"trade_history": [...]
}data/trades.csv
timestamp,token,amount_usd,price,side,wallet_balance
2026-03-09T00:00:00Z,PENGUIN,326,0.00012,BUY,674
2026-03-09T00:00:00Z,WHITEWHALE,339,0.00031,BUY,335
2026-03-09T00:00:00Z,WOJAK,335,0.000087,BUY,0
The CSV is append-only. Nothing is ever deleted. Every state change leaves a record.
Memecoin trading is mostly noise. The goal of Bolt is to cut through that by forcing discipline through constraints:
- Fixed capital. No reloading.
- Max 35% per position. No all-ins.
- Every trade logged. No selective memory.
- Public repository. No hiding the losses.
The experiment runs until the wallet hits zero or until it makes something meaningful. Either way, the data is here.
Updates, new positions, and commentary posted on X.
MIT. Use it, fork it, run your own version.
Built by @BryanFrontend