Webhook security
Signature verification (Ed25519)
Webhook authenticity and integrity are ensured using Ed25519 asymmetric signatures.Key material from TechWolf
For each webhook endpoint, TechWolf provides:- Public key (Ed25519) - used by you to verify webhook signatures
Signed message format
The signature is computed over:X-Signature-V1 header:
X-Signature-V1 can contain several signatures. Validate the webhook by verifying that at least one signature matches using any of the currently active public keys. This allows key updates without downtime.
Security responsibilities
You must:- Verify the Ed25519 signature using the provided public key
- Validate timestamp freshness to prevent replay attacks (e.g. reject requests where the
X-Signature-Timestampis older than 5 minutes) - Reject invalid or stale requests with a 401 response
Python example: signature verification
OAuth2 endpoint authentication (optional)
In addition to signature verification, TechWolf can authenticate webhook requests to your endpoint using OAuth2. This protects against unauthorised callers reaching your endpoint. OAuth2 is optional and does not replace signature verification; authenticity and integrity are always guaranteed by Ed25519.Request format
When OAuth2 is enabled, TechWolf sends an access token in the Authorization header:Enabling OAuth2
To enable OAuth2 for webhook delivery, you must provide:| Item | Description |
|---|---|
| OAuth2 Token URL | Your token endpoint |
| Grant type | client_credentials |
| Client credentials for TechWolf | client_id, client_secret |
| Scope | As required by your endpoint |
| Additional parameters | Any other fields your token endpoint expects (e.g. audience, resource, or custom parameters). Provide name and value per parameter. |