Skip to main content

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

v0.2.0 — part of the coordinated 2026-07 correctness release (staged, pending PyPI publish). The whole Nostr library family was audited together and every package is now verified against a shared spine of known-answer test vectors (NIP-44 v2, NIP-49, NIP-19 TLV, BIP-340) so encode/decode bugs can't hide inside self-round-trip tests. This release brings NIP-47 encryption negotiation to spec, verifies wallet responses (kind/author/tag/signature) before trusting them, and fixes lookup_invoice paid detection. See CHANGELOG.md.

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

nostrwalletconnect-0.2.0.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nostrwalletconnect-0.2.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file nostrwalletconnect-0.2.0.tar.gz.

File metadata

  • Download URL: nostrwalletconnect-0.2.0.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for nostrwalletconnect-0.2.0.tar.gz
Algorithm Hash digest
SHA256 73f9d6dd3c44b470193cf90545ba822cf2823ac0a5da601bd9565cbd609db4f0
MD5 c48f40837b444ac993a586e58cfba566
BLAKE2b-256 8f9939be1db787a94d80bf9e58528d34d5509d128d9f23837a0bfa34672a18bc

See more details on using hashes here.

File details

Details for the file nostrwalletconnect-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nostrwalletconnect-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1508486f1c8502f10adf4c39d0f8d327398951c5bb6ab7bc4f88f953e777eced
MD5 0c5a00fcd48961ccfd608d50291d4999
BLAKE2b-256 e51472d146bd705579480ee661af82840ef439bb3237ea751c315462769f6f10

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page