Horizon data service providers

data-services · Arbitrum

Provider registrations for five community Horizon data services: Dispatch, Seahorn, SDSCE, Mainline and the Nuthatch Data Service. One pair of tables per service.

statusavailable
categoryGraph Protocol
tier0 · beachhead
complexitytrivial
discoveryfixed addresses

What it indexes

Each event becomes a decoded SQL table.

ProviderRegistered, ProviderDeregistered

Lodestar's service census reads it. Its sealed data is on the public mirror.

Run it yourself

The nest is a git repository: ABIs, views and a manifest. One command scaffolds a local copy, and nuthatch dev in it backfills and follows the chain against your own RPC.

nuthatch init --from https://github.com/nuthatch-org/data-services-nest

Source: nuthatch-org/data-services-nest.

Published data

We run this nest and publish its sealed segments to the public mirror, each stored under the hash of its contents. The figures are what the mirror listed on 2026-11-11, when this page was built; Play reads the mirror as it is now.

tables4
segments0
rows sealed0
sealed through blocknothing sealed yet
dataset02bd0eba7421efe1e3f7736db8ef2533033cdc18dbebecf78ab1b695fff2f64a
views from nuthatch-org/data-services-nest at 9696cb4

Query it in your tab →

Authored views

The nest’s own SQL over its event tables, as published. Open one to read it.

dispatch_activityviews/10-example.sql
views/10-example.sql
-- views/10-example.sql - an authored derivation this nest computes. Uncomment to enable.
--
-- Read-only SQL over your nest's tables (tip ∪ sealed history), recomputed per query. Query it
-- by name via `nuthatch sql` or the MCP; describe it in semantic.toml `[view.<name>]`.
--
-- Footguns (see the builder skill's views.md):
--   • reserved-word columns like "from"/"to" must be double-quoted
--   • big-int amounts use `<col>_dec` for SUM/AVG; ids, nonces and hashes stay on the raw column
--     (`_dec` is NULL for a full-width uint256)
--
-- Example over this nest's `dispatch__provider_deregistered` table:
--
-- CREATE VIEW dispatch_activity AS
--   SELECT count(*) AS events,
--          min(block_number) AS first_block,
--          max(block_number) AS last_block
--   FROM "dispatch__provider_deregistered";

Tables on the mirror

tablerowssegmentsfrom blockto block
dispatch__provider_deregistered 0 0
dispatch__provider_registered 0 0
nuthatch_data_service__provider_registered 0 0
seahorn__provider_registered 0 0