n8n-nodes-nwc
Version:
n8n nodes for Nostr Wallet Connect (NWC) protocol
221 lines (155 loc) • 5.21 kB
Markdown
# n8n-nodes-nwc
Custom n8n nodes for Nostr Wallet Connect (NWC) protocol integration.
## Features
- **Send Satoshis**: Send Bitcoin Lightning payments to addresses or invoices
- **Make invoice**: Create Lightning invoices to receive payments
- **List Transactions**: View recent transaction history
- **Lookup Invoice**: Look up invoice details from a BOLT-11 invoice or payment hash
- **Get Info**: Get wallet information and capabilities
- **Get Balance**: Get current wallet balance
- **Make Keysend Payment**: Send payment using keysend (no invoice required)
- **Sign Message**: Sign a message with the wallet
## Installation
1. Clone this repository:
```bash
git clone https://github.com/matjaz/n8n-nodes-nwc.git
cd n8n-nodes-nwc
```
2. Install dependencies:
```bash
npm install
```
3. Build the project:
```bash
npm run build
```
4. Install the node in your n8n instance:
```bash
npm link
```
## Configuration
### NWC API Credentials
You'll need to configure the following credential:
1. **NWC URL**: Your NWC connection URL
### Getting NWC URL
1. **Using Alby hub**:
- Go to https://albyhub.com
- Create new NWC connection
- Copy the NWC URL provided
2. **Using other wallets**:
- Look for NWC connection settings in your wallet
- Copy the NWC URL (format: `nostr+walletconnect://...`)
The NWC URL contains all the necessary connection information including relay, keys, and wallet details.
## Usage
### Send Satoshis
Configure the node with:
- **Operation**: Send Satoshis
- **Amount**: Amount in satoshis to send
- **Recipient**: Lightning address or invoice
- **Description**: Optional payment description
### Make invoice
Configure the node with:
- **Operation**: Make invoice
- **Amount**: Amount in satoshis to request
- **Description**: Description for the invoice
### List Transactions
Configure the node with:
- **Operation**: List Transactions
- **Limit**: Maximum number of transactions to return
### Lookup Invoice
Configure the node with:
- **Operation**: Lookup Invoice
- **Invoice or Payment Hash**: BOLT-11 invoice or payment hash to look up
### Get Info
Configure the node with:
- **Operation**: Get Info
### Get Balance
Configure the node with:
- **Operation**: Get Balance
### Make Keysend Payment
Configure the node with:
- **Operation**: Make Keysend Payment
- **Destination**: Destination node public key
- **Amount**: Amount in satoshis to send
- **Memo**: Optional memo for the payment
### Sign Message
Configure the node with:
- **Operation**: Sign Message
- **Message**: Message to sign
## Example Workflows
### Payment Processing
1. **Trigger**: Webhook or schedule
2. **NWC Node**: Send Satoshis
3. **Condition**: Check payment success
4. **Action**: Update database or send notification
### Invoice Generation
1. **Trigger**: Manual or API call
2. **NWC Node**: Make invoice
3. **Action**: Store invoice details
4. **Action**: Send invoice to customer
## Development
### Project Structure
```
n8n-nodes-nwc/
├── credentials/
│ └── NwcUrl.credentials.ts
├── nodes/
│ └── Nwc/
│ ├── Nwc.node.ts
│ └── nwc.svg
├── package.json
├── tsconfig.json
├── gulpfile.js
└── README.md
```
### Building
```bash
# Build the project
npm run build
# Watch for changes during development
npm run dev
# Format code
npm run format
# Lint code
npm run lint
```
## NWC Protocol
This node uses the [Alby NWC SDK](https://github.com/getAlby/alby-js-sdk) to implement the Nostr Wallet Connect (NWC) protocol as specified in the [official documentation](https://docs.nwc.dev/).
### Key Features
- **Alby SDK Integration**: Uses the official Alby NWC SDK for reliable wallet communication
- **Lightning Network**: Supports Bitcoin Lightning payments
- **Simplified Setup**: Single NWC URL credential for easy configuration
- **Automatic Connection Management**: SDK handles connection, encryption, and disconnection
### Supported Methods
- `pay_invoice`: Send payments to Lightning invoices
- `make_invoice`: Generate Lightning invoices
- `list_transactions`: Retrieve transaction history
- `lookup_invoice`: Look up invoice details from BOLT-11 invoice or payment hash
- `get_info`: Get wallet information and capabilities
- `get_balance`: Get current wallet balance
- `pay_keysend`: Send payments using keysend protocol
- `signMessage`: Sign messages with wallet
## Troubleshooting
### Common Issues
1. **Connection Timeout**: Check your NWC URL and network connection
2. **Authentication Error**: Verify your NWC URL is correct and not expired
3. **Wallet Not Found**: Ensure your wallet is online and the NWC URL is valid
### Debug Mode
Enable debug logging by setting the `NODE_ENV=development` environment variable.
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request
## License
MIT License - see LICENSE file for details.
## Support
For support and questions:
- Create an issue on GitHub
- Check the [NWC documentation](https://docs.nwc.dev/)
- Join the Nostr community
## Changelog
### v1.0.0
- Initial release
- Alby NWC SDK integration