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

# Environments

> Switch between AIR Kit Sandbox and Production environments — Sandbox uses Moca Chain Testnet; Production supports Testnet or Moca Chain mainnet.

<Warning>
  Sandbox always uses **Moca Chain Testnet**.
</Warning>

| Environment | Moca Chain | Purpose | Developer Dashboard |
| - | - | - | - |
| Development + Testing | Testnet (222888) | Partners still on Testnet credentials | [https://developers.sandbox.air3.com/dashboard](https://developers.sandbox.air3.com/dashboard) |
| Production + `credentialNetwork: "mainnet"` | Mainnet (2288) | Production launches | [https://developers.air3.com/dashboard](https://developers.air3.com/dashboard) |

## Production mainnet access

Moca Chain mainnet is live. Production launches use the production AIR pages, including the [production Developer Dashboard](https://developers.air3.com/dashboard), and configure AIR Kit with `BUILD_ENV.PRODUCTION` and `credentialNetwork: "mainnet"`.

Production is self-serve for SD-JWT credentials: register your issuer, schemas, and programs in the production Dashboard the same way you did in sandbox. To use Iden3 credentials in production, contact the AIR team; see [Iden3 credentials](/products/identity/iden3-credentials).

For every step and a go-live checklist, see [Launch checklist](/get-started/launch-checklist). See [Moca Chain network information](/technicals/mocachain/network-information) for RPC and explorer URLs.

<Card title="Need \$MOCA for gas?" icon="coins" href="/technicals/mocachain/how-to-get-moca" cta="How to get \$MOCA">
  \$MOCA is the gas token on Moca Chain mainnet. See how to bridge or buy it.
</Card>

## Initializing AirService with the correct environment

<Tabs>
  <Tab title="Web">
    **Sandbox (Testnet):**

    ```js theme={null}
    import { AirService, BUILD_ENV } from "@mocanetwork/airkit";

    const airService = new AirService({
      partnerId: YOUR_PARTNER_ID
    });
    await airService.init({
      buildEnv: BUILD_ENV.SANDBOX,
      enableLogging: true
    });
    ```

    **Mainnet (production):**

    ```js theme={null}
    await airService.init({
      buildEnv: BUILD_ENV.PRODUCTION,
      credentialNetwork: "mainnet",
      enableLogging: true
    });
    ```

    `credentialNetwork` is only accepted when `buildEnv` is `BUILD_ENV.PRODUCTION`. Values: `"testnet"` | `"mainnet"`.
  </Tab>

  <Tab title="Flutter">
    ```dart theme={null}
    await airService.initialize(
      partnerId: 'YOUR_PARTNER_ID',
      navigatorKey: navigatorKey,
      env: Environment.sandbox, // or Environment.production
      enableLogging: true,
    );
    ```
  </Tab>
</Tabs>

## Chains

| Chain | Chain ID | RPC | Explorer |
| - | - | - | - |
| Testnet | 222888 | [https://rpc.testnet.mocachain.dev](https://rpc.testnet.mocachain.dev) | [https://testnet-scan.mocachain.org](https://testnet-scan.mocachain.org) |
| Mainnet | 2288 | [https://rpc.mocachain.org](https://rpc.mocachain.org) | [https://scan.mocachain.org](https://scan.mocachain.org) |

You can add Moca Chain mainnet to a wallet from [ChainList](https://chainlist.org/chain/2288). See [Moca Chain network information](/technicals/mocachain/network-information) for all endpoints.

Before you switch environments, read [Environment best practices](/get-started/environments/best-practices).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.