A platform which makes building blockchains and 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 the blockchain parameters which affect the entire chain and network.
- API commands for controlling MultiChain and possible error codes and messages.
- Customizing the runtime parameters which affect the behavior of individual nodes.
MultiChain 2.0 preview
MultiChain 2.0 is now under development, and preview releases are available with preliminary documentation.
Get product updates (one email per month max)
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.
Some guides related to running MultiChain in production:
- Production blockchain parameters – recommended settings for long-term deployment.
- Upgrading nodes and chains – keeping up to date with new MultiChain features and maintenance releases.
- Using cold nodes and wallets – to keep private keys away from nodes connected to the network.
- Backing up and restoring nodes – being prepared for catastrophic system failures.
- Clustering for high availability – minimizing downtime due to power cuts, system crashes or loss of connectivity.
More learning materials
Below are links to third party materials which can help get you up to speed with MultiChain:
- Blockmate – web-based tutorials, interactive documentation and interface for the MultiChain API.
- Short video: Create a MultiChain private blockchain in 90 seconds.
- Tutorial: Get started with MultiChain on Windows and part 2: Creating a Java client.
- 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. Almost all 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 extends the bitcoin protocol and software in many ways, as described below. All extensions to the block and transaction formats use bitcoin-compatible metadata (
OP_DROP) to ensure that tools built for bitcoin can also be used with MultiChain.
- 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 extends bitcoin’s scheme.
- Mining and block signatures (use
OP_RETURNin coinbase transaction).
- Extended peer-to-peer handshaking to include node identification.
Open source code
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.
- 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.
Below are several third libraries which provide convenient wrappers for the MultiChain JSON-RPC API:
- C#: MultiChainClient by Lucid Ocean, which includes a blockchain explorer. See also C# MultiChainLib, an older library.
- Go: Go MultiChain Client by Alex Breadman.
- Java: MultiChainJavaAPI by Worldline. Also: MultiChain Client Java by Karavasilis Giannis.
- PHP: libphp-multichain by Kunstmaan Labs.
- Python: Savoir by DXMarkets. Also: CoBlo RPC client by Content Blockchain, with code completion and documentation.
- Ruby: multichain-client by The Open Data Institute.