🎶 Purple Frame, Purple Frame 🎶

Exploring new composability primitives and interaction modes with Farcaster and Privy

Ankush Swarnakar


Feb 2, 2024

The title of this blog post is meant to be read to the tune of Prince’s “Purple Rain.”

A key principle of Privy’s philosophy is that a user is more than just a wallet address, and should be treated as such. Gaining a comprehensive understanding of who users are, across all parts of the Internet, is a major unlock for building innovative and delightful experiences in web3.

Farcaster Frames stands out as an innovative take on these topics. Frames enable you to embed interactive experiences directly within your casts, which then allow other users to take signed, verified actions elsewhere – without ever leaving their Farcaster client. This dramatically reduces friction for user engagement, and can even serve as a bridge between a user’s Farcaster presence and their digital identity outside of the protocol. New UX, better composability.

We’ve seen dozens of incredible frames over the past week – from an e-commerce checkout flow for Girl Scout cookies to an embedded game of chess – and we think they’re uniquely suited to enable cross-app experiences when combined with two other composable primitives:

  • Sign-in With Farcaster: Users don’t have to connect their wallet to verify their Farcaster identity. They can just login using their preferred Farcaster client and you can instantly contextualize their identity in your app with their engagement on Farcaster.

  • Embedded Wallets: Users don’t have to connect a wallet, period. After signing-in with Farcaster, they can instantly access any rewards you gift them for their engagement, helping them get value out of your product instantly. This is doubly important with Farcaster signers being off-chain (and rightfully so 😉)

We built a small demo with Frames to play around with exciting these new primitives: by interacting with our Frame on Farcaster, users can automatically generate an embedded wallet associated with their Farcaster account, and can claim their wallet (and an NFT) by logging in with Farcaster to

Click on this frame and see if you can spot your NFT when you sign-in to!

How do Frames work?

You can skip this section if you’re already familiar!

For those who don’t know, Farcaster is a sufficiently decentralized social network that allows users to build a digital social identity on-chain that can be leveraged interoperably by any client (website, mobile app, PWA – you name it). The most popular Farcaster client today is Warpcast, but you can also use other clients like Supercast, Crew, and Yup.

Frames are a standard to allow Farcaster clients to embed interactive experiences in interoperable ways. Frames extend the existing OpenGraph standard (used to show link previews on Facebook, Twitter, and more) with a set of new tags that encode the embedded experience that Farcaster clients should show their users.

When users take an action within a Frame, like clicking a button, the Farcaster client sends a signed message to the developer that encodes the action the user took. Developers can verify this action against one of Farcaster’s hubs, and then can handle it as they please, such as by updating the Frame’s UIs or adding in other logic outside of Farcaster.

Leveraging Frames for cross-app interactions

One of the reasons we’re most excited about Frames is that it easily enables developers to leverage a user’s verified interactions on Farcaster elsewhere. To demonstrate this point, let’s explore how the example works.

When you click the “Mint” button in this Frame, Privy determines your Farcaster fid from the Frame’s signed message, and pre-generates an embedded wallet that can be accessed by this fid. We then airdrop a (testnet) NFT to it.

Once you’ve interacted with the Frame, you can head over to the Privy Demo and login with your Farcaster account. Even if this is your first time using Privy, once you sign in with that Farcaster fid, you’ll see your NFT already there in your wallet.

This is a small example of what’s emerging as a bigger narrative in web3 – new UX, better composability. We’re excited to see apps to leverage the UX of Frames to create rich connections between a user’s off-chain and on-chain identity – a user’s Farcaster account; their Ethereum wallet; their Discord handle; whatever their digital presence may be.

Closing thoughts

Frames are an exciting design space for composing interoperable primitives to create novel UX. We can’t wait to see what the community builds with it.

If you’re thinking about Frames, wallet interactions, or cross-app experiences, reach out – we’re just a direct cast away 💜

Share this post