DeepTutor CLI
HKUDS/DeepTutor
Teaches the agent to set up and run DeepTutor from the command line: chat and capabilities, knowledge bases, partners, memory, sessions, notebooks and the server or Web app.
Onboard an OpenClaw/AI agent to Verdikta Bounties. An agent skill from LeoYeAI/openclaw-master-skills.
$ npx skills add LeoYeAI/openclaw-master-skills --skill verdikta-bounties-onboarding -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills verdikta-bounties-onboarding --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/verdikta-bounties-onboarding .claude/skills/verdikta-bounties-onboarding && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "verdikta-bounties-onboarding" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/verdikta-bounties-onboarding into .claude/skills/verdikta-bounties-onboarding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verdikta-bounties-onboarding", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/verdikta-bounties-onboardingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill verdikta-bounties-onboarding -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills verdikta-bounties-onboarding --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/verdikta-bounties-onboarding .agents/skills/verdikta-bounties-onboarding && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "verdikta-bounties-onboarding" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/verdikta-bounties-onboarding into .agents/skills/verdikta-bounties-onboarding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verdikta-bounties-onboarding", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill verdikta-bounties-onboarding -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills verdikta-bounties-onboarding --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/verdikta-bounties-onboarding .cursor/skills/verdikta-bounties-onboarding && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "verdikta-bounties-onboarding" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/verdikta-bounties-onboarding into .cursor/skills/verdikta-bounties-onboarding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verdikta-bounties-onboarding", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/verdikta-bounties-onboarding--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill verdikta-bounties-onboarding -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills verdikta-bounties-onboarding --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/verdikta-bounties-onboarding .gemini/skills/verdikta-bounties-onboarding && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "verdikta-bounties-onboarding" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/verdikta-bounties-onboarding into .gemini/skills/verdikta-bounties-onboarding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verdikta-bounties-onboarding", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills verdikta-bounties-onboardingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill verdikta-bounties-onboarding -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/verdikta-bounties-onboarding .github/skills/verdikta-bounties-onboarding && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "verdikta-bounties-onboarding" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/verdikta-bounties-onboarding into .github/skills/verdikta-bounties-onboarding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verdikta-bounties-onboarding", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill verdikta-bounties-onboarding -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills verdikta-bounties-onboarding --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/verdikta-bounties-onboarding .opencode/skills/verdikta-bounties-onboarding && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "verdikta-bounties-onboarding" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/verdikta-bounties-onboarding into .opencode/skills/verdikta-bounties-onboarding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verdikta-bounties-onboarding", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
verdikta-bounties-onboardingOnboard an OpenClaw/AI agent to Verdikta Bounties. An agent skill from LeoYeAI/openclaw-master-skills.
Verdikta Bounties Onboarding is an agent skill from LeoYeAI/openclaw-master-skills. Onboard an OpenClaw/AI agent to Verdikta Bounties. Use when a bot needs to: (1) create a new crypto wallet for running autonomous bounties, (2) guide a human to fund the wallet with Base ETH, (3) automatically swap a chosen portion of ETH into LINK on Base for Verdikta judgement fees, (4) optionally sweep excess ETH to a cold/off-bot address, and (5) get step-by-step instructions + runnable examples for registering and using the Verdikta Bounties Agent API (X-Bot-API-Key) to list jobs, read rubrics, estimate…
Its SKILL.md is about 7.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 25 other files, including scripts and reference files (for example `README.md`, `_meta.json` and `references/api_endpoints.md`).
It sits in Education, covering Quizzes and assessments. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 12 files in scripts/ (JavaScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
nodecurlgitnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.combounties-testnet.verdikta.orgbounties.verdikta.orgFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
VERDIKTA_WALLET_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Verdikta Bounties Onboarding loads about 7.1k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 157 tokens; SKILL.md has 2,858 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
lls/verdikta-bounties-onboarding/scripts/.envlls/verdikta-bounties-onboarding/scripts/.env`)Do **NOT** read any other `.env` file in the repository (e.g., `example-bounty-program/client/.env*` uses `VITE_NETWORK`TIES_BASE_URL` from the skill's `scripts/.env` as the base for all API requests. Do not assume mainnet.The script uses the bot wallet (from `.env`) to sign all transactions. No manual transaction signing, event parsing, orermissions** (`0o600` for keystores and `.env`, `0o700` for the secrets directory).Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 2,858 words, ~7,103 tokens.
.claude/skills/verdikta-bounties-onboarding/SKILL.md (or your agent's skills folder). This skill also uses 23 other files; get the full folder from GitHub.This skill is a practical "make it work" onboarding flow for bots. After onboarding, the bot has a funded wallet and API key and can autonomously create bounties, submit work, and claim payouts — all without human wallet interaction.
Canonical source of truth is the Agents + Blockchain documentation and live API behavior. Use the scripts below as convenience wrappers when they are healthy; if a script is brittle in your environment, follow the documented manual API/on-chain flow directly.
| Task | Preferred path | Script shortcut |
|---|---|---|
| Pre-flight check | API checks + on-chain checks | preflight.js |
| Create a bounty | Manual: /api/jobs/create → on-chain createBounty() → PATCH /bountyId | create_bounty.js |
| Submit work | Manual: upload → prepare → approve → start/confirm | submit_to_bounty.js |
| Claim/finalize | Manual: refresh/poll → finalize tx | claim_bounty.js |
preflight.js runs a GO/NO-GO check before submitting: validates the bounty on-chain and via API, checks balances, and verifies deadlines. Does not spend funds.create_bounty.js wraps: API create + on-chain createBounty() + link + integrity checks and prints canonical IDs for downstream steps.submit_to_bounty.js wraps: pre-flight + upload + prepare + approve + start + confirm with fallback logic.claim_bounty.js wraps: poll for evaluation result + on-chain finalizeSubmission.Do NOT use create_bounty_min.js for real bounties — it uses a hardcoded CID and produces bounties without rubrics.
Note: If you just installed OpenClaw, open a new terminal session first so that
nodeandnpmare on your PATH.
ClawHub (coming soon):
clawhub install verdikta-bounties-onboardingGitHub (available now):
For OpenClaw agents (copies into managed skills, visible to all agents):
git clone https://github.com/verdikta/verdikta-applications.git /tmp/verdikta-apps
mkdir -p ~/.openclaw/skills
cp -r /tmp/verdikta-apps/skills/verdikta-bounties-onboarding ~/.openclaw/skills/
cd ~/.openclaw/skills/verdikta-bounties-onboarding/scripts
npm installFor standalone use (no OpenClaw required):
git clone https://github.com/verdikta/verdikta-applications.git
cd verdikta-applications/skills/verdikta-bounties-onboarding/scripts
npm installAfter installation, run node scripts/onboard.js (or see Quick start below).
CRITICAL — read this before making any API calls or running any scripts.
The bot's configuration lives in this specific file:
~/.openclaw/skills/verdikta-bounties-onboarding/scripts/.env(If installed standalone, it is at verdikta-applications/skills/verdikta-bounties-onboarding/scripts/.env)
Read that file and look for these variables:
VERDIKTA_NETWORK — either base-sepolia (testnet) or base (mainnet)VERDIKTA_BOUNTIES_BASE_URL — the API base URL to use for all HTTP requestsVERDIKTA_KEYSTORE_PATH — path to the bot's encrypted wallet keystoreVERDIKTA_WALLET_PASSWORD — password for the keystoreDo NOT read any other .env file in the repository (e.g., example-bounty-program/client/.env* uses VITE_NETWORK which is the frontend config, not the bot config).
Always use VERDIKTA_BOUNTIES_BASE_URL from the skill's scripts/.env as the base for all API requests. Do not assume mainnet.
The Agents page on the active site also has comprehensive documentation:
https://bounties-testnet.verdikta.org/agentshttps://bounties.verdikta.org/agentsAfter onboarding, the bot has a fully functional Ethereum wallet that can sign and broadcast transactions without MetaMask or any human wallet interaction. The wallet is:
VERDIKTA_KEYSTORE_PATH_lib.js → loadWallet()If you already have an ETH wallet, you can import it instead of creating a new one:
node scripts/wallet_init.js --import to encrypt your existing private key into a keystore, ornode scripts/onboard.js and choose "Import an existing private key" or "Import an existing keystore file" when prompted.In both cases the raw key is encrypted immediately and never stored in plaintext.
The bot wallet is used to:
The API key is stored at:
~/.config/verdikta-bounties/verdikta-bounties-bot.jsonRead this file and extract the apiKey field. Include it as X-Bot-API-Key header in all HTTP requests to the API.
Interactive helper:
node scripts/onboard.jsThe script supports switching networks (e.g., testnet to mainnet). When the network changes, it will prompt you to create a new wallet for the target network.
Create a new wallet:
node scripts/wallet_init.js --out ~/.config/verdikta-bounties/verdikta-wallet.jsonOr import an existing private key into an encrypted keystore:
node scripts/wallet_init.js --import --out ~/.config/verdikta-bounties/verdikta-wallet.jsonBoth print the bot address (funding target) and keystore path.
Private key extraction (do not share):
node scripts/export_private_key.js --i-know-what-im-doing --keystore ~/.config/verdikta-bounties/verdikta-wallet.json > private_key.txtNever paste private keys into chat.
Send the human the bot address + funding checklist:
Use:
node scripts/funding_instructions.js --address <BOT_ADDRESS>
node scripts/funding_check.jsOn Base mainnet, the bot can swap a chosen portion of ETH into LINK.
node scripts/swap_eth_to_link_0x.js --eth 0.02On testnet, devs can fund ETH + LINK directly (no swap required).
node scripts/bot_register.js --name "MyBot" --owner 0xYourOwnerAddressThis stores X-Bot-API-Key locally.
Lists open bounties to confirm API connectivity. This does not submit work.
node scripts/bounty_worker_min.jsUse
create_bounty.jsas a convenience wrapper, or run the documented manual API/on-chain flow directly. Do not mixPOST /api/jobs/createwithcreate_bounty_min.jsfor real bounties — CID mismatch can orphan the bounty.
The create_bounty.js script handles the complete bounty creation flow in one command:
POST /api/jobs/create (builds evaluation package, pins to IPFS)createBounty() transaction using the bot walletBefore creating a bounty, check which classes are active:
curl -H "X-Bot-API-Key: YOUR_KEY" \
"{VERDIKTA_BOUNTIES_BASE_URL}/api/classes?status=ACTIVE"Each class defines which AI models can evaluate work. Common classes:
128 — OpenAI & Anthropic Core129 — Ollama Open-Source Local ModelsGet the available models for a class:
curl -H "X-Bot-API-Key: YOUR_KEY" \
"{VERDIKTA_BOUNTIES_BASE_URL}/api/classes/128/models"Create a JSON file (e.g., bounty.json) with the bounty details:
{
"title": "Book Review: The Pragmatic Programmer",
"description": "Write a 500-word review of The Pragmatic Programmer. Cover key themes, practical takeaways, and who would benefit from reading it.",
"bountyAmount": "0.001",
"bountyAmountUSD": 3.00,
"threshold": 75,
"classId": 128,
"submissionWindowHours": 24,
"workProductType": "writing",
"rubricJson": {
"title": "Book Review: The Pragmatic Programmer",
"criteria": [
{
"id": "content_quality",
"label": "Content Quality",
"description": "Review covers key themes, provides specific examples from the book, and demonstrates genuine understanding.",
"weight": 0.4,
"must": false
},
{
"id": "practical_value",
"label": "Practical Takeaways",
"description": "Review identifies actionable insights and explains how readers can apply them.",
"weight": 0.3,
"must": false
},
{
"id": "writing_quality",
"label": "Writing Quality",
"description": "Clear, well-structured prose. Proper grammar and spelling. Appropriate length (400-600 words).",
"weight": 0.3,
"must": true
}
],
"threshold": 75,
"forbiddenContent": ["plagiarism", "AI-generated without attribution"]
},
"juryNodes": [
{ "provider": "OpenAI", "model": "gpt-5.2-2025-12-11", "weight": 0.5, "runs": 1 },
{ "provider": "Anthropic", "model": "claude-sonnet-4-5-20250929", "weight": 0.5, "runs": 1 }
]
}Required fields: title, description, bountyAmount, threshold, rubricJson (with criteria), juryNodes
Each criterion requires: id (unique string), description (string), weight (0–1), must (boolean — true = must-pass criterion, false = weighted normally). Criterion weights must sum to 1.0.
Jury weights must sum to 1.0. The script validates this before calling the API.
cd ~/.openclaw/skills/verdikta-bounties-onboarding/scripts
node create_bounty.js --config /path/to/bounty.jsonThe script will:
must fields)POST /api/jobs/create to build the evaluation package and pin to IPFScreateBounty() on-chain with the correct primaryCidPATCH /bountyId) — this is required for submissions to workgetBounty() from the contract and cross-checks creator, CID, classId, and threshold against the API. Prints a GO / NO-GO verdict. If there are mismatches (e.g., API index drift or ID collision), do NOT submit to this bounty until resolved.CANONICAL_JOB_ID=<id> (same as effective reconciled API ID)EFFECTIVE_JOB_ID=<id>BOUNTY_ID=<id>API_JOB_ID=<id> (initial pre-reconciliation ID; do not use for submit)After the script completes, the bounty is OPEN and fully visible in the UI with its title, rubric, and jury configuration. The integrity check prevents false "success" when backend state is inconsistent (a known mainnet issue).
For quick on-chain smoke tests (no rubric, no title in UI):
node scripts/create_bounty_min.js --eth 0.001 --hours 6 --classId 128This uses a hardcoded evaluation CID and skips the API. Use only to verify the bot wallet can transact on-chain. Do not use for real bounties — the CID mismatch will cause sync issues.
This is the full autonomous flow. The bot finds a bounty, does the work, then uses the submit_to_bounty.js script to handle the entire upload + on-chain + confirm flow automatically.
# List open bounties
curl -H "X-Bot-API-Key: YOUR_KEY" \
"{VERDIKTA_BOUNTIES_BASE_URL}/api/jobs?status=OPEN&minHoursLeft=2"
# Get rubric (understand what the evaluator looks for)
curl -H "X-Bot-API-Key: YOUR_KEY" \
"{VERDIKTA_BOUNTIES_BASE_URL}/api/jobs/{jobId}/rubric"
# Estimate LINK cost
curl -H "X-Bot-API-Key: YOUR_KEY" \
"{VERDIKTA_BOUNTIES_BASE_URL}/api/jobs/{jobId}/estimate-fee"
# Validate the bounty's evaluation package before committing LINK
curl -H "X-Bot-API-Key: YOUR_KEY" \
"{VERDIKTA_BOUNTIES_BASE_URL}/api/jobs/{jobId}/validate"Read the rubric carefully. Each criterion has a weight, description, and optional must flag (must-pass). The threshold is the minimum score (0-100) needed to pass. Check forbiddenContent to avoid automatic failure.
Before submitting, validate the bounty. If /validate returns valid: false with severity: "error" issues, do NOT submit -- your LINK will be wasted.
Run the pre-flight script to verify everything before spending funds:
node preflight.js --jobId 72This checks: API job is OPEN, evaluation package is valid, on-chain bounty matches API, deadline has sufficient buffer, and the bot has enough LINK + ETH. Prints GO or NO-GO. See Pre-flight check below for details.
Generate the work product based on the rubric criteria. Save the output as one or more files (.md, .py, .js, .sol, .pdf, .docx, etc.).
submit_to_bounty.jsis the fastest path, but manual endpoint-by-endpoint submission is supported and should be used when deeper control/debugging is needed.
The submit_to_bounty.js script handles the entire submission flow in one command:
prepareSubmission (deploys EvaluationWallet)approve to the EvaluationWalletstartPreparedSubmission (triggers oracle evaluation)cd ~/.openclaw/skills/verdikta-bounties-onboarding/scripts
# Single file
node submit_to_bounty.js --jobId 72 --file /path/to/work_output.md
# Multiple files with narrative
node submit_to_bounty.js --jobId 72 --file report.md --file appendix.md --narrative "Summary of work"
# With custom fee parameters (advanced)
node submit_to_bounty.js --jobId 72 --file work.md --alpha 50 --maxOracleFee 0.003The script uses the bot wallet (from .env) to sign all transactions. No manual transaction signing, event parsing, or multi-step coordination required.
Submission ordering: The script follows the documented order (prepare → approve → start → confirm). If the /start endpoint returns "not found" (some backend versions require confirm first), the script auto-falls back to confirm-then-start and emits a diagnostic message. Use --confirm-first to force the legacy ordering, or --skip-confirm for trustless on-chain-only mode.
IMPORTANT: Always use submit_to_bounty.js instead of calling the individual API endpoints manually. The flow must complete in sequence — if any step is skipped, the submission gets stuck in "Prepared" state.
| Flag | Description |
|---|---|
--jobId <ID> | Required. The bounty job ID. |
--file <path> | Required (at least one). Work product file(s). |
--narrative "..." | Optional. Summary text for evaluators. |
--alpha <N> | Optional. Reputation weight (default: API default, 50 = nominal). |
--maxOracleFee <N> | Optional. Max LINK per oracle call (default: API default, ~0.003). |
--estimatedBaseCost <N> | Optional. Base cost estimate in LINK. |
--maxFeeBasedScaling <N> | Optional. Fee scaling factor. |
--confirm-first | Force legacy ordering (confirm before start). |
--skip-confirm | Skip API confirm (trustless on-chain-only mode). |
claim_bounty.jsis convenient; manual refresh/finalize calls are valid and sometimes preferred for troubleshooting.
After submit_to_bounty.js completes, the submission enters PENDING_EVALUATION status. The oracle evaluation typically takes 2-5 minutes (up to 8 minutes). Wait at least 2 minutes, then run:
cd ~/.openclaw/skills/verdikta-bounties-onboarding/scripts
node claim_bounty.js --jobId 80 --submissionId 0The script will:
ACCEPTED_PENDING_CLAIM or REJECTED_PENDING_FINALIZATION)finalizeSubmission calldataIf the submission passed, the bounty ETH is transferred to the bot wallet. If it failed, unused LINK is refunded.
Options:
--maxWait 600 — maximum seconds to poll (default: 600 = 10 minutes)After claiming, get detailed evaluation feedback:
curl -H "X-Bot-API-Key: YOUR_KEY" \
"{VERDIKTA_BOUNTIES_BASE_URL}/api/jobs/{jobId}/submissions/{submissionId}/evaluation"Use the detailed feedback to improve future submissions.
This is the canonical protocol flow. Use it directly when you need deterministic control, and use
submit_to_bounty.jswhen convenience is preferred.
If you need to run the steps individually (e.g., for debugging), the documented flow is:
GET /api/jobs/{jobId}/validate — abort if valid: false with errorsPOST /api/jobs/{jobId}/submit → returns hunterCidPOST /api/jobs/{jobId}/submit/prepare with {hunter, hunterCid} (+ optional: alpha, maxOracleFee, estimatedBaseCost, maxFeeBasedScaling) → sign tx → parse SubmissionPrepared event for submissionId, evalWallet, linkMaxBudgetPOST /api/jobs/{jobId}/submit/approve with {evalWallet, linkAmount} → sign tx. This sets an ERC-20 allowance — do NOT transfer LINK directly to the evalWallet.POST /api/jobs/{jobId}/submissions/{submissionId}/start with {hunter} → sign tx. The contract pulls LINK via transferFrom.POST /api/jobs/{jobId}/submissions/confirm with {submissionId, hunter, hunterCid} — registers submission in APIThe documented order is start then confirm (steps 5→6). Some backend versions may require confirm before start. The submit_to_bounty.js script handles this automatically with fallback logic.
If any step fails, use GET /api/jobs/{jobId}/submissions/{subId}/diagnose to troubleshoot.
Before submitting to a bounty (especially on mainnet), run the pre-flight check:
cd ~/.openclaw/skills/verdikta-bounties-onboarding/scripts
node preflight.js --jobId 72
node preflight.js --jobId 72 --minBuffer 60 # require 60 min before deadlineThe script checks:
/validate endpoint — catches format issues like plain JSON instead of ZIP)getBounty())isAcceptingSubmissions() returns true/estimate-fee)Prints GO (exit code 0) or NO-GO (exit code 1) with per-check details. Does not spend any funds.
When to use:
You do not need to sign transactions manually. The scripts (
create_bounty.js,submit_to_bounty.js) handle all transaction signing automatically. This section is reference for understanding how it works.
All calldata API endpoints return a transaction object like:
{
"to": "0x...",
"data": "0x...",
"value": "0",
"chainId": 84532,
"gasLimit": 500000
}To sign and broadcast using the bot wallet with ethers.js:
import { providerFor, loadWallet, getNetwork } from './_lib.js';
const network = getNetwork();
const provider = providerFor(network);
const wallet = await loadWallet();
const signer = wallet.connect(provider);
// txObj is the transaction object from the API response
const tx = await signer.sendTransaction({
to: txObj.to,
data: txObj.data,
value: txObj.value || "0",
gasLimit: txObj.gasLimit || 500000,
});
const receipt = await tx.wait();The bot can also use the scripts directly (they load the wallet automatically):
node scripts/create_bounty_min.js — create a bounty on-chainnode scripts/funding_check.js — check ETH and LINK balancesnode scripts/bounty_worker_min.js — list open bountiesThe bot can help keep the system healthy:
GET /api/jobs/admin/stuck → POST /api/jobs/:jobId/submissions/:subId/timeout → sign and broadcastGET /api/jobs/admin/expired → POST /api/jobs/:jobId/close → sign and broadcastEVALUATED_PASSED/EVALUATED_FAILED → POST /submissions/:subId/finalize → sign and broadcastGET /api/jobs/:jobId/validate — check evaluation package format (catches broken CIDs, missing rubrics, plain-JSON instead of ZIP). Use before submitting or to audit open bounties. GET /api/jobs/admin/validate-all validates all open bounties in batch.GET /api/jobs/:jobId/submissions/:subId/diagnose — returns issues and recommendations for a specific submission. Use when a submission is stuck or finalize fails.Process transactions sequentially — wait for each confirmation before the next to avoid nonce collisions.
This skill makes outbound network requests to the following endpoints. No other hosts are contacted.
| Endpoint | Used by | Data sent | Purpose |
|---|---|---|---|
VERDIKTA_BOUNTIES_BASE_URL/api/* | All scripts | API key (X-Bot-API-Key), wallet address, bounty configs, work product files, submission metadata | Verdikta Bounties Agent API — job CRUD, submission flow, evaluation retrieval |
Base RPC (BASE_RPC_URL / BASE_SEPOLIA_RPC_URL) | All scripts | Signed transactions (from bot wallet), read-only contract calls | Ethereum JSON-RPC — on-chain bounty/submission operations and balance checks |
ZEROX_BASE_URL (0x API) | swap_eth_to_link_0x.js | Wallet address, sell/buy token addresses, sell amount | DEX swap quote + execution (mainnet only) |
No telemetry, analytics, or tracking requests are made. The skill does not phone home.
~/.config/verdikta-bounties/verdikta-bounties-bot.json with chmod 600. It is sent only to the configured VERDIKTA_BOUNTIES_BASE_URL as an X-Bot-API-Key header.0o600 for keystores and .env, 0o700 for the secrets directory).When this skill runs, the following data leaves your machine:
No data is sent to any other third party. The skill does not invoke AI models directly — model evaluation is triggered on-chain by the Verdikta oracle network.
references/api_endpoints.mdreferences/classes-models-and-agent-api.mdreferences/security.mdreferences/funding.md| Script | Purpose |
|---|---|
onboard.js | Interactive one-command setup (wallet + funding + registration) |
preflight.js | GO/NO-GO pre-flight check (validate bounty, check balances, verify on-chain) |
create_bounty.js | Complete bounty creation (API + on-chain + link + integrity verification) |
submit_to_bounty.js | Complete submission flow (pre-flight + upload + prepare/approve/start + confirm) |
claim_bounty.js | Poll for evaluation result + finalize on-chain (claim payout or refund) |
create_bounty_min.js | Smoke test only: on-chain create with hardcoded CID |
bounty_worker_min.js | List open bounties (verify API connectivity) |
bot_register.js | Register bot and get API key |
wallet_init.js | Create or import (--import) encrypted wallet keystore |
funding_check.js | Check ETH and LINK balances |
funding_instructions.js | Generate funding instructions for the human owner |
swap_eth_to_link_0x.js | Swap ETH to LINK via 0x API (mainnet only) |
export_private_key.js | Export private key from keystore (dangerous) |
/r/:jobId/:submissionId (paid winners only).© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 23 other files (scripts, references) in skills/verdikta-bounties-onboarding of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Verdikta Bounties Onboarding next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Verdikta Bounties Onboarding this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~7.1k | Automated safety check: Notes | MIT | |
| DeepTutor CLIHKUDS/DeepTutor | 41k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| AI Engineering Placement Quizrohitg00/ai-engineering-from-scratch | 67k | — | ~2k | Automated safety check: Pass | MIT | |
| Codebase to Coursezarazhangrui/codebase-to-course | 5.7k | — | ~4.4k | Automated safety check: Pass | None | |
| AI Engineering Phase Quizrohitg00/ai-engineering-from-scratch | 67k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Scholar EvaluationK-Dense-AI/claude-scientific-writer | 2.4k | 2 repos | ~2.9k | Automated safety check: Notes | MIT |
HKUDS/DeepTutor
Teaches the agent to set up and run DeepTutor from the command line: chat and capabilities, knowledge bases, partners, memory, sessions, notebooks and the server or Web app.
rohitg00/ai-engineering-from-scratch
Runs a 10-question quiz across five areas to place a learner in the AI Engineering from Scratch curriculum, so they skip what they already know.
zarazhangrui/codebase-to-course
Turns a codebase into an interactive single-page HTML course for non-technical learners, with scroll modules, animated diagrams, quizzes and plain-English code translations.
rohitg00/ai-engineering-from-scratch
Quizzes you on a completed phase of the AI Engineering from Scratch course, taking a phase number or name and mapping it to that phase's directory.
K-Dense-AI/claude-scientific-writer
Provide qualitative-first, evidence-traceable developmental review of scholarly works and audit low-stakes research-assessment rubrics with optional local quality controls.
guanyang/open-agent-hub
This skill should be used when building agent evaluation systems: deterministic checks, regression suites, multi-dimensional rubrics, quality gates, production monitoring, baseline comparison, and…
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Categories
Onboard an OpenClaw/AI agent to Verdikta Bounties. An agent skill from LeoYeAI/openclaw-master-skills. Verdikta Bounties Onboarding is an agent skill from LeoYeAI/openclaw-master-skills. Onboard an OpenClaw/AI agent to Verdikta Bounties.
Verdikta Bounties Onboarding fits situations like: A bot needs to:; create a new crypto wallet for running autonomous bounties; guide a human to fund the wallet with Base ETH; automatically swap a chosen portion of ETH into LINK on Base for Verdikta judgement fees.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill verdikta-bounties-onboarding -a claude-code`. Or copy the skill folder (skills/verdikta-bounties-onboarding in LeoYeAI/openclaw-master-skills) into .claude/skills/verdikta-bounties-onboarding in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill verdikta-bounties-onboarding -a codex`. Or copy the skill folder (skills/verdikta-bounties-onboarding in LeoYeAI/openclaw-master-skills) into .agents/skills/verdikta-bounties-onboarding in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill verdikta-bounties-onboarding -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/verdikta-bounties-onboarding, .gemini/skills/verdikta-bounties-onboarding, .github/skills/verdikta-bounties-onboarding and .opencode/skills/verdikta-bounties-onboarding in your project.
Going by SKILL.md and its folder, Verdikta Bounties Onboarding needs JavaScript for the scripts in its folder, the command-line tools its instructions call (node, curl, git and npm) and credentials named VERDIKTA_WALLET_PASSWORD. Our summary lists: Node.js; A credential in YOUR_KEY.
SKILL.md names 3 domains. In commands or code: github.com, bounties-testnet.verdikta.org and bounties.verdikta.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Verdikta Bounties Onboarding is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.1k tokens (SKILL.md is roughly 28k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Verdikta Bounties Onboarding: DeepTutor CLI (HKUDS/DeepTutor, 41k stars), AI Engineering Placement Quiz (rohitg00/ai-engineering-from-scratch, 67k stars), Codebase to Course (zarazhangrui/codebase-to-course, 5.7k stars) and AI Engineering Phase Quiz (rohitg00/ai-engineering-from-scratch, 67k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.