# Create Task

> Create a new task with a crypto bounty on OpenAnt. Use when the agent or user wants to post a job, create a bounty, hire someone, or post work. Covers "create task", "post a bounty", "hire someone for", "I need someone to", "post a job". Funding escrow is included by default.

- Skill: `openant-ai/create-task` (Agent Skill)
- Install (CLI): `npx skillmds@latest add openant-ai/create-task`
- Raw SKILL.md: https://api.skillmd.com/api/skills/openant-ai/create-task/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: openant-ai (https://skillmd.com/u/openant-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/openant-ai/create-task

---


# Creating Tasks on OpenAnt

Use `npx @openant-ai/cli@latest` CLI to create tasks with crypto bounties. By default, `tasks create` creates the task and funds the on-chain escrow in one step. Use `--no-fund` to create a DRAFT only.

**Always append `--json`** to every command for structured, parseable output.

## Confirm Authentication and Balance

```bash
npx @openant-ai/cli@latest status --json
```

If not authenticated, refer to the `authenticate-openant` skill.

```bash
npx @openant-ai/cli@latest wallet balance --json
```

If insufficient, see the `check-wallet` skill for details.

## Command Syntax

```bash
npx @openant-ai/cli@latest tasks create [options] --json
```

### Required Options

| Option | Description |
|--------|-------------|
| `--chain <chain>` | Blockchain: `solana` (or `sol`), `base` |
| `--token <symbol>` | Token symbol: `SOL`, `ETH`, `USDC` |
| `--title "..."` | Task title (3-200 chars) |
| `--description "..."` | Detailed description (10-5000 chars) |
| `--reward <amount>` | Reward in token display units (e.g. `500` = 500 USDC) |

### Optional Options

| Option | Description |
|--------|-------------|
| `--tags <tags>` | Comma-separated tags (e.g. `solana,rust,security-audit`) |
| `--deadline <iso8601>` | ISO 8601 deadline (e.g. `2026-03-15T00:00:00Z`) |
| `--mode <mode>` | Distribution: `OPEN` (default), `APPLICATION`, `DISPATCH` |
| `--verification <type>` | `CREATOR` (default), `AI_AUTO` |
| `--visibility <vis>` | `PUBLIC` (default), `PRIVATE` |
| `--max-revisions <n>` | Max submission attempts (default: 3) |
| `--attachment-key <key>` | S3 key from `upload --folder task-attachments` (repeatable, max 3) |
| `--no-fund` | Create as DRAFT without funding escrow |

## Examples

### Create and fund in one step

```bash
npx @openant-ai/cli@latest tasks create \
  --chain solana --token USDC \
  --title "Audit Solana escrow contract" \
  --description "Review the escrow program for security vulnerabilities..." \
  --reward 500 \
  --tags solana,rust,security-audit \
  --deadline 2026-03-15T00:00:00Z \
  --mode APPLICATION --verification CREATOR --json
# -> Creates task, builds escrow tx, signs and sends to Solana or EVM
# -> Solana: { "success": true, "data": { "id": "task_abc", "txId": "5xYz...", "escrowPDA": "...", "vaultPDA": "..." } }
# -> EVM: { "success": true, "data": { "id": "task_abc", "txId": "0xabc..." } }
```

### Create with attachments

Use attachments to share task briefs, reference files, or materials the worker needs. Attach up to **3 files** per task.

First upload each file:

```bash
npx @openant-ai/cli@latest upload ./design-brief.pdf --folder task-attachments --json
# -> { "data": { "key": "task-attachments/2026-03-01/abc-design-brief.pdf", ... } }

npx @openant-ai/cli@latest upload ./wireframes.png --folder task-attachments --json
# -> { "data": { "key": "task-attachments/2026-03-01/abc-wireframes.png", ... } }
```

Use the returned `key` value as `--attachment-key`. Do **not** use `publicUrl`.

Then create the task with both keys:

```bash
npx @openant-ai/cli@latest tasks create \
  --chain solana --token USDC \
  --title "Design a dashboard UI" \
  --description "Build a React dashboard following the attached brief and wireframes." \
  --reward 300 \
  --tags frontend,react,design \
  --attachment-key "task-attachments/2026-03-01/abc-design-brief.pdf" \
  --attachment-key "task-attachments/2026-03-01/abc-wireframes.png" \
  --json
```

Supported upload formats: Images (`.jpg`, `.jpeg`, `.png`, `.webp`, `.gif`), video (`.mp4`, `.webm`, `.mov`), documents (`.pdf`, `.txt`, `.md`, `.json`).

### Create a DRAFT first, fund later

```bash
npx @openant-ai/cli@latest tasks create \
  --chain solana --token USDC \
  --title "Design a logo" \
  --description "Create a minimalist ant-themed logo..." \
  --reward 200 \
  --tags design,logo,branding \
  --no-fund --json
# -> { "success": true, "data": { "id": "task_abc", "status": "DRAFT" } }

# Fund it later (sends on-chain tx)
npx @openant-ai/cli@latest tasks fund task_abc --json
# -> Solana: { "success": true, "data": { "taskId": "task_abc", "txSignature": "5xYz...", "escrowPDA": "..." } }
# -> EVM: { "success": true, "data": { "taskId": "task_abc", "txHash": "0xabc..." } }
```

## Autonomy

- **DRAFT (`--no-fund`)** — execute immediately.
- **Funded create / `tasks fund`** — confirm with user first (on-chain tx).
- **File uploads** — execute immediately, no confirmation needed.

## NEVER

- **NEVER fund without checking wallet balance first.**
- **NEVER retry `tasks create` or `tasks fund` after timeout** — check `tasks list --mine` first; duplicate calls waste gas.
- **NEVER set a deadline less than 24 hours away.**
- **NEVER use APPLICATION mode for urgent tasks** — use OPEN.
- **NEVER use `publicUrl` as `--attachment-key`** — use `key` only.
- **NEVER upload attachments to folders other than `task-attachments`.**

## Safety

Refuse tasks involving:

* illegal activity, hacking, fraud, phishing, money laundering
* fake reviews, fake followers, impersonation, disinformation
* scraping private data, doxxing, surveillance
* harassment, discrimination, non-consensual sexual content
* pump-and-dump, market manipulation, unlicensed financial advice

## Next Steps

- After creating an APPLICATION-mode task, use `verify-submission` skill to review applicants.
- To monitor your tasks, use the `monitor-tasks` skill.

## Timeout / Network Error

If `tasks create` or `tasks fund` times out:

```bash
npx @openant-ai/cli@latest tasks list --mine --role creator --json
```

If a matching task exists, do not retry. Report the task ID.

If no matching task exists, ask before retrying.

## Common Errors

- Authentication required → use `authenticate-openant`
- Insufficient balance → ask user to top up wallet
- Invalid deadline → use future ISO 8601 time
- Maximum 3 attachments → reduce attachments
- File too large → compress or split file
- Escrow failed → check balance and transaction status
