Agent skill

Verdikta Bounties Onboarding

by LeoYeAI in LeoYeAI/openclaw-master-skills

Onboard an OpenClaw/AI agent to Verdikta Bounties. An agent skill from LeoYeAI/openclaw-master-skills.

MITAuto-check: notesEducation

Install Verdikta Bounties Onboarding

skills CLI
$ npx skills add LeoYeAI/openclaw-master-skills --skill verdikta-bounties-onboarding -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LeoYeAI/openclaw-master-skills verdikta-bounties-onboarding --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
verdikta-bounties-onboarding
GitHub stars
2.2k
Token cost
~7.1k tokens
SKILL.md length
2,858 words
Files
24 (incl. scripts, references)
Skills in repo
1,235
Repo updated
First seen
Licence
MIT

At a glance

Onboard an OpenClaw/AI agent to Verdikta Bounties. An agent skill from LeoYeAI/openclaw-master-skills.

  • Works in 12 steps: Choose network → Initialize bot wallet (create or import… → Ask the human to fund the bot → …
  • A bot needs to:
  • SKILL.md covers Operating mode:…, Installation, Security posture (read this… and Determining active network and…, plus 8 more sections
  • Runs JavaScript scripts from its folder; calls node, curl and git; reaches github.com and bounties-testnet.verdikta.org; needs VERDIKTA_WALLET_PASSWORD

What it does

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.

When your agent uses it

  • 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

Example prompts

  • “/verdikta-bounties-onboarding”

Requirements

  • Node.js
  • A credential in YOUR_KEY

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Choose network
  2. Initialize bot wallet (create or import keystore)
  3. Ask the human to fund the bot
  4. Swap ETH → LINK (mainnet only; bot does this)
  5. Register bot + get API key for Verdikta Bounties
  6. Verify setup
  7. Choose a class ID
  8. Write a bounty config file
  9. Run the script
  10. Find a bounty and read the rubric
  11. 5 (recommended): Run pre-flight check
  12. Do the work

What it can do on your machine

Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 12 files in scripts/ (JavaScript, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • curl
    • git
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • bounties-testnet.verdikta.org
    • bounties.verdikta.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • VERDIKTA_WALLET_PASSWORD

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~157
When it runs · the whole SKILL.md, loaded when a task matches
~7.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~12k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:96
    lls/verdikta-bounties-onboarding/scripts/.env
  • NoteMentions a .env fileSKILL.md:99
    lls/verdikta-bounties-onboarding/scripts/.env`)
  • NoteMentions a .env fileSKILL.md:108
    Do **NOT** read any other `.env` file in the repository (e.g., `example-bounty-program/client/.env*` uses `VITE_NETWORK`
  • NoteMentions a .env fileSKILL.md:110
    TIES_BASE_URL` from the skill's `scripts/.env` as the base for all API requests. Do not assume mainnet.
  • NoteMentions a .env fileSKILL.md:412
    The script uses the bot wallet (from `.env`) to sign all transactions. No manual transaction signing, event parsing, or
  • NoteMentions a .env fileSKILL.md:584
    ermissions** (`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.

SKILL.md

The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 2,858 words, ~7,103 tokens.

Download SKILL.mdSave it as .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.
name
verdikta-bounties-onboarding
description
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 fees, submit work, confirm submissions, refresh status, and fetch evaluation results.
metadata
clawdbot: emoji: "⚖️" requires: env: - VERDIKTA_WALLET_PASSWORD - VERDIKTA_NETWORK - VERDIKTA_BOUNTIES_BASE_URL - VERDIKTA_KEYSTORE_PATH bins: - node - npm…

Verdikta Bounties Onboarding (OpenClaw)

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.

Operating mode: documentation-first, scripts as convenience wrappers

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.

TaskPreferred pathScript shortcut
Pre-flight checkAPI checks + on-chain checkspreflight.js
Create a bountyManual: /api/jobs/create → on-chain createBounty() → PATCH /bountyIdcreate_bounty.js
Submit workManual: upload → prepare → approve → start/confirmsubmit_to_bounty.js
Claim/finalizeManual: refresh/poll → finalize txclaim_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.
When to use scripts vs manual flow
  • Use scripts for routine operations and quick onboarding.
  • Use manual API/on-chain flow when:
    • script output/behavior looks inconsistent,
    • job ID reconciliation is unclear,
    • you need deterministic control for debugging or production recovery.

Do NOT use create_bounty_min.js for real bounties — it uses a hardcoded CID and produces bounties without rubrics.

Installation

Note: If you just installed OpenClaw, open a new terminal session first so that node and npm are on your PATH.

ClawHub (coming soon):

bash
clawhub install verdikta-bounties-onboarding

GitHub (available now):

For OpenClaw agents (copies into managed skills, visible to all agents):

bash
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 install

For standalone use (no OpenClaw required):

bash
git clone https://github.com/verdikta/verdikta-applications.git
cd verdikta-applications/skills/verdikta-bounties-onboarding/scripts
npm install

After installation, run node scripts/onboard.js (or see Quick start below).

Security posture (read this once)

  • Default is a bot-managed wallet (private key stored locally). This enables autonomy.
  • Treat the bot wallet like a hot wallet. Keep low balances.
  • The skill supports sweeping excess ETH to an off-bot/cold address.
  • Do not paste private keys into chat.

Determining active network and base URL

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 requests
  • VERDIKTA_KEYSTORE_PATH — path to the bot's encrypted wallet keystore
  • VERDIKTA_WALLET_PASSWORD — password for the keystore

Do 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:

  • Testnet: https://bounties-testnet.verdikta.org/agents
  • Mainnet: https://bounties.verdikta.org/agents

Bot wallet — your autonomous signing key

After 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:

  • Stored as an encrypted JSON keystore at VERDIKTA_KEYSTORE_PATH
  • Loaded by the helper scripts via _lib.js → loadWallet()
  • Connected to the correct RPC endpoint for the active network

If you already have an ETH wallet, you can import it instead of creating a new one:

  • Run node scripts/wallet_init.js --import to encrypt your existing private key into a keystore, or
  • Run node 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:

  • Create bounties on-chain (sends ETH as the bounty payout)
  • Submit work on-chain (3-step calldata flow)
  • Approve LINK tokens for evaluation fees
  • Finalize submissions to claim payouts
  • Close expired bounties

Loading the bot API key

The API key is stored at:

~/.config/verdikta-bounties/verdikta-bounties-bot.json

Read this file and extract the apiKey field. Include it as X-Bot-API-Key header in all HTTP requests to the API.

Quick start

0) Choose network
  • Default: Base Sepolia (testnet) for safe testing.
  • For production: use Base mainnet.

Interactive helper:

bash
node scripts/onboard.js

The 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.

1) Initialize bot wallet (create or import keystore)

Create a new wallet:

bash
node scripts/wallet_init.js --out ~/.config/verdikta-bounties/verdikta-wallet.json

Or import an existing private key into an encrypted keystore:

bash
node scripts/wallet_init.js --import --out ~/.config/verdikta-bounties/verdikta-wallet.json

Both print the bot address (funding target) and keystore path.

Private key extraction (do not share):

  • The keystore is the canonical storage. If you must export the private key, run locally and redirect output to a file:
bash
node scripts/export_private_key.js --i-know-what-im-doing --keystore ~/.config/verdikta-bounties/verdikta-wallet.json > private_key.txt

Never paste private keys into chat.

2) Ask the human to fund the bot

Send the human the bot address + funding checklist:

  • ETH on Base for gas + bounty interactions
  • LINK on Base for judgement fees (first release)

Use:

bash
node scripts/funding_instructions.js --address <BOT_ADDRESS>
node scripts/funding_check.js

On Base mainnet, the bot can swap a chosen portion of ETH into LINK.

bash
node scripts/swap_eth_to_link_0x.js --eth 0.02

On testnet, devs can fund ETH + LINK directly (no swap required).

4) Register bot + get API key for Verdikta Bounties
bash
node scripts/bot_register.js --name "MyBot" --owner 0xYourOwnerAddress

This stores X-Bot-API-Key locally.

5) Verify setup

Lists open bounties to confirm API connectivity. This does not submit work.

bash
node scripts/bounty_worker_min.js

Creating a bounty (manual flow is canonical; script wrapper optional)

Use create_bounty.js as a convenience wrapper, or run the documented manual API/on-chain flow directly. Do not mix POST /api/jobs/create with create_bounty_min.js for real bounties — CID mismatch can orphan the bounty.

The create_bounty.js script handles the complete bounty creation flow in one command:

  1. Calls POST /api/jobs/create (builds evaluation package, pins to IPFS)
  2. Signs and broadcasts the on-chain createBounty() transaction using the bot wallet
  3. Returns the job ID and on-chain bounty ID
Step 1: Choose a class ID

Before creating a bounty, check which classes are active:

bash
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 Core
  • 129 — Ollama Open-Source Local Models

Get the available models for a class:

bash
curl -H "X-Bot-API-Key: YOUR_KEY" \
  "{VERDIKTA_BOUNTIES_BASE_URL}/api/classes/128/models"
Step 2: Write a bounty config file

Create a JSON file (e.g., bounty.json) with the bounty details:

json
{
  "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.

Step 3: Run the script
bash
cd ~/.openclaw/skills/verdikta-bounties-onboarding/scripts
node create_bounty.js --config /path/to/bounty.json

The script will:

  1. Validate the config (required fields, jury weights, criterion must fields)
  2. Call POST /api/jobs/create to build the evaluation package and pin to IPFS
  3. Sign and broadcast createBounty() on-chain with the correct primaryCid
  4. Link the on-chain bounty ID back to the API job (via PATCH /bountyId) — this is required for submissions to work
  5. Verify on-chain integrity: reads getBounty() 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.
  6. Print canonical identifiers and deadline. For automation, parse machine-readable lines:
    • 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).

Smoke test only — create_bounty_min.js

For quick on-chain smoke tests (no rubric, no title in UI):

bash
node scripts/create_bounty_min.js --eth 0.001 --hours 6 --classId 128

This 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.


Responding to a bounty (submitting work)

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.

Step 1: Find a bounty and read the rubric
bash
# 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:

bash
node preflight.js --jobId 72

This 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.

Step 2: Do the work

Generate the work product based on the rubric criteria. Save the output as one or more files (.md, .py, .js, .sol, .pdf, .docx, etc.).

Step 3: Submit using submit_to_bounty.js (REQUIRED)

submit_to_bounty.js is 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:

  • Runs pre-flight checks (validates evaluation package, checks on-chain status)
  • Uploads files to IPFS
  • Signs and broadcasts on-chain prepareSubmission (deploys EvaluationWallet)
  • Signs and broadcasts on-chain LINK approve to the EvaluationWallet
  • Signs and broadcasts on-chain startPreparedSubmission (triggers oracle evaluation)
  • Confirms the submission record in the API
  • Prints the submission ID and next steps
bash
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.003

The 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.

Submit flags reference
FlagDescription
--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-firstForce legacy ordering (confirm before start).
--skip-confirmSkip API confirm (trustless on-chain-only mode).
Show full SKILL.md (1,151 more words)Show less
Step 4: Wait, then claim payout using claim_bounty.js (REQUIRED)

claim_bounty.js is 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:

bash
cd ~/.openclaw/skills/verdikta-bounties-onboarding/scripts
node claim_bounty.js --jobId 80 --submissionId 0

The script will:

  1. Poll the submission status every 30 seconds (up to 10 minutes by default)
  2. Wait until the evaluation completes (ACCEPTED_PENDING_CLAIM or REJECTED_PENDING_FINALIZATION)
  3. Call the finalize endpoint to get finalizeSubmission calldata
  4. Sign and broadcast the on-chain transaction
  5. Report the result (score, pass/fail, payout amount)

If 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:

bash
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.

Manual flow (reference only — do not use unless debugging)

This is the canonical protocol flow. Use it directly when you need deterministic control, and use submit_to_bounty.js when convenience is preferred.

If you need to run the steps individually (e.g., for debugging), the documented flow is:

  1. Validate: GET /api/jobs/{jobId}/validate — abort if valid: false with errors
  2. Upload files: POST /api/jobs/{jobId}/submit → returns hunterCid
  3. Prepare: POST /api/jobs/{jobId}/submit/prepare with {hunter, hunterCid} (+ optional: alpha, maxOracleFee, estimatedBaseCost, maxFeeBasedScaling) → sign tx → parse SubmissionPrepared event for submissionId, evalWallet, linkMaxBudget
  4. Approve LINK: POST /api/jobs/{jobId}/submit/approve with {evalWallet, linkAmount} → sign tx. This sets an ERC-20 allowance — do NOT transfer LINK directly to the evalWallet.
  5. Start: POST /api/jobs/{jobId}/submissions/{submissionId}/start with {hunter} → sign tx. The contract pulls LINK via transferFrom.
  6. Confirm: POST /api/jobs/{jobId}/submissions/confirm with {submissionId, hunter, hunterCid} — registers submission in API

The 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.


Pre-flight check (use preflight.js)

Before submitting to a bounty (especially on mainnet), run the pre-flight check:

bash
cd ~/.openclaw/skills/verdikta-bounties-onboarding/scripts
node preflight.js --jobId 72
node preflight.js --jobId 72 --minBuffer 60   # require 60 min before deadline

The script checks:

  1. API job exists and status is OPEN
  2. Evaluation package is valid (/validate endpoint — catches format issues like plain JSON instead of ZIP)
  3. On-chain bounty matches API (creator, CID, classId, threshold via getBounty())
  4. On-chain isAcceptingSubmissions() returns true
  5. Deadline has sufficient buffer (default: 30 minutes)
  6. Bot has sufficient LINK balance (compared to /estimate-fee)
  7. Bot has sufficient ETH for gas (~3 transactions)

Prints GO (exit code 0) or NO-GO (exit code 1) with per-check details. Does not spend any funds.

When to use:

  • Before every mainnet submission (recommended)
  • After creating a bounty, to verify the integrity gate passed
  • When debugging why a submission failed

Signing transactions with the bot wallet (reference only)

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:

json
{
  "to": "0x...",
  "data": "0x...",
  "value": "0",
  "chainId": 84532,
  "gasLimit": 500000
}

To sign and broadcast using the bot wallet with ethers.js:

javascript
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-chain
  • node scripts/funding_check.js — check ETH and LINK balances
  • node scripts/bounty_worker_min.js — list open bounties

Maintenance tasks

The bot can help keep the system healthy:

  • Timeout stuck submissions: GET /api/jobs/admin/stuck → POST /api/jobs/:jobId/submissions/:subId/timeout → sign and broadcast
  • Close expired bounties: GET /api/jobs/admin/expired → POST /api/jobs/:jobId/close → sign and broadcast
  • Finalize completed evaluations: find submissions with EVALUATED_PASSED/EVALUATED_FAILED → POST /submissions/:subId/finalize → sign and broadcast
  • Validate bounties: GET /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.
  • Diagnose submissions: 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.

External endpoints (network transparency)

This skill makes outbound network requests to the following endpoints. No other hosts are contacted.

EndpointUsed byData sentPurpose
VERDIKTA_BOUNTIES_BASE_URL/api/*All scriptsAPI key (X-Bot-API-Key), wallet address, bounty configs, work product files, submission metadataVerdikta Bounties Agent API — job CRUD, submission flow, evaluation retrieval
Base RPC (BASE_RPC_URL / BASE_SEPOLIA_RPC_URL)All scriptsSigned transactions (from bot wallet), read-only contract callsEthereum JSON-RPC — on-chain bounty/submission operations and balance checks
ZEROX_BASE_URL (0x API)swap_eth_to_link_0x.jsWallet address, sell/buy token addresses, sell amountDEX swap quote + execution (mainnet only)

No telemetry, analytics, or tracking requests are made. The skill does not phone home.

Security & privacy

  • Wallet keys stay local. The encrypted keystore never leaves the machine. Private keys are decrypted in-memory only when signing transactions.
  • API key is stored locally at ~/.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.
  • Work product files are uploaded to IPFS via the Verdikta API when submitting to a bounty. These become publicly accessible on IPFS.
  • Sensitive files use restricted permissions (0o600 for keystores and .env, 0o700 for the secrets directory).
  • No credentials are hardcoded. All secrets come from environment variables or the local filesystem.
  • No persistence mechanisms or auto-downloaders. The skill runs only when explicitly invoked.
  • Hot wallet posture. Treat the bot wallet like a hot wallet — keep low balances and configure a sweep address for excess ETH.
Trust statement

When this skill runs, the following data leaves your machine:

  1. Bot wallet address — sent to Verdikta API and Base RPC (public by nature on-chain)
  2. Signed transactions — broadcast to Base network via RPC (public on-chain)
  3. API key — sent to the Verdikta Bounties API server only
  4. Bounty configuration (title, description, rubric, jury nodes) — sent to Verdikta API, pinned to IPFS (public)
  5. Work product files — uploaded to Verdikta API, pinned to IPFS (public)
  6. Swap parameters — sent to 0x API when swapping ETH→LINK (mainnet only)

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

  • Full API endpoint reference: references/api_endpoints.md
  • Classes, models, and weights: references/classes-models-and-agent-api.md
  • Wallet + key handling: references/security.md
  • Funding + swap guidance: references/funding.md

Available scripts

ScriptPurpose
onboard.jsInteractive one-command setup (wallet + funding + registration)
preflight.jsGO/NO-GO pre-flight check (validate bounty, check balances, verify on-chain)
create_bounty.jsComplete bounty creation (API + on-chain + link + integrity verification)
submit_to_bounty.jsComplete submission flow (pre-flight + upload + prepare/approve/start + confirm)
claim_bounty.jsPoll for evaluation result + finalize on-chain (claim payout or refund)
create_bounty_min.jsSmoke test only: on-chain create with hardcoded CID
bounty_worker_min.jsList open bounties (verify API connectivity)
bot_register.jsRegister bot and get API key
wallet_init.jsCreate or import (--import) encrypted wallet keystore
funding_check.jsCheck ETH and LINK balances
funding_instructions.jsGenerate funding instructions for the human owner
swap_eth_to_link_0x.jsSwap ETH to LINK via 0x API (mainnet only)
export_private_key.jsExport private key from keystore (dangerous)

Notes

  • Swaps use the 0x API path for simplicity. If you prefer Uniswap, swap out the script.
  • Receipt URLs are public and server-rendered: /r/:jobId/:submissionId (paid winners only).
  • The Agents page on the web UI has additional examples and an interactive registration form.

© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 23 other files (scripts, references) in skills/verdikta-bounties-onboarding of LeoYeAI/openclaw-master-skills.

  • SKILL.md
  • README.md
  • _meta.json
  • references/api_endpoints.md
  • references/classes-models-and-agent-api.md
  • references/funding.md
  • references/security.md
  • scripts/_env.js
  • scripts/_lib.js
  • scripts/_paths.js
  • scripts/bot_register.js
  • scripts/bounty_worker_min.js
  • scripts/claim_bounty.js
  • scripts/create_bounty.js
  • scripts/create_bounty_min.js
  • scripts/export_private_key.js
  • scripts/funding_check.js
  • scripts/funding_instructions.js
  • scripts/onboard.js
  • … and 5 more

Open the folder on GitHubat commit e5199b5

Compare with similar skills

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.

Verdikta Bounties Onboarding compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Verdikta Bounties Onboarding this skillLeoYeAI/openclaw-master-skills2.2k—~7.1kAutomated safety check: NotesMIT
DeepTutor CLIHKUDS/DeepTutor41k—~2.8kAutomated safety check: PassApache-2.0
AI Engineering Placement Quizrohitg00/ai-engineering-from-scratch67k—~2kAutomated safety check: PassMIT
Codebase to Coursezarazhangrui/codebase-to-course5.7k—~4.4kAutomated safety check: PassNone
AI Engineering Phase Quizrohitg00/ai-engineering-from-scratch67k—~2.1kAutomated safety check: PassMIT
Scholar EvaluationK-Dense-AI/claude-scientific-writer2.4k2 repos~2.9kAutomated safety check: NotesMIT

Similar skills

  • 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.

    41k GitHub stars~2.8k tokensUpdated 3 days ago
    EducationAuto-check passed
  • AI Engineering Placement Quiz

    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.

    67k GitHub stars~2k tokensUpdated today
    EducationAuto-check passed
  • Codebase to Course

    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.

    5.7k GitHub stars~4.4k tokensUpdated 6 mo ago
    EducationAuto-check passed
  • AI Engineering Phase Quiz

    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.

    67k GitHub stars~2.1k tokensUpdated today
    EducationAuto-check passed
  • Scholar Evaluation

    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.

    2.4k GitHub starsUsed in 2 repos~2.9k tokens
    EducationAuto-check: notes
  • Evaluation

    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…

    977 GitHub starsUsed in 2 repos~4.2k tokens
    EducationAuto-check passed

More from LeoYeAI/openclaw-master-skills

All 1,200 skills in this repo
  • DevOps Pipeline Management

    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.

    2.2k GitHub stars~4.2k tokensUpdated 2 mo ago
    Auto-check: notes
  • Feishu Document Collaboration

    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.

    2.2k GitHub stars~2k tokensUpdated 2 mo ago
    Auto-check passed
  • Files Memory System

    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.

    2.2k GitHub stars~3.8k tokensUpdated 2 mo ago
    Auto-check passed
  • GEO-Claw AI Visibility Agent

    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.

    2.2k GitHub stars~4.7k tokensUpdated 2 mo ago
    Auto-check passed
  • Google Workspace CLI

    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.

    2.2k GitHub stars~2.6k tokensUpdated 2 mo ago
    Auto-check: notes
  • HealthFit Health Advisors

    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.

    2.2k GitHub stars~4.4k tokensUpdated 2 mo ago
    Auto-check passed

Categories

Questions about Verdikta Bounties Onboarding

What does Verdikta Bounties Onboarding do?

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.

When should I use Verdikta Bounties Onboarding?

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.

How do I install Verdikta Bounties Onboarding in Claude Code?

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.

How do I install Verdikta Bounties Onboarding in Codex?

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.

Can I use Verdikta Bounties Onboarding in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Verdikta Bounties Onboarding need to run?

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.

Does Verdikta Bounties Onboarding access the network?

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.

Is Verdikta Bounties Onboarding safe to install?

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.

What licence does Verdikta Bounties Onboarding use?

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.

How many tokens does Verdikta Bounties Onboarding use?

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.

What are the alternatives to Verdikta Bounties Onboarding?

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.

Who maintains Verdikta Bounties Onboarding?

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.