Andamio Logo
Developer Guides/Andamio CLI

Managing Tasks

Create and manage project tasks, contribute to bounties, and review commitments

Managing Tasks

Project Owner Commands

If you own projects (created via on-chain transaction), manage them with the project owner subgroup. All require user authentication.

List Your Projects

andamio project owner list

Create a Project

andamio project owner create --title "Community Dev" --description "Build things" --public

Optional flags: --description, --image-url, --video-url, --category, --public.

Update Project Metadata

Only specified flags are updated — omitted fields remain unchanged:

andamio project owner update --project-id <id> --title "New Title"
andamio project owner update --project-id <id> --description "Updated" --public=false

Register an On-Chain Project

After creating a project on-chain with tx run, register it with off-chain metadata. The on-chain transaction creates the project in the smart contract; registration links it to the API's metadata store.

andamio project owner register --project-id <id> --title "Community Dev"

Task Management

Project tasks represent on-chain bounties tied to work items. Managers create tasks in DRAFT state, set a lovelace reward and expiration, and optionally link them to a GitHub issue. Learners complete the work and claim the reward on-chain.

All task commands require user authentication (wallet login) and manager access on the project.

Setup

Find your project ID first — you'll use it for every task command:

andamio project list --output json | jq -r '.data[0].project_id'

Or save it as a variable:

export PROJECT_ID=$(andamio project list --output json | jq -r '.data[0].project_id')

List Tasks

andamio project task list <project-id>

JSON output for scripting:

andamio project task list "$PROJECT_ID" --output json | jq -r '.data[] | "\(.task_index)  \(.content.title)"'

Get a Task

andamio project task get <task-index> --project-id <project-id>
andamio project task get 3 --project-id "$PROJECT_ID" --output json | jq '.content.title'

Create a Task

andamio project task create <project-id> \
  --title "Your task title" \
  --lovelace 5000000 \
  --expiration 2026-06-01

All three flags are required. Expiration accepts both date-only (2026-06-01) and datetime (2026-06-01T00:00:00Z) formats.

Assign Native Asset Tokens

Use --token to attach Cardano native assets (e.g. XP tokens) as rewards:

andamio project task create "$PROJECT_ID" \
  --title "Build a dApp" \
  --lovelace 5000000 \
  --expiration 2026-06-01 \
  --token "722c475bebb106799b109fc95301c9b796e1a37b6afc601359d54a04,XP,50"

Format: --token "policy_id,asset_name,quantity" — repeatable for multiple tokens.

The CLI auto-hex-encodes asset_name if it's human-readable text. Cardano stores asset names as hex on-chain, so XP is sent as 5850. Already-hex values pass through unchanged. When exporting tasks, hex names are decoded back to human-readable text for editing.

andamio project task create "$PROJECT_ID" \
  --title "Complete milestone" \
  --lovelace 5000000 \
  --expiration 2026-06-01 \
  --token "abc123...,XP,50" \
  --token "def456...,RewardToken,100"

Policy IDs must be exactly 56 hex characters. Empty asset names are allowed for policy-only tokens ("policyid,,quantity").

Tokens can also be added to existing tasks via update:

andamio project task update 3 --project-id "$PROJECT_ID" \
  --token "abc123...,XP,50"

Omitting --token on update leaves existing tokens unchanged.

Use --github-issue to prefix the title with the issue reference:

andamio project task create "$PROJECT_ID" \
  --title "Add wallet connect button" \
  --github-issue "Andamio-Platform/andamio-cli#42" \
  --lovelace 5000000 \
  --expiration 2026-06-01

The stored title becomes [Andamio-Platform/andamio-cli#42] Add wallet connect button, visible in task list.

Lovelace Validation

--lovelace must be a non-negative integer. 1 ADA = 1,000,000 lovelace.

--lovelace 2000000    # 2 ADA ✓
--lovelace -100       # error: must be non-negative
--lovelace abc        # error: must be a non-negative integer

Update a Task

Update any subset of fields on a DRAFT task:

andamio project task update <task-index> --project-id <project-id> --title "New title"
andamio project task update <task-index> --project-id <project-id> --lovelace 3000000
andamio project task update <task-index> --project-id <project-id> \
  --title "Updated" --lovelace 7000000 --expiration 2026-11-30

Delete a Task

Only DRAFT tasks can be deleted:

andamio project task delete <task-index> --project-id <project-id>

GitHub + Andamio Workflows

Because all commands work without a TTY, they compose cleanly with gh in bash scripts.

Create tasks from open GitHub issues

gh issue list --repo org/repo --json number,title --jq '.[]' | \
while IFS= read -r issue; do
  NUMBER=$(echo "$issue" | jq -r '.number')
  TITLE=$(echo "$issue" | jq -r '.title')
  andamio project task create "$PROJECT_ID" \
    --title "$TITLE" \
    --github-issue "org/repo#$NUMBER" \
    --lovelace 5000000 \
    --expiration 2026-06-01
done

Create tasks from issues with a specific label

gh issue list --repo org/repo --label "bounty" --json number,title --jq '.[]' | \
while IFS= read -r issue; do
  NUMBER=$(echo "$issue" | jq -r '.number')
  TITLE=$(echo "$issue" | jq -r '.title')
  andamio project task create "$PROJECT_ID" \
    --title "$TITLE" \
    --github-issue "org/repo#$NUMBER" \
    --lovelace 10000000 \
    --expiration 2026-12-01
done

Create a task from one specific issue

ISSUE=42
andamio project task create "$PROJECT_ID" \
  --title "$(gh issue view $ISSUE --repo org/repo --json title --jq '.title')" \
  --github-issue "org/repo#$ISSUE" \
  --lovelace 5000000 \
  --expiration 2026-06-01

Show task count by status

andamio project task list "$PROJECT_ID" --output json | \
  jq -r '.data[].status' | sort | uniq -c | sort -rn

Public Task Listing

Anyone with an API key can view tasks on a project without manager access:

andamio project tasks <project-id>
andamio project tasks <project-id> --output json

This uses the public user endpoint, unlike project task list which requires manager role.

Project Manager: Review Commitments

Managers review contributor commitments on their projects. Requires user authentication and manager access.

andamio project manager commitments --project-id <id>

JSON output for scripting:

andamio project manager commitments --project-id "$PROJECT_ID" --output json | \
  jq '.data[] | {commitment_id, title: .content.title}'

Project Contributor Commands

Contributors commit to tasks, submit evidence, and track their work. All project contributor commands require user authentication.

List Your Projects and Commitments

# Projects you contribute to
andamio project contributor list

# All your task commitments
andamio project contributor commitments

Get a Specific Commitment

andamio project contributor commitment --project-id <id> --task-index 3

Commit to a Task

andamio project contributor commit --project-id <id> --task-index 3

Update Evidence

andamio project contributor update --project-id <id> --task-index 3 --evidence "https://github.com/my/pr"

For chain-only tasks (no task index), use --task-hash instead of --task-index:

andamio project contributor update --project-id <id> --task-hash 9672454f... --evidence "https://github.com/my/pr"

On-Chain Transactions

For on-chain operations (task commitment, credential claim), use tx run with the appropriate transaction endpoint. See Transaction Signing for the full workflow.

Delete a Commitment

Withdraw your commitment from a task:

andamio project contributor delete --project-id <id> --task-index 3

Contributor Workflow Example

The full contributor workflow from discovering tasks to submitting evidence:

PROJECT_ID="your-project-id"

# 1. Browse available tasks (public — no manager role needed)
andamio project tasks "$PROJECT_ID"

# 2. Commit to a task
andamio project contributor commit --project-id "$PROJECT_ID" --task-index 3

# 3. Submit evidence
andamio project contributor update --project-id "$PROJECT_ID" --task-index 3 \
  --evidence "https://github.com/myrepo/pull/5"

# 4. Check your commitment status
andamio project contributor commitment --project-id "$PROJECT_ID" --task-index 3 -o json

# 5. List all your active commitments
andamio project contributor commitments

Task States

StatusMeaningEditable via CLI
DRAFTCreated, not yet on-chainYes — update and delete work
ACTIVESubmitted on-chainRead-only via CLI
COMPLETEDClaimed by a learnerRead-only via CLI

Only DRAFT tasks can be updated, deleted, or imported.