Your idle GPU pays in MYCEL
Agents, provers and indexers on Solana need GPU work every second of the day. Point your card at the substrate and it earns while you sleep — paid per second, straight to your wallet.
At the rate this card clears for right now, after the 2% burn. Utilisation is what the substrate reports for that model — not a best case.
AI is buying compute. Almost none of it is on-chain
Every one of these workloads runs on Solana today and buys its GPU time off-chain, in fiat, from a company. That money leaves the ecosystem. MYCEL routes it to whoever supplies the hardware instead — and the hardware can be yours.
Inference on a schedule
An agent that trades, posts or routes has to run inference somewhere. Today that is an API key on a company's server, paid in dollars by whoever deployed it.
Proving is GPU work
ZK compression and every proof system on this chain generate proofs continuously. It is the clearest case of compute a protocol needs and cannot produce itself.
State into embeddings
Solana produces more state per day than any chain running. Turning that into features and search scales with the chain, not with a roadmap.
Bursts, then nothing
Searchers, risk engines and backtests burn compute in spikes. Hourly pricing prices that out. Per-second pricing does not.
A job is a transaction
Renting is an instruction, not a checkout flow. Anything that can sign — a wallet, a bot, or another program via CPI — opens a rental and pays for it while it runs.
// an agent buying its own inference. no account, no card. mycel::rent( card: "H100 SXM", rate: 8400, // MYCEL / hr, discovered by the market for_s: 420, // pay for 7 minutes. not an hour. )?; // stream opens · job runs · stop it and it stops paying
Why it has to be on Solana. Billing by the second needs finality faster than the billing unit, which rules out most chains outright. But the reason it belongs here is composability: a compute market a program can call is infrastructure the rest of the chain builds on. One bought with a credit card is not.
What each card earns
Rates are in MYCEL per GPU-hour and discovered by the market — when a model is busy its remaining cards clear higher. Load is how much of that model is already working, so it is also how likely your card is to be picked.
Rates move with the market. What a card clears for depends on how much of that model is already working — the numbers here are what nodes report right now, not a price list. Rent one and the stream opens against the rate you accepted.
Your idle card is someone's job queue
List what you have, set your own floor, keep 98% of what it earns. No approval queue, no minimum term, drop off between jobs whenever you want.
The contract handles
- Matching. A job goes to the closest node that can hold it.
- Billing. The stream pays you per second while it runs.
- Payouts. Straight to your address, same transaction.
- Escrow. The renter's MYCEL is locked before the job starts.
- Verification. Random re-benchmarks catch anyone lying about a card.
You handle
- Uptime. A card that does not answer does not earn.
- Connectivity. Your uplink is part of what you sell.
- The hardware. Power, cooling, whatever it costs to run.
- Your floor. Too high and it does not clear. Your call.
That is the whole list. There is no third column where a company takes a percentage for making introductions.
Check your own card first
One file, standard library only, 270 lines. It reads your machine and tells you what the card is worth here. It makes no network calls at all.
$ curl -O https://mycel.rent/node/mycel_node.py $ python mycel_node.py MYCEL node readiness check ------------------------------------------------ NODE MY-005EA9B0AA HOST Windows 11 · python 3.14.2 [0] NVIDIA GeForce RTX 3060 Ti VRAM 8 GB DRIVER 610.88 TEMP 51°C LOAD 41% RATE 240 MYCEL/hr · published rate SUBSTRATE ready to join Run with --join to put this card on the substrate.
What it reads
Card name, VRAM, driver, GPU UUID, power limit, clock, PCIe width, temperature, utilisation. Nothing else on your machine.
What it sends
Nothing. There is no substrate to call yet. Your GPU UUID never leaves the box — the node id is a SHA-256 prefix of it.
Measured vs looked up
Every figure is read from your driver. The only number it measures itself is --bench, skipped unless torch is installed.