If you’re familiar with bitcoin, you’ll feel right at home with MultiChain.
Quick start for developers
To understand the basics of working with MultiChain, start with these:
- How to create or connect to a blockchain.
- Customizing your blockchain parameters.
- API commands for controlling MultiChain.
It is also recommended to work through the Getting Started guide.
Compatibility with Bitcoin Core
A key design principle of MultiChain is maximal compatibility with Bitcoin Core, the reference client for the bitcoin network. As a fork of Bitcoin Core, MultiChain shares the following technical characteristics:
- Command-line arguments which affect how MultiChain is run – see running bitcoin.
- Network protocol which defines how MultiChain nodes communicate with each other – see bitcoin protocol.
- JSON-RPC API which provides a way for external software to control MultiChain – see bitcoin API.
- Transaction format which defines the meaning of the raw bytes in a transaction – see bitcoin transactions.
- Script language which provides the rules for determining whether an output can be spent – see bitcoin scripts.
- Block format which defines the meaning of the raw bytes in a block and its header – see bitcoin blocks.
As a result, the vast majority of the information in the Bitcoin Developer Documentation is applicable to MultiChain.
Differences from Bitcoin Core
In order to support features such as multiple networks, custom blockchain parameters, permissions, assets and streams, MultiChain does make some changes to Bitcoin Core’s operations. To the maximum extent possible, these use transaction metadata (
OP_DROP) so that existing bitcoin-compatible code can still be used with a MultiChain network. A detailed description of these changes is provided below:
- Additional runtime parameters that can be used on the command line or in a node’s per-chain config file.
- Permissions management transactions (use
OP_DROPmetadata in transaction outputs).
- Native asset transactions (use
- Data stream transactions (use
- Extensions to the raw transactions APIs to support MultiChain-specific metadata and more.
- The format of addresses and private keys which differs slightly from bitcoin’s scheme.
- Mining and block signatures (use
OP_RETURNin coinbase transaction).
- Extended peer-to-peer handshaking to include node identification.
Below are links to materials which can help get you up to speed with MultiChain:
- Short video: Create a MultiChain private blockchain in 90 seconds
- Paid course: How to set up a MultiChain blockchain using AWS EC2 (third party, link includes discount)
We’re looking to expand this list, so please contact us and let us know what you’re looking for.
Open source code
MultiChain is open source under the GPLv3 license, available on Github.
Tools and libraries
Below are some tools for helping with MultiChain development.
- MultiChain Explorer – web-based browsing of blockchain activity.
- MultiChain Web Demo – simple web interface for many APIs.
- C# MultiChainLib – C# wrapper for the MultiChain JSON-RPC API by PBJ Cloud.
- libphp-multichain – PHP wrapper for the MultiChain JSON-RPC API by Kunstmaan Labs.
- multichain-client – Ruby wrapper for the MultiChain JSON-RPC API by The Open Data Institute.
- Savoir – Python wrapper for the MultiChain JSON-RPC API by DXMarkets.
- docker-multichain – Docker images for a simple 3-node MultiChain setup by Kunstmaan Labs.