FOR CUSTOM GATEWAYS

Your measurements. Your adapter.

Send measured work without installing our DATUM scraper or changing your gateway’s status page.

Adapter starter kit v0.1.0

A Python uploader with local JSON validation, durable pending reports, identical retries and backoff. You supply the measurement logic and keep control of your infrastructure.

Download adapter kit

SHA-256 checksum · Signature · Source & installation guide ↗

Linux uploads · Python 3.9+ · no runtime dependencies · AGPL-3.0-or-later. Verify the signed checksum. This kit is not a completed integration for any specific gateway.

Start with the compatibility checklist

Agree on accepted-work counters, difficulty units, clock and reset behavior, found-block semantics, and which component builds templates. Pool-built Stratum jobs do not establish miner-controlled templates.

  1. Register and agree the reporting scope with a reviewer.
  2. Send sanitized snapshots and counter definitions through your private application conversation.
  3. Build and validate real interval reports locally; no token or network request is needed for validation.
  4. After approval, use your private token file to submit measurements over HTTPS.

What information we need ↗ · Telemetry contract ↗

What the kit does—and what you supply

The kit preserves one pending report before sending, refuses replacement while it is pending, and retries the exact payload. Your adapter must maintain its own durable measurement baseline and queue while delivery is blocked.

It does not read gateway status pages, logs or RPC, produce counters, prove template control, answer credential challenges or award ratings. The included example is synthetic and deliberately rejected as current telemetry. Never upload synthetic measurements to production.

No SSH access to your machines is required. Keep tokens and state outside source repositories. See the included README for permissions, retry commands and recovery steps.

Register or return to your operator submission →

Check that reporting is working

  1. Baseline saved: a cumulative-counter collector needs a second measurement before it can report an interval.
  2. Measured interval accepted: check your public pool profile for a newer Last report time and reporting coverage.
  3. Reporting; no recent positive work: delivery is working, but recent intervals contain no positive work. Check your counter selection and reporting scope before assuming miners are offline.
  4. Stale or awaiting reports: check your scheduler, collector status and delivery errors. Never paste your provider token into a public support message.

Work-only integrations must keep found: null. An individual block report does not fill in missing interval outcomes. For Prime counter details, read the confirmed Lazarus integration scope; it is not a universal schema for every Prime build.