> ## 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.

# Pre-flight checklist

> Run through this before switching the x402 or MPP examples off the stub and settling a real payment on testnet or mainnet.

This is the go/no-go list for the [x402](/payment-protocols/x402/overview) and [MPP](/payment-protocols/mpp/overview) examples. For *what your wallet needs* on each side — funds, gas, allowances, and a receive address — start with [Prerequisites](/get-started/start-building/prerequisites).

Local stub runs need none of this — no funds move. Before you switch the stub off and settle for real, confirm:

* [ ] **One environment, end to end.** The payer and the merchant point at the *same* Atum environment — matching gateway/facilitator URLs, and the stub flag off on both sides. See [Choose an environment](/payment-protocols/environments).
* [ ] **Current example and package versions.** You pulled the latest `examples` repo and reinstalled (`git pull && npm install`).
* [ ] **The right wallet.** You're using your current testnet wallet, not a stale credential. If you exported `PRIVATE_KEY` in your shell earlier, run `unset PRIVATE_KEY` so the value in `.env` is the one that's used.
* [ ] **Funds in place (payer).** The payer wallet holds enough source token, enough native coin for the one-time Permit2 `approve()`, and an active [Permit2 allowance](/get-started/concepts/permit2-and-approvals) on the source token.
* [ ] **A valid receive address (merchant).** `DEST_ADDRESS` is a real address you control on the destination chain.
* [ ] **A short, intentional quote deadline.** Keep the quote window tight so a stalled quote round fails fast instead of hanging.
* [ ] **Record the payment identifier before troubleshooting.** Capture the settlement transaction / payment ID (x402) or the `Payment-Receipt` (MPP) as soon as you have it.
* [ ] **Verify before retrying.** After a timeout or ambiguous result, confirm settlement on-chain or via the gateway before resending — a fresh retry is a **second payment**. See [Troubleshooting](/get-started/support/troubleshooting).
