NuvexNetwork/nuvex
Nuvex is a Solana-native verifiable compute and oracle protocol, still pre-mainnet, whose own README documents unresolved security gaps instead of hiding them: its VRF proof verification relies on solana-ecvrf 0.0.1 (RFC 9381 ECVRF-Edwards25519-SHA512-TAI) which has no known audit, max_fee is stored but never actually charged, and VRF fulfillment is first-come among any node meeting the configured stake/heartbeat threshold — meaning an operator who funds several keys at a low minimum stake can selectively pick which randomness output gets used. The deploy-mainnet script is stubbed to exit before any transaction, and unresolved design questions (fee shares, challenge/reject state transitions) are tracked as explicitly blocked ADRs rather than quietly shipped.
What it is
NuvexNetwork/nuvex, a pre-mainnet Solana verifiable compute and oracle protocol. The repository itself is scoped to on-chain programs, SDKs, CLI, and a health-only node — the website, docs site, and off-chain services live in separate repos.
Preconditions / Affected
Milestone 3 is the current state: VRF fulfillment via solana-ecvrf 0.0.1 works, but nothing moves money and nothing deploys to mainnet. Node fulfillment requires: the node is active, stake meets the configured minimum, heartbeat is inside the configured window, and the key was registered before the request. A minimum stake of zero satisfies this trivially, which is explicitly called out as not resisting the multi-key selection problem.
How it works
Three unresolved issues are tracked as deliberately blocked ADRs rather than left undocumented:
- ADR 0004: no audit exists for solana-ecvrf 0.0.1, the crate verifying ECVRF proofs.
- ADR 0001: challenge/reject/fail state transitions are forbidden; only cancel, expire, and VRF fulfillment are live transitions right now.
- ADR 0003: fee shares and weighted selection don't exist — fulfillment is first-come among nodes meeting the predicate, with no weighted lottery, and max_fee is stored but never collected.
What to do
make checkruns formatting, Clippy,cargo build-sbffor the three programs plus the test callback consumer, Rust tests, and JS SDK tests. Requires Solana CLI and platform tools; program tests loadtarget/deploy/*.sovia LiteSVM 0.17 (needs the default SBF architecture because verification callssol_sha512).- Build the node image with
docker build -f node/Dockerfile -t nuvex-oracle-node:local . - Copy
env/.env.local.exampleto.env.localbefore pointing any process at a cluster — RPC URLs, program IDs, and key paths are environment variables, not source defaults. - Development program keypairs are gitignored under
keys/program/; public IDs inAnchor.tomlare local-only IDs, not something to treat as stable. - Do not run
scripts/deploy-mainnet.shexpecting it to deploy — it exits before sending any transaction, by design.
Caveats
Milestone 4 (indexer, Postgres, API, dashboard) is scoped next, but fees remain unset until ADR 0005 names basis points, and mainnet deployment is explicitly out of scope until then. The page states "no audit report was found" for solana-ecvrf 0.0.1 — this is an absence noted by the maintainers, not a confirmed negative audit result.
Organisations named here
- ECVRF-EDWARDS25519-SHA512-TAI
- RFC 9381
Technologies named here
- solana-ecvrf
- nuvex
- LiteSVM
- nuvex-oracle-node
- make check
- sdk/rust and sdk/js
- cli/
- Solana CLI and platform tools
- Docker
- Solana
- Rust
Related in Blockchain

THORChain Exploit Report #2 — GG20 root-cause disclosure

Black Thursday revisited: MakerDAO keeper exploited for $500K
.jpg)