Skip to main content
Privy emits webhooks when wallet actions change status, allowing your app to react to swaps, transfers, and earn activity in real time without polling.

Setup

Subscribe to wallet action events from the Configuration > Webhooks page in the Privy Dashboard. For general webhook setup instructions, payload verification, and retry behavior, see the webhooks overview.
Webhooks can be tested at no cost in development environments. To enable webhooks in production, upgrade to the Enterprise plan in the Privy Dashboard.

Statuses

Every wallet action moves through a predictable status lifecycle. Privy emits a webhook at each status update.

Action-specific payloads

All wallet action webhook payloads include a type (event name), status, and action id. Beyond these fields, payloads will include the fields present in that wallet action’s resource.
For example, the payloads for wallet_action.transfer.* webhooks include the fields when calling fetching the transfer action resource via GET /v1/actions/{action_id} where action_id corresponds to a transfer.
View the payloads for specific wallet actions below. Click the webhook event name to be redirected to its payload schema.

Transfer

Swap

Payout

Payouts move crypto out of the wallet on-chain and then settle fiat at the provider, so succeeded means the fiat settled, not just that the crypto moved. failed spans several outcomes that call for different handling, depending on whether the crypto had already left the wallet. See payout failure modes for how to tell them apart, and for the payload fields.

Earn

Deposit

Withdraw

Claim incentive