> For the complete documentation index, see [llms.txt](https://sdk.metamarket.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sdk.metamarket.tech/evaluate-and-integrate/integration-options.md).

# Integration Options

An external game has two ways to talk to MetaMarket, and both go through the edge gateway: the typed `Game.Sdk` for .NET, or plain HTTP for everything else. They speak the same protocol and get the same behaviour; the difference is only how much you write yourself.

## Game.Sdk (.NET)

Use `Game.Sdk` when you are on .NET and want the request plumbing handled for you: token refresh, the `X-App-Id` header, one typed client per domain, and the directive-processing helper. It is fixed to a single app id at startup and talks only to the gateway. Being fixed client-side is a convenience, not the security boundary: the gateway is provisioned for your app alone and rejects any other app id server-side, so your integration acts only as your app whether you use the SDK or raw HTTP. Your client holds a player device keypair and nothing else; it never sees an app secret. Setup and the full client surface are in the [SDK Guide](/evaluate-and-integrate/sdk-guide.md).

## Raw HTTP (any stack)

Any language with an HTTP client can integrate directly, no package required. You authenticate as the player with the JWT you get from the [auth flow](/evaluate-and-integrate/authentication.md) (`Authorization: Bearer <token>`), set `X-App-Id` on every call except the auth calls, and parse the `ClientResponse` envelope on mutating calls. You do not handle an app secret: the gateway holds it and attaches it to your event calls server-side, exactly as it does for `Game.Sdk`. What you take on that the SDK would otherwise do for you is generating the device keypair and signing the proof-of-possession, token refresh and rotation, running directives, and folding the `effects`/`mutations` channels into your view. The endpoints are the ones documented in the [HTTP API](/evaluate-and-integrate/api-guide.md).

Player JWTs are RS256, issued by the Hub with a 15-minute access-token lifetime and a 30-day refresh lifetime; rotation is key-bound (see [Authentication](/evaluate-and-integrate/authentication.md)).

## First-party modules

MetaMarket's own first-party modules use a separate SDK, `Platform.Sdk`, that addresses several tenants (including the platform's own) from one process, reaching the engine directly rather than through the gateway. That is an internal-only path, operated by MetaMarket (see [Product availability](/overview/current-scope.md)); it is not part of an external game integration and is not documented here.
