QENOVRA PUBLIC TESTNET / START HERE

From zero to your first contract.

Install the tools, connect to QENOVRA Public Testnet, compile Solidity and deploy with your own test wallet.

Security: never paste a seed phrase or private key into a website, support chat or source file. Use a dedicated no-value testnet wallet and keep signing keys local.

1. Canonical network

Network: QENOVRA Public Testnet
Chain ID: 7992501
RPC: https://rpc-testnet.qenovra.com
Explorer: https://explorer.qenovra.com
Native test asset: tQEN
Decimals: 18
Add networkGet test tQENOpen Explorer

2. Install Node.js for Hardhat

Install the current Node.js LTS release. On Windows, use the official installer and keep “Add to PATH” enabled. Then close and reopen PowerShell/Terminal and verify:

node -v
npm -v

Windows PowerShell users can use npm.cmd -v if their local execution policy blocks npm.ps1.

Download Node.js LTS

3. Install Git

Hardhat's project dependencies can include Git-based packages. If Git is missing, npm may fail with spawn git ENOENT or path git.

Windows:

winget install --id Git.Git -e

Or install Git for Windows from the official installer. After installation, close and reopen PowerShell/Terminal, then verify:

git --version
Download Git for Windows

4. Install Hardhat

Create a clean project directory:

mkdir qenovra-hardhat-test
cd qenovra-hardhat-test
npm init -y
npm install --save-dev hardhat
npx hardhat --init

When Hardhat asks which major version to use, choose Hardhat 3. Keep the default project directory unless you intentionally want another folder.

Download the QENOVRA templates below. Put ProjectGreeter.sol in the project's contracts/ folder.

hardhat.config.tsProjectGreeter.sol

The sample template pins Solidity 0.8.26, EVM shanghai, optimizer enabled with 200 runs, RPC https://rpc-testnet.qenovra.com, and Chain ID 7992501. 0.8.26 is the sample/reference compiler, not a mandatory chain-wide version. Existing projects may keep another compatible Solidity version; explicitly target shanghai on the current QENOVRA Public Testnet and verify source with the exact compiler version used for deployment.

If the starter contracts require a newer Solidity pragma, move them out of contracts/ or update them before compiling with the QENOVRA profile. The downloadable ProjectGreeter.sol is compatible with Solidity 0.8.26.

Windows PowerShell 5.1 note: Set-Content -Encoding utf8 can write a UTF-8 BOM. Some Solidity toolchains may reject that invisible prefix at line 1. Prefer the downloadable source file, or write Solidity files with UTF-8 without BOM using [System.IO.File]::WriteAllText(..., (New-Object System.Text.UTF8Encoding($false))).

Compile:

npx hardhat compile

Windows ARM64 note: if Hardhat reports HHE27 and asks for @nomicfoundation/solidity-analyzer-win32-arm64-msvc, check your Node architecture:

node -p process.arch

The current Solidity analyzer publishes a Windows x64 native binary but not a Windows arm64 binary. On Windows ARM64, use one of these supported paths instead of repeatedly reinstalling optional dependencies:

Option A — easiest on Windows ARM64
Install the Windows x64 Node.js LTS build (runs under Windows x64 emulation)
node -p process.arch
# should print: x64
npm install
npx hardhat compile

Option B — WSL2
Use an ARM64 Linux distro in WSL2, where the analyzer has a linux-arm64 binary.

Do not try to install a nonexistent @nomicfoundation/solidity-analyzer-win32-arm64-msvc package manually.

Use Hardhat's encrypted keystore for the no-value testnet deployer key. The value is entered locally and should never be pasted into a website, chat, source file or Git repository:

npx hardhat keystore set QENOVRA_PRIVATE_KEY

If Hardhat says QENOVRA_PRIVATE_KEY already exists in the production keystore, that is not an error. Keep the existing value if it belongs to the intended no-value testnet wallet. Use --force only when you intentionally want to replace that stored key.

Create ignition/modules/ProjectGreeterModule.ts from the downloadable template, then deploy:

ProjectGreeterModule.ts
npx hardhat ignition deploy ignition/modules/ProjectGreeterModule.ts --network qenovraTestnet

Confirm the target network is Chain ID 7992501. After deployment, Hardhat prints the contract address. Open that address in the QENOVRA Explorer and confirm the transaction and bytecode.

Hardhat build-info note: artifact layouts can differ across Hardhat 3 releases and plugins. Do not assume a fixed filename such as *.input.json. For Explorer Standard JSON verification, inspect the JSON files under artifacts/build-info and use either the file that is already a Solidity Standard JSON input (language, sources, settings) or the embedded input object when present.

Then prove the full local developer flow with a read → write → read interaction. Download the example script, place it under scripts/, update the contract address if needed, and run:

Download interaction script
npx hardhat run scripts/interact-project-greeter.ts --network qenovraTestnet

The expected output shows the value before the write, the transaction hash, the confirmed block, and the updated value after the write.

5. Install Foundry

On macOS, Linux or WSL, install Foundry using its official installer:

curl -L https://getfoundry.sh/install | bash
export PATH="$PATH:$HOME/.foundry/bin"
echo 'export PATH="$PATH:$HOME/.foundry/bin"' >> ~/.bashrc
foundryup

If foundryup says command not found immediately after installation, the binary is installed but the current shell does not yet include $HOME/.foundry/bin; run the export PATH=... line above.

Confirm the canonical QENOVRA RPC before creating or deploying a project:

cast chain-id --rpc-url https://rpc-testnet.qenovra.com
# expected: 7992501

cast block-number --rpc-url https://rpc-testnet.qenovra.com
# expected: current live block height

Then initialize a project:

forge init qenovra-foundry-test
cd qenovra-foundry-test
foundry.tomlProjectGreeter.sol

Replace the starter contract with the sample contract under src/, use the supplied foundry.toml, then run forge build. The sample template pins Solidity 0.8.26, Shanghai and optimizer 200, and exposes the RPC alias qenovra_testnet. For your own project, use the Solidity compiler version required by your source/dependencies, keep evm_version = "shanghai" for the current QENOVRA testnet, and later verify with the exact compiler build actually used.

Import a dedicated no-value testnet wallet into Foundry's encrypted local keystore without putting the private key into shell history:

cast wallet import qenovra-testnet --interactive
cast wallet list

If cast wallet list already shows qenovra-testnet (Local), do not import it again. A repeated import will correctly report that the keystore file already exists. If a password attempt is incorrect, simply retry the command that needs the account and enter the correct local keystore password; do not delete or overwrite the keystore unless you intentionally want to replace the account.

Then deploy with the local keystore account. --broadcast is required to actually send the transaction; without it Forge only performs a dry run:

forge create src/ProjectGreeter.sol:ProjectGreeter \
  --rpc-url https://rpc-testnet.qenovra.com \
  --account qenovra-testnet \
  --broadcast

Forge prompts for the encrypted keystore password locally. Never paste the private key into documentation, chat, source code or Git.

After deployment and Cast read/write testing, Foundry can submit source verification directly to the QENOVRA Blockscout verifier:

forge verify-contract <CONTRACT_ADDRESS> src/ProjectGreeter.sol:ProjectGreeter \
  --chain 7992501 \
  --compiler-version v0.8.26+commit.8a97fa7a \
  --verifier blockscout \
  --verifier-url 'https://explorer.qenovra.com/api?' \
  --watch

The sample project configuration supplies Shanghai and optimizer-200 settings. Replace the --compiler-version value with the exact compiler build used by your own project. If direct verification is unavailable, use Explorer → Contract → Verify & publish with Solidity Standard JSON input generated from the same build.

6. Prefer a browser?

The Contract Studio can upload single or multi-file Solidity projects, compile, deploy, read/write functions and jump to Explorer verification without installing Hardhat or Foundry.

Open Developer PortalRead project upload/deployment guide

7. Verification checklist

After deployment, save the transaction hash and contract address, confirm them in Explorer, and verify source using the exact compiler version, EVM version, optimizer settings, file paths and source content used for deployment.

\n