Web3 Galaxy Brain đŸŒŒđŸ§ 

Web3 Galaxy Brain

Farcaster Frames Development with Cassie Heart, Christopher Wallace, Jacopo Ranalli & friends

15 February 2024


Show more


Nicholas: Welcome to Web3 Galaxy Brain. My name is Nicholas. Each week, I sit down with some of the brightest people building Web3 to talk about what they're working on right now. Farcaster Frames are an exciting new feature of the Farcaster protocol that let developers quickly build mini-apps with a few lines of code. Frames extend the OpenGraph meta tags, which are typically used to serve rich media embeds when pasting a link. Frames add interactive buttons, which when clicked inside of a compatible Farcaster client like Warpcast or Supercast, let the server know which Farcaster user clicked the button. The frame's image can be updated in response. In short, developers can build polls, NFT claims, airdrop slot machines, games, and more, all with the very simple primitives provided by Farcaster Frames. On today's show, I'm joined by some of the first developers building Farcaster Frames. My guests today are Cassie Hart, Farcaster dev and founder of Quilibrium, Christopher Wallace, founder of Unofficial, and Jacopo, founder of DFrame and Slice. We discuss the technical mechanisms and product possibilities for Frames, and the guests field questions from members of the community. This episode was recorded on February 2nd, 2024. If you're interested in Farcaster Frames, consumer crypto UX, open web standards, and exciting moments in social software design, this episode is for you. I hope you enjoy the show. As always, this show is provided as entertainment and does not constitute legal, financial, or tax advice, or any form of endorsement or suggestion. Crypto has risks, and you alone are responsible for doing your research and making your own decisions. Hey, Cassie, how are you?

Cassie Heart: Hey, hey, doing great.

Nicholas: I'm excited to talk Frames today. I saw Dan was on something or other with Jesse talking about Frames also today on Twitter, I think. So, Cassie, is your most popular frame so far the Doom frame?

Cassie Heart: Yeah, that's actually the only real frame I've published so far. There's something special coming this weekend, but I actually look more forward to seeing what other people do with that than what I end up doing with it.

Nicholas: Oh, interesting. So, yeah, there's a few people working on sort of creator tools and things, so I'm excited to see what you come up with this weekend. Maybe to start off, because I'll record this, and I'll put it out as a podcast if everyone's all right with that. So, maybe to start off, could you or someone volunteer to explain what is a frame exactly?

Cassie Heart: Yeah, so Frames is a feature that was added to Warpcast and the Farcaster protocol just a couple weeks ago. So, the idea is that things like OpenGraph, previews are actually a really neat surface area for exposing user intentions in ways that go beyond just navigating to a link. And so, the super simple trick is that, you know, if you add some additional meta tags that describe buttons to render and an endpoint to send those intentions to, like I hit one or I hit button four, then you actually have something that's a very powerful, composable tool. What made this different from, you know, other iterations in prior versions of the web, if you will, is that Farcaster is uniquely placed in the ecosystem of having a social graph of, a public social graph, of all the users and their followers. And all of these users have a signing key. And that's just a necessary component of using the network. But if you have a signing key, you have cryptographic proofs that these users are who they say they are. So, what Frames combines is, you know, ideas like OpenGraph, but with the ability to interact by signing a message that proves that that user did intend to engage in that interaction. And that unlocks something very powerful with something so simple that no other social network has really succeeded at executing on before.

Nicholas: So, let me see if I understand. Correctly. And before I do, hey, Christopher, welcome. How's it going?

Christopher Wallace: Hey, guys. How you doing? You hear me?

Nicholas: Yes. Sounds good. We're doing well. So, let me see if I understand Frames correctly. I haven't built one yet. So, sort of, the way I understand it is that when you paste a link into a cast, that particularly the Warpcast client, but any, potentially any Farcaster client can go look up that page and as it loads the kind of rich media embed from these OpenGraph tags, like with things like a title and a picture, like you might get when you plug a URL into Twitter or Facebook or something else, it also has a special OpenGraph. In addition to the typical ones, it also has this buttons field, which you can populate essentially with links, with titles, and then in the Warpcast client, like on the app or on the website, but potentially, again, any Farcaster client will populate those links that are in that button, label the buttons in the OpenGraph tags, will populate them as buttons. It will populate the buttons underneath the image that it would normally pull up for the OG tag, for the OG image tag, and then it will, when a user clicks on those buttons, essentially make a post request to the server that you've specified or the URL that you've specified, but you can also attach data. So, it's like. you can, maybe someone could explain a little bit more of technical details of how that works, but basically the Warpcast client will go, or whichever client will go and ping the server and then be able to, update, for example, the image, and we can maybe talk about the DOOM example for that, or take like a sign, some kind of sign data from the client also. Would either of you like to dive into, to explaining a little bit about that?

Cassie Heart: - Sure, so yeah, you pretty much got it on the mark, although I do wanna go ahead and make a major shout out to Supercast, which is already supporting Frames as well. The reception of Frames from both, you know, Farcaster clients and all the people building has been, I think, a lot. Outstanding, like, I could not have possibly guessed how well this was gonna be adopted, and it's amazing to see. But yeah, you basically had it on the mark. So, there's really only like six or seven meta tags that you'll need to create a frame, and those just sit in the header of the particular page response that the Warpcast or Supercast or other Frames-enabled clients is just reading out. The client generates the signed request as part of the post payload. But yeah, it's a very simple, like, interactive process back and forth of just requesting new URLs with new post data associated with it. So, you can also get new buttons. So, if you hit a button, and then that button leads to, like, you know, say that you're navigating a maze as a frame game, it can, you know, generate new buttons to turn back to you to present different options.

Christopher Wallace: - Yeah, I was just gonna add to that. Like, the technology's been around for over, it feels like 15 years now, and so it's very well known in the space. And so it's easy technology to learn. And you can start with, if you wanted to hack or ask ChatGPT, or so on and so forth, it's a very simple, primitive space. And that's what attracted a lot of us, I think, originally was that, "Oh, this is something everybody knows, and something that we can do something new with that hasn't been done before.". yeah that was the initial draw for me.

Nicholas: yeah it's super super easy to get started and like meta tags or something or open graph meta tags or something that people integrated to pages all the time. so they show up nicely when you share something and i guess that's part of maybe for people who aren't deep on farcaster yet or even those who are. i saw um uh say st on warpcast. i was talking about this morning how uh you know you can put these frames into any website so sites that you might be pasting otherwise into a cast could also be pulling up interactive elements. um i wanted to ask a little bit more detailed question though. so how is it that this server is a like your server? say? i know people are using vercel a lot for building frames so far. how is it able to make sense of the assigned payload that comes along with the button click in order to you do some action and then maybe we can get into like the cookies example for that?

Cassie Heart: yeah that's that's the beauty and simplicity of uh what the farcaster protocol enables because every user has a at least one signing key. we we have a you know decentralized network that lets you um infer who that user is based on the sign payload implicitly so when the signed request is generated. so you click a button and it generates a signed message. uh no different than any other message signing process in any other protocol or or network or whatever. we're able to then communicate with the farcaster network to verify that that signature does belong to that user and does validate for that user so that we can then say you know the user with the farcaster id of three which would be dan rivero has in fact interacted with this and so we know that we can trust that that action was taken by that user.

Nicholas: and you do that by calling an api on the hubs or even an api that uh sort of a saas provider that will intermediate you having to run your own hub. but basically there's like a hub api that you can call to do that verification process. yep exactly that's very cool. and are you know? in practice are people mostly using nanar or are they going directly to hubs?

Cassie Heart: uh i think it varies pretty wildly. um there's there's definitely a lot of uh. what makes it tough to say percentage wise is that there's a lot of adoption that has happened that's been through uh essentially these uh third party almost frames as a service tools that uh you know generate uh all all the underlying frame code for you and i actually don't know the implementation details of those whether they're using hubs directly or they're calling nanars apis or doing something else

Nicholas: in your own projects. what have what have you chosen to do just out of curiosity for sort of the state of the developer infrastructure.

Cassie Heart: um my own project i i call the hubs directly but at the same time i'm also uh doing a lot of work on the hubs and i'm also doing a lot of work on the something a little bit more uh unusual compared to what other frames are doing.

Nicholas: you want to just take us through while we're on the topic. you want to explain how the doom frame or what the doom frame is for people who haven't seen it with their own eyes.

Cassie Heart: yeah so um a very short synopsis of my history in in the professional world. when i was very young i was doing a uh internship at a company that provided utilities for uh telephone companies like you know uh somebody who sells services or whatever and one of the things that we uh sold was uh white labeled linksys home security cameras so that you know customers of this telecom could set up a linksys home security camera in their home and and be able to do it really easily one click. um those old home security cameras had this neat little trick that they used uh mjpeg which is an image format. technically so image tags and browsers support it. um but what it actually is. is it's basically an open hanging ddp connection that accepts a stream of jpeg images. so you have essentially a means to provide video through an image tag. it obviously doesn't have sound but that was. that was the special trick that made the doom frame very unique. uh so what i did is i i've been working on this decentralized network uh quilibrium for for quite some time now and i wanted to demonstrate how powerful it was. so i took the quilibrium metavm which is our uh basically our instruction set architecture re rewiring tool that turns it into garbled mpc circuits and rewired it such that it was processing a risk 5 processor ran linux on that ran doom on that and then the frame buffer. it's writing to you. i streamed as mjpegs and that was the. that was the trick. and so the neat thing was that everybody's buttons um that they were interacting with for the doom frame everyone was playing the exact same instance of doom.

Nicholas: so it's like frames plays doom. basically exactly our caster plays doom. that's extremely cool. um i want to know more about quilibrium but uh but we should stay on frames. topic for for today. uh Christopher maybe do you want to uh jump in and talk a little bit about how uh you built the cookie or did that come out of the hackathon or did you do that independently?

Christopher Wallace: uh no i did it with team members. um. jonathan zinger and brian kim um were my co-hackers. um. jonathan and i actually had planned this week to meet and hang out and get to know each other and um. develop and i think we had saw each other kind of posting development um little hacks and interests um in the same kind of areas and um. you know we were kind of kind of destined to see each other um at the hackathon. it just felt that way. um. as soon as i got the invite from euler um i sent it to him. he said he's helping organize with alana at variance. um. but i've been noodling on an idea about commerce for a long time. um. i quit my job at peloton on january 1st to go full-time in the farcaster. i've been seeing data um just really good data and using some of the same metrics i had been using at my previous uh companies um. to infer the health of the of the system and we had used a company called commerce tools at peloton to do all of the supply chain infrastructure where we had been using shopify and had been using um other companies before. um. a key part to this is that commerce tools is a headless api. it's actually very mature. it's used by the top companies in the world to print everything commerce and so i was kind of looking for a way to use it in the farcaster space but i didn't know how to do it and i was like i don't know how to do it when where? um? so when i saw frames with the redirect it sends you assigned a message about the user and user details. i started kind of started thinking about okay if i know who the user is i can trust that person. i can probably forward them somewhere. so what tools are out there? and i thought well i can't do commerce tools because there's this like money problem that i have. so i need to use something else out there. and so i looked at coinbase and the coinbase apis and i saw coinbase commerce which has been very dormant for the last like few years. um shane the developer on the farcaster team was actually the last commit to this repo and the apis the documentation or apis are still working. the documentation is still up there um but it's broken. all links are broken and so i instantly realized that oh man okay we have to go fast because if we can push something we can be the first to do it. and so i was like okay we have to do commerce. so um i was looking for a brand and a use case and someone had posted um but they wanted to sell girl scout cookies. um on the spotify alumni site channel and i was like oh that's the perfect use case. like there's no tax there's no shipping um destination they do flat shipping um via a simple calculator and it's just a great cause. we didn't take any money we made nothing from it. it was to the troop. um it just made sense. so um after that it was off to the races. i think uh john didn't instantly understood it. brian obviously a lot as well. i've hacked with him at the ethereum global hackathon on their project and just the vibes were high. that was it.

Nicholas: can you uh explain to folks who haven't tried it themselves what the ux is like?

Christopher Wallace: yeah so the ux is just um four buttons and we built a card. um we stored the card in the key value store on versal servers. they're using redis and have like a api wrapped around it. um and so when you do the back and forth of the api the post and um the post of the quantities and whatnot we deliver back the built cart to you and then when you're done we do some hub requests about the user identity username fid and then we take that information and the quantities we bundle it together and then we make a web request to the coinbase commerce api and then come back and then um deliver a unique identifier to the url of coinbase commerce and then forward that to people. we had gone too fast and we realized that no one would be able to like be redirected to this url. and so um we i decided to use some code that I had been using to post college basketball scores automatically in the college basketball channel and to cast back at people. So all that to be said that these things were just sitting on the sideline and pulled them off and put them into one project. And, uh, it was pretty easy. I gotta say, I think it was very straightforward.

Nicholas: It's great how both your projects are kind of inspired by past things. I think when people look at stuff coming in the feed, they think, wow, people are so fast. They just came out of this out of nowhere, but actually it's building on like years of thinking about stuff.

Christopher Wallace: Yeah, absolutely. Um, the, the wealth of experience, um, the pressure of the projects that we've had in our past, the interest, um, I've been doing financial engineering, financial technology for the last 10 years. And so I can see some of the same behaviors and some of the things that need to be done to make commerce flow through appropriately. And it just makes sense to do it. And it's, it's basically like another language to learn, but it's not too far off from, um, where the current state of reality is for forecasters tech. It's actually very straightforward. I've, I've been happy to learn it. Um, easy to learn it. Complex pieces are the, um, contracts, but those are hardened and sitting in a repository open to everyone to comment on. So.

Nicholas: Do you, so you're basically just propagating the cart that they've created through the frame into another web experience where they can actually do the checkout, like providing all the rest of the information that's required.

Christopher Wallace: Yeah, actually, this is a funny, funny thing. Um, Tony and other, uh, farcaster mentioned, um, to, uh, there's been a few people in the commerce team that actually work at, uh, our caster. He mentioned to use metadata to store the order details. And that was what I did. Um, I had been asking, I think I asked out in the channel, I was like, has anyone used this? And he responded and it just made sense. So yeah, I just basically, um, I associated those two things together. And I will tell people on this call, like there's only fair to them, fair them. And there's use cases you can do with this because you have to ask for a lot of information in other, um, scenarios. So, um, if you're trying to do anything complex with taxation or nexus, um, or cross subsidy or fulfillment or anything like that, it's not an easy, easy project. So.

Nicholas: So do you think that the checkout experience will be ultimately entirely inside of a frame?

Christopher Wallace: It's tough to tell, um, what user behavior is going to be. You have to experiment and find out, um, we got, um, a certain number of checkouts. I can't even begin to count how many of the tools inside of Coinbase commerce have and the UI are not, um, at par with what is needed right now. And, um, I have to crawl the API to get the details out. Um, so probably not, not now, but soon. Yes.

Nicholas: And what else can be done? Like what are the, for people who are thinking about it? So I guess like the basic frame is just, you know, you click, I mean, basic frame is maybe not even with buttons. I suppose the, the, the basic functionalities. you add buttons that are gonna change what the image does. Then you can do fancier and fancier stuff on the server side to populate into more interesting images like Cassie's doom project, for example, which is much more than just a, a basic like Vercel, uh, playing through doom. What, what are the, uh, like other affordances that the signature and the verifiable data allow you, how can people think about what's possible? Because we've been told, or I think some people understand that you're not, uh, signing with an Ethereum wallet. You're assigned, you're not signing with your forecaster private key. So what does that allow you to know about the person and what does it allow them to, uh, do what, what can you do from the server side when you interpret it?

Christopher Wallace: Yeah. So, um, this is probably just cookie specific. Um, you actually, I actually don't really care what the wallet is from the, um, from the forecaster client, the work task line. Um, I just care that that it came from the right person and I get the right ID. Um, most people actually, um, from what I can tell in the data, they used a wallet that was different than the, um, wallet that is actually held in the client. Um, they might connect that, um, address to their wallet, um, in the client, but it actually isn't the same. And most people don't know this, your wallet in the client doesn't hold any money. Um, and so when most people were checking out, they were discovering the same problem that I did when I first tried to buy warps, which was, it was I have no money in my Coinbase account. I have no money in my Ethereum account. Um, that may be liquid within the same bounds of what I needed to check out. So in spite of all that people use whatever they could, whatever wallet was available to them on their phones, uh, to check out, um, people use DJ to swap, uh, directly to USDC and pay with inside the same experience and credit to the other teams, at base and Coinbase for recognizing this, this immense opportunity, because I don't think there's any other tooling out there that can do this. Um, I can do that swap and check out experience.

Nicholas: So That is very cool. Um, but it also means that people need to be forecaster users, right? There's not really, can you imagine any kind of application of frames unless you already are a regular user of some forecaster client?

Christopher Wallace: No, no, I mean, you just, you can just use Coinbase. Um, you can just use Coinbase commerce and authorize a phone a lot, but that's not the same comparably to the forecaster. Um, as a trusted source, you have to put in your username, email, um, you have to a lot through and it's, um, it's not nearly as seamless, um, frictionless.

Cassie Heart: I would like to add like the way that, uh, authentication works on those post requests is just depending on the, on the signature, but it doesn't have to, you, you actually can support any post payload. So, you know, if other, um, if, if you want to have more advanced frames that interact with other social network protocols or, or even just like have a site that backs your frame that people can go to and interact with there, there's actually a lot of composability offered, um, where people can have accounts that are on forecaster or accounts that are on that frame, uh, the actual like hosting server or, you know, other protocols entirely. Like if, uh, for example, a shout out to Lynn, and the hay team for, for the commentary,

Nicholas: uh,

Cassie Heart: but if they wanted to, uh, you know, have a multi protocol supporting frame and have, uh, support for sign payloads from, you know, your hay wallet or anything like that, it's totally possible. And, you know, you could really start to create this interesting dynamic, like say that somebody made space invaders in a frame, for example, and there's a scoreboard, um, you know, you can have users that are from forecaster and have their, uh, little forecaster icon next to their name or users from lens and have the lens icon next to their name or, uh, you know, just on the site, uh, specifically lots of options.

Nicholas: Yeah. I'm curious. Do you think, is there, I guess, because it's, it's, it's you're saying if you're not using the forecaster verification stuff, then you could imagine that these buttons be reinterpreted on other sites altogether. that just, you know, like I'm thinking even for the podcast website, for example, it would be cool if every time I share an episode of the podcast, you get some rich experience. That's even interactive for browsing its transcripts, or playing the show right in the frame, maybe. Um, but if I were to do that and make some integration like that, it's possible that others could also interpret these buttons. And as long as it doesn't require any kind of forecaster specific logic, you could imagine other sites having, you know, taking advantage of these richer open graph applications too, maybe, right?

Cassie Heart: That's the power of composability.

Nicholas: Very cool. Very, very cool. I've also seen some people are talking about using the ED, because forecasters private key, well, actually maybe I'll summarize, but my rough understanding is that you, in order to create a forecaster account, you send a transaction on an L2 optimism, if I'm not mistaken. That's correct. And you associate the, you like can register a forecaster account by, or maybe, can you just explain instead of me mumbling my way through it, maybe you can summarize exactly how the cryptographic interaction works. But the place I want to get to is how do we get that different private key on the client?

Cassie Heart: Yeah. So very, very simply put, there's a collection of contracts on optimism that when you're onboarding onto forecaster, the first thing you do is you register your FID, your F name, and then you also register, you know, a storage slot and a signer key. That signer key is an EDDSA key instead of an ECDSA key. And that's something that the hubs can respect and understand that when a message for like a cast or a like or a recast or a frame interaction is signed with that key, they can associate it with the relevant FID and F name because that is already on the optimisms ledger that contains, you know, of course, all those entries. So it's basically just like, you know, when you create an account somewhere in web. two, you're providing a whole lot of information as part of that sign on process or sign up process. And, you know, this is the smart contract version. But you're not giving your name or phone number, you know, physical location. Instead, you're giving your, you know, your username, your FID and your signer key.

Nicholas: Got it. Got it. So basically this means that the private key that is signing data when you're pressing buttons and also when you cast or like or recast is not the same one as your EOA. So there's no danger. But there are people who are talking about already using like Fresh. Crypto Lib has solidity in it. There's already the implementation of an EDDSA verifier out there in solidity. So it is possible. And I think maybe BASE has already messed around with this a little bit. I'm not I'm not sure if there's in practice anyone's doing this yet. But smart accounts, you could imagine signing user operations with your Forecaster key. And could you even do that in the space of a button in a frame in principle?

Cassie Heart: In principle, yes. Where it gets complicated is that, you know, like, like you alluded to, there are contracts or at least libraries for contracts that let you verify EDDSA signatures or even the frame specific format for signatures. What happens, though, is the gas cost is is extremely high on EVM based networks because there's not a, you know, a built in primitive for handling EDDSA. So it's about one million gas per signature to verify. And, you know, like BASE, Optimism, they've got much smaller block times, much cheaper gas. So they have an advantage that they can do that. And it's not the end of the world for a contract interaction. But, you know, like with a gas cap for per block of 30, that means that, you know, if if we just like we're so wildly successful that, you know, those are the only things that were happening for that particular block. You'd only get like 30 or less signatures in a single, you know, block for Optimism or BASE.

Nicholas: Right. I guess maybe this plays into their interest in increasing the block size.

Cassie Heart: Yeah, that has its own can of worms, which would be a very interesting discussion. But I don't know if it's suited for this for this topic.

Nicholas: Does anyone in the audience want to come up and ask questions or or chat about your own projects? I just I guess for people who really want to be in the know, I did just cast out on Nicholas. My name on Warpcast is just Nicholas with an H. Winter. Has this new drop frame prototype that seems to be working. I think I have to refresh the page to see if it works, but I minted a little commemorative frame for this call, and I think 36 people have grabbed it so far. There's 214 available. And if I understand it correctly, I'm the one who paid for the gas by sort of sponsoring the max supply in advance of posting it. I don't know if winter you want to come up and chat about that or if anyone else has other questions or subjects. They'd like to discuss on this. on the topic of frames development. Here's V. Hey Val. How's it going?

Jacopo Ranalli: Hi, how's it going? So I had a really really I really want to know how the first five days of on-chain transactions and dealing with gas was like for the forecaster team because I was seeing like a lot of mints going up and I know that there's that syndicate API that like covers like gas costs for things. But before like it was just people air dropping stuff and like loading gas into like a price range. Yeah. Like how I don't know how destructive was that for like the first week as frames like they did Forecaster expect like minting to just go crazy like that.

Cassie Heart: I can't say I was terribly surprised that minting became a very hot topic and frames for us. It was a non-event because you know Forecaster itself is its own protocol separate from the L2 that the contracts live on. So, you know, we weren't we weren't creating those on-chain transactions. It was the interactions. With like syndicate and others that that were actually, you know, sponsoring the gas and creating the transactions and broadcasting them to the mempool and all that. So for us, it was really cool to see the adoption and all the different ways people came up with including the very viral recast in order to mint which has also been pretty contentious. But yeah, that was really cool to see. Yeah.

Jacopo Ranalli: I have like a lot of questions on like what the landscape for gas. Sponsorship is going to look like when like people aren't directly paying gas anymore like in this new era of like account abstraction and stuff, but it's been really fun to see.

Cassie Heart: Yeah, I think the I think the likely scenario in this. this is starting to get a little bit bunny trailed from frames, but just to lend my hot take on the topic. I think that the long term of any any, you know, L1 L2 or L3.

Christopher Wallace: What?

Cassie Heart: What will probably end up happening is either either the L1 will be adopted that doesn't have that kind of interaction model. that's, you know, super gas heavy for the people who are wanting to execute an interaction or in the account abstraction model. You'll see a lot of, you know, applications that integrate paymasters kind of in the same way that like when you use Amazon Web Services, for example, like you're hosting an app on AWS, you know, you're paying for all those resources as a company. Yeah. And the users interacting with your site like that, that incurs, you know, egress fees for you on bandwidth under Amazon Web Services. But the users don't know that they don't. they don't even have to think about that or pay for it. All they need is an Internet subscription.

Jacopo Ranalli: Thank you for your answers. I'm going to step down now.

Nicholas: Thanks for coming up. Yeah, I guess I'm just looking at these frames. Dev Chat, Memento, NFT is getting minted out and there's 87 of 238 or so minted already. So this is a perfect example of me or, you know, the user. The creator, in this case, choosing to sponsor the NFT mints rather than paying some other provider to do it. It's it's me who is sponsoring. It's just this nice piece of technology that's allowing people to claim the gas that I've put up by pressing a mint button in a frame. Pretty cool. I don't know if, Winter, if you're if you want to come up, it would be cool to hear hear what your thoughts are building this project. We've got Atlas coming up. Hey, Atlas. How's it going?

Christopher Wallace: Hey, Nicholas. Thanks for having me on. It's Jacob and JRF on Farcaster. This is I just don't have a Twitter account separate from this Atlas thing.

Nicholas: That's great. Yeah.

Christopher Wallace: So I would love to, you know, Cassie, I'm curious to know, like, what your like your like dream frame would be like, just like the Cassie brainstorm of like, what are you excited about for frames?

Cassie Heart: I'm trying to be relatively secretive about it. But I'll just say stay tuned for this weekend.

Christopher Wallace: All right. I'm probably gonna be offline for most of the weekend. So can you is this going to be a? is this going to be a tonight thing and tomorrow or a Sunday thing?

Cassie Heart: It's likely going to be a tomorrow thing. But basically, I'll just put it this way. Expect a level of interactivity and composability that hasn't been executed in frames before.

Christopher Wallace: Awesome. Very cool. Excited to see it.

Nicholas: That is exciting. Can I also add to this?

Christopher Wallace: There are things that I wish that we could have done to reduce the value or reduce the friction, even though the friction was lower than it was. And the unexpected piece that I saw was the D-gen swap. I remember sitting there and I just got all these polygon transactions and I was like, wow, that's crazy. I got an Ethereum transaction. I was like, wow, that's crazy. It's gonna cost me $14 to move that. And then I saw people using D-gen to do it. I stopped. I thought, oh, no, that's that's liquidity. That's a liquidity pool. That's not expected. That was going to be all base or USDC on base. And I thought I thought to myself, well, if I have if I have the signed data about the user, what else can we stuff inside that little signer trusted data packet? And I hope so. I hope that the Forecaster team is thinking along the same way, the same the same pieces, because it would be incredible if the value chain would be collapsing even further down than the actual start to describe. If there was no checkout experience off of Coinbase, basically. Yeah, that would. that would be. it would be the biggest interaction we could possibly ever get.

Cassie Heart: I can't speak to any future features. We're launching soon. We're working on frames that haven't been publicly stated. But with with any any feature request, stay tuned and obviously put all that feedback to Dan and Varun because they really, really listen to it.

Nicholas: What are some? Oh, hey, here's a Yakupo. Let me bring him up. Another great frames dev, I believe, creator of the first NFT mint frame, if I'm not mistaken. I don't know if you're able to speak, but it would be great to have you up here. What are some other while he comes up? What are some other great frames that you think were interesting demos? What are some of your favorites?

Cassie Heart: I think the two that stood out to me that I really loved was one in the spirit of on frame gaming, as the term has been now coined, was seeing the Pokemon in a frame. That was very fun. And also shout out to Jesse and the base team for for sponsoring and getting base quest out. That was also really cool. Outside of that tenant in a frame was very, very funny.

Nicholas: Super funny. What was the base quest one? I don't know if I saw that one.

Cassie Heart: It was kind of like a, you know, a graphical version of Zork, you know, that kind of RPG, but like text based RPG. And in this case was button based RPG. Yeah, it was a really cool idea and definitely pushing frames to its limits. Very cool to see.

Nicholas: Yakupo, how's it going?

Christopher Wallace: Hey, everyone.

All good.

All good.

Glad to be here.

Thank you for the invite, Nikos.

Nicholas: Yeah, you're welcome. So maybe do you want to tell people a little bit about the frame? You built?

Yeah, I can do that.

Yeah, I think the first thing I did was the frame NFT that happens on the frame Friday.

And basically, that was like a pretty simple mint.

But I like.

I was kind of curious about the idea of like one frame just dropped.

It would be cool if you could one click magic mint something and get three frames.

of all the like UX complexities that we really all talk about in the space about connecting the wallet and all this stuff that we want to get rid of in order to get to the broader audience.

And I think the frame can be used to enable this level, I'm really curious about what the work ethic is cooking.

cooking uh because i think things are gonna get even wilder in the future.

but the first frame that i dropped was basically just an experiment to see like let's see if this thing works if people can like actually one click mint and what is the reception?

Nicholas: and yeah that was pretty crazy right how did it go for people who weren't there? what happened next?

unreal unreal like i would never i was.

i would have never expected for something this caliber to happen.

to be honest.

and uh everyone jumped in and to build on frames and that was just as cool to see.

like i'm really a fan of a lot of uh the frames that people that are here that are speaking they're listening and about all the stuff that's been happening during these days.

i think they're.

i don't remember a time where there was such a this level of experimentation like this huge in a in such a short time frame.

it's really it's really cool.

Nicholas: it is really cool and people are very into the uh the first frames.

right yeah yeah there's.

uh there's a bunch of people that are really into it.

uh but yeah it's just uh it's it's how i'd have these work i guess.

Nicholas: so that was the first one that you did.

yeah exactly and after that one i i made a few more just to keep experimenting.

so my goal right now is to just like do something different each time because i'm realizing there's so much on top potential in in frames that we we're just scratching the surface.

and so the second one was uh something that came out of a suggestion from jesse which in the original one which was what would happen if you add a recast requirement and you probably know how that went uh.

but uh that basically broke forecaster.

at that time it became the second like most engaged post after the first one and like for uh for good and bad.

uh like it started this trend of recasting and liking and like satisfying requirements that uh you know can be seen as spammy.

but what i think it's interesting here is that for the first time with frames we have a tool that we are enabling like really a direct consequence of a of a social interaction which could be a like between recast or uh and then immediately you can do something else that could be on chain could be off chain but it's right there in the post and i think this could be a huge unlocker for like basically

Nicholas: everything. yeah i guess i we were talking about a little bit before but it's the huge like um creative moment for people who are on farcaster. but i guess if you're not on if you don't have a farcaster client it's a little bit difficult to access. so it's bringing people into the farcaster universe uh for one and certainly growing attention on things like warpcast. but uh it'll be curious to see if some of these things also have an impact outside because the meta tags are exposed on other. uh you know could be exposed on other interfaces as well.

100 yeah i'm honestly like almost convinced that like with all the stuff that happened in yeah one week like we are 100 going to see this this um these frames out of farcaster like being integrating also in other ecosystem and other things.

i think that's where things could get even cooler really looking forward to it.

Nicholas: now of the frames that you made do they? they depend on the user having uh like in order to interact you need to have a farcaster pk right? uh yes so they wouldn't be so relevant in another context like you'd really only have kind of limited interactivity. no interesting on-chain mechanics if you were connecting from another context.

yes that is true but uh there are ways i guess that people can still plug into farcaster.

so what i what i meant is that actually other other ecosystem could tap into the farcaster ecosystem and just plug into this this feature.

Nicholas: yeah it's going to be very interesting. uh we have russell coming up. hey russell uh hey nicholas how's it going good good how are you what's up?

Christopher Wallace: excellent thanks for uh for hosting this. um i wanted to uh i mean first off congratulate everyone on on here who have uh created frames so far Jacopo uh chris and i know Cassie working hard on the uh on the farcaster side. i appreciate everyone's uh effort and uh congrats on all that. the uh success so far. um i was actually curious um about what i think you did touch on before nicholas about what winter's building. and i believe Jacopo also had come out with something that d frame where it's uh kind of like a diy frame creator. so i was curious hearing uh more from those guys about about those projects. and then maybe chris's workflow you know for creating cookie.

Nicholas: yeah i haven't tried Jacopo's uh. uh tool yet you want to talk about it a little bit.

yeah i mean right now there it's not live yet uh we're working on it.

but uh yeah that was the idea from the start.

as soon as i realized the potential of frames like i i just wanted to make it possible for everyone to spin uh nft frames and in general on-chain interactions pretty easily because that's like literally what i'm what i'm passionate about.

and uh i've seen winter also is going in this direction.

i'm excited for his uh his product as well and i don't i think that these are not going to be the only only product that are going to try to do something like this.

so really really curious about the future of frames in general.

Nicholas: hey julian how's it going?

oh hey sorry i didn't know i was gonna say i clicked the button by accident.

um really excited.

um yeah sorry about this.

we built we built one at unlock uh to token gate stuff.


so basically people can create token gated uh casts which i think is a cool use case.

um definitely excited to see uh and i've seen messages from dan saying that there's going to be the ability to set on chain transaction from there.

obviously there's a lot of security concerns here but i'm excited to see that because i think right now it's kind of a bit clunky uh when you want users to be able to send transactions themselves.

um and you might want to do that when there's a payment in place because meta transactions are not that well when there's a payment um.

but yeah i'm excited to see that happen and sorry about interrupting this no you're good that was uh very interesting.

Nicholas: and when? when are we going to get event ticketing on?

uh on a frame yeah so that's actually something that we have working already.

uh the challenge is like it works for free kind of rsvp stuff uh but doesn't work for paid uh.

and one of the other challenges that we have with the free stuff is like uh you know usually when you're organizing you want to actually know who comes as in know their names maybe their email addresses and not their wallet addresses um and even though you can get some kind of information from the uh forecaster api um usually i mean you don't get the email address and usually you might not get um a proper name.

uh you would get a handle which again if you're doing events might not be enough.


so um and i think this is also coming based on seeing some messages from Dan uh the w2 input text uh would be really really useful there.

Christopher Wallace: yeah um i want to note that the input is actually there tonight. oh wow okay i'm late sorry yeah um it was. it's not as widely known I think um particularly um. so actually a fun story. I knew that frames was coming because I was building uh something of my own. uh Thursday night and um all my builds started to fail fail over and I look and I see like oh hubble my hubble is down and my hub is down and like it's just like weirdness. that's happening. um and the repo um and um my the type builds were failing and that um this message doesn't have overlap and it needs frame action. and I I look at it I'm like what in the world's going on? what's a frame action? and so I rush over uh to the repo and I go to look through the documentation and it says frame action valid a message and I was like sitting there. I was like well every message is validating like it's part of the hub itself and I just sat there and I was just like I don't know what's going on I don't like I didn't see an FIP I didn't see anything. um that was in in front of me and my expectations um and then just blew things up and I was about to message um people and then I decided just to go to bed um and made you know the classic type unknown as any um to just make my bills pass and then woke up the next morning with the um same message. last night I also got the same build problems um with with input type um after I think the dev call. I think they were. they had said they were going to push it. so um yeah just a fun story that's fun uh.

Nicholas: and so text input is here.

Christopher Wallace: yeah you can it is available. it is um you can add it as part of the. that's one of the buttons. I don't think I've seen it yet. I don't think anyone's actually incorporated that.

yet trying to think what you could do with that I mean I was going to ask a little feature request to Cassie like I know there's a bunch of.

there's a notion page 22 from the validator.

uh it would be nice to have uh you know some place where you can see all of these Docs and maybe the kind of a change log.

uh because when these things happens you know rereading all of the Docs to see what's new uh not always the easiest way if there's kind of a quick.

you know this is the thing we added today.

or this is the thing we did two days ago.

um can be really useful.

Cassie Heart: yeah that's a fantastic idea. I'll I'll forward that on to denim room.

Nicholas: awesome. is there anyone else who uh wanted to come up and ask a question? or uh talk about a project that they've built. yeah go for it. thank you Atlas.

Christopher Wallace: sweet thanks Nicholas. um another question. I think this would also make sense to go to Cassie thinking about how frames can kind of be embedded on any website. right and we talked a little bit about how right now a lot of them are very like farcaster user specific. a lot of them are built on this idea of like needing an FID but you can imagine ones that don't or like Cassie said they have IDs from other sources. is there anything to think about like uniquely about frames that that makes that difficult? or is it just the same um sort of framework of thinking like I'm getting an FID or I'm getting another author I'm getting like nothing like do you need to pass something through for it to work?

Cassie Heart: uh no you know. yeah so that's the funny thing the doom frame for example. uh I mean we of course accepted the request data with a signed payload but we actually weren't even really using it. um like anybody could have submitted uh you know button actions that would make the character move forward left right whatever um but you know just to maintain compatibility with a farcaster we of course supported the uploaded payload that included the signed message bundle but you don't have to.

Christopher Wallace: yeah it's very cool because it's just kind of a way to think about like how some of the cool um magic and fun stuff that's happening on farcaster can just sort of be like embedded anywhere.

Cassie Heart: right yeah I mean like. if. uh if you know Elon Musk himself wanted to like start integrating frames. I mean nothing's really stopping him. he misses out on the composability of like proofs that those users interacting are who they say they are. but uh who knows? maybe maybe Twitter could someday uh be be a part of the hubs.

Jacopo Ranalli: cool all right. I had another question. so oh there's a frame by paragraph um by the developer Colin that um it uses like email like to be able to subscribe to different newsletters and it actually will create that account. um like I don't know everything about the back end but it was like really interesting how people can subscribe from farcaster even though if they didn't have a paragraph account it'll create like an account and then they can add their email on later. I had a question on how can I use frames to do something like grow my YouTube channel because I know that that's not like a web 3 platform like it's not on ethereum but like there's all these like um like with tools like privy

Cassie Heart: that

Jacopo Ranalli: kind of like connect emails to the blockchain. there's some like way that you know by uh one degree of separation that my YouTube email that I use to sign in. okay this is getting a little crazy. but how can I grow how can I connect more web three or web two platforms with my email through farcaster with a frame just to like drive traction or all those clicks back to my domain?

Cassie Heart: yeah so to to add a little bit of a backstory to how paragraph did it which was a really really cool integration. um this was before we even added the redirect URL. uh support uh that we uh recently posted about. but paragraph has a notion of um associating a eighth wallet address to your account and they like Colin's been very great about pursuing different strategies for onboarding funnels and man is he an expert at executing on it. um so essentially how that worked was a normal paragraph. you can create an account with your email and then you can associate it with your ethereum wallet by signing a message with your wallet and that that gives you the address. on farcaster you can associate your ethereum address um as part of uh you know protocol interactions and so uh what basically gave a unique funnel for him was that because paragraph supported the notion of linked ethereum addresses. uh creating that initial request through the frame to subscribe meant that if you already had an account he could look up based on the fid and the signature proving that that fid did that interaction. then you could take that signature associated to the Ethereum wallet that a user's already connected on Varkaster and then create that new account that a user could then hop into and associate their email with. For YouTube, YouTube to my knowledge, I could be totally wrong on this, doesn't have an API or any connection abilities to Ethereum wallets. But what you could do is you could at least present a redirect URL or just a link directly on the frame to link to your YouTube channel and encourage people to subscribe. There might be some clever tricks you could do with YouTube's API. I have no idea or familiarity with it. Never, never touched that API. It might be possible, but I am not aware of the possibility.

Jacopo Ranalli: Thank you.

Christopher Wallace: I was going to add, Val, you should talk to Cameron because Cameron has a frame for his project, Seymour.TV. And I think eventually he might be able to support some kind of like subscribe to your Seymour page, which links to your YouTube page because he's aggregating all content across like YouTube and blogs and things like that.

Jacopo Ranalli: So, yeah, I was in a conversation. I'm not trying to derail this, but I was in a conversation on Varkaster when I asked this question and it was basically there was an idea by Jacob Horn and he said that maybe that there should be a frame that people can like verify that they seen in an empty, like just seeing it because like, you know, like you can attest that, you know, like you can. I don't know how else to put it. It's just seen. It's not like mint. It's not like comment. It's just like I just seen this on Varkaster because if I were to put my YouTube video on Varkaster, that's kind of like a view that's not being counted for. If someone does watch it in the frame, if that makes sense. And I do think that it might be beneficial for people that actually care about, you know, the audience that they're building on Varkaster to be able to like do some type of data analysis later. But if we're not going to be able to count the views, a lot of that traction is going to be lost. That's all I have to say that. But you did answer my question. And thanks.

Nicholas: Did anyone else want to mention any other frames that they've seen that were very cool or interesting that we haven't talked about yet? If so, please speak up or request. Cynthia, how's it going? Long time no see.

Hi, how are you guys?

Thank you for having me.


So as you know, Nicholas, I'm not like a dev but I'm really interested in what's going on.

Also, I don't know if you guys can hear me because my phone is like not really working right now.

Okay, cool.

So anyways, I'm exploring frames like you know, everyone else in Web3 and there was an interesting idea that came on in like a, I don't know if you guys remember.

I don't know if you guys know are familiar with ceramic.

they do like composable data sets.

um someone brought up the idea of having like basically like a frame that is built on ai.

so it's kind of like tragi bt um.

and then we were kind of talking about well that would be really cool for the context of like um for the context of of having this ai simplify like technical documentation for for instance um.

and then we were waiting on text input to to be integrated and i just heard in the space that it was.

but again i don't even know like if that's functionally like possible.

so i wanted to ask you guys if that could happen if you could if you could you know build frames that you're kind of like training ai and i don't know.

Christopher Wallace: um i want to. i can kind of answer this one. um can you hear me? i think it's yeah but the data is already there. the data is already on a off-chain protocol right and anyone can access it. um if they spin up a hub and or have access to a hub. client data composability is a very difficult problem. it is it is one of the hardest problems and not only in the blockchain space but also outside of that at the traditional media companies content companies they and advertising companies. they need this data this composability piece and the auctions that happen around it. but all the data is on chain or off-chain in farcaster in a way that allows you to compose these things. it just needs to be attributed to that address. it's going to happen it will be probably this year. we'll see the composability actually start to make sense and that organization of of that data be accessible in a more generic way. um and and i'm i think that is going to be the biggest story of this year is the storytelling that people do because of that. and um yeah it's it's the biggest. i think the biggest story people aren't talking about on farcaster is that uh discovery piece. so anyways that's awesome.

thank you so much.

um so i i mean i can't pry more into that but i'll be excited.

to you know look up the guys are building super super fast like insanely fast.

so just hats off to you guys.

Christopher Wallace: yeah and i want to add to this that um the girl scout cookies frame did for me what? um i could never have asked for um the attention the conversations the technical um depth and breadth of people that came on board. because of that um the space is about to get very very very crowded and also very very competitive and when that happens i don't think there will be and there will be so much attention we won't know how to deal with it and i think we need to start having conversations about how to manage that as a community. because um it's coming. i've i've had a lot of conversations in the last two and a half days that i never would have expected to have from everywhere.

Nicholas: very cool. um i don't know if there's anyone else who wanted to jump in before we call it today. are there any last questions or comments or projects? uh anyone would like to shout out? all right well if not um i'll. oh there is one person shoni. hey shoni how's it going?

Christopher Wallace: uh it's gone. i was just going to ask uh did you guys say earlier that a text input was added to frames?

or are we waiting on that?

Christopher Wallace: what's the story?

Nicholas: it is apparently in since last night.

Christopher Wallace: oh okay cool it sounds really easy to use like llms with frames.

Nicholas: in that case it could want to stop in the middle of their feed to talk to a chatbot. but maybe it's possible.

i i think it would be like if for like if it's the if it's something of use like right like the example that we had um last night.

was um helping people learn about tech.

because i mean you guys are devs but i don't think many devs understand how incomprehensible a lot of the conversation is world.

so maybe if it's like you're chatting to a chatbot that you know is going to help you understand something critical then i think i mean i definitely would stop and talk.


Christopher Wallace: definitely think you can add utility like especially uh if you sign access to your farcaster account and and like whatever app the frame is through before

Nicholas: like

Christopher Wallace: i could just type in follow uh like 10 developers that have posted


Christopher Wallace: frames recently

and that's like your recommendation system

Christopher Wallace: or you know that kind of stuff. i think people are underestimating the potential of that input box. i think it's probably the biggest thing that happened. what happened was that when you put that input box it became the search box. um it became. it's become this. it's this thing that if you put something into it the world talks back to you. and it's not just emails for newsletters it's not just some pieces.

Nicholas: it's i mean it could be a ai nft mentor for example. just insert prompt image and it's immediately available to recast.

Christopher Wallace: it could be if you if it could be if you type in who is this person it returns back. who that who the person cast that frame. that is right is there uh any information on payments?

is anyone like working on a paymaster?

or i think dan may be posted about this at some point.

Nicholas: yeah there's a few different things. Christopher was talking earlier about some some things he's working on.

Christopher Wallace: um yeah i'm trying to save. you know just like Cassie's price saving there are things that i've been talking to folks with and trying to understand more rapidly how fast we need to move with the things that we could possibly do with the technologies at our disposal. um i believe the web 2 technologies um are going to come back in a way that we didn't expect. um most importantly um the we were replaying. basically i i think that we basically we didn't get disrupted by the app store. the the web just was paused. There's this gigantic sucking sound of commerce. that happened, information that happened that went to the web, to companies, and then we're getting that back. And it's a protocol benefit to having that on-chain. Frames are part of that. They're basically a portal into an on-chain existence because it's verifiable. And the power that goes behind that piece is endless. And there's tools off the shelf. I could hook up commerce tools, which is what we used to deliver bikes to New Zealand, and to do Nexus, and also to do the supply chain management. I could hook that up and put that into a frame instantaneously. It would make no difference to the user where it came from or how it was used. Do it, Chris. Did you use Coinbase Commerce?

You did the cookie.

Christopher Wallace: Shop, right, Chris? That's right. Did you use Coinbase Commerce for that? Do you feel like those tools are kind of lacking and I don't think you can charge a marketplace fee? Coinbase Commerce could. They could decide to increase the take rate for using their APIs, but it's the demand is so low. You can't build a platform to let other people make cookie shops and let... Take your own fee on that, right? I think that if I tried to do that, I would get smushed from a competitive stance. There's just too many people and there's no various entry. If you are thinking of building a commerce platform, it is only just a very few set of changes to open graph on the major players for them to be able to hook directly in. But the defensible strategy is that this crypto piece is what's missing. But also, because of composability, you could just use another service, you know? Yeah, I mean, I would use services that charge a percent personally.

Just a lazy preference.

Christopher Wallace: Good for that.

Nicholas: Cynthia, go for it.

Because if so, then I won't... I literally won't need Twitter.

Cassie Heart: I can actually make a big shout-out to the Abura team because that is exactly what they have built. And yeah, I've already used it before. It's pretty great.

Nicholas: Maybe coming to a frame near you someday.

Cassie Heart: That would be cool.

Nicholas: I guess that is the last missing piece for some of these things, streaming them directly into a Forecaster client, which now, I mean, it's, I guess, a first-party thing, but the video in Warpcast announced today is, I guess, a step towards this rich media experience. So I guess with an open graph tag, you cannot stream video, right?

Cassie Heart: With an open graph tag, you cannot. We have no planned announcements at this time for video support and frames, but always be on the lookout for new features. And as a few folks on here have already noted, it seems that the alpha is in the hub repository. Good to know. It's a bit ahead of time of the actual announcements.

Nicholas: And I guess it wouldn't be so complicated for a client to interpret, you know, something to be getting returned, a callback return from a server when you hit a post request on it to render it as a video or some kind of stream, audio stream in the frame, the space of the frame.

Christopher Wallace: So this is actually something that happened to me at Spotify. So we were rebuilding the Spotify client and then in the middle of doing that, Apple introduced something called Fairport, which is a different strategy for how to deliver the audio. that was different than how we were doing it across the other platforms. And with that standard, it broke a lot of things and we had to rapidly readjust the entire internals. This happened to everybody too, by the way, to basically align how streaming was happening. You know, when you use Spotify Connect, you expect the same experience across the different devices. I imagine the WordCast team is going through, Same experience too, because Apple is very opinionated about what is displayed and what is pulled back into the client over the internet. And, you know, I was digging in already to how the videos were working and noticed this very particular about Apple and the Apple strategy of streaming.

Nicholas: There's a lot going on under the hood for what seemed like simple features sometimes from a user perspective. All right, well, if there's no one else who wants to come up and join in or mention a frame that we haven't talked about yet, I'll make one last call out. Oh, I see Horse Facts. Hey, how's it going? Everyone's around. Yeah, obviously, if this is the first you hear about, Farcaster, Frames, et cetera, there's lots of great clients that you can try out. And DWR on Twitter is always sharing that link where you can sign up for free if you like. So check it out. And thanks, everybody, for coming through and sharing your experience as a developer and curiosity as a user. If there's nothing else, let's call it for the day. Thanks. Thanks, everybody. Thanks for having me. All right, see you on Farcaster.

Christopher Wallace: Thanks for hosting.

Nicholas: Hey, thanks for listening to this episode of Web3 Galaxy Brain. To keep up with everything Web3, follow me on Twitter at Nicholas with four leading ends. You can find links to the topics discussed on today's episode in the show notes. Podcast feed links are available at web3galaxybrain.com. Web3 Galaxy Brain airs live most Friday afternoons at 5 p.m. Eastern Time, 2200 UTC, on Twitter. I look forward to seeing you there.

Show less
Farcaster Frames Development with Cassie Heart, Christopher Wallace, Jacopo Ranalli & friends