PerformanceBlog
Tempo MCP serverGive agents search and read tools for Tempo docs
Skip to content
LogoLogo

Webhooks

Get signed callbacks when onchain events happen.

List webhooks

GET/v1/webhooks

List your webhook subscriptions.

Query Parameters

cursor
string

Opaque keyset cursor from a previous response (nextCursor); pass it back verbatim to fetch the next page. Omit for the first (head) page.

ExampleWzIzNDU2Nzg5LDBd
include
string[]

Comma-separated optional resources to embed, e.g. totalCount.

Values
totalCount
Example["totalCount"]
limit
integer·min 5·max 200·default 10

How many items to return per page (5–200, default 10).

Example10
page
integer·min 1·max 9007199254740991

Page number, 1-indexed (positional pagination for page-numbered access; page=1 is the head page). Mutually exclusive with cursor, and page × limit must be at most 10000 rows — use cursor pagination for deeper traversal. Pages are positional, so rows arriving at the head of a live feed can shift page contents.

Example1

Responses

Create webhook

POST/v1/webhooks

Create a webhook subscription so Tempo can POST signed onchain events to your URL. The signing secret is shown only once, and each call creates a separate subscription.

Request Body

application/json

Responses

Get webhook

GET/v1/webhooks/{id}

Get one webhook subscription by its ID.

Path Parameters

idRequired
string

Webhook subscription ID (wh_…).

Examplewh_001718668800000_V1StGXR8Z5jdHi6B2myTq

Responses

Update webhook

PATCH/v1/webhooks/{id}

Update a webhook subscription URL, filters, or delivery status.

Path Parameters

idRequired
string

Webhook subscription ID (wh_…).

Examplewh_001718668800000_V1StGXR8Z5jdHi6B2myTq

Request Body

application/json
context
object

New human context, or null to clear it.

destination

New delivery destination for future events (URL or Slack channel).

filters
object

New filters to apply to future webhook events.

Example{"address":"0x20c0000000000000000000008f5425160ebe5525"}
status
string

New lifecycle status, such as pausing or resuming delivery.

Values
activedisabledpaused
Exampleactive

Responses

Delete webhook

DELETE/v1/webhooks/{id}

Delete a webhook subscription and stop future deliveries immediately.

Path Parameters

idRequired
string

Webhook subscription ID (wh_…).

Examplewh_001718668800000_V1StGXR8Z5jdHi6B2myTq

Responses

List webhook event types

GET/v1/webhooks/event-types

See which onchain event types Tempo can POST to your webhook URL.

Responses

List webhook deliveries

GET/v1/webhooks/{id}/deliveries

List delivery attempts for a webhook subscription.

Path Parameters

idRequired
string

Webhook subscription ID (wh_…).

Examplewh_001718668800000_V1StGXR8Z5jdHi6B2myTq

Query Parameters

cursor
string

Opaque keyset cursor from a previous response (nextCursor); pass it back verbatim to fetch the next page. Omit for the first (head) page.

ExampleWzIzNDU2Nzg5LDBd
include
string[]

Comma-separated optional resources to embed, e.g. totalCount.

Values
totalCount
Example["totalCount"]
limit
integer·min 5·max 200·default 10

How many items to return per page (5–200, default 10).

Example10
page
integer·min 1·max 9007199254740991

Page number, 1-indexed (positional pagination for page-numbered access; page=1 is the head page). Mutually exclusive with cursor, and page × limit must be at most 10000 rows — use cursor pagination for deeper traversal. Pages are positional, so rows arriving at the head of a live feed can shift page contents.

Example1

Responses

Ping webhook

POST/v1/webhooks/{id}/ping

Send a signed ping event to your webhook URL to test delivery and signature verification.

Path Parameters

idRequired
string

Webhook subscription ID (wh_…).

Examplewh_001718668800000_V1StGXR8Z5jdHi6B2myTq

Responses

Retry webhook delivery

POST/v1/webhooks/{id}/deliveries/{deliveryId}/retry

Replay a previous webhook delivery and update the delivery result.

Path Parameters

deliveryIdRequired
string

Delivery ID (whd_…) you want Tempo to replay.

Examplewhd_001718668800000_8oQ2pVmZ4kKxWnLcRfTbN
idRequired
string

Webhook subscription ID (wh_…).

Examplewh_001718668800000_V1StGXR8Z5jdHi6B2myTq

Responses

Webhook event delivery

WebhookPOSTevent

When an event you subscribed to happens, Tempo sends this signed message to your webhook URL as an HTTP POST (the same shape is used by POST /webhooks/:id/ping so you can test your endpoint). Always verify the tempo-signature header before trusting the body, then reply with any 2xx status to confirm you received it. If your endpoint returns a non-2xx status, times out, or redirects, Tempo retries with increasing delays; an endpoint that keeps failing is eventually disabled.

Header Parameters

tempo-signatureRequired
string

Signature proving the message really came from Tempo. An HMAC-SHA256 of the body using your webhook secret, formatted t=<unix>,v1=<hex>. Verify this before trusting the payload.

tempo-event-idRequired
string

A unique, stable id for this event (evt_…). The same event may be delivered more than once, so use this id to skip duplicates.

tempo-event-typeRequired
string

What happened: token:transfer, transaction:included, log:emitted, block:created, or ping.

Request Body

application/json

Responses

2xxDelivery acknowledged.