A spec-first reimagining of the Neuron SDK

Specs are the product.
Code is the proof.

Neuron gives any device a verifiable identity, signed communication, provable liveness, and a way to buy and sell data peer-to-peer on a public ledger. This project writes that protocol down — completely, in language-neutral specifications — so that anyone, and any AI coding agent, can build on it without reverse-engineering a codebase.

neuron — ask the specs
$ ask "how do I send a simple message from one peer to another?"
→ reading specs/004-topic-system/spec.md … specs/009-p2p-data-delivery/spec.md
Wrap it in a TopicMessage envelope — sender address, signature, timestamp, sequence number, payload — and publish it to the other peer's stdIn topic. The receiver verifies the signature before accepting. For high-volume data, skip the topic and open a direct encrypted P2P channel instead. [004 FR-T02/T03, 009 FR-D02]
$
The problem

The old way was solid — and slow.

The original Neuron SDK earned its keep: it has kept real nodes registered, heartbeating, and trading data for many months in production. But the way it was built stopped matching the speed we — and our contributors — need to move at.

The code was the spec

The only definition of "what Neuron does" was the running implementation plus scattered docs. New contributors had no statement of intent to build against — only behaviour to reverse-engineer. Every question needed an archaeologist.

The p2p complexity tax

Peer-to-peer systems are genuinely hard. NAT traversal, relays, transports, encryption — all tangled into the application logic. Trying a different transport or communication style meant fighting the plumbing instead of expressing an idea.

Nowhere to push

With requirements living in people's heads, contributors couldn't tell what was a bug, what was a design decision, and what was an accident. Energy showed up — and bounced off. The needle barely moved.

The bet

Spec-first: the protocol moves at the speed of text.

So we flipped it. Instead of code that implies a protocol, the protocol is now written as the source of truth — numbered requirements, wire formats, golden test vectors — and implementations follow from it. This is new and genuinely exciting territory, and it changes who gets to build.

One contract, any language

The specs are language-neutral. Go, TypeScript, Rust, C++ — every implementation answers to the same requirement IDs and the same byte-level test vectors (spec 006), so they stay honest to each other by construction.

Built for AI agents

A precise spec is the ideal input for an agentic coding tool. Hand the requirements to an agent and it builds your node, in your stack, on your transport — hours instead of months. The reference code here exists to prove the specs work, not to be your product.

A surface to contribute on

A requirement can be read, argued with, versioned, and PR'd. "FR-H03 doesn't make sense" is a contribution. You don't need to be a coder to move the protocol forward — and that's exactly the point.

Proven in the field

This already runs end-to-end.

At two field test sites, a Remote ID sensor (drones) and an ADS-B sensor (aircraft) independently publish their detections into Neuron. A single buyer holds both sessions and feeds both streams into the same map UI — drones and aircraft together, each track carrying verifiable provenance: who sensed it, who signed it, who got paid. The whole path runs on the specs in this repo — identity, registration, payment, encrypted P2P delivery, SAPIENT messaging, display. Over time this stack is intended to replace the current Neuron SDK.

end-to-end, in one line
$ cd impl/golang && go run ./cmd/buyer-seller-demo --mode=mock
→ negotiation ✓ escrow funded ✓ ECIES-encrypted delivery ✓ validator verdict ✓ (<1s, zero infrastructure)
Get your hands dirty

Don't read the specs. Interrogate them.

Honestly: some of these specs are as hard to read as code — they're deliberately precise, not pretty. So let an AI do the dense reading. Click a question and the answer streams straight into the terminal at the top of this page — generated by DeepWiki from this repository's index, grounded in the actual spec files. Free, no account, no tab-hopping. Prefer to browse? DeepWiki also hosts a full generated wiki of the repo.

// click a card → the answer streams into the terminal above — takes ~15–30 s, worth it

Using your own AI instead? General-purpose models already "know" a little about Neuron and Hedera from training data — and that folklore is often wrong for this protocol. Pin the model to the repo with this prompt:
You are helping me understand the Neuron protocol. Use ONLY the files in
this repository as your source of truth. Ignore anything you think you
already know about "Neuron", "Hedera", or similar projects from your
training data — if it isn't in these specs, it doesn't count here.

For every claim you make:
- cite the spec and requirement ID (e.g. "005 FR-H03") or the file path
  you took it from;
- if the specs are silent, ambiguous, or seem to contradict each other,
  say so plainly ("the specs don't define this" / "these two look
  inconsistent") instead of guessing or filling the gap from memory.

My question: <ask away>
The corpus

Eighteen specs, two layers.

Specs 001–013 are the base Neuron layer — the protocol every node speaks. Specs 015–018 are the DApp layer: real applications built on it over the open SAPIENT (BSI Flex 335) standard. The DApps will eventually move to their own repositories; they live here so this first release is something whole you can actually run.

Where it stands

First public draft. Actively maturing. Help wanted.

We're publishing early, on purpose — protocols get better faster in the open. Here's the honest state of things:

Found something off? If a spec is wrong, missing, or reads inconsistently, that's the most valuable feedback we can get. Open an issue, send a PR, or bring it to our Discord and let's flesh it out together. You don't need to be a coder — "this requirement doesn't make sense" is exactly the conversation we're here for.
Question copied — paste it into DeepWiki ↗