WAVE is live: one API for video, one route for people and agents
WAVE is live. One API moves live and on-demand video across every transport, and the same route a person calls with a key, an agent can call and pay for over HTTP 402. What is live today, with a URL for each claim.
WAVE is live. One API carries live and on-demand video across every transport we support, and the same route a person calls with a bearer key, an agent can call and pay for over HTTP 402, with no account and no stored card. Three engines sit under that one API: one carries the media, one clears the payment, one chooses the compute path. This post lists what is live today, with the URL for each claim, and ends with the first call to make.
What shipped
The gateway. Every WAVE capability is reachable at api.wave.online. Auth, entitlement, rate limits, and metering live there once, in front of everything. The route list is public: gateway.wave.online/.well-known/wave-skills.json lists 178 routes with the scope each requires, and 175 of them are payable over x402 as well as with a key.
The Media Engine. The hard parts of moving audio and video are solved once, in an open core: one media clock, one duplex adapter interface, integrity, sync, reliability, and metering. Each transport is a thin adapter on top. SRT, RIST, AES67, OMT, MoQ, HLS, and WebRTC are listed on the Media Engine page, and each carries a status: live, building, or planned. A Dante or AES67 source already on your network can be heard in a browser today at listen.wave.online. NDI and ST 2110 are on the roadmap and labeled that way.
The Money Engine. WAVE runs a public x402 facilitator on Base mainnet. Discovery is one GET:
curl -s https://api.wave.online/.well-known/x402
{
"facilitator": "https://gateway.wave.online/v1/x402/facilitator",
"scheme": "exact",
"version": "x402@1",
"networks": [
{ "networkId": "eip155:8453", "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" },
{ "networkId": "eip155:84532", "asset": "0x036cbd53842c5426634e7929541ec2318f3dcf7e" }
]
}
Two networks: Base mainnet (8453) and Base Sepolia (84532) for testing, with USDC as the asset on each. An agent proves who it is with a did:wave credential and is screened against sanctions on the way through. The WAVE Wallet, the product face of this engine, is being built.
The Dispatch Engine. Once media can move and value can settle, something has to decide what compute a request needs. Dispatch classifies a prompt at the edge and returns a routing decision: which tier runs the work, at what cost, under whose keys. WAVE bills the decision and never the inference, and the prompt stays on your infrastructure. It runs in production at dispatch.wave.online; a call without payment or a key returns a 402 with the price in the response.
The developer surface. A TypeScript SDK for the Media Engine, reference docs at docs.wave.online, a dated changelog at changelog.wave.online, and an MCP server with 62 tools so an agent client drives WAVE without a browser.
What it means
For a video team, the transport stops being an architecture decision. You name the transport in the call. Ingest over SRT, deliver over WebRTC and HLS, and the metering, auth, and identity do not change because the wire format did. A new transport is a new adapter on our side, not a rewrite on yours.
For an agent developer, the account is gone. An agent that can read a 402 can use WAVE: discover the price, settle it on Base, retry with proof, get the result. No signup, no stored card, no one provisioning a key first. A capability a person can use but an agent cannot is half-shipped, and every payable route on WAVE passes that test.
For anyone deciding what to build on, every capability on the site carries a label. Live means you can call it now. Building and planned mean you cannot yet, and the label sits where the capability is listed.
How to use it
Read the route list, then make one unpaid call and read the price.
# every callable route, with the scope each requires
curl -s https://gateway.wave.online/.well-known/wave-skills.json | head -c 600
# a metered route, unpaid: expect 402 and a price
curl -si -X POST https://dispatch.wave.online/v1/route \
-H 'content-type: application/json' \
-d '{"prompt":"Summarize this paragraph in one line."}' | head -n 3
The second command returns HTTP/2 402 and a www-authenticate: Payment header carrying the challenge. The next post walks that exchange end to end: the 402, the settlement, the paid retry.
If you hold a key, the same route accepts authorization: Bearer <key> and bills your account instead. Same path, two payers.