Rotate signing secret
curl --request POST \
--url https://dev.api.withconvexity.com/v1/indexer/subscriptions/{id}/rotate-secret \
--header 'Authorization: Bearer <token>'import requests
url = "https://dev.api.withconvexity.com/v1/indexer/subscriptions/{id}/rotate-secret"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://dev.api.withconvexity.com/v1/indexer/subscriptions/{id}/rotate-secret', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": true,
"message": "Signing secret rotated",
"data": {
"id": "665f0a3b2c1e4a0012ab34cd",
"projectId": "proj_9f2c1a8e",
"network": "BASE",
"contractAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"webhookUrl": "https://api.merchant.example/webhooks/indexer",
"events": [
"transfer",
"burn"
],
"status": "active",
"createdBy": "proj_9f2c1a8e",
"createdAt": "2026-07-01T10:22:31.004Z",
"updatedAt": "2026-07-01T10:22:31.004Z",
"lastDeliveryAt": "2026-07-03T08:14:02.771Z",
"deliveredCount": 128,
"failedCount": 3,
"droppedCount": 0,
"signingSecret": "whsec_3a9f8c2b1d7e4f60a5c8e9b2d1f4a7c0",
"secretWarning": "Store this signing secret securely; it will not be shown again. Use it to verify the X-Indexer-Signature header."
}
}Blockchain Events
Rotate signing secret
Generates a new signing secret and invalidates the old one. Requires indexer.subscription.rotate_secret. The response includes the new signingSecret once.
POST
/
v1
/
indexer
/
subscriptions
/
{id}
/
rotate-secret
Rotate signing secret
curl --request POST \
--url https://dev.api.withconvexity.com/v1/indexer/subscriptions/{id}/rotate-secret \
--header 'Authorization: Bearer <token>'import requests
url = "https://dev.api.withconvexity.com/v1/indexer/subscriptions/{id}/rotate-secret"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://dev.api.withconvexity.com/v1/indexer/subscriptions/{id}/rotate-secret', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": true,
"message": "Signing secret rotated",
"data": {
"id": "665f0a3b2c1e4a0012ab34cd",
"projectId": "proj_9f2c1a8e",
"network": "BASE",
"contractAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"webhookUrl": "https://api.merchant.example/webhooks/indexer",
"events": [
"transfer",
"burn"
],
"status": "active",
"createdBy": "proj_9f2c1a8e",
"createdAt": "2026-07-01T10:22:31.004Z",
"updatedAt": "2026-07-01T10:22:31.004Z",
"lastDeliveryAt": "2026-07-03T08:14:02.771Z",
"deliveredCount": 128,
"failedCount": 3,
"droppedCount": 0,
"signingSecret": "whsec_3a9f8c2b1d7e4f60a5c8e9b2d1f4a7c0",
"secretWarning": "Store this signing secret securely; it will not be shown again. Use it to verify the X-Indexer-Signature header."
}
}⌘I
