create-project
Create Project
Create a new project on the Karma protocol. This creates two on-chain attestations: Project + ProjectDetails.
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
Gather from the user before calling the API:
| Field | Required | Description |
|---|---|---|
chainId |
Yes | Which blockchain (see supported chains in reference) |
title |
Yes | Project name (1-200 chars) |
description |
Yes | Project description (1-5000 chars) |
imageURL |
No | Project logo/image URL |
links |
No | Array of { type, url } — e.g., github, website, twitter |
tags |
No | Array of strings — e.g., "defi", "infrastructure" (max 20) |
Natural Language Mapping
| User says | Action |
|---|---|
| "create a project" | Ask for title, description, chain |
| "create a project called X" | Use X as title, ask for description and chain |
| "create a DeFi project on Optimism" | tags: ["defi"], chainId: 10, ask for title/description |
| "new project on Base" | chainId: 8453, ask for title/description |
If the user doesn't specify a chain, ask. For testing, suggest OP Sepolia (11155420).
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": "createProject",
"params": {
"chainId": 10,
"title": "My Project",
"description": "Project description",
"imageURL": "https://example.com/logo.png",
"links": [
{ "type": "github", "url": "https://github.com/myproject" },
{ "type": "website", "url": "https://myproject.com" }
],
"tags": ["defi", "infrastructure"]
}
}'
After Success
Display the result using the output format from the reference. The project will be automatically indexed by the system.
Edge Cases
| Scenario | Response |
|---|---|
| Missing title or description | Ask the user for the missing field |
| Chain not specified | Ask which chain, suggest options |
| API key not set | Invoke /setup-agent skill automatically |
| Title too long (>200) | Truncate and confirm with user |
More from show-karma/skills
create-project-update
Post a progress update on an existing Karma project. Use when user says "post an update", "project progress report", "share project status", or "send project update".
6complete-milestone
Mark a milestone as completed on the Karma protocol. Use when user says "complete milestone", "mark milestone done", "finish milestone", "milestone completed", or "submit milestone proof".
5find-programs
Search the Karma Funding Map for funding programs (grants, hackathons, bounties, accelerators, VC funds, RFPs) via the public API. Use when a user asks about funding opportunities, programs, or ecosystem grants.
2