While tinkering about NWC and twitter I decided to hack a python script that might perhaps begin something good
Here's a high-level overview of how you could connect your Twitter account to a Nostr Wallet using NWC and automate a 21 satoshi payment for every like:
Prerequisites:Prerequisites:
- Twitter Developer Account
- Nostr Wallet with NWC support (e.g., Alby, Nostrify)
- Twitter API credentials (API key, API secret key, Access token, Access token secret)
- Python script with Tweepy (Twitter API library) and nostr-client (Nostr library)
Step 1: Set up Twitter API credentialsStep 1: Set up Twitter API credentials
Create a Twitter Developer account and obtain API credentials
Install Tweepy using pip: pip install tweepy
Step 2: Connect Nostr Wallet using NWCStep 2: Connect Nostr Wallet using NWC
Choose a Nostr Wallet with NWC support (e.g., Alby, Nostrify)
Set up the wallet and obtain the NWC credentials (e.g., public key, private key)
Step 3: Create a Python scriptStep 3: Create a Python script
Import Tweepy and nostr-client libraries
Authenticate with Twitter API using Tweepy
Connect to Nostr Wallet using NWC credentials
Define a function to send 21 satoshis for every like
Use Tweepy to stream likes and trigger the payment function
Python script:
import tweepy
from nostr_client import Client
# Twitter API credentials
twitter_api_key = "YOUR_API_KEY"
twitter_api_secret_key = "YOUR_API_SECRET_KEY"
twitter_access_token = "YOUR_ACCESS_TOKEN"
twitter_access_token_secret = "YOUR_ACCESS_TOKEN_SECRET"
# Nostr Wallet NWC credentials
nwc_public_key = "YOUR_NWC_PUBLIC_KEY"
nwc_private_key = "YOUR_NWC_PRIVATE_KEY"
# Set up Tweepy
auth = tweepy.OAuthHandler(twitter_api_key, twitter_api_secret_key)
auth.set_access_token(twitter_access_token, twitter_access_token_secret)
api = tweepy.API(auth)
# Set up Nostr Client
nwc_client = Client()
nwc_client.connect(nwc_public_key, nwc_private_key)
# Define payment function
def send_satoshis():
# Create a new Nostr event with 21 satoshis
event = nwc_client.create_event(21)
# Send the event to the Nostr network
nwc_client.send_event(event)
# Stream likes and trigger payment function
class LikeStream(tweepy.StreamListener):
def on_like(self, like):
send_satoshis()
stream = tweepy.Stream(auth, LikeStream())
stream.filter(track=["likes"])
Hey, where do the sats go? Could you parse the Lightning Address from users' bio and pay there?
Check out https://discord.nwc.dev, where other devs discuss such projects!
#676297
Pls check out this updated script if it makes any more sense.
๐๐
This is one way
Or if the user has an alby account there as well in the bio.
Brillliant idea
or even if they've got an npub there, that'll be fine
where is the invoice coming from?
The invoice is generated dynamically using the Nostr Wallet's API. When a like is detected, my script creates a new invoice with the recipient's Nostr public key and the amount (21 satoshis) using the nostr-client library. This invoice is then used to create a new Nostr event, which is sent to the Nostr network, triggering the payment.
๐คจ
I think you used AI to write the script and this comment, amirite?
Yes, I did use AI assistance to generate the script and comment. However, my goal was to demonstrate the concept and idea, not to pretend I wrote the code from scratch.
I'm exploring the possibilities of combining Twitter automation, Nostr, and payments in LNbtc. I wanted to spark a discussion and get feedback from experts like you.
If you're willing, I'd love to collaborate and create a real-world implementation together. I believe something like this is possible
you did initially though
Nowhere. It makes a zap event to nowhere.
Does it make sense to you
I just send you some sats, let me know if you received them
No because you can't send sats to a tweet.
Sadly that's poor written AI script. But idea is the same as https://www.zapplepay.com/
Here are 100 sats, for replying to this post.
thanks for the link to zappable, it looks pretty cool and similar idea, as you said
However, zappable works for only nostr clients, right?
I want a case where the emojis can be used in X and the person that gets that emoji response gets zapped, if they have a lightning address in their bio or nostr address