✓ Verified
💻 Development
✓ Enhanced Data
Get Hba
Register and update Human Bitcoin Addresses (BIP-353) on clank.money using MoneyDevKit L402 flow and
- Rating
- 4.3 (84 reviews)
- Downloads
- 25,231 downloads
- Version
- 1.0.0
Overview
Register and update Human Bitcoin Addresses (BIP-353) on clank.money using MoneyDevKit L402 flow and management tokens.
Complete Documentation
View Source →
Clank Human Bitcoin Address Skill
Use this skill to register and update a Human Bitcoin Address under clank.money (BIP-353 DNS payment instructions pointing to a BIP-321 URI).
CRITICAL FIRST
managementTokenis returned after successful paid registration (201or202).- You must save
managementTokenimmediately and securely. - CRITICAL: If the token is lost, future updates to that address cannot be authenticated.
API Endpoints
POST https://clank.money/api/v1/registrationsGET https://clank.money/api/v1/registrations/{username}PATCH https://clank.money/api/v1/registrations/{username}
Required Registration Input
username- lowercase letters, digits, hyphens
- 3 to 32 chars
- cannot start/end with
- bip321Uri- required
- must start with
bitcoin: - should be valid BIP-321
- strongly suggested: include a BOLT12 offer (
lno=...)
Strict Registration Checklist
Registration price is 999 sats.
- Submit unauthenticated registration request (
POST /api/v1/registrations). - Output: either
409 username_unavailableor402 payment_required. - If
409, pick another username and repeat step 1. - Output:
402 payment_requiredresponse. - Read L402 challenge values from
402response:macaroon,invoice,paymentHash,amountSats,expiresAt. - Output: invoice + macaroon.
- Pay the Lightning invoice and obtain
preimage. - Output: payment preimage.
- Retry the exact same
POST /api/v1/registrationswith: Authorization: L402: - Output:
201or202withmanagementToken. - Save the management token immediately.
- CRITICAL: If this token is lost, updates are impossible.
- Output: secure local token file.
Copy-Paste Happy Path (Bash)
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) Create challenge (or fail fast if name taken)
curl -sS -X POST "$BASE/api/v1/registrations" \
-H "content-type: application/json" \
--data "{\"username\":\"$USERNAME\",\"bip321Uri\":\"$BIP321_URI\"}" \
> /tmp/clank_register_challenge.json
ERROR_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 is taken. Pick another USERNAME and rerun."
exit 1
fi
if [ "$ERROR_CODE" != "payment_required" ]; then
echo "Unexpected challenge response:"
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 "Pay this invoice now:"
echo "$INVOICE"
# 2) After payment, paste your preimage
read -r -p "PASTE_PREIMAGE=" PREIMAGE
# 3) Complete paid registration
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.json
MGMT="$(python3 -c 'import json; d=json.load(open("/tmp/clank_register_result.json")); print(d.get("managementToken",""))')"
if [ -z "$MGMT" ]; then
echo "No managementToken in final response:"
cat /tmp/clank_register_result.json
exit 1
fi
# 4) CRITICAL: persist token securely for future updates
printf '%s\n' "$MGMT" > "$TOKEN_FILE"
chmod 600 "$TOKEN_FILE"
echo "Saved management token to $TOKEN_FILE"
Update Flow
- Load stored token from your secure file.
- Call
PATCH /api/v1/registrations/{username}with: Authorization: Bearer- JSON body with new
bip321Uri
bash
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\"}"
Installation
Terminal bash
openclaw install get-hba
Copied!
💻Code Examples
echo "Saved management token to $TOKEN_FILE"
echo-saved-management-token-to-tokenfile.txt
## Update Flow
1. Load stored token from your secure file.
2. Call `PATCH /api/v1/registrations/{username}` with:
- `Authorization: Bearer <managementToken>`
- JSON body with new `bip321Uri`
Example:example.sh
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) Create challenge (or fail fast if name taken)
curl -sS -X POST "$BASE/api/v1/registrations" \
-H "content-type: application/json" \
--data "{\"username\":\"$USERNAME\",\"bip321Uri\":\"$BIP321_URI\"}" \
> /tmp/clank_register_challenge.json
ERROR_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 is taken. Pick another USERNAME and rerun."
exit 1
fi
if [ "$ERROR_CODE" != "payment_required" ]; then
echo "Unexpected challenge response:"
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 "Pay this invoice now:"
echo "$INVOICE"
# 2) After payment, paste your preimage
read -r -p "PASTE_PREIMAGE=" PREIMAGE
# 3) Complete paid registration
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.json
MGMT="$(python3 -c 'import json; d=json.load(open("/tmp/clank_register_result.json")); print(d.get("managementToken",""))')"
if [ -z "$MGMT" ]; then
echo "No managementToken in final response:"
cat /tmp/clank_register_result.json
exit 1
fi
# 4) CRITICAL: persist token securely for future updates
printf '%s\n' "$MGMT" > "$TOKEN_FILE"
chmod 600 "$TOKEN_FILE"
echo "Saved management token to $TOKEN_FILE"example.sh
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\"}"Tags
#ai_and-llms
Quick Info
Category Development
Model Claude 3.5
Complexity One-Click
Author matbalez
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
Ready to Install?
Get started with this skill in seconds
openclaw install get-hba
Related Skills
✓ Verified
💻 Development
4claw
4claw — a moderated imageboard for AI agents.
🧠 Claude-Ready
)}
★ 4.4 (118)
↓ 4,990
v1.0.0
✓ Verified
💻 Development
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
🧠 Claude-Ready
)}
★ 4.3 (89)
↓ 4,621
v1.0.0
✓ Verified
💻 Development
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
⚡ GPT-Optimized
)}
★ 3.8 (274)
↓ 17,648
v1.0.0
✓ Verified
💻 Development
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.
🧠 Claude-Ready
)}
★ 4.7 (88)
↓ 1,625
v1.0.0