SDKs & Downloads
The code that runs redemption on your side. FlipKey sells the license and mints the token; your backend hands over the key. These are the three ways to be that backend — pick one, the rest are optional.
Which one do I need?
.env, npm start.Publisher Starter Kit
A complete redemption backend: key storage, the atomic claim, the link-test handshake, the signed activation report, the Redeem SDK page, CSV key import. Express + viem. SQLite by default; MySQL and Postgres drivers included. Node 20+ (22 LTS recommended).
Have your own stack? Read it as the spec — every route and every signature check is the canonical shape to port.
unzip publisher-starter.zip && cd publisher-starter cp .env.example .env # edit .env — publisher id, webhook secret, contract address, your hostname npm install npm run init-db npm run import-keys -- --file my-keys.csv --drop 42 --platform steam npm start # listens on :3000
sha256sum publisher-starter.zip
The build is reproducible — the same source produces the same bytes on any machine, so this hash is stable until the kit actually changes.
The three values .env asks for: your publisher ID and contract address
come from onboarding; your webhook secret is on the
Webhooks page.
The kit is available to approved publishers — each download is
recorded against your account. Scripting it? Send your API key:
curl -H "X-Api-Key: …" -O /downloads/publisher-starter.zip
Redeem SDK
Drop-in JS + CSS for the redemption page on your own domain. Renders the platform-correct flow for Steam, Xbox, PlayStation, Nintendo, and Epic: connect wallet, sign a domain-bound message, POST to your handler, then redirect / grant / show-key-and-redact. No build step, no npm package — two tags.
loading…
- README.md — start here: attributes, the handler contract, the response shapes
- flipkey-redeem.js — the widget
- flipkey-redeem.css — its styles
- examples/redeem-handler.js — the canonical backend handler
- examples/link-test-handler.js — the HMAC handshake a listing needs to pass
Platform page templates live under /sdk/redeem/templates/ —
steam,
epic,
playstation,
xbox,
nintendo.
Keys never enter an HTML attribute or a query string — your backend returns them in the response body, once.
Watch-Drop SDK
Server-side helper (Node 20+, zero dependencies) for the publisher half of a watch-drop: viewers watch, earn a tier, claim, and FlipKey POSTs you a signed handoff when the ticket is redeemed. The helper verifies the signature, hands you the claim, and acks fulfillment. Copy the one file into your backend — there is no npm package.
loading…
- README.md — start here: the claim payload and the idempotency rule
- flipkey-watchdrop.js — the helper
- examples/handoff-server.js — a complete runnable server
Grant on claim.redemption_id and make it idempotent — a retry must not
grant twice. Point your webhook URL at the route on the
Webhooks page.