Darkbloom Documentation
Darkbloom is a decentralized private inference network running on hardware-attested Apple Silicon. This guide covers the consumer API, running inference, and earning as a provider.
Research preview. Darkbloom is under active development and has not been audited. Expect rough edges, breaking changes, and downtime. Use for testing, not production.
Quickstart
The API is [OI]-compatible — any [OI] SDK works by changing the base URL. Get an API key from the console after signing in.
from openai import OpenAI client = OpenAI( base_url="https://api.darkbloom.dev/v1", api_key="$DARKBLOOM_API_KEY", ) resp = client.chat.completions.create( model="google/gemma-4-26b-8bit", messages=[{"role": "user", "content": "Explain zero-knowledge proofs"}], ) print(resp.choices[0].message.content)
Endpoints
All endpoints require a bearer API key. Base URL: https://api.darkbloom.dev
| Method | Path | Description |
|---|---|---|
POST | /v1/chat/completions | [OI]-compatible chat, streaming supported |
POST | /v1/completions | Text completions |
POST | /v1/messages | Anthropic Messages API compatible |
POST | /v1/audio/transcriptions | Speech-to-text (Cohere Transcribe) |
POST | /v1/images/generations | Image generation (FLUX.2 Klein) |
GET | /v1/models | List available models |
GET | /v1/pricing | Per-model pricing |
GET | /v1/providers/attestation | Public attestation feed |
Chat completions
curl https://api.darkbloom.dev/v1/chat/completions \ -H "Authorization: Bearer $DARKBLOOM_API_KEY" \ -H "Content-Type: application/json" \ -d '{"model": "google/gemma-4-26b-8bit", "messages": [{"role": "user", "content": "Hi"}], "stream": true}'
Streaming responses include trust metadata — the attestation state of the provider that served each request.
Anthropic Messages
The Anthropic Messages API is supported at /v1/messages with the same request/response shape, so existing Anthropic SDKs work with a base-URL change.
Transcription
Upload audio to /v1/audio/transcriptions (multipart). Served by Cohere Transcribe 03-2026, a 2B conformer model.
Models
GET /v1/models returns the curated catalog. Models are only listed after coordinator verification.
Pricing
GET /v1/pricing returns per-model input/output rates. See the pricing table for current rates.
Become a provider
Earn by serving inference on your idle Mac. Requirements: an Apple Silicon Mac with at least 36 GB unified memory (depending on the model you serve), macOS with SIP enabled.
Install
Zero prerequisites — the installer bundles the provider binary, Python 3.12 runtime, vllm-mlx, ffmpeg, and Secure Enclave tooling:
# From the release page or the console's Providers tab curl -fsSL https://api.darkbloom.dev/install.sh | bash # Pick a model from the catalog, link your account: darkbloom login darkbloom models darkbloom start
A native SwiftUI menu bar app is also available with status, scheduling, model management, diagnostics, and earnings.
Scheduling
Configure availability windows so the provider only runs when your Mac
is idle. Outside scheduled hours the backend shuts down and GPU memory
is freed. Configured in the app or directly in
~/.config/eigeninference/provider.toml.
Trust levels
| Level | Name | Verification |
|---|---|---|
self_signed | Self-Attested | Secure Enclave signature + periodic challenge-response |
hardware | Hardware-Attested | MDA certificate chain from Apple Enterprise Attestation Root CA |
Attestation data for every provider is public at GET /v1/providers/attestation.
Security model
Darkbloom prevents anyone — including providers — from reading consumer prompts:
| Layer | What it does |
|---|---|
| E2E encryption | Coordinator encrypts requests with the provider’s X25519 key before forwarding; only the hardened provider process decrypts |
| Hardened Runtime + SIP | Blocks debugger attachment, memory reads, code injection |
| Secure Enclave attestation | Hardware-bound P-256 identity, signed attestation blobs |
| Binary hash verification | Coordinator verifies the provider runs a blessed binary |
| Challenge-response | SIP / Secure Boot re-verified every 5 minutes |
| MDM SecurityInfo | Cross-checks hardware integrity (SIP, Secure Boot, FileVault) |
| MDA certificate chain | Optional Apple Enterprise Attestation Root CA verification |
| Hypervisor isolation | Stage 2 page-table memory isolation |
The residual threat — physically probing memory chips soldered into the SoC — is the same one Apple accepts for Private Cloud Compute.
Architecture
| Component | Language | Role |
|---|---|---|
| Coordinator | Go | Control plane: routing, attestation, billing, API |
| Provider | Rust | Inference agent: security, attestation, WebSocket client |
| Console | Next.js | Web dashboard: chat, billing, provider verification |
| macOS app | SwiftUI | Menu bar app: status, scheduling, earnings |
| Secure Enclave | Swift | Hardware-bound P-256 identity |
| Image bridge | Python | Draw Things gRPC integration for FLUX models |
Providers connect outbound over WebSocket — no port forwarding needed. The coordinator encrypts each request with the provider’s X25519 public key before forwarding it.