运行时依赖
安装命令
点击复制技能文档
使用 Clank Human Bitcoin 地址技能来注册和更新 Clank.money(BIP-353 DNS 支付指令指向 BIP-321 URI)下的 Human Bitcoin 地址。 CRITICAL:在成功付费注册后(201 或 202),将返回 managementToken。您必须立即安全地保存 managementToken。 CRITICAL:如果令牌丢失,无法对该地址进行身份验证以进行未来更新。 API 端点 POST https://clank.money/api/v1/registrations GET https://clank.money/api/v1/registrations/{username} PATCH https://clank.money/api/v1/registrations/{username} 注册所需输入 username:小写字母、数字、连字符,3 到 32 个字符,不能以 - 开头或结尾 bip321Uri:必需,必须以 bitcoin: 开头,应为有效的 BIP-321,强烈建议包含 BOLT12 提议(lno=...) 严格注册检查清单 注册价格为 999 sats。 提交未经身份验证的注册请求(POST /api/v1/registrations)。 输出:要么 409 username_unavailable,要么 402 payment_required。 如果 409,选择另一个用户名并重复步骤 1。 输出:402 payment_required 响应。 从 402 响应中读取 L402 挑战值:macaroon、invoice、paymentHash、amountSats、expiresAt。 输出:invoice + macaroon。 支付 Lightning 发票并获取预图像。 输出:支付预图像。 使用以下内容重试相同的 POST /api/v1/registrations: Authorization: L402 : 输出:201 或 202,包含 managementToken。 立即保存 managementToken。 CRITICAL:如果此令牌丢失,更新将是不可能的。 输出:安全的本地令牌文件。 复制粘贴快乐路径(Bash) set -euo pipefail BASE="https://clank.money" USERNAME="satoshi" BIP321_URI='bitcoin:?lno=lno1examplebolt12offer' TOKEN_FILE="$HOME/.clank/${USERNAME}.management_token" mkdir -p "$(dirname "$TOKEN_FILE")" # 1)创建挑战(或快速失败如果名称已被占用) curl -sS -X POST "$BASE/api/v1/registrations" \ -H "content-type: application/json" \ --data "{\"username\":\"$USERNAME\",\"bip321Uri\":\"$BIP321_URI\"}" \
/tmp/clank_register_challenge.jsonERROR_CODE="$(python3 -c 'import json; d=json.load(open("/tmp/clank_register_challenge.json")); e=d.get("error"); print((e.get("code") if isinstance(e,dict) else e) or "")')" if [ "$ERROR_CODE" = "username_unavailable" ]; then echo "用户名已被占用。选择另一个 USERNAME 并重新运行。" exit 1 fi if [ "$ERROR_CODE" != "payment_required" ]; then echo "意外的挑战响应:" cat /tmp/clank_register_challenge.json exit 1 fi MACAROON="$(python3 -c 'import json; print(json.load(open("/tmp/clank_register_challenge.json"))["macaroon"])')" INVOICE="$(python3 -c 'import json; print(json.load(open("/tmp/clank_register_challenge.json"))["invoice"])')" echo "现在支付此发票:" echo "$INVOICE" # 2)在支付后,粘贴您的预图像 read -r -p "PASTE_PREIMAGE=" PREIMAGE # 3)完成付费注册 curl -sS -X POST "$BASE/api/v1/registrations" \ -H "content-type: application/json" \ -H "Authorization: L402 $MACAROON:$PREIMAGE" \ --data "{\"username\":\"$USERNAME\",\"bip321Uri\":\"$BIP321_URI\"}" \
/tmp/clank_register_result.jsonMGMT="$(python3 -c 'import json; d=json.load(open("/tmp/clank_register_result.json")); print(d.get("managementToken",""))')" if [ -z "$MGMT" ]; then echo "最终响应中没有 managementToken:" cat /tmp/clank_register_result.json exit 1 fi # 4)CRITICAL:安全地持久化令牌以便于将来的更新 printf '%s\n' "$MGMT" > "$TOKEN_FILE" chmod 600 "$TOKEN_FILE" echo "已将 managementToken 保存到 $TOKEN_FILE" 更新流程 从安全文件中加载存储的令牌。 使用以下内容调用 PATCH /api/v1/registrations/{username}: Authorization: Bearer 包含新 bip321Uri 的 JSON 正文 示例: USERNAME="satoshi" TOKEN_FILE="$HOME/.clank/${USERNAME}.management_token" NEW_BIP321='bitcoin:?lno=lno1newbolt12offer' MGMT="$(cat "$TOKEN_FILE")" curl -sS -X PATCH "https://clank.money/api/v1/registrations/$USERNAME" \ -H "content-type: application/json" \ -H "Authorization: Bearer $MGMT" \ --data "{\"bip321Uri\":\"$NEW_BIP321\"}"