Overview
The Audience Builder Program includes in-game quests hosted on your game’s Audience Builder page in Immutable Play. Players sign up using Immutable Passport (simple social sign-on) to:- Access the Immutable Play platform, game quests, and leaderboard competitions
- Track questing and leaderboard progress
- Receive rewards
- Link social accounts to their Immutable Play account
No Passport integration required in-game. Your game doesn’t need to implement Immutable Passport as its login/wallet system or integrate any Immutable chain infrastructure. Simply track player progress using your existing backend and notify Immutable when a quest is completed via a lightweight API call.
Responsibilities
| Task | Owner | Description |
|---|---|---|
| Campaign & quest design | Studio + Immutable | Collaborate to define quest structure, reward types, and timing |
| Player onboarding & linking | Immutable | Players link an identifier matched to your backend during onboarding |
| Game login & player tracking | Studio | Use your existing login and backend systems |
| Quest completion submission | Studio | Track quest progress in-game and send completions to Immutable’s Quest API |
| Reward matching & delivery | Immutable | Match identifier to Passport and deliver rewards |
How to Integrate
Define Quests
Work with Immutable to agree on quests (e.g., “Play 30 arena matches”) and their rewards
Get API Access
Create an API key on Immutable Hub and share your Org ID
Submit Quest Completion
When a quest is completed, send a POST request to the Immutable Quest API with the player’s linked identifier
Supported Identifiers
Players can link one of these accounts to their Passport. Use this identifier when submitting quest completions.| Account Type | Account ID | Example |
|---|---|---|
telegram | Telegram user ID | 1191097385 |
discord | Discord user ID | 1374611107196440770 |
email | Email address | [email protected] |
metamask | MetaMask wallet address | 0xc257274276a4e539741ca11b590b9447b26a8051 |
passport | Passport wallet address | 0xa9361c0dd68e1c3a69b43f646133fdab8d3859a2 |
epic_games | Epic Games user ID | a26eca91eca340a7a8cadb886e7c1190 |
Quest Types
In-Game Quests
Track gameplay actions: matches played, levels completed, items collected
Social Quests
Follow on Twitter, join Discord, share content, engage with posts
Referral Quests
Invite friends, reach referral milestones, build your network
On-Chain Quests
Verify blockchain actions: first trade, first mint, collection completion
Leaderboards
Gamify your community with competitive rankings:| Leaderboard | Criteria | Rewards |
|---|---|---|
| All-Time | Total points earned | Founder badges, exclusive items |
| Weekly | Points this week | Featured spotlight, bonus rewards |
| Referral | Friends referred | VIP access, revenue share |
Developer Reference
Complete Quests
This API endpoint completes a quest. The user is identified by their account type and account ID.Quest completions are stored for non-Passport users. If the identified user is not yet a registered Immutable Passport user, the quest completion will be stored with a reference to the account type and ID supplied in the request. When the user registers with Immutable Passport and links that account, they will be instantly rewarded and credited for this quest (and any other stored completions). This means user accounts do not need to be current Passport users when making requests.
Prerequisites
- Immutable API Key: Create one in Immutable Hub
- Game ID: Provided during onboarding
Required Quest: Login and Play Game
As part of the Quest API integration, partners are required to implement the Login and Play Game quest, identified by thelogin-play-game external_id.
This quest is configured as a daily recurring quest and should be triggered every time a player logs in. While triggered on login, it tracks participation on a daily basis, providing valuable insights into player engagement and recurring behavior patterns.
Endpoint
- Production
- Sandbox
Authentication
| Header | Description |
|---|---|
x-immutable-api-key | Required. Your Immutable API key |
x-api-key | Optional. For rate limiting |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
external_id | string | Yes | The quest identifier (e.g., "catch-3-fish", "login-play-game") |
account_type | string | Yes | "telegram", "discord", "email", "metamask", "passport", or "epic_games" |
account_id | string | Yes | The player’s linked account ID |
reference | string | No | Idempotency key to prevent duplicate completions |
completion_time | string | No | RFC3339 UTC timestamp (e.g., "2026-01-08T12:00:00Z") |
Example Request
Success Response
Status Code:200 OK
Error Codes
| Code | Description |
|---|---|
200 | Success |
400 | Bad Request - Invalid request body or parameters |
401 | Unauthorized - Invalid or missing API key |
403 | Forbidden - API key doesn’t have access to this game |
404 | Not Found - Game or quest not found |
409 | Conflict - Duplicate completion (reference already used) |
500 | Internal Server Error |
504 | Gateway Timeout |
Best Practices
Always use reference for idempotency
Always use reference for idempotency
Include a unique
reference for each quest completion to prevent duplicate submissions. A good pattern is {playerId}-{questId}-{timestamp}.Implement the login-play-game quest
Implement the login-play-game quest
This daily recurring quest is required and provides valuable engagement data. Trigger it on every player login.
Handle errors gracefully
Handle errors gracefully
If the API returns a 409 Conflict, the completion was already recorded—don’t retry. For 5xx errors, implement exponential backoff.
Validate account IDs
Validate account IDs
Ensure the account ID format matches the account type before submitting. Discord IDs are numeric strings, Telegram IDs are numeric, and wallet addresses are hex strings starting with
0x.