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

# Sandbox and live

> Test safely in the sandbox, then switch to live when you're ready.

Bridge has two separate environments. They don't share data, keys, or webhooks.

| | Sandbox | Live |
| - | - | - |
| Base URL | `https://sandbox.core.linkio.world/api` | `https://core.linkio.world/api` |
| API key starts with | `bridge_sbx_` | `bridge_live_` |
| Real money | No | Yes |
| Webhooks | Yes | Yes |

## How the sandbox behaves

The sandbox checks your requests **exactly like live does**. A request that fails in the sandbox fails in live too. The difference is what happens after a payment is created:

* No bank, mobile money provider, or blockchain is contacted.
* The deposit instructions you get back are for testing only. Don't send real money to them.
* The payment walks through the happy path by itself, one step about every 3 seconds, until it reaches `completed`.
* You receive a webhook at each step, just like in live.
* One-time codes for mobile money are checked for format (4 to 8 digits) but not sent anywhere.

> [!TIP]
>
> Use the sandbox to make sure your app handles every webhook and every error before you go live.

## Using the wrong key

Keys only work in their own environment. If you mix them up, you get a `401` error that tells you what went wrong:

| What you did | Message |
| - | - |
| Sent a sandbox key to live | `This is a sandbox API key. Send it to the sandbox API.` |
| Sent a live key to the sandbox | `This is a live API key. Send it to the live API.` |
| Sent a key that isn't a Bridge key | `Unrecognized API key. Use a bridge_sbx_ key.` (or `bridge_live_` in live) |

## Going live checklist

**1. Create a live API key**

In the live Bridge app, create a key that starts with `bridge_live_`. See [Create API keys](https://docs.bridge.linkio.world/control-app/api-keys.md).

**2. Allowlist your live servers**

Add your production servers' IP addresses in the live Bridge app. See [Allowlist your IP addresses](https://docs.bridge.linkio.world/control-app/ip-allowlist.md).

**3. Add your live webhook**

Add your production webhook URL and save its new signing secret. See [Set up webhooks](https://docs.bridge.linkio.world/control-app/webhooks.md).

**4. Check your currency pairs**

Make sure the pairs you need are turned on for your live business. See [Currency pairs](https://docs.bridge.linkio.world/control-app/ramp-pairs.md).

**5. Change the base URL**

Point your app at `https://core.linkio.world/api`.


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