October 3, 2026 at 9:41 AM

Litepaper · v0.3 · October 3, 2026

A fleet of Macs. One endpoint.

Silicon Network runs large open models on Apple Silicon Macs, behind one OpenAI-compatible endpoint that also speaks the Claude and Ollama formats. This paper describes the system as built: its parts, the path of a request, how the Macs that serve it are checked, and how money moves. Where something is planned, it says so.

Status, October 3, 2026

  • The gateway, control plane, relay and billing watcher are deployed. No engine is connected yet, so nothing serves inference.
  • Top-up crediting and card payments are built and not yet switched on.
  • Verification sampling and moderation are built and off.
  • Operator payouts are off. The published go/no-go checklist reads no-go.
  • There is no token.

1. The problem

Frontier inference runs in a handful of data centers owned by a handful of companies. That concentration sets the price, decides which models you may call, and puts your data on someone else's hardware.

The hardware already exists. Apple Silicon puts a capable GPU next to a large pool of unified memory, which is what large models need most, and most of these machines spend their day idle. The gap is coordination, not silicon.

2. The system

Five parts, each with one job.

  • Engine. Runs on each Mac. It loads open models (Llama, Qwen, DeepSeek, GLM, gpt-oss and others) with MLX and shards a model too large for one machine across Macs on the same local network: pipeline parallel over an ordinary LAN, tensor parallel over Thunderbolt 5 with RDMA. Its port is never exposed to the internet.
  • Gateway. The only public entry point, api.siliconnetwork.io. It admits each request, routes it to a Mac, streams the answer back, and counts the tokens.
  • Control plane. Accounts, teams, keys, prices, balances, the node registry, the scheduler and the ledger. The system of record, in Postgres.
  • Relay. A Mac behind NAT opens one outbound WebSocket over port 443 and the gateway reaches it through the relay. No open port, no tunnel to configure. The relay counts tokens in transit, a second source the control plane reconciles against.
  • Trusted engine. An engine the platform runs itself. Verification re-scores sampled responses on it, and moderation, when on, screens prompts with it. Today it is one Mac.
ArchitectureA caller sends an HTTPS request to the gateway at api.siliconnetwork.io, the only public entry point. The gateway asks the control plane to authenticate the key, schedule a node and record usage. It forwards the request to an operator Mac over a private network, or through the relay to a Mac behind NAT, which dialed out to the relay over port 443. Macs on one local network form a cluster that can shard one model. Operator Macs register, heartbeat and attest to the control plane. The gateway also uses a platform-run trusted engine to score sampled responses and, when enabled, to screen prompts.Your appOpenAI, Claude orOllama clientHTTPSControl planeaccounts, keys, billing,scheduler, ledgerGatewayapi.siliconnetwork.io,the only public doorTrusted enginea platform-run Mac:verification, moderationauth, schedule,usagescore samples,screen promptsRelayMacs dial outover port 443Operator MacsApple SiliconMac StudioMac miniLAN cluster: onemodel, shardedbehind NATMacBook ProMac miniprivate networkregister, heartbeat, attestrequest pathcontrol trafficMac serving a model
The parts and the traffic between them. Green marks a request in flight and a Mac serving it.

The API covers OpenAI Chat Completions and Responses, Claude Messages, Ollama chat and generate, embeddings, rerank, audio transcription and speech, image generation and edits, and the Files and Batch APIs. Existing clients switch by changing a base URL.

One limit shapes the design. A model is sharded only inside one local network, where links are fast. A Mac reached over the internet serves the models it holds whole, and the scheduler routes whole requests between clusters. Sharding one model across regions is planned, not built.

3. A request, end to end

A streaming chat completion crosses every part, in six steps.

Request lifecycleA sequence across five participants: caller, gateway, control plane, operator Mac and trusted engine. 1, admission: the caller sends a request with an API key; the gateway verifies the key with the control plane, cached, and gets back its scope, pins and credit, then checks the IP allowlist and rate limit. 2, moderation: when enabled, the gateway screens the prompt with Llama Guard on the trusted engine. 3, routing: the gateway asks the control plane to schedule a node by model, trust, the key's pins, prefix cache and context length. 4, serving: the gateway forwards the request to the operator Mac, which streams tokens back through the gateway to the caller. 5, metering: the gateway counts the tokens and sends a usage event, which the control plane prices. 6, receipt: on request, the Mac signs a receipt and the gateway countersigns it for the caller.CallerGatewayControl planeOperator MacTrusted engine1 Admissionkey, scope, IP list,rate limit, creditrequest, API keyverify key (cached)scope, pins, credit2 ModerationLlama Guard,off by defaultscreen the prompt3 Routingmodel, trust, pins,prefix cache, contextschedulea node4 Servingbatching, adapters,structured outputthe requesttokens, streamedstream5 Meteringgateway counts,control plane pricesusage event6 Receipted25519, opt-insigned receiptcountersigned
One request as a sequence. Moderation and receipts are optional; the rest happens on every request.
  1. Admission. The gateway checks the key with the control plane (cached for 15 seconds, so a short control plane outage does not stop known keys), then the key's scope, IP allowlist, rate limit, credit and spend caps. A refused request costs nothing.
  2. Moderation. When enabled, Llama Guard on the trusted engine screens the prompt before routing, so a refused prompt never reaches an operator's Mac. It is off by default.
  3. Routing. The scheduler picks an online Mac that holds the model, ranked by trust and filtered by the key's pins (regions, operators, attested nodes only). A prompt that shares a prefix with an earlier one goes back to the Mac that has it in cache; the match uses a keyed hash per organization, never text. A request can name a quantization (llama-3.1-8b@8bit) or a quality tier, a long prompt goes only to Macs that report enough context, and a list of models acts as a fallback chain.
  4. Serving. The engine batches requests continuously, can decode speculatively, holds output to a JSON schema when asked, and applies LoRA adapters per request on a shared base model, so a fine-tune costs its own few megabytes rather than a copy of the model. Inside a cluster, a long prompt can be prefilled on one Mac and decoded on another.
  5. Metering. The gateway counts tokens from the stream it relayed and sends a usage event, which the control plane prices. If the control plane is down, the event waits on disk and is replayed; duplicates are dropped by request id. A Mac's own count is bounded by what the gateway saw, so a node cannot inflate a caller's bill.
  6. Receipt. On request, the Mac signs a receipt with its attestation key: hashes of the request and the response, the model's hash and the token counts. The gateway checks it and countersigns, and the SDKs verify both signatures against published keys. This is software attestation, not a hardware root of trust.

Routing does not yet weigh latency or distance between caller and Mac. That is planned.

4. Verification and trust

A distributed network raises a fair question: how do you know a Mac ran the model you asked for? Our answer today is statistical, not cryptographic.

The gateway samples a share of live requests on every surface that can earn and checks each against the trusted engine. For text the check is DiFR: the trusted engine scores the tokens the node actually served, in one teacher-forced pass, under the node's own sampler settings. An honest node's tokens score where the trusted model expects them, at any temperature; a node running a smaller model drifts. Embeddings are compared by cosine similarity, rerank and transcription by re-execution, tool calls by a replay at temperature 0. Canary probes cover idle nodes.

One sample proves little, so verdicts pool per node and model. The pool is tested against a bound on the false-accuse rate: 0.5 percent to withhold an earning, one in a million to slash. A failure can slash only when the node runs the same engine version, weights and model card as the trusted engine; anything else only lowers the node's rank. Quorum, which compares one request across several nodes, never slashes, since a colluding majority could otherwise outvote an honest node.

Verification and escrowTop, verification: a live request served by a node is sampled at a set rate on every surface that can earn. The trusted engine scores the node's own tokens with DiFR in one teacher-forced pass; canary probes cover idle nodes the same way. Verdicts pool per node and model under a bounded false-accuse rate, and a failure can slash only when the node's engine version, weights and model card match the trusted engine's. Bottom, escrow, built but switched off while operator payouts are off: an operator's share is escrowed per node and model, held for a 72 hour holdback window, then the sweeper releases it as payable credit when the pool passes and live samples landed, or slashes the escrow and docks the bond on a failure beyond doubt. Any failure lowers the node's rank, with payouts on or off; quorum failures do only that. A bond refund waits out an unbonding period of at least 168 hours, during which the bond stays slashable.VerificationLive requesta node serves itSampleda share of requests,every surface thatcan earnTrusted enginescores the node'sown tokens (DiFR,one pass)Pooled verdictper node and model,tested against afalse-accuse boundCanary probescover idle nodesRank downon any failureverdicts gaterelease and slashEscrowbuilt, switched off while operator payouts are offEarning escrowedthe operator's share,per node and modelHoldback window72 hours, then thesweeper decidesRelease: payable creditthe pool passes and live samples landedSlash: escrow forfeit, bond dockeda failure beyond doubt, identity matchedA bond refund waits out an unbondingperiod, max(168 h, holdback); the bondstays slashable until it ends.
Verification runs on its own; the escrow it gates is built and switched off while operator payouts are off.

Earnings sit in escrow per node and model through a 72 hour holdback. The sweeper releases them only when live samples landed and, for chat, the pool passes. A failure beyond doubt forfeits the escrow and docks the operator's bond. A bond refund waits out an unbonding period of at least 168 hours, and the bond stays slashable until it ends. All of this is built; none of it moves money while payouts are off.

Limits

This is not a proof. Calibration so far covers one model family, small Llama 3.2 models, in process: no honest pool failed, and a 1B model served as 3B was caught by pools of ten samples in 98 to 100 percent of trials at temperatures up to 1.0. Above 1.0, detection drops sharply. Speech and image checks are built and stay off until they are calibrated.

Nodes also sign the hashes of the weights they run (ed25519), and a key can require attested nodes, but that attestation is software. Hardware attestation and a cryptographic proof of inference are planned research, and need hardware the current supply does not have.

5. Money

Callers prepay. A balance is credit in US dollars, topped up with stablecoins: USDT or USDC on Arbitrum One, USDC on Base, or USDT on Tron. A card works too: Privy's checkout buys USDC on Base into an embedded wallet, which then pays like any other. A watcher credits each transfer once its block is final, after a second RPC provider re-reads it from the chain. A platform fee applies to top-ups, and the dashboard shows the exact credit before you pay.

Spend is per token and per model, with a lower rate for cached prompt tokens, per-unit prices for images and audio, a discount for batch work, and a higher rate for the long-context tier. Organizations and individual keys can carry spend caps. The cost explorer breaks spend down by day, key, model and project tag, and exports it.

Money flowCallers top up with stablecoins, USDT or USDC on Arbitrum One, USDC on Base, or USDT on Tron, or with a card through Privy, which buys USDC on Base and pays the same way. A watcher credits each transfer once it is final, after a second provider re-checks it on chain, less the top-up fee. The balance is prepaid credit in US dollars, with organization and per-key spend caps. Credit is spent per token and per model, metered by the gateway. The operator side is built and switched off: an operator's share would be escrowed, then released or slashed, and released earnings become operator credits spendable on inference, with no cash-out. No token is part of this flow.StablecoinsUSDT, USDC on Arbitrum OneUSDC on BaseUSDT on TronCard, through Privybuys USDC on Base,then pays like a walletWatchercredits at finality,re-checked on chain,less the top-up feeCreditsprepaid, in USD;org and keyspend capsSpendper token, per model,metered bythe gatewayOperator earningsbuilt, switched off; the go/no-go reads no-goOFFOperator shareescrowed, thenreleased or slashedOperator creditsspent on inference,no cash-outNo token is part of this flow.Callers are billed on what the gatewaycounted, never on a node's own claim.
Top-ups become prepaid credit and credit is spent per token. The operator side is built and switched off.

Operators who contribute Macs would earn a share of what callers paid for the work their nodes served, as credits spendable on inference. There is no cash-out, and none is being built. The earning path is built, escrow and bond included, and switched off. A published go/no-go checklist names what must be true first: verification deployed, calibration per model family on real traffic, bond and slash sized for real prices, and an external audit. Today it reads no-go.

There is no token in any of this. Inference is paid in stablecoins or by card, and nothing in the network reads or requires a token.

6. Operating it

Joining

An operator signs in from the menu bar app or the engine's dashboard with a one-time code, approves it on the web, and the Mac joins. Behind NAT it joins through the relay and opens no port. The operator chooses which running models to offer.

Updates

Engine releases are signed with ed25519 over a manifest that pins the hash of every file, roll out to a percentage of nodes, and install automatically where the operator opts in. The menu bar app updates through Sparkle with its own signature. No release key is pinned yet, so no release has shipped this way.

Keys

Keys carry a checksum, so a leaked one can be recognized in public code; the endpoint for GitHub's secret scanning revokes or flags a reported key (registration with GitHub is pending). A key can be limited to IP ranges, and unusual use (a spike, many new addresses, a new country, an unusual model mix) notifies the organization's owners or suspends the key.

Privacy

A request marked no-retention is never re-executed for verification, and the Mac is told to keep it out of its logs and caches. The control plane stores no API prompt content; the chat app keeps a user's conversations for the retention they choose. An operator can still see the prompts its Mac serves, so keys can be pinned to vetted operators. Confidential compute is planned.

Visibility

A public status page shows 90 days of uptime and incidents, with RSS and JSON feeds. A monitor watches the services and the billing watcher and alerts by email, Slack, Telegram or a signed webhook.

Building on it

A chat app at /chat runs on the same endpoint. TypeScript and Python SDKs (both verify receipts) and integrations for LangChain, LlamaIndex, the Vercel AI SDK, Continue, Open WebUI, LiteLLM, n8n and Zapier are written and tested, and will be published once inference is live.

7. What is built, what is not

Deployed

The gateway, the control plane, the relay and the billing watcher, and this site with its dashboard.

Built, not yet switched on

  • Inference through production: no engine is connected yet.
  • Top-up crediting on chain, and card payments.
  • Verification sampling, and moderation.
  • Operator payouts, behind the go/no-go checklist.
  • Signed releases and engine auto-update, until a release key is pinned.
  • The SDKs and integrations, until they are published.
  • Linux nodes with CUDA: packaged, not yet run on a GPU.

Planned, not built

  • Sharding one model across regions.
  • Latency-aware routing.
  • Hardware attestation and a cryptographic proof of inference.
  • Confidential compute.
  • A second trusted engine, so verification does not rest on one Mac.

Decided against

Cash-out of operator earnings. Operators earn credits for inference, nothing else.

We will update this paper as these change, and will not claim any of them before they are real.

Try it on your own hardware?

Run a node on your own Mac, or sign up for the managed endpoint. Same OpenAI-compatible API either way.