Built with open tools and standards
Verifiable infrastructure for programs that need proof, not promises
Node heartbeat···
Illustration · not chain data
Verifiable randomness
LiveA VRF request is fulfilled with an ECVRF proof that the verification program checks before the output is written.
Oracle data
In developmentA public price median is available from the API when enough sources are fresh. It is not written on-chain. Arbitrary data jobs are still not designed.
Verifiable compute
PlannedOff-chain execution with a committed result is a reserved job type. No compute job runs today.
AI inference
PlannedInference requests share the same request lifecycle. How to verify a model output is an open research question.
Open requestOPEN
- job_type
- VRF
- requester
- your program
- input
- 32-byte seed
- callback
- consumer program
- max_fee
- recorded, not charged
Three programs
oracle-core holds requests, oracle-registry holds nodes and stake, and verification checks proofs. Each is an Anchor program.
Learn moreProgramsAnchor 1.2
- oracle-corerequests, callbacksLive
- oracle-registrynodes, stake, slashLive
- verificationECVRF proofsLive
Account derivation
The Rust and TypeScript SDKs derive every program address and can prove a VRF output locally. They do not send transactions yet.
Learn morerequest.ts
// TypeScript SDKimport { requestPda } from "@nuvex/sdk";const [request] = requestPda(coreProgramId, requester, requestId,);
Operator process
The node binary exposes health and metrics. It does not load a VRF key or submit a fulfilment.
Learn morenuvex-oracle-nodeHealth only
- /healthok
- /metricsexposed
- VRF keynot loaded
- fulfilmentsnot submitted
Read model
The indexer copies observed request, node, and proof accounts. The API and console can list them. That list is not chain authority.
Learn moreterminal
$ nuvex networkNUVEX_API_URL is unset$ nuvex --helpnode request registry staking network
Rust SDK
PDA helpers for every account and a prove_vrf function that keeps the secret with the caller.
Learn moreprove.rs
// Rust SDK, secret stays locallet proof = nuvex_sdk::prove_vrf(&secret, &request, JobType::Vrf, &input,)?;// proof.proof: [u8; 80], proof.output: [u8; 64]
TypeScript SDK
The same derivations for web clients. Submitting a request throws until transactions are wired.
Learn morerequest.ts
// TypeScript SDKimport { requestPda } from "@nuvex/sdk";const [request] = requestPda(coreProgramId, requester, requestId,);
Command line
network reads the configured API and refuses to invent status if the URL is unset. The other operational commands still refuse to send.
Learn moreterminal
$ nuvex networkNUVEX_API_URL is unset$ nuvex --helpnode request registry staking network
Proofs checked in a program
The output is written only after the verification program accepts the ECVRF proof for that exact request. A node cannot swap in a different output after the fact.
Learn moreVerificationRFC 9381
- COMMITTEDproof submitted with the output
- VERIFIEDECVRF checked by the program
- FINALIZED64-byte output written
- EXECUTEDcallback ran, no accounts passed
Stake before fulfilment
Nodes lock the configured stake and heartbeat inside a window. A node that misbehaves can be slashed. A minimum of zero offers no resistance, and the docs say so.
Learn moreStake and heartbeatper node
Minimum stake
configured
Heartbeat window
configured
Registered before request
required
Slash
available
Register
- Join registry
- Lock stake
- Heartbeat
Register a node
A node key joins the registry, locks stake, and starts heartbeating before it can fulfil.
Verify
proof
80 B
output
64 B
Verify the proof
RFC 9381 ECVRF on Ed25519. 80-byte proof in, 64-byte output out, all inside the program.
Callback
accounts passed0
EXECUTED
Deliver the output
The callback program receives the output and no accounts, so it cannot be handed extra authority.
Nuvex is written with the same tools Solana developers already use. These are dependencies and standards, not partners.
Protocol README
Eligibility
“A node fulfills only when it is active, its stake meets the configured minimum, its heartbeat is inside the configured window, and the key was registered before the request.”

Open source
Programs, SDKs, CLI, and node live in one public repository under Apache-2.0.
Not audited yet
No independent audit has been performed. The VRF crate has no published audit either.
3
Solana programs
80
Byte ECVRF proof
64
Byte VRF output
1/4
Job families live
Building verifiable compute on Solana






