Solana implementation of the Sooth Protocol — prediction markets that bond on an LMSR AMM in the deployment's instance token, graduate into an on-chain order book in USDC, and settle through a manual adjudicator with a veto window.
Companion to Tora-Build/sooth-alpha (the EVM home). Deployed to Solana devnet.
| Layer | What it ships |
|---|---|
packages/programs-core/programs/sooth-core/ |
sooth_core — one Anchor program: market lifecycle, LMSR AMM, CLOB, LP/fee flows, adjudication. No cross-program CPIs. |
packages/sdk-solana/ |
@sooth/sdk-solana — instruction builders, account readers, PDA helpers, client-side LMSR quote math. |
apps/demo/ |
Forked demo: classic pages, the Eastboard shell at /options, Arena at /play. Talks to the program via a chain-shim. |
| You are… | Read first |
|---|---|
| A new contributor | HANDOVER.md — how the protocol works and where the code lives |
| Just want it running | docs/build.md |
| Checking what exists | docs/status.md — shipped surface, deployment, open items |
| Picking up the next task | docs/roadmap.md |
| An SDK integrator | packages/sdk-solana/docs/integrator-contract.md |
| Founder / decision-maker | docs/decision-log.md |
pnpm install
anchor build # Anchor 0.30.1, vendored anchor-syn patch
pnpm --filter @sooth/demo dev:localnet # solana-test-validator path
# or
pnpm --filter @sooth/demo dev:surfpool # Surfpool path (sub-second startup, time-travel cheatcode)The seed script writes .env.local and a pre-funded test keypair, deploys
sooth_core, bootstraps the protocol singletons, and serves vite on
http://localhost:5175. pnpm dev without a flag targets devnet. Wallet setup is
in docs/build.md.
Every transaction must prepend
ComputeBudgetInstruction::request_heap_frame(256 * 1024) — the program runs a
custom 256 KB bump allocator. The SDK adapter does this on all paths.
HANDOVER.md— the dual-venue lifecycle end to enddocs/design/dual-token-venues.md— why the AMM and the book hold different tokensdocs/design/orderbook-redesign.md— the single-account, single-axis bookdocs/spec/— per-subsystem specspackages/sdk-solana/docs/integrator-contract.md— public API surfacedocs/decision-log.md— resolved and open decisionsdocs/glossary.md— terminology
sooth-solana/
├── README.md / HANDOVER.md / CLAUDE.md / CHANGELOG.md
├── Anchor.toml / Cargo.toml / package.json / pnpm-workspace.yaml
├── apps/
│ └── demo/ # forked demo + Eastboard + Arena
├── docs/
│ ├── status.md # current snapshot
│ ├── build.md # local build + wallet rules
│ ├── roadmap.md
│ ├── decision-log.md
│ ├── glossary.md
│ ├── develop-vs-main.md
│ ├── design/ # orderbook redesign, dual-token venues
│ └── spec/ # per-subsystem specs
├── packages/
│ ├── programs-core/ # Anchor program `sooth_core`
│ └── sdk-solana/ # @sooth/sdk-solana
└── vendor/anchor-syn-0.30.1-fork # rustc-compat patch for IDL generation
Apache-2.0.