Repository · Apache-2.0 · v1.1 release candidate

The source. Read it. Run it. Audit it.

Kern is an open protocol. The reference implementation in Python is ~33 000 lines of code with 692 tests passing, ready to clone, run, and review. Every design decision is in the code. The whitepaper is the spec; the repository is the implementation.

Lines of code
~33k
Pure Python, no dependencies on other chains
Tests passing
692
Unit, integration, property-based
Markdown specs
55
Architecture, setup, protocol details
License
Apache-2.0
Forever. No asterisks.

Five minutes to a running node

Run Kern locally in three commands.

Clone the repository, install the explorer extras, run the tests, and start a local devnet with three validators. Open Heimdall in your browser and watch blocks arrive in real time.

Read the full developer guide →
~/code · kern · bash
# Clone the reference implementation $ git clone https://github.com/vaneeckhoutnicolas/kern $ cd kern # Install with dev + explorer extras $ pip install -e ".[dev,explorer]" # Run the full test suite $ pytest tests/ 692 passed, 2 skipped in 18.87s # Start a 3-validator local devnet $ python networks/devnet_bootstrap.py # In another terminal, start Heimdall (explorer) $ heimdall → http://127.0.0.1:8800

What you'll find

The repository, top-down.

Two top-level packages: the protocol (kern/) and the explorer (kern_explorer/). Everything else is documentation, setup scripts, or tests.

kern/
├── kern/                       # Core protocol (L1)
│   ├── crypto.py               # Ed25519, blake2b, base58check
│   ├── transaction.py          # 11 OpKinds incl. attestations
│   ├── block.py                # BlockHeader, merkle root
│   ├── chain.py                # State machine + governance + delegation
│   ├── consensus.py            # Three-phase BFT
│   ├── network.py              # asyncio P2P gossip
│   ├── rpc.py                  # JSON-over-HTTP + /metrics
│   ├── storage.py              # SQLite-backed persistence
│   ├── rollup.py               # Optimistic rollup
│   ├── governance.py           # Dual-track + equivocation
│   ├── attestation.py           ★ v1.1-rc slashable primitive
│   ├── zk_claims.py             ★ v1.1-rc Groth16 / BN254
│   ├── evm/                    # EVM (for rollups)
│   └── skald/                   # Skald language + 10 templates
├── kern_explorer/              # Heimdall — explorer + monitoring
│   ├── app.py                  # FastAPI: 19 HTML + 12 JSON routes
│   ├── indexer.py              # Async chain follower
│   ├── templates/              # 19 Jinja2 templates
│   └── monitoring/             # 7 Grafana dashboards + alerts
├── docs/                       # 55 markdown specs and guides
├── tests/                      # 692 tests
├── scripts/                    # keygen, genesis, wallet CLI
├── networks/                   # devnet bootstrap
├── pyproject.toml
└── README.md

Two things this repository is not

It is not a fork of another L1. Every line of Python was written for Kern, with one external dependency (py_ecc for BN128 curve, imported as a package). The originality is documented and audited per file via SPDX headers and authorship lines.

It is not a marketing repository. There is no roadmap of vapourware features. What is in main is what runs.

  • Every .py file carries the SPDX header and founder attribution line — verified by the originality test suite
  • The whitepaper is in docs/whitepaper.md (source of the rendered version on this site)
  • The roadmap is in docs/roadmap.md and docs/post-code-roadmap.md — honest about what's done vs. planned

Documentation

Find the guide for your role.

Setup guides are organised by who's reading. Each one is precise enough that a competent practitioner can follow it end-to-end with copy-paste commands. Click through to the rendered version on GitHub.

Contribute

Three ways to engage with the project.

There is a contributors program with KRN allocations earmarked for sustained work in any of these three directions. See docs/contributors-program.md for the criteria.

01

Code

Core protocol, Skald language enhancements, Heimdall improvements (sessions 2-4 of the Heimdall plan are still open), additional Skald templates for new institutional use cases. The 4 sessions in the Heimdall delivery plan are all candidates for further work.

contributors-program.md →
02

Audit

Independent review of the v1.1-rc reference implementation. The internal review found and fixed seven issues; a professional audit is the next gating item before Yggdrasil testnet. Firms welcome to engage.

setup-auditor.md →
03

Use cases

If you are an institution with a real STO, PGF round, oracle network, or attestation use case you want to deploy, reach out. The v1.1-rc verticals exist to be used; pilots will shape v1.2 priorities.

Read the invitation in the manifesto →

Licensing & authorship

Open source, attributed forever.

Apache-2.0

The reference implementation

Every Python file in kern/ and kern_explorer/ is published under Apache-2.0. You can use it, modify it, link to it from proprietary software, redistribute it. There is no copyleft requirement: you are not obliged to open-source your own code. The conditions are the usual permissive ones — retain the copyright and license notices, include the license and NOTICE file, and state significant changes. Apache-2.0 also grants an express patent license, which is why it is a common choice for protocols that want broad institutional and commercial adoption.

CC-BY-SA-4.0

Documentation, whitepaper, manifesto

Markdown documentation, the whitepaper, and the manifesto are under Creative Commons Attribution-ShareAlike 4.0. You can quote, translate, and adapt them as long as you credit the author and preserve the license. Translations and adaptations are explicitly encouraged. The author of the original work — Nicolas Van Eeckhout — is named in every file, and Belgian moral rights law (Article XI.165, Code of Economic Law) protects this attribution.