Skip to content
Notes from the repository

Posts about the code that exists in the protocol repository and the decisions recorded next to it. Every claim here points at a README, an ADR or a security document.

Earth from orbit beside a spacecraft
Nuvex maintainersMilestone 4

Protocol

The read model copies accounts. It does not decide them

Milestone 4 adds an indexer, a PostgreSQL store, and a read API the console and CLI can query. An empty list is a real answer. A row in that list is still not a finalized result.

Read the post
A circuit layout photographed as white traces on black
Nuvex maintainersMilestone 3

Security

The multi-key weakness the README admits

An operator who funds several node keys can choose which of those outputs to submit. The eligibility predicate does not close that, each extra key only costs the configured minimum stake, and a minimum of zero resists nothing. Here is what still holds, and what would have to change.

Read the post
Green terminal characters on a dark display
Nuvex maintainersMilestone 3

Economics

What max_fee does, and what it does not do

Every request carries a max_fee. In Milestone 3 that number is written to the request account and nothing is ever taken from the requester. ADR 0005 splits the fee into four roles and deliberately leaves every basis point unset.

Read the post
Macro photograph of a populated circuit board
Nuvex maintainersMilestone 2

Callbacks

The callback that receives no accounts

When a request sets a callback, oracle core performs one CPI into that program with the 64-byte output and zero accounts. ADR 0006 chose the empty account list on purpose, because a fulfiller that can pass accounts chooses what the callee touches.

Read the post
Network racks with fibre running across black doors
Nuvex maintainersMilestone 3

Network

Why a node is eligible, and why that is not a lottery

ADR 0003 replaced the idea of an assignment with a predicate: active status, stake at or above the minimum, a heartbeat inside the window, and a key registered before the request. Whoever meets it first wins the race, and nothing in this repository submits that transaction yet.

Read the post
Aurora over a snow field under a star field
Nuvex maintainersMilestone 3

Verification

How a VRF proof is verified on-chain

Milestone 3 verifies randomness with solana-ecvrf 0.0.1: RFC 9381 ECVRF-EDWARDS25519-SHA512-TAI, an 80-byte proof and a 64-byte output, checked inside the verification program. No audit report of that crate was found, and ADR 0004 records the absence.

Read the post
Earth from orbit, night side lit by cities
Nuvex maintainersMilestone 0

Milestones

Milestone 0: workspace initialization

The first milestone produced a workspace rather than a protocol: program crates, shared libraries, a health-only node, SDK skeletons and documentation. VRF algorithm selection and the request transition graph were recorded as open decisions instead of being guessed.

Read the post