Test mode vs live mode
How Strimz separates test traffic from real traffic, end to end.
Test and live mode are separated at every layer. Different smart-contract deployments, different RPC URLs, different Postgres tables, different webhook endpoints, different signing secrets. A test-mode call cannot settle a real payment, and there is no "promote to live" step that migrates test data over. The separation is deliberate.
Why the separation is so strict
Plenty of billing incidents trace back to one mistake: someone
thought they were hitting test, but they were hitting prod. Strimz
removes that class of mistake. The sk_test_ prefix routes your
request to a different chain, database, scheduler, and agent. When
you're ready for production, you swap sk_test_ for sk_live_ and
the rest of your code stays as-is.
What's different between modes
| Test mode | Live mode | |
|---|---|---|
| Chain | Arc Testnet (chain ID 5042002) | Arc Mainnet |
| RPC URL | https://rpc.arc-testnet.example.com | https://rpc.arc.example.com |
| USDC | Arc Testnet USDC (faucet at faucet.circle.com) | Arc Mainnet USDC |
| Webhook endpoints | Different list per mode | Different list per mode |
| API keys | sk_test_*, pk_test_* | sk_live_*, pk_live_* |
| Dashboard view | Mode toggle in topbar | Mode toggle in topbar |
Every resource (Subscription, Transaction, WebhookDelivery, and so
on) carries a mode column. The dashboard uses it to filter what you
see. The scheduler uses it too: a scheduler instance running in test mode
will only ever pick up test-mode subscriptions, and the same is true for
live.
Switching modes
In your code, you switch modes by changing the API key. The same SDK client works for both:
In the dashboard, there's a toggle in the topbar. Switching it doesn't migrate anything. It only filters the data shown to that mode.
Webhooks per mode
Webhook endpoints are scoped to a single mode at creation. An endpoint with mode: 'test' only receives test events; the same URL can be registered twice (once per mode) if you want. The signing secret is per-endpoint-row, so test and live signatures are different.
Identity
Your merchant identity (business name, payout address, KYB info) is shared across modes on purpose. There is no second onboarding to finish before going live. The transactional resources (sessions, subscriptions, refunds, deliveries, invoices) stay mode-segregated.
