accounts.created
Fired when a new user is created in your app (first authentication).accounts.linked
Fired when a user is linked to a partner external ID via the identity assertion flow.wallets.ready
Fired when a server-managed wallet is provisioned for a user (both EVM and Solana addresses are available).trades.placed
Fired when a user submits a trade.orderId in this event is the quote id (quote_…). Query the API for the breakdown.
trades.filled
Fired when a trade order reaches a terminal fill state. One event per venue-level order fill.trades.fee_reconciled
Fired once per self-custody trade when its app fee reaches a final state. Self-custody fees need the user’s second signature and an on-chain confirmation after the fill, so this lands a few seconds aftertrades.filled. Wait for this event instead of polling for the fee. It is sent for
every self-custody trade, with status: "none" when no fee applied.
deposits.confirmed
Fired when an on-chain token transfer into a user’s managed wallet is confirmed. One event per (chain, transaction, user). Bridge legs and venue settlement payouts are excluded, so this only reflects money the user (or a third party) sent in.markets.resolved
Fired once per app when a prediction market resolves. Contains a summary — use the pull endpoint for the full list of affected users.
More than one
winner: true means a split or voided market. Read payoutPerShare and
refundAtCost before showing the user an amount. See
Market resolution & voids.
Querying affected users
Use the SDK to paginate through affected users. PassincludeEmails: true to get email addresses
where available.
This endpoint returns the current set of users with non-zero positions, not an immutable
snapshot at resolution time. If positions are modified after resolution, the results may differ
from the
affectedUsersCount in the webhook.