Practical overview
When it fits
Use Mako for Bitcoin implementation research, learning, and non-production experiments where its missing features and incomplete status are acceptable.
Who it is for
- C developers exploring Bitcoin data structures and protocol primitives.
- Researchers and learners studying an independent Bitcoin implementation.
- Developers experimenting with command-line Bitcoin node workflows.
Documented uses
- Study a from-scratch Bitcoin implementation written in near-C89 C.
- Reuse Bitcoin data structures and primitives through the libmako core library.
- Build the documented mako and makod command-line binaries for experimentation.
- Examine the separation between a no-I/O core library and a full-node library.
Requirements & limits
- The core library performs no I/O; full-node functionality is separated into libnode.
- The documented build uses CMake and make and produces mako and makod.
- The project is described as near-C89 and more-or-less dependency-less, with lcdb vendored.
- The README says not to use Mako in production.
- Wallet and wallet RPC functionality are absent, some RPC calls are missing, and consensus support does not include Taproot.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Build Mako’s experimental command-line binaries
Use the documented build commands to produce the mako and makod binaries for experimentation.
Before you start
- A Linux or Windows/Win32 environment; the README says the project has so far been tested on Linux and Win32 via MinGW cross-compilation.
- CMake and make, as used in the documented build commands.
Steps
From the project directory, run
cmake . -DCMAKE_C_FLAGS=-g -DCMAKE_BUILD_TYPE=Release.Run
make.The documented build produces
makoandmakod; their arguments mimic bitcoin-cli and bitcoind, respectively.
Expected outcome
The build produces the two command-line binaries for experimental use.
Guide limitations
- The README says not to use Mako in production and describes the node as incomplete.
- Some RPC calls, including getblocktemplate, are missing; wallet functionality is absent; consensus support does not include Taproot.
- The README says the project has so far been tested on Linux and Win32 only.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 17 October 2026
- Original website title
- chjj/mako · Official homepage title · retained in its source language

