Frames dev chat

Recorded: Feb. 2, 2024 Duration: 1:14:50

Player

Snippets

Hey, Cassie. How are you? Hey, hey, doing great. I should have recorded this. I forgot
to change the setting. Dang. It says it's recording. Oh, well. Oh, does it? Oh, good.
Okay, okay. I missed that. Great. 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. Cassie, is your
most popular frame so far, the Doom frame? 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.
Oh, interesting. 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?
Yeah, so frames is a feature that was added to Warpcast and the Farcaster protocol just a couple
weeks ago. The idea is that things like open graph 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 if you add some additional meta tags that describe buttons
to render and a 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 makes this different from
other iterations in prior versions of the web, if you will, is that Farcaster is uniquely placed
in the ecosystem of having 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
are. So what frames combines is ideas like open graph, 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. So let me see if I understand correctly. And before I do, hey,
Christopher, welcome. How's it going? Good. 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 link into a cast, that particularly the warp cast 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
open graph 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 will all it also has a special open graph. 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 warp cast client, like on the app or on the website, but
potentially again, any Farcaster client will populate those links that are there in that button
label the buttons in the open graph tags will populate them as 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 specified, but you can also attach data. So it's like you can maybe maybe someone could
explain a little bit more technical details of how that works. But basically, you the warp cast
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? Sure. So yeah, you pretty much got it on the mark. Although I do want to
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 outstanding. Like I could not have possibly guessed how how well this was going to be adopted.
It's amazing to see. But yeah, you basically had it on the on the mark. So there's really only like
six or seven meta tags that you will need to create a frame. And those just sit in the header
of the particular page response that the warp cast, or supercast or other frames enabled clients
is just reading out. And 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 as
a frame game, it can, you know, generate new buttons to turn back to you to present different options.
Yeah, Cassie, Cassie. Sorry. Yeah, go for it. Sorry. Yeah, I was gonna add to that,
like the technology has been around for over feels like 15 years now. And so it's very well
known in the space. And so it's easy technology to learn and get started with if you wanted to hack
or or ask chat GPT or so on and so forth. It's a very simple primitive in the 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. And yeah,
that was the initial draw for me. Yeah, it's super, super easy to get started. And like meta tags or
something, or open graph meta tags are 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 say ST on warpcast, I was talking about this
morning how, 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. 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
signed payload that comes along with the button click in order to do some action? And then maybe
we can get into like the cookies example for that. Yeah, that's that's the beauty and simplicity of
what the Farcaster protocol enables, because every user has at least one signing key. We have a,
you know, decentralized network that lets you infer who that user is based on the signed payload
implicitly. So when the signed request is generated, so you click a button, and it generates a signed
message, no different than any other message signing process in any other protocol or
or network or whatever. And 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 Rivera has in fact
interacted with this. And so we know that we can trust that that action was taken by that user.
And you do that by calling an API on the hubs or even an API that sort of a SAS 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 do you know,
in practice, are people mostly using NANAR? Or are they going directly to hubs?
I think it varies pretty wildly. And there's there's definitely a lot of what makes it tough
to say percentage wise is that there's a lot of adoption that has happened that has been through
essentially these third party almost frames as a service tools that, you know, generate 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 if they're calling NANAR APIs or doing something else.
In your own projects? What have you chosen to do just out of curiosity for sort of the state of the
developer infrastructure? My own project, I call the hubs directly. But at the same time,
I'm also doing something a little bit more unusual compared to what other frames are doing.
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. Yeah, so a very short
synopsis of my history in the professional world, when I was very young, I was doing a
internship at a company that provided utilities for telephone companies like, you know,
somebody who sells like conference bridge services or whatever. And one of the things that we sold
was white labeled links as home security cameras so that, you know, customers of this telecom could
set up a links as home security camera in their home and be able to do it really easily one click.
And those old home security cameras had this neat little trick that they used in JPEG,
which is an image format, technically, so image tags and browsers support it.
But what it actually is, is it's basically an open hanging HTTP 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. So what I did is I I've been working on this decentralized network,
equilibrium for quite some time now. And I wanted to demonstrate how powerful it was.
So I took the equilibrium meta VM, which is our basically our instruction set architecture
rewiring tool that turns it into garbled MPC circuits, and rewired it such that it was
processing a risk five processor ran Linux on that ran doom on that. And then the frame buffer
it's writing to I streamed as MJ pegs. And that was the that was the trick. And so everybody's
buttons that they were interacting with for the doom frame, everyone was playing the exact same
instance of doom. So it's like frames plays doom. Basically, exactly. Procaster plays doom.
That's extremely cool. I want to know more about equilibrium. But, but we should stay on frames
topic for today. Christopher, maybe do you want to jump in and talk a little bit about how you
built the cookie? Did that come out of a hackathon? Or did you do that independently?
No, I did it with team members. Jonathan Zinger and Brian Kim were my co hackers. Jonathan,
I actually had planned on Monday of this week to meet and hang out and get to know each other and
develop. And I think we had saw each other kind of posting development, little hacks and interests
in the same kind of areas. And, you know, we were kind of kind of destined to see each other
at the hackathon. It just felt that way. As soon as I got the invite from
Euler, I sent it to him. He said he is helping organize with Alana at Varian.
But I've been noodling on an idea about commerce for a long time. I quit my job at Peloton on
January 1st to go full time into Farcaster. I've been seeing data, just really good data and using
some of the same metrics I had been using at my previous companies to infer the health 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 have been using other companies before.
A key part to this is that Commerce Tools is a headless API. It's actually very mature
issues by the top companies in the world that do everything commerce. And so I was kind of
looking for a way to use it in the Farcaster space, but I didn't know when, where.
So when I saw frames with the redirect, it sends you a signed message about the user details.
I got to start thinking about, okay, if I know who the user is, I can trust that person.
I can probably pour 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 Coinbase APIs,
and I saw Coinbase Commerce, which has been very dormant for the last like few years.
Shane, a developer on the Farcaster team was actually the last commit to this repo. And
the APIs are still working, the documentation is still up there, 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 Commerce. So I was looking for a brand and
a use case. And someone had posted that they wanted to sell Girl Scout cookies
on the Spotify alumni stock channel. And I was like, oh man, it's the perfect use case.
Like there's no tax, there's no shipping destination. They do flat shipping
via a simple calculator. And it's just a great cause. We didn't take any money. We made nothing
from it just to the truth. It just made sense. So after that, it was off to the races. I think
Jonathan instantly understood it. Brian, obviously as well, I've hacked with him
at the Theory of Global Hackathon on their project and just the vibes were high. That was it.
Can you explain to folks who haven't tried it themselves what the UX is like?
Yeah. So the UX is just four buttons. And to build a cart, we stored the cart and the key
value store on versatile servers. They're using Redis and have like a API wrapped around it.
And so when you do the back and forth of the API, the post and the post of the quantities and what
not, 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 they come back and then deliver a unique identifier to the URL of the commerce and then
pour that to people. We had gone too fast. And we realized that no one would be able to be
redirected to this URL. And so to me, 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, these things were just sitting on the sideline and
decided to pull them off and put them into one project. And it was pretty easy. I gotta say,
it was very straightforward. I think 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 years
of thinking about stuff. Yeah, absolutely. The wealth of experience, the pressure of the
projects that we've had in our past, the interest. 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 basically like another language to learn, but it's not too far off from where the
current state of reality is for FARC officers. It's actually very straightforward. I've been
happy to learn it, easy to learn it. Complex pieces are the contracts, but those are hardened
and sitting in a repository open to everyone to comment on.
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, providing all the rest of the
information that's required? Yeah, actually this is a funny thing. Tony, another FARCaster,
mentioned, I think there's been a few people in the commerce team that actually work at
FARCaster. He mentioned to use metadata to store the order details, and that was what I did.
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 associated
those two things together. And I will tell people on this call, there's only very limited use cases
you can do with this, because you have to ask for a lot of information in other scenarios.
So if you're trying to do anything complex with taxation, or nexus, or cross subsidy
or fulfillment or anything like that, it's not an easy project. So.
So do you think that the checkout experience will be ultimately entirely inside of a frame?
It's tough to tell what user behavior is going to be. You have to experiment and find out.
We got an absurd number of checkouts. I can't even begin to count how many the tools inside
of Coinbase Commerce and the UI are not at par with what is needed right now. And
I have to crawl the API to get the details out. So probably not now, but soon, yes.
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 basic functionalities, you add buttons that are going to 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 basic like Bursale
playing through Doom. What are the 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 signing with an Ethereum wallet, you're signing with your
Farcaster private key. So what does that allow you to know about the person? And what does it allow
them to do? What can you do from the server side when you interpret it?
Yeah, so this is probably just cookie specific. You actually I actually don't really care what
the wallet is from the from the Farcaster client or the work desk client. I just care that that
came from the right person and I get the right ID. Most people actually, from what I can tell in the
data, they used a wallet that was different than the wallet that is actually held in the client.
They might connect that address to their wallet 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. 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, I have no money in my Coinbase account, I have no money in my Ethereum
account, that made me 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 to check out. People use Dejan to swap directly to USDC and pay within inside the same
experience and credit to the other teams at base and in Coinbase for recognizing this this immense
opportunity, because I don't think there's any other tooling out there that can do this,
that can do that swap and checkout experience. So
that is very cool. But it also means that people need to be farcaster users, right? There's not
really, can you imagine any kind of application of frames unless you already are a regular user
of some farcaster client? No, exactly. No, I mean, you just you can just use Coinbase commerce and
authorize it from an OAuth, but that's not, you know, the same comparably to farcaster.
As a trusted source, you have to put in your username, email, you have to OAuth through and
it's not nearly as seamless and frictionless. Is there any way? Yeah, go for it, Cassie.
I would like to add, like the way that authentication works on those post requests is
just depending on the on the signature, but it doesn't have to, you actually can support any
post payload. So, you know, if other 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's actually a lot of composability offered,
where people can have accounts that are on farcaster or accounts that are on that frame,
the actual hosting server or, you know, other protocols entirely, like if, for example,
shout out to Linz and the hey team for the commentary. But if they wanted to, you know,
have a multi protocol supporting frame and have support for signed payloads from, you know,
your hey 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, you know, you can have users that are from farcaster and
have their little farcaster icon next to their name or users from lens and have the lens icon
next to their name or, you know, just on the site has specifically lots of options.
Yeah, I'm curious, do you think is there I guess, because it's, it's, you're saying if you're not
using the farcaster 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'd be cool if every time I share an episode of the podcast, you get
some rich experience that's even interactive for browsing its transcript or playing the show right
in the frame, maybe. 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
farcaster specific logic, you can imagine other sites having, you know, taking advantage of these
richer open graph applications to maybe right? That's the power of composability.
Very cool, very, very cool. I've also seen some people are talking about using the because
farcasters private key, well, actually, maybe I'll summarize, and you can correct me if I'm wrong,
but my understand my rough understanding is that you in order to create a farcaster account,
you send a transaction on an L2 optimism, if I'm not mistaken. And you associate the you
like can register a farcaster account by or maybe do 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?
Yeah, so very, very simply put, there is a collection of contracts on optimism that
when you're onboarding onto farcaster, the first thing you do is you register your F ID, your F
name. And then you also register, you know, 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 or a frame interaction
is signed with that key, they can associate it with the relevant F ID 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 a, you know, when you create an account somewhere in web two,
you're, 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 of it, you're not giving
your name or phone number, you know, physical location, instead, you're giving your, you know,
your username, your F ID and your signer key. 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 implementation of an ECDSA
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 farcaster key. And could you
even do that in the space of a button in a frame in principle? 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 ECDSA signatures, or even this the frame specific format
for signatures. What happens though, is the gas cost is extremely high on EVM based networks,
because there's not a, you know, a built in primitive for handling ECDSA. So it's about
1 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. And 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 were 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. Right, I guess maybe this plays
into their interest in increasing the block size. Yeah, that 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.
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 are really want to be in the know, I did just cast out on Nicholas,
my name on more cast 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? Hi, how's it going? So I had a
really, really, I really want to know how the first five days of on change transactions and
dealing with gas was like for the Farcaster 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 private key. So like,
yeah, like how, I don't know, how disruptive was that for like the first week of frames? Like did
did Farcaster expect like minting to just go crazy like that?
I can't say I was terribly surprised that minting became a very hot topic in frames. For us,
it was a non event. Because, you know, Farcaster 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 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, 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,
like account abstraction and stuff. But it's been really fun to see.
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 my hot take on the topic, I think that the the long term
of any any, you know, L1, L2, or L3, 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,
you know, you're paying for all those resources as a company, 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. Thank you for your answers. I'm going to step down now.
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's sponsoring is 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 got Atlas coming up. Hey, Atlas, how's it going? Hey, Nicholas, thanks for having me out.
This is Jay Jacob and JRF on Farcaster. This is, I just don't have a Twitter account separate from
this Atlas thing. Yeah, so that's great. 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? I'm trying to be relatively secretive about it.
But I'll just say stay tuned for this weekend. Alright, I'm probably gonna be offline for most
of the weekend. So can you is this gonna be a is this gonna be a tonight thing a tomorrow thing or
a Sunday thing? It's likely gonna 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.
Awesome. Very cool. Excited to see it. That is exciting.
Can I also add to this? Yeah, please.
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 DJI swap. Like that was, I remember sitting there
and I just got all these polygon transactions and I got I was like, wow, that's crazy.
I got an Ethereum transaction. I was like, wow, that's crazy. It's gonna cost me like $14 to move
that. And then I saw people using DJI to do it. I stopped and I thought, oh, no, that's,
that's liquidity. That's liquidity pool. That's unexpected. That was going to be all base or
USDC on base. And I thought to myself, well, if I have the signed data about the user,
what else can we stuff inside that little signer trusted data packet? And I hope that the far
heifer team is thinking along these same way, these same pieces, because
it would be incredible if the value chain would be collapsing further down, the actual
it's hard to describe. If there was no checkout experience off of Coinbase, basically,
yeah, that would be the biggest interaction we could possibly ever get.
I can't speak to any future features. We're launching on frames that haven't been publicly
stated. But with any future requests, stay tuned and obviously put all that feedback to
Dan and Varun because they really, really listened to it.
What are some, oh, hey, here's a Jacopo. Let me bring him up. Other great frames. I believe
creator of the first NFT meant 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?
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 sponsoring and getting a base quest out.
That was also really cool. Outside of that, a tenant in a frame was very, very funny.
Super funny. What was the base quest one? I don't know if I saw that one.
It was kind of like a graphical version of Zork, that kind of RPG, but text based RPG,
and in this case was button based RPG. It was a really cool idea and definitely pushing frames
to its limits. Very cool to see. Hey, Jacopo. Hey, everyone. All good. Glad to be here. Thank
you for the invite, Nicolas. Yeah, you're welcome. 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
frame I did was the frame NFT that happened on the frame Friday. And basically that was
a pretty simple mint. But I was kind of curious about the idea of when the frame just dropped,
it would be cool if you could one click magic mint something and get rid of all the
UX complexities that we all talk about in the space about connecting the wallet and all the
stuff that we want to get rid of in order to get to the broader audience. And I think that frame
can be used to enable this to a level. I'm really curious about what the Farcaster team is cooking,
because I think things are going to 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. And yeah, that was crazy,
honestly. And it was pretty crazy, right? How did it go? For people who weren't there, what happened
next? Unreal, like I would never, I would have never expected for something this caliber to happen,
to be honest. And yeah, then I guess, like we all, 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 the frames that, like, 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
this level of experimentation, like this huge insert in such a short timeframe,
or something. And I think that it's really, it's really cool.
It is really cool. And people are very into the first frames, right?
Yeah, yeah, there's a bunch of people that are really into it.
But yeah, it's just, it's how I'd have these work, I guess.
Yeah, then after that.
Yeah, so that was the first one that you did.
And yeah.
Yeah, exactly. And after that one, I made a few more just to keep experimenting. So my goal right
now is to just, like, do something different each time, because this, I'm realizing there's
so much potential in frames that we're just scratching the surface. And so the second one
was something that came out of our 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. But that
basically broke for a caster at that time, it became the second most engaged post after the
first one. And for good and bad, it started this trend of recasting and liking and satisfying
requirements that, 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 social interaction, which could be a like, retweet, recast, or follow. And then
immediately you can do something else that could be on shame, could be off chain, but it's right
there in the post. And I think this could be a huge unlocker for like, basically, everything.
Yeah, I guess we were talking about a little bit before, but it's the huge, like,
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, for one, and certainly growing attention on things like warp cast. But it'll be curious to
see if some of these things also have impact outside because the meta tags are exposed on other,
you know, could be exposed on other interfaces as well.
100%. And 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, these frames out of
Farcaster, like being integrating also in other ecosystems and other things. And I think that's
where things could get even cooler, really looking forward to it.
Now, of the frames that you made, do they they depend on the user having, like, in order to
interact, you need to have a Farcaster PK, right? 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 there are ways,
I guess, that people can still tap into Farcaster. So what I what I meant is that
actually other other ecosystem could tap into the Forecaster ecosystem and just plug into this,
this feature. It's gonna be very interesting. We have Russell coming up. Hey, Russell.
Hey, Nicholas. How's it going? Good, good. How are you? What's up?
Excellent. Thanks for for hosting this. I wanted to, I mean, first off, congratulate everyone on
here who have created frames so far. Jacopo, Chris, and I know Cassie working hard on the
Farcaster side. I appreciate everyone's effort and congrats on all that, the success so far.
I was actually curious about what I think you had touched on before, Nicholas, about what
winter's building. And I believe Jacopo also had come out with something that D frame, where it's
kind of like a DIY frame creator. So I was curious in hearing more from those guys about
those projects. And then maybe Chris's work, you know, for creating cookie.
Yeah, I haven't tried Jacopo's tool yet. You want to talk about it a little bit?
Yeah, I mean, right now, it's not live yet. We're working on it. But yeah, that was the idea from
the start, as soon as I realized the potential of frames. Like, I just wanted to make it possible
for everyone to spin NFT frames, and in general, on-chain interactions pretty easily from frames.
Because that's, like, literally what I'm passionate about. And I've seen Winter also
is going in this direction. I'm excited for his product as well. And I think these are not going
to be the only product that are going to try to do something like this. So really, really curious
about the future of frames in general. Hey, Jude, yeah, how's it going? Yeah.
Oh, hey, sorry, I didn't know I was going to say I clicked the button by accident.
Really excited about frames. Yeah, sorry about this. We built one at Unlock to token gate stuff.
So basically, people can create token gated casts, which I think is a cool use case.
I'm definitely excited to see 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 when you want users to
be able to send transactions themselves, and you might want to do that when there's a payment
in place, because mid-app transactions are not that well when there's a payment.
But yeah, I'm excited to see that happen, and sorry about interrupting this.
No, you're good. That was very interesting. And when are we going to get event ticketing on
the frame? Yeah, so that's actually something that we have working already.
The challenge is like, it works for free kind of RSVP stuff, but doesn't work for paid. And one of
the other challenges that we have with the free stuff is like, you know, usually when you're
organizing an event, you want to actually know who comes as in know their names, maybe their
email addresses, and not just their wallet addresses. And even though you can get some
kind of information from the Forecaster API, usually when you don't get the email address,
and usually you might not get a proper name, you would get a handle, which again, if you're doing
events might not be enough. So, and I think this is also coming based on seeing some messages from
Dan, the only two input text would be really, really useful there.
Yeah, I want to note that the input is actually there.
Yeah. Oh, wow. Okay, I'm late. Sorry.
Yeah. Yeah. Well, it was it's not it's widely known, I think, particularly. So actually, a fun
story. I knew that frames was coming because I was building something of my own Thursday night.
And 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 there's just like weirdness that's happening
in the repo. And my the type builds were failing and said that this message doesn't have overlap
and it needs frame action. And I look at it, I'm like, what in the world is going on with a frame
action. And so I rush over to the repo and I go to look through the documentation. And it says
frame action, validate a message. And I was like, it's been 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 that was in in front
of me and in my expectations and then just blew things up. And I was about to message
people and then I decided just to go to bed and made the classic type unknown as any
to just make my bills pass and then woke up the next morning with the same message.
Last night, I also got the same build problems with input type after I think the dev call
think they had said that they were going to push it. So, yeah, just a fun story.
That is fun. And so text input is here.
Yeah, you can, it is available. It is, you can add it as part of the,
it's one of the buttons. I don't think I've seen it yet. I don't think anyone's actually incorporated
that yet. Yeah, I have not.
I was going to ask a little feature request to Cassie. I know there's a notion page pointed to
from the validator. It would be nice to have some place where you can see all of these docs and
maybe the kind of a change log is when these things happen. So, rereading all of the docs to
see what's new, not always the easiest way. If there's kind of a quick, this is the thing we
added today or this is the thing we added two days ago can be really useful.
Yeah, that's a fantastic idea. I'll, I'll forward that on to Dan and Maroon.
Awesome. Is there anyone else who wanted to come up and ask a question or talk about a project that
they've built? Yeah, go for it.
Yeah, go for it.
All you Atlas. Sweet. Thanks, Nicholas. Can you guys hear me?
Yep. Sounds good. Okay, cool. 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
makes that difficult? Or is it just the same 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? No, you know, so that's the funny thing. The Doomframe, for example,
I mean, we, of course, accepted the request data with a signed payload, but we actually weren't even
really using it. Like anybody could have submitted, you know, button actions that would make the
character move forward, left, right, whatever. But, you know, just to maintain compatibility
with farcaster, we, of course, supported the uploaded payload that included the signed message
bundle. But you don't have to. Yeah, it's very cool. Because it's just kind of a way to think
about like how some of the cool magic and fun stuff that's happening on farcaster can just sort
of be like embedded anywhere, right? Yeah, I mean, like if, you know, Elon Musk himself wanted to
like start integrating frames, I mean, nothing's really stopping. I mean, this is out on the
composability of like proofs that those users interacting are who they say they are. But who
knows? Maybe Twitter could someday be a part of the hubs. Cool.
All right, I had another question. So there's a frame by paragraph, by the developer Colin,
that it uses like email, like to be able to subscribe to different newsletters, and it
actually will create that account. 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 three platform, like it's not on Ethereum, but like there's all these like,
like with tools like privy, that kind of like connect emails to the blockchain,
there's some like way that, you know, by 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 to
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? Yeah, so to add a little bit of backstory to how
paragraph did it, which was a really, really cool integration. And this was before we even added the
redirect URL support that we recently posted about. But paragraph has a notion of associating
a ETH wallet address to your account. And they like Collins been very great about pursuing
different strategies for onboarding funnels. And man, is he an expert at executing on it.
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 in that that gives you the address. On farcaster, you can associate your Ethereum address
as part of, you know, protocol interactions. And so what basically gave a unique funnel for him
was that because paragraph supported the notion of linked Ethereum addresses, creating that initial
request through the frame to subscribe meant that if you already had an account, you could look up
based on the FID and the signature proving that that FID did that interaction, then you could take
that signature, associate it to the assigned Ethereum wallet that a user is already connected
on farcaster, and then create that new account that a user could then, you know, 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 a possibility. Thank you. I was going to add, Val, you should
talk to Cameron because Cameron has a frame for his project cmore.tv. And I think eventually he
might be able to support some kind of like, subscribe to your cmore page, which links to
your YouTube page because he's aggregating all the content across like YouTube and blogs and things
like that. So yeah, I was in a conversation. I'm not trying to derail this, but I was in a
conversation on a Farcaster 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've seen in an EPT, 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 Farcaster because if I were to put my YouTube
video on Farcaster, 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 Farcaster to be able to
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.
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. Yeah. 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. Yeah, sounds good. 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 ceramic. I don't know if you guys are familiar with ceramic, they do like
composable data sets. Someone brought up the idea of having like, basically like a frame that is
built on AI. So it's kind of like chat GBT. And then we were kind of talking about, well,
that would be really cool for the context of like, for the context of, of having this AI
simplify, like technical documentation, for instance. 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, 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. I want to, I kind of want to answer this one. Can you hear me? I think it's
the data is already there. The data is already on a off chain protocol, right? And anyone can
access it, if they spin up a hub 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, the advertising
companies, they need this data, this composability piece and the options that happen around it.
But all the data is on chain, or sorry, off chain in FireCaster 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 in that organization
of that data be accessible in a more generic way. And I think that is going to be the biggest story
of this year is the storytelling that people do because of that. And yeah, it's the biggest,
I think the biggest story people aren't talking about on FireCaster is that discovery piece. So
anyways. That's awesome. Thank you so much. So I mean, I can't pry more into that, but I'll be
excited to look up the updates. And you guys are building super, super fast, like insanely fast. So
just hats off to you guys. Yeah, and I want to add to this that the Girl Scout cookies frame did for
me what I could never have asked for the attention, the conversations, the technical depth and breadth
of people that came on board because of that. 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 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 it's coming. 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.
Very cool. 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 anyone would like to shout out?
All right. Well, if not, oh, there is one person, Shoney.
Hey, Shoney, how's it going?
It's gone. I was just going to ask, did you guys say earlier that text input was added to frames?
Or are we waiting on that? Or what's the story?
Yep. It is apparently in since last night.
Okay, cool. It sounds really easy to use like LLMs with frames in that case.
It could be. I'm a little bit curious if people want to stop in the middle of their feed to talk
to a chat pod, but maybe it's possible. I think it would be like if it's something of use,
the example that we had last night was helping people learn about tech. You guys are devs,
but I don't think many devs understand how incomprehensible a lot of the conversation is
for the rest of the world. So maybe if it's like you're chatting to a chat bot that is going to
help you understand something critical, then I think, I mean, I definitely would stop and talk.
I definitely think you can add utility, especially if you sign access to your
Forecaster account and whatever app the frame is through before. I could just type in, follow
10 developers that have posted about frames recently, and that's like your recommendation system,
or 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. It's become 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
sort of pieces. I mean, it could be an NFT mentor, for example, just insert prompt,
generate image, and it's immediately available to recast. It could be if you type in,
who is this person, it returns back who the person cast that frame out is.
Is there any information on payments? Is anyone working on a paymaster?
I think Dan may be posted about this at some point.
Yeah, there's a few different things Christopher was talking earlier about some things he's working
on. Okay. Yeah, I'm trying to say, you know, just like Cassie's price saving some for herself,
there's a thing 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. I believe the web two technologies are going to come back
in a way that we didn't expect. Most importantly, we're replaying, basically. I think that we
didn't get disrupted by the app store. The web just was paused. There's this gigantic sucking
sound of commerce that happened, information that happened that went to the web, two companies, and
then we're getting that back. 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.
The power that goes behind that piece is endless. There's tools off the shelf. I could hook up
commerce tools, which is what we use 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
and 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 shop, right, Chris?
That's right.
Did you use Coinbase Commerce for that? Do you feel like those tools are kind of lacking in
that I don't think you can charge a marketplace fee on that?
Coinbase Commerce could. They could decide to increase the take rate for using their APIs,
but you can't build a platform to let other people make cookie shops
and take your own fee on that, right?
I think that if I tried to do that, I would get smooshed on the competitive stance. There's just
too many people and there's no barriers to entry. If you're thinking of building a commerce platform,
it is only just a very few set of changes to up and graph on the major players for them to
be able to hook directly in. But the defensible strategy is that the crypto piece is what's
missing. But also, because of composability, you could just use another service.
Yeah, I mean, I would use services to charge a person personally. Just a lazy preference.
Who for thought?
Cynthia, go for it.
This isn't a frames related question. But since we're on a space, I was wondering if anyone
knows if FarCaster is going to integrate something like this, like we're all live chatting to each
other. Because if so, then I won't, I literally won't need Twitter.
I don't think anything's announced.
I can actually make a big shout out. Shout out to the Aburra team, because that is exactly what
they have built. And yeah, I've already used it before. It's pretty great.
Maybe coming to a frame near you someday.
That would be cool.
I guess that is the last missing piece for some of these things.
Streaming them directly into a FarCaster client, which now, I mean, it's a first party thing,
but the video in WarpCast announced today is a step towards this rich media experience.
With an open graph tag, you cannot stream video, right?
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,
announced a bit ahead of time of the actual announcements.
And I guess it wouldn't be so complicated for a client to interpret
something to be getting returned, a callback returned 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 space of the
frame. This is actually something that happened to me at Spotify. So we were rebuilding the
Spotify client. And then the middle of doing that, Apple introduced something called Fairplay,
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,
you can actually expect the same experience across the different devices.
I imagine the WarpCast team is going through that same experience, too, because Apple is very
opinionated about what is displayed and what is pulled back into the client over the internet.
And I was digging in already to how the videos were working. And
I noticed this very particular about Apple and the Apple strategy of streaming.
There's a lot going on under the hood for what seemed like
simple features sometimes from a user perspective.
All right. Well, if 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, this is the first you hear about
Farcaster frames, etc. 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 experiences as a developer and curiosity as
a user. If there's nothing else, let's let's call for the thanks. Thanks, everybody. Thanks for
having me. All right. See you on Farcaster.