Node Scorecard API

Independent measurement and scoring of the Sentinel dVPN network. Pay per call in USDC over x402 — no account, no API key, no signup.

Paid endpoints

EndpointPriceReturns
GET /scorecard/network-stats$0.010Network-wide Sentinel dVPN health report: ASN concentration and HHI index, verified residential share, protocol mix, censorship-resistance mix, country distribution, SLA speed percentiles, P2P price percentiles. Also returns chain_registry: lifetime node registrations on the Sentinel chain versus nodes currently in active status, counted directly on-chain — the gap shows how much of the advertised network is actually alive. Pass network=akash for the Akash DePIN compute aggregate instead, which also returns trends_summary: how many providers are improving or declining in score over the tracked history.
network string, one of: sentinel | akash, default sentinel — Which network's stats: 'sentinel' (default) or 'akash' (DePIN compute aggregate: GPU capacity, country distribution, score percentiles). For akash, the response also includes a historical trend block (score, uptime and free GPU over time, with direction and delta).
GET /scorecard/recommend$0.010Ranked node recommendations for a stated need, diversified across ASNs and countries so the result is not concentrated on one provider. Returns one recommendation plus three alternatives.
need string — Free text describing the requirement, e.g. "privacy residential" or "speed europe". Matched case-insensitively.
country string — Restrict candidates to a single country, exact name, case-insensitive, e.g. "Germany".
GET /scorecard/nodes$0.005Snapshot of nodes with composite score, reliability, uptime, SLA speed, price, ASN, jurisdiction freedom and residential verification. Returns active nodes by default. Pass network=akash for DePIN compute providers (Akash).
all string, one of: 1 — Set to 1 to return every tracked node instead of only the active ones.
network string, one of: sentinel | akash, default sentinel — Which network to score: 'sentinel' (dVPN nodes, default) or 'akash' (DePIN compute providers; native GPU/uptime/audit shape, online providers only).
GET /scorecard/nodes/top$0.005Top nodes by composite score, with filtering and anti-concentration controls. Pass network=akash for top DePIN compute providers (Akash).
n integer, default 5, range 1-50 — How many nodes to return. Values outside the range are clamped.
max_per_asn integer, default 2, min 1 — Anti-concentration cap: maximum number of returned nodes sharing one ASN.
min_score number, default 0 — Minimum composite score, 0 to 100.
country string — Exact country name, case-insensitive.
protocol string, one of: v2ray | wireguard | xray | openvpn | hysteria2 | amneziawg — Filter by protocol. Also matches multi-protocol nodes that advertise it.
sla_only string, one of: true — Set to true to return only nodes that passed the SLA speed test.
network string, one of: sentinel | akash, default sentinel — Which network to score: 'sentinel' (dVPN nodes, default) or 'akash' (DePIN compute providers; native GPU/uptime/audit shape, online providers only).
GET /scorecard/node/:address$0.003Full scorecard for a single node, addressed by its sentnode1... bech32 (Sentinel) or akash1... owner (Akash) address. For akash the response also carries a trends block: score, uptime and free-GPU history for that provider, with direction, delta, min and max over the tracked window, so an agent can tell whether it is improving or declining before committing spend.
network string, one of: sentinel | akash, default sentinel — Which network to score: 'sentinel' (dVPN nodes, default) or 'akash' (DePIN compute providers; native GPU/uptime/audit shape, online providers only).

Free endpoints

Payment

Protocol
x402 v2
Base mainnet
eip155:8453
USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
pay to 0x0fcc5724d2dddf79ce1af1f091a823fd6438ef73
Solana mainnet
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
USDC EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
pay to 7KjmSaLhpJJScHEdmUV2CDR47FVxR7jv7DV8QEMszhDi
The facilitator sponsors the transaction fee, so no SOL is needed to pay.
Polygon mainnet
eip155:137
USDC 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359
pay to 0x0fcc5724d2dddf79ce1af1f091a823fd6438ef73
Arbitrum One
eip155:42161
USDC 0xaf88d065e77c8cC2239327C5EDb3A432268e5831
pay to 0x0fcc5724d2dddf79ce1af1f091a823fd6438ef73
Avalanche C-Chain
eip155:43114
USDC 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E
pay to 0x0fcc5724d2dddf79ce1af1f091a823fd6438ef73
Facilitator
https://facilitator.payai.network

Call any paid endpoint. The 402 response carries a PAYMENT-REQUIRED header with the full x402 payload. Sign and retry with the PAYMENT header. Failed requests (HTTP >= 400) are never settled.

Data

Independent collector polling every active node API directly, plus on-chain state. Not self-reported by node operators. Refresh: hourly. Responses cached 600s.