Skip to content

Repository files navigation

Sooth on Solana

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.

LayerWhat 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.
packages/sooth-data/Account/event indexer over sooth_core. Not wired into the frontend, which reads accounts over RPC.
infra/Deployed services: rpc-proxy (Worker), arena-api (Worker + D1), zk-resolver (Node).
apps/demo/The frontend: Arena at /play, Eastboard at /eastboard/*. Talks to the program via a chain-shim.

Where to start

You are…Read first
A new contributorHANDOVER.md — how the protocol works and where the code lives
Just want it runningdocs/build.md
Checking what existsdocs/status.md — shipped surface, deployment, open items
Picking up the next taskdocs/roadmap.md
An SDK integratorpackages/sdk-solana/docs/integrator-contract.md
Founder / decision-makerdocs/decision-log.md

Quick build

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.

Reading order

  1. HANDOVER.md — the dual-venue lifecycle end to end
  2. docs/design/dual-token-venues.md — why the AMM and the book hold different tokens
  3. docs/design/orderbook-redesign.md — the single-account, single-axis book
  4. docs/spec/ — per-subsystem specs
  5. packages/sdk-solana/docs/integrator-contract.md — public API surface
  6. docs/decision-log.md — resolved and open decisions
  7. docs/glossary.md — terminology

Layout

sooth-solana/
├── README.md / HANDOVER.md / CLAUDE.md / CHANGELOG.md
├── Anchor.toml / Cargo.toml / package.json / pnpm-workspace.yaml
├── apps/
│ └── demo/ # the frontend: Arena + Eastboard
├── infra/
│ ├── rpc-proxy/ # Cloudflare Worker, hides the RPC key
│ ├── arena-api/ # Cloudflare Worker + D1, arena social layer
│ └── zk-resolver/ # Node service, drives the zkTLS attest path
├── docs/
│ ├── status.md # current snapshot
│ ├── build.md # local build + wallet rules
│ ├── roadmap.md
│ ├── decision-log.md
│ ├── glossary.md
│ ├── design/ # orderbook redesign, dual-token venues
│ └── spec/ # per-subsystem specs
├── packages/
│ ├── programs-core/ # Anchor program `sooth_core`
│ ├── sdk-solana/ # @sooth/sdk-solana
│ └── sooth-data/ # account/event indexer
└── vendor/anchor-syn-0.30.1-fork # rustc-compat patch for IDL generation

License

Apache-2.0.

About

Sooth Protocol — Solana implementation (sooth_core Anchor program, @sooth/sdk-solana, frontends)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages