360 Secure SkillHub
360 安全技能中心

QELT Blockchain

该 Skill 用 curl 向 QELT 主网、测试网及归档节点的 JSON-RPC 端点发送请求,查询区块、交易与回执、余额、合约代码、nonce、事件日志、gas 估价和链参数,并可提交预签名原始交易。仅接受已签名交易十六进制,不涉及私钥管理;归档查询需换用归档端点并按区块窗口分页。

prqelt
prqelt
热度 83.67
最近更新 2026-05-11 17:29:05
分类:自动化依赖:第三方 API / 代码执行应用场景:API 集成 / 自动化脚本 / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add qelt-blockchain
Metadata
name
QELT Blockchain
description
Query and interact with the QELT blockchain (Chain ID 770) via JSON-RPC. Use when asked about blocks, transactions, wallet balances, smart contract calls, gas estimation, event logs, nonces, or raw transaction submission. Covers QELT Mainnet (770) and Testnet (771).
read_when
["Querying QELT blocks or transactions","Checking wallet balances on QELT","Estimating gas for a QELT transaction","Fetching event logs from QELT contracts","Submitting a pre-signed raw transaction to QELT","Looking up nonce or contract code on QELT"]
homepage
https://docs.qelt.ai
metadata
{"clawdbot":{"emoji":"⛓️","requires":{"bins":["curl"]}}}
allowed-tools
Bash(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

Purpose URL
Primary RPC (Mainnet) https://mainnet.qelt.ai
Archive + TRACE (Mainnet) https://archivem.qelt.ai
Testnet RPC https://testnet.qelt.ai
Testnet Archive https://archive.qelt.ai
Block Explorer https://qeltscan.ai
Indexer API https://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

Parameter Mainnet Testnet
Chain ID 770 (0x302) 771 (0x303)
RPC https://mainnet.qelt.ai https://testnet.qelt.ai
Archive https://archivem.qelt.ai https://archive.qelt.ai
Indexer https://mnindexer.qelt.ai https://tnindexer.qelt.ai
Block Time 5 seconds 5 seconds
Gas Limit 50,000,000 50,000,000
Base Fee 0 0
EVM Cancun Cancun
Testnet Faucet — https://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

Error Cause Fix
execution reverted Contract call failed Check ABI encoding
nonce too low Stale nonce Fetch fresh nonce with eth_getTransactionCount
insufficient funds No QELT for gas Fund wallet or use testnet faucet
unknown block Archive query on validator Use https://archivem.qelt.ai
HTTP 429/503 Rate limited Exponential backoff