Provider accuracy leaderboard
curl --request GET \
--url http://localhost:3101/api/leaderboard/providersimport requests
url = "http://localhost:3101/api/leaderboard/providers"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('http://localhost:3101/api/leaderboard/providers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3101",
CURLOPT_URL => "http://localhost:3101/api/leaderboard/providers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:3101/api/leaderboard/providers"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:3101/api/leaderboard/providers")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3101/api/leaderboard/providers")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data_mode": "<string>",
"generated_at_iso": "<string>",
"total_scores": 123,
"windows": {},
"window_requested": "<string>",
"served": {},
"read_this_first": {
"data_mode": "<string>",
"meaning": "<string>",
"null_means": "unmeasured, never zero",
"every_rate_has_a_denominator": "<string>",
"methodology": "<string>"
}
}Public HTTP endpoints
Provider leaderboard
Vendor accuracy scored against chain data. Three data modes, and why null is never zero.
GET
/
api
/
leaderboard
/
providers
Provider accuracy leaderboard
curl --request GET \
--url http://localhost:3101/api/leaderboard/providersimport requests
url = "http://localhost:3101/api/leaderboard/providers"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('http://localhost:3101/api/leaderboard/providers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3101",
CURLOPT_URL => "http://localhost:3101/api/leaderboard/providers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:3101/api/leaderboard/providers"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:3101/api/leaderboard/providers")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3101/api/leaderboard/providers")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data_mode": "<string>",
"generated_at_iso": "<string>",
"total_scores": 123,
"windows": {},
"window_requested": "<string>",
"served": {},
"read_this_first": {
"data_mode": "<string>",
"meaning": "<string>",
"null_means": "unmeasured, never zero",
"every_rate_has_a_denominator": "<string>",
"methodology": "<string>"
}
}The path is
/api/leaderboard/providers, not /api/providers/leaderboard.Three data modes, not two
{
"read_this_first": {
"data_mode": "measured",
"null_means": "unmeasured, never zero",
"every_rate_has_a_denominator": "check `scored` before quoting `hit_rate`"
}
}
| Mode | Meaning |
|---|---|
not measured | Demonstration data. No provider was contacted. No number in the response measures any company |
measured, total_scores == 0 | The methodology and query definitions are real. There are no measurements because none exist yet |
measured, total_scores > 0 | Every row came from a live provider call scored against chain data |
Two rules for reading any rate
null means unmeasured
Never zero. A provider with
null accuracy was not tested — it did not score badly.Check the denominator
A
hit_rate of 1.0 over scored: 1 is not a track record. Read scored before quoting the rate.Only three providers are rankable
Of the six named providers, only Nansen, Arkham, and Dune receive scores. Etherscan and Helius are structurally unscoreable because they are the ground-truth instruments the others are scored against — ranking an instrument against itself is circular. The board publishes this as a labelled exclusion rather than quietly ranking six. See Provider reliability methodology.Windows
Pass?window=30d|90d|all to return a single scoring window. Omitting it returns all three. The served block reports whether the response came from the live engine or the committed board — the committed board is a legitimate source, not a degraded one, but a consumer comparing two responses is entitled to know why they differ.
Scienter publishes impersonal market signals of general and regular circulation. Nothing here is investment, legal, or tax advice, or a recommendation to buy, sell, or hold any asset. Scienter is not a registered investment adviser or broker-dealer. Trading digital assets can result in the total loss of your funds — see Disclaimers for the full text.
Query Parameters
Return a single scoring window instead of all of them.
Available options:
30d, 90d, all