What you want? What you want? What you want? What you want? What you want? Hello, hello, welcome to another edition of Dev Hub Live.
I am your host, Joe from Dev Hub.
We got another awesome episode for you guys as well today.
Two big different guests that I am very excited to both have. So first up, curate.fun, built by a team of long-time builders here at Nier.
And we're going to get into curating the news, what that all means, what they built,
and all the different things that go into that and shipping a product.
And previous guest too, Elliot Bream, he's going to come back on.
We had a great conversation a few months back about some stuff that he has been just building in general.
And now we're here talking about that Curie.Fun.
Then the latter half of the show, the last 15 minutes or so, we're going to have Vlad
back on again to talk about the recent DevQuest and kind of get into that and do kind of a
nice look back on how this last quest went and everything like that.
There is tons of different news that has been happening in the ecosystem and in crypto in
general. So make sure that you're subscribing to our newsletter. It's out sound below. There's
tons of stuff that's always just happening and we can't get to all of it on these shows.
And so it's a great place to keep up to date with all of that. But without any further
ado, I really want to spend as much time as we can kind of dive into this,
because this is a heavy developer-focused episode.
We're going to talk about all different aspects of it.
But first and foremost, let me bring up to the stage, Elliot.
Great to have you back on again.
I'm doing pretty well this morning.
I'm good. I'm good. It's good to be back. I'm doing pretty well this morning. How are you doing?
It's actually finally nice weather where I am, so we can't tell from my background,
Every time I catch up with you, you're always working on something. And the latest thing that you've been working on here
And I'm very interested in this
from a couple of different perspectives,
but let's kind of start at a really high level.
Yeah, curate.fun, it's a launch pad for community-owned brands and automated content creation.
So if you know NearWeek in the ecosystem where you can comment on content and then they aggregate
that information and then they make a newsletter, we're essentially doing the same thing but
across other different verticals, other ecosystems, a lot of different media partners, and trying
to automate that process as well.
So, where, I guess, where did this come from for you guys to start getting into this?
It's a very specific type of product.
So I work on this with Shot. I would be co-founders with him.
And he kind of had this idea, I think,
because of all the different ecosystems and what's going on
and trying to get some insights.
Because if you can get like an overhead view,
you can kind of be ahead of the trends
and you can maybe like figure out what other ecosystems are doing better or what they're doing. And then and you can
learn from that as well as just the work that goes into managing content, which
I'm sure that you're very familiar with. If you can automate or community
curate, engage others in order to get more involved with it, like that's a
Engage others in order to get more involved with it. Like that's a big plus. Sure sure
there's this blend here of
human curation and AI and
I like I like this intersection a lot and I'm really curious about where you guys landed on some of this stuff because
I'm really curious about where you guys ended on some of this stuff because
where I feel right now personally that like AI is great for some things,
it's also not great for a lot of things.
And when it comes to like being creative or opinionated,
it's not good at all. So is that kind of where you guys land, like, you know,
where you have this mix of some human curation along with the AI piece?
Yeah, I would say that at least my focus for sure has been trying to keep that human element front and center
because definitely humans make much better content.
If we show any content later, I can show you that.
Yeah, for sure. weird. But also, one of the cool things I would say is that AI is able to analyze and it's able to
like sort and kind of like pick things out that you wouldn't otherwise be able to. And that's been
kind of a certain direction to explore. There's a lot of, you know, we've been building it for
about a month and a half now, and every single week
we kind of got something new that we kind of discovered that we could take it in, which
is just kind of interesting.
What's an example of that?
Like that's an interesting point.
Sure, like, OK, so a main motivation of building that, of building it for me personally was because I wanted
to try out something with Modular Federation,
this like kind of tech behind the scenes thing
But I really wanted to explore that because Eliza OS,
if you've ever used it, it's very popular
for doing brand personalities on Twitter especially.
It's really hard to customize.
And so because there's like all these different pieces
that it's kind of like, it's like this brain there
and you really like can't dig into it.
You're kind of stuck with what you have to do.
While during building this,
we've like kind of built out this pipeline.
And through this pipeline, there's different transformations
and distributions and while that can be used for
transforming and distributing content into various forms
through different parts of this pipeline,
you could use it for other aspects
like wanted to have a task monkey in a way.
You could submit to your own bot and it can go through this pipeline that has been established in order to do some other things.
So it's kind of stuff like that. You kind of see how you can leverage this technology in a lot of different ways. Is that, you know, as someone like yourself, when we talked about this the last time you
were on about just exploring new technologies, is this a good example where you both wanted
to explore but you actually had a product in mind so like it felt like, okay, this was
a natural fit to go the next direction?
That's always like a great fit when you have some ways to take really product-minded and is
able to know what they want and where they want to take it,
and then to be able to kind of explore with that too.
Yeah. With that in mind, let's talk a little bit about how this is built and what this is built on.
So you mentioned the module federation.
Can you just kind of explain what that is and how this is being implemented?
So the bot, it's a long running process.
It checks mentions every minute or so off of Twitter,
as well as we're opening up to other sources.
And then it goes through this transformation distribution
pipeline, which is entirely dictated by
a JSON config at the root of the project.
You can look and you can see all the feeds that are in,
as well as you can follow how the content gets picked up,
and then what happens to it,
object transformations, AI transformation,
simple transformation into all these different distributions.
So since we have this long running process, we want it to be able to pull in more plugins. In a way, there's this long running process that we kind of like, I want it to isolate in a way,
because that runtime can kind of be unchanging in a way. And you can add plugins around it,
which is exactly what Eliza does.
But with Eliza, you need to install the plugins,
and then you need to rebuild and refresh.
You'll notice this on like Obsidian
or other platforms that have plugins.
You need to install and then rebuild.
With Module Federation, we build these plugins
and we store them with this remote entry.
Essentially, all you have to do is load in
the static file that's stored somewhere, it can be versioned.
But we pull that in and then we make all the async calls
that are needed for any dependencies or resources.
So we don't need to install any dependencies in order to use a plugin.
You just have to change JSON content.
So for a product like this, where do you see, or where have you already started implementing updates where this kind of architecture makes sense for you guys?
I think it's nice because I'm able to have it on,
like, running, and if there is an issue
with any of the plugins, I can just, like,
push the update to the plugin and it updates right away.
It's also nice because if it's storing, if it's running somewhere,
it's less to bundle, you know, less to hold on to. But the real like benefits of it, I mean,
I think it's really cool. I think it's something that I really wanted to explore. I don't think
that we fully explored what it could be, which I think is when you open up like a plugin registry and you can have people
like mix and match or if you wanted to like dictate a bot by a canvas, you want to like add
lines to it and it would automatically pick that up. Or the other thing is AI generation. I still
would really like somebody to work with somebody that wants to explore how you could tell the
agent, hey, I need a plugin for this. And then it just has to write the code for that
little plugin. It will face for it. It doesn't have to worry about anything else. It can write that it can build
Deploy and then it can just edit its own config all running, you know not having to go down for any of it
Yeah, that's so that's really interesting because right part of the problem you have now is
And everything is kind of forced to be context aware
Yeah, and so you eliminate that piece of it and then to I
Guess just personally and this just might be some bias
But like I like the part there like where the AI is not required to do too much
Yes, like, you know, it's very like here's your guardrails
Like let's just drop you in here and like you can kind of go so I think that's really interesting too
yeah kind of go. So I think that's really interesting too. Totally. Yeah. Different than these like, and it's also, I think like sometimes people
don't really think about how inefficient it is to like generate all this stuff, like an
entire website or something with all this boilerplate. You know, there's like stuff
No, there's like stuff that's going on that has, you know.
that's going on that has a, you know.
For you guys, self and when, you know,
as you started to build this out,
you're working now with obviously the Twitter API
you said you're gonna expand.
Is, what is that challenge like?
And I wanna frame it as this where
we've had a lot of people come on talking about
AI data and like you know there's a million Twitter bots at this point right for you guys like you are
more on the processing side right you're not necessarily tweeting with it you're are you tweeting with it or no? We're not yet but we can and we will be. We'll be like retweeting and replying with it.
How has that been, like, well, let me actually ask this.
Are you doing this all yourself, all the processing yourself?
Or are you using now another service in there
besides like the AI part of it?
Like, are you, so you're just processing
it completely on your own? Yeah just processing a play on your own?
Yeah, it's all on your own.
It's like a pipeline of these different chase on objects
that you can watch that as it comes in on that one,
it will come out onto the next one.
So it's all happening within the app, yeah.
But you mentioned something about the Twitter API
and the challenge is working with it.
And I think anybody watching this
or anything that's familiar, definitely,
there are tons of challenges with the Twitter API
and being locked into that.
And part of a motivation with this project
is like this free the feed where you can create something
like it's almost, I've been calling it like social liquidity.
You can kind of move content across platforms
so that maybe a platform like near social or something,
or like Farcast or that might not have a certain type
of content or something, it can kind of move around it
and be distributed across it,
kind of bring it more life.
Yeah. Is for you guys again,
like so for handling this stuff and handling this incoming information and,
you know, as you start to expand,
is that where also to this
module federation kind of comes into play because you now everything can be treated with like a plugin?
Yeah, we're headed towards a self-hosted platform.
That's actually what I've been working on this week and I was really hoping to be able to have it prepared.
But essentially to be able to deploy it yourself and you would
have your own bot with your own account logins in it and then also your own dashboard.
So you don't have to be limited to the curate.fun.
You can kind of use this bot and customize it in your own way.
And for you guys, I mean, as you're bringing this in and you're trying to curate this news and everything else?
Like, is it, is the mission to, like you said, provide this, you know, data liquidity for everybody?
Or is it something where it's, for you guys, it's larger, where it becomes not just a service,
it's larger where it becomes not just a service,
but a full-on SaaS product of some sort where you're doing that.
Where do you guys see this going? I guess we'll put it that way.
Definitely. It'll be going taken after the SuperBase model where it's open source,
you can use it, you can deploy it yourself if you really want to,
you could self-host, but we'll be providing a hosted alternative where you can subscribe and
you can use our token essentially to purchase individual, your curation flows, your content
flows. Like if you want to buy a blog, if you want blogs to be created, or if you want blogs to be created or if you want podcasts to be created, you know,
Oh, so you can actually specify like the media type as well.
I mean, it's really it's limited to what plugins are created and you can, you know, you're
able to customize the prompt as you want. I've been exploring with Luis from Mint Base.
He's got this like Markdown Aim project where you can like write.
Are you familiar with it?
Yeah, I'm not sure if the whole audience is, but yes, I know.
So in the Aim project, it's essentially Markdown where you can like write out your Markdown
and then have little bits and blurbs where it does some processing or something.
So you're able to talk to an AI just through
a Markdown document pulling into all these different things.
I think that's a really cool concept for content creation templates.
If you could post and publish your Markdown and then you
could choose which ones you want. You can kind of customize it. You don't really have to...
It's as easy as reading Markdown.
But yeah, so that's the direction that we plan to be going.
Yeah, that is really interesting to do that.
Let's actually show what you guys have built so far.
And maybe we might make it a little more clear of everyone too.
Because it is really neat and I did want to talk a little bit more about like how
came about some of the architecture here as well.
Sure, you want me to show?
If you can show your screen, that'd be great. It'd be easier to walk through.
I think I'm requesting to share.
Yes, pulling up now there it is cool.
Yeah, so this is curate.fun. We have a landing page currently.
We have curated, I guess, 1,500 posts.
We have partners with 28.
31 people have curated it, and we've got 50 feeds going.
But essentially, these are our popular feeds.
And if you want to curate some content,
you can copy text that's like this.
It's this submit at curate.fun hashtag nouns,
which is the feed name that is.
And you would reply this to some Twitter content out there.
When you reply, we pick that up on our dashboard right away. So this
is like an example of a tweet. We can see, oh, it's the Dev Hub live that's happening
right now. week very nice.
They have commented to submit to their bot as well as the curate dot fun bot with hashtag near and then a curator note that they had here.
And then our bot liked it.
Pulled it into here, and now it's pending.
And I want to know what feed it was in.
So now I can go in and I can reply to it with approve.
And then we'll wait a minute for that to get picked up.
But can you explain the approval part here? So this is a little bit different than just
it's not just anyone who's blindly submitted, right? Like there is there is there that's
the other side of this curation, right? It's not just I'm tagging something, but now there's another side of this.
Yeah, so anybody can tag anything.
but there are approvers designated for each feed.
Yeah, and so these approvers,
they have to approve or reject your curation.
If an approver curates some of the curation, it's automatically approved.
But for anybody, it needs to go through that process.
So, still waiting a minute.
But we've got all our different feeds.
We're supporting really any blockchain ecosystem
And if it's not here, let's add it.
Because I think it's an important piece here, right?
Because it has something to do with being built
on the blockchain, per se.
It's just like, hey, this is a tool to bring information in.
So the content can be anything.
There's nothing that's tied back to that.
And we're starting with Web3 mostly,
but it really, yes, it can be expanded to anything.
We're talking about, like, there's one for climate.
There was one for, I did a workshop with Yonkers in New York
and we're just gonna set one up for them,
as well as there's like this rearmed Europe thing
that we've been kind of talking about,
kind of instant war news in a way, you know,
we're in a different world.
But let's see, I guess it still hasn't done it yet.
And so as that starts to come, is that where,
you know, as you guys start to say,
hey, we will have people actually host us on their own.
Like, what does that do to your architecture?
Or does that become something where it's like you're
giving them a package to install and set up
like where I guess like where's the line of like
you guys are providing the support to host it in
in the ship their version or are you just
providing like here is how you deploy an instance?
Yeah, so what I've been working on this week was
I've got some friends that work in,
what was it, site reliability at Swunk.
So I've been working with them for like a Kubernetes deploy.
So we'll do manage deploys for people.
And we're building out, we have a new Figma and everything,
a new, we're doing a whole redesign of it all.
So each one will have its own dashboard
you can configure everything about it.
That would include, yeah, your approvers,
your like submission criteria,
as well as what happens after the submissions.
Like, yeah, those like markdown template styles
describing if you want to do a blog, an article,
a newsletter, a podcast, a video,
we want to explore video generation,
also like image generation,
you know, all those different verticals.
What is your current architecture look like
in order to do what it's doing now?
Like, like where does this live? What do you have all set up for that?
Yeah, so that's been a little bit of a challenge in a way. I think early decisions kind of
You know put us in a hole for a bit
We are deployed to something called fly IO
Which has kind of been a bit of a challenge
It's got not the greatest documentation, and there's just kind of some like confusing concepts on how
they set things up. But it is a it is ultimately so this is just a whole bot here. It's got
a back end. So it's just no JS back end. It serves the frontend as well, which is this right here.
And then it uses SQLite as a database,
but we're going to be migrating away to Postgres
in the next hosted versions.
And yeah, that's kind of it.
Yeah, that's kind of it, you know?
Why the change in the database?
Why the change in the database?
Really, it's because, I mean,
you could go like two different directions.
So SQLite is ultimately a file that's stored in,
and if you want that to be shared across resources,
now it's a little bit complicated because you can't have
every resource reading or writing from the same file.
It's fine as it with what it is right now.
But when we're migrating to this hosted service,
we're moving to Postgres,
so every hosted will be sharing the same database.
And then we'll also be adding Redis
so that there can be a little bit more reliability
if a item fails, so that we can reprocess it and such.
But everything will also be using the same Redis service.
We'll just be prepending a different key.
Interesting. The concept here of a federated platform is similar, but there's a slight
difference in being fully decentralized. Why for you for what this product is.
It's really just been kind of like,
it's been a motivation of mine.
Even like that's so after boss kind of fell apart and all that type of thing,
there were issues with it.
Didn't make a whole lot of sense,
but there were concepts there that were really cool.
The fact that you could have
stored and can be used by everybody and you
update it once and it updates everywhere.
It's the same thing for modules and all that type of thing.
I had been put on to the idea during that whole,
somebody, Bucky in the ecosystem,
he had proposed Module Federation as an alternative
to the VM and that kind of like sent me down this path
The guy that invented it, Zachary Johnson,
he's really active, he always builds in public,
it's really fun to follow.
But Module Federation, I mean,
these are used by these mega apps,
like TikTok, for example.
TikTok, ByteDance has hundreds of apps,
and some of these apps all have like a shop in them.
And so rather than each one being a separate build,
you know, these apps just kind of reference
the same federated module.
And so when I think about the future of applications
versus right now how we kind of like,
sure, like with AI you can do lovable
and lovable can create your whole front end
and all that type of thing,
but there's just so much boilerplate there
and you're kind of like starting from zero every single time.
And then you don't have like the same distribution
It was part of some big thing.
And you can just like really, you can simplify things,
you make things more efficient.
Like I just think that when it comes to like an AI,
or something like that, I gotta think that federated modules
has to be the way that you really superpower it.
Because the same concept for the plugins,
being able to just create a single plugin on the fly like that's the same concept as any sort of.
UI micro front end that is on there, you can kind of customize and revamp certain parts of pages without having to do the whole thing. That's cool stuff.
For you guys as builders, not necessarily the product,
like where is AI sitting for you right now?
besides again, I talk about building a plugin stuff,
but like just for your normal workflow as a developer,
where is that set for you?
In my workflow, I actually have a tweet about this
if anybody wants to check it out,
but I like to use Klein in my, I don't have it open, but I do.
I think like AI tools are pretty awesome.
Like I don't really see, especially for having to like, there's, I've, yeah, there's just,
sometimes there's just so much stuff to like bootstrap, honestly.
Yeah, for sure. It's so nice to be able to just like click stuff to boot trap, honestly.
It's so nice to be able to just click something, say what you want,
you can talk about it, you can plan it out,
and then you can go and you can walk away.
I went and I played pickleball and I came back and I
had half of a hackathon project built and that's just awesome.
So for you and like, is that,
is it now in your workflow in all stages?
Like you said, like it's part of both your planning,
it's part of your execution.
then like following up with what it's writing?
Always, actually, there's even more interesting stuff there.
So my flow is when I'm using AI, I use this tool called Klein that's right here.
So I don't have my own editor.
I'm just using VS Code and that's what really
attracted me to it in the first place.
But in Klein, I have this memory bank.
So this has all of the context about the product,
the active context for what's being worked on right now,
progress that's being made on that.
how I prefer code to be written,
and then also tech context
for what type of stack it should be using.
It will load this into the context each time.
And then, um, you know, I'm always doing cover view before pushing or pulling.
And there's a lot of stuff sometimes, um, it doesn't, you know, it can get caught in
loops or it just like, there's some things that are just like, so dumb easy that
you'd like, why even ask it to do this?
You just be doing it yourself.
But, um, shot had put on every single repository this, um, this thing called code
rabbit, which has been pretty awesome.
If you haven't used it, But it will analyze your pull requests,
which is especially great when you're working with a lot of people on a team.
I'm sure you're familiar with feeling the pressure of having to review every pull request.
So this will go through and it will do nitpick comments.
It'll tell you all this type of thing.
And it'll review it for it.
It's definitely caught things for me
that I hadn't noticed or edge cases
that I hadn't really thought about.
And then, of course, we're doing review on top of it.
But it's pretty cool, man.
The amount of effort I feel like
that you have to put towards things,
like I have a lot more energy, I feel,
a lot more willing to be able to dive into things and do them
because it like being able to do like these
large expansive things take less effort. Like federation to me was always like because there's
so many moving parts you print you like basically need a monorepo that is like acting in certain
ways with each other. That is just like it's overwhelming overwhelming, it's daunting. Especially if you're a primary,
even if you have like a small team
or some people who are contributing,
when you're like the primary dev on a project
or you are truly the solo,
I mean, that basic stuff really,
like it's getting over that hump.
And even for myself, I run into like,
I get caught up where the up where those little things sometimes,
like I just don't want to do.
I've done them eight million times in my life.
I just don't do it again.
So how do we get over that?
I think some of those things that are really interesting.
But I love this code review.
This is actually really cool.
Do you use anything right now?
So I'm a big cursor user. I use cursor. But my flow is somewhat similar. I love it for planning.
I'm really big on like really working through different ideas. And it's like that partner, right?
Being able to like challenge me on things. And I try to challenge it,
because a lot of times it wants to just agree with me.
It's like, oh yeah, you're right.
I was like, no, I'm not right.
And so I think it's great for that.
I have found as I get into more complex stuff,
that I'm doing a lot more code
reviewing of the work it's doing.
And so that gets frustrating at times where I am like,
oh, I could have just wrote this myself at this point.
I've done so much fixing of things.
So that's like, there's a sweet spot somewhere
I think it's gonna keep getting better.
But again, for me as where I'm doing stuff solo,
I'm pretty much nights and weekends, right?
To work on my own projects.
allows me to do so much more than I would ever have done in that short window of time. So it's
it's a net positive definitely for me. Yeah and you're so right about how it just agrees with you.
Please like be critical you know. Right right Absolutely. Give me some kind of challenge.
For you guys in integrating this further and growing this product, what do you see happening
Where do you see this kind of going?
Is it just getting it to where people can use it more?
Is it actually a marketing campaign to get people to actually have more users on here?
Where do you guys trying to push those?
Yeah, it's a little bit of both.
I mean, we're trying to validate
and understand how people are using it
So like white label, label for example was a request
rather than everybody submitting to curate that fun people want to submit to their own
bots or something like that as well as the different flows like do people really want
to be commenting on Twitter or would they rather it be something like a Google extension or
copy and paste and submit or stuff like that.
So the path we're definitely going is the self-hosted service.
People can deploy and customize themselves.
But we would like to kind of dig into ecosystems and how this can be used to really like supercharge
marketing and content for them, especially for underrepresented ecosystems or ecosystems
that are finding it hard to get outside of their bubble.
If, you know, these are all individual feeds, but we really haven't explored
aggregating several feeds or how you as a user could
dictate what type of feeds you want coming to your device,
and how we could build a engine around mixing and matching
and determining where that type of stuff goes.
Is that where you feel it becomes
not just a curation thing,
but actually discovery platform too for people?
Like if you know I'm interested in being a developer,
it could serve me other content
that I normally would not look at,
like maybe something from a different crypto ecosystem,
maybe from just a different technology altogether, things like that. Totally, absolutely. We even have one for crypto jobs in here. I guess
there's no curation on it yet, but totally all those different, there's a lot of different things.
Sure, sure. And then I guess I didn't like really show much, much, but we've been building these feeds. Each one gets curated,
and then each one usually has its own website that comes into it that we've been building
pretty quickly because of the tools that are out there. So this is one, for example, from
hashtag USA. We also have stablecoinspress, have the one for chip posts that was made
And then there's so many more.
Yeah. So let's... And I know this was something we talked about last time you were on.
I see that one. It looks like it's a Web 4 one because it's on near.page.
Right. So now that's where like we're starting to combine these different things, right?
So you have this multi-federated model, you know, you have some stuff that's
coming out like that's on, you know, on near here.
Like, does this start to really change like the, for you guys, how you think
about architecture in the long-term for this to become a larger project?
Like, is it something like,
hey, we could recommend more people to go the Web4 route
because now I'm not hosting another server,
I'm not doing all the other different things,
There's, you know, there's things that are changing
with Web4, especially right now.
which is kind of getting teased and launched out, which is a different
approach to saving data on the near blockchain coming from the FastNear team.
But yeah, this concept, I mean, the Web4 concept is just so cool, and especially how every
near account can have its dedicated website.
And there's something that's just like really attractive about being able to have a near
account and clicking a button, for example, and you get your own bot as well as you get
your own site deployed immediately.
That bot is hooked up to that site.
So there's a holy grail there that I've
kind of hoping to work towards.
Yeah, but it's it's cool stuff man.
Very neat. Last last thing I want to just
kind of end on for you guys as a as a
team in building here, have you found as you are starting to grow this,
you know, again, with the AI tools,
but also like with what your mission is,
is it something that you see it being mostly in-house
or is it something that you really hope to that?
I know it's the code that bleeds open source already, right?
But is it where like it becomes a community project or for you guys,
is it actually something you can really push forward through?
Absolutely. The goal is for it to be a community project.
The plugin creation was meant so that anybody could create a plugin really easily.
We spent a lot of time on documentation for it.
So on docs.curate.fun, you can see all the plugins that are available,
how to use them, as well as how to build your own plugin.
And it doesn't have to be in this repository, it can be anywhere, you know?
And all you have to do is you just like create the plugin, you publish it,
create the plugin, you publish it, you add it to a JSON config, and then you got it. You're good.
you add it to a JSON config, and then you got it. You're good.
Yeah, so definitely. We want this to be a community project. We'll keep it open source.
I would love to see a... I would like to build a community of builders
around this technology that is right here, absolutely.
Last thing, actually, just getting to mine with that.
And is that not just this concept of news curation,
whereas you guys are exploring this new architecture
that it becomes something that you feel can be its own,
like I said, like, better word,
Like, an agent framework, maybe?
Is that what you're saying?
I mean, whether it's a, it's a framework of like, hey, if you have, want to build something
that, you know, whether it's an agent framework or some type of setup where,
you know, you want to be able to update on the fly.
Use the example of TikTok right before, like, does this become something where you say,
hey, we've kind of simplified it a little bit for smaller projects, you know, that is
vast and that becomes something that you guys are supporting out there as well.
Or the focus is like, hey, this is how we use it,
and someone could copy us, but we're not necessarily providing this setup?
So we definitely, the plugin service itself can be,
and soon, you know, I just got to find the time to do it,
but it could be published as a package that can be imported into other
projects so it's easy for them to just go ahead and add plugins to anything. It doesn't even
matter if it's this bot, it could be any bot. It really doesn't even have to be a bot.
Really interesting. That's really interesting. Well, I really appreciate you taking time and
coming on here and walking us through this.
Definitely looking forward to seeing more.
What is the best place to follow along
with the building side of it?
So curate.fun is the website.
It's also the Twitter, but what,
are you posting how you guys are building there too?
Is it just following you on your Twitter?
What's the best place for that?
Definitely need to get into a habit of posting more,
but you can follow at curate.fun for main change logs
and updates that we have,
as well as you can follow my Twitter right there,
and I will try and tweet about this a whole lot more.
Well, thank you again so much for coming back on
and look forward to see what you guys continue to build. Yeah, thanks for having me. All right, thanks Elliot, awesome. Well, thank you again so much for coming back on and look forward to see what you guys continue to build.
Yeah, thanks for having me.
Alright, thanks Elliot. Bye.
Great stuff, but let's keep moving and we'll kind of wrap up at the end with some of the stuff.
I have everyone's favorite, Vlad with me. Everyone always gets so excited when he's on because he's always bringing something interesting, something cool with what's happening. And we had another, uh, DevQuest that went well, sounds like, and
a lot of great feedback again.
Thanks for having me, Joe.
And, uh, yeah, they, I, I cannot tell how well the quest went.
Uh, it's, It's all about community. Community should have spoken.
But I've heard something. And today I will walk us through what I've heard, what I've seen, and
what was the challenge all around. So let me share the screen. Can you see it?
Amazing. So this is where it all started. So the timer is ticking and it's a quest number three.
I really love the output of NierCLRS to showcase
and to invite people into something hacky to talk about
and to take the challenge on.
So with that start, we had as usual the GitHub link
and it all started here with the agent
and the contract in the repo
and as usual 15 year as a reward.
By the way, you can always rewatch the previous quest, 002, the link is also here.
And the agents in the quest were, and the contracts were implemented in Python, were fairly
simple. But if we go to social media, we can see that there are some hints were planted even before the
quest started. And there was a combination of near-VI, meta-transactions, resource loss,
and game theory in one quest. There was no need to vote, but it was all planted.
all planted. But then it all started received by the community very well. And then we had
some, what's it called, spoilers without spoiler alerts, terrible move from Eugene. We could have followed it. And we even got into the point where it was traded,
so the participation in the quest, because it required some registration, were sold on Twitter.
From what I've heard, nobody used this offer, but it was still fun to see how
From what I've heard, nobody
the different approaches and opportunities open up with the Quest.
But back to the Quest, if we start with the... so we can see the contract is deployed to the chain.
We have quite some submissions over time.
And there was a Mirai agent where, which we, as usual, is open source and fully
visible, just right under a hundred lines of code in Python.
And what it helps you to do is to basically get registered.
And in order to get registered, you should have
provided your GitHub link and follow some steps to first register with
So you had to add this page like this on your profile.
So the AI agent could know, like this was the way to sign up and provide the information
about your wallet account on here and link it together with your GitHub account.
Then the next iteration was to register.
And in order to register with the agent, you complete your setup on the GitHub side and provide
your GitHub account, GitHub and Nier account. And then the registration would start and the registration wouldn't be triggered by the bot, by the agent. It would be,
it would provide you with something that you don't necessarily know how to
work with. So if you would start this interaction and wait for instructions.
Yeah, it should be a GitHub link. So in my case, I'm already registered, but I'll skip a couple of
steps of interaction with the agent.
At the end, it provides you with this hint.
I'm not sure if it's hint at all to someone,
but if you would go to, where is this,
near protocol docs agent, you could have asked the agent
what delegation action is
and how to deal with this.
But the TLDR is that this is part of the method transaction
So you can on Nier generate,
you can, on Nier you can sign your own transactions and send them to the blockchain and get charged for the fee for the execution of the transaction.
The fee is super small, but it could be still if you have a fresh brand new account, you may have zero on here and you still want to execute some transactions on near even in that case.
And for this purpose, to onboard users into applications without bothering them asking to pay upfront some near or buy nears upfront,
the applications may decide to implement meta transactions. Meta
transactions is the flow that allows the user to sign kind of transaction but
instead of sending that transaction to the blockchain you can send the
transaction to a so-called meta transaction relayer and that meta
transaction relayer would wrap your input
into their own transaction
and submit that transaction to the blockchain.
And once that transaction hits the blockchain,
The execution fees, the transaction fees
will be charged from the relayer,
the transaction relayer account.
And the rest of the execution will be executed as if it was executed by the user.
So if you would find some of the early transactions that were registrations,
registrations. Where was it? I guess this one. We could see, check.
We can see that the actions were delegated and they, let me see if there is a good view.
Let me see if there is a good view.
Yeah, so this user was sponsoring the transaction execution.
And the transaction itself was from nearDevHubQuest,
folder near to nearDevHubQuest folder near.
So why, how did that happen actually?
So if we would go to agent code, we will see that it created a delegate action with
the function call action to register account, some details, blah, blah, blah.
And the receiver account ID is a Quest account.
The receiver account ID is a Quest account and the signer of the Quest account is signing the delegate action.
So the delegate action was targeting the Quest account and it was signed by the Quest account. And it provided this and delegate action to the participants
and asked them to basically sponsor
Joe, are you still following or am I going to-
Yeah, so, and I think, well, a couple of things
that is sticking out to me right away is one, just
from a personal, I appreciate the way the puzzle is like, it's not direct, a sense of
like, here's this thing, I don't know what this is, I have to go learn kind of what this
is, I can go look this up. And it's like pushing people down paths to research it. I think
those who maybe do like escape rooms
might really appreciate this
where like you have very limited information
and you're just trying to,
next thing, some resume of that.
But the delegate piece for people
who are not familiar with NEAR,
I do think is really interesting.
And this is a great exposure to that
where I think you explained it very clearly of like,
again, the transaction, a great exposure to that where I think you explained it very clearly of like again the
transaction we're always we're doing is providing the funding for it right it's still the the
signature still is there we're just saying you know just like your buddy at the movies right
I'm buying your ticket right don't worry about it you know you're still getting the same ticket
but just being covered from somewhere else. Good analogy, I really love it. And indeed, it's a very powerful concept. It's still underutilized
in the near, I would say. Sure. And just a sneak peek at the wallet selector, hopefully, will change this in the near future.
The main and major user of this tech was near the org website where when the near social boss was deployed there and it was
demonstrating how the UX could look like.
I think we still are in the midst of repurposing and extracting that
functionality in a reusable component for all the developers on here.
Yeah, and after you register, that's not all because like you just sign in basically.
But yeah, and well, let me also pause a little bit and dive into the mechanics just for a bit.
So when you're dealing with transactions and delegate payload, the request itself, and then you
serialize it to borscht by bytes, basically, at the end. You hash it, and then you sign it with a key.
And that signature is your separate artifact.
So you have the action, the payload and signature and similar or transaction and
sign and signature, and then you need to construct a signed transaction.
And for, for that, the signed transaction is basically just the,
um, combination of the payload, the transaction itself, plus signature,
but you need to serialize it again with borscht. So how I do it here, I basically ended up payloads for the action itself.
And then I create like serializing the payload into bytes, adding zero byte, which is an indicator of the type of the signature that was used,
edwards curve, ed25519, and then adding up the bytes of the signature. So ideally we should have
some convenience function here, but I had to, I couldn't find one in Python tooling just yet.
So I had to manually serialize it this way here. But the good thing is that after you do this,
you have the bytes. You can always verify it with the near CLI. And that's what we will do in a bit. So I received this delegate action here.
I can copy it and I go to near CLI transaction and I can do either where I think I can do print
transaction, but I'm not sure if it actually supports method transaction, but I can go and do send method transaction. And it asks me to provide base64 signed method transaction, signed payload,
payload plus signature. So this is the, yeah, something is wrong with the terminal after I'm
pasting this long string here. But I pasted the whole thing that I copied, base64.
And now I'm acting as the relayer.
So I will be paying for the guests.
I can use my frold.near account on mainnet.
And it nicely shows me the unsigned transaction.
So it prepared the transaction based on the signed delegate action.
So signed delegate action is part of the transaction now. This is what I provided and this is what I just started
creating here locally. So I'm signing the transaction as fro.neear and it will be going to the signer of the Delegate
action first. This is the target account. And then, yeah, if I will be signing it, let me sign it, send.
Let's see. It still should kind of work. At least show me the error that the request is over.
So as we can see, my account was sender, the receiver was the quest account first,
but then the delegate action kicked in and register account function was executed
The account function was executed by the Quest account, on the Quest account,
and the error was registration didline passed. So yeah, we are done here,
but it was a nice exercise to show, I guess.
But then if we, yeah, just to wrap it up, in the contract, on the contract side, we had more to it. There was
a registration part, which we just went through and nothing crazy. But then we, what we can learn
here is that it stores the list of all the registered accounts inside the state. So just to remind you, we can always view the storage by
Yeah, this way. Actually, if you want to learn even more, you can go with teach me mode.
And you will see that the CLI made one RPC call.
View state RPC call on this account.
And we have the output and the output has a list of accounts that were registered for this
quest. So it's a simple JSON that we waiting until the deadline of the quest is over.
And then it would randomly choose the participant, the winner from all the
registered accounts, giving a bit more chances to the one who was the first calling this method.
And also there was another chance, like a booster basically, for the first three
registrations, or actually two registrations.
So that's why on the list of registered accounts, you see some of them are duplicate
why on the list of registered accounts,
you see some of them are duplicate on the list.
And yeah, that was the quest.
about around the time when it was,
As you can see, there was a tough competition with my brother and another community contributor,
trying to hit the end point exactly at the time.
Neither of those two win the quest, unfortunately, still.
So this was the, where is it?
Awoken.Near was the account that was selected by random choice.
And you cannot influence randomness on Near. was the account that was selected by random choice.
And you cannot influence randomness on Nier. It's, there is a whole article about how randomness
is a tough challenge in the context
of such open transparent systems
and in the blockchain space where you have no centralization
and you cannot trust anyone and you cannot trust them to not reveal their parts and influence
the randomness in any way.
So you can maybe near random, near protocol, random numbers.
I guess this is the, like on the conceptual level, you can find the details about it here,
but there was a randomness in blockchain protocols article that goes even in more detail about
the challenges here, considering several different vector of attacks. Yeah, that was it.
Really neat. Yeah, I think these must take a lot of time for you to do, but
they really expose you to a lot of the different concepts that I, like you said, I don't think
are being well utilized right now in a lot of stuff. And there's just so much technology
here that like, it's great to see different ways of how it can be used and hopefully it inspires people to then
build with it as well. Definitely. And on that said note, I want to say that this week I will be
passing on the Mechanic quest. It's been fairly challenging for me as well to get it prepared.
challenging for me as well to get it prepared and be online observing if it's still up and
running or I actually got something wrong with my planning. I want to take a short break,
So I want to take a short break, but we'll definitely bring something new.
Awesome. Awesome. Awesome. Well, I encourage people to do, if you didn't see last week's explanation,
definitely go watch that one as well. Because the retro and the follow-up is almost just as helpful
because you get to learn all the different pieces
and take a nice little tutorial, some of that stuff anyway.
So definitely check that out.
And we certainly look forward to
whenever the next quest comes out,
whenever or whomever it might be from.
Well, thank you for taking the time, Vlad,
to come by and show us that.
Cool, yeah, thanks. Have fun and build on the air.
Sounds great. Thanks, Vlad.
Awesome, guys. I definitely check out the whole code base too.
As Vlad was showing, there's great little stuff in there from all the different quests that have happened so far of just again like how the mechanisms work and
Maybe it does inspire you to actually try it out on something else. Maybe put into your product or whatever else a
Tomorrow there is a bonus show that we are doing here at Dev Hub live
That is a winner showcase from the one trillion agents hackathon. So definitely check that out.
That's at a 4 PM UTC tomorrow.
As always, subscribe to our newsletter.
All the updates are there.
If you need help, if you're looking to build here
on near or near AI, the docs, the links to support
are scrolling down the bottom most of the show.
Definitely check that out.
Otherwise, we will be back at our usual time
next Thursday with another great guest talking
about more development and building stuff from there.
If there's any topics you want to see, if you have a guest that you want to suggest,
My Twitter handle is on the screen and we can see what we can do to kind of line that
But until then, keep building, keep trying different stuff,
and enjoy the rest of your week. Thanks all. Bye-bye.