Skip to main content

XMDT (Identity Verification)

XMDT is identity verification for copub games: full name, date of birth, phone number (OTP-verified), and consent. It is a separate, standalone SDKalogame-kyc-sdk — not part of SDK v2 and not something you get by integrating v2.

Dev environment only

Everything on this page and the pages under it describes the dev environment (api-xmdt.dev.alogame.vn). Production has not been provisioned yet — do not point a live build at it.

What it looks like

The SDK's own screen — a bottom sheet in portrait, a centered dialog in landscape. Identical on Android and iOS.

XMDT screen, portraitXMDT screen, landscape

Why this exists

Player identity data (name, date of birth, phone) must never transit your game server. Copub game servers are self-hosted and outside Alogame's control, so there is no way to audit what a game server logs or retains. XMDT's entire design point is that this data goes device → Alogame directly, and your server's only involvement is one signed call that never carries any of it.

Who implements what

ImplementsSees player PII?
Your game serverOne signed HTTP call to mint a session token — its response also tells you whether the player is already verifiedNo
Your game client (Android/iOS)Three SDK calls: init, setGameRole, showNo — the SDK owns its own screen
Player's deviceEverything else — the actual name/DOB/phone/OTP form

Your client never talks to Alogame's identity API directly, and your server never sees a name, date of birth, phone number, or OTP code. Both sides only ever handle opaque tokens.

The flow

The last step is a UI signal, not proof: a modified client can report Success at will. Don't gate on it alone — at the actual point you need to trust the answer (letting a player into a match, for example), call POST /xmdt/session again and read xmdtCompleted from that response. It's the same HMAC-signed, server-to-server call either way; the field is authoritative because it comes straight from Alogame, never relayed through the player's device. See Server Integration.

Next steps

  • Server Integration — the one call your server makes, both to mint a session and to check real verification status.
  • Android — SDK install and the three-call integration.
  • iOS — SDK install and the three-call integration.
  • Unity — UPM package wrapping both native SDKs; no Gradle or Xcode editing.
  • Cocos Creator — pure TypeScript, no native code at all; runs in the Editor without a device.

When to call show()

This is entirely your decision — the SDK does not enforce a gate and ekycx does not know or care when you call it. Common choices:

  • At first login, before letting a new player into the game.
  • Before a player's first purchase.
  • From a settings/account menu, optionally.

Whichever you choose, the session your server mints tells the SDK whether the form is dismissible (xmdtRequired) — see Server Integration.