What MoQ relays actually do

Every publicly reachable MoQ Transport endpoint we could find, tested for what it actually supports: which drafts it speaks, which control messages it answers, and whether media gets through.

19/23
endpoints reachable
10
drafts answered across the fleet
10
delivered a published object
7
spec violations recorded

How to read this

  • This is a snapshot, not a service level. These endpoints are publicly reachable and open for interop testing; some are also commercial products. Either way, what is recorded is what one endpoint did on one occasion — not a claim about anyone's product or its availability.
  • An error reply counts as support. A relay that answers REQUEST_ERROR to a namespace it does not host has understood the message. What is recorded as missing is a message that got no answer at all, or that closed the session.

moq.dev CDN

moq.dev

cdn.moq.dev:443/anon

QUIC WT drafts 14–22 IPv4 IPv6

1 specification violation

Paramount stitcher

Paramount

34-72-6-160.sslip.io:443

QUIC WT drafts 14–22 IPv4

Identifies itself as moq-lite-rs

1 specification violation

imquic

Meetecho

lminiero.it:9000

QUIC WT drafts 16–21 IPv4

Identifies itself as imquic 0.0.2/alpha

Object delivered end to end first object 49ms

Nokia Research

Nokia

moqt.nokiaresearch.com:4443/moq

QUIC WT drafts 17–22 IPv4

Identifies itself as StreamForge MOQ v19

Object delivered end to end first object 69ms

moxygen

Meta

fb.mvfst.net:9448/moq-relay

QUIC WT drafts 14, 16, 18 IPv4

Object delivered end to end first object 108ms

Cloudflare draft-16

Cloudflare

draft-16.cloudflare.mediaoverquic.com:443

QUIC WT drafts 15–16 IPv4 IPv6

libquicr (quicr.org)

Cisco

us-west-2.relay.quicr.org:33437/relay

QUIC WT drafts 15–16 IPv4

1 specification violation

moqx (OpenMOQ CI)

OpenMOQ

moqx-main.ci.openmoq.org:4433/moq-relay

QUIC WT drafts 16, 18 IPv4

Identifies itself as Meta MoQ C++ Draft-14

Object delivered end to end first object 120ms

Cloudflare draft-14

Cloudflare

draft-14.cloudflare.mediaoverquic.com:443/moq

QUIC WT draft 14 IPv4 IPv6

Object delivered end to end first object 14ms

Cloudflare draft-18 interop

Cloudflare

draft-18-interop.cloudflare.mediaoverquic.com:443/moq

QUIC WT draft 18 IPv4

MOQtail

relay.moqtail.dev:443

QUIC WT draft 18 IPv4

Identifies itself as moqtail/0.14.1+0ff56ab

Object delivered end to end first object 47ms

MOQtail IBC2025

MOQtail

ord.ibc25.moqtail.dev:443

WT draft 11 IPv4

Namespace accepted, track never asked for

1 specification violation

MOQtail n1 Chicago

MOQtail

relay.n1.ord.moqtail.dev:443

QUIC WT draft 18 IPv4

Identifies itself as moqtail/0.14.1+0ff56ab

Object delivered end to end first object 125ms

MOQtail n1 Frankfurt

MOQtail

relay.n1.fra.moqtail.dev:443

QUIC WT draft 18 IPv4

Identifies itself as moqtail/0.14.1+0ff56ab

Object delivered end to end first object 43ms

MOQtail n1 Osaka

MOQtail

relay.n1.osa.moqtail.dev:443

QUIC WT draft 18 IPv4

Identifies itself as moqtail/0.14.1+0ff56ab

Object delivered end to end first object 261ms

MOQtail n1 Singapore

MOQtail

relay.n1.sin.moqtail.dev:443

QUIC WT draft 18 IPv4

Identifies itself as moqtail/0.14.1+0ff56ab

Object delivered end to end first object 175ms

MOQtail SyncPlay

MOQtail

syncplay.moqtail.dev:4448

WT draft 14 IPv4

Namespace accepted, track never asked for

1 specification violation

MOQtail TimeTravel

MOQtail

timetravel.moqtail.dev:4445

WT draft 11 IPv4

Namespace accepted, track never asked for

1 specification violation

MOQtail WatchParty

MOQtail

watch-party.moqtail.dev:4446

QUIC WT draft 16 IPv4

Identifies itself as moqtail/0.14.1+fbdbc75

Namespace accepted, track never asked for

1 specification violation

4 further endpoints in the fleet did not answer this sweep and are not listed.

Method

Each endpoint is contacted directly over both transports and every draft it might speak, and what comes back is recorded as it arrived. Results are point-in-time and describe one run, not a continuous measurement.

Want this run against your own relay? Ask for a report. And if something here is wrong about your relay, tell us — we keep what each result rests on, so a disputed one gets re-read rather than re-argued.

Debug what this found

The same decoder behind this sweep runs in your browser's DevTools, and reads the capture files it produces.