Documentation Index Fetch the complete documentation index at: https://docs.blindference.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
Get a Blindference node running and earning in under 5 minutes.
Prerequisites
Python 3.10 or higher
pip (Python package manager)
A terminal with internet access
No GPU required for mock inference
Step 1: Install
pip install blindference-node
For GPU-accelerated local inference (optional):
pip install "blindference-node[gpu]"
Step 2: Initialize
This smart command checks your environment first:
Detects env vars — if BLF_PRIVATE_KEY is set, auto-imports wallet (no prompt)
Detects GPU — checks for NVIDIA GPU and vLLM availability
Detects API keys — if GROQ_API_KEY or GOOGLE_API_KEY set, includes cloud models
Prompts only what’s missing — wallet creation, password, API keys
Saves configuration — writes ~/.blindference/config.json
Example Output
============================================================
Blindference Node — Initialisation
============================================================
→ BLF_PRIVATE_KEY found in environment, importing wallet …
Node address : 0xdDef3Cf5A4d0A6404Bc084D74de3E2c0d6147dA5
Detecting GPU …
GPU : NVIDIA GeForce RTX 4090
VRAM : 24.0 GiB
Tier : 0
Models : facebook/opt-125m
Cloud API keys detected:
• Groq : ✓
• Gemini : ✓
Running determinism self-test …
Determinism self-test PASSED
Configuration saved to ~/.blindference/config.json
============================================================
Initialisation complete!
Address : 0xdDef3Cf5A4d0A6404Bc084D74de3E2c0d6147dA5
Tier : 0
Models : facebook/opt-125m, groq:llama-3.3-70b-versatile, gemini:gemini-2.5-flash
Attestation : mock
Cert expiry : 604800
============================================================
NEXT STEPS
──────────────────────────────────────────────────────────
1. Set cloud API keys (if no GPU):
echo 'GROQ_API_KEY=gsk_...' > ~/.blindference/.env
echo 'GOOGLE_API_KEY=AI...' >> ~/.blindference/.env
2. Run attestation:
blindference-node attest --mock
3. Start the node:
blindference-node run
============================================================
Step 3: Attest Your Node
Before running, you must attest your node with the ICL:
# Interactive attestation (choose mock or TEE)
blindference-node attest
# Or skip interactive menu and use mock directly
blindference-node attest --mock
# Or with custom development key
blindference-node attest --mock --tee-key mydevkey
Interactive Attestation Flow
Attestation type:
[1] Mock (development)
[2] TEE / TPM (production)
Select [1]:
Option 1 (Mock) : Uses weloveblindference key — fastest, no hardware needed
Option 2 (TEE) : For production hardware attestation (SGX/TDX/TPM)
On-Chain Registration (Optional)
After ICL attestation, the CLI asks:
Do you want to register on-chain? [Y/n]:
→ Gas estimate : 487,231 units
→ Est. cost : 0.000058 ETH
→ Send registration transaction? [Y/n]:
Mock/development tiers can skip this. Production tiers require it.
Example Output
============================================================
Blindference Node — Attestation
============================================================
Node address : 0xdDef3Cf5A4d0A6404Bc084D74de3E2c0d6147dA5
Attestation : mock (development)
Challenge ID : 5c4f336c-0b17-478c-90dc-26c7378170c6
Cert hash : 0xc5ebc8e0bf4e4e12a623831a6fdd52d4
Expiry : 1779419149
ICL tier : 0
Final tier : 0
Attestation saved to ~/.blindference/config.json
============================================================
Attestation complete!
============================================================
Step 4: Start the Daemon
Enter your keystore password when prompted. The daemon starts three concurrent loops:
Loop Frequency Purpose ICL Heartbeat Every 60s Proves liveness to ICL (free REST call) On-Chain Heartbeat Every 10 days Proves liveness to NodeRegistry (gas tx) Attestation Watchdog Every 10min Auto-re-attests if certificate expires within 6h Assignment Poller Every 5s Polls ICL for pending inference jobs
Example Output
============================================================
Blindference Node Daemon
============================================================
Address : 0xdDef3Cf5A4d0A6404Bc084D74de3E2c0d6147dA5
Tier : 0
Models : facebook/opt-125m, groq:llama-3.3-70b-versatile, gemini:gemini-2.5-flash
Cert : expires in 604663s
[INFO] Daemon starting ...
[INFO] Heartbeat sent to ICL
[INFO] No assignments for last 60s
[INFO] Heartbeat sent to ICL
[INFO] Received 1 assignment(s)
[INFO] Spawning leader job 0xabc123...
[INFO] Job 0xabc123: starting as leader
[INFO] Job 0xabc123: claimed
[INFO] Downloaded prompt blob from IPFS
[INFO] Decrypted prompt key via CoFHE
[INFO] Running inference via Groq...
[INFO] Inference complete. Result hash: 0xdef456
[INFO] Storing output key for user...
[INFO] Submitting leader result to ICL
[INFO] Leader result accepted
Step 4: Verify
Check that your node is registered:
curl -s http://127.0.0.1:9000/v1/nodes/active | python3 -m json.tool
You should see your node address in the active nodes list.
Next Steps
Configuration Customize node settings, models, and endpoints
Attestation Learn about attestation tiers and hardware requirements