Stream your ledger data in real-time to analytics systems like ClickHouse, Elasticsearch, or custom HTTP endpoints. This lets you build dashboards, enable full-text search, or trigger external workflows—without polling the API.
Architecture#
The export system has two components: exporters define where data goes (driver + connection config), and pipelines connect a ledger to an exporter. Multiple ledgers can share the same exporter.
What gets streamed#
Every change to your ledger is recorded as a log entry. Pipelines stream these logs to your chosen destination:
| Event | Description |
|---|---|
SET_METADATA | Log entry for setting metadata on an account or transaction |
NEW_TRANSACTION | Log entry for creating a new transaction with associated account metadata |
REVERTED_TRANSACTION | Log entry for reverting an existing transaction |
DELETE_METADATA | Log entry for deleting metadata from an account or transaction |
INSERTED_SCHEMA | Log entry for inserting a new ledger schema |
COMMITTED_TRANSACTIONS | External event published when transactions are committed to the ledger |
SAVED_METADATA | External event published when metadata is saved on an entity |
DELETED_METADATA | External event published when metadata is deleted from an entity |
Quick start#
Here's the complete flow to start streaming data:
1. Create an exporter (defines where data goes)
Response:
2. Create a pipeline (connects a ledger to the exporter)
Pipelines start automatically. Logs begin streaming immediately.
Exporter drivers#
Your endpoint receives a JSON array of log entries:
Return a 2xx status code to acknowledge receipt.
Managing exporters#
List all exporters:
Get a specific exporter:
Delete an exporter:
Managing pipelines#
Check pipeline status#
The lastLogID shows how far the pipeline has progressed:
Stop and restart#
Pipelines remember their position. Stop and start without losing progress:
Stop streaming:
Resume streaming:
Replay from the beginning#
Reset the pipeline to re-stream all logs:
This replays all historical logs. Make sure your destination can handle duplicates or clear it first.
Delete a pipeline#
You cannot delete an exporter that has active pipelines connected to it. Delete or reassign the pipelines first.
Scaling with multiple pipelines#
You can attach multiple ledgers to the same exporter. This helps avoid rate limits on external systems, spread load, and maintain independent data flows per ledger.
Repeat for each ledger — all pipelines share the same exporter.