Skip to main content

Deploy your dapp to mainnet

This topic covers deploying and updating a dapp with the Chromia CLI to the public mainnet. For more information, see the deployment command.

info

For information on deploying your dapp to testnet, see the Deploy your dapp to testnet topic.

Prerequisite

Deploy the dapp

  1. Copy the deployments key in the chromia.yml file example below into your config file. Replace the <ContainerID> with the Container ID you got from the staking page.

    blockchains:
    hello: #Name of the blockchain
    module: main #Entrypoint to the project
    deployments:
    mainnet: #Deployment Target name
    brid: x"7E5BE539EF62E48DDA7035867E67734A70833A69D2F162C457282C319AA58AE4" #Blockchain RID for the mainnet management chain
    url: https://system.chromaway.com:7740 #Target URL for one of the nodes in the mainnet
    container: <ContainerID> # Container ID (Example - container: 15ddfcb25dcb43577ab311fe78aedab14fda25757c72a787420454728fb80304)
  2. Execute the following command to deploy a specific chain to a specific target.

    chr deployment create --settings chromia.yml --network mainnet --blockchain hello

    By default, this command reads the keyId from the configuration file located at .chromia/config.

    • Windows: C:\Users\<YourUsername>\.chromia\config
    • macOS and Linux: /Users/<YourUsername>/.chromia/config or /home/<YourUsername>/.chromia/config

    If you prefer to use a different configuration file, you can specify the path using the --config option:

    chr deployment create --settings chromia.yml --network mainnet --blockchain hello --config <config file path>

    This allows you to set the keyId in a specific config file instead of the global configuration.

    info

    If you get an error while deploying your dapp, then make some changes to your dapp code. Chromia uses dapp configuration and code to create the Blockchain RID, which must be unique for each dapp.

    After a successful deployment, you get the dapp Blockchain RID as a prompt in the terminal. It identifies your dapp for future deployments (updates). The prompt could look as follows:

    Add the following to your project settings file
    deployments:
    mainnet:
    chains:
    hello: x"<BlockchainRID>" #Dapp Blockchain RID
  3. Add the chains key with the dapp name: **Blockchain RID** from the prompt to the chromia.yml file. This is important for updating your dapp in the future.

Great. You have now done your first deployment. Please see the section Client setup if you want to configure the client code to connect to your deployed dapp.

Update the dapp

Once you have done your first deployment, you can perform an update of your dapp.

info

The limitations on updating Rell entities are available here.

Your chromia.yml must now have the chains config included.

blockchains:
hello:
module: main
deployments:
mainnet:
brid: x"7E5BE539EF62E48DDA7035867E67734A70833A69D2F162C457282C319AA58AE4"
url: https://system.chromaway.com:7740
container: <ContainerID>
chains:
hello: x"<BlockchainRID>" #Dapp Blockchain RID

Run the following command to update your dapp:

chr deployment update --settings chromia.yml --network mainnet --blockchain hello

By default, this command reads the keyId from the configuration file located at .chromia/config.

  • Windows: C:\Users\<YourUsername>\.chromia\config
  • macOS and Linux: /Users/<YourUsername>/.chromia/config or /home/<YourUsername>/.chromia/config

If you prefer to use a different configuration file, you can specify the path using the --config option:

chr deployment update --settings chromia.yml --network mainnet --blockchain hello --config config <config file path>

This allows you to set the keyId in a specific config file instead of the global configuration.

To learn more about developing production-ready dapps, visit the Chromia course page.