██████╗ ██████╗ ██╗ ████████╗
██╔══██╗██╔═══██╗██║ ╚══██╔══╝
██████╔╝██║ ██║██║ ██║
██╔══██╗██║ ██║██║ ██║
██████╔╝╚██████╔╝███████╗██║
╚═════╝ ╚═════╝ ╚══════╝╚═╝
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 300
Executing 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 150
python run.py trades
Trade History
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Timestamp Token Side Amount Balance
───────────────────────────────────────────────────────────
2026年03月09日T00:00:00Z PENGUIN BUY 326ドル.00 674ドル.00
2026年03月09日T00:00:00Z WHITEWHALE BUY 339ドル.00 335ドル.00
2026年03月09日T00: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/off
Bolt 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月09日T00:00:00Z,PENGUIN,326,0.00012,BUY,674
2026年03月09日T00:00:00Z,WHITEWHALE,339,0.00031,BUY,335
2026年03月09日T00: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