Pro extensions
Core ChainLaunch supports template export and import for both Fabric and Besu. ChainLaunch Pro adds template-driven Pro Sharing — sharing a template across paired instances so a partner org can join a consortium with one click.
Export, share, and import complete network configurations as portable templates. Templates capture everything needed to recreate a network: organizations, nodes, channels, policies, and chaincode definitions.
Overview
Network templates use a variable system (${varName.property}) to make configurations portable. When you export a network, concrete values (org IDs, node IDs, key IDs) are replaced with variables. When you import, you map those variables to resources on the target instance.
Supported platforms:
- Fabric — organizations, peers, orderers, channels, policies, consensus (etcdraft/smartbft), chaincode definitions
- Besu — validator keys, consensus config (QBFT), genesis parameters, alloc, smart contract definitions (ABI + bytecode)
Export a Network
Via CLI
chainlaunch networks fabric template export --network-id 1 --out my-network.jsonTemplate Structure
{
"version": "2.0.0",
"platform": "FABRIC",
"name": "supply-chain-network",
"description": "3-org supply chain network",
"variables": [
{
"name": "org1",
"type": "organization",
"description": "Manufacturing org"
},
{
"name": "org1Peer",
"type": "node",
"description": "Org1 peer node"
},
{
"name": "org1Key",
"type": "key",
"description": "Org1 signing key"
}
],
"network": {
"organizations": [
{
"mspId": "${org1.mspId}",
"peers": ["${org1Peer.id}"],
"orderers": ["${orderer1.id}"]
}
],
"channels": [
{
"name": "supply-chain",
"organizations": ["${org1.mspId}", "${org2.mspId}"],
"policies": {
"Readers": { "type": "ImplicitMeta", "rule": "ANY Readers" },
"Writers": { "type": "ImplicitMeta", "rule": "ANY Writers" },
"Admins": { "type": "ImplicitMeta", "rule": "MAJORITY Admins" }
}
}
],
"chaincodes": [
{
"name": "asset-tracker",
"version": "1.0",
"language": "golang",
"dockerImage": "chaincode/asset-tracker:1.0"
}
]
}
}Validate a Template
Before importing, validate that a template is well-formed and all variables can be resolved:
chainlaunch networks fabric template validate --file my-network.jsonResponse:
{
"valid": true,
"variables": [
{ "name": "org1", "type": "organization", "resolved": false },
{ "name": "org1Peer", "type": "node", "resolved": false }
],
"warnings": []
}If valid is false, the response includes errors explaining what's wrong.
Import a Template
Import creates the network and all associated resources (chaincodes, channels) in one operation.
Via CLI
Save the import-request JSON (template + variable bindings) to a file, then:
chainlaunch networks fabric template import --file import-request.jsonWhere import-request.json looks like:
{
"template": {},
"variableBindings": {
"org1": { "organizationId": 1 },
"org1Peer": { "nodeId": 5 },
"org1Key": { "keyId": 3 },
"org2": { "organizationId": 2 },
"orderer1": { "nodeId": 10 }
}
}Replace {} with the exported template JSON.
The variableBindings map template variables to actual resources on the target instance. You need to create the organizations, nodes, and keys first, then bind them during import.
Variable Types
| Type | Placeholder | Resolves to |
|---|---|---|
organization |
${varName.mspId} |
Organization MSP ID |
node |
${varName.id} |
Node ID |
key |
${varName.id} |
Key ID |
mspId |
${varName} |
Direct MSP ID string |
ethereumAddress |
${varName} |
Ethereum address (Besu) |
publicKey |
${varName} |
Public key hex (Besu) |
Besu Templates
Besu templates include genesis configuration with validator key references:
{
"version": "2.0.0",
"platform": "BESU",
"name": "defi-network",
"variables": [
{ "name": "validator0Key", "type": "key" },
{ "name": "validator1Key", "type": "key" }
],
"network": {
"chainId": 1337,
"consensus": "QBFT",
"blockPeriod": 5,
"epochLength": 30000,
"validatorKeys": [
"${validator0Key.id}",
"${validator1Key.id}"
],
"alloc": {
"${validator0Key.ethereumAddress}": {
"balance": "1000000000000000000000"
}
},
"smartContracts": [
{
"name": "TokenContract",
"abi": "[{...}]",
"bytecode": "0x608060..."
}
]
}
}Example Templates
ChainLaunch ships with example templates in the examples/templates/ directory:
| Template | Platform | Description |
|---|---|---|
fabric-supply-chain |
Fabric | 3-org supply chain with asset tracking chaincode |
besu-defi-network |
Besu | 4-validator QBFT network with token contract |
fabric-multi-org |
Fabric | Multi-org consortium with custom policies |
Use Cases
- Repeatable deployments — export a staging network template, import in production
- Client projects — system integrators can create template libraries for common patterns
- Disaster recovery — templates + backups give you full recovery capability
- Training — distribute pre-built network templates for workshops
- Cross-instance sharing — combined with Node Sharing, templates enable multi-org consortiums
Next Steps
- Multi-Org Fabric for building consortium networks
- Create a Besu Network for Besu-specific configuration
- Migration Guide for importing existing networks