If you run a go-livepeer orchestrator, you can offer your capabilities to the Livepeer Agent and earn from agent traffic. It's four steps, all on your side — no code from us, no meetings. Here's exactly what to do.
On -network=arbitrum-one-mainnet, with a staked on-chain identity (your ethOrchAddr). This is the community / live-runner plane — the same one the currently-live orchestrators use.
POST /<capability-name>One route per capability, named exactly after the capability (e.g. POST /kokoro-tts). Follow the input convention:
| Input | How it arrives |
|---|---|
| Text (prompts) | prompt in the JSON body |
| Media in (image / audio / video) | source_url — a public https URL |
| Output | a media URL (or an inline data: URL); JSON/text for analysis caps |
Not /generate — that's a different (fal-app) convention. The route name must equal the capability name.
/discovery — clean names, capacity, and a priceExpose https://<your-host>:<port>/discovery. For every capability it must show:
app name = the capability name — never a livepeer-example/* scaffold name;capacity_available > 0;price_info — a real number. null means we can't settle payment, so we can't route to you.Before you announce, run each capability once with the app-examples live-runner client and confirm it returns a real result. An advertised-but-unhealthy runner is the single most common reason onboarding stalls — it passes discovery but errors on the real call. Clear this and the rest is instant.
In the Livepeer Discord's orchestrator-onboarding channel, run /announce and fill in the form. Have these ready (copy, replace with your details):
Discovery URL: https://YOUR-HOST:PORT/discovery
Contact email: you@example.com
Note: caps = cap-a, cap-b, cap-c · on-chain 0xYOUR_ORCH_ADDRESS · arbitrum-one-mainnet
Your healthy capabilities are registered on the agent within seconds and become routable via merit (price + capacity + latency). A per-capability admission list keeps a shared capability serving only vetted nodes — yours included, once you're in.
| Check | Pass looks like |
|---|---|
| Discovery reachable | GET /discovery returns 200 with your runners |
| Priced + has capacity | every runner: wei price_info set, capacity_available > 0 |
| Serves for real | a paid call returns a real result (not a 502 / empty) |