156★by hodlxxi
hodlxxi-bitcoin-identity – OpenClaw Skill
hodlxxi-bitcoin-identity is an OpenClaw Skills integration for security workflows. Integrate HODLXXI as a Bitcoin-native identity provider that bridges OAuth2/OIDC and Lightning LNURL-Auth for client registration, authorization flows, JWT verification, and health monitoring.
Skill Snapshot
| name | hodlxxi-bitcoin-identity |
| description | Integrate HODLXXI as a Bitcoin-native identity provider that bridges OAuth2/OIDC and Lightning LNURL-Auth for client registration, authorization flows, JWT verification, and health monitoring. OpenClaw Skills integration. |
| owner | hodlxxi |
| repository | hodlxxi/hodlxxi-bitcoin-identity |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @hodlxxi/hodlxxi-bitcoin-identity |
| last updated | Feb 7, 2026 |
Maintainer

name: hodlxxi-bitcoin-identity version: 1.0.0 description: Integrate HODLXXI as a Bitcoin-native identity provider that bridges OAuth2/OIDC and Lightning LNURL-Auth for client registration, authorization flows, JWT verification, and health monitoring. homepage: https://github.com/hodlxxi/Universal-Bitcoin-Identity-Layer metadata: category: authentication license: MIT tags: - oauth2 - oidc - lnurl-auth - jwt - bitcoin dependencies: - curl - python - ecdsa - pyjwt - requests
HODLXXI Bitcoin Identity
Overview
Use this skill to integrate HODLXXI (Universal Bitcoin Identity Layer) for agent authentication, LNURL-Auth linking, and JWT-based identity claims.
Installation
- Fetch the skill file from the repository (raw link works for installable agents):
curl -L -o SKILL.md \
https://raw.githubusercontent.com/hodlxxi/Universal-Bitcoin-Identity-Layer/main/skills/public/hodlxxi-bitcoin-identity/SKILL.md
- Install helper dependencies for local verification scripts:
python -m pip install ecdsa pyjwt requests
Quick start
- Set a base URL for the HODLXXI deployment.
- Register an OAuth client to obtain
client_idandclient_secret. - Run the OAuth2/OIDC authorization code flow (PKCE recommended).
- Start an LNURL-Auth session for Lightning wallet login.
- Verify JWTs with the JWKS endpoint.
Usage steps
1) Configure the base URL
Set the base URL to the HODLXXI deployment (update as needed):
BASE_URL="https://hodlxxi.com"
2) Register an OAuth client
Register a client to get credentials:
curl -X POST "$BASE_URL/oauth/register" \
-H "Content-Type: application/json" \
-d '{"client_name": "YourAgentName", "redirect_uris": ["https://your-callback-url"], "scopes": ["openid", "profile"]}'
Store client_id and client_secret securely.
3) Run OAuth2/OIDC authorization code flow
Discover endpoints:
curl "$BASE_URL/.well-known/openid-configuration"
Create an authorization request (PKCE recommended):
curl "$BASE_URL/oauth/authorize?client_id=your_client_id&redirect_uri=your_callback&response_type=code&scope=openid%20profile&code_challenge=your_challenge&code_challenge_method=S256"
Exchange the authorization code for tokens:
curl -X POST "$BASE_URL/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code&code=received_code&redirect_uri=your_callback&client_id=your_client_id&code_verifier=your_verifier"
Expect an access token, ID token (JWT), and optional refresh token.
4) Start an LNURL-Auth session
Create a session and show the LNURL to the user:
curl -X POST "$BASE_URL/api/lnurl-auth/create" \
-H "Accept: application/json"
Poll for completion after the user scans the LNURL with a Lightning wallet:
curl "$BASE_URL/api/lnurl-auth/check/your_session_id"
5) Verify JWTs
Fetch JWKS:
curl "$BASE_URL/oauth/jwks.json"
Verify with Python (example uses PyJWT):
import jwt
import requests
jwks = requests.get("https://your-hodlxxi-deployment.com/oauth/jwks.json", timeout=10).json()
public_key = jwt.algorithms.RSAAlgorithm.from_jwk(jwks["keys"][0])
claims = jwt.decode(your_jwt, public_key, algorithms=["RS256"], audience="your_audience")
print(claims)
6) Monitor health and metrics
Check liveness and OAuth system status endpoints:
curl "$BASE_URL/health"
curl "$BASE_URL/oauthx/status"
Code examples
Register a client from a JSON template
curl -X POST "$BASE_URL/oauth/register" \
-H "Content-Type: application/json" \
-d @templates/oauth-client.json
Create LNURL session and poll
session_json=$(curl -s -X POST "$BASE_URL/api/lnurl-auth/create")
session_id=$(python3 -c 'import json,sys; print(json.loads(sys.argv[1])["session_id"])' "$session_json")
curl "$BASE_URL/api/lnurl-auth/check/$session_id"
Best practices
- Always use HTTPS and verify TLS certificates in production.
- Keep client secrets in a secrets manager or environment variables.
- Use PKCE for public clients and rotate secrets for confidential clients.
- Treat LNURL sessions as single-use and enforce short TTLs.
- Validate
aud,iss, andexpclaims for JWTs.
Advanced features
- Use
/oauthx/docsfor live OAuth/OIDC API documentation. - Use
/oauthx/statusto monitor database and LNURL session health. - Rotate JWKS keys via the server configuration (JWKS directory + rotation days).
PAYG billing for OAuth clients
Paid API calls are billed per OAuth client_id (agent/app), not per session pubkey. When balance or free quota is exhausted, paid endpoints return HTTP 402 with a Lightning top-up path.
Billing endpoints (OAuth token required)
POST /api/billing/agent/create-invoicePOST /api/billing/agent/check-invoice
Example create invoice:
curl -X POST "$BASE_URL/api/billing/agent/create-invoice" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"amount_sats": 1000}'
Example check invoice:
curl -X POST "$BASE_URL/api/billing/agent/check-invoice" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"invoice_id": "your_invoice_id"}'
402 response shape
When a paid endpoint is called with insufficient balance, expect:
{
"ok": false,
"error": "payment_required",
"code": "PAYMENT_REQUIRED",
"client_id": "your_client_id",
"cost_sats": 1,
"balance_sats": 0,
"create_invoice_endpoint": "/api/billing/agent/create-invoice",
"hint": "Top up via Lightning PAYG"
}
Supporting files
scripts/verify_signature.pyvalidates LNURL-Auth signatures locally.HEARTBEAT.mddescribes periodic health checks for the deployment.templates/oauth-client.jsonprovides a ready client registration payload.
Optional helper script
Use scripts/verify_signature.py to validate LNURL signatures locally. Install the dependency first:
python -m pip install ecdsa
python scripts/verify_signature.py --k1 <hex> --signature <hex> --pubkey <hex>
No README available.
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
FAQ
How do I install hodlxxi-bitcoin-identity?
Run openclaw add @hodlxxi/hodlxxi-bitcoin-identity in your terminal. This installs hodlxxi-bitcoin-identity into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/hodlxxi/hodlxxi-bitcoin-identity. Review commits and README documentation before installing.
