Elyra is a router you run yourself, plus a way for strangers to pay each other for inference without a middleman. This page explains the moving parts in plain words. Precise formats are in Peer protocol and Architecture.
The router#
A VPR (virtual private router) is one Node.js process on your machine. It exposes an OpenAI-compatible endpoint on localhost and decides, for every request, where it runs: on a model you attached (Ollama, LM Studio, any OpenAI-compatible server) or on a peer. Your tools never need to know which.
Choosing where a request goes#
The router ranks every listing that can serve the model you asked for, using four weights you control: price, speed, reputation and privacy. You can also set a hard price ceiling or require private peers only.
autouses your stored weights.auto:cheapest,auto:fastest,auto:bestandauto:privateoverride them for one request.- Live beats simulated. If anything real (your own source or a live peer) can serve a request, only real listings are ranked. The simulated market answers only when nothing real can.
- Up to three candidates are tried before the first byte arrives. There is no failover after a stream has started.
Peers#
A peer is another Elyra node you know by URL. Nodes introduce themselves with a signed hello (identity, encryption key, wallet, models, price) and learn about more peers by gossip. Prompts travel sealed: encrypted to the provider's key, so the network only sees ciphertext. The provider operator can still read them. Only a verified TEE removes that, and that is not proven on real hardware yet (TEE verification).
Paying: receipts and vouchers#
Two different objects, on purpose:
- A receipt is the provider's signed record of one answer: model, tokens, price, amount. It records usage and moves no money.
- A voucher is the consumer's signed promise (EIP-712) of a cumulative amount to one provider. It moves money when redeemed.
The consumer deposits USDG (a dollar stablecoin) into the escrow contract on Robinhood Chain. For each answer the consumer's node checks the receipt (signature, parties, price within 5% of the quote, amount equals price times tokens, token count not inflated) and only then signs a higher cumulative voucher. The provider redeems the latest voucher and the escrow pays it. Prices are dollars per million tokens, so there is no oracle and no exchange rate; gas is ETH.
A consumer can always drain its own deposit through a second address (a documented limitation), so providers protect themselves: they serve only within a small credit limit per wallet and redeem often (Sell capacity).
What each label means#
SIM/DEMO: simulated. Never real inference, never settled.LIVE: a real peer or your own source.CLEAR: the operator can read your prompt.LOCAL: your own machine or LAN.CLAIMED: a seller says it runs in a TEE. Unverified and ignored by private routing.VERIFIED: a Google-signed Confidential Space attestation passed your trust list. Proven only against a simulated Google so far.MOCK: the testnet token is our open-mintMockUSDGand has no value.
Real versus simulated, today#
- Real and tested: the router, sealed transport, receipts and vouchers, the control panel, settlement on Robinhood testnet with the test token, an Ollama-backed node on a Linux server.
- Not yet: mainnet, an independent audit of the escrow, TEE verification against real Google hardware, peer discovery beyond URLs, a seller reached from a second machine on another network.
- A fresh node starts with a simulated demo market (labelled
SIM) so the panel has something to show.--no-demoremoves it. - The live node at app.elyrainference.com answers from a real local model.
The full list with evidence is in the project status notes.
The three surfaces#
- Local:
/v1,/apiand the panel at/app/. Loopback only, unless you opt in to remote admin (one hostname behind a login). - Network:
/p2p/*and/healthz. The only part meant for other machines. - Public website: the landing page and these docs on Cloudflare Pages, plus a live node at app.elyrainference.com (try page for visitors, full panel behind a login).