Start learning Farcaster - the ultimate 101 guide to the Farcaster Flywheel!
Note: You do not need to know anything about Farcaster to understand this article. You’ll be taken through the basics and learn how to get started with Farcaster.
What even is Farcaster? It’s a programmable paradise of a social network. It truely is a social network in that conversations and connections are deeply encouraged and part of the culture. Therefore users love their conversations and chatting with each other.
Farcaster users are very active with their crypto wallets and do lots of blockchain transactions, making them an ideal first user group as even outside of blockchain technology they are first adopters and provide a lot of feedback on how to improve the product.
But what does programmable mean? It means that you can programm most if not all parts of it! You can create your own chatbots, automate your customer support or outreach, you can scan and analyze all content on the platform and you can even create your own social network on top of Farcaster. Yes since all follow relationships are also public, you can read them and use them in your app. Need to reach a user? send them a direct message automatically. It’s all programmable whether you want to write or read!
What can you do on Farcaster that you can’t do elsewhere?
Build fully integrated tools that you would otherwise have to ship in a seperate app
If you use mini apps in Warpcast, you already have a mobile app in App Stores that you can plug into. Add that Warpcast shows Farcaster posts and has direct messaging as well as in feed interactive apps, where users can click buttons and interact with your server. This way you can build a fully integrated experience that you would otherwise have to ship in a seperate app as Twitter etc, don’t allow it.
One such sample is paybot. It’s an app to pay people. Typically you go to the groupchat, see messages that one should be paid and ask for a payment method or they send a link somewhere. With Paybot this isn’t needed anymore. You are on a Farcaster client like Warpcast, open the mini app, create payment frame and use that to pay with a transaction from your wallet. Easy as that. Oh and if you want to request funds, same flow just hit request. It’s all within Warpcast and integrated well.
That’s not happening anywhere else!
Here’s a sample video showing how you can go from the app to open paybot and get a frame to pay someone. It’s all within the app and you don’t have to leave it. The above sample of doing it in replies also works as it opens the app via composer action, that we will see further along this article.
Using the open data and programmability to bootstrap your network based app
Say you want to build a new short form video app. Then what you have to do is get new users in and post content. If you don’t have enough views the creators, won’t care and if you don’t have enough creators the viewers won’t care. It’s a chicken and egg problem. But on Farcaster you can solve this by creating a miniapp that allows users to post to Farcaster and then you can post to your app. This way you can bootstrap your app with content and users from Farcaster. This is only possible on Farcaster and not on Twitter or any other web2 platform, since they don’t have mini apps. Another way you can achieve it is by using the open social data. You can index all videos people already post to Warpcast and other Farcaster clients and that way bootstrap your app’s content. Addiitonally if any of these users with a Farcaster account sign up, use their follows and already existing relationships to surface interesting content to them. This has been the formula of short form video app Drakula by Founder Alex Masmej.
Making crypto transactions easier and more social
When using the connected wallets you can no show usernames and profile pictures. That’s what apps like Interface do to make wallet addresses that usually are 0x002312...
human.
The Farcaster Developer Legos (Tools)
What tools are available to leverage Farcaster? What tools can Farcaster developers build with? While there are plenty and they are mostly compatible, we’ll focus on their virality and use in building great experience that matter to you and your intended audience.
If you want to learn how to develop with them and program on Farcaster, please refer to the Farcaster Developer Guides. The individual docs will also be linked throughout this article.
Which tools exist and what are they?
- Feed of publicly available content + profiles through the hubs (usually shown in Farcaster clients, but you can read it from your infrastructure too!)
- Connected Wallets (Verifications) - most users connect their crypto wallets so you know their addresses!
- Frames (shown in replies, feeds, direct messages and even on other websites)
- Cast Actions (invoke a command you can define to what it does on any post within Farcaster)
- Mini Apps (Composer Actions - miniapps (web apps within the clients) that return a new Farcaster post straight from your new post user interface)
- Direct Messages (send a direct message to a user)
- Farcaster Bots (automated replies, mentions, reactions, posts, …)
- Warpcast Intents (your way to direct users to specific content or to instantly take action like posting or sending a direct message)
So with clients (the apps showing you content - think traditional social media apps) and you being able to pull all these details like profiles and post feeds from the network, we now have a full list of tools to build with.
Many viral Farcaster growth loops can be composed of some or all the developer legos. Mostly built with tools, data and integrations that one can leverage to build incredibly integrated outstanding user experiences.
Please open your mind to programmbility, do not think about something being impossible or something not working with each other. This is Farcaster and not a walled garden.
Feed (public content, user profiles)
The feed is where dicovery happens. Users spend their time here (~90% according to founder Dan Romero). In their feed they see posts, frames, mentions, posts from bots and all kinds of account. A user can also take action by clicking a context menu and invoking a cast action or reply to a cast. When replying they can leverage composer actions to help create a new reply.
Your backend has full access to all user data (think profile names, location set in profile, profile picture, description, connected wallets) and their content. This means no external API is required to index all that data into your data store and process it. Users also provide consent by using the platform, though you may want to check specifics with your lawyers.
Connected Wallets
Most users have wallet addresses connected to their usernames (FID) that allow identifiaction of onchain actors, assets and more. It enables targeting users specifically using the onchain datasets and to build crypto integrations on top of them. You can easily identify all Farcaster users that hold VeeFriend NFTs, as most will have wallets connected and you can resolve NFT holders to wallets to Farcaster users.
Frames
Frames are displayed in feed or direct messages when sharing/posting a weblink. They enable an authenticated, interactive experience without leaving the app, just in the link preview.
How is a click authenticated? Yes, as Rafi puts it: frames have an access to verified identify of the caller
. Every Farcaster Frame button press sends a cryptographic signature to the server, so the server can verify the signature.
This way data authenticity is ensured, if validated and we can know the user is who they say they are.
These kinds of cryptographically signed messages are common across Farcaster and let us come up with very fun flywheel experiences.
Outside of Farcaster Frames could also be rendered, though not authenticated as one may not have a Farcaster Signer.
NOTE: Technically Frames run on the Frame developers/companies server. Which is a benefit to you as you can do anything there, it also means they may not be fully decentalized.
Cast Actions
Cast Actions are used from a context menu on the cast (post). When pressing the button to “invoke the action” you will see a small text popup with information you wanted, an eror or even a frame popup. This can be used to build experiences based on the post itself using the used data, post content or more. One such example is a custom bookmark tool, where it sends to an integration that will then add into your bookmarking service.
As with Frames pressing a cast action also sends a cryptographic message, meaning the server could authenticate the user and verify data authenticity. The message contains the user invoking the action, the cast (post) it is invoked on, the timestamp and with that you can dynamically return the message or frame to the user. Remember that it sends to a server! The server can do what all servers do, everything! You could have that trigger a flow in your business logic or send a direct message or more.
Direct Messages (Direct Casts)
You can send a targeted / automatic message to a user. For example your server/backend from a frame/cast action can trigger a direct message. One may also use direct casts (direct messages), to have a Farcaster native notification system of reminders or happenings in your application. Being able to get into the message inbox of a user is powerful!
Farcaster Bots
Automatic replies on posts based on patterns like @mentions or custom business logic are common across all kinds of social media platforms, Farcaster being no different. Though as with Farcaster we do not need to rely on external APIs we control the full experience and have way more data context available. Bots allow you to get into users feeds or notifications (likes, replies, quotes, mentions, …). As with any cast Bots can also include Frames, Images, and all kinds of embeds like links. Meaning it’s a powerful tool to remove friction and have users take action right from their feed! Bots play very well across the Farcaster developer legos.
A Farcaster Bot is a Farcaster account, so it can be created by you or even your own account. It can then be taken back as your own personal account with all forms in between also possible. From the outside the Bot does not look different and is not different to any other account, because it is a regular Farcaster Account (FID).
Warpcast Intents
Intents are linkst that when opened by a user prompt them to take an action. They are the intent to do something within Warpcast, that’s where the name Warpcast Intent comes from.
You can prompt the user via Warpcast Intent to
- send someone a predefined message (user opens link and see’s the direct message chat with a prefilled message in Warpcast)
- post a predefined cast (user opens the link and see’s the post composer with a prefilled message in Warpcast)
- deeplink into opening the mini app (user opens the link and see’s the mini app open in Warpcast)
They are very powerful when combined with the personalized text from business logic or their farcaster social data. Intents are best used to take the friction out of having to come up with what text to use, such they can be used to encourage outreach and virality. Most users will share your marketing copy if you’re building something like a viral frame that has a button to share a cast intent (intent link to have the user post a cast). They can also be used to reach out to users directly. Say you are working on a marketplace and don’t want to build a new messaging system that the user won’t see, because it’s one more tool they will not keep track of. Now you can use Warpcast Intents to have your user reach out to the other Farcaster user via direct casts (direct messages) and now they are chatting in an app they already both use.
Mini Apps
A mini app is your webpage (web app) loaded full screen in the Farcaster client like Warpcast with you being able to authenticate the user before they even visit the page tutorial. That way you can personalize and tailor the experience to the actual user visiting the page. Imagine you had a users full social context AND their financial context right when they visit your landing page the first time. How conversion optimized could you make it? As a user how lovely is it to see a page with helpful and good suggestions for you? The tools being combined are the Hubs (Social data) from Farcaster and the connected wallets that allow you to pull in the blockchain data (e.g. financial) as well.
Typically the way users find mini apps is through seeing a frame shared that then has an Intent link which when the button is pressed opens the mini app. Remember Frames can be sent via Direct Messages, Posts/Replies and Intent links (include the frame link in the message or embed). Meaning it’s easy to reach the users and build viral loops if your mini app is good enough so the user wants to share it.
Most importantly it’s a great showcase of how all the above legos/tools combine together. Remember that a cast action can invoke a frame that can be used to direct to your mini app. Each of these button presses can be customized so you have decision trees at each step so the user gets the perfect experience to just do what they intent to do or be maximally entertained.
Combining Farcaster Legos to user experiences
You can send a direct message or mention a user in replies/posts by which ever logic you want. You could leverage the social data, blockchain (financial) data based on the connected wallets or something entirely different from your business logic. The social data isa users activity that really shows what they like, recast, interact with in general so it’s proactive data and up to data sentiment.
Sending these posts/direct messages you can include frames, that allow the user to take action immediatly. The text you use to get the user to take action can be personalized as shown previously.
Since all of this data is available you can use Artificial Intelligence (AI) to do the personalisation and analysis for you. Assuming you are able to reach the user with a quality text they want to engage with, then one viral loop example is building a frame that lets the user open a mini app, which then you use to let the user cast (post) with a prefilled message that contains the frame. The frame and posts in feed serving as entry and exit close the loop and spread the word.
How do these Legos compare?
Discovery - How do users find your app?
NOTE: The discovery overview is focused on Warpcast as 90+% of users are on Warpcast and most other apps try to be discovered there.
Knowing what the Farcaster “Legos” are and how we can combine them to construct user experiences, we also need to make sure the user knows about our experience. How can we take each of the legos and make sure the user finds our app? How are they discoverable?
Frames
Discovery of Frames is widely done through the feed, though they can be shared via DMs. Say I send you dtech.vision
then the frame will render and you can press the buttons.
If you share casts or replies the same applies. One viral loop for frames often done is a share button that then attaches the Frame and has it in the new cast / reply. This way the frame gets shared. As Frames are rendered in casts and direct messages one can use bots to spread them. Cast Actions can also be used to bring up Frames as documented here.
Frames are also features in the Warpcast Explore Page.
Cast Actions
Cast actions once installed can be invoked on EVERY CAST! Though to discover them usually Frames are leveraged that have an install button (using a Warpcast Intent linking to install the cast action). Installing meaning the user adds them to their list that gets shown if they press the context menu on a cast.
Here’s how using a cast action looks like using Warpcast as the example Farcaster client and the second screen also showcases a link to the discovery/explore page.
Another way they can discover is via the cast action page. There is a page listing cast actions if a user goes to the list of installed ones and looks to add a new one in Settings.
Bots
Bots are discovered through the Feed. Yes one can invoke cast actions, mini apps and frames and then these in the background can trigger your bot, but the discovery itself is the Feed.
Here’s me using askgina to get a summary of an article. Now anyone will see my reply and then see the bot reply if they see the cast and potentially the comments. That way Gina gets discovered.
Mini Apps / Composer Actions
Mini apps can be discovered through Frames that have a deeplink or any other link that people click to open them, but most are either discovered through the explore page (uncommon) or the cast compose action button. Yes they are/were called Composer Actions, because they can be invoked as actions on the cast composer. Here’s the flow of using a mini app from the cast composer (go like you’d create a new post, but then use the action button and play snake).
Most of the discovery need is getting your users to use it once so it’s in their recents and getting users back in. Frames help. Viral Frame loop with deep links are your friend here.
Webpages/Products/Other
Any other product can be shared via Frame which could be already used as setter for the app or to authenticate users to be logged in on arrival at the webpage.
What makes Farcaster great for product promotion is you can use Bots, Frames, Mini Apps, Cast Actions and Direct Messages to pull together a full army of touch points with each user. And you can target users based on all activity (open data) visible on the Farcaster protocol through Hubs.
In Warpcast and other clients links are also not deranked by the algorithm as otherwise they would derank Frames as well, so you don’t have to fear sharing external links!
Farcaster Discovery Summary
Putting all the discoverability methods together and comparing each Farcaster building block with each other, here’s a matrix to provide an overview.