evm development
QoreChain runs a fully EVM-compatible execution environment, allowing you to deploy and interact with Solidity smart contracts using familiar tooling. The EVM module exposes a JSON-RPC interface on port 8545 that supports standard Ethereum development workflows.
JSON-RPC Endpoint
Default URL
http://localhost:8545
Supported namespaces
eth_, web3_, net_, txpool_, qor_
Chain ID
1234
Currency symbol
QOR
The qor_ namespace provides QoreChain-specific methods. See Custom Namespace below.
Wallet Configuration (MetaMask)
Add QoreChain as a custom network in MetaMask:
Network Name
QoreChain Diana
RPC URL
http://localhost:8545
Chain ID
1234
Currency Symbol
QOR
Block Explorer URL
(leave blank for local testnet)
Hardhat
Install Hardhat and configure your hardhat.config.js:
Deploy a contract:
Run tests against the QoreChain EVM:
Foundry
Create and deploy a contract with Foundry:
Ethers.js
Gas Model
QoreChain uses an EIP-1559 dynamic base fee model for EVM transactions:
Base fee adjusts per block based on utilization
Users can set
maxFeePerGasandmaxPriorityFeePerGasPriority fees go to the block proposer
Denomination Bridge
The native QOR token has 6 decimal places (uqor), while the EVM expects 18 decimal places. The x/precisebank module handles seamless conversion:
Native chain
uqor
6
1000000 uqor = 1 QOR
EVM
wei
18
1e18 wei = 1 QOR
This conversion is transparent -- when you check a balance via eth_getBalance, the response is denominated in 18-decimal wei. When the same account is queried via the native bank module, the balance appears in 6-decimal uqor.
ERC-20 Token Pairs
The x/erc20 module provides automatic registration of token pairs between native QoreChain SDK denominations and ERC-20 contracts:
Native tokens can be used within EVM contracts as ERC-20s
ERC-20 tokens deployed on the EVM can be converted to native denominations
Conversion is bidirectional and handled at the protocol level
PQC and EVM Compatibility
EVM transactions use classical ECDSA (secp256k1) signatures for full compatibility with existing Ethereum tooling, wallets, and libraries. This ensures that MetaMask, Hardhat, Foundry, ethers.js, and all standard EVM tools work without modification.
For post-quantum security within the EVM:
Use the PQC Verify precompile (
0x0000...0A01) to verify ML-DSA-87 signatures on-chain from Solidity. See EVM Precompiles.Cross-VM messages from EVM to CosmWasm or SVM can be PQC-signed at the QoreChain SDK transaction layer.
Accounts can optionally register PQC public keys via
x/pqcfor hybrid security.
Custom qor_ Namespace
qor_ NamespaceQoreChain extends the JSON-RPC with a qor_ namespace for chain-specific queries:
qor_getPQCKeyStatus
Check if an account has a registered PQC public key
qor_getAIStats
Retrieve AI engine statistics (anomaly counts, risk distribution)
qor_getCrossVMMessage
Query the status of a cross-VM message by ID
qor_getPoolClassification
Get validator pool classification (RPoS/DPoS/PoS)
qor_getReputationScore
Query a validator's reputation score
qor_getAbstractAccount
Retrieve abstract account configuration
Example with curl:
Next Steps
EVM Precompiles -- Access PQC, AI, and cross-VM features from Solidity
Cross-VM Interoperability -- Call CosmWasm and SVM contracts from the EVM
Account Abstraction -- Programmable accounts with session keys
