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

# Prepare for go-live

By the end of this guide, you'll have a production API key, a registered webhook URI, and your integration pointing at Mesh's production environment — ready to launch.

<Check>
  **Before you start**

  * Your integration is fully tested and working in sandbox
  * You've completed Mesh's business verification process (reach out to your Mesh representative if you haven't started this yet)
</Check>

## Register a production webhook callback URI

Production webhook events are separate from sandbox — registering a callback URI for sandbox doesn't carry over. Go to **Account > API keys > Webhooks > Production** in the Mesh dashboard to register your production callback URI. Setting up webhooks for the first time? See [Transfer status webhooks](/resources/webhooks) for full implementation details, including HMAC signature verification.

## Update to the latest SDK version

Mesh regularly ships SDK updates that improve conversion, reliability, and UX. Before go-live, make sure you're installing the latest version — and check [SDK release notes & versioning](/resources/sdk-release-notes) to see what's new in each release and why it's worth updating.

<div style={{ margin: "0.85rem 0" }}>
  <div style={{ display: "flex", alignItems: "center", gap: "0.5rem", marginBottom: "0.45rem", flexWrap: "wrap" }}>
    <span aria-hidden="true" style={{ fontSize: "16px", lineHeight: 1, flexShrink: 0 }}>🌐</span>
    <span style={{ fontWeight: 600 }}>Web</span>
    <span>:</span>
    <a href="https://github.com/FrontFin/mesh-web-sdk/releases">mesh-web-sdk</a>
  </div>

  <div style={{ display: "flex", alignItems: "center", gap: "0.5rem", marginBottom: "0.45rem", flexWrap: "wrap" }}>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#888888" style={{ width: "16px", height: "16px", flexShrink: 0 }}>
      <path d="M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701" />
    </svg>

    <span style={{ fontWeight: 600 }}>iOS</span>
    <span>:</span>
    <a href="https://github.com/FrontFin/mesh-ios-sdk/releases">mesh-ios-sdk</a>
  </div>

  <div style={{ display: "flex", alignItems: "center", gap: "0.5rem", marginBottom: "0.45rem", flexWrap: "wrap" }}>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#3DDC84" style={{ width: "16px", height: "16px", flexShrink: 0 }}>
      <path d="M18.4395 5.5586c-.675 1.1664-1.352 2.3318-2.0274 3.498-.0366-.0155-.0742-.0286-.1113-.043-1.8249-.6957-3.484-.8-4.42-.787-1.8551.0185-3.3544.4643-4.2597.8203-.084-.1494-1.7526-3.021-2.0215-3.4864a1.1451 1.1451 0 0 0-.1406-.1914c-.3312-.364-.9054-.4859-1.379-.203-.475.282-.7136.9361-.3886 1.5019 1.9466 3.3696-.0966-.2158 1.9473 3.3593.0172.031-.4946.2642-1.3926 1.0177C2.8987 12.176.452 14.772 0 18.9902h24c-.119-1.1108-.3686-2.099-.7461-3.0683-.7438-1.9118-1.8435-3.2928-2.7402-4.1836a12.1048 12.1048 0 0 0-2.1309-1.6875c.6594-1.122 1.312-2.2559 1.9649-3.3848.2077-.3615.1886-.7956-.0079-1.1191a1.1001 1.1001 0 0 0-.8515-.5332c-.5225-.0536-.9392.3128-1.0488.5449zm-.0391 8.461c.3944.5926.324 1.3306-.1563 1.6503-.4799.3197-1.188.0985-1.582-.4941-.3944-.5927-.324-1.3307.1563-1.6504.4727-.315 1.1812-.1086 1.582.4941zM7.207 13.5273c.4803.3197.5506 1.0577.1563 1.6504-.394.5926-1.1038.8138-1.584.4941-.48-.3197-.5503-1.0577-.1563-1.6504.4008-.6021 1.1087-.8106 1.584-.4941z" />
    </svg>

    <span style={{ fontWeight: 600 }}>Android</span>
    <span>:</span>
    <a href="https://github.com/FrontFin/mesh-android-sdk/releases">mesh-android-sdk</a>
  </div>

  <div style={{ display: "flex", alignItems: "center", gap: "0.5rem", marginBottom: "0.45rem", flexWrap: "wrap" }}>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#61DAFB" style={{ width: "16px", height: "16px", flexShrink: 0 }}>
      <path d="M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z" />
    </svg>

    <span style={{ fontWeight: 600 }}>React Native</span>
    <span>:</span>
    <a href="https://github.com/FrontFin/mesh-react-native-sdk/releases">mesh-react-native-sdk</a>
  </div>

  <div style={{ display: "flex", alignItems: "center", gap: "0.5rem", flexWrap: "wrap" }}>
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#02569B" style={{ width: "16px", height: "16px", flexShrink: 0 }}>
      <path d="M14.314 0L2.3 12 6 15.7 21.684.013h-7.357zm.014 11.072L7.857 17.53l6.47 6.47H21.7l-6.46-6.468 6.46-6.46h-7.37z" />
    </svg>

    <span style={{ fontWeight: 600 }}>Flutter</span>
    <span>:</span>
    <a href="https://github.com/FrontFin/mesh-flutter-sdk/releases">mesh-flutter-sdk</a>
  </div>
</div>

Developers rarely revisit docs after launch, so set up automatic notifications now: on your SDK's GitHub repo, click **Watch → Custom → Releases** to get an email whenever a new version ships. If your repo is on GitHub, you can also [enable Dependabot](/resources/sdk-release-notes#enable-dependabot) to automatically open a PR in your repo when a new SDK version is published.

## Generate a production API key

You can generate a production key in the Mesh developer dashboard in **Account > API keys**. You can grant each key Read-only permissions, or Read & Write (most common, and required for any use case involving transfers). If you haven't done so already, you'll need to complete the following first:

* Secure your account with 2FA
* Complete Mesh's business verification process

<Frame>
  <img src="https://mintcdn.com/mesh-40/Y-QnDCJ7fcNNqJ5o/images/image-24.png?fit=max&auto=format&n=Y-QnDCJ7fcNNqJ5o&q=85&s=e17b9970cc702cb2c9ed66fa5585639f" alt="Image" width="1398" height="838" data-path="images/image-24.png" />
</Frame>

## Point to Mesh's production environment

Now that you're set up for production, update your integration to point to Mesh's production base URL: [https://integration-api.meshconnect.com](https://integration-api.meshconnect.com).

## Update your Content Security Policy

If your app enforces a Content Security Policy, two things need to be in place before launch:

* **`frame-src`:** Add `*.meshconnect.com` to allow the Mesh Link iframe to load.
* **`connect-src` (Tron only):** If you support Tron transfers, add `https://tron.twnodes.com`, `https://trx.mytokenpocket.vip`, and `https://api.trongrid.io` — the SDK calls these RPC endpoints directly from the browser.

For full details and troubleshooting, see [Common errors](/resources/common-errors).

## Let's test together

You should always thoroughly test the integration before going live, and we'd love to help. Ideally Mesh has a testing account in your app, is added to Testflight, etc. We've seen lots of Mesh implementations and have picked up plenty of tips and tricks along the way. Reach out to your Mesh representative to set up a testing session with the Mesh team — we want to make sure your launch goes smoothly.

## What's next

You're live! Once you're up and running, explore the **Extend** guides to unlock additional capabilities, or visit **Further resources** for API references and integration-specific docs.

***

<Accordion title="AI coding reference (llms.txt)">
  *AI coding reference — a compact summary of this page's APIs, parameters, and patterns for use by AI coding assistants (following the [llms.txt standard](https://llmstxt.org/)). Human readers can safely ignore this.*

  **llms.txt — Prepare for go-live**

  Four steps to launch in production: register production webhook URI → update to the latest SDK version → generate production API key → update base URL.

  **Latest SDK version**: Check you're on the newest SDK before launch — see /resources/sdk-release-notes for current versions and release notes. GitHub releases pages (versions + release notes live here): Web ([https://github.com/FrontFin/mesh-web-sdk/releases](https://github.com/FrontFin/mesh-web-sdk/releases)), iOS ([https://github.com/FrontFin/mesh-ios-sdk/releases](https://github.com/FrontFin/mesh-ios-sdk/releases)), Android ([https://github.com/FrontFin/mesh-android-sdk/releases](https://github.com/FrontFin/mesh-android-sdk/releases)), React Native ([https://github.com/FrontFin/mesh-react-native-sdk/releases](https://github.com/FrontFin/mesh-react-native-sdk/releases)), Flutter ([https://github.com/FrontFin/mesh-flutter-sdk/releases](https://github.com/FrontFin/mesh-flutter-sdk/releases)). Stay updated automatically: GitHub Watch → Custom → Releases, or Dependabot.

  **Production API key**: Dashboard > Account > API keys > API keys > Production. Prerequisites: 2FA enabled, Mesh business verification complete.

  **Production webhook URI**: Dashboard > Account > API keys > Webhooks > Production. Sandbox webhooks do not carry over — register separately. Only one production URI at a time (can deactivate and replace).

  **Production base URL**: `https://integration-api.meshconnect.com`

  (Sandbox: `https://sandbox-integration-api.meshconnect.com`)

  **Content Security Policy**: If your app enforces a CSP, add `*.meshconnect.com` to `frame-src` (Link iframe). For Tron transfers, also add `https://tron.twnodes.com`, `https://trx.mytokenpocket.vip`, `https://api.trongrid.io` to `connect-src` (browser-side RPC calls).

  **Recommendation**: Schedule a joint testing session with your Mesh representative before launch.
</Accordion>
