⚠ INTERNAL — Operator UX mock · Design preview of V2 development path · demo-wired ≠ production-live · back to dev guide
Polygon · pUSD 10
📓 Developer Guide 📋 Reason Codes 📈 Shadow Mode
JD John Doe · Admin

Step 3 of how this works

The ladder

How a bot earns the right to touch real money — five rungs, one at a time, no skipping. Every card below is a real bot; click it to read what it does.

What climbing the ladder means

A bot is just a set of rules somebody wrote down. Nobody — not you, not us — knows whether those rules are any good until they have been watched. So a new bot starts switched off, and has to earn each next step by surviving the one before it. Rung 1 it only exists. Rung 2 it plays with fake money. Rung 3 it watches the real market and says out loud what it would have done, while doing nothing. Rung 4 it really places orders, but from an empty wallet. Only at rung 5 can it spend anything, and even then a human has to sign off and a spending cap goes on.

Every gate exists because of a specific way this goes wrong. Untested rules lose money. Rules that worked on made-up data fall apart on real prices. Rules that look right in theory place absurd orders in a thin market. Each rung catches one of those before it costs anything. That is also why most bots below are still on rung 1 — the ladder is slow on purpose.

demo-wired

9

Rung 2Running on fake money

Spec complete, tests pass, last envelope was recent. Not yet observed in shadow.

To leave this rung: it has to run beside the live market for a full day without doing anything surprising.

risk.killswitch
Guardrail·27/27·last 14:48:21
RISK_KILLSWITCH_TRIPPED
Stop everything, now. Cancels every order you have resting and refuses every new one, across every strategy you are running.
risk.compliancegate
Guardrail·27/27·last 14:32:08
RISK_GEOFENCE_BLOCK
Are you allowed to place this? Checks where the order is coming from and that your builderCode is attached, before the order leaves the building.
risk.markethaltguard
Guardrail·27/27·last 14:11:54
RISK_MARKET_HALTED
Don't trade a market that has stopped. Watches for the venue marking a market halted, resolved or disputed, and pulls you out of that one market.
risk.stalebookguard
Guardrail·27/27·last 14:42:51
RISK_BOOK_STALE_15S
Don't trade a price that stopped moving. Watches how long it has been since the price last changed, and pulls your quotes if it has been too long.
risk.marketqualityguard
Guardrail·27/27·last 13:58:17
RISK_SPREAD_WIDE
Skip markets too thin to be worth it. Measures the gap between the best buy and the best sell price, and stands you down from any market where that gap is too wide.
risk.exposureguard
Guardrail·27/27·last 14:38:44
RISK_EXPOSURE_CAP_HIT
The most you can hold at once. Adds up what you are holding and refuses any order that would push you past your limit — per market, and across a whole group of related markets.
risk.drawdownguard
Guardrail·27/27·last 13:42:09
RISK_DRAWDOWN_TRIGGERED
When you stop for the day. Keeps a running total of the day and stops you opening anything new once you are down by more than you said you would accept.
strat.maker_tight
Alpha strategy·27/27·last 14:46:02
STRAT_MAKER_QUOTE_INSIDE
Offer to buy and to sell, and earn the gap. Posts a buy just below the going price and a sell just above it, on both sides at once, and keeps them there.
exec.smartrouter
Execution utility·27/27·last 14:40:18
EXEC_ROUTE_CTFV2_ACCEPTED
Where and how the order gets sent. Picks which venue to send each order to, and whether to send it in one piece or break it up.
The frozen → demo-wired gate →

shadow-ready

0

Rung 3Watching real markets, placing nothing

24h in shadow with zero unexpected reason codes. No execution.

To leave this rung: a person has to look at what it said it would have done, and agree it was sane.

Empty until a demo-wired bot finishes 24h shadow soak

Promote from demo-wired via the operator API /promote once the 24h gate clears.

How shadow soak works →

runtime-live

0

Rung 4Placing real orders, from a wallet with no real money in it

Running against the real adapter on a paper wallet. Envelopes are still audited.

To leave this rung: someone signs off, a spending cap goes on, and somebody is on call.

Empty until ops signs off on a shadow-ready bot

Requires real adapter, paper wallet, builderCode bound, and a signed-off ops runbook.

Ops incident playbooks →

production-live

0

Rung 5Live, with real money

Real pUSD, real CTFExchangeV2 orders. Full audit, full alerting.

To leave this rung: nothing — this is the top. It can still be stopped instantly.

Empty until a runtime-live bot earns the production gate

Requires real pUSD wallet, explicit operator approval, per-bot exposure cap, and oncall rotation.

M2 alignment and prod gates →

Rung 1 · written down, not running

Frozen specs · 106

Everything on the bottom rung: the rules exist and have been written up, but nothing is switched on. Grouped by class. Each card opens the real per-bot spec — identity, reason codes, sections, capital impact. This is the same content the class pages surface, just laid out linearly against the promotion ladder above.

Jump to: Guardrails · Alpha · Execution · Signal · Governance
Guardrails 17 frozen Open class →
Alpha strategies 24 frozen Open class →
Execution utilities 14 frozen Open class →
Signal services 23 frozen Open class →
Governance services 28 frozen Open class →

Promotion contract

Each transition is a hard gate. No bot moves without all of these passing.

From → toGates
frozen → demo-wired 27/27 sections · reason-code regex passes · npm run verify 0 warnings · mock adapter integration test
demo-wired → shadow-ready 24h shadow soak · ≥100 envelopes · zero unexpected reason codes · replay determinism 100%
shadow-ready → runtime-live Real adapter, paper wallet · builderCode bound · ≥24h with zero RISK_* unexpecteds · ops runbook signed off
runtime-live → production-live Real pUSD wallet · explicit operator approval · per-bot exposure cap · oncall rotation in place
Polytraders Operator UX Mock · INTERNAL · demo-wired ≠ production-live · how this works · words we use · the plan · reason codes · shadow-mode pipeline
⚙ Page Configuration
Current page settings
Loading configuration…