MultiChain is fully compatible with the Open Assets protocol and reference client
Open Assets is one of several protocols for issuing and transacting assets over the bitcoin blockchain. The reference implementation of Open Assets is colorcore, which acts as a wrapper for the Bitcoin Core reference client for bitcoin, providing a command line and RPC server for asset operations.
MultiChain is fully compatible with Open Assets and colorcore. This enables applications which use colorcore on the bitcoin blockchain to be easily ported to a private blockchain, without modifying any of the application or colorcore code.
These instructions assume you are using MultiChain 1.0 alpha 4 or later.
Creating a colorcore-compatible private blockchain
You should begin by downloading and installing MultiChain. Now let’s create a private blockchain which is compatible with colorcore:
multichain-util create colorchain
colorchain can be changed, in which case the corresponding changes should be made to the rest of these instructions.
~/.multichain/colorchain/params.dat to change the following settings:
initial-block-reward = 5000000000
address-pubkeyhash-version = 00
address-scripthash-version = 05
private-key-version = 80
address-checksum-value = 00000000
Then add the following lines to
txindex=1 (this is required by colorcore in any case)
hideknownopdrops=1 (this hides MultiChain metadata from its API responses)
Now the MultiChain blockchain can be started in the usual way:
multichaind colorchain -daemon
Check everything is OK by running:
multichain-cli colorchain getinfo
Installing and configuring colorcore
Make a copy of the
rpcpassword values from
~/.multichain/colorchain/multichain.conf as well as the
default-rpc-port value from the
Follow the colorcore installation instructions and use the following settings in colorcore’s
rpcurl=http://[rpcuser]:[rpcpassword]@localhost:[default-rpc-port] where the values in
 are substituted with those you noted earlier.
You can test that everything is working by running a colorcore command like:
python colorcore.py getbalance
Depending on your version of Linux, you may need to use
python3 instead of
python above, and
pip3 instead of
pip during colorcore installation.
Configuring additional nodes
To configure an additional MultiChain node, first obtain the node address from the first (or any subsequent) node in your private blockchain. This is displayed on the command line when the node starts up or can be obtained from the
nodeaddress field of the response to
multichain-cli colorchain getinfo. Assuming you followed the example above, the node address will begin
Download and install MultiChain on the new node, then try connecting to your blockchain:
multichaind colorchain@... -daemon
You should see an error message about requiring connect permissions, and you should add permissions on the first node for the address displayed. Before running MultiChain again, add the following lines to
~/.multichain/colorchain/multichain.conf on the new node:
Now you can run MultiChain again, and this time you should connect successfully:
multichaind colorchain -daemon
Follow the instructions above to install colorcore on this second server in the same way as the first.
That’s it! Now you can use colorcore over a private blockchain in exactly the same way as over the bitcoin network.