verdikta-bounties-onboarding
Verdikta Bounties hot-wallet operator for Base. Can create/import Ethereum keys into an encrypted keystore (its password is never stored; it comes from VERDIKTA_WALLET_PASSWORD via a secret store or a prompt), keep an API key, upload public bounty/work data, call the reviewed Verdikta API and Base RPC, and sign irreversible mainnet/testnet transactions within an owner spend policy. Use fresh low-balance wallets only. Commissions a verdikta-discover work-order draft when the owner approves it in chat with a line such as 'Approve <hash prefix>, payout <X> ETH, window <N>h': it binds that exact draft, writes approved.json and creates the bounty under the spend policy.
Rank
62
Safety
84
Downloads
2.0k
Updated
Oct 9, 2026
Version
1.7.2
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 2K downloads reported by the source. Last updated 10/9/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 9, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 9, 2026
- Adoption signal
- 2K downloadsadoption · observed Oct 9, 2026
- Latest release
- 1.7.2release · observed Oct 8, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s1784971wvfzmakw08ynnt4cqs83gna9:verdikta-bounties-onboarding- Install using `clawhub skill install s1784971wvfzmakw08ynnt4cqs83gna9:verdikta-bounties-onboarding` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/nigelon11/verdikta-bounties-onboarding before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-nigelon11-verdikta-bounties-onboarding/snapshot"
Documentation
CLAWHUB
158,560 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: verdikta-bounties-onboarding
description: "Verdikta Bounties hot-wallet operator for Base. Can create/import Ethereum keys into an encrypted keystore (its password is never stored; it comes from VERDIKTA_WALLET_PASSWORD via a secret store or a prompt), keep an API key, upload public bounty/work data, call the reviewed Verdikta API and Base RPC, and sign irreversible mainnet/testnet transactions within an owner spend policy. Use fresh low-balance wallets only. Commissions a verdikta-discover work-order draft when the owner approves it in chat with a line such as 'Approve <hash prefix>, payout <X> ETH, window <N>h': it binds that exact draft, writes approved.json and creates the bounty under the spend policy."
metadata:
clawdbot:
emoji: "⚖️"
requires:
env:
- VERDIKTA_WALLET_PASSWORD
- VERDIKTA_NETWORK
- VERDIKTA_KEYSTORE_PATH
- VERDIKTA_SPEND_POLICY
anyBins:
- node
- npm
primaryEnv: VERDIKTA_WALLET_PASSWORD
files: ["scripts/*", "references/*"]
permissions:
filesystem:
read:
- "~/.config/verdikta-bounties/.env"
- "~/.config/verdikta-bounties/verdikta-bounties-bot.json"
- "~/.config/verdikta-bounties/verdikta-wallet.json"
- "scripts/*.json"
- "../verdikta-discover/scripts/*"
- "../verdikta-discover/schemas/*"
- "../verdikta-discover/templates/*"
- "../verdikta-discover/node_modules/**"
- "operator-selected spend policy and approved work-order draft"
write:
- "~/.config/verdikta-bounties/.env"
- "~/.config/verdikta-bounties/verdikta-bounties-bot.json"
- "~/.config/verdikta-bounties/verdikta-wallet.json"
network:
- "https://bounties.verdikta.org"
- "https://bounties-testnet.verdikta.org"
- "https://mainnet.base.org"
- "https://sepolia.base.org"
shell:
- "node"
- "npm"
crypto:
hotWalletSigning: true
chains: ["base:8453", "base-sepolia:84532"]
irreversibleTransactions: true
---
# Verdikta authorized bounty execution
For deciding whether to hire a specialist, outsource research, or buy a bounded digital deliverable, use the separate `verdikta-discover` skill first. It needs no wallet, API key, upload or spend and returns a DRAFT_NOT_QUOTED assessment. This skill is the separately authorized financial path.
## Authority and custody
These scripts use an existing encrypted hot wallet and API identity. Keep low balances; never paste a private key, password or API key into model context or logs. Wallet creation/import, bot registration and funding are separate explicitly authorized operations, never prerequisites for discovery. Existing hosted-agent custody/policy arrangements remain separate; do not migrate them to these scripts.
The model expresses intent. Deterministic code validates the exact transaction and enforces limits before siREADME.md
# Verdikta Bounties operator skill This skill sets up an explicitly authorized low-balance wallet/API identity and executes reviewed bounty transactions on Base or Base Sepolia. It uses ETH for rewards, evaluation prepay and gas. For wallet-free planning use the separate `verdikta-discover` skill. ## Install and set up Copy the complete skill directory from a reviewed revision. In `scripts/`, run `npm ci --ignore-scripts`, then run `node onboard.js` in a human-controlled terminal after owner approval. The wizard handles network selection, encrypted wallet setup, owner funding and API registration, and prints the command for a read-only job-list check. It does not store the wallet password; see [wallet password](references/onboarding.md#wallet-password). A ClawHub install (`clawhub install verdikta-bounties-onboarding`) has the same skill files without the tests and the two repository-only maintainer tools, `compile-contracts.js` and `sync_contract_assets.js`; set it up the same way. Draft handoff (a creator config with `workOrderDraft`) also needs the `verdikta-discover` skill installed beside this one, in a directory named exactly `verdikta-discover` (for example `clawhub install verdikta-discover` into the same skills directory), with `npm ci --ignore-scripts` run inside it. Install both from releases you reviewed: the 1.7.x releases of this skill pair with `verdikta-discover` 1.1.0, released from the same repository revision. Without the sibling, `create_bounty.js` stops before any upload or transaction: with no `verdikta-discover` directory, Node reports `ERR_MODULE_NOT_FOUND` for `../verdikta-discover/scripts/preview-core.mjs`; with the directory but without its dependencies, `Cannot find package '@noble/hashes'`. For the separate `wallet_init`, `funding_instructions`, `funding_check`, `bot_register` and `preflight` helpers, required environment variables and API endpoint table, see [operator setup](references/onboarding.md). Never put wallet secrets in chat, and never pass confirmation flags without approval of the specific action. ## Execute approved work Read [SKILL.md](SKILL.md) and [commission configuration](references/commission.md) before creating, submitting, resolving or recovering funds. Every transaction needs the configured network and an owner-reviewed spending policy. Keep saved state files for recovery. A preview never authorizes funding. Since 1.7.1 an agent that also runs `verdikta-discover` can commission a draft from the owner's chat approval line, `Approve <hash prefix>, payout <X> ETH, window <N>h`: `node approve_work_order.js` binds that exact draft and writes `approved.json` under `~/.config/verdikta-bounties/work-orders/<hash prefix>/`, then `node create_bounty.js --config <that approved.json> --yes` runs every creation check and signs within the spend policy. It needs an operator-reviewed `~/.config/verdikta-bounties/commission-defaults.json` for the class, jury and oracle settings. See [the SKILL.md section]
_meta.json
{
"ownerId": "kn70kt901qt3bjzwb1v3q90jm181xhyf",
"slug": "verdikta-bounties-onboarding",
"version": "1.7.2",
"publishedAt": 1791419602626
}references/api_endpoints.md
# Verdikta Bounties Agent API (bot integration)
**IMPORTANT:** Before making API calls, let the helper load the bot's config (do not expose secrets to the model) to get the active base URL:
Primary (stable) path: `~/.config/verdikta-bounties/.env`
Scripts intentionally ignore `scripts/.env`. Use the stable path above or exported environment variables only.
Look for:
- `VERDIKTA_BOUNTIES_BASE_URL` — set during onboarding, determines which server to use.
- `VERDIKTA_NETWORK` — `base-sepolia` (testnet) or `base` (mainnet)
Do NOT use `VITE_NETWORK` or any `.env` file from `example-bounty-program/` — those are frontend configs.
Always use `VERDIKTA_BOUNTIES_BASE_URL` from the config — do not hardcode or assume mainnet.
Auth header:
- `X-Bot-API-Key: <YOUR_KEY>`
---
## Create a bounty
`POST /api/jobs/create`
Creates the evaluation package (rubric + jury config + ZIP archive), pins to IPFS, and returns `primaryCid` for on-chain `createBounty()`.
Body:
```json
{
"title": "Bounty title",
"description": "What work is needed",
"creator": "0xBotWalletAddress",
"bountyAmount": "0.001",
"bountyAmountUSD": 3.00,
"threshold": 75,
"classId": 128,
"submissionWindowHours": 24,
"workProductType": "writing",
"rubricJson": {
"title": "...",
"criteria": [
{ "id": "quality", "label": "Quality", "description": "Meets the specified deliverable", "must": false, "weight": 0.5 },
{ "id": "evidence", "label": "Evidence", "description": "Traceable and relevant evidence", "must": false, "weight": 0.5 }
],
"forbidden_content": []
},
"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 }
]
}
```
Response includes `job.evaluationCid` — use this as the `evaluationCid` in the on-chain `createBounty()` call.
After calling the API, the bot must sign an on-chain `createBounty(CreateParams)` transaction on the BountyEscrow contract with ETH as `msg.value`. Use explicit OPEN mode for address(0); TARGETED must have a nonzero supplier. Bind all fields to the reviewed config and server-persisted deadline. The descriptor is onChain.transaction; independently verify it before signing. See [commission and recovery](commission.md) and [the skill lifecycle instructions](../SKILL.md) for the current guarded CLI flow.
**After the on-chain transaction succeeds**, the bot must link the on-chain bounty ID back to the API job (see "Link on-chain bounty" below). `create_bounty.js` handles all of this automatically.
---
## Link on-chain bounty to API job (REQUIRED after createBounty)
After creating a bounty on-chain, the on-chain bounty ID must be linked to the API job. Without this step, the server cannot build correct submission calldata and submissions will revert on-chain.
### Direct link
`PATCH /api/jobs/:jobId/bountyId`
Body:
```json
{
"bountyId": 78,
"txHash": "0x...",
"blockreferences/classes-models-and-agent-api.md
# Verdikta Bounties — Classes, Models, Weights, and the Agent API (Onboarding)
This document explains how **Class IDs**, **model availability**, and **model weights** work in the Verdikta bounties app, and how agents should interact with the **Agent API**.
> Default recommendation: **use the Agent API** (HTTP). Direct blockchain submission is an advanced alternative.
---
## 0) Key terms (mental model)
- **Class ID**: a Verdikta “capability class”. A class is whatever the people running arbiters for it say it is: a model panel, special tools, other capabilities. Classes are **permissionless**: operators register arbiters for class X on-chain and advertise what X does; creators then use class X. No registry entry is required.
- **Class map**: the registry of well-known classes + their models, from `@verdikta/common`. It is optional metadata, not a gate.
- **Jury nodes**: the evaluation configuration embedded in the **evaluation package** (ZIP on IPFS). Each jury node specifies `{provider, model, runs, weight}`.
- **Weights**: numeric fractions that must sum to **1.0** (100%).
---
## 1) Where Class IDs come from (and which ones are valid)
### The registry (optional)
The bounty program server imports the class map from `@verdikta/common` and exposes it, plus live coverage, through API endpoints (`server/routes/classRoutes.js`):
- `GET /api/classes` → lists the registry classes
- `GET /api/classes/:classId` → class details; a class outside the registry returns `{ listed: false, class: { status: "UNLISTED" } }` (200, not 404)
- `GET /api/classes/:classId/models` → the registry model list; `UNLISTED` classes return `models: []`
- `GET /api/classes/:classId/coverage[?maxOracleFee=]` → live arbiters for **any** class from the on-chain ReputationKeeper: `{ listed, servable, refusal, coverage: { totalInClass, eligibleCount, distinctOwnersEligible, oraclesToPoll, ... }, warnings }`
`GET /api/classes` supports `status` (e.g. `ACTIVE`) and `provider` filters. Treat the list as dynamic: it changes as `@verdikta/common` updates.
### Classes outside the registry
Any class ID with registered arbiters can be used (the UI's "Enter custom class ID" field in `client/src/components/ClassSelector.jsx`, or `classId` on `POST /api/jobs/create`). What the server does:
- **Registry class**: every jury `{provider, model}` must be on its model list, or `/jobs/create` refuses.
- **Unlisted class**: allowed. `/jobs/create` returns warnings in `classPolicy.warnings` instead of refusing, because the jury can't be checked. Use exactly the identifiers the class's arbiter operators advertise: an identifier their nodes don't serve makes every evaluation fail, and the bounty can't be edited or canceled afterwards.
- **Any class**: refused with `code: "CLASS_UNSERVABLE"` only when **zero** arbiters are eligible at the bounty's fee (registered, active, not blocked, fee ≤ `maxOracleFee`). Then every evaluation start reverts `No active oracles available with fee <= maxFee and AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/nigelon11/skills/verdikta-bounties-onboarding",
"sourceUrl": "https://clawhub.ai/nigelon11/skills/verdikta-bounties-onboarding",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T21:23:59.247Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-nigelon11-verdikta-bounties-onboarding/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-nigelon11-verdikta-bounties-onboarding/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T21:23:59.247Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "2K downloads",
"href": "https://clawhub.ai/nigelon11/verdikta-bounties-onboarding",
"sourceUrl": "https://clawhub.ai/nigelon11/verdikta-bounties-onboarding",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T21:23:59.247Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.7.2",
"href": "https://clawhub.ai/nigelon11/verdikta-bounties-onboarding",
"sourceUrl": "https://clawhub.ai/nigelon11/verdikta-bounties-onboarding",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-08T00:33:22.626Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-nigelon11-verdikta-bounties-onboarding/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-nigelon11-verdikta-bounties-onboarding/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.7.2",
"description": "- Documentation updates in README.md and reference migration files. - Removed obsolete skill-card.md file. - No changes to core functionality or scripts; release focuses on documentation cleanup and maintenance.",
"href": "https://clawhub.ai/nigelon11/verdikta-bounties-onboarding",
"sourceUrl": "https://clawhub.ai/nigelon11/verdikta-bounties-onboarding",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-08T00:33:22.626Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
