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

# Go-Live Checklist

> Make sure you have completed these steps before going live with the ZBD Earn SDK.

Before releasing your game to production, work through both lists below. The first decides whether your rewards will actually convert; the second decides whether the integration works.

## Conversion readiness

An integration can be technically perfect and still underperform. Confirm all three of the [things that drive conversion](/earn/sdk/player-comms#what-makes-rewards-convert) are in place before you ship.

<Steps>
  <Step title="Your UI/UX shows and explains how rewards work">
    Players can see their balance and progress in your own game UI, and know what they've earned and why it's real. See the [Player Communication Guide](/earn/sdk/player-comms).
  </Step>

  <Step title="You're rewarding enough to be worth coming back for">
    Rewards are sized off actual revenue, with a route to raise withdrawal limits from real monetization signals — and your player IDs are linked in both directions if you're using MMP data. See [Increasing Limits with MMP Data](/earn/sdk/mmp-postbacks).
  </Step>

  <Step title="You know your audience">
    Your UA is aimed at players who want to earn, or would be interested in earning.
  </Step>
</Steps>

## Technical readiness

<Steps>
  <Step title="Set up attestation">
    Ensure attestation is fully configured for both Android and iOS. For iOS, this includes enabling App Attest on your provisioning profile. See the [Attestation Set Up](/earn/sdk/attestation-setup) guide.
  </Step>

  <Step title="Handle maintenance mode">
    Your game should gracefully handle ZBD platform maintenance periods by checking the `maintenance` flag on **every** SDK response. See [Maintenance Mode](/earn/sdk/error-handling#maintenance-mode).
  </Step>

  <Step title="Handle unsupported regions">
    Confirm your game handles initialization failures gracefully when a player is in an unsupported region (`completion.type == "region"`). Hide all Earn-related UI and functionality, or show a message that Earn isn't available in their region — do not show the retry modal, as there is no retry path. See [Error Handling](/earn/sdk/error-handling).
  </Step>

  <Step title="Review app store requirements">
    Complete the privacy declarations both stores require for the data the SDK collects. See the [iOS App Store](/earn/sdk/ios-app-store) and [Android App Store](/earn/sdk/android-app-store) guidelines.
  </Step>

  <Step title="Test your game">
    Make sure you have thoroughly tested your game before going live. At a minimum, verify the following:

    * **Test init** — confirm the SDK initializes successfully.
    * **Test modal shows** — confirm the ZBD modal appears correctly.
    * **Test cashout options** — confirm the payout options configured for your app appear in the modal.
    * **Test linking ZBD** — if ZBD is one of your cashout options, walk through account linking end to end. This is a common source of go-live bugs: linking sends the player out and back again, so a misconfigured [URL scheme](/earn/sdk/url-scheme) or tracking link will leave them stranded instead of returning them to your game. Verify they land back in the game with the account linked.
    * **Test earning** — confirm rewards are sent and received.
    * **Test withdrawal limit increases** — confirm your withdrawal limit increases as you play.
    * **Test withdrawal** — confirm the withdrawal flow completes successfully.
    * **Test attestation** — confirm attestation is working correctly. To do this, verify with your Customer Success Manager that attestation is enabled for your app, then check that your withdrawal limit increases as you play. If attestation is failing, the withdrawal limit will not increase and you will see errors in Android Logcat or the iOS Console.
  </Step>
</Steps>
