Getting started

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.

Getting started

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.

python
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)
API reference

Endpoints

All endpoints require a bearer API key. Base URL: https://api.darkbloom.dev

MethodPathDescription
POST/v1/chat/completions[OI]-compatible chat, streaming supported
POST/v1/completionsText completions
POST/v1/messagesAnthropic Messages API compatible
POST/v1/audio/transcriptionsSpeech-to-text (Cohere Transcribe)
POST/v1/images/generationsImage generation (FLUX.2 Klein)
GET/v1/modelsList available models
GET/v1/pricingPer-model pricing
GET/v1/providers/attestationPublic attestation feed

Chat completions

bash
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.

Providers

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:

bash
# 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

LevelNameVerification
self_signedSelf-AttestedSecure Enclave signature + periodic challenge-response
hardwareHardware-AttestedMDA certificate chain from Apple Enterprise Attestation Root CA

Attestation data for every provider is public at GET /v1/providers/attestation.

Reference

Security model

Darkbloom prevents anyone — including providers — from reading consumer prompts:

LayerWhat it does
E2E encryptionCoordinator encrypts requests with the provider’s X25519 key before forwarding; only the hardened provider process decrypts
Hardened Runtime + SIPBlocks debugger attachment, memory reads, code injection
Secure Enclave attestationHardware-bound P-256 identity, signed attestation blobs
Binary hash verificationCoordinator verifies the provider runs a blessed binary
Challenge-responseSIP / Secure Boot re-verified every 5 minutes
MDM SecurityInfoCross-checks hardware integrity (SIP, Secure Boot, FileVault)
MDA certificate chainOptional Apple Enterprise Attestation Root CA verification
Hypervisor isolationStage 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.

Reference

Architecture

ComponentLanguageRole
CoordinatorGoControl plane: routing, attestation, billing, API
ProviderRustInference agent: security, attestation, WebSocket client
ConsoleNext.jsWeb dashboard: chat, billing, provider verification
macOS appSwiftUIMenu bar app: status, scheduling, earnings
Secure EnclaveSwiftHardware-bound P-256 identity
Image bridgePythonDraw 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.