Documentation Index
Fetch the complete documentation index at: https://utexo-e7ed9bd0-feat-faucet-bot.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Utexo Cloud supports webhooks to notify your application about events occurring in your RLN nodes. When an event is triggered, ThunderStack sends aPOST request to your configured endpoint with a JSON payload and a cryptographic signature header for verification.
Setting Up a Webhook
Option 1: Via Node Settings
- Navigate to your node page and click Settings.
- Locate the Webhook URL field.
- Enter the HTTPS endpoint where you want to receive events.
- Save the settings. Your public key for signature verification is shown in the same section.
Option 2: Via API at Node Creation
When creating a node via the Cloud API, includewebhookUrl in the settings object:
How Webhooks Work
When a node state changes or an operation completes, ThunderStack sends aPOST request to your endpoint including:
- A JSON payload with the event data and
nodeId - A
X-ThunderStack-Signatureheader containing a cryptographic signature
Node Status Values
Webhook events reflect the following node status transitions:| Status | Description |
|---|---|
RUNNING | Node is fully operational |
STARTING | Node is starting up |
PAUSED | Node has been paused |
FAILED | Node encountered an error |
IN_PROGRESS | An operation is currently in progress |
Verifying Webhook Signatures
All webhook requests include aX-ThunderStack-Signature header that should be validated to confirm authenticity.
Step 1: Retrieve the Public Key
Step 2: Validate the Signature
Use the public key to verify theX-ThunderStack-Signature header on each incoming request.
Step 3: Validate the Payload
Ensure thenodeId in the payload matches the expected node to prevent spoofing.
Security Best Practices
- Use HTTPS — Your webhook endpoint must use HTTPS to protect data in transit.
- Verify the signature — Validate the
X-ThunderStack-Signatureheader using the public key on every request. - Validate the node ID — Confirm the
nodeIdin the payload matches the node you expect.