Skip to main content
Privy emits webhooks whenever the status of a transaction sent by a wallet changes. This helps your application track the status of the transaction after it has been broadcasted to the network, and be notified when the transaction is confirmed or reverts.
Webhooks can be tested at no cost in development environments. To enable webhooks in production, upgrade to the Enterprise plan in the Privy Dashboard.
To set up transaction webhooks, follow the guide below.

Setup

Go through our webhooks setup guide first, and make sure you enable the transaction events you want. Privy will emit a signed webhook to this URL whenever your wallets sends/receives a transaction for a registered asset, and will retry delivery if the endpoint does not successfully respond to the original webhook. Go through the webhooks reference for details on how delivery, idempotency, and retries work.

Events reference

Failures are uncommon overall, but more likely to occur on Base and Polygon than other chains (<1% of transactions). To ensure transactions get confirmed, follow our guide on transaction replacement to speed up stalled transactions.
  • Transaction broadcasted refers to when a transaction has been submitted to the network but has not yet been included in a block.
  • Transaction still pending refers to when a transaction has been submitted to the network but is taking longer than expected to be confirmed. To ensure that the transaction gets included, listen to this webhook to trigger transaction speed-ups.
  • Transaction confirmed refers to when a transaction has been included in at least one block that has been confirmed on the network.
  • Transaction execution reverted refers to when a transaction has reverted in execution.
  • Transaction replaced refers to when a transaction has been replaced by another transaction with the same nonce. This is only applicable to EVM chains.
  • Transaction failed refers to when a transaction has been pending for too long, signaling that it will not be included on-chain. This can happen when the gas fee is too low given the current activity on the blockchain and is only triggered for chains that have a defined pending time limit (e.g. Base, Solana, Flow).
  • Transaction provider error refers to when a custodial wallet transaction request has been rejected by the custodian or encountered an error. This can happen when attempting to spend funds that haven’t been fully screened by the custodian yet, or when a transaction does not meet the custodian’s compliance requirements.