This is the full developer documentation for MeshedFlow # Quickstart > Add MeshedFlow to a page and see peer-assisted offload in minutes. Get MeshedFlow serving segments peer-to-peer on a test page in a few minutes. MeshedFlow ships as an [hls.js](https://github.com/video-dev/hls.js) loader, so you keep your player and your stream -- you just point hls.js at the MeshedFlow loader. Three fields are all you need The only required loader options are `signalingUrl`, `streamId`, and `authToken`. The public-key fetch and per-segment signature verification are **automatic** -- the SDK fetches the origin's verification key and checks every peer-delivered segment on its own. 1. **Get your credentials from the portal.** Sign in to the [MeshedFlow Dashboard](https://app.meshedflow.com) and open your stream. You need three values: * **`signalingUrl`** -- your tenant's signaling/WebSocket endpoint (the `wssEndpoint` shown when your tenant was provisioned, e.g. `wss://signal.meshedflow.com:8445/ws`). * **`streamId`** -- formatted as `:`, e.g. `cust_20260808_eb8790f7:live-demo`. The `` prefix is what scopes the stream to your account. * **`authToken`** -- the SDK JWT you embed in your build. See [Authentication & provisioning](/concepts/auth/) for where each value comes from and how tokens rotate. 2. **Add your content origin in the portal.** Peer delivery only works for segments served from an origin you've allowlisted -- signing refuses any URL that isn't. In the portal, add your segment origin (e.g. `https://cdn.example.com`) to your tenant's content origins. See [Content signing & origins](/concepts/signing/). No origin, no offload If your content origin isn't in the allowlist, the control plane returns `403` for every sign request, no segment can be verified, and offload stays at **0%** -- all traffic falls back to your CDN. This is the single most common cause of "it's installed but offload reads zero." Add the origin first. 3. **Include the SDK and hls.js.** Load the SDK as an ES module from the CDN, alongside hls.js -- no build step needed. (Using a bundler instead? `npm install @meshedflow/sdk hls.js` and import from `@meshedflow/sdk` -- same build, see the SDK reference.) * ES module (import map) index.html ```html ``` * Direct ESM imports player.js ```js import Hls from 'https://cdn.jsdelivr.net/npm/hls.js@1/dist/hls.mjs'; import { MeshedFlowLoader } from 'https://meshedflow.com/sdk/dist/sdk.mjs'; ``` Note `@meshedflow/sdk` is available on request / coming soon on npm -- for now the `https://meshedflow.com/sdk/dist/sdk.mjs` module is the supported install. hls.js is a normal npm/CDN dependency. 4. **Wire the MeshedFlow loader into hls.js.** Pass `MeshedFlowLoader` as the hls.js `loader` and put the MeshedFlow options under `loaderConfig`. Then attach your `