Identify players and verify their identity

Players can write without an account. When you identify them, their history follows them from one device to another.

🧩 SDKs & integration2 min read

On this page
  1. Anonymous by default
  2. Unverified identity
  3. Verified identity with a JWT
  4. Verified identity with Steam
  5. Verified players only

Anonymous by default

On first launch, each device gets a random token and an anonymous player. The conversation is kept on that device (Keychain on iOS, localStorage on the web).

Unverified identity

You can pass your own user id, name or email. Your team sees them, but without proof they are only labels: history is not merged across devices.

Verified identity with a JWT

  1. On your server, sign a short-lived JWT with the app's identity secret (Settings → Apps → your app). Algorithm HS256, claims user_id and exp (optional name, email).
  2. Pass it to the SDK: Inngame.IdentifyWithToken(jwt) in Unity, identify(userId:token:) on iOS, Inngame.identify({ token }) on the web.
jwt.sign({ user_id: user.id, name: user.name },
  process.env.INNGAME_IDENTITY_SECRET, { algorithm: "HS256", expiresIn: "10m" });

The player is now verified: their conversation is the same on every device.

Verified identity with Steam

On Steam builds (Unity), connect Steam in Integrations → Steam with your App ID and a publisher Web API key, then call Inngame.IdentifySteam(...). The server checks the ticket with Steam.

Verified players only

In Settings → Apps → Identity you can require a verified identity: unverified players can read the chat but not send messages.

Details: Player identity docs.

Still need help?

Chat with us: our assistant answers right away, and hands you to the team when it can't.