Developer Docs

Integrate with BloqSync

Everything you need to watch on-chain activity and pipe real-time blockchain events into your own systems — via the REST API or outbound webhooks.

Overview

BloqSync exposes a REST API for managing watched addresses, subscriptions, and blockchain events, plus an outbound webhook system that pushes matching events to your endpoint in real time. The typical integration flow is:

  1. Authenticate and obtain an access token.
  2. Add the address(es) you want to monitor.
  3. Create a subscription with filters describing which events matter to you.
  4. Register a webhook so BloqSync pushes matching events to your endpoint (or poll the events API instead).
Base URL: https://backend.bloqsync.com/api/v1

Authentication

All endpoints below (aside from /auth/* and /public/*) require a JWT access token, obtained via login or registration, sent as a bearer token on every request.

POST https://backend.bloqsync.com/api/v1/auth/login
Content-Type: application/json

{
  "email": "you@company.com",
  "password": "••••••••"
}

→ { "access_token": "...", "refresh_token": "...", "user": { ... } }
Authorization: Bearer <access_token>

Tokens expire; call POST /auth/refresh with a valid (or recently expired) access token to mint a new one.

Watched Addresses

BloqSync only processes chain activity for addresses you're explicitly watching. Add an address before creating a subscription for it.

GET/watched-addresses

List your watched addresses

POST/watched-addresses

Watch a new address on a given blockchain

DELETE/watched-addresses/{'{id}'}

Stop watching an address

Subscriptions & Filters

A subscription defines which events on a watched address should trigger a notification/webhook. Filters are matched against every blockchain event BloqSync ingests.

GET/subscriptions

List your subscriptions

POST/subscriptions

Create a subscription with an EventFilter

GET/subscriptions/{'{id}'}

Get a subscription

PUT/subscriptions/{'{id}'}

Update a subscription's filters

POST/subscriptions/{'{id}'}/toggle

Enable or disable a subscription

DELETE/subscriptions/{'{id}'}

Delete a subscription

Example filter, sent as the subscription's filters field:

{
  "blockchains": ["ethereum", "polygon"],
  "event_types": ["Transfer*"],
  "to_addresses": ["0xYourWatchedAddress"],
  "min_value": "1000000000000000000",
  "direction": "incoming"
}

Blockchain Events

Every transaction and contract log BloqSync observes for a watched address is stored and queryable, independent of whether a subscription matched it — useful for backfills or building your own history views.

GET/events

List/filter blockchain events

GET/events/{'{id}'}

Get a single event

GET/events/address/{'{blockchain}'}/{'{address}'}

Events for a specific address

GET/events/transaction/{'{blockchain}'}/{'{hash}'}

Events for a specific transaction

Webhooks

Register an HTTPS endpoint and BloqSync will POST a JSON payload to it whenever a matching event fires, instead of you having to poll the events API.

GET/webhooks

List your webhooks

POST/webhooks

Register a webhook (up to 10 per user)

GET/webhooks/{'{id}'}

Get a webhook

PUT/webhooks/{'{id}'}

Update a webhook

POST/webhooks/{'{id}'}/toggle

Enable or disable a webhook

POST/webhooks/{'{id}'}/test

Send a test delivery

DELETE/webhooks/{'{id}'}

Remove a webhook

Creating a webhook:

POST https://backend.bloqsync.com/api/v1/webhooks
Authorization: Bearer <access_token>
Content-Type: application/json

{
  "url": "https://api.yourapp.com/webhooks/bloqsync",
  "name": "Production webhook",
  "event_types": ["Transfer", "Swap"],
  "retry_count": 3,
  "timeout_seconds": 30
}

→ 201 Created
{
  "webhook": { "id": "...", "url": "...", ... },
  "secret": "whsec_...",
  "message": "Save this secret securely. It will not be shown again."
}

BloqSync signs every delivery with HMAC-SHA256 over the raw JSON body, using the secret returned at creation time:

POST https://api.yourapp.com/webhooks/bloqsync
Content-Type: application/json
X-Webhook-Event: Transfer
X-Webhook-Signature: <hex hmac-sha256(secret, body)>

{
  "event": "Transfer",
  "timestamp": 1710000000,
  "data": { "blockchain": "ethereum", "from": "0x...", "to": "0x...", "value": "..." }
}

Verify authenticity by recomputing the HMAC-SHA256 of the raw request body with your webhook secret and comparing it to X-Webhook-Signature. Failed deliveries are retried (up to retry_count times, exponential backoff) before landing in the dead-letter queue.

SDKs

Official client libraries wrap authentication and the endpoints above:

  • TypeScript / JavaScript — sdk/typescript
  • Python — sdk/python
  • Rust — sdk/rust

Full API Reference

Every endpoint, request/response schema, and error shape is documented in the live OpenAPI spec, generated directly from the backend and kept in sync with each release.

Open Swagger UI