Phoenix Prediction Docs

Go-Live Checklist

Everything to confirm before real players use Phoenix Prediction on your site

Work through this list for sandbox first, then again for production. Your back office tracks the setup part of it for you.

The Go-Live Tab

In the back office, Manage > Your operator > Go-live shows one checklist per environment, with what to do next on every open item:

ItemDone when
Environment set upThe environment exists, with a key, a wallet URL and sites
Environment activeIts status is Active, so players can open the embed
Verify key registeredYour Ed25519 public key is on file. The tab shows its fingerprint: the first 16 characters are the kid your tokens can carry. During a rotation the environment holds a second key, and a kid may name either
Wallet URL is public httpsThe wallet base URL is a public https URL
Embedding sites listedAt least one site that frames the embed is listed
Wallet test passedYour latest wallet test against this environment cleared, on the current version of the test
Contacts on filePhoenix has a business and a technical contact for you. Send them to your Phoenix contact
Sandbox ready first(Production only) every sandbox item is done

The tab is a checklist, not a switch: an active environment takes launches whether or not every item is done. Treat an open item as a blocker.

Launch Tokens

  • Production tokens are minted by your production backend only, with the production private key, and env: "prod".
  • Every token, visitor and player, carries a currency your operator offers.
  • Player tokens carry a stable sub, a name, and an avatar ({ "kind": "none" } is fine).
  • iat is set, exp is a few minutes to a few hours later, and a fresh jti is generated per token if you send one.
  • If your site has its own language switcher, tokens carry language and your page calls setLanguage on a switch (see Languages).
  • Per-player button choices ride in cfg (see Player Buttons).

The Embed on Your Pages

  • Every page that frames the embed is served over https, and its exact origin, or its www twin, is listed on the environment.
  • Your page handles auth.requested (sign-in, then setToken with a player token), deposit.requested and profile.requested.
  • Your page handles token.expiring and session.expired with setToken (see Sessions and Token Refresh). With the raw bridge, your ready lists reload.requested and your page reloads on it.
  • After any balance change outside the embed, your page sends balanceUpdate.
  • Your look is saved for production (copy it from sandbox in the Appearance Studio), and any theme or branding your page passes on top is passed on every launch (see Customization).

Then try it by hand in sandbox: browse as a visitor, sign in from a Buy button, place and cancel an order, deposit, let a token expire and drop the network, and switch language if you offer more than one.

Wallet

  • The wallet test cleared against each environment, on the current version of the test, with that environment's test player.
  • Your wallet verifies Phoenix's signature on every call against the key at /.well-known/signing-key.pem (see Security).
  • Every money move is idempotent on its key: a repeat returns the stored result and moves nothing (see Idempotency).
  • Every success response carries a numeric processed_at that rises per player (see processed_at).
  • Your wallet never refuses a capture, a release or a credit: only reserve_cash may be declined (see Errors).
  • If the environment uses wallet API 1.1, zero-amount final credits are accepted (see Positions).
  • Your finance team can reconcile by idempotency key, per environment (see Reconciliation).

Your Back Office

  • Your staff are invited with the right roles (see Staff and Roles).
  • Display name, languages, formatting country and order limits for this environment are correct under Manage > Your operator.
  • Production Curation shows what you want your players to see (see Curation).
  • Someone owns the Queue every day, so results on your own events are entered on time (see The Queue).