Anchor / Devnet

Program reference

Everything the client and the oracle consumers need: core addresses, instruction surface, account shapes, and event contracts.

Program live on devnet
Canonical address

Program ID

The single source of truth for explorer lookups, CPI consumers, and on-chain registry reads.

Upgradeable
2paXpX8Ze3tvYezviSwQJSSihG3LbrDiD7SNsaFwgTow
Explorer
Derived accounts
RegistryAccount
65B
seeds: [b"registry"]

Global config, operator authority, stake parameters.

NetworkHealthAccount
632B
seeds: [b"network_health"]

Canonical oracle surface for CPI consumers.

ObserverAccount
128B
seeds: [b"observer", pubkey]

Per-observer state, stake escrow, latest attestation.

Instruction surface
9 public instructions
InstructionCallerBehavior
initializedeployerBootstraps registry and network health accounts.
register_observerobserver daemonCreates observer PDA and escrows stake.
submit_attestationobserver daemonPublishes reachability, RTT, slot latency, client diversity, and stake-weighted reach.
crank_aggregationpermissionlessRecomputes regional and global scores.
deregister_observerobserver or authorityCloses active participation and returns stake.
slash_observerauthorityPenalizes malicious or stale observers.
update_configauthorityAdjusts caps, stake threshold, and pause state.
propose_authorityauthorityStarts a two-step authority handoff.
accept_authoritynew authorityAccepts a pending authority handoff.
Account schemas
FieldTypeDescription
health_scoreu8Global score from 0 to 100.
tpu_reachability_pctu8Average TPU success rate.
avg_slot_latency_msu32Average slot latency.
active_observer_countu16Active observers in score computation.
active_region_countu16Regions currently included.
last_updated_slotu64Freshness anchor for consumers.
last_updated_tsi64Unix timestamp for the last aggregate update.
min_health_everOption<u8>Lowest global score observed since initialization.
max_health_everu8Highest global score observed since initialization.
total_attestationsu64Cumulative writes from the network.
region_scores[RegionScore; 7]Per-region score buckets.
agave_countu16Network-wide Agave validators seen.
firedancer_countu16Network-wide Firedancer validators seen.
jito_countu16Network-wide Jito validators seen.
solana_labs_countu16Network-wide Solana Labs validators seen.
other_countu16Network-wide other-client validators seen.
Events and score model
ObserverRegistered

Observer accepted with stake escrowed.

ObserverDeregistered

Observer removed from active set.

ObserverSlashed

Stake penalty emitted by authority.

AttestationSubmitted

Signed network measurement committed.

ConfigUpdated

Registry configuration changed.

Score formula
observer_score = (reachability_pct * 0.70) + (latency_score * 0.30)
latency_score = max(0, (400 - slot_latency_ms) / 400 * 100)
global_score  = avg(non_stale_region_scores)

stale_threshold = 150 slots