Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Qelt Contracts

v0.1.0

Verify, inspect, and retrieve verified Solidity smart contracts, ABIs, and compiler/EVM versions on the QELT blockchain using the Mainnet Indexer API.

0· 371·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for prqelt/qelt-contracts.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Qelt Contracts" (prqelt/qelt-contracts) from ClawHub.
Skill page: https://clawhub.ai/prqelt/qelt-contracts
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install qelt-contracts

ClawHub CLI

Package manager switcher

npx clawhub@latest install qelt-contracts
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description claim verification and ABI retrieval on QELT; SKILL.md only documents HTTP calls to the mnindexer.qelt.ai verification API and related helper commands. No unrelated permissions, binaries, or secrets are requested.
Instruction Scope
Instructions are narrowly scoped to querying/verifying contracts, polling job status, and fetching compiler/EVM lists. They explicitly warn not to submit private keys and instruct checking verification state before submitting to avoid wasting rate-limited submissions.
Install Mechanism
This is instruction-only (no install spec, no code to write). All example calls use curl against a documented API endpoint; nothing is downloaded or executed by the skill itself.
Credentials
The skill declares no required environment variables or credentials (appropriate). One minor inconsistency: SKILL.md metadata mentions 'bins': ['curl'] (i.e., expects curl on PATH) while the registry-level 'Required binaries' list is empty — this is operational/sloppiness rather than a security mismatch. No secrets are requested.
Persistence & Privilege
Skill is not marked always:true and requests no persistent credentials or config changes. It allows autonomous invocation by default (platform default) but this is proportionate to its functionality.
Assessment
This skill looks coherent: it instructs the agent how to talk to the QELT Mainnet Indexer and does not request credentials or install code. Before using it, verify you trust the domain (https://mnindexer.qelt.ai), and never submit source code that contains private keys, secrets, or other sensitive data (the skill itself warns of this). Note the small metadata inconsistencies: SKILL.md expects curl on PATH and _meta.json contains placeholder ownerId — these suggest the package may be a community/templated submission, so if you need higher assurance, confirm the skill's publisher or use the API manually (curl) rather than delegating sensitive code to an automated agent.

Like a lobster shell, security has layers — review code before you run it.

latestvk970q1nq8sahcn37pepmvw7c6182djy8
371downloads
0stars
1versions
Updated 16h ago
v0.1.0
MIT-0

QELT Smart Contract Verification Skill

The QELT Mainnet Indexer provides production-grade contract verification via REST API. Supports 500+ Solidity versions, constructor arguments, library linking, multi-file contracts (75+ files), viaIR compilation, and automatic EVM version detection.

API Base: https://mnindexer.qelt.ai Rate Limit: 10 verification submissions per hour per IP Timeout per job: 600 seconds (10 minutes) Status polling: Unlimited — poll every 3–5 seconds freely

Safety

  • Do not submit source code containing private keys or secrets.
  • Verification is permanent — source becomes public once verified.
  • Always check if already verified before submitting (saves rate limit quota).
  • status: "completed" does NOT mean verified — always check result.verified === true.
  • Status polling is unlimited — do not re-submit while a job is still processing.

Procedure

1. Check if Already Verified (Do This First)

curl -fsSL "https://mnindexer.qelt.ai/api/v2/contracts/0xCONTRACT/verification"

If "verified": true → return existing source/ABI to user, no submission needed.

2. Submit Single-File Contract

curl -fsSL -X POST "https://mnindexer.qelt.ai/api/v1/verification/submit" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "0xCONTRACT",
    "sourceCode": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n...",
    "compilerVersion": "0.8.20",
    "contractName": "MyContract",
    "optimizationUsed": true,
    "runs": 200,
    "evmVersion": "shanghai",
    "constructorArguments": "0x000...",
    "libraries": {}
  }'

Response: { "success": true, "jobId": "uuid", "statusUrl": "/api/v1/verification/status/uuid" }

3. Submit Multi-File Contract (with imports)

For contracts using OpenZeppelin or any import statements:

curl -fsSL -X POST "https://mnindexer.qelt.ai/api/v1/verification/submit-multi" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "0xCONTRACT",
    "compilerVersion": "v0.8.17+commit.8df45f5f",
    "contractName": "MyToken",
    "optimizationUsed": true,
    "runs": 200,
    "viaIR": true,
    "evmVersion": "london",
    "mainFile": "contracts/MyToken.sol",
    "sourceFiles": {
      "contracts/MyToken.sol": "pragma solidity ^0.8.17; ...",
      "@openzeppelin/contracts/token/ERC20/ERC20.sol": "..."
    }
  }'

4. Poll Status (Unlimited)

curl -fsSL "https://mnindexer.qelt.ai/api/v1/verification/status/JOB_ID"

States: pendingprocessingcompleted / failed

⚠️ After "completed", always verify result.verified === true:

{
  "status": "completed",
  "result": { "verified": true, "abi": [...] }
}

verified: false with status: "completed" = bytecode mismatch.

5. Get Compiler Versions

curl -fsSL "https://mnindexer.qelt.ai/api/v2/verification/compiler-versions"

6. Get EVM Versions

curl -fsSL "https://mnindexer.qelt.ai/api/v2/verification/evm-versions"

EVM Version Selection

Solidity RangeEVM Version
0.5.14 – 0.8.4istanbul
0.8.5berlin
0.8.6 – 0.8.17london
0.8.18 – 0.8.19paris
0.8.20 – 0.8.23shanghai
0.8.24+cancun

QELT Mainnet runs EVM Cancun — use cancun for Solidity 0.8.24+.

Rate Limits

EndpointLimit
POST /api/v1/verification/submit10 req/hour per IP
POST /api/v1/verification/submit-multi10 req/hour per IP
GET /api/v1/verification/status/:jobIdUnlimited
All other GET endpointsNot rate limited

Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, Retry-After.

Common Errors

SymptomLikely CauseFix
verified: false (completed)Wrong compiler/optimization/argsMatch exact deployment settings
HTTP 429Rate limitedWait Retry-After seconds (usually 3600)
status: "failed"Compilation errorCheck message field
Timeout at 600sLarge contract + viaIRNormal; job still finishes

Best Practices

  1. Check before submit — use GET /api/v2/contracts/:address/verification first
  2. Use /submit-multi for any contract with import statements
  3. Include "viaIR": true if compiled with viaIR: true in hardhat config
  4. Poll every 3–5 seconds — do not re-submit a pending job

Developer Tools

Hardhat Plugin: npm install --save-dev @qelt/hardhat-verify@latest

npx hardhat qelt:verify --network qelt 0xCONTRACT_ADDRESS

CLI Tool: npm install -g qelt-verifyqelt-verify verify 0x... ./Contract.sol --compiler-version 0.8.20 --optimize

Comments

Loading comments...