Webhooks
Listen for events so your integration can automatically trigger reactions.
What is a webhook?#
Openfort uses webhooks to push real-time notifications to you about your transactions. All webhooks use HTTPS and deliver a JSON payload that can be used by your application. You can use webhook feeds to do things like:
- Granting users a game item when a transaction is confirmed.
- Store all transaction events in your own database for custom reporting/retention
Steps to receive webhooks#
You can start receiving real-time events in your app using the steps:
- Create a local endpoint to receive requests
- Register your development webhook endpoint
- Test that your webhook endpoint is working properly
- Register your production webhook endpoint
Webhook object#
The webhook object contains the following fields:
_10{_10 "data": {_10 "id": "tin_c502d628-5bb3-42f2-b8f5-62ba4d71df3a",_10 "createdAt": 1689869074,_10 "object": "transactionIntent",_10 "etc":"..."_10 },_10 "type": "transaction_intent.succeeded",_10 "date": 1689869074_10}
Where the type
will be one of the following:
transaction_intent.succeeded
: The transaction intent has arrived on-chain and is confirmed.transaction_intent.failed
: The transaction intent has arrived on-chain and is reverted.transaction_intent.cancelled
: The transaction intent parameters were not met.transaction_intent.broadcast
: The transaction intent was broadcasted.balance. project
: The project balance.balance.contract
: The contract balance.balance.dev_account
: The balance of your backend wallet.
And the data
will be a transaction intent object.
Register your development webhook endpoint#
Register your publicly accessible HTTPS URL in the Openfort dashboard. Then decide the type of webhook you want to receive.
You can create a tunnel to your localhost server using a tool like ngrok. For example: https://8733-191-204-177-89.sa.ngrok.io/webhooks
Test that your webhook endpoint is working properly#
Send a few test transactions to check that your webhook endpoint is receiving the events.
You can specify the number of block confirmations you want to wait before getting notified of a transaction making it on chain. The default is 0 (i.e. as soon as the transaction arrives on chain).
To do so, you need to include the confirmationBlocks
body parameter when creating the transaction intent.