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:

  1. Twitter Developer Account
  2. Nostr Wallet with NWC support (e.g., Alby, Nostrify)
  3. Twitter API credentials (API key, API secret key, Access token, Access token secret)
  4. Python script with Tweepy (Twitter API library) and nostr-client (Nostr library)

Step 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 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 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"])
Please note that this is a simplified example and may require additional error handling, security measures, and modifications to work as intended.
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!
reply
Pls check out this updated script if it makes any more sense.
๐Ÿ’“๐Ÿ’“
reply
This is one way
Or if the user has an alby account there as well in the bio.
Brillliant idea
reply
or even if they've got an npub there, that'll be fine
reply
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.
reply
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
reply
0 sats \ 8 replies \ @ek 5 Sep
where is the invoice coming from?
reply
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.
reply
0 sats \ 2 replies \ @ek 5 Sep
my script creates a new invoice with the recipient's Nostr public key
๐Ÿคจ
I think you used AI to write the script and this comment, amirite?
reply
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
reply
0 sats \ 0 replies \ @ek 5 Sep
not to pretend I wrote the code from scratch
you did initially though
reply
Nowhere. It makes a zap event to nowhere.
reply
Does it make sense to you
reply
0 sats \ 0 replies \ @ek 5 Sep
I just send you some sats, let me know if you received them
reply
No because you can't send sats to a tweet.
reply