> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enfinitos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Renderer Core

> The substrate-agnostic foundation every render SDK composes. Composition, not inheritance.

`@enfinitos/sdk-renderer-core` is the substrate-agnostic foundation
every substrate-specific render SDK (DOOH, mobile, CTV, streaming,
AR / glasses, HUD, smart-home, wearables, audio, messaging,
hologram, robotics, drone, satellite, aviation, maritime) **composes**.

The key word is composes — not inherits. The Drone SDK composes the
Robotics SDK; it doesn't extend `EnfinitOSRobotClient`. The Smart-Home
SDK composes Renderer Core; it doesn't extend it.

<Note>
  **Publishes at launch.** `@enfinitos/sdk-renderer-core` publishes to
  npm at the April 2027 production launch, alongside the substrate SDKs
  that compose it. Sandbox access is available now at
  [enfinitos.com/apply](https://enfinitos.com/apply).
</Note>

```sh theme={null}
npm install @enfinitos/sdk-renderer-core
```

## What Renderer Core owns

* Authentication and bearer-token rotation.
* The rights / offers / challenges / proof contract surface.
* Telemetry heartbeat and reconnection.
* Policy subscription (operator pushes a new policy → SDK gets it
  with bounded staleness).
* The signed delivery-event submission path.
* The proof-pack fetch / verify wrapper around the open-source
  auditor.

## What Renderer Core doesn't own

* Substrate-specific render code (the DOOM player, the iOS native UI,
  the BrightScript bridge).
* Substrate-specific constraints (geofences, kinematic envelopes,
  audio-attention windows).
* Vendor-specific adapter shims.

Those live in the substrate SDKs that compose Renderer Core.

## Substrate adapters

Every substrate SDK exports an adapter type. The adapter is the only
substrate-specific entry point. Everything else funnels through
Renderer Core via a typed protocol.

This is why adding a new substrate is configuration, not a rewrite:
the new SDK ships a new adapter, declares its substrate constraints,
and composes the same core. The platform's rights / proof / metering
plane doesn't change.
