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 listCreate a Project
andamio project owner create --title "Community Dev" --description "Build things" --publicOptional 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=falseRegister 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-01All 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.
Link a GitHub Issue
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-01The 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 integerUpdate 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-30Delete 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
doneCreate 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
doneCreate 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-01Show task count by status
andamio project task list "$PROJECT_ID" --output json | \
jq -r '.data[].status' | sort | uniq -c | sort -rnPublic 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 jsonThis 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 commitmentsGet a Specific Commitment
andamio project contributor commitment --project-id <id> --task-index 3Commit to a Task
andamio project contributor commit --project-id <id> --task-index 3Update 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 3Contributor 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 commitmentsTask States
| Status | Meaning | Editable via CLI |
|---|---|---|
| DRAFT | Created, not yet on-chain | Yes — update and delete work |
| ACTIVE | Submitted on-chain | Read-only via CLI |
| COMPLETED | Claimed by a learner | Read-only via CLI |
Only DRAFT tasks can be updated, deleted, or imported.