- A Build plan or higher. Endpoints, rules and test deliveries start on Build. On Free, those calls answer with a 400 that names the plan that includes them.
- A public HTTPS URL that reaches your receiver. The URL must start with
https://, serve a valid TLS certificate, and resolve only to public IP addresses. Private, loopback, link-local and carrier-grade NAT addresses are refused when you register the endpoint and again before every delivery, and redirects are not followed. For local development, run an HTTPS tunnel that forwards a public URL tolocalhost:8080.
https://example.com/hooks/0xarchive; replace it with your own URL everywhere.
1. Prepare a receiver
Your receiver reads the raw request body, checks the0xa-signature header with the endpoint’s signing secret, and answers with a 2xx. Both versions below use the signature helper in the 0xArchive SDKs (version 1.12.0 and later) and serve POST /hooks/0xarchive on port 8080.
2. Register the endpoint and send a test
Pick the way you work. Each tab is the whole path, and each uses the receiver from step 1.- With an agent
- In the dashboard
- With the REST API
Ask for the alert you want in one sentence:
Alert me at https://example.com/hooks/0xarchive when a BTC liquidation over $250,000 happens on Hyperliquid. Show me the signing secret, wait until I say my receiver has it, then send a test delivery.The agent estimates how often that rule would have fired, creates the endpoint and the rule, sends a signed test delivery once your receiver is ready, and reports the delivery’s state and the status code your receiver returned. That one request also covers step 4.
1
Connect the MCP server
Add Approve both webhook scopes on the consent screen:
https://mcp.0xarchive.io/mcp as a remote HTTP MCP server and sign in with your client’s built-in OAuth flow; there is no API key to paste. In Claude Code:mcp:webhooks.read for the catalog, your rules, the delivery log and both previews, and mcp:webhooks.write for creating, testing and changing anything. If the consent screen does not offer them, the webhook tools are not enabled on the server you reached; use the dashboard or REST tab instead. MCP server covers other clients.2
Send the request and install the secret
The agent shows the endpoint’s signing secret once. Export it as
OXARCHIVE_WEBHOOK_SECRET, start your receiver, and tell the agent it is ready.3
Or go one step at a time
Create a webhook endpoint for https://example.com/hooks/0xarchive.Store the secret it returns, export it, and start your receiver. Then:
Send that endpoint a test delivery and show me its entry in the delivery log.
3. Check the test delivery
The test worked when both of these are true:- Your receiver accepted it. It printed a
webhook.testevent whosedata.messagereads “Test event from 0xArchive. Your receiver and signature verification are working.” - Its log entry agrees. The delivery’s
stateisdeliveredandlast_status_codeis the status your receiver returned.
data:
id is the delivery_id the test call returned, and event_id is the test’s own event id. If the state is not delivered yet:
pendingwithattemptsat 0 means the delivery has not been attempted yet. Check again in a few seconds.pendingwithattemptsabove 0 means an attempt failed and another is scheduled fornext_attempt_at.last_status_codeandlast_errorsay why. A 400 from the receivers above means the signature check refused the request; the usual cause is a body that was parsed before it was checked, or a secret other than the one this endpoint returned.
4. Create the alert you want
Now point the endpoint at something real: every Hyperliquid BTC liquidation of $250,000 or more. Check how often it would have fired first, then create it.- With an agent
- In the dashboard
- With the REST API
If you sent the one-sentence request in step 2, this rule already exists. Otherwise ask:
Estimate how often Hyperliquid BTC liquidations of $250,000 or more would have alerted me over the last week, then create that rule on my endpoint.The agent calls
estimate_webhook_subscription, then create_webhook_subscription, and reports the stored rule.Every webhook tool the agent can use
Every webhook tool the agent can use
- Read the catalog and your plan:
list_webhook_event_types,get_webhook_limits. - Size a rule before creating it:
estimate_webhook_subscription,dry_run_webhook_subscription. - Endpoints:
create_webhook_endpoint,list_webhook_endpoints,test_webhook_endpoint,enable_webhook_endpoint,rotate_webhook_endpoint_secret,delete_webhook_endpoint. - Rules:
create_webhook_subscription,list_webhook_subscriptions,update_webhook_subscription,resume_webhook_subscription,delete_webhook_subscription. - Watched addresses:
list_webhook_watched_addresses,add_webhook_watched_address,delete_webhook_watched_address. - Deliveries:
list_webhook_deliveries,redeliver_webhook_delivery.
status active and enabled true in GET /v1/webhooks/subscriptions. The dashboard shows it as Active, with Not fired yet until the first match and Last fired after that. The estimate’s typical day tells you how often to expect a delivery; on a quiet day there may be none. Each liquidation it matches arrives at your receiver as a signed market.liquidation event and appears in the delivery log next to the test.
The test needed no rule, so this alert is the only rule you created. It takes one rule from your plan’s allowance, which is eight on Build.
Next step
Add your next alert
Pick another event from the catalog: funding flips, open interest moves, oracle jumps, or the activity of a wallet you follow.