Proof · How we stay honest
Every trade leaves a trace.
Every position Kabal opens or closes — paper or live — posts an SPL
Memo to Solana mainnet. A cryptographic receipt that's public,
timestamped, and impossible to rewrite. This is how an autonomous
squad stays trust-minimized.
What's in the memo
SPL Memo · Position opened
Sig 5rL…m8Kx
kind KABAL_POSITION_OPENED
agent reaver
strategy PUMP_PHASE
token PEPU
mcap_entry 42013
size_sol 0.500
ghost_pass 5/5
sentinel cleared
mode paper
session v0_carillo_s3
ts 2026-04-02T14:32:07Z
~200 bytes per trade. Memo-only transactions cost a few lamports.
Paper trades are flagged mode: paper — the squad posts the
decision without moving funds, so the audit trail is continuous across
the V.0 → V.1 cutover.
Why memos, not a centralized log
✕ Trust-us logs
Most "AI trading bot" projects log trades to their own server. You
see a dashboard. You don't see the database. Numbers can be
rewritten overnight. Losses can disappear.
✓ Memo proofs
Solana's ledger is append-only. Once a Kabal memo is confirmed,
it's there forever. We can't rewrite a trade that went bad. You
can verify any claim independently of our dashboard.
How it works in five steps
1
Trader decides
Reaver or Ash or Myth or Ravage signals an entry / exit.
2
Sentinel clears
Three-tier risk check. Veto or pass. Recorded either way.
3
Transaction builds
Trade instruction (or paper stub) + SPL Memo bundled.
4
Signed & sent
Wallet signs. Sent to Solana. Confirmed ~400ms.
5
Librarian indexes
Memo hash + sig stored. Cross-referenced with outcome on exit.
The rule is simple: if there is no memo, there was no trade.
The squad cannot execute without posting its reasoning on-chain first.
It's the cheapest integrity mechanism we could design.
Questions people ask
Doesn't posting every trade leak strategy?
Memos post after the trade fires, not before. By the time
you read one, the position is already open. Strategy surface
(PUMP_PHASE, BREAKOUT, NARRATIVE, TRENDING) is public anyway — the
edge is in execution timing and the ghost filters, which are
parameter-hidden. We disclose the shape, not the weights.
What stops Kabal from posting a fake memo after the fact?
Blockchain timestamps. Every memo sits in a confirmed block with a
network-level time. We can't backdate one. If a trade "appeared" at
14:32:07 UTC, the rest of Solana validators already saw it at that
block — we can't rewrite the transaction log retroactively.
How do I verify one?
Copy the transaction signature from any trade card, paste into
solscan.io
or
solana.fm,
and expand the memo instruction. The JSON payload is exactly what
our dashboard displays. If they diverge — we were lying.
Is this expensive at V.0 volume?
No. ~0.000005 SOL per memo transaction. 294 paper trades over 7
sessions cost less than 0.002 SOL in fees total. At live volume, the
memo cost is a rounding error on the trade cost itself.
Why SPL Memo and not an account program?
Memos are universally indexable, don't require deploying a program,
and are standard across Solana tooling. A custom program would let
us enforce schemas, but locks users into our verification path. We
picked the maximally-portable option on purpose.
Ghost filters · v1
Five pre-trade rug checks. Every signal passes through all five before Sentinel clears. Any hard-reject kills the trade before it builds.
Filter 1
Bundle detection
Same-block buyers ≥ 3 wallets at deploy. Hard reject at ≥ 3.
● active · threshold locked
Filter 2
Deployer age
Wallet age < 24h ? Warn. < 1h ? Hard reject.
● active · Helius lookup
Filter 3
Insider concentration
Top-10 non-LP wallet share. > 30% warn · > 50% hard reject.
● active · supply snapshot
Filter 4
LP lock
Liquidity must be burned or in a lock contract. Unlocked = veto.
● active · raydium/meteora
Filter 5
Sniper cluster
Known sniper cohort in first 3 blocks. Size > 10% supply = hard reject.
● active · cptn archive
Attestation trail
Every trade's SPL Memo. First mainnet attestation shipped 2026-04-19.
● Mainnet · paper
5pq…yK9
squad ash
phase PUMP_PHASE
outcome +0.018 SOL
ghost 5/5 pass
timestamp 2026-04-19T09:12:45Z
1 / 1 memo · Live feed stream pending Supabase public_trades realtime subscription