Media

Money

Dispatch

Company

WAVE · NDI

Your NDI feed just left the building.

NDI stops at the edge of your LAN by design. WAVE speaks it natively, with its own sender and its own receiver, and carries a studio source past that edge onto the open internet. No third-party app on the wire. No VPN. WAVE is media infrastructure for the agentic internet, and NDI is one transport on it.

frames507 at 1920×1080, 50.4 fps, 0 reconnects, in 10.1 s
integrity119 of 119 checked against received pixels · 0 mismatches, 0 reorders
rates8 of 8 SMPTE rates, 23.976 through 60, tagged correctly end to end
audio48 kHz stereo, locked to the same stream clock as video

119 frames out. 119 frames checked. Zero mismatches.

Compressed video cannot be checked with a pixel hash, because the pixels change on purpose. So every frame leaves carrying a 16-bit sequence twice: once as a high-contrast barcode burned into the picture, once as frame metadata. The receiver decodes the number back out of the pixels that actually arrived and holds it against the metadata.

In the end-to-end smoke that read checked=119, matches=119, mismatches=0, gaps=0, reorders=0. Nothing dropped, nothing duplicated, nothing out of order. The smoke does not report that result and move on. It exits non-zero unless mismatches and reorders are both zero, so a regression stops the build rather than reaching a page like this one.

the claimwe get what we send
the testpixel-decoded sequence cross-checked against frame metadata, per frame
the gatemismatches == 0 and reorders == 0, or the smoke fails

The studio stops being an island

NDI turned every camera, graphics box and switcher into a source on your network. That was the point, and so was the boundary: it was built to stop at the LAN. WAVE speaks the same source natively, with its own sender and receiver, and carries it past that boundary frame for frame, in sync, metered by the second.

Ask the route what it costs. It answers.

No account and no key. Post to the metered route and the gateway quotes the call back to you in USDC on Base. Read the number off the live route rather than off a rate card.

$ curl -s -X POST https://gateway.wave.online/v1/ndi

402 {"x402Version":1,"error":"payment required",
     "accepts":[{"scheme":"exact","network":"base",
                 "maxAmountRequired":"1000",
                 "resource":"/v1/ndi","asset":"USDC"}]}

USDC carries six decimals, so that quote is $0.001000 for the call. Send a key the gateway does not know and it answers 401 with a request id instead. Nothing about this transport is reachable without passing the meter.

One adapter on a shared core

NDI is the first adapter on the WAVE Media Engine: one master clock, one integrity check and one metering schema, shared by every transport WAVE speaks, including Dante and AES67, SRT, ST 2110, OMT and MoQ. Bridge NDI to any of them and settle it all through api.wave.online. The source that left your building can arrive on a different protocol at the other end.

front door● live /, /health and /skill.md all answer 200
metered routePOST /v1/ndi at the gateway, not on this host
scopesndi:read and ndi:write, enforced at the gateway
unpaid call402 the quote above, before a frame moves
NDIx402USDC on Baseframe integrity