# Environments

Source: https://developers.bitgo.com/docs/get-started-environments

## Overview

BitGo has a test environment and a production environment. Both environments use the same set of APIs to interact with digital assets, but the test environment enables you to transact using freely-obtained testnet coins.

The environments are entirely separate from each other - there's no syncing in either accounts or data across environments. Therefore, you need to create accounts for both the test and production environments, and configure your apps separately for each. BitGo doesn't reset the environments. Once created, all of your data persists within their environment.

For security reasons, all BitGo API requests are made using TLS over HTTPS.

If your infrastructure restricts inbound traffic, you can [download](https://assets.bitgo.com/downloads/bitgo_egress_ips.json) the list of BitGo egress IP addresses for both environments and add them to your whitelist.

## Environment URLs

| | Test | Production |
| :--- | :--- | :--- |
| **Web app** | [https://app.bitgo-test.com](https://app.bitgo-test.com) | [https://app.bitgo.com](https://app.bitgo.com) |
| **API base URL** | [https://app.bitgo-test.com](https://app.bitgo-test.com) | [https://app.bitgo.com](https://app.bitgo.com) |
| **Express (default port)** | `http://localhost:3080` | `http://localhost:3080` |

## Test Environment

The test environment is: [https://app.bitgo-test.com](https://app.bitgo-test.com)

The BitGo developer portal and the test environment share login credentials. Creating an account for the developer portal automatically creates an enterprise in the test environment.

The BitGo test environment connects to the testnets of all BitGo-supported [assets](/coins). You can obtain free testnet coins from faucets. Testnet coins don't hold real monetary value. For example bitcoin (`btc`) and ethereum (`eth`) both have testnet versions, `tbtc4` and `hteth`, respectively. You can obtain testnet fiat currency by contacting [support@bitgo.com](mailto:support@bitgo.com). Most blockchains don't offer testnet tokens, since tokens typically exist as smart contracts on production blockchains.

Authenticating in the test environment doesn't require using a valid one-time password (OTP). Instead, you can authenticate using `0000000` as your OTP. An OTP may contain six or seven digits, depending on the authenticator.

> 📘 **Note**
>
> To withdraw from a custody-wallet in the test environment, you must contact BitGo.

## Production Environment

The production environment is: [https://app.bitgo.com](https://app.bitgo.com)

To use the production environment, specify `{ env: 'prod' }` when using the SDK or `-e prod` when running the Express API. When operating in the Production environment, provide SSL certificates to secure traffic to and from the Express API instances.

> 📘 **Note**
>
> All code samples use the test environment. When you're ready to create an app in production, update your code with the production URL.
