QELT Blockchain

v0.1.0

Query and interact with the QELT blockchain (Chain ID 770) via JSON-RPC. Use when asked about blocks, transactions, wallet balances, smart contract calls, ga...

0· 384· 1 versions· 0 current· 0 all-time· Updated 35m ago· MIT-0

Install

openclaw skills install qelt-blockchain

QELT Blockchain Skill

QELT is an enterprise-grade EVM-compatible Layer-1 built on Hyperledger Besu 25.12.0 with QBFT consensus. Immediate finality in 5-second blocks. Zero base fee (~$0.002/tx).

Mainnet: Chain ID 770 · RPC https://mainnet.qelt.ai Testnet: Chain ID 771 · RPC https://testnet.qelt.ai Archive (historical + TRACE): https://archivem.qelt.ai

Safety

  • Never request, store, print, or transmit private keys or mnemonics.
  • Write operations accept pre-signed raw transactions only (hex starting with 0x).
  • For historical/TRACE queries, use https://archivem.qelt.ai.
  • Confirm mainnet vs testnet with the user before submitting transactions.
  • Do not invent block numbers, hashes, or balances — always fetch live data.

Endpoints

PurposeURL
Primary RPC (Mainnet)https://mainnet.qelt.ai
Archive + TRACE (Mainnet)https://archivem.qelt.ai
Testnet RPChttps://testnet.qelt.ai
Testnet Archivehttps://archive.qelt.ai
Block Explorerhttps://qeltscan.ai
Indexer APIhttps://mnindexer.qelt.ai

JSON-RPC Calls

All calls are standard Ethereum JSON-RPC 2.0 POST requests.

Get Latest Block Number

curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Parse result hex → printf '%d\n' <hex>.

Get Block

# By number (hex): block 1000 = 0x3e8
curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x3e8",true],"id":1}'

# By hash
curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_getBlockByHash","params":["0xHASH",true],"id":1}'

Get Balance

curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xADDRESS","latest"],"id":1}'

Divide result (wei, hex) by 10^18 for QELT.

Get Transaction

curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["0xTX_HASH"],"id":1}'

Get Transaction Receipt

curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0xTX_HASH"],"id":1}'

status: "0x1" = success · status: "0x0" = reverted.

Call Smart Contract (Read-Only)

curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0xCONTRACT","data":"0xCALLDATA"},"latest"],"id":1}'

Estimate Gas

curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_estimateGas","params":[{"from":"0xFROM","to":"0xTO","data":"0xDATA","value":"0x0"}],"id":1}'

Get Event Logs

Always bound the block range — querying from genesis ("0x0") scans the entire chain and is commonly rate-limited or timed out. Use a recent window (e.g., last 1,000 blocks) and page forward if you need more history.

# First get the current block number
LATEST=$(curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' | python3 -c "import sys,json; print(json.load(sys.stdin)['result'])")

# Then query a bounded recent range (last ~1000 blocks ≈ 83 minutes on QELT)
# Clamp at 0 so the start block is never negative on a low-height chain (e.g. fresh testnet).
FROM_HEX=$(python3 -c "latest=int('$LATEST',16); print(hex(max(0, latest - 1000)))")

curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getLogs\",\"params\":[{\"fromBlock\":\"$FROM_HEX\",\"toBlock\":\"latest\",\"address\":\"0xCONTRACT\",\"topics\":[\"0xTOPIC\"]}],\"id\":1}"

For full historical log scans, use https://archivem.qelt.ai and page in chunks of ≤10,000 blocks to avoid timeouts.

Get Contract Code

curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_getCode","params":["0xCONTRACT","latest"],"id":1}'

"0x" = EOA · anything longer = deployed contract.

Get Nonce

curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0xADDRESS","latest"],"id":1}'

Send Pre-Signed Transaction

⚠️ Write operation — confirm with user before executing.

curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0xSIGNED_TX_HEX"],"id":1}'

Returns the transaction hash on success.

Chain Info

# Chain ID
curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'

# Gas price
curl -fsSL -X POST https://mainnet.qelt.ai \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}'

Network Reference

ParameterMainnetTestnet
Chain ID770 (0x302)771 (0x303)
RPChttps://mainnet.qelt.aihttps://testnet.qelt.ai
Archivehttps://archivem.qelt.aihttps://archive.qelt.ai
Indexerhttps://mnindexer.qelt.aihttps://tnindexer.qelt.ai
Block Time5 seconds5 seconds
Gas Limit50,000,00050,000,000
Base Fee00
EVMCancunCancun
Testnet Faucethttps://testnet.qeltscan.ai/faucet

MetaMask Config (Mainnet)

{
  "chainId": "0x302",
  "chainName": "QELT Mainnet",
  "nativeCurrency": { "name": "QELT", "symbol": "QELT", "decimals": 18 },
  "rpcUrls": ["https://mainnet.qelt.ai"],
  "blockExplorerUrls": ["https://qeltscan.ai"]
}

Common Errors

ErrorCauseFix
execution revertedContract call failedCheck ABI encoding
nonce too lowStale nonceFetch fresh nonce with eth_getTransactionCount
insufficient fundsNo QELT for gasFund wallet or use testnet faucet
unknown blockArchive query on validatorUse https://archivem.qelt.ai
HTTP 429/503Rate limitedExponential backoff

Version tags

latestvk9774b87r8e5ygh1xdx4cek3h182cx41

Runtime requirements

⛓️ Clawdis
Binscurl