# Mainnet vs Testnet

> Learn how mainnet and testnet stay separate.

Canonical: https://stafiel.org/documentation/start/mainnet-vs-testnet
Version: v1.0.0

Stafiel keeps mainnet and testnet activity separate. This page explains the
difference so your team can decide when to use each mode.

## Mainnet

Mainnet is for real payments. A mainnet checkout can involve real USDT or USDC,
real customer orders, real wallet settlement, live webhook delivery, production
reporting, and merchant records that may be used for business operations.

Merchants may choose to use mainnet when their wallet, payment surfaces,
customer notices, event handling, and support workflow are ready for real
payments.

## Testnet

Testnet is for testing. It lets your team create checkout sessions, complete
test payments, inspect order states, and validate event handling without treating
the activity as real customer payment activity.

Testnet USDT and USDC are mock tokens. They are not real USDT or USDC and should
not be used for accounting, reconciliation, settlement, customer fulfillment,
tax records, or production support decisions.

## What Stays Separate

Mainnet and testnet use separate merchant and payment records, including:

- Merchant profiles, merchant IDs, and merchant settings.

- API keys and API client mode.

- Wallet configuration and chain or token enablement.

- Orders and checkout sessions.

- Payment, refund, settlement, and contract or on-chain program records.

- Webhook endpoints, signing secrets, event IDs, and delivery logs.

- Customer-facing order references.

- Order reports, exports, invoices, receipts, and settlement records.

Treat testnet order IDs, payment records, and webhook events as testing data.

## What May Be Shared

You may use the same Stafiel sign-in account and MFA setup to access both
modes. This separation applies to merchant and payment activity, not to creating
separate Stafiel user accounts.

## Mainnet-Only Features

Some account-level pages in the Merchant Dashboard, such as plan or billing
information, may be available only in mainnet. Testnet is intended for
integration and payment-flow testing.

## Mainnet Readiness

Before accepting real payments, it is usually useful to confirm that:

- You are using the live merchant profile intended for the business.

- The live merchant wallet is configured and approved for the networks you plan
to use.

- Live API keys are stored on your backend, not in browser code.

- Live chain labels are used in checkout creation.

- Live webhook configuration is separate from testnet.

- Your team can identify Underpaid, Overpaid, Expired, refunded, and Settled
orders.

For the full operational checklist, see
[Go-Live Checklist](/documentation/risk-and-reference/go-live-checklist).
