Tech stack

Every vendor, every layer, every bridge. Kabal is boring tech on purpose — no moonshot framework, no custom blockchain, no reinvented auth. We ship the trading IP, not the infra.

Layered architecture · top → bottom

UI

User surfaces (public + gated)

Landing, live perf, app (Fun + Pro), admin dashboard, Studio, Mission Control, manifesto, agents, press, FAQ, pricing, glossary, deck.
Vanilla HTMLCSS (tokens.css)React 18 + Babel CDNLenisCountUpWebAudio SFX
HTTP/2
CDN

Vercel edge + middleware

Static hosting, subdomain rewrites (admin/live/app/angel), password middleware (HMAC-signed cookies, 30d Angel / 24h Admin).
VercelCloudflare DNSEdge Middleware (TS)
REST / SSE
API

Asset manager backend (Node)

Prompt library (Haiku compose), R2 upload with signed URLs, Claude vision scoring (S/A/B/Reject), prompt logbook.
TypeScript + NodeFastifyR2 S3 client@anthropic-ai/sdk
TypeScript events
BRAIN

8 agents + event bus

Research (Bumble, Vision) + 4 traders (Reaver/Ash/Myth/Ravage) + ops (Sentinel, Librarian). Typed pub/sub bus (HIGH_CONVICTION_TOKEN, POSITION_CLOSED, KILL_SWITCH_ACTIVATED).
TypeScriptNode EventEmitterzod schemas
3-tier risk gate
RISK

Sentinel + Aegis

Layer 1 per-trader caps · Layer 2 squad correlation/open · Layer 3 Aegis panic + kill switch. Live caps in src/risk/liveCaps.ts.
Per-trader stateSquad viewRug counterKill switch
approved trade
EXEC

KKM bridge + memo proof

TradeExecutor → kkmApiClient (buy/sell) → Solana. Memo proof posted on every trade (paper + live) via SPL Memo program.
KKM API@solana/web3.jsSPL Memo
persist + replicate
DATA

SQLite local + Supabase client plane

SQLite is the bot's ledger (trades/positions/events). Supabase mirrors sanitized subset (public_trades, v0_agent_lifetime, daily_pnl_all view).
SQLiteSupabase (Postgres)RLSRealtime
on-chain settle
CHAIN

Solana mainnet + pump.fun

All trades route through Solana. Every trade's memo signature is public on Solscan. Zero custom chain, zero rollup.
Solanapump.funHelius RPCJupiter (optional)

Vendor roster

Vercel
hosting
Static hosting + edge middleware (auth). 5 subdomains routed.
Cloudflare
DNS + R2
DNS zone for kabal.trade + R2 bucket for Studio assets.
Supabase
client plane
Postgres + realtime for agent_leaderboard + public_trades.
Anthropic
LLM
Haiku 4.5 for prompt compose + Sonnet 4.6 for asset scoring (optional).
Helius
Solana RPC
Enhanced transactions + WebSocket for on-chain data.
Birdeye
price data
Historical OHLCV + pump.fun token metadata.
KKM · Kabal Kash Machine
our product · execution + free tier
Our Telegram bot (@kabakashmashine_bot). Agents execute via REST. Also the free-tier distribution channel — users plug wallet, copy-trade the squad.
Higgsfield
asset gen
Character + cinematic generation for Kabalverse art.

Design-driven choices

Boring is strategy. We don't use a custom framework, custom DB, or custom chain. Every layer is a well-understood vendor. We ship the trading IP, not infrastructure — because infra is what slows crypto teams to a crawl.

Vanilla HTML. No webpack, no Vite, no SSR. Every HTML file on kabal.trade is a single <html> that loads React via CDN at runtime. This keeps the brand system portable and the surface debug-able.

Memo proof. Every trade — paper or live — posts an on-chain SPL Memo. That's the single most important thing. It makes the performance claims verifiable, not marketing.