Santa bot is a Farcaster bot that allows casters to drop gifts for their audience that has engaged properly with the cast. It also provides supreme UX with the integration of Farcaster Frames.
"Santa Bot" is a Farcaster bot that helps communities increase engagement by distributing rewards to lucky winners who engage in desired ways.
In common social media use cases, we could see people attempt to engage users with their posts by providing incentives such as draws and airdrops (especially in Web3 communities)!
Santa bot is here to solve the two key problems of the current state of social media giveaways
Each user is able to tag the bot (that is, '@santabot') and then specify the rules of the draw using natural language. For example, the cast could look like
"We will hold the XueDAO hackathon in May. To help promote the event, we are giving away 100 XD tokens each to 2 lucky participants who are willing to like our post. Leave a like down below before April 25, 2024, to have a chance of winning the prize! @santabot"
A draw for the event will then be created by Santa bot after it replies to the cast with a Farcaster Frame that could display the status of the draw. If you like the post, you will be eligible for a fair draw to win 100 XD tokens by liking the post before April 25, 2024.
After the draw is closed, the awardees will be selected to be given permission to mint the specified tokens either through an Airdrop supported by Mint Club or an escrow that has been setup beforehand. (Escrow and Mint Club integration is still under development process. However, users can settle payments in a peer-to-peer way for now!)
This project uses Neynar webhooks to listen to @mention events on the Farcaster protocol. Then, it also uses Neynar APIs to read and write data to the Farcaster network, e.g., read user data and publish Santa's response.
Besides that, we use OpenAI's chatGPT model for now to understand user's intention and create the desired draw. (In the future, we might be able to integrate verifiable AI solutions on the blockchain to increase decentralization!)
The entire project structure is based on the Frog Next.js Framework, where we serve frames at different data urls for different draws. The serverless functions on Next.js also allow us to listen to webhook events and react based on the conditions. Most importantly, we could likely support one-click escrow and one-click airdrop (e.g., on Mint Club) solutions using Frame transactions in the future!