# quants.sh

You are on a **dedicated machine beside the Solana chain**. Everything you need is on private
`*.lab.local` names — you never touch a public RPC, a public relay, or an API key. Your program
runs as a **Docker container** the machine builds from your project's `Dockerfile`.

There are three stages:

- **Code** — write and iterate on your strategy. Use the agent, the terminal, and these docs.
- **Paper** — run the exact same program against live data; submissions are *simulated* and free.
- **Live** — the same program, real submissions to the network. Only *you* can start a Live session.

The single rule that shapes everything: **your program only ever talks to the local names below.**
Do not hard-code any other provider, RPC URL, or key. The machine injects the endpoints as
`QUANTS_*` environment variables and enforces the transaction path.

## The golden rules

1. **Reads and simulation:** `http://rpc.lab.local` (JSON-RPC) and `ws://ws.lab.local` (subscriptions).
2. **Never** call `sendTransaction` on `rpc.lab.local` — it is refused. **All** transactions go to
   `http://ultrasend.lab.local/v1/transactions`.
3. **Paper vs Live is not your concern in code** — the same `ultrasend.lab.local` call simulates in
   Paper and goes to the network in Live. `QUANTS_MODE` tells you which, but the code path is identical.
4. **Data feeds** are `grpc`, `events`, `streams` (gRPC/h2c) and `shreds` (UDP). See [Streams & shreds](/streams).
5. **No-exposure:** you never see, and must never log or hard-code, any upstream host or key.

Start with the [Quickstart](/quickstart). Then read [Endpoints](/endpoints),
[Sending transactions](/transactions), and [Streams & shreds](/streams).

---

All pages: [quants.sh — the research lab for Solana quants](/) · [Quickstart — the prescribed way to build a program](/quickstart) · [Endpoints — the local feeds](/endpoints) · [Sending transactions — ultrasend](/transactions) · [Streams, events & shreds](/streams) · [The Dockerfile contract](/dockerfile) · [Rules & common mistakes](/rules)
