107 lines
3.8 KiB
Markdown
107 lines
3.8 KiB
Markdown
|
|
# LNbits Wallet Manager Skill for OpenClaw
|
||
|
|
|
||
|
|
Enable your OpenClaw assistant to safely and effectively manage an LNbits Lightning Network wallet.
|
||
|
|
|
||
|
|
## Features
|
||
|
|
|
||
|
|
- **Check Balance**: Get your current wallet balance in Satoshis.
|
||
|
|
- **Create Invoice**: Generate Bolt11 invoices to receive funds, with automatic QR code generation.
|
||
|
|
- **Pay Invoice**: Safely pay Bolt11 invoices after confirmation and balance checks.
|
||
|
|
- **Decode Invoice**: Inspect Bolt11 invoices to verify amount and memo.
|
||
|
|
- **Generate QR Code**: Create a QR code image from any Bolt11 invoice string.
|
||
|
|
- **Create Wallet**: Easily set up a new LNbits wallet on the demo server.
|
||
|
|
|
||
|
|
## 🛑 Critical Protocols for Safe Usage 🛑
|
||
|
|
|
||
|
|
To ensure secure and responsible handling of your LNbits wallet, this skill enforces strict protocols:
|
||
|
|
|
||
|
|
1. **NEVER Expose Secrets**: The assistant is programmed to **NEVER** display Admin Keys, User IDs, or Wallet IDs in chat. Credentials are handled via environment variables.
|
||
|
|
2. **Explicit Payment Confirmation**: The assistant **MUST** ask for "Yes/No" confirmation before sending any payment.
|
||
|
|
* **Confirmation Format**: "I am about to send **[Amount] sats** to **[Memo/Destination]**. Proceed? (y/n)"
|
||
|
|
3. **Balance Check Before Pay**: The assistant will always check your wallet balance before attempting to pay an invoice to prevent failed transactions.
|
||
|
|
4. **Invoice + QR Output**: When generating an invoice, the assistant will **ALWAYS** provide:
|
||
|
|
* The `payment_request` text string for easy copying.
|
||
|
|
* An `IMAGE:` link to the generated QR code file on a single line, allowing direct display of the QR code.
|
||
|
|
|
||
|
|
## Installation
|
||
|
|
|
||
|
|
This skill requires the `qrcode[pil]` Python library.
|
||
|
|
|
||
|
|
1. **Install ClawHub CLI**:
|
||
|
|
```bash
|
||
|
|
npm i -g clawhub
|
||
|
|
```
|
||
|
|
2. **Install the Skill**:
|
||
|
|
```bash
|
||
|
|
clawhub install lnbits
|
||
|
|
```
|
||
|
|
|
||
|
|
## Configuration
|
||
|
|
|
||
|
|
The skill uses environment variables for LNbits API credentials. It's recommended to add these to your OpenClaw configuration or your agent's `.env` file.
|
||
|
|
|
||
|
|
- `LNBITS_BASE_URL`: The base URL of your LNbits instance (e.g., `https://legend.lnbits.com` or your self-hosted URL).
|
||
|
|
- `LNBITS_API_KEY`: Your LNbits wallet's Admin Key.
|
||
|
|
|
||
|
|
Example `.env` entries:
|
||
|
|
```dotenv
|
||
|
|
export LNBITS_BASE_URL=https://legend.lnbits.com
|
||
|
|
export LNBITS_API_KEY=YOUR_ADMIN_KEY_HERE
|
||
|
|
```
|
||
|
|
|
||
|
|
## Usage Examples
|
||
|
|
|
||
|
|
Here's how you can use the `lnbits` skill with your OpenClaw assistant:
|
||
|
|
|
||
|
|
### 0. Setup / Create Wallet
|
||
|
|
|
||
|
|
If you don't have an LNbits wallet, you can create one (defaults to the demo server for ease of setup):
|
||
|
|
|
||
|
|
```
|
||
|
|
(User): Create a new lnbits wallet named "My OpenClaw Wallet"
|
||
|
|
```
|
||
|
|
The create command prints your new `adminkey` and `base_url` in the terminal output. Copy those from the command output and save them securely in your environment variables (e.g. `.env`). The assistant will not repeat or display the adminkey in chat.
|
||
|
|
|
||
|
|
### 1. Check Balance
|
||
|
|
|
||
|
|
Ask your assistant for the current balance:
|
||
|
|
|
||
|
|
```
|
||
|
|
(User): What's my lnbits balance?
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Create Invoice (Receive Funds)
|
||
|
|
|
||
|
|
Generate an invoice for receiving funds:
|
||
|
|
|
||
|
|
```
|
||
|
|
(User): Create an invoice for 5000 sats for "Coffee"
|
||
|
|
```
|
||
|
|
|
||
|
|
The assistant will provide the Bolt11 invoice string and a QR code image.
|
||
|
|
|
||
|
|
### 2b. Generate QR Code from Existing Invoice
|
||
|
|
|
||
|
|
If you have a Bolt11 string and need a QR code:
|
||
|
|
|
||
|
|
```
|
||
|
|
(User): Generate a QR code for this invoice: lnbc1u1p...
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. Pay Invoice (Send Funds)
|
||
|
|
|
||
|
|
To pay an invoice, the assistant will first decode it and then ask for confirmation:
|
||
|
|
|
||
|
|
```
|
||
|
|
(User): Pay this invoice: lnbc1u1p...
|
||
|
|
```
|
||
|
|
The assistant will then prompt: "I am about to send **[Amount] sats** to **[Memo/Dest]**. Proceed? (y/n)"
|
||
|
|
|
||
|
|
## Error Handling
|
||
|
|
|
||
|
|
The skill is designed to catch and summarize API errors from LNbits, providing clear feedback to the user without exposing raw technical details or stack traces.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Developed for OpenClaw - The AI Orchestration Layer**
|