Skip to content
Substreak
Game Kit

Substreak Game Kit Early access

Your game, on chain. Without a wallet in your game.

Players sign in with a code on their phone, your game reports what happens, and Substreak turns it into quests, rewards and gates. Keys stay in the player's wallet; your build ships no crypto code at all.

Sign in with Substreak

  1. 01

    Game shows a code

    Your Unity, Godot or console build calls one endpoint and shows an 8-character code or a QR.

  2. 02

    Player approves on their phone

    They open the approval page, pick their wallet and sign. No wallet, recovery phrase or extension inside your game.

  3. 03

    Game gets a player token

    Polling returns the player's address and a revocable token. It can read and report, never spend.

Built for game devs

Three calls to go on chain.

  • In-game eventsReport boss kills, matches or crafts. They become game.* events that feed Reflex triggers and quests.
  • Quests → rewardsQuest completions fire ordinary Reflex actions: tokens from your own operator wallet, Discord shout-outs, webhooks.
  • Token gatesAsk whether a player holds a token, a balance or a verified identity before unlocking content.
  • Safe to retryEvery event carries your own id, so sending it twice never counts twice and never pays twice.
import { Substreak } from "@substreak/sdk"

const sub = new Substreak({ baseUrl: "https://your-engine", appKey: "pk_..." })

// 1. Sign in: show the code (or a QR of qrPayload), wait for the player
const { player, playerToken } = await sub.connect.signIn({
  onCode: (c) => showCode(c.userCode, c.verificationUrl),
})

// 2. On your game server (secret key): report what happened
await server.connect.track("boss_defeated", { playerToken }, { boss: "hydra" })

// 3. Gate content by what the player holds
const { allowed } = await sub.connect.checkGate({ playerToken }, rules)