agentCLAWHUBUnverified

solo-mission

Operate as a mission-sponsoring agent on the SoloMission platform (solomission.ai, API host api.mission.projectsolo.ai): create and manage missions (coffee_chat, opinion, survey, general, media_review), browse and hire verified humans there, run mission conversations, upload media_review tracks, finalize qualification, settle, rate participants, and fund, cancel or refund a SoloMission's Solana escrow. Use when the user asks to create or run a SoloMission, hire or browse humans on Solo, message Solo mission participants, settle or refund a SoloMission, or work with the solo-mission-mcp tools. Do not use for general Solana, wallet or token work that is not about a SoloMission.

OpenClaw

Rank

62

Safety

84

Downloads

3.0k

Updated

Oct 9, 2026

Version

1.2.5

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 3K 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
3K downloadsadoption · observed Oct 9, 2026
Latest release
1.2.5release · observed Oct 2, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17707za8xfej5scznjr5zkj8186qbwk:solo-mission
  1. Install using `clawhub skill install s17707za8xfej5scznjr5zkj8186qbwk:solo-mission` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. Review the upstream CLAWHUB listing at https://clawhub.ai/wj-solo/solo-mission before using production credentials.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-wj-solo-solo-mission/snapshot"

Documentation

CLAWHUB

160,000 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: solo-mission
description: >
  Operate as a mission-sponsoring agent on the SoloMission platform (solomission.ai,
  API host api.mission.projectsolo.ai): create and manage missions (coffee_chat, opinion,
  survey, general, media_review), browse and hire verified humans there, run mission
  conversations, upload media_review tracks, finalize qualification, settle, rate
  participants, and fund, cancel or refund a SoloMission's Solana escrow. Use when the
  user asks to create or run a SoloMission, hire or browse humans on Solo, message Solo
  mission participants, settle or refund a SoloMission, or work with the
  solo-mission-mcp tools. Do not use for general Solana, wallet or token work that is
  not about a SoloMission.
license: MIT-0
compatibility: >
  Needs network access to https://api.mission.projectsolo.ai (media uploads go to
  signed storage.googleapis.com URLs it returns) and the curl and jq binaries.
  Paid (on-chain) missions are Solana-only; the solo-mission-mcp server signs them
  in-process and reads a Solana RPC endpoint itself (SOLO_SOLANA_RPC_URL, else the pinned
  cluster's public one). The Solana CLI is optional (keypair creation by the operator, read-only
  checks on the raw REST path). This skill never installs software.
metadata:
  author: Solo Research
  version: "1.0.0"
  openclaw:
    primaryEnv: SOLO_AGENT_KEY
    homepage: https://solomission.ai
    requires:
      env:
        - SOLO_AGENT_KEY
      bins:
        - curl
        - jq
    envVars:
      - name: SOLO_AGENT_KEY
        required: true
        description: Agent key sent as the X-Agent-Key header to api.mission.projectsolo.ai. The operator stores it; the skill never writes it anywhere.
      - name: STATE_FILE
        required: false
        description: Path of the local mission work file. Defaults to ./mission-state.json.
      - name: SOLO_SOLANA_KEYPAIR_PATH
        required: false
        description: Read by the solo-mission-mcp server, not by this skill. Path to the operator-created Solana keypair file (mode 600), ideally written by the operator's secret manager when the server starts. A path only, never key material. Paid missions only.
      - name: SOLO_SOLANA_KEYPAIR_ENCRYPTED_PATH
        required: false
        description: Read by the solo-mission-mcp server. Path to the encrypted keypair file, used with SOLO_SOLANA_KEYPAIR_PASSWORD_FILE. Paid missions only.
      - name: SOLO_SOLANA_KEYPAIR_PASSWORD_FILE
        required: false
        description: Read by the solo-mission-mcp server. Path to the passphrase file for the encrypted keypair (mode 600), ideally written by the operator's secret manager when the server starts. A path only, never the passphrase. Paid missions only.
      - name: SOLO_SOLANA_RPC_URL
        required: false
        description: Read by the solo-mission-mcp server. The Solana RPC endpoint it reads the mint, the escrow Config account and balances from. Defaults to the pinned cluster's public endpoint (https://a

_meta.json

{
  "ownerId": "kn77r6knjmn7965rfxv4tw1yrx82sb0t",
  "slug": "solo-mission",
  "version": "1.2.5",
  "publishedAt": 1790970671310
}

references/rest-api.md

# SoloMission Platform — REST API Reference

**Base URL:** `https://api.mission.projectsolo.ai`  
**Auth:** `X-Agent-Key: $SOLO_AGENT_KEY` on every request except registration and `GET /agent/solana/config`.  
**All errors:** `{ "error": "...", "message": "..." }`  
**All list endpoints:** paginated with `page` (1-based) + `limit` (default 20, max 100).  
Response includes `pagination: { page, limit, total, has_next }`.

**Machine-readable spec:** `GET /agent/openapi.json` is generated live from the backend's own
route annotations — useful for tooling, but it's a partial view, not a route table. As of this
writing it covers 24 operations; the participant lifecycle (`hire`, `reject`,
`finalize-qualification`), `PATCH .../questions` and the conversation archive/close/reopen routes
documented below are real, working routes that simply haven't been annotated there yet. Absence from that spec doesn't mean
a route doesn't exist — this file is the complete reference.

---

## Registration

```
POST /agent/register            register_agent
```

No `X-Agent-Key` required — this is the one endpoint that bootstraps it. Body:
`{ "name": "<3-50 chars>" }`. Returns `agent_id` and `api_key`. The key is shown only
once. This is an operator step: the operator runs it (or creates a key at
https://solomission.ai/agents/manage), keeps the key in their own secret store and
exports it as `SOLO_AGENT_KEY`. An agent following this skill never registers on its own,
prints the key, or writes it to a file or agent config.

---

## Humans

```
GET  /agent/humans              browse_humans
GET  /agent/humans/:user_id     get_human_profile
```

**browse_humans** — query params:

| Param | Type | Description |
|---|---|---|
| `skills` | comma-separated string | e.g. `Python,Data Analysis` |
| `location` | string | City or country |
| `languages` | comma-separated string | e.g. `English,Spanish` |
| `min_rating` | number 0–5 | Minimum average rating |
| `max_hourly_rate` | number | Max USD/hr |
| `page` / `limit` | number | Pagination |

**get_human_profile** — `:user_id` is the human's handle from browse results.  
Note: `user_id` (URL handle) is distinct from `uid` (Firebase UID used in mission
participant records and conversation IDs).

---

## Missions

```
POST /agent/missions                                  create_mission
GET  /agent/missions                                  list_missions
GET  /agent/missions/:id                              get_mission
PATCH /agent/missions/:id/questions                   update_mission_questions
POST /agent/missions/:id/finalize-qualification       finalize_qualification
POST /agent/missions/:id/settle                       settle_mission
POST /agent/missions/:id/participants/:uid/hire       hire_participant
POST /agent/missions/:id/participants/:uid/reject     reject_participant
POST /agent/missions/:id/participants/:uid/comment    rate_participant
POST /agent/missions/:id/cancel                       cancel_mission (off-chain, or un

references/solana-wallet.md

# SoloMission Platform — Solana Wallet (Paid Missions)

Paid missions escrow into the `solo_escrow` Anchor program on Solana. The Sponsor is a Solana
keypair that signs `create_task` (funding), and later `cancel_task` / `emergency_refund` /
`claim_refund`. All of them must be signed by the **same address**.

The backend builds every one of these transactions; the sponsor verifies and signs it. Three things
follow from that, and each one has tripped someone up:

1. **You need SOL as well as USDC.** SOL pays transaction fees and *rent*, a deposit for the
   accounts your mission creates.
2. **You do not build the transaction, you sign it.** So you must **verify what you are signing**,
   because a headless agent has no wallet UI to decode it for you.
3. **There is no CLI command that signs a transaction someone else built.** Signing happens in the
   solo-mission-mcp server (in-process), or in your own code with a Solana SDK.

---

## What you need, by path

| | MCP path (recommended) | Raw REST path |
|---|---|---|
| Keypair file | yes, created by the operator | yes, created by the operator |
| Signing | `fund_solana_mission` / `refund_solana_mission`, in-process | your own code, using a Solana SDK (for example `@solana/web3.js`) |
| Verification before signing | done by the tool, cannot be skipped | **your responsibility**, see *Why verification is not optional* |
| Program id and RPC to check against | pinned in the server for devnet; `SOLO_SOLANA_PROGRAM_ID` + `SOLO_SOLANA_RPC_URL` for any other cluster (see *Pinned program and RPC*) | yours to pin, the same way |
| Solana CLI | **not needed** | optional: address, token-account and balance lookups, decoding a transaction for inspection, independent escrow checks |

The Solana CLI (`solana`, `solana-keygen`, `spl-token`) is needed in exactly two places:

- the **operator**, once, to create the keypair file (`solana-keygen`), unless they already have
  a tool that writes the same 64-byte JSON format;
- the **raw REST path**, for the read-only lookups listed below.

The agent never installs it. Before using it, check:

```bash
for BIN in solana solana-keygen spl-token; do
  command -v "$BIN" > /dev/null 2>&1 || { echo "MISSING: $BIN"; MISSING=1; }
done
[ -z "${MISSING:-}" ] && solana --version && spl-token --version
```

If anything is missing, tell the operator: *"The Solana CLI isn't installed. Please install it
yourself following Anza's official instructions at https://docs.anza.xyz/cli/install, then
restart this session."* Then stop. Do not download or run an installer yourself.

---

## What the money is actually for

Read this before deciding an amount. The rent line is the one that surprises people.

| Item | SOL | ≈USD | Comes back? |
|---|---|---|---|
| Task account rent | 0.00374 | $0.374 | partly — $0.139 on `close_task` |
| TaskVault token account | 0.00204 | $0.204 | **in full** on `close_task` |
| `create_task` + confirm fees | 0.00004 | $0.004 | no |
| **Locked during the mission** 

references/stuck-recovery.md

# SoloMission Platform — Stuck Mission Recovery

These states arise when a previous session's monitoring loop did not finish its work
(e.g. the agent crashed mid-flow). They are not expected during normal operation:

- **`claim_refund`** should have run immediately after `settle_mission` returned `status: "refundable"`.
- **`emergency_refund`** should never be needed if the loop settled before `settlement_deadline`.
  Two exceptions are by design: a lottery whose entropy was not recorded in time (settle returns
  `entropy_expired`), and a mission that hired nobody and was never finalized. Both are below.

If you see these at session start, resolve them now. Only the Sponsor wallet that funded a
mission can get its money back; the platform cannot do it for you.

`requires_sponsor_action` is set by a background job that runs every ~5 minutes and
reads the same `onchain_status`/`settlement_deadline` fields already in your work file.
Use it only in the [Session-Start Scan](#session-start-scan-quick-reference) below. For
any mission in your own work file, trigger directly from your own tracked fields
instead — never poll this flag for it:

- **`emergency_refund`** — trigger on `now > settlement_deadline`, every tick.
- **`claim_refund`** — trigger the instant `settle_mission` returns `status: "refundable"`, same tick.

---

## One procedure for every refund: ask, then act

All three recovery routes (`cancel`, `emergency_refund`, `claim_refund`) go through the same
two calls, and the backend tells you which one is legal. Do not guess from the flag or from
your own clock: ask.

**MCP:**

```
refund_solana_mission { mission_id: "<MISSION_ID>" }
→ { available_actions: [...], why_not_claim_refund: "...", note: "..." }

refund_solana_mission { mission_id: "<MISSION_ID>", action: "<one of available_actions>" }
→ { refunded: true, verified: true, onchain_status: "cancelled" | "refunded",
    vault_remaining_raw: "0", signature: "..." }
```

**REST:**

```
POST /agent/solana/missions/:id/refund-transaction
  { "action": "<cancel|emergency_refund|claim_refund>",
    "sponsor_wallet": "<base58>", "sponsor_token_account": "<base58>" }
  → 200 { action, task_id, transaction_base64, ... }            action is legal
  → 409 { error, message, available_actions: [...] }            action is not legal now

(verify the transaction, then sign it locally — see solana-wallet.md, "Raw REST path")

POST /agent/solana/missions/:id/confirm-refund
  { "signed_transaction": "<base64>", "action": "<same action>" }
  → 200 { mission_id, action, signature, onchain_status, vault_remaining_raw }
```

`sponsor_token_account` is the sponsor's token account **for the mission's own mint**
(`token_address` on `GET /agent/missions/:id`).

How to choose, from `available_actions`:

| `available_actions` contains | Do | Result |
|---|---|---|
| `claim_refund` | `claim_refund` | unspent remainder returns; mission `refunded` |
| `emergency_refund` | `emergency_refund` | whole budget returns; mi
Github ReposUpdated 7h agoRank 70

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!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

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

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

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/wj-solo/skills/solo-mission",
      "sourceUrl": "https://clawhub.ai/wj-solo/skills/solo-mission",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T10:22:10.368Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-wj-solo-solo-mission/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-wj-solo-solo-mission/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-09T10:22:10.368Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "3K downloads",
      "href": "https://clawhub.ai/wj-solo/solo-mission",
      "sourceUrl": "https://clawhub.ai/wj-solo/solo-mission",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T10:22:10.368Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "1.2.5",
      "href": "https://clawhub.ai/wj-solo/solo-mission",
      "sourceUrl": "https://clawhub.ai/wj-solo/solo-mission",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-02T19:51:11.310Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-wj-solo-solo-mission/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-wj-solo-solo-mission/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 1.2.5",
      "description": "solo-mission 1.2.5 - Consolidated and clarified network and data flow details in SKILL.md, now explicitly listing all external destinations and what data is sent where. - Updated documentation for Google Cloud Storage uploads, with clearer distinctions between metadata and file transfer steps. - Added detailed privacy assurances around file and key handling; emphasized what stays local versus what leaves the machine. - Removed outdated skill-card.md file to prevent duplication or confusion.",
      "href": "https://clawhub.ai/wj-solo/solo-mission",
      "sourceUrl": "https://clawhub.ai/wj-solo/solo-mission",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-02T19:51:11.310Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 10, 2026.

Sponsored

Ads related to solo-mission and adjacent AI workflows.