Two servers, four live public links, two trading systems trading real capital rules, one provenance system, one social platform. Every number below was re-checked against the running systems before this page was written, including the ones that don't look good yet.
Two VPS, joined by a private Tailscale mesh. SSH between them never leaves that mesh. Public access runs through Caddy with real TLS certificates on nip.io hostnames — no purchased domain, no shortcuts on the certificate itself.
Two of those links point at the same Into the Void instance through different hosts — proof it's one real backend being served twice, not two divergent copies pretending to be in sync.
Low win rate, positive profit factor — that's not a contradiction, it's a momentum book: most trades are small losses cut early, winners are allowed to run. Eight signal families share one risk pool: pulse_kama, pulse_kama_secondary, donchian, cci_breakout, rsi2_meanrev, bb_condexit, pulse_secondary, a cointegration pairs strategy, and a time-series-momentum leg on ETH.
12 pair-legs, 7 pairs, each validated on a chronological 70/30 split against real Binance history with Kraken's real 0.26% taker fee charged on both legs of every simulated trade. Futures trading exists in code — it is deliberately gated off: no API credentials configured, feature flag defaults false. Not live, not pretended to be.
symbol,side,signal_type,pnl_pct,result,exit_reason XRP/USD,long,donchian,-3.84,loss,stop ZEC/USD,long,ut_bot_ema,-8.01,loss,stop ALGO/USD,long,ut_bot_ema,-6.15,loss,stop ETH/USD,long,tsmom_eth,+1.34,win,weekly_rebalance ETH/USD,long,tsmom_eth,-0.03,loss,weekly_rebalance UNI/USD,long,pairs_LINK/UNI_UNI,+14.93,win,target INJ/USD,long,vwap_bands,+15.60,win,target
Columns trimmed for width; source: daily_trades_export.csv, 33 real rows, unedited values.
Stated plainly: this strategy currently loses money in paper trading. That's the point of paper trading, and it's the honest number, not a rounded-up one.
What makes this infrastructure rather than a losing bot: a real autonomous watcher (live_readiness_watcher.py) checks a strict bar every run — chronological 70/30 split, profit factor above 1.0 on both sides, minimum 30 trades per split — and has correctly never fired. Most recent check: train PF 0.788, test PF 0.688. Below the bar, so nothing changed. It's never promoted PumpSniper to real capital, because PumpSniper has never earned it. A separate research thread this session found that momentum in the first six ticks after entry classifies the eventual outcome with 91.7% out-of-sample accuracy — a real, validated signal, correctly labeled as pending deployment, not live.
The methodology: nothing reaches real capital without a chronological — time-ordered, not shuffled — 70/30 split, a minimum trade count, and a profit-factor bar on both sides. Here's what that bar has rejected recently, by name.
A DCA-style exit showed a 90%+ win rate in backtest. A live-feed check against real, fresh data found one symbol's profit factor was a thin 1.09, another showed zero losses only because the available data window never contained a real downturn to test against. Never promoted. It still sits as a chart-only display, not a trading rule.
A tiered take-profit scheme looked roughly 2x better than the live exit logic in a whole-sample comparison. A chronological split told a different story: out-of-sample, the median trade was 0.78% worse, and only 14.6% of individual trades actually improved. Re-run independently on a larger sample later the same day — same answer, within a rounding error. Disabled for that reason, not re-enabled casually.
Both of these are presented as rejections, not failures to hide — the discipline is the product.
A hash-chain provenance system across 11 art collections, 711 pieces. Each piece gets signed twice: the first signature authenticates the artwork itself, the second authenticates the first signature. Change either, and the fingerprint breaks.
The system's genesis seed was, until tonight, a hardcoded constant in a now-private GitHub repository — meaning anyone who'd read the source could have recomputed a "valid" signature for a forged piece. Moved to an environment variable, same literal value preserved so every existing signature still verifies, nothing broken retroactively. A newly generated piece for this project, Dreamwright №001, was signed with its own freshly generated seed — never reusing the original collection's secret. See the gallery: dreamwright-om109.173.199.122.43.nip.io.
A separate social content platform — real bcrypt password hashing, real session tokens, fully isolated from the trading bot's credentials. Topics span AI, crypto, trading, and art.
Fixed this session: YouTube audio silently failing to play on posts. The actual cause was a browser policy, not a bug — Chrome blocks unmuted autoplay unless the user already interacted with the page. Fixed with muted autoplay and a visible tap-to-unmute control, which works unconditionally. Added: a 30-second clip selector that reads a video's real duration through the YouTube player API, and a native NFT post type in the main feed showing real signature and rarity data with real explanatory captions — seeded with one actual OM109-signed piece; two more were blocked by an image API's paywall mid-session, left honestly incomplete rather than faked.