Deploy your dapp to Testnet
Run these commands from your Hello World project folder.
Get tCHR
You'll need a Web3 wallet such as MetaMask to sign requests.
Request tCHR tokens from the Chromia Testnet Faucet.
Lease a container
Generate a key pair for your Testnet container:
chr keygen --key-id="testnet_container_key"
Use the pubkey shown to lease a container. This gives you a Container ID.
Configure chromia.yml
Make sure the blockchain name is unique:
blockchains:
<blockchain_name>: # ← ensure this doesn't say 'my_rell_dapp' — use a unique name
module: main
Then add the Testnet deployment block and insert your Container ID:
deployments:
testnet:
container: <container_id> # ← paste your Container ID here
Using testnet 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.
Make the code unique
Your code must differ from anything previously deployed. Easy ways to make it unique:
module;
// A unique comment makes this build different.
// Example: deploy-uniq-xyz
object my_name {
// Or initialize with something unique:
// mutable name = "Alice_42"
mutable name = "World";
}
operation set_name(name) {
my_name.name = name;
}
// Random whitespace (blank lines or spaces) also counts as a unique edit:
// .
// .
// .....
query hello_world() = "Hello %s!".format(my_name.name);
Deploy
Deploy using the key ID from your generated key:
chr deployment create --network testnet --key-id testnet_container_key
If deployment is pending...
Use the printed tx-rid to fetch transaction status:
curl -X GET "https://node0.testnet.chromia.com/tx/6F1B061C633A992BF195850BF5AA1B6F887AEE01BB3F51251C230930FB792A92/{tx_rid}/status"
Replace {tx_rid} with the value shown by the CLI.
Pattern (for reference):
curl -X GET "{node}/tx/{directory_chain_brid}/{tx_rid}/status"
Deployment gives you the Blockchain RID to add under the chains tag in your chromia.yml:
deployments:
testnet:
container: <container_id>
# Add chains tag with the Blockchain RID from the CLI output
chains:
<blockchain_name>: x"<blockchain_rid>"
Check it works
Using the blockchain name you defined in chromia.yml, set the name to "Deployer":
chr tx --network testnet --blockchain <blockchain_name> set_name "Deployer"
Hello Deployer! 👋
chr query --network testnet --blockchain <blockchain_name> hello_world