skills/show-karma/skills/update-project

update-project

SKILL.md

Update Project

Update an existing project's details on the Karma protocol. This creates a new ProjectDetails attestation referencing the existing project.

See Agent API Reference for auth, base URL, and error handling.

Prerequisite

If KARMA_API_KEY is not set in the environment, invoke the /setup-agent skill first, then continue with this skill.

Required Information

Field Required Description
chainId Yes Chain where the project lives
projectUID Yes The project's attestation UID (bytes32 hex string)
title Yes Updated project name (1-200 chars)
description Yes Updated description (1-5000 chars)
imageURL No Updated project logo/image URL
links No Updated array of { type, url }
tags No Updated array of tag strings (max 20)

Finding the Project UID

If the user knows the project name but not the UID, search for it:

curl -s "${BASE_URL}/v2/projects?q=PROJECT_NAME&limit=5&page=1" | python3 -c "
import sys, json
data = json.load(sys.stdin)
for p in data.get('payload', []):
    d = p.get('details', {})
    print(f'Title: {d.get(\"title\", \"N/A\")} | Chain: {p[\"chainID\"]} | UID: {p[\"uid\"]}')
"

Natural Language Mapping

User says Action
"update my project" Ask which project (name or UID)
"change the title of project X to Y" Look up X's UID, set title to Y, keep other fields
"add a github link to project X" Look up current details, add the link
"update description of 0xabc..." Use the UID directly

Important: When updating, the new details replace the previous ones entirely. If the user only wants to change the title, you still need to provide the current description, links, and tags. Fetch the current details first if needed.

Making the Request

BASE_URL="${KARMA_API_URL:-https://gapapi.karmahq.xyz}"

curl -s -X POST "${BASE_URL}/v2/agent/execute" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${KARMA_API_KEY}" \
  -d '{
    "action": "updateProjectDetails",
    "params": {
      "chainId": 10,
      "projectUID": "0x1234...abcd",
      "title": "Updated Project Name",
      "description": "Updated description with new details",
      "links": [{ "type": "github", "url": "https://github.com/updated" }],
      "tags": ["defi"]
    }
  }'

After Success

Display the result using the standard output format. The updated details will be automatically indexed by the system.

Edge Cases

Scenario Response
Project name given instead of UID Look up the UID via the projects API
User only wants to change one field Fetch current details first, merge the change
Project not found "Could not find a project with that name. Check the name or provide the UID directly."
User doesn't own the project The API will return an error — relay it to the user
Weekly Installs
5
GitHub Stars
1
First Seen
11 days ago
Installed on
github-copilot5
codex5
kimi-cli5
gemini-cli5
cursor5
amp5