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.
For information on deploying your dapp to Testnet, see the Deploy your dapp to Testnet topic.
Prerequisites
- Install Chromia CLI; see Install and configure Chromia CLI.
- Build a dapp that compiles; see Build and run the Hello World dapp with Chromia CLI.
- Container ID (follow the instructions on the Get a container for your dapp page to lease a container).
Ensure your chromia.yml includes: deployments.mainnet.brid, url, container, and that chains is empty for first
deployment.
Deploy the dapp
- Copy the
deploymentskey in thechromia.ymlfile 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
container: <ContainerID> # Container ID (Example - container: 15ddfcb25dcb43577ab311fe78aedab14fda25757c72a787420454728fb80304)
Using mainnet as the deployment name automatically configures the brid and url for you. A custom deployment name
would require these to be specified manually. See
deployment configuration for more details.
-
Execute the following command to deploy a specific chain to a specific target.
chr deployment create --settings chromia.yml --network mainnet --blockchain helloBy default, this command reads the
keyIdfrom the configuration file located at.chromia/config.- Windows:
C:\Users\<YourUsername>\.chromia\config - macOS and Linux:
/Users/<YourUsername>/.chromia/configor/home/<YourUsername>/.chromia/config
If you prefer to use a different configuration file, you can specify the path using the
--configoption:chr deployment create --settings chromia.yml --network mainnet --blockchain hello --config <config file path>This allows you to set the
keyIdin a specific config file instead of the global configuration.infoIf 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 - Windows:
-
Add the
chainskey with thedapp name: **Blockchain RID**from the prompt to thechromia.ymlfile. This is important for updating your dapp in the future.
Great. You have now done your first deployment. Please see the Hello World Quickstart 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.
Your chromia.yml must now have the chains config included.
blockchains:
hello:
module: main
deployments:
mainnet:
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
To learn more about developing production-ready dapps, visit the Chromia course page.