Build on Testnet
Last updated
If you have developed dApps on Ethereum or any EVM compatible chain before, you will feel at home. It is exactly the same. But if you are new, don’t worry, this document will help you embark on your first dApp development on HeLa chain.
Please, keep in mind we currently only support 0.8.9 solidity version.
Remix IDE
Open this in your browser: https://remix.ethereum.org
HeLa Testnet Wallet + Tokens
Use MetaMask or any EVM wallet.
Add HeLa Testnet RPC:
Chain ID
666888
SYMBOL
HLUSD
Block Explorer
Get test tokens from the Faucet To fund your wallet with transaction gas fee, go to HeLa Testnet Faucet. You will receive 10 HLUSD every 24 hours. Claim HLUSD Testnet Faucet: https://testnet-faucet.helachain.com
Switch MetaMask to HeLa Testnet
We’ll start with a Hello World Contract.
Open Remix
Create a new file: HelloHeLa.sol
Paste this code:
Please, keep in mind we currently only support 0.8.9 solidity version.
Save it.
In Remix, go to the Solidity Compiler tab
Click Compile HelloHeLa.sol
If no errors, you’re good to go.
Go to Deploy & Run Transactions tab
Change Environment to Injected Provider - MetaMask (it will auto-connect your wallet)
Make sure MetaMask is set to HeLa Testnet
Under Contract, select HelloHeLa
Add "Hello from HeLa!" in the constructor input
Click Deploy
Approve the transaction in MetaMask
Your contract is now live on HeLa Testnet!
After deploying, Remix will show a panel with your contract.
Click getMessage — it should return "Hello from HeLa!"
Try setMessage("Welcome to HeLa")
Call getMessage again to see the updated message.
Copy your contract address from Remix
Transaction and smart contracts can be observed and verfied in Testnet Block Explorer.
Paste the address and see your live contract
Build more, explore contracts, and join the HeLa Developer Discord for help and ideas!
Last updated
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
contract HelloHeLa {
string public message;
constructor(string memory _msg) {
message = _msg;
}
function setMessage(string memory _msg) public {
message = _msg;
}
function getMessage() public view returns (string memory) {
return message;
}
}