Nostr Wallet Connect (NIP-47) SDK for OpenClaw AI entities — pay invoices, check balance, create invoices
Project description
NostrWalletConnect for OpenClaw
Give your AI access to a Lightning wallet.
A Python SDK for OpenClaw AI entities to connect to any NWC-compatible wallet and send payments, check balance, create invoices, and list transactions — all over the Nostr protocol via NIP-47.
Why?
AI agents that can pay for things — API calls, compute, storage, services from other agents — need wallet access. NWC (Nostr Wallet Connect) gives them that without holding custody of funds. The wallet stays under the human's control. The agent gets a scoped connection string that authorizes specific operations.
What your bot can do with NWC:
- Pay Lightning invoices — your bot can pay for services, APIs, or other agents' work.
- Create invoices to receive payment — your bot can charge for its own services.
- Check wallet balance — know what's available before committing to a payment.
- Verify payments — look up whether an invoice was paid and get the preimage.
- View transaction history — audit trail of all payments sent and received.
All communication is NIP-44 encrypted over Nostr relays. The relay operator sees nothing but ciphertext.
Install
pip install nostrwalletconnect
This also installs nostrkey as a dependency (for Nostr identity, signing, and encryption).
Quick Start
import asyncio
from nostrwalletconnect import NWCClient
# Paste your NWC connection string from your wallet
NWC_URI = "nostr+walletconnect://<wallet_pubkey>?relay=wss://...&secret=<hex_secret>"
async def main():
async with NWCClient(NWC_URI) as nwc:
balance = await nwc.get_balance()
print(f"Balance: {balance.balance // 1000} sats")
asyncio.run(main())
Pay an Invoice
async with NWCClient(NWC_URI) as nwc:
result = await nwc.pay_invoice("lnbc10u1p...")
print(f"Paid! Preimage: {result.preimage}")
Create an Invoice
async with NWCClient(NWC_URI) as nwc:
invoice = await nwc.make_invoice(
amount=50_000, # millisatoshis
description="Payment for AI service"
)
print(f"Invoice: {invoice.invoice}")
Look Up an Invoice
async with NWCClient(NWC_URI) as nwc:
status = await nwc.lookup_invoice(payment_hash="abc123...")
print(f"Paid: {status.paid}")
List Transactions
async with NWCClient(NWC_URI) as nwc:
history = await nwc.list_transactions(limit=10)
for tx in history.transactions:
direction = "received" if tx.type == "incoming" else "sent"
print(f" {direction} {tx.amount // 1000} sats")
NIP Implemented
| NIP | What | Status |
|---|---|---|
| NIP-47 | Nostr Wallet Connect | Implemented |
Built on top of nostrkey which implements NIP-01, NIP-19, NIP-44.
OpenClaw Skill (ClawHub)
This repo includes an OpenClaw skill in clawhub/ so AI agents can discover and use NostrWalletConnect directly from the ClawHub registry.
clawhub install nostrwalletconnect
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nostrwalletconnect-0.1.0.tar.gz.
File metadata
- Download URL: nostrwalletconnect-0.1.0.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d8611aaf7a166a3718188a76531b4680fc19abe795b519efbcf966045f2974e
|
|
| MD5 |
57e325abb3c2952983b2e4a6a463c7fc
|
|
| BLAKE2b-256 |
d1fb3a0ea154822d2225f6d1375d1c86b50be0fe8384589fac45d0f7fa568ae0
|
File details
Details for the file nostrwalletconnect-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nostrwalletconnect-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d64695f3d5c52c665a34868a9a1d2bcaea298efc17e5d3c51c9e92864185868
|
|
| MD5 |
b10bdf56085a5de84e8a102405fe85db
|
|
| BLAKE2b-256 |
d547cd9c5283b8141332f194edcea4a59c05f680aaa883427313393f660f0a29
|