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.
- Working with smart filters to code custom validation rules for transactions or data.
- Customizing the runtime parameters which affect the behavior of individual nodes.
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).
- 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.
- Enterprise streams – additional stream features in MultiChain Enterprise.
Some guides related to running MultiChain in production:
- Production blockchain parameters – recommended settings for long-term deployment.
- Tips for performance optimization – recommended server specifications and usage patterns.
- Upgrading nodes and chains – keeping up to date with new MultiChain features and maintenance releases.
- Backing up and restoring nodes – being prepared for catastrophic system failures.
- Cold nodes and wallets – to keep private keys away from nodes connected to the network.
- Clustering for high availability – minimizing downtime due to power cuts, system crashes or loss of connectivity.
Tools and libraries
Official tools to help with MultiChain development:
- Explorer 2 – web-based browsing of blockchain activity (written in Python).
- Web Demo – simple web interface for many APIs (written in PHP).
Below are several libraries which provide convenient wrappers for the MultiChain JSON-RPC API:
- C#: MultiChainClient by Lucid Ocean and C# MultiChainLib, an older library.
- Go: Go MultiChain Client by Alex Breadman.
- Java: MultiChainJavaAPI by Worldline and MultiChain Client Java by Karavasilis Giannis.
- PHP: MultiChain PHP library (official), libphp-multichain by Kunstmaan Labs and MultiChain-API-PHP by Chris Baumann.
- Python: MultiChain Python library (official), Savoir by DXMarkets and CoBlo RPC client by Content Blockchain.
- Ruby: multichain-client by The Open Data Institute.
More learning materials
Below are links to third party materials which can help get you up to speed with MultiChain:
- 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)
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
- Feed file format for database integration in MultiChain Enterprise.
- Inline metadata in regular transaction outputs (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.
If you have any questions or problems, please ask in the developer Q&A or contact us if the question is confidential.