> For the complete documentation index, see [llms.txt](https://vnx.gitbook.io/vnx-global/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vnx.gitbook.io/vnx-global/developer/quickstart/sandbox-vs-production.md).

# Sandbox vs Production

*Choose the right environment, base URL, and key pair before each VNX integration milestone.*

## Before you begin

* Confirm your team has both test and production access issued by VNX.
* Production access is gated on completed KYB, signed Services Agreement, and security review.
* The test environment does not move real money; tokens issued there have no reserve backing.

## Environment matrix

| Aspect              | Test (UAT)                                                       | Production                                                              |
| ------------------- | ---------------------------------------------------------------- | ----------------------------------------------------------------------- |
| Base URL            | `https://api.uat.vnx.io/api/v1/`                                 | `https://api.vnx.io/api/v1/`                                            |
| Key pair            | Test ECDSA key pair from [my.uat.vnx.io](https://my.uat.vnx.io/) | Separate production ECDSA key pair from [my.vnx.io](https://my.vnx.io/) |
| Funds               | Simulated, no reserve backing                                    | Real fiat and tokens; 100% reserve-backed                               |
| KYB / Travel Rule   | Mocked or relaxed                                                | Enforced per regulatory policy                                          |
| Rate limits         | 1 request/sec per public key                                     | 1 request/sec per public key                                            |
| Audit log retention | Best-effort                                                      | Minimum five years                                                      |
| Support SLA         | Business-hours                                                   | Per Services Agreement                                                  |

## Steps

## Choose your environment

Set a base-URL convention in your client:

```bash
export VNX_BASE_URL=https://api.uat.vnx.io/api/v1/
```

## Use a separate key pair per environment

Generate distinct ECDSA key pairs for test and production; never reuse a test key in production.

## Track nonces per key pair

Each public key has its own always-increasing nonce sequence; do not let a value go backwards.

## Reserve real backing in production

Production tokens are 100% reserve-backed and move real funds; the test environment never does.

## Promote integration code

Only after running the standard test matrix in UAT: mint, redeem, conversion, and signed-request verification.

## Verify

```bash
curl -H "User-Agent: MyClient/1.0" "${VNX_BASE_URL}client/assets"
```

A 200 response confirms environment and connectivity. Add the three auth headers to reach `private/accountBalance`.

## Common errors

| Code                           | Meaning                                    | Fix                                                                               |
| ------------------------------ | ------------------------------------------ | --------------------------------------------------------------------------------- |
| 401 signature failure          | Cross-environment key reuse or stale nonce | Use the matching environment's key pair; ensure the nonce is higher than the last |
| 403 `production_access_denied` | KYB/security review incomplete             | Coordinate with VNX onboarding before promotion                                   |

## Next steps

* [First API Call](/vnx-global/developer/quickstart/first-api-call.md)
* [Authentication](/vnx-global/developer/concepts/authentication.md)
* [Nonce and Retries](/vnx-global/developer/nonce-and-retries.md)

## Related

* [API overview](/vnx-global/developer/api/overview.md)
* [Glossary](/vnx-global/glossary.md)
