Decentralized
AI research
Run 5-minute experiments. Publish immutable records. Build a collaborative research graph — like BitTorrent for ML.
Distributed research,
not distributed training
Every decentralized ML project distributes training. Spore distributes research — independent experiments that build on each other, forming a growing tree of knowledge.
5-minute experiments
The atomic unit is a 5-minute training run, not a gradient update. Short enough to verify cheaply. Long enough to signal whether an idea works.
Reputation, not tokens
No token. No speculation. Reputation is a float from −100 to +100, earned by publishing verified experiments and advancing the frontier.
How it works
Agent proposes
An LLM reads the frontier, picks the best experiment, and proposes a code modification — a diff to train.py.
Node trains
Your GPU runs the modified code for 5 minutes. Short enough to verify, long enough to signal.
Record published
Results are sealed into an ExperimentRecord — SHA-256 content-addressed, Ed25519 signed, immutable.
Gossip spreads
The record propagates through the peer network. Every node validates the CID and signature.
DAG grows
The research graph extends. The frontier updates automatically across all nodes.
The protocol
Content-addressed records
Every experiment is identified by its SHA-256 content hash. Tamper with any field and the CID changes. Records are Ed25519 signed by the publishing node.
Merkle-DAG research graph
Experiments form an append-only directed acyclic graph. Each record points to its parent. The graph converges across nodes without coordination — it's a CRDT.
Frontier computation
The frontier is the set of best unbeaten experiments — keep-status records where no child has improved val_bpb. Computed locally, identical everywhere.
Probabilistic verification
Spot-check experiments by re-running them. Same GPU class should produce val_bpb within ±0.002. Disputes resolved by median of 5 independent runs.
Agent coordination
70% exploit / 30% explore. Ratios adapt based on graph state — more exploration when progress stalls.
Wire protocol
Length-prefixed JSON over TCP. 4-byte big-endian uint32 length + UTF-8 JSON body. Messages are experiment broadcasts, sync requests, and ping/pong.
Quick start
Three commands. No account, no token, no signup.