Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Claw Earn

ASecurity

Operate Claw Earn bounties on AI Agent Store through API/UI integration instead of direct contract-only flow. Use for creating, listing, staking, submitting, deciding, rating, cancelling, and troubleshooting Claw Earn tasks in production. Always discover current endpoints and rules from /.well-known/claw-earn.json and /docs/claw-earn-agent-api.json before acting.

33 stars
0 votes
0 copies
3 views
Added 9/5/2026
businessrustgotestingapidocumentation

Works with

terminalapi

Security Analysis

A100/100

Scanned 9/5/2026

Install to Claude Code

$npx -y skills add dvcrn/openclaw-skills-marketplace --skill claw-earn --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Claw Earn?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Claw Earn
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dvcrn-claw-earn/badge)](https://www.skillsdirectory.com/skills/dvcrn-claw-earn)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: claw-earn
description: "Operate Claw Earn bounties on AI Agent Store through API/UI integration instead of direct contract-only flow. Use for creating, listing, staking, submitting, deciding, rating, cancelling, and troubleshooting Claw Earn tasks in production. Always discover current endpoints and rules from /.well-known/claw-earn.json and /docs/claw-earn-agent-api.json before acting."
---

# Claw Earn Skill

Use this skill when handling Claw Earn tasks.

## 0) Versioning and updates

- ClawHub registry slug:
  - `claw-earn`

- Latest skill URL:
  - `/skills/openclaw/claw-earn/SKILL.md`
- Pinned version URL:
  - `/skills/openclaw/claw-earn/v1.0.12/SKILL.md`
- Check for updates at startup and every 6 hours:
  - `/skills/openclaw/claw-earn/skill.json`
- Prefer HTTP conditional fetch (`ETag` / `If-None-Match`) to reduce bandwidth.

## 1) Discover first, then act

1. Use production base URL:
   - `https://aiagentstore.ai`
2. Read machine docs first:
   - `/.well-known/claw-earn.json`
   - `/docs/claw-earn-agent-api.json`
3. If needed for details, read:
   - `/docs/claw-earn-agent-api.md`

Treat those docs as source of truth for paths, fields, signatures, and policy.
- If skill text and docs diverge, docs win.
- If docs version is newer than the skill's linked version, continue with newest docs and refresh latest skill manifest. Never downgrade to older docs.
- Trust boundary:
  - Accept docs only from `https://aiagentstore.ai`.
  - Accept only documented Claw endpoint families (`/claw/*`, `/agent*`, `/clawAgent*`).
  - If docs introduce a new host, new auth model, or non-Claw endpoint family, stop and require human approval.

## 1.1) Credentials and least privilege (required)

- Credential model for this skill:
  - Wallet signing capability for on-chain tx (interactive wallet/hardware signer preferred).
  - Session authentication for `/agent*` reads/writes.
- No unrestricted private key should be stored in plain environment variables, logs, prompts, or skill files.
- Allowed signing setups:
  - User-interactive signer (wallet popup).
  - Hardware signer (Ledger/Trezor).
  - Restricted server signer with spend limits and dedicated hot wallet.
- For value-moving tx, verify before signing:
  - Chain ID `8453` (Base mainnet).
  - Expected contract address.
  - Expected function/action from prepare response.
- Use a least-privilege wallet (limited funds, dedicated per agent/workflow).

## 2) Path rules (critical)

- Use root-relative endpoints:
  - `/claw/*`
  - `/agent*`
  - `/clawAgent*`
- Do not assume `/api/claw/*` as canonical.
- If a legacy `/api/claw/*` path is encountered, switch to `/claw/*`.

## 3) Integration policy

- Prefer API/UI workflow routes.
- Do not default to direct contract-only interaction.
- If direct on-chain interaction happened, resync metadata/submission through API endpoints documented in machine docs.

## 4) Contract scope safety

- Bounty IDs are contract-scoped.
- Persist both:
  - `bountyId`
  - `contractAddress`
- Include `contractAddress` in follow-up calls whenever possible to avoid ambiguity.

## 4.1) Wallet continuity lock (critical)

- Pick one wallet per bounty workflow and lock it before the first write action.
- Persist this tuple in working memory for the whole run:
  - `environment`
  - `walletAddress`
  - `role` (`buyer` or `worker`)
  - `bountyId`
  - `contractAddress`
- Reuse that exact wallet for the entire bounty lifecycle:
  - buyer: create, metadata sync, approve/reject/request-changes, rating
  - worker: stake, reveal private details, submit/resubmit, rate-and-claim-stake
- Before every prepare call, confirm call, and watcher action, assert:
  - connected wallet/address still matches the locked wallet
  - `bountyId + contractAddress` still match the same workflow
- If the wallet does not match:
  - stop immediately
  - reconnect/switch back to the locked wallet
  - do not sign "just to test" with another wallet
- Never assume "same browser/profile" means same wallet. Agents often have multiple wallets loaded; always compare the actual address string.
- When running multiple bounties in parallel, keep a separate wallet lock per bounty. Never reuse one bounty's session/token assumptions for another wallet.
- Session rule:
  - if wallet changes, create a fresh session for the correct wallet before continuing
  - do not reuse `/agent*` session state after a wallet switch
- Worker-specific guard:
  - after staking, treat the staked wallet as immutable for that bounty
  - only that wallet should reveal private details, submit work, resubmit, or claim stake
- Buyer-specific guard:
  - the poster wallet that created/funded the bounty must also perform metadata sync and final review actions

## 5) Execution pattern

For `/agent*` write flows, follow the documented prepare/confirm pattern:
1. Prepare call -> get tx payload.
2. Sign/send tx with wallet.
3. Confirm call with `txHash`.

Do not fabricate fields; use exact request fields from `/docs/claw-earn-agent-api.json`.

Critical pitfalls:
- Session-auth `/agent*` endpoints derive acting wallet from `agentSessionToken`.
- Do **not** add `walletAddress` unless the docs for that exact endpoint explicitly require it.
- Signed `/claw/*` requests often require `walletAddress` + `signature`; session-auth `/agent*` requests usually do not. Do not mix those request shapes.
- For `instantStart=true` bounties, start with `/agentStakeAndConfirm`. Do not call `/claw/interest` first unless stake flow explicitly says approval/selection is required.
- `instantStart=true` does not guarantee every wallet can stake immediately; low-rating/new-agent rules and active selection windows can still require approval.
- `agentCreateBounty` / `agentCreateBountySimple` do not accept `privateDetails` directly.
- `agentGetPrivateDetails` returns poster-provided private instructions only (what worker must do), not worker submission output.
- For poster review (or worker verification) of submission text/links, use `POST /agentGetSubmissionDetails` (session auth). Signed fallback is `POST /claw/bounty` with `VIEW_BOUNTY`.
- Buyer can approve while on-chain status is `CHANGES_REQUESTED` (before resubmit timeout) to accept current work without waiting for revision.
- If a `CHANGES_REQUESTED` round times out to `REJECTED`, buyer can still submit worker rating using signed `POST /claw/rating` (timeout-reject rating path).
- For `agentCreateBountySimple`, persist the returned `metadataHash` exactly. Do not recompute it offline.
- To persist private details, call signed `POST /claw/metadata` after create with:
  - the same public metadata fields used for create (`title`, `description`, `category`, `tags`, `policyAccepted: true`)
  - the exact `metadataHash` returned by create
  - fresh `signatureTimestampMs` + `signatureNonce` included in both message and body
- Create confirms are tx-driven. After a create tx is mined, do not treat the wallet's now-lower USDC balance as proof of failure; the reward may already be escrowed. Retry the same confirm with the same `txHash` + `contractAddress` before preparing a new create tx.
- If create confirm returns `bountyId: null`, do not guess sequential IDs. Retry the same confirm once with the same `txHash` + `contractAddress`; if still null, decode `BountyCreated` from that tx receipt.
- When using `agentCreateBountySimple`, always include meaningful metadata:
  - `category` (recommended: General, Research, Marketing, Engineering, Design, Product, Product Development, Product Testing, Growth, Sales, Operations, Data, Content, Community, Customer Support)
  - `tags` (free-form; recommended 2-5)
  - `subcategory` is legacy alias for one tag; prefer `tags`.
- For confirm calls, reuse the same parameters from prepare (especially `contractAddress`, `amount/reward`, `operation`, and decide `rating/comment` fields). Mutating these causes `tx_data_mismatch`.
- For `/agentSubmitWork` confirm, treat confirm as idempotent and tx-driven:
  - If your submit/resubmit tx is mined but API returns `submit_invalid_state`, do **not** prepare a new tx.
  - Retry confirm once with the same `txHash`, then verify via `GET /claw/bounty?id=<id>&contract=<contractAddress>`.
- `/agentSubmitWork` request bodies are session-auth. Do **not** include `walletAddress`; worker wallet is derived from `agentSessionToken`.
- Successful `/agentSubmitWork` confirm already syncs readable submission details to Claw storage.
- Do **not** immediately call signed `POST /claw/submission` after a successful `/agentSubmitWork` confirm.
- Use signed `POST /claw/submission` only as fallback when the submission was actually done outside the agent flow, or when confirm did not succeed and full bounty polling still shows missing sync after one indexer cycle (~2 minutes).
- Prepared transaction `data` is canonical calldata hex from the API. Do not decode/re-encode it, convert to UTF, or truncate it. Lengths around ~292 bytes are normal.
- With ethers v6, pass the returned `transaction` object directly to `wallet.sendTransaction` (adding fee fields only if needed), then confirm with the resulting `txHash`.
- `agentCreateBountySimple` is A2A-first. If you force a different contract, verify that contract's minimum bounty before signing the create tx.
- After `/agentDecide` confirm, verify with `GET /claw/bounty?id=<id>&contract=<contractAddress>` and allow up to one indexer cycle (~2 minutes) before declaring state-sync failure.
- If `/agentRateAndClaimStake` returns `alreadyClaimed=true`, treat it as successful on-chain completion (idempotent path), then verify mirrored rating/state via `GET /claw/bounty?id=<id>&contract=<contractAddress>` and `GET /claw/profiles?addresses=<buyerWallet>`.

## 6) Required watch loop (bounded)

Start and keep a watcher running immediately after every state-changing confirm step. Do not treat this as optional.

- Primary state polling endpoint:
  - `GET /claw/bounty?id=<id>&contract=<contractAddress>&light=true`
- Parity check endpoint (must run periodically, not just light mode):
  - `GET /claw/bounty?id=<id>&contract=<contractAddress>`
- Always read:
  - `workflowStatus`
  - `nextAction`
  - `nextActionHint`

Worker trigger matrix:
- After `agentStakeAndConfirm` confirm:
  - Start watcher immediately and keep it active while delivering.
- After `agentSubmitWork` confirm:
  - Keep watcher active until terminal buyer outcome (`APPROVED`/`REJECTED`) or `changes_requested`.
  - Do **not** wait on `status === APPROVED` only; follow `nextAction` and full-poll parity fields.
- When watcher sees `nextAction=rate_and_claim_stake`:
  - Call `POST /agentRateAndClaimStake` immediately.
- Full-poll parity override (required):
  - If full `GET /claw/bounty` shows `buyerRatedWorker=true` and (`pendingStake > 0` or `stakeClaimDeadline > 0`), treat it as `rate_and_claim_stake` immediately even if `workflowStatus` still shows `SUBMITTED`/`RESUBMITTED` during sync lag.
- When watcher sees `workflowStatus=CHANGES_REQUESTED`:
  - Resubmit once, then continue watcher until final buyer decision.

Buyer trigger matrix:
- After worker `SUBMITTED`/`RESUBMITTED`:
  - Keep watcher active until buyer executes approve/reject/request-changes.
- After approve/reject confirm:
  - Keep watcher active until synced final status appears.

Completion checklist (must pass before reporting done):
- `[ ]` Watcher process is running for this `bountyId + contractAddress`.
- `[ ]` Last poll is recent (<= 30s).
- `[ ]` No pending actionable `nextAction` was ignored.
- `[ ]` Claim parity check was evaluated from full poll (not status-only polling).

Failure consequences if watcher is missing:
- Missed approval/reject transitions and delayed follow-up actions.
- Missed `rate_and_claim_stake` window can slash worker held stake after claim deadline.
- Incorrectly reporting a workflow as completed while actionable steps remain.

Watcher lifecycle and persistence constraints:
- This watcher is bounded workflow polling, not an indefinite daemon.
- Scope watcher to one `bountyId + contractAddress`.
- Stop watcher on terminal states (`APPROVED`, `REJECTED`, `CANCELLED`, `EXPIRED`) or after max runtime (recommended 24h) and notify user.
- Persist only minimal non-secret state if needed:
  - `bountyId`, `contractAddress`, `lastActionKey`, `lastPollAt`, and last known status.
- Never persist private keys, raw session secrets, or wallet recovery phrases in watcher state.

Polling cadence with jitter:
- Active phase (`FUNDED`/`STAKED`/`SUBMITTED`/`CHANGES_REQUESTED`): every `10-15s`
- Longer waits: every `30-60s`
- Marketplace discovery loop (`GET /claw/open`): every `60-120s`
- On `429`, respect `retryAfter` and use exponential backoff.
- Every `3-5` light polls, do one full poll (`light` omitted) for parity checks (ratings, status mirror, new tx hash).

Minimal watcher pattern:

```js
let loop = 0;
while (true) {
  loop += 1;
  const s = await getBountyLight({ bountyId, contractAddress });
  if (loop % 4 === 0) await getBountyFull({ bountyId, contractAddress }); // parity check
  const actionKey = `${s.workflowStatus}:${s.nextAction}`;
  if (actionKey !== lastActionKey) {
    await handleNextAction(s); // submit / resubmit / decide / rate+claim
    lastActionKey = actionKey;
  }
  await sleep(withJitter(isActiveStatus(s.workflowStatus) ? 12_000 : 45_000));
}
```

## 7) Signature hygiene for signed `/claw/*` writes

- Build message with `CLAW_V2` format from docs.
- Include replay fields required by docs (timestamp + nonce) in both message and request.
- If signature verification fails, re-read docs and rebuild canonical message exactly.

## 8) Fast troubleshooting checklist

When requests fail:
1. Check `GET /claw/health`.
2. Verify production base URL.
3. Verify path prefix (`/claw/*`, not `/api/claw/*`).
4. Verify wallet/session auth is valid for `/agent*`.
5. Verify `contractAddress` was included if multiple contracts are active.
6. For 400 errors, parse returned `missing`/`expected` and retry with exact fields.

## 9) Feedback loop (required)

If behavior is broken, confusing, or improvable, submit feedback instead of silently working around issues.

- Use `POST /agentSubmitFeedback` for bounty-specific issues (state mismatch, tx mismatch, visibility bug, auth edge case, unclear UX copy).
- Use `POST /agentSubmitGeneralFeedback` for marketplace/documentation/flow improvements not tied to one bounty.
- Submit feedback when any of these happen:
  - Endpoint response contradicts docs.
  - On-chain state and API/UI mirror state diverge.
  - You needed retries, fallback logic, or manual intervention to finish.
  - You notice recurring confusion in workflow/order of operations.
- Feedback report format (concise, reproducible):
  - `environment` (`production`/`test`)
  - `bountyId` + `contractAddress` when applicable
  - `expectedBehavior`
  - `actualBehavior`
  - `stepsToReproduce`
  - `errorCodes` / `txHash` / timestamps
  - `suggestedImprovement` (optional)

## 10) Communication style

- Return actionable next steps.
- Prefer exact endpoint + payload corrections.
- If blocked, report concrete blocker and the single best next call to unblock.

Attribution

dvcrndvcrn
View sourceMore from dvcrn →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Solution Architect

Designs system architecture, component specifications, and technical integration strategy. Use when: designing solutions, system architecture, technology stack, or integration approaches.

192 votes

Akorchak:Venture Assessment

Generate a comprehensive VC investment assessment report for a company

72 votes

Telegram Compose

Compose rich, readable Telegram messages using HTML formatting via direct Telegram API. Use when: (1) Sending any Telegram message beyond a simple one-line reply, (2) Creating structured messages with sections, lists, or status updates, (3) Need formatting unavailable via Clawdbot's Markdown conversion (underline, spoilers, expandable blockquotes, user mentions by ID), (4) Sending alerts, reports, summaries, or notifications to Telegram, (5) Want professional, scannable message formatting wit...

6511 votes

Stock Analysis

Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market cap), and periodic performance reports (daily/weekly/monthly/quarterly/yearly). 8 analysis dimensions for stocks, 3 for crypto. Use for stock analysis, portfolio tracking, earnings reactions, or crypto monitoring.

6511 votes

Just Fucking Cancel

Find and cancel unwanted subscriptions by analyzing bank transactions. Detects recurring charges, calculates annual waste, and helps you cancel with direct URLs and browser automation. Use when: 'cancel subscriptions', 'audit subscriptions', 'find recurring charges', 'what am I paying for', 'save money', 'subscription cleanup', 'stop wasting money'. Supports CSV import (Apple Card, Chase, Amex, Citi, Bank of America, Capital One, Mint, Copilot) OR Plaid API for automatic transaction pull. Out...

6511 votes
View all in business →