The Sodae docs are live at docs.sodae.io. They take you from sign-up to a running stream on every product we sell, and they ship with complete clients in Rust, TypeScript and Go that you can clone and run.
Start here
The quickstart is five steps: create an account, copy your key, get a plan or trial, bind your server's IP, connect. Each step says where the button is in the dashboard.
Binding the IP is the step that is easy to miss. Fixed-price plans and trials accept connections only from the IP bound to them, and until one is set they accept none. Per-GB plans accept any IP until you add one. Authentication has the full table, plus the per-key rules for IPs, CIDRs and browser origins.
Per product
RPC lists every supported method with its credit cost, the Digital Asset Standard methods alongside the Solana ones, and the few that are not available. It also covers batches, full history back to genesis, and rate limits.
Yellowstone gRPC covers the filters we serve, commitment levels, and the keepalive ping your client has to answer. If you already run a Yellowstone client, point it at the endpoint and send your key as x-token.
Preplay Shreds has the proto and a plain list of what you get before a transaction executes: signed transactions in leader order, no status, no logs, no server-side filtering.
Price Feeds lists all 52 DEX programs it decodes, from Raydium and Orca to PumpSwap and HumidiFi.
Runnable examples
The examples live in sodae-io/sodae-docs. They are whole programs, not snippets. Each one reconnects with backoff, answers keepalive pings, and exits with the server's error code when retrying won't help.
git clone https://github.com/sodae-io/sodae-docs
cd sodae-docs/examples/rust
SODAE_TOKEN=... cargo run --example yellowstone -- slotsSwap slots for transactions or accounts <pubkey>. The Preplay example decodes every transaction in every batch, and given a program id prints each transaction that calls it. The TypeScript and Go versions take the same arguments.
Decoding entries
Preplay Shreds sends ledger entries in the validator's own binary encoding. Decoding entries writes out the byte layout for legacy, v0 and v1 transactions and names a decoder for each language: wincode for Rust, solana-go v1.24 or later for Go, and a single-file TypeScript decoder with one dependency.
The v1 layout is the one from our transaction v1 post, now kept as a reference instead of a walkthrough.
Errors
When a gRPC stream is refused, the response carries an x-error-code next to the gRPC status. Errors lists every code, what causes it, and whether to retry, with the one line it takes to read the code in each language.
Four codes need a change on your side and will not clear on retry: UNAUTHENTICATED, NOT_ENTITLED, IP_NOT_ALLOWED and QUOTA_EXCEEDED. Retrying a bad key in a loop only adds AUTH_RATE_LIMITED. The same four also end streams that are already open, so a revoked key or an expired plan shows up as a code, not a silent disconnect.
RPC errors are on the same page, with the HTTP status and JSON-RPC body for each.
Pricing
Pricing has every plan, how per-GB data is counted, the free trials, and how to pay in USDC or USDT on Solana. Plans do not renew on their own, so buy again before one expires.
Tell us
If a page is wrong, unclear or missing something you needed, open an issue on GitHub or tell us on Discord.
