Reference
IdleBench Docs
IdleBench is a CLI + verification API for IDLE compute providers. Run the CLI on your hardware to generate a signed benchmark report. It uploads to IdleBench and creates a public verification page with an embeddable badge.
Install CLI
Prerequisite: Node.js 18+
IdleBench runs via npx, which is bundled with Node.js. You must have Node.js 18 or higher installed on your machine before running any command.
Check your current version:
node --versionIf Node.js is not installed or below v18, download it from nodejs.org ↗ (LTS version recommended). Most Linux servers and macOS systems can install it via a package manager.
Run with npx (recommended)
Once Node.js is installed, run the benchmark using npx. This downloads and executes the CLI on-demand — no global installation needed.
npx idlebench runInstall globally (optional)
If you benchmark frequently, install the CLI globally so it is always available without downloading each time:
npm install -g idlebenchidlebench runIdleBench never asks for private keys or seed phrases. A security notice is printed at every startup.
Run benchmark
The run command is the main benchmark flow. It walks you through an interactive setup, checks your hardware locally, calculates a score, saves a report file, and uploads it to IdleBench.
npx idlebench runInteractive prompts
What gets checked
After the benchmark
A signed JSON report is saved locally as idlebench-report-[timestamp].json. It is uploaded to IdleBench automatically. The CLI prints your public verification URL and badge URL on completion.
If the upload fails (network error, server down), the local file is preserved. You can upload it later with idlebench upload.
Doctor
Checks your local environment without running a benchmark or uploading anything. Useful for diagnosing issues before committing to a full run.
npx idlebench doctorUpload report
Uploads a previously saved report JSON without re-running the benchmark. Useful if a previous run completed locally but the upload step failed.
idlebench upload ./idlebench-report-1717200000000.jsonThe report is validated against the expected schema before uploading. The report hash is verified to ensure the file has not been modified.
Version
Prints the installed CLI version.
idlebench versionThe CLI version is also embedded in every uploaded report under metadata.cliVersion.
Badge embed
Every verified resource gets a dynamically generated SVG badge. Embed it in GitHub READMEs, IDLE listings, or any website. The badge updates automatically when a new benchmark is run.
Badge URL
https://idlebench.dev/api/badge/[resource-id]Find the resource ID in the verification page URL: /resource/[id]
Markdown
[](https://idlebench.dev/resource/RESOURCE_ID)HTML
<a href="https://idlebench.dev/resource/RESOURCE_ID">
<img src="https://idlebench.dev/api/badge/RESOURCE_ID" alt="IdleBench Verified" />
</a>IDLE gateway
During idlebench run, you are prompted for your IDLE endpoint URL. Providing it links your IdleBench score directly to your IDLE listing — buyers see the grade before routing workloads to your resource.
IDLE endpoint URLs follow this format:
https://gateway.earnidle.com/ep/[your-endpoint-id]You can find your endpoint URL on your resource listing at earnidle.com. If you skip this field during the benchmark, you can re-run to add it at any time.
API reference
All endpoints are on the IdleBench base URL. Use the API Playground to test them live in your browser.
/api/reports/uploadUpload a benchmark report from the CLI. Creates provider and resource records if they do not exist. Invalidates cache. Returns the public resource URL, score, and grade.
/api/resources/createRegister a resource without a benchmark report. Pass walletAddress, name, resourceType, and optional idleGatewayUrl.
/api/reports/[id]/jsonDownload the raw benchmark report JSON for a given report ID. Returns the full signed report as a JSON attachment.
/api/badge/[id]Returns an SVG badge for a given resource ID. Embeddable in README files, IDLE listings, and websites. Cached for 5 minutes.
/api/dashboard?wallet=[address]Returns provider profile, resources, recent reports, and aggregate stats for a given Solana wallet address.
/api/health/checkReturns database connection status, API version, and resource/report counts. Use for uptime monitoring.
Scoring model
The final score is a weighted average of five sub-scores. The identical formula runs inside the CLI and on the server — you can verify any score independently.
GPU model matched against a curated score table. VRAM adds a small bonus. CPU cores and RAM used as fallback for CPU-only nodes.
Docker installed = +40 pts. CUDA available = +25 pts. Docker GPU runtime = +15 pts. Starts at 20.
CPU hash workload timing, matrix calculation, and GPU container readiness. Faster = higher score.
Latency to IdleBench API. <20ms → 100. <100ms → 82. <200ms → 60. >600ms → 15.
Starts at 75. Bonuses for ≥8 CPU cores, ≥16 GB RAM, ≥32 GB RAM, and ≥64 GB RAM.
Grade thresholds
GPU score table (selected)
GPU is matched by name substring. Unrecognised GPUs score 50.