A blockchain platform which makes building applications a joy.
Quick start for developers
We recommend working through the Getting Started guide, then reviewing the following pages for more details:
- How to create or connect to a blockchain.
- Customizing your blockchain parameters.
- API commands for controlling MultiChain and possible error codes and messages.
For examples of more advanced usage of MultiChain, follow the tutorials below:
- Permissions consensus – creating a consensual governance model for your blockchain.
- Asset reissuance – creating units of an asset and metadata in several stages.
- Atomic exchanges – safely swapping assets in a single transaction (delivery-versus-payment).
- Stream confidentiality – using three streams to efficiently manage selective disclosure.
- External key management – storing private keys outside of the MultiChain node’s wallet.
- Multisignatures – protecting assets and other activity under multiple users’ keys.
- Raw transactions – lower level APIs for building complex or unusual transactions.
More learning materials
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.
A key design principle of MultiChain is maximal compatibility with Bitcoin Core, the reference client for the bitcoin network. This includes bitcoin’s network protocol, transaction format, block format and output scripts, as well as Bitcoin Core’s runtime parameters and JSON-RPC API. As a result, the vast majority of the information in the Bitcoin Developer Documentation is applicable to MultiChain.
In order to support features such as multiple networks, custom blockchain parameters, permissions, assets and streams, MultiChain makes many changes to the bitcoin protocol and APIs. These make extensive use of transaction metadata (
OP_DROP) so that existing bitcoin-compatible code can still be used with a MultiChain network. Detailed descriptions of these topics are 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
- 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.
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 API by PBJ Cloud.
- MultiChainJavaAPI – Java wrapper for the MultiChain API by Worldline.
- libphp-multichain – PHP wrapper for the MultiChain API by Kunstmaan Labs.
- Savoir – Python wrapper for the MultiChain API by DXMarkets.
- multichain-client – Ruby wrapper for the MultiChain API by The Open Data Institute.
- docker-multichain – Docker images for a simple 3-node MultiChain setup by Kunstmaan Labs.
- YobiChain – a private blockchain ecosystem preloaded with MultiChain and related tools.