General#
What is Elyra? A self-hosted router that sends your OpenAI-compatible requests to the best peer by price, speed, reputation or privacy, and pays providers per token on-chain. See the README.
Is this production ready? No. It is early and testnet only. The escrow is unaudited, TEE verification is proven only against a simulated Google, and there is no peer discovery beyond URLs. See STATUS.
Is the market on the landing real? No. "600+ models / 150+ providers" is a launch target. A fresh node shows a simulated demo market, always labelled SIM; use --no-demo to remove it. Real models are the ones your own sources and live peers provide.
Can I try it without installing? Yes: app.elyrainference.com is a real node with a real model. Ask it something; the page shows which machine answered. It is rate-limited and uses a small model (PANEL).
Can the website control my node? No. Your panel is http://localhost:8545/app/, an SSH tunnel for a remote node, or, if you opt in, your own hostname behind a login: REMOTE-ADMIN.
What does it cost? Running your own model through your own node is free (price 0). Buying from a peer costs the peer's price per MTok, paid in USDG; on testnet that is free mock money.
Are my prompts private? Sealed transport hides them from the network, not from the provider. Only a VERIFIED TEE seller, or your own machine, keeps them from the operator, and VERIFIED has not been proven on real Google hardware yet. The node never logs prompts or completions.
Is it OpenAI-compatible? GET /v1/models and POST /v1/chat/completions (JSON and SSE). Not embeddings, images, audio or the Responses API.
Install and run#
npm start says Node is too old. Needs Node 20 or newer (INSTALL).
The service fails immediately with 203/EXEC. ExecStart points to a node the elyra user cannot read (for example under /root). Install Node to /opt/node.
It refuses to start: passphrase. The data dir is encrypted and ELYRA_PASSPHRASE is missing or wrong. There is no recovery without it.
npm test fails with "node did not start" or random failures. The machine is busy. Boot can take 5 s or more under load; tests wait 30 s now. Run them on an idle machine.
Port 8545 is in use. --port 8546 (and pass a different --data dir if running two nodes).
Ollama and models#
/v1/models has no Ollama model. Check curl 127.0.0.1:11434/v1/models. ELYRA_UPSTREAM_URL must end in /v1. Or Connect → Detect local.
First request takes about a minute. Ollama is loading the model into RAM. Warm requests take about a second on a 1B model.
Out of memory. Pick a smaller model; see the sizing table in OLLAMA.
Routing and payments#
I connected Ollama but auto still answered with canned text. Fixed: a live listing now always beats the simulated market. If you still see [elyra demo engine ...], update the node, or check x-elyra-simulated and that your source appears under Models as LIVE.
"No route". Your policy filtered everything out: teeOnly with no private listing, a maxPrice below every listing, or the requested model has no listing. Loosen the policy or add a source.
A peer shows but is never used. Both sides must use the same escrow and settlement mode (sim vs chain) or there is no route. Also check the protocol version.
A paid request returns 402/503. A provider refuses when your wallet's unpaid balance plus the request's worst case exceeds its credit limit, or when it cannot read the chain (fail-closed). Deposit more, or wait for the provider to redeem.
My deposit looks lower than I sent. Check the explorer. Real USDG's supply controller can burn from any address; the mock token cannot. The escrow cannot protect against that (SECURITY).
Mint does nothing / errors. Mint works only for the mock test token on testnet.
Withdraw says locked. Withdrawals need request, then wait 1 day, and must be executed within 7 days.
Website#
Unknown URLs on the site return 404. Intended: the bundle ships a 404.html.
Contributing and security#
See CONTRIBUTING and SECURITY. Report vulnerabilities privately through GitHub Security Advisories.