> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atum.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Choose an environment

> Which environment to use when running the x402 and MPP payment examples — local stub, hosted testnet, and mainnet.

The x402 and MPP payment examples run against three environments. Pick based on what you're doing — the example apps default to the local stub, so real settlement is always opt-in.

<Info>
  Hosted URLs live on [Endpoints](/get-started/reference/endpoints). Each example's README covers that app's stub flags, `.env`, and corridor. Other surfaces — the [CLI](/get-started/start-building/using-the-cli) and [SDK](/get-started/start-building/build-with-the-sdk) quickstarts — may point at different endpoints.
</Info>

## Which environment should I use?

| Environment                               | Use it to                          | Settlement             | Funds                                     |
| ----------------------------------------- | ---------------------------------- | ---------------------- | ----------------------------------------- |
| **Local (stub)**                          | Wire up and debug your integration | Simulated in-process   | None                                      |
| **Hosted testnet** (`production-testnet`) | Validate a real end-to-end payment | Real, on testnet rails | Testnet funds                             |
| **Mainnet**                               | Go live                            | Real, on mainnet rails | Real funds, rate-limited to small amounts |

The example merchants default to stub mode, so any private key works and no funds move. Set the stub flag to `false` to settle for real over Atum's hosted testnet, or against mainnet (rate-limited to small payment amounts).

<Warning>
  **`production-testnet` is a testnet, and it is not yet hardened.**

  Expect occasional slow corridors. When settlement outruns the gateway's \~30s synchronous window, the acceptance side reports the payment as still settling and the payer re-attempts the **same purchase** until it reaches a terminal outcome — that cannot charge twice. See [Idempotency](/payment-protocols/idempotency).
</Warning>

## Examples repository

Stub flags (`USE_STUB_FACILITATOR` / `USE_STUB_SUBMITTER`), `.env.example`, and the corridor each app ships with are documented in the [`examples` repository README](https://github.com/Atum-Labs/examples/blob/main/README.md#environments) (**Environments** section) and in each app's "Going to testnet / mainnet" section. Hosted URLs are on [Endpoints](/get-started/reference/endpoints).

## Next steps

| Topic                       | Link                                                                                                                                          |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Run a payment example       | [Make payments (x402)](/payment-protocols/x402/make-payments/overview) · [Make payments (MPP)](/payment-protocols/mpp/make-payments/overview) |
| Supported chains and tokens | [Supported networks](/get-started/reference/supported-networks)                                                                               |
| Something failing?          | [Troubleshooting](/get-started/support/troubleshooting)                                                                                       |
