PlainChain is a working blockchain node written from scratch in TypeScript — no blockchain SDKs, every hash and signature from Node's own crypto. Run it on a laptop, read every rule, and see the test that proves each one.
Proof of work with fork-aware difficulty, or a Clique-style proof of authority where an approved set of signers take turns — the right choice for a group of companies sharing a ledger.
Bitcoin-style UTXO accounting, coinbase maturity, halving schedule, checkpoints, and crash-safe chain reorganisations.
Peer discovery, header-first sync, reputation and bans, and every message from a peer type-checked before the node looks at it.
12-word recovery phrases, multiple accounts, watch-only wallets, fee bumping, and a light client that verifies proofs itself instead of trusting the node.
JSON-RPC with authentication, rate limiting and TLS; health and Prometheus metrics; JSON logs; Docker and Kubernetes packaging.
Smart contracts, a public token, transaction privacy. It is a ledger, not a platform.
git clone https://github.com/behrouzbk/plainchain.git
cd plainchain
npm ci
npm test # 622 tests, about three minutes
npm run simulate # three real node processes mine, propagate, and agree
Then follow the hands-on walkthrough: create two wallets, mine, pay, bump a fee, and verify the payment with the light client — every command with its expected output. Three containers with docker compose up; the same mesh on Kubernetes with kubectl apply -k k8s/base.
The free guide, Read the whole chain in an afternoon, walks the six modules in the order they are built — crypto, ledger, state, consensus, network, RPC — with one test to run and one exercise for each: add a rule test-first, break and repair the UTXO set, change fork choice and watch the reorg tests fail, write an attack against a live node.
Six chapters on the same codebase. Each one removes one to three real functions from the node — a Merkle proof, the transaction rules, the UTXO set, block validity and fork choice, the network boundary, a wallet that verifies its own payments — and asks you to write them back, with the node's own tests as the judge.
Every chapter: the idea from scratch, a guided tour of the surrounding code, a worked example with real hashes and amounts, the implementation step by step with the reason for each rule, a table of common mistakes and the test that catches each, every test explained, the attacks the rules stop (with the real bugs and CVEs behind them), a quiz with answers, and exercises beyond the tests. Plus a runner that applies and checks each exercise, the reference solution, and a private Q&A space. About 8–10 hours.
Enter your GitHub username at checkout; an invitation to the private course repository follows within a minute of payment. Questions first? info@axieo.ca.
Test-first, with one rule at a time: every consensus or network rule was added together with a test showing the attack it prevents — an inflated coinbase, a forged seal, a double-spend, a peer claiming a block hash it did not earn. The threat model lists about 55 such threats, each pointing at the code that stops it and the test that proves it, plus the risks that are accepted on purpose.
Security status: internally audited with a public threat model; eight findings fixed. No independent security review yet — treat it as pre-audit software and do not put value you cannot afford to lose on a chain built with it. Vulnerabilities: see SECURITY.md.
From a business problem to a design a team can build: data model, trust boundaries, deployment, operations, cost.
A proof-of-authority network for your consortium — configured, integrated with your systems, documented, handed over running, with operator training.
One or two days, live: your engineers run a network together and modify the rules. Understand the technology in days instead of months.
Services are provided by Axieo Technologies Inc. Write to info@axieo.ca with a paragraph about the problem, or see axieo.ca/services. Toronto, Canada.