verex

Verex — Per-environment contract isolation (Jul 22 design)

What happened today, and why it’s a workaround rather than a repeatable path

Today’s cloud deploy reused the exact Sepolia backbone already deployed and seeded for local testing, instead of deploying a fresh one for the test server. That only worked because of a manual side-step, not because the normal flow supports it:

Beyond the mechanical inconvenience, sharing one backbone also mixes environments that should stay separate: local test trades and cloud test-server trades currently settle against the same contracts, the same operator, and the same liquidity — there’s no isolation between “I’m messing around locally” and “this is the shared server other people might look at.” That gets strictly worse once a real production environment exists — production must never share contracts, an operator key, or liquidity with test/staging.

Each environment gets its own independently deployed CTF backbone (own USDC_ADDR/CTF_ADDR/EXCHANGE_ADDR, own operator key, own demo mnemonic):

What this changes, concretely

Open question for jay

Should today’s cloud deploy be redone now with a fresh, dedicated Sepolia backbone for the test server (discarding the copied-over local data), or is the current shared state fine to leave as-is until a real production environment is being built — at which point production definitely needs its own backbone, and the test server should at minimum stop sharing with that? Not decided — no action taken either way until jay says which.