← 返回
数据分析

Catallax

Interact with the Catallax decentralized contract work protocol on Nostr. Use when the user mentions tasks, bounties, contract work, arbiters, escrow, labor market, gigs, or Catallax. Supports browsing open tasks, creating task proposals, discovering arbiter services, submitting work deliveries, and managing the full task lifecycle (kinds 33400, 33401, 3402).
在Nostr上与Catallax去中心化合约工作协议交互。用于任务、赏金、合约工作、仲裁人、托管、劳动力市场、零工或Catallax相关话题。支持浏览开放任务、创建提案、发现仲裁服务、提交交付物及管理完整任务生命周期(类型33400、33401、3402)。
kai-familiar
数据分析 clawhub v1.0.0 1 版本 99919.7 Key: 无需
★ 2
Stars
📥 1,205
下载
💾 19
安装
1
版本
#bitcoin#bounties#contracts#crowdfund#escrow#latest#nostr

概述

Catallax Skill

Interact with Catallax — a decentralized contract work protocol on Nostr using Lightning/Cashu payments and trusted escrow arbiters.

Protocol Overview

Read references/NIP-3400.md for the full spec. Key concepts:

  • Patron: Creates tasks, funds escrow, assigns workers
  • Arbiter: Escrow agent who judges work and handles payment
  • Free Agent: Applies for tasks, delivers work, gets paid
  • Kinds: 33400 (arbiter service), 33401 (task proposal), 3402 (task conclusion)
  • Status flow: proposed → funded → in_progress → submitted → concluded

Querying Tasks

Use nak to query kind 33401 events from relays:

# List all task proposals (limit 50)
nak req -k 33401 -l 50 wss://relay.damus.io

# Filter by tag (e.g. tasks tagged "development")
nak req -k 33401 -t development -l 50 wss://relay.damus.io

# Filter by status (open tasks only)
nak req -k 33401 -l 100 wss://relay.damus.io | \
  while read -r event; do
    status=$(echo "$event" | jq -r '.tags[] | select(.[0]=="status") | .[1]')
    if [ "$status" = "proposed" ] || [ "$status" = "funded" ]; then
      echo "$event"
    fi
  done

Parse the content field as JSON to get title, description, requirements. Parse tags for amount, status, categories.

Display Format

When presenting tasks to the user, show:

  • Title (from content.title)
  • Bounty (from amount tag, in sats — show "?" if missing)
  • Status (from status tag)
  • Date (from created_at)
  • Categories (from t tags)
  • Description (from content.description, truncated)
  • Funding type (from funding_type tag: "patron" or "crowdfunding")

Querying Arbiters

# List arbiter services
nak req -k 33400 -l 50 wss://relay.damus.io

Parse content for name, about, policy. Parse tags for fee_type, fee_amount, min/max amounts, categories.

Display Format

When presenting arbiters:

  • Name (from content.name)
  • Fee (fee_type + fee_amount — e.g. "5%" or "1000 sats flat")
  • Min/Max (from min_amount/max_amount tags)
  • Categories (from t tags)
  • About (from content.about)

Creating a Task Proposal

To create a task as a Patron, publish a kind 33401 event:

# Build and publish task proposal
nak event -k 33401 \
  --tag d="<unique-slug>" \
  --tag p="<your-pubkey>" \
  --tag amount="<bounty-in-sats>" \
  --tag t="<category>" \
  --tag status="proposed" \
  --tag funding_type="patron" \
  -c '{"title":"Task Title","description":"Detailed description...","requirements":"What must be delivered"}' \
  --sec "<nsec>" \
  wss://relay.damus.io wss://nos.lol wss://relay.primal.net

Generate the d-tag slug from the title (lowercase, hyphenated, with random suffix for uniqueness).

Important: The content field must be valid JSON with title, description, and optionally requirements and deadline.

Updating Task Status

Since kind 33401 is addressable replaceable, publish a new event with the same d-tag to update. Include all original tags plus changes:

# Update to funded (add zap receipt reference)
nak event -k 33401 \
  --tag d="<same-d-tag>" \
  --tag status="funded" \
  --tag e="<zap-receipt-event-id>" \
  # ... all other original tags ...
  --sec "<nsec>" \
  wss://relay.damus.io

Submitting Work (as Free Agent)

Work delivery is coordinated out-of-band per the protocol. However, agents may use kind 951 (work delivery) as a convention:

nak event -k 951 \
  --tag e="<task-event-id>" \
  --tag p="<patron-pubkey>" \
  -c '{"delivery":"Description of completed work","evidence":"Link or proof"}' \
  --sec "<nsec>" \
  wss://relay.damus.io

Task Conclusion (Arbiter only)

nak event -k 3402 \
  --tag e="<payout-zap-receipt-id>" \
  --tag e="<task-event-id>" \
  --tag p="<patron-pubkey>" \
  --tag p="<arbiter-pubkey>" \
  --tag p="<worker-pubkey>" \
  --tag resolution="successful" \
  --tag a="33401:<patron-pubkey>:<task-d-tag>" \
  -c '{"resolution_details":"Work met all requirements"}' \
  --sec "<nsec>" \
  wss://relay.damus.io

Common Queries

User saysAction
-------------------
"find bounties" / "show tasks"Query kind 33401, filter status=proposed or funded
"create a task" / "post a bounty"Build and publish kind 33401
"find arbiters"Query kind 33400
"submit work" / "deliver"Publish kind 951 referencing the task
"check my tasks"Query kind 33401 filtered by user's pubkey in p-tags
"what's the status"Fetch specific task by d-tag, report status

Reference Client

For visual browsing: https://catallax-reference-client.netlify.app/catallax

Key Relays

Query multiple relays for best coverage:

  • wss://relay.damus.io
  • wss://nos.lol
  • wss://relay.primal.net

Note: Some relays may not return results for nak req -k 33401 due to kind filtering. If nak returns empty results, fall back to a WebSocket script approach — open a WebSocket connection, send a REQ with {"kinds":[33401],"limit":50}, and collect EVENT responses until EOSE.

Edge Cases

  • Missing amount tag: Some tasks use crowdfunding (funding_type=crowdfunding) with a NIP-75 goal tag instead of a fixed amount. Display bounty as "crowdfunded" in this case.
  • Content format: Content should be JSON but some early tasks used plain text. Try JSON.parse first, fall back to treating content as description.
  • Stale tasks: Tasks with status=proposed older than 30 days may be abandoned. Note age when displaying.
  • Multiple relays: Always publish to 3+ relays for discoverability. Query from multiple relays and deduplicate by event id.

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-29 00:58 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

data-analysis

A股量化 AkShare

mbpz
A股量化数据分析工具,基于AkShare库获取A股行情、财务数据、板块信息等。用于回答关于A股股票查询、行情数据、财务分析、选股等问题。
★ 166 📥 60,259
data-analysis

Excel / XLSX

ivangdavila
创建、检查和编辑 Microsoft Excel 工作簿及 XLSX 文件,支持可靠的公式、日期、类型、格式、重算及模板保留功能。
★ 368 📥 140,874
data-analysis

Stock Analysis

udiedrichsen
{"answer":"基于雅虎财经数据,分析股票与加密货币。支持投资组合管理、自选股预警、股息分析、8维评分、热门趋势扫描及传闻/早期信号探测。适用于股票分析、持仓追踪、财报异动、加密监控、热门股追踪或提前发掘非主流传闻。"}
★ 270 📥 57,034