EnfinitOSEnfinitOS
DevelopersTransit & broadcast
Production-ready scaffold

Satellite SDK

Adapter-mostly: Dialog / iDirect + Comtech ground segments. Translates carrier / MODCOD / footprint into substrate-agnostic vocabulary.

@enfinitos/sdk-satelliteSubstrate SatelliteTypeScript
Install

Get the SDK

npm install @enfinitos/sdk-satellite

About this status badge

Typed, tested, documented, and wired to the EnfinitOS platform endpoints that exist today. Vendor-side SDK integrations (Broadsign / VIOOH / DJI / Tizen / Alexa / Twilio / Stripe / etc.) land per-customer at pilot integration time — those bring the renderer/transport/exchange-specific code; the EnfinitOS half is ready.

README

The developer-facing documentation in full

The same README the SDK package ships with — rendered here at build time so what you read matches exactly what you install.

@enfinitos/sdk-satellite

EnfinitOS reference SDK for the SATELLITE substrate.

This is an adapter-mostly SDK: a thin operator-side wrapper that translates ground-segment-modulator vocabulary (carriers, MODCODs, beams, footprints, Es/N0, BER) into the EnfinitOS platform's substrate-agnostic proof and footprint vocabulary.

Architecture

            ┌──────────────────────────────────────┐
            │     EnfinitOSSatelliteClient         │
            │  (ts-core/src/satelliteClient.ts)    │
            │                                      │
            │  ┌────────────────────────────────┐  │
            │  │  EnfinitOSRendererClient       │  │
            │  │  (proof-of-play, health, etc.) │  │
            │  └────────────────────────────────┘  │
            │  ┌────────────────────────────────┐  │
            │  │  FootprintReporter             │  │
            │  │  → POST /broadcast/footprint   │  │
            │  └────────────────────────────────┘  │
            │  ┌────────────────────────────────┐  │
            │  │  ComplianceEmitter             │  │
            │  │  → ITU-R / FCC / Ofcom packs   │  │
            │  └────────────────────────────────┘  │
            └────────────────┬─────────────────────┘
                             │ attach(modulator)
            ┌────────────────▼─────────────────────┐
            │  ModulatorAdapter                    │
            │  (interface — vendor-specific impl)  │
            └──┬──────────────────────────────┬────┘
               │                              │
       ┌───────▼──────┐                ┌──────▼───────┐
       │ Dialog NMS   │                │ Comtech      │
       │ (ST Eng /    │                │ CDM-625 /    │
       │  iDirect)    │                │ CDM-700      │
       └──────────────┘                └──────────────┘

2026 platform reality

Modulation

  • DVB-S2X (ETSI EN 302 307-2) is the only modulation new builds should select. The SDK accepts DVB-S2 carriers from legacy modulators for retrofit deployments, but the compliance emitters flag them with legacy: true so the operator sees the drift.

Ground-segment vendors

  • ST Engineering iDirect (acquired Newtec in 2019; product now branded "Dialog") — dominant on commercial VSAT + DTH. The SDK ships a Dialog NMS REST API adapter.
  • Comtech EF Data — dominant on direct-to-home + military point-to-point. SNMP-first (CDM-625 MIB) with a REST shim on firmware 3.x+. The SDK ships an adapter against both control planes.

Carrier topology

  • AMC-SCPC — Adaptive Modulation & Coding Single Channel Per Carrier. The mainstream commercial DTH and point-to-point default.
  • MCPC — Multiple Channels Per Carrier. High-density transponder fills.

The SDK does NOT decide which topology a carrier runs as — the operator declares it on each SatelliteCarrier and the SDK reports it through.

Regulatory evidence

  • ITU-R BR IFIC — the operator-side payload for the bi-weekly BR IFIC submission funnel. Articles 9 (geostationary coordination) and 11 (notification) of the Radio Regulations.
  • FCC Part 25 (US) — 47 CFR §25.273 quarterly transmission reports + §25.218 EIRP-density attestation.
  • Ofcom (UK) — Wireless Telegraphy Act 2006 s.8 satellite earth-station licences.
  • (ANFR France / BNetzA Germany follow the same pack shape.)

The SDK does NOT file with regulators. It assembles the operator-side payload; operators funnel the pack into their authorised filing pipeline.

Platform-side endpoints

  • POST /broadcast/footprintneeds-future-API-work. The platform's existing satellite ephemeris service consumes claims from operator rights filings; the dedicated runtime push endpoint for live carrier state has not landed yet. The SDK ships with the endpoint configurable so early adopters can stand up a thin receiver while the route lands.
  • POST /runtime/event-ingestexisting. Per-carrier UP/DOWN/ QUALITY events ride this endpoint as substrate-tagged PlayEvents.
  • POST /runtime/health-ingestexisting. Teleport-level health heartbeats.

Getting started

import {
  EnfinitOSSatelliteClient,
  type SatelliteCarrier,
  type BroadcastFootprint,
} from "@enfinitos/sdk-satellite";
import { DialogAdapter } from "@enfinitos/sdk-satellite-dialog-idirect";

const carrier: SatelliteCarrier = {
  carrierId: "GH22-FWD-K1",
  centerFrequencyMhz: 14_250,
  symbolRateMsps: 30,
  rollOff: 0.05,
  modcod: "32APSK 4/5",
  modulation: "DVB-S2X",
  topology: "AMC-SCPC",
};

const footprint: BroadcastFootprint = {
  coveredTerritories: ["GB", "IE", "FR", "DE"],
};

const client = new EnfinitOSSatelliteClient({
  apiBaseUrl: "https://api.enfinitos.com",
  satelliteId: "GH-22",
  teleportId: "BetzdorfNorth",
  authToken: process.env.ENFINITOS_TOKEN!,
  carriers: [carrier],
  operatorRef: "SES-S.A.",
});

await client.start();

// Manual reporting
await client.reportCarrierUp(carrier, footprint);
await client.reportSignalQuality(carrier, 12.4, 1e-7);

// Or attach a modulator and let it stream
const dialog = new DialogAdapter({
  nmsBaseUrl: "https://nms.example.com",
  modulatorId: "hub-01",
  auth: {
    kind: "oauth2",
    clientId: process.env.DIALOG_CLIENT_ID!,
    clientSecret: process.env.DIALOG_CLIENT_SECRET!,
  },
});
await client.attach(dialog);

// Quarterly evidence
const pack = await client.emitFccEvidence(
  new Date("2026-04-01"),
  new Date("2026-07-01"),
);

Honest scope

This SDK is intentionally narrow. It does NOT:

  • Tune modulators or control beam pointing.
  • Validate ITU coordination requests.
  • File evidence with regulators.
  • Implement frequency-coordination logic (that's the operator's RF-planning team's job).

It DOES:

  • Translate vendor modulator state into EnfinitOS PlayEvents + BroadcastFootprintClaims.
  • Assemble the operator-side regulatory pack envelope.
  • Run a structured Es/N0 + BER ingest path through the existing renderer-core proof pipeline.
API reference

Hit the HTTP surface directly

The Satellite SDK is a thin client over the same governed HTTP API every other SDK calls. The full OpenAPI 3.1 reference lives on the docs site, published alongside the April 2027 platform launch.

Sandbox

Run this SDK against a real tenant

The browser demo at enfinitos.com/sandbox runs today against a shared synthetic tenant. The dedicated developer sandbox — your own persistent tenant, API keys, full HTTP-contract coverage — opens ahead of the April 2027 platform launch.