Documentation Index
Fetch the complete documentation index at: https://docs.sudont.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Sudont Solana Demo
One-command demo of the Sudont execution firewall running against Solana transactions. Two modes are supported:| Mode | Requirements | Egress | Policy |
|---|---|---|---|
| Local (default) | Docker only | Noop (simulation) | Hardcoded test pubkeys |
| DevNet | Docker + Solana CLI + demo-setup.sh | Real Solana devnet | Real vault pubkeys |
Mode 1 — Local (Simulation Only)
No setup required. Transactions are evaluated against policy and simulated locally — nothing hits the network.| Service | URL | Description |
|---|---|---|
| Sidecar | http://localhost:8080 | Rust RPC firewall (JSON-RPC) |
| Demo UI | http://localhost:3000 | React console with live verdicts |
Attack Mode Receipts
The console also includes Attack Mode, a browser receipt view for the Mythos trojan-swap and shallow-AMM MEV combat demos. Generate the report before starting the console:rust/target/demo-receipts/REPORT.md and copies
attack-report.json into apps/console/public/. Attack Mode shows SBF program
hashes, signed intent, raw LiteSVM logs, universal state diffs, policy gates,
and the sidecar sendTransaction block before Solana egress. The browser first
requests the report from the local sidecar via sudont_getAttackReport, then
falls back to the copied JSON artifact if needed.
Mode 2 — DevNet (Real Transactions)
Approved transactions are forwarded to Solana devnet and land on-chain. The policy uses real vault pubkeys funded with devnet SOL.One-time Setup
Requires: Solana CLI, jq, Rust toolchain
- Wallets — generates (or loads) four devnet keypairs in
.demo/and airdrops SOL - Policy — writes
infra/solana-policy.jsonand.demo/solana-policy.jsonwith real vault pubkeys - Fixtures — runs the Rust
build_solana_fixtureshelper and writes signed transactions →.demo/fixtures.json
Start the Demo
make demo-solana auto-detects .demo/fixtures.json. When found it applies
docker-compose.solana.devnet.yml on top of the base compose, which:
- Sets
SUDONT_SOL_EGRESS_RPC_URL=https://api.devnet.solana.comon the sidecar - Mounts
.demo/solana-policy.json→/demo/solana-policy.jsonin the sidecar - Mounts
.demo/fixtures.json→/usr/share/nginx/html/fixtures.jsonin nginx
Verify On-Chain
After running the Clean Transfer (ALLOW) scenario, verify the transaction landed:.demo/addresses.json.
What Runs
Rust Sidecar (infra/Dockerfile.sidecar)
- Loads
solana-policy.jsonwith a Solana program + recipient allowlist - Exposes a JSON-RPC server on
:8080 - Runs LiteSVM to simulate Solana transactions before applying policy verdicts
ALLOWcreates an approval attestation for the signed transaction artifactSUDONT_SOL_EGRESS_RPC_URLcontrols forwarding: empty = noop, devnet URL = live tx id
apps/console/Dockerfile)
- React app served by nginx on
:3000 - Displays real-time policy verdicts for the three built-in scenarios
- In DevNet mode,
/fixtures.jsonis served from.demo/fixtures.json
Three browser-console scenarios
| # | Scenario | Verdict | What It Proves |
|---|---|---|---|
| 1 | 0.1 SOL to allowlisted vault | ALLOW | Clean transfer passes through the firewall |
| 2 | 2.5 SOL to allowlisted vault | INTERROGATE | Amount exceeds the 1 SOL autonomous limit, so the agent must self-correct |
| 3 | Raydium CPMM instruction | BLOCK | Programs not in sol_program_allowlist are rejected |
These three scenarios are the browser-console subset. For the full five-scenario terminal demo (including the Mythos trojan-swap and shallow-AMM MEV walkthroughs), see
docs/DEMO_FLOW.md: run make demo-tui alongside make agent-five, plus make agent-monte-carlo for the headline route-optimizer scenario.Client Usage
Sudont is a drop-in JSON-RPC proxy — no client library, no package to install. Point@solana/web3.js (or any JSON-RPC client) at the sidecar URL and every
sendTransaction call is evaluated by the firewall.
sudont_diagnoseRawTransaction
method directly over JSON-RPC. It returns the decoded intent, LiteSVM outcome, and Judge verdict
without forwarding the transaction:
sol_simulateTransaction:
Migrate to Hosted
Switching from local demo to the hosted Sudont gateway is a one-line URL change:Verify Sidecar Health
Build Fixtures Manually
scripts/demo-setup.sh calls this for you, but the underlying command is:

