PAPER ยท no real money
Exercise every feature
Every done feature has a way to try it from the paper site and a result you
should see. A control links to the screen where you use it. A few
internal ops gates stay a command you run, because they need docker,
git, or terraform and cannot run in a browser. The same list lives in
artifacts/feature-exercise.json in the repo.
uniform-price
Control Open /ticket
Do: Send two crossing orders to a pair on the Trade ticket.
You should see: Both fills print one shared clearing price; speed buys no edge.
volume-max-clear
Control Open /lab
Do: Open the Feature Lab and run the Uniform clearing price demo.
You should see: The canned crossing book clears at the volume-max price; every fill prints that one price.
no-time-priority
Control Open /lab
Do: Open the Feature Lab and run the No time priority demo.
You should see: Reversing arrival order changes nothing: the same clearing price and volume.
pro-rata-allocation
Control Open /lab
Do: Open the Feature Lab and run the Pro-rata allocation demo.
You should see: Two equal buys split the marginal 30 lots 15/15, not first-come-first-served.
market-to-limit
Control Open /ticket
Do: Send a market order that cannot fully fill on the Trade ticket.
You should see: The unfilled part rests as a limit at the clearing price.
tif
Control Open /ticket
Do: Pick a time-in-force (IOC, FOK, or GTD) on the Trade ticket.
You should see: IOC leaves no rest; FOK is all-or-none; GTD rests to day end.
dark-meq
Control Open /ticket
Do: Send a dark order and set a minimum fill size on the ticket.
You should see: It books hidden and fills only at the lit price, at or above the minimum.
sealed-book
Control Open /markets
Do: Open the Markets screen during a batch.
You should see: No resting book shows until the auction clears.
random-lock
Control Open /lab
Do: Open the Feature Lab and run the Randomized sealing lock demo.
You should see: The order before the drawn lock seals in; the one at the lock rolls to the next auction.
collar-halt
Control Open /lab
Do: Open the Feature Lab and run the Price collar halt demo.
You should see: An out-of-band clear makes no fills and starts a halt.
collateral
Control Open /funding
Do: Fund a paper account on the Funding screen, then send an order over your balance.
You should see: The over-collateral order is turned away.
pool-isolation
Control Open /ticket
Do: Pick the 1s, 1m, or 1h pool on the Trade ticket.
You should see: The order enters that pool only; pools never share liquidity.
protocol-parity
Control Open /lab
Do: Open the Feature Lab and run the FIX and REST reach the same engine demo.
You should see: FIX and REST leave every order in the identical state, including a booked order and a rejected one.
determinism
Control Open /lab
Do: Open the Feature Lab and run the Deterministic replay demo.
You should see: The replayed journal rebuilds the exact clearing with no divergence, byte for byte.
thesis-sim
Control Open /lab
Do: Open the Feature Lab and run the Latency edge is zero demo.
You should see: The fast maker and its slow twin earn the same markout, so the within-pool latency edge is zero.
throughput
Control Open /lab
Do: Open the Feature Lab and run the Throughput under load demo.
You should see: A 100,000-message auction clears with no lost or doubled message: buy and sell fills each equal the matched volume.
funding-ledger
Control Open /funding
Do: Deposit then withdraw on the Funding screen.
You should see: The balance updates and the ledger always balances.
mode-isolation
Control Open /account
Do: Read the PAPER badge in the header and try a live sign-in.
You should see: Live sign-in is refused; the PAPER badge shows on every screen.
client-parity
Control Open /account
Do: Open the same paper account on the web app and the phone app.
You should see: Both show the same positions and orders.
security
Control Open /lab
Do: Open the Feature Lab and run the Signed-request replay guard demo.
You should see: The first signed call books; a replay is refused as a replay and a forged copy as a bad signature.
setup
Ops gate
docker compose upDo: Bring up the local stack.
You should see: The local stack serves the app and recovers state from its journal.
Why not on the site: Brings up docker containers, so it cannot run inside a browser.
business-gates
Control Open /lab
Do: Open the Feature Lab and run the Compliance gate fail-closed demo.
You should see: Live is refused while any gate is unmet; it turns on only when every gate is met, and one gate off shuts it again.
backtest-tools
Control Open /lab
Do: Open the Feature Lab and run the Deterministic backtest demo.
You should see: The same seed rebuilds byte-identical golden output; a different seed changes the run.
engineering-controls
Ops gate
./scripts/quality.shDo: Run the quality gate.
You should see: Any failed check rejects the push; coverage stays at or above 80%.
Why not on the site: Runs the full test and coverage toolchain, so it cannot run inside a browser.
maker-tools
Control Open /maker
Do: Post a two-sided quote, batch orders, then mass-cancel on the Maker screen.
You should see: Both quote sides go live; mass-cancel pulls the maker's live quotes.
high-availability
Control Open /lab
Do: Open the Feature Lab and run the Failover with no order lost demo.
You should see: A standby in another zone resumes byte-identical after a node kill, with no acked order lost.
observability
Control Open /lab
Do: Open the Feature Lab and run the Request id flows gateway to engine demo.
You should see: One request id flows from the gateway span to the engine accept event in structured JSON logs, with no secret leaked.
debug-replay
Control Open /lab
Do: Open the Feature Lab and run the Saved-fault replay demo.
You should see: The saved fault replays on the buggy build; the fixed engine parts from it and shows the fault gone.
deploy-safety
Ops gate
./scripts/deploy-ready.sh --localDo: Run the deploy-ready gate.
You should see: It passes only on a clean tree and a green preflight.
Why not on the site: Builds docker images and runs terraform plan, so it cannot run inside a browser.
indicative-guide
Control Open /maker
Do: Watch the slow-pool guide cell on the Maker screen.
You should see: The 1m and 1h pools show a would-be price; the 1s pool stays sealed.
crypto-first
Control Open /ticket
Do: Trade BTC/USDT or ETH/USDC on the Trade ticket.
You should see: The crypto pair books and clears like any pair.
participant-clients
Control Open /ticket
Do: Sign in to paper and trade from the web app.
You should see: Orders book and quotes go live, all PAPER-badged.
independent-verification
Ops gate
./scripts/independent-verify.shDo: Run the clean-room harness.
You should see: The artifact rebuilds byte-identical and a real use reaches USE OK.
Why not on the site: Rebuilds the artifact in a fresh docker container, so it cannot run inside a browser.
asks-register
Control Open /lab
Do: Open the Feature Lab and run the Operator asks register demo.
You should see: Every ask is tracked with a clean-room check or a named human reason; no row is a fake pass.
done-means-green
Ops gate
./scripts/gate-done.sh verifyDo: Run the done gate.
You should see: It passes only on a zero-fail audit and a green CI run.
Why not on the site: Reads the live git and CI state, so it cannot run inside a browser.