This page documents all TypeScript types used in the Stacked API.
These types are available in the @pixels-online/pixels-analytics-node-sdk package.
Represents an offer instance for a specific player.
JavaScript/TypeScript C# Go
status"expired" | "claimed" | "claimable" | "viewed" | "surfaced"
expiresAt?Date | undefined
Status"expired" | "claimed" | "claimable" | "viewed" | "surfaced"
Status"expired" | "claimed" | "claimable" | "viewed" | "surfaced"
The lifecycle status of a player offer.
type PlayerOfferStatus =
| 'inQueue' // Queued but not yet surfaced (max slots reached)
| 'surfaced' // Active and tracking progress
| 'viewed' // Player has seen the offer
| 'claimable' // Ready to claim rewards
| 'claimed' // Rewards already claimed
| 'expired' ; // Time limit reached before completion
Represents a reward that can be distributed to players.
JavaScript/TypeScript C# Go
kind"discount" | "loyalty_currency" | "trust_points" | "exp" | "coins" | "item"
rewardId?string | undefined
Kind"discount" | "loyalty_currency" | "trust_points" | "exp" | "coins" | "item"
Kind"discount" | "loyalty_currency" | "trust_points" | "exp" | "coins" | "item"
Identifies a reward by its kind and optional ID for asset resolution.
JavaScript/TypeScript C#
kind"discount" | "loyalty_currency" | "trust_points" | "exp" | "coins" | "item"
rewardId?string | undefined
Kind"discount" | "loyalty_currency" | "trust_points" | "exp" | "coins" | "item"
Custom asset data (name and image) for rewards, returned by the asset resolver.
The type of reward being distributed.
type RewardKind =
| 'item' // In-game items (e.g., weapons, potions)
| 'coins' // In-game currency
| 'exp' // Experience points
| 'trust_points' // Reputation/trust score
| 'loyalty_currency' ; // Premium/loyalty currency
Player object returned by campaigns endpoints, containing both snapshot and data.
JavaScript/TypeScript C# Go
Complete snapshot of a player's profile and progression.
JavaScript/TypeScript C# Go
referredById?string | undefined
refereeRewardsClaimable?boolean | undefined
username?string | undefined
snapshotLastUpdatednumber
offersLastChecked?number | undefined
daysInGameLastUpdatednumber
dynamic?Record < string, string | number > | undefined
stakedTokens?Record < string, object >
currencies?Record < string, object >
levels?Record < string, object >
quests?Record < string, object >
trustScore?number | undefined
trustLastUpdated?number | undefined
achievements?Record < string, object >
memberships?Record < string, object >
tags?string[] | undefined
tagsLastUpdated?number | undefined
RefereeRewardsClaimablebool ?
SnapshotLastUpdateddouble
DaysInGameLastUpdateddouble
DynamicRecord < string, string | number >?
StakedTokensRecord < string, object >
CurrenciesRecord < string, object >
LevelsRecord < string, object >
QuestsRecord < string, object >
AchievementsRecord < string, object >
MembershipsRecord < string, object >
CryptoWallets(string Address ? , double LastUpdated ? )[]
RefereeRewardsClaimable* bool
SnapshotLastUpdatedfloat64
OffersLastChecked* float64
DaysInGameLastUpdatedfloat64
Dynamic* Record < string, string | number >
StakedTokensRecord < string, object >
CurrenciesRecord < string, object >
LevelsRecord < string, object >
QuestsRecord < string, object >
AchievementsRecord < string, object >
MembershipsRecord < string, object >
Player's currency data with visual metadata.
JavaScript/TypeScript C# Go
Currency information including balance and display metadata.
JavaScript/TypeScript C# Go
balance?number | undefined
Conditions that must be met for an offer to become claimable.
JavaScript/TypeScript C# Go
login?boolean | undefined
loginStreak?number | undefined
levels?Record < string, object >
stakedTokens?Record < string, object >
currencies?Record < string, object >
minTrustScore?number | undefined
maxTrustScore?number | undefined
minDaysInGame?number | undefined
achievements?Record < string, object >
memberships?Record < string, object >
quests?Record < string, object >
BuyItem{ id : string; name : string; amount ?: number; } ?
SpendCurrency{ id : string; name : string; amount ?: number; } ?
DepositCurrency{ id : string; name : string; amount ?: number; } ?
LevelsRecord < string, object >
StakedTokensRecord < string, { name: string; min ?: number; } >?
CurrenciesRecord < string, object >
AchievementsRecord < string, object >
MembershipsRecord < string, object >
QuestsRecord < string, object >
BuyItem* { id: string; name: string; amount ?: number; }
SpendCurrency* { id: string; name: string; amount ?: number; }
DepositCurrency* { id: string; name: string; amount ?: number; }
LevelsRecord < string, object >
StakedTokens* Record < string, { name: string; min ?: number; } >
CurrenciesRecord < string, object >
AchievementsRecord < string, object >
MembershipsRecord < string, object >
QuestsRecord < string, object >
Tracks a player's progress towards completing offer conditions.
JavaScript/TypeScript C# Go
buyItem?number | undefined
spendCurrency?number | undefined
depositCurrency?number | undefined
currentLoginStreak?number | undefined
login?boolean | undefined
CurrentLoginStreakdouble ?
CurrentLoginStreak* float64
Conditions that determine who sees which offers.
JavaScript/TypeScript C# Go
maxDaysInGame?number | undefined
andTags?string[] | undefined
orTags?string[] | undefined
notTags?string[] | undefined
programmatic?boolean | undefined
loginStreak?number | undefined
levels?Record < string, object >
stakedTokens?Record < string, object >
currencies?Record < string, object >
minTrustScore?number | undefined
maxTrustScore?number | undefined
minDaysInGame?number | undefined
achievements?Record < string, object >
memberships?Record < string, object >
quests?Record < string, object >
LevelsRecord < string, object >
StakedTokensRecord < string, { name: string; min ?: number; } >?
CurrenciesRecord < string, object >
AchievementsRecord < string, object >
MembershipsRecord < string, object >
QuestsRecord < string, object >
LevelsRecord < string, object >
StakedTokens* Record < string, { name: string; min ?: number; } >
CurrenciesRecord < string, object >
AchievementsRecord < string, object >
MembershipsRecord < string, object >
QuestsRecord < string, object >
A single condition based on dynamic player fields.
JavaScript/TypeScript C# Go
A group of dynamic conditions with logical operators.
JavaScript/TypeScript C# Go
Operators for comparing dynamic field values.
type DynamicConditionOperator =
| '==' // Equals
| '!=' // Not equals
| '>' // Greater than
| '>=' // Greater than or equal
| '<' // Less than
| '<=' // Less than or equal
| 'has' // Contains (for strings/arrays)
| 'not_has' ; // Does not contain
Logical operators linking conditions in a group.
type DynamicConditionLink =
| 'AND' // Both conditions must be true
| 'OR' // Either condition can be true
| 'AND NOT' ; // First true AND second false
These types are used when tracking player events with the Analytics SDK.
Parameters for tracking player sign-in events.
JavaScript/TypeScript C# Go
username?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for tracking player sign-up events.
JavaScript/TypeScript C# Go
kind?"start" | "complete" | undefined
platformobject & string | "x" | "sms" | "email" | "discord" | "wallet"
platform_identifierstring
username?string | undefined
date_signed_up?number | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
Kind"start" | "complete" ?
Platformobject & string | "x" | "sms" | "email" | "discord" | "wallet"
ExtraDictionary < string, object >?
Kind* "start" | "complete"
Platformobject & string | "x" | "sms" | "email" | "discord" | "wallet"
Extra* map[string]interface{}
Complete player snapshot data.
JavaScript/TypeScript C# Go
username?string | undefined
entityKind?string | undefined
trust_score?number | undefined
date_signed_up?number | undefined
crypto_wallets?{ address : string; }[] | undefined
achievements?{ id : string; count ?: number; }[] | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
LinkedUsers(string PlayerId, string Kind ? )[]
Memberships(string Id, double Count ? , double ExpiresAt ? )[]
CryptoWallets(string Address)[]
Quests(string Id, double Completions ? )[]
Levels(string SkillId, double LevelValue)[]
Achievements(string Id, double Count ? )[]
ExtraDictionary < string, object >?
LinkedUsers* []struct { string PlayerId; string Kind ? }
CryptoWallets* []struct { string Address }
Quests* []struct { string Id; float64 Completions ? }
Levels* []struct { string SkillId; float64 LevelValue }
Achievements* []struct { string Id; float64 Count ? }
Extra* map[string]interface{}
Parameters for currency transactions (earn/spend/deposit/withdraw).
JavaScript/TypeScript C# Go
kind"spend" | "earn" | "withdraw" | "deposit"
context?string | undefined
from_id?string | undefined
in_game_balance?number | undefined
bundle_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
Kind"spend" | "earn" | "withdraw" | "deposit"
ExtraDictionary < string, object >?
Kind"spend" | "earn" | "withdraw" | "deposit"
Extra* map[string]interface{}
Parameters for item transactions (gain/lose).
JavaScript/TypeScript C# Go
context?string | undefined
currency_id?string | undefined
currency_amount?number | undefined
from_id?string | undefined
in_game_balance?number | undefined
bundle_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for membership/subscription transactions.
JavaScript/TypeScript C# Go
kind"gain" | "renew" | "revoke"
currency_id?string | undefined
currency_amount?number | undefined
duration_ms?number | undefined
free_trial?boolean | undefined
billing_grace_ms?number | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
Kind"gain" | "renew" | "revoke"
ExtraDictionary < string, object >?
Kind"gain" | "renew" | "revoke"
Extra* map[string]interface{}
Parameters for tracking quest/funnel progression.
JavaScript/TypeScript C# Go
step_number?number | undefined
step_id?string | undefined
kind?"abort" | "in_progress" | "complete" | "restart" | "start"
extra?{ [key: Lowercase < string > ]: any; } | undefined
Kind"abort" | "in_progress" | "complete" | "restart" | "start"
ExtraDictionary < string, object >?
Kind"abort" | "in_progress" | "complete" | "restart" | "start"
Extra* map[string]interface{}
Parameters for tracking player level/skill progression.
JavaScript/TypeScript C# Go
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for achievement transactions.
JavaScript/TypeScript C# Go
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for tracking referrals.
JavaScript/TypeScript C# Go
referrer_id?string | undefined
offer_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for updating player trust score.
JavaScript/TypeScript C# Go
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for linking/unlinking player identifiers.
JavaScript/TypeScript C# Go
kind?"revalidate" | "revoke" | "verify" | "update" | "unlink" | "link"
platformobject & string | "x" | "sms" | "email" | "discord" | "wallet"
platform_identifierstring
old_platform_identifier?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
Kind"revalidate" | "revoke" | "verify" | "update" | "unlink" | "link"
Platformobject & string | "x" | "sms" | "email" | "discord" | "wallet"
OldPlatformIdentifierstring ?
ExtraDictionary < string, object >?
Kind"revalidate" | "revoke" | "verify" | "update" | "unlink" | "link"
Platformobject & string | "x" | "sms" | "email" | "discord" | "wallet"
OldPlatformIdentifier* string
Extra* map[string]interface{}
Parameters for adding/removing player tags.
JavaScript/TypeScript C# Go
Parameters for tracking custom context events.
JavaScript/TypeScript C# Go
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for setting dynamic player fields.
JavaScript/TypeScript C# Go
operation?"set" | "increment" | undefined
Operation"set" | "increment" ?
Operation* "set" | "increment"
Webhook payload received when a player claims rewards via the Stacked iframe.
JavaScript/TypeScript C# Go
campaignKind"offer" | "referral"
description?string | undefined
CampaignKind"offer" | "referral"
CampaignKind"offer" | "referral"
Transaction source/target types.
type TxSourceTarget =
| 'player'
| 'store'
| 'marketplace'
| 'auction'
| ( string & {});
These are simplified/specialized versions of the base Analytics SDK types, used by consumer-facing SDK methods.
Parameters for earning currency (simplified from PixelsCurrencyTxParams).
JavaScript/TypeScript C# Go
context?string | undefined
in_game_balance?number | undefined
bundle_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for spending currency (simplified from PixelsCurrencyTxParams).
JavaScript/TypeScript C# Go
context?string | undefined
in_game_balance?number | undefined
bundle_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for withdrawing currency (simplified from PixelsCurrencyTxParams).
JavaScript/TypeScript C# Go
context?string | undefined
in_game_balance?number | undefined
bundle_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for depositing currency (simplified from PixelsCurrencyTxParams).
JavaScript/TypeScript C# Go
context?string | undefined
from_id?string | undefined
in_game_balance?number | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for gaining items (simplified from PixelsItemTxParams).
JavaScript/TypeScript C# Go
context?string | undefined
currency_id?string | undefined
currency_amount?number | undefined
in_game_balance?number | undefined
bundle_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for losing items (simplified from PixelsItemTxParams).
JavaScript/TypeScript C# Go
context?string | undefined
currency_id?string | undefined
currency_amount?number | undefined
in_game_balance?number | undefined
bundle_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for gaining multiple items at once.
JavaScript/TypeScript C# Go
items{ id : string; amount : number; }[]
context?string | undefined
currency_id?string | undefined
currency_amount?number | undefined
in_game_balance?number | undefined
bundle_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
Items(string Id, double Amount)[]
ExtraDictionary < string, object >?
Items[]struct { string Id; float64 Amount }
Extra* map[string]interface{}
Parameters for losing multiple items at once.
JavaScript/TypeScript C# Go
items{ id : string; amount : number; }[]
context?string | undefined
currency_id?string | undefined
currency_amount?number | undefined
in_game_balance?number | undefined
bundle_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
Items(string Id, double Amount)[]
ExtraDictionary < string, object >?
Items[]struct { string Id; float64 Amount }
Extra* map[string]interface{}
Parameters for gaining achievements.
JavaScript/TypeScript C# Go
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for losing achievements.
JavaScript/TypeScript C# Go
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for gaining memberships.
JavaScript/TypeScript C# Go
currency_id?string | undefined
currency_amount?number | undefined
duration_ms?number | undefined
free_trial?boolean | undefined
billing_grace_ms?number | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for losing/revoking memberships.
JavaScript/TypeScript C# Go
currency_id?string | undefined
currency_amount?number | undefined
duration_ms?number | undefined
free_trial?boolean | undefined
billing_grace_ms?number | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for starting a funnel/quest.
JavaScript/TypeScript C# Go
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for tracking funnel/quest progression.
JavaScript/TypeScript C# Go
step_number?number | undefined
step_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for completing or aborting a funnel/quest.
JavaScript/TypeScript C# Go
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for tracking referrals (consumer version with referrer_id).
JavaScript/TypeScript C# Go
referrer_id?string | undefined
offer_id?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for adding tags to players.
JavaScript/TypeScript C# Go
Parameters for removing tags from players.
JavaScript/TypeScript C# Go
Parameters for tracking player-to-player trades.
JavaScript/TypeScript C# Go
Trade data for a single player in a trade.
JavaScript/TypeScript C# Go
items?{ id : string; amount : number; }[] | undefined
currencies?{ id : string; amount : number; }[] | undefined
Items(string Id, double Amount)[]
Currencies(string Id, double Amount)[]
Items* []struct { string Id; float64 Amount }
Currencies* []struct { string Id; float64 Amount }
Parameters for linking another user/player to the current user.
JavaScript/TypeScript C# Go
entity_kind?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Parameters for unlinking a previously linked user/player.
JavaScript/TypeScript C# Go
entity_kind?string | undefined
extra?{ [key: Lowercase < string > ]: any; } | undefined
ExtraDictionary < string, object >?
Extra* map[string]interface{}
Reserved event names used by the Analytics SDK.
type ReservedPixelsAnalyticsEvent = "sign_in"
| "sign_up"
| "identifier_link"
| "trust_score"
| "membership_tx"
| "currency_tx"
| "item_tx"
| "funnel_step"
| "level_up"
| "refer_user"
| "achievement_tx"
| "player_snapshot"
| "modify_tags"
| "blockchain_staking_staked_v2"
| "blockchain_staking_unstaked_v2"
| "call_context"
| "set_dynamic_field"
| "delete_dynamic_field" ;
Custom parameters for events (all keys must be lowercase).
interface PixelsCustomParams {
[ key : `${ Lowercase < string > }` ] : any ;
}