One OpenAI-compatible address
Chat completions, embeddings and model listing on the paths every SDK already expects. Change the base URL, keep the client.
Direct paths through NAT
Hole-punched QUIC between router and node. No port forwarding, no public IP, no VPN. UDP probes and dials ride the same socket the data uses.
Nodes stay closed
Agents only dial out. A node behind the most aggressive CGNAT still serves. The NAT type decides which path is used, nothing else.
A directory of real models
Cards carry what matters: modality, context window, VRAM cost, measured tok/s and TTFT, price per million. Canonical ids where they exist, node-pinned ids where they don't.
Failover before the first token
The scheduler keeps candidates. A node that dies mid-handoff costs the request nothing; a stream already flowing drains before the node leaves.
Reputation that means something
Scores weighted from real outcomes: heartbeats kept, requests served, usage reported correctly. Misbehaviour quarantines a node; clean behaviour brings it back.
Metered to the token
Input and output tokens land in a ledger for every request, with the routing path and request id. Earnings accrue per node per hour window. You can check the numbers yourself.
Visible internals
Key management sits behind an admin token. Prometheus metrics and pprof are exposed. Request ids travel end to end. If a router changes its key, every node that pinned the old one refuses to connect.