Linq.gg · Authentication Profile

Linqgg Authentication

Authentication

LinQ does not use OAuth 2.0 or OpenID Connect. Access is granted by opaque bearer tokens minted by the LinQ auth services, seeded by a per-game secret key issued out of band at integration time. There are two access tokens and two auxiliary secrets.

Linq.gg declares 5 security scheme(s) across its OpenAPI definitions.

CompanyGamingPaymentsWalletsLoyaltyFintechReal-Money GaminggRPCGeolocationAuthentication
Methods: Schemes: 5 OAuth flows: API key in:

Security Schemes

Access Token
Wallet Token
Private Secret Key
Public Secret Key / Mobile SDK Secret Key
Secret / User Token

Source

Authentication Profile

linqgg-authentication.yml Raw ↑
generated: '2026-07-19'
method: searched
source: https://docs.linq.gg/modules/auth/tokens
docs: https://docs.linq.gg/modules/auth
description: >-
  LinQ does not use OAuth 2.0 or OpenID Connect. Access is granted by opaque
  bearer tokens minted by the LinQ auth services, seeded by a per-game secret
  key issued out of band at integration time. There are two access tokens and
  two auxiliary secrets.
transport:
  protocol: grpc
  header: authorization
  format: 'Bearer <token>'
  example_metadata: '{ meta: { authorization: `Bearer ${accessToken}` } }'
  tls_required: true
schemes:
- id: access_token
  kind: bearer
  name: Access Token
  issued_by: AuthGameService.SignInGame
  description: >-
    Minted for a game user from the game's private secret key plus the game's
    internal user id. Signs user transactions in conditional-anonymity mode.
  lifetime: unlimited
  storage: persist on the user profile in the game backend
  grants: anonymous-mode operations — balances, deposits, entry fees, tournament rewards
  restrictions:
  - cannot transfer funds to the wallet account or other games
  - subject to a maximum stored-funds limit (anonymous total deposit limit 20.00)
- id: wallet_token
  kind: bearer
  name: Wallet Token
  issued_by: AuthUserService.SignInGameUser
  description: >-
    Issued after the user authorizes through the LinQ app and links their game
    account to a real wallet account. Same header shape as Access Token, wider
    rights.
  lifetime: unlimited
  storage: persist on the user profile; prefer over Access Token when both are held
  recommended_pattern: 'getAuthorization(user.walletToken ?? user.accessToken)'
  grants: all operations including KYC, wallet transfer, withdrawal to bank or card
- id: private_secret_key
  kind: apiKey
  name: Private Secret Key
  usage: >-
    Server-to-server. Passed as the game_token field of SignInGameRequest to
    verify requests coming from the game backend and obtain a user Access Token.
  issued: before integration begins, out of band
  handling: >-
    Supply as an environment variable; docs recommend Google Secret Manager or
    equivalent. Must never be shipped in client code.
- id: public_secret_key
  kind: apiKey
  name: Public Secret Key / Mobile SDK Secret Key
  usage: >-
    Initializes the LinQ Unity SDK and verifies requests originating from the
    front end. Set via LinqSDK.InitSDK(remoteUrl, secretKey) or the
    LinqSettings.asset editor config.
  issued: before integration begins, out of band
- id: secret_token
  kind: temporary
  name: Secret / User Token
  issued_by: AuthUserService.SignUpGameUser
  description: >-
    Short-lived token handed to the LinQ app (via deep link or Keychain) to
    initiate account linking. Exchanged by SignInGameUser for a Wallet Token.
  lifetime: single use, for the linking handshake only
linking_flows:
- id: deep_link
  description: >-
    Game embeds the user_token in a LinQ deep link. Falls back to the App Store
    when the app is not installed.
  schemes:
    stage: 'linq-stg://?user_token={token}'
    production: 'linq://?user_token={token}'
  associated_domains:
    stage: 'https://a.stg.linq.gg?user_token={token}'
    production: 'https://a.linq.gg?user_token={token}'
- id: keychain
  description: >-
    Apple-only fallback used when the LinQ app is not yet installed. The game
    writes the token to a shared Keychain access group; the LinQ app reads it
    after install and authorizes the game.
  access_groups:
    stage: $(AppIdentifierPrefix)games.galactica.linq.stg.shared
    production: $(AppIdentifierPrefix)games.galactica.linq.shared
  api: LinqUnity.Keychain.setAuthUserToken(token, accessGroup)
  limitations:
  - Apple ecosystem only; no Android equivalent published yet
  - requires both apps to share one App Store account (game transferred to the
    Galactica Games account)
- id: sandbox_helper
  description: >-
    HelpersService.VerifyPlayerToken emulates the user's in-app confirmation so
    the linking handshake can be automated in integration tests. Test mode only.
unauthenticated_operations:
- linq.geo.restrictions.v2.RestrictionsService.IsAccessAllowed
notes:
- No /.well-known/openid-configuration or /.well-known/oauth-authorization-server
  is published; there is no OAuth scope surface, so no scopes/ artifact exists.
- Tokens carry no published expiry, so there is no documented refresh flow.

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/linqgg-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.