https://server.hypermid.io — and are told apart entirely by the key you send.
Why the key and not the URL
A separate hostname makes the environment a property of your configuration, and configuration is exactly what gets copied wrongly between deploys. The usual failure is a staging box pointed at a production URL with a key that happens to work. Binding the environment to the key removes that class of mistake. The confinement is enforced server-side on the key itself, so:- A
sk_test_key asking for a mainnet chain is rejected. It cannot move real money regardless of what it requests. - A
sk_live_key asking for a testnet chain is rejected too, which catches the reverse mistake — a test config that quietly reached production.
What sandbox actually runs on
Three real public testnets. Nothing is simulated — these are genuine chains with genuine block times, so settlement takes as long as it really takes.Base Sepolia
Chain id
84532. Same-chain swaps and cross-chain both available.Sepolia
Chain id
11155111. Same-chain swaps and cross-chain both available.BNB Smart Chain Testnet
Chain id
97. Cross-chain enabled; no same-chain swap router.The catalog endpoints are environment-aware. Called with a sandbox key,
/v1/chains and /v1/tokens return only these three
chains and their tokens — even if you explicitly ask for mainnet. So a picker
built against the catalog is automatically correct in both environments with
no branching on your side.Fiat in sandbox
Card and bank payments work in sandbox, but they need separate onramp credentials from your production ones — they are different tenants at the provider, with different merchant accounts behind them. Until sandbox onramp credentials are configured on your account,fiatEnabled comes back false on every session and the fiat option simply
does not appear. That is the intended signal, not an error. Ask
support@hypermid.io to set them up.
Moving to production
1
Build and test entirely on sandbox
Every product works there. There is nothing you can only learn in
production except real liquidity.
2
Ask for production access
Email support@hypermid.io. Live keys are
issued only once your account is approved.
3
Swap the key
Change
sk_test_… to sk_live_… in your server config. That is the entire
migration — the host, the paths, the payloads and the webhook format are
identical.Configuration is per environment
Everything your key resolves to is scoped the same way the key is. Register a webhook endpoint with ask_test_… key and it belongs to sandbox: it receives
sandbox completions only, and a live key can neither see it nor read its
signing secret. The reverse holds too.
That makes the endpoint list depend on which environment you configure: sandbox
endpoints receive sandbox completions only, and production endpoints receive
production completions only.
A new sandbox starts with no endpoints even if production has several.
Configuration never crosses between environments, so there is nothing to
inherit — register the sandbox one explicitly.
The environment comes from the key, never from the address or the chain. A
live key adding a testnet address still writes a production entry — which
will not satisfy a sandbox checkout, and is not what you want on the list your
real payouts are checked against. Use the key for the environment you are
configuring.