$WATTZ marketplace program is live on Solana mainnet.
The .so deployed to mainnet is byte-identical to the build that ran on devnet at GUDVbE4Jgmtu8jgxUVtq2wUmjdLxJzPqT3zET2EdTLiU. Same eleven instructions: initialize, register_node, register_model, submit_inference, settle_inference, open_dispute, resolve_dispute, slash_node, increase_stake, unstake, claim_reward. Upgradeable, with the authority public on chain. The source is open for anyone to read and rebuild.
Program (mainnet): GUDVbE4Jgmtu8jgxUVtq2wUmjdLxJzPqT3zET2EdTLiU
IDL: https://t.co/sRbGZpz1Qd
Verify it yourself: sha256 the mainnet .so, sha256 the devnet .so, compare the two digests.
https://t.co/NGTt5Yiy8K
Next stop: mainnet.
The Anchor program has run every path on devnet at GUDVbE4Jgmtu8jgxUVtq2wUmjdLxJzPqT3zET2EdTLiU -- register_node, submit_inference, settle_inference, the 80/10/5/5 split, the 2.5% burn, the one-hour dispute window. The mainnet build is byte-identical to it. Nothing new gets written for launch, so there is nothing new to trust; the same eleven instructions carry over unchanged.
Migration goes out after external review signs off. Today is still devnet -- there is no mainnet program yet, and every Explorer link still carries ?cluster=devnet. But the binary is frozen and the deploy is staged. When it lands, you will sha256 both .so files and compare the digests yourself.
https://t.co/NGTt5Yiy8K
The operator dashboard and the CLI.
https://t.co/5TL2arGMVP
Node uptime, per-model earnings, attestation success rate, current reputation, staked balance, pending rewards. Everything the Anchor program records for a node, as one dashboard view. Non-custodial: the operator's stake key stays in the CLI or a hardware wallet, not in the browser.
CLI:
npm i -g wattz-cli
wattz node init
wattz node start --model llama-3.1-8b-instant
The CLI produces the same views as the dashboard from a terminal, plus stream monitoring for live inference sessions.
https://t.co/5TL2arGMVP
https://t.co/NGTt5Yiy8K
The operator dashboard and the CLI.
Run a GPU node and everything the Anchor program records for it -- uptime, per-model earnings, reputation, staked balance, pending rewards -- lands in one view. The stake key stays in the CLI or a hardware wallet, never the browser.
Opening soon at https://t.co/5TL2arGMVP. The CLI is already on npm if you want to bring a node up first:
npm i -g wattz-cli
wattz node init
https://t.co/WknuCTpSHM
https://t.co/NGTt5Yiy8K
The routing decision, in full. Price, latency, reputation, region. Deterministic.
score = w_price * (1 / (price + 1))
+ w_latency * (1 / (latency + 1))
+ w_reputation * reputation
+ region_bonus
No black box, no model behind the model. The highest score serves the request. Region preference is a soft nudge (+0.2 when the node's region matches), not a filter: a healthy far node beats an unhealthy near one. When the registry is thin, a bootstrap fallback is disclosed in the code, not hidden.
packages/inference-gateway/src/routing/engine.rs
https://t.co/NGTt5Yiy8K
The SDK is open.
npm i @wattz/sdk
import { WattzClient } from "@wattz/sdk";
const wattz = new WattzClient(); // defaults to https://t.co/Kom6m5dLAg
Three familiar calls: chat.completions.create, embeddings.create, images.generations.create. Same shape as OpenAI. The SDK also exposes stream metering, attestation labels, and receipt lookups, and forwards the Wattz request extensions (wattz_region, wattz_min_reputation) as optional fields.
The program stays on devnet until it has been through external review. Devnet is devnet.
https://t.co/WknuCTpSHM
https://t.co/NGTt5Yiy8K
Next: the SDK.
One line points existing OpenAI code at Wattz. The three familiar calls (chat.completions.create, embeddings.create, images.generations.create) keep the exact OpenAI shape, and the SDK adds stream metering, attestation labels, and receipt lookups on top.
Opening soon. The gateway already speaks the wire today if you want to curl it first.
https://t.co/WknuCTpSHM
Time to first token, measured now.
20 requests to https://t.co/8Fdw2QYWLp, llama-3.1-8b-instant, streaming:
p50 420 ms
p95 506 ms
range 348-548 ms
The command:
for i in $(seq 1 20); do curl -o /dev/null -s -w "%{time_starttransfer}\n" -X POST https://t.co/SEFHi5Htpd -H "Content-Type: application/json" -d '{"model":"llama-3.1-8b-instant","messages":[{"role":"user","content":"Say hello."}],"stream":true}'; done
Honest caveat: this is the relay path through Groq LPU capacity, not a bare-metal Wattz node. When the first node registers, the numbers get measured again against it.
https://t.co/NGTt5Yiy8K
One request. No SDK, no account, no key.
curl -N https://t.co/SEFHi5Htpd \
-H "Content-Type: application/json" \
-d '{"model":"llama-3.1-8b-instant","messages":[{"role":"user","content":"Say hello."}],"stream":true}'
The tokens stream back over SSE. Read x-wattz-node, x-wattz-region, x-wattz-attestation, and x-wattz-request-id off the response headers.
On Windows, run it in WSL, or swap curl for curl.exe --% in PowerShell.
https://t.co/WknuCTpSHM
https://t.co/NGTt5Yiy8K
About the relay.
Inference is relayed through Groq LPU capacity until the first bare-metal node registers. The wire protocol does not change.
Relayed traffic is labeled as relay in the response metadata: kind relay, verified false, x-wattz-attestation: relay. No SGX, no SEV, no fabricated proof. The label tells you exactly what carried your tokens.
A settlement=required flag that hard-errors on relayed traffic is next on the gateway; the wattz_min_reputation floor already exists in the request schema.
Once the first bootstrap node registers, its attestation flips to a hardware root and the routing engine picks it over the relay automatically. Clients see nothing change; the compute is bare metal from that point.
https://t.co/NGTt5Yiy8K
Playground is open.
https://t.co/WknuCTpSHM
Pick a model, drop in a prompt, hit run. The gateway (https://t.co/g9j41WnxUT) routes the request through the same OpenAI-compatible /v1/chat/completions path any SDK would use. The response streams back over SSE. Response headers surface x-wattz-node, x-wattz-region, x-wattz-attestation, and x-wattz-request-id.
Inference is relayed through Groq LPU capacity until the first bare-metal node registers, and it is labeled relay. The wire protocol does not change. The relay note is next: read it before you read the attestation label.
https://t.co/WknuCTpSHM
The Playground opens first.
You will pick a model (Llama 3.1 8B, Llama 3.3 70B, GPT-OSS 20B today; Whisper and Stable Diffusion slots are listed as awaiting a node), set a prompt, and watch a live inference stream back over the OpenAI wire format. The routing engine picks a node in real time. The response headers carry x-wattz-node, x-wattz-region, x-wattz-attestation, and x-wattz-request-id.
Opening soon. The repo and the Anchor program are already open if you want a head start.
https://t.co/WknuCTpSHM
Why $WATTZ, the honest read.
Fee accounting flows through the token. On every settled receipt the fee splits: 80% to the node immediately, 10% to the node's pending pool, 5% to the model publisher, 5% project fee. Half of that project fee, 2.5% of every settled fee, burns via a direct SPL Token Burn CPI from the program vault. This runs on devnet today.
Real on devnet now: node operators post stake collateral in $WATTZ to serve (MIN_NODE_STAKE is 100 $WATTZ, on a 7-day lock, DEFAULT_STAKE_LOCK_SECS = 604800). Reputation drops below the slashing threshold, admin slash_node burns the stake, also a direct Burn CPI, not a reallocation. Nobody profits from a slash, which is what keeps slashing non-adversarial. Model publishing runs through register_model. Operators pull earnings with claim_reward.
Design intent, not live, and labeled as such: holder-voted dispute governance (during devnet, resolve_dispute is admin-gated) and a stake-for-priority routing lane (routing scores price, latency, reputation, and region only). No priority is sold today.
The token is the unit the substation is denominated in, not a yield claim. $WATTZ is live at fxcX1xSZ4Uz9pimw97XENdEHwexHrfaRkEkKeHupump. The program still settles on devnet against a devnet mint today; the mainnet $WATTZ mint binds to the program at migration.
https://t.co/NGTt5Yiy8K
Solana has no OpenAI-compatible inference layer. Wattz is building that layer.
No on-chain model registry with license enforcement, no first-class compute verification, no per-token payment path. Every AI dApp is either wired to a centralized provider or writes its own everything.
Wattz fills that gap. An OpenAI-wire-compatible gateway. A PDA-based model registry with a license enum. A compute-verifier crate that parses Intel SGX / AMD SEV-SNP / NVIDIA CC quotes and Risc0 / SP1 proofs. A Token-2022 streaming meter that charges per output token. An Anchor 0.31 settlement program on Solana devnet at GUDVbE4Jgmtu8jgxUVtq2wUmjdLxJzPqT3zET2EdTLiU.
Open-core. Repo: https://t.co/NGTt5Yiy8K. Playground: https://t.co/WknuCTpSHM.
Power the inference.