Loading video player...
[Music]
All right. What's up? I'm Austin
Griffith. Uh, like Pascal said, I work
for the uh I work for Ethereum at the
EF. My goal here is teaching folks how
to build on Ethereum, and we're going to
speedrun through building with the best
tool out there, Scaffold. Uh if you want
to get started, there's lots of material
ethereum.org. It's a great resource.
If you if you have a uh a university, go
join us at uh ethereum on tour. It's
tour.ethereum.org.
Uh if you are a developer getting
started and you know how to build some
things, but you're like, "What do I
build?" You need to go build a whole
bunch of things. Go to
speedrunthereum.com
and get started building. If you uh want
to know, want to just build some things,
that's what you got to do. That's what
we're going to do here with Scaffold
ETH. So, here we go. We're going to get
started with Scaffold ETH uh right away.
You can ask questions in the chat. Let
me see if I can even find the chat. Oh,
yeah. I got it. I got it here. Here we
go. Feel free to drop questions in the
chat. I'm going to drop scaffold.io in
the chat. This is what we're going to
use. We're going to use a tool. We're
going to try to build something uh in 30
minutes here and uh hopefully deploy
something to production. So, uh let's
get started. So, Scaffold ETH uses MPX
create ETH latest. We're going to paste
that in and we're going to create uh I
don't know. Let's let's see what is
this. ETH online
2025.
Yeah, there we go. Let's let's create
this. So, uh here's your first kind of
choose your own adventure, right? You
have either hard hat or foundry. We we
use either one of these. Uh whichever
one you like the best. Um if you're
using either one of these, it's going to
be all the same commands within Scaffold
ETH. So you'll do yarn deploy and it
will deploy whether you're using hard
hat or you're using foundry. Um I think
a lot of the cracked engineers like to
use foundry because you're writing your
tests in solidity and it's a little bit
faster. Uh I think there's a lot of
older projects that are using hard hat
and also um it's I don't know maybe a
little friendlier for deploying. I don't
know some some people like to use hard
hat still. We have both. You'll find a
lot of things like this in the ecosystem
where there's multiple options and that
creates uh diversity and uh it works
great for a decentralized ecosystem. My
WETH node over here died the other day
and if we were only using just you know
Ethereum would have been in a lot of
trouble but thankfully we have GE and
other uh consensus and execution layer
clients and a strong diversity leads to
a stronger ecosystem. Okay, so scaffold
ETH starts out with this one command and
uh you CD into your build and you're
going to need to fire up a few things.
You'll run a chain which uh is Anvil or
the other one. Basically, you get a
local host uh blockchain and it has a
bunch of addresses that allow you to uh
you know send Ether around, do whatever
you want. It's just like a little copy
of Ethereum. And then you can yarn
deploy and that's going to deploy a uh
placeholder smart contract. And we'll
also need to start up a new window for
yarn start which is our front end. And
there we go. That's the whole setup.
That's how you get started. You have
your chain, you have your front end, and
then you can kind of deploy over here uh
in this terminal. And we'll come back
here and we'll deploy a bunch of things
uh in this terminal. But feel free to
ask questions in the chat if you're if
you're joining along. We're going to let
scaffold ETH load up here. And we're
going to use cursor today. We're we're
using a lot of AI, right? So, I'm going
to open up cursor. And that's going to
be over here. Let's see. How do I shrink
this? There we go. I'm going to shrink
this and put it over here. I don't know
if it's even useful. And scaffold comes
up. This is what scaffold looks like.
This is your front end. You've got um
burner wallets and a faucet. And you got
you have this debug contracts tab. And
this is where you'll probably spend a
lot of time at first. Uh hitting that.
Let me see if I can get some light here.
Let's go. Let's get some Which button is
it I'm hitting. Oh, there we go. Really
bright. Okay. So, uh let's see. We've
got our debug contracts page. This is
where we can poke at our smart contract
and scaffold the ETH foundry contracts.
Let's get in here and look at our
starter contract. So, scaffold comes
with a starter contract. Uh in this
case, it's kind of a greeter contract.
You can see here there's a set greeting
function and it updates some string
storage, right? And so if we go over
here and look at it, here is kind of our
interface where we can interact with
that contract. And we can see we could
set the greeting to hello world. So this
is going to fail. And when I hit this,
it's going to say, hey, you don't have
any gas. Oh yeah, I've got to go to the
faucet and grab some gas. Right? You'll
also notice that as I make this
transaction, there's no pop-ups for
chain ID or moving me over to the right
network or anything like that. Uh, we
don't have to sign any transactions
because we're going to use burner
wallets. When I hit send here, it just
makes the transaction. You'll notice
there's a nice little counter. Watch. I
can make that counter click, click,
click, click, click, and go. So, this is
really nice for testing when you're on
local host. You can just hit buttons and
interface with your smart contract. Poke
at it, get it to do the things you want
it to do. I always like to, let's see,
we've got this total counter here. I
always like to make a new function
called like count by three or something
like that. And no, not return three.
What we want it to do is do total
counter plus equals three. something
like that where every time you run this
function, it's going to increment your
total count by three. Uh, it's not
liking that. Let's let's ship it. See
what it says. If it doesn't deploy,
we'll we'll let uh AI fix it. So, let's
redeploy our contract.
And we're going to add a reset there to
make sure we force a new contract out
there. Oh, yeah. It's not letting me do
that. Uh oh, we don't want to return
anything. Needs to not be pure. There we
go. It just added some extra things in
there. That's why. Okay, here we go.
Let's redeploy our contract. So, this
lets you kind of tinker around. It lets
you quickly tinker with Solidity, deploy
a smart contract, and then interface
with that smart contract. We we can see
that old address, now we have a new
address. It kind of hot reloads, and now
we have this new count by three button,
right? And when I click that, there we
go. Our counter increments by threes for
some reason, right? Now you can imagine
we you know make this payable
and we maybe come up with some uh UN 256
public
price and set it to you know 0.001 001
ether. And then maybe we require that
they pay the price. And then maybe we do
something really cool where we say price
equals
price uh times 104
divided by 100. Right? You kind of have
to do this numerator denominator thing
because you can't use decimals. Uh EVM
doesn't do floatingoint math. You learn
all these things as you start tinkering
with solidity. But now we have some
count by three function that you have to
pay to use and there's some price and
that price will go up on a price curve.
Just kind of randomly tinkering with
solidity. We're playing around here. Now
we have to pay money, right? We have to
pay this much which also is 0.001 ether.
And you have to take that times 10 to
the 18. And you'll notice that as we hit
this uh our price goes up. If I try to
pay that again, it's going to fail. So,
we have to pay, you know, it it's going
up by 4% each time on a nice little
price curve. And we can see that price
going up. And also something interesting
is happening here. Our contract is
collecting money, right? There's money
loading up in this contract. You're
literally programming money. So, this is
uh how you get started with Scaffold
ETH. Go to scaffold.io, run that
command. You'll have to bring up your
local blockchain, your front end, and
then your yarn deploying all all you
want here with with any changes. You've
got burner wallets and smart contract uh
kind of hot reload adapting to your
contract. As you add new things, this
debug page changes. Then eventually you
move over to this kind of frontend area
here and you kind of edit out your front
end to talk to your smart contracts.
Maybe you're going to talk to an
existing smart contract. You add them
into like your external contracts in in
scaffold ETH and then you could maybe
like I don't know have something that
like puts money into unis swap or
something with a button push here. All
of that is good for tinkering and
getting started. Uh what I want to do
today I think the title of the talk is
the best tool I should show the docs
real quick. Um the best tool for
building apps on Ethereum uh is scaffold
ETH. It's great for building apps
quickly. There's a video here that
watches me. I think I build a whole app
in eight minutes. Very similar to what
I'm doing here. Um, if you want to
interact with your, we were talking
about external contracts, you could go
to the docs, right, and and find this.
Let's let's paste the docs into the chat
just so folks have it. Boom, there it
is. Uh, if you're interacting with your
smart contracts, though, you're going to
use these two important hooks. This is
the hook that you would use to read from
your contract. This is the hook you
would use to write to your contract. And
there's nice little examples here you
can copy paste into your code and get
started. So that's how you would do it
the manual way. Today we're talking
about uh the best tool for oneshotting
apps. So we're going to use uh Claude
and Cursor and we're going to try to uh
oneshot some kind of an app. Uh I've
been uh a lot of times on the tour. I
think I already shilled this, but let me
shill it one more time just because
we're shilling. On the tour, I do a lot
of uh where uh talks where we build a
voting app and we show how you can build
an app where people can vote and I show
a centralized example and then I rug the
simpleized example because it's uh it's
centralized. I can rug it and I can
change the vote and I can censor it. And
so then we build a a smart contract
version that you can't rug which is kind
of fun. Uh but uh let's build something
interesting here. I was thinking about
FOMO 3D. If anybody uh remembers FOMO
3D, it was this app that you would uh
you had to like keep pushing the button
and if you the last person to push the
button when the time ran out get paid
got paid all the money in the contract.
And that was such a funny uh mechanism.
It was basically a bounty to break the
the chain. I feel like we should try to
oneshot something like that. So uh
here's what we have. We have uh scaffold
ETH up. It has uh our smart contract
here, but there's also a cursor rules
file. So, it knows how to make the front
end. It knows how to make the back end.
Uh we're not gonna let's let's not even
mess with our contract at all. We're
going to start with like a complete
blank thing. No context, not talking to
anything, just the cursor rules. I'm
just going to try to oneshot into
scaffold eth and see if it builds it. I
don't know if it will. Let's see what
happens. Um, but let's build an app like
FOMO 3D
where there is a single big button and a
countdown.
So after it deploys, let's see,
the counter starts counting down.
for let's see from like five minutes or
something like that, right? Well, it's
not it's going to be hard. We're we're
going to hardly have any time to test
this if we put it out there, but uh
let's say 2 minutes.
Uh if it gets to the end, anyone can run
a function
that pays
all the money in the contract to the
last person who hit the button, right?
So,
uh, so when you click the button, this
is a terrible description.
I hope I can figure out. Click the
button. Uh, the time,
uh, adds two minutes and keeps track of
the last person to click the button.
Right? That's that's the whole smart
contract. The front end should just be a
button and a countdown.
Something like that. Let's see what
happens. We're using Claude and cursor
here. Uh let's see if it's able to write
our smart contract. Yes, FOMO 3D. So,
this is FOMO 3D in 2025. Uh you know, we
don't have millions of hours spent
pouring over the Solidity, making sure
it's perfect. We probably should and AI
may not be at the point where you should
be writing smart contracts with it yet,
but I think uh we're going to try it
today. Maybe it will have a giant bug in
it. Uh if we have time, I'll put it out
on a public network just to tinker with
it, but let's see where we go. Okay, so
it looks like it's already writing a
contract for us. Let's go look at it and
see how it looks. There is Yeah, so
there's the last clicker. There's the
time increase. There's the how much it
costs. That's kind of expensive. Maybe
we should make it a little cheaper. Uh
let's see. So, uh when we deploy it, it
will have it will start at 2 minutes.
When you click the button, it's going to
probably add the time increase to to the
game end time.
We're keeping track of total clicks for
some reason. That's going to cost money.
We probably should put this on an L2,
not uh Ethereum mainet.
Uh and then you get to claim your prize.
There's time remaining. Get pot size.
Let's look at claim prize. Let's look at
the require statements, right? We're
making sure the game hasn't ended yet.
We're making sure it's after the time.
The last clicker isn't the zero address.
Then it sets it to true.
Gets the prize money. How does it send
it? I get out of here. And does this,
right? I think you could grief this by
having uh this be a smart contract with
uh a
a receive function that does some extra
execution. So there's a lot of ways to
grief this. But here we go. It looks
like it made FOMO 3D for us. And when we
click, hopefully we see this time uh go
forward. I don't see the time counting.
Let's see what's going on here.
Okay, I feel like the timer is not
working quite right. Maybe it's still
working on something.
Cuz as we click this, the time should
click up by Oh, wait. We need to deploy
our contract. Yeah, yeah, yeah. Let's
Let's deploy. Oh, not reset one.
Uh, compiling. Compiling. No changes
found. Let's yarn deploy reset. Let's
make sure we get our contract deployed.
All right. And then we could go look at
it in the debug contract page. It's
still loading our front end up here. We
got to wait for this to come in and
we'll see if we made FOMO 3D. Yeah,
there we go. So, that's the whole thing.
There's just a clickable thing. You pay
some cost. Let's actually lower that
cost, right? Let's put it to 0.001.
Uh, which is still
what is that like 40 cents? Something
like that. Let's Let's go with that.
Let's go with that. Let's yarn deploy
the new contract. Make sure we get a new
contract here.
Make sure the price goes up a little
bit. Or goes down a little bit. There we
go. Okay. Here we go. Let's look at it.
So, here is everything. If I click this,
I don't see the price going or the time
going up. So, you may So, we didn't
oneshot it. We failed. We failed the
oneshot uh thing here. Uh let's see the
timer.
Wait, wait, wait. Let's go check and see
if there's a time remaining.
Let's let's add that in, right? Uh
should be a time remaining
function that tells Well, yeah, it knows
what that is.
and the front end. If I click the button
three times.
Let's see if that works. Because what
should happen when you click the button
is it should increase the time. Ah, see.
Yeah, there's not. It should actually be
game ends plus it should be this right
here. Oh, no, not that. It should be
game end time plus time increase.
Not. Yeah. Yeah. Hold on.
Yeah, this is a fail on the oneshot. I
think maybe I didn't explain it very
good very well, but let's see. We want
it to be something like this where it's
not the end. It actually like increases
the time way out. If someone clicks it
three times, it should increase the time
way out. But maybe not. Maybe that's not
even how FOMO 3D works either.
Let's just see. Let's see what it does
here. Terrible oneshot. Okay, we got we
have 10 minutes left though. We need to
put this out into production so we can
play with it. Uh just showing that it
doesn't take long here. You're you're
kind of prompting your uh you know
nudging it along. Sometimes if it
doesn't one-shot it perfectly. Uh let's
make sure it's still doing some frontend
stuff. I don't want it to deploy. I want
to do the deployment myself over here.
Let's see. Let's make sure we get a new
contract here. Uh oh. Uh oh. What was
that?
Oh. Oh, this guy was doing a deployment
at the same time I was doing a
deployment. So, we got some nons errors
there. There we go. Okay. Fresh
contract. There we go. Looks good. Uh,
time is counting down. Oh, weird. Look
at that. If I hit reload, it always
restarts to There's There's definitely a
front-end bug. Really? Oh, wait, wait,
wait. I mean, that looks good. Three
minutes and 40. Okay, no, it's actually
working.
>> If I wait a little bit and hit reload,
I'm getting a fresh number. If I click
this, it's going up. Okay, so now we
need to test real quick if like we can
get the money out of it when uh the time
Let's just set it at 0.1.
Uh, is there a button to get the money
out
when the time runs out?
So, as you're building things, you're
programming money, you need to think a
lot about incentives. We could set this
up. So, I mean, the person who gets the
money is going to be incentivized to
push the button, but whatever you build,
whenever you need an automated
mechanism, you need to be thinking about
incentives and build those incentives
into your smart contract. So someone out
there, whoever can click the button to
roll your logs or uh you know increment
your system, move it into a different
state, but they have to be uh
incentivized to do so. And you have to
be thinking about incentives as you're
programming these mechanisms. Okay, here
we go. Uh let's see. I turned it down to
one minute. And let's deploy a fresh
one. And let's actually we should do
like 30 seconds. Let's let's do like 20
seconds. We don't have time here. Let's
deploy another one where it will start
with 20 seconds. I'll click the button.
It'll put it out to 40 seconds. Uh the
money will be locked in there and then
hopefully it will run out of time and
we'll be able to sweep the money out and
prove that it works. All Oh yeah, there
is a nice claim prize button there. Very
nice. It kind of flashes. That's pretty
ugly. If we were building this forever,
we would want to make that look nicer.
Okay.
There we go. So now we just have to sit
here and wait for 30 seconds. Let's get
started on the deployment. If we're
going to put this out on a live network,
we probably need to Let's just do
deploy-
Oh, actually, wait, wait, wait, wait. Do
we still have those console logs in
there? We don't want console logs. Uh
yeah, yeah, yeah, yeah. We want to pull
this out. We don't we don't want any
console logs. Uh this stuff, right?
We don't want to put console logs out on
mainet. That's just a bunch of trash put
on mainet. Let's make sure this still
Oh, no, no, no. Let's I don't want to do
that yet. There we go. Let's claim the
prize. Make sure this works. So, there's
0.01 in the contract. If we go look at
the debug contracts page, we see that
there's like 41 cents in there. Uh, if I
hit claim prize, oh no, it says game
still active. That's not good.
Uh, why is that? Let's see. The claim
prize
game still active. So the block
timestamp has to be greater than the
game end time.
Oh no, did I redeploy? What happened
there?
This is the worst worst oneshot in
history that usually you can just like
prompt the thing and it will build like
I do always do this with a voting app.
I've done even more complex apps than
this. I don't know why. Let's make sure.
Am I using the right model? I'm usually
using cloud 4.5 sonnet. is pretty good.
Uh something happened here though where
it thinks that the game was still going.
It's worth the extra 40 seconds to make
sure we don't put just junk out on
mainet. Uh okay. So it's that 30
seconds. If we look at the game
timestamp. So whatever this time stamp
is needs to be
less. Yeah. Hopefully we don't get game
still active here. Let's see what
happens. We might though. There might be
a bug in this code. Uh, I guess we'll
find out in just a second. Wait for this
to countdown. Wait, why is it 30
seconds? Uh,
I feel like the timer is not working.
Oh man. Let's see. Uh, and if I try to
claim the prize, it's going to say game
still active. I may need the console log
so I can figure out what's going on
here. What's wrong? Uh, I feel like
Let's go look at the code real quick.
Let's Maybe we have to do something
manually here. block timestamp
game end.
It starts at
time stamp plus increase. That's I mean
that's pretty good. That's what we want.
I feel like the front end is just
failing here. This guy here. There's
something wrong here. If I hit reload,
it's going to go back to 30 seconds.
Yeah. Uh yeah.
Oh. Oh, you know what? I know what this
is. Okay, we're on local host and
there's no transactions happening on
local host. So if I make a transaction
here, it's going to notice that the time
has passed. That's the whole problem.
Okay. Now, if I reload, it's at zero.
Okay. So there's no transactions
triggering on our local network. And so
the time stamp is always whatever the
last transaction we made. So this works.
Okay. We're good. We're ready to go.
Let's go to production. We only have
five minutes left. So what we want to do
is deploy to uh some network. I would
say which whoever let's go look at
whoever is at the top of L2 beats right
now. Uh, it was Arbitum last time I
checked. They're there. I usually go to
Arbitum or base, but let's deploy deploy
to arbitrum. Uh, let's see. Arbitum, I
think. Let's just use this dude here.
So, normally it's going to create a key
store, a key pair, and you have to put
some money into it. I think I just have
created one recently. Let's see if it
has any money left in it. If not, we may
need to load up some money.
Yep. Okay, it doesn't have any money.
Okay, let's yarn generate one then real
quick. We're going to create a generator
account. Uh we're going to generate our
own account. We're going to call this aa
uh we're going to put in a super uh
secure password. Now, if I do yarn
account,
I will get that account back and we'll
say number two there and I'll put in my
super secure password. Okay. And now we
have some money. Now we need to send
some arbitum ETH into this dude, right?
Let's open up my wallet here and let's
hit send and let's send to this dude's
address. And we want to send some
arbitum ETH, but not very much. That
should be enough. Hopefully 41 cents is
enough to deploy this smart contract.
All right, there we go. Now let's yarn
deploy
to arbitrub and let's see if our uh
let's see number two there with our
super secure password.
Please work second try.
Here we go. We're deploying our contract
live to arbitum. Wow. It can't be more
than
41 cents, can it? How much does it cost
to deploy on arbitrum?
Uh,
maybe I didn't send. I did.
Uh,
$4. No way. No way, dude.
I have no idea. Maybe there's a gas bike
right now and it costs a lot more than I
think to deploy to arbitro.
Uh, let's do a yarn account
and pick our account. And so, it's
number two there with that password.
Now, does it have some arbitrum? Yeah,
it's got plenty. Okay, let's try one
more time. Yarn deploy network arbitrum.
Select number two there.
Enter our terrible password. Please work
fourth try.
There we go. There we go. Okay, our
contract is deployed. Now, we'll need to
go to the scaffold config and we'll need
to tell it that we deployed to So, we're
not on Foundry anymore. We're on
arbitrum.
And there we go. Now our whole app is
going to reload now and it'll be on
arbitum. Actually, it's going to be so
quick I won't even be able to get the
Yeah, it's already out. Okay. So, we
need to redeploy again, but we need to
change our time back to two minutes,
right? Or maybe
we don't have time. Okay, I'm going to
I'm going to set it to five minutes. So,
uh, you pay 41 cents and it goes 5
minutes and then if you let it end,
you'll get the money back. Let's let's
deploy one more time. Hopefully this
works. We got number two there.
Super secure password. Okay. And then
hopefully
we get our contract. There we go. This
should reload.
Awesome. Okay. Okay. Then if I do yarn
IPFS,
we're going to put this front end out on
IPFS and I'll be able to copy and paste
the address into the chat and then y'all
can go to this funny website and click
this button here. Connect your wallet.
I'm going to put my first 41 cents in
here and Oh, wrong network. Bumps us
over. Click here.
All right, I'm going to put 41 cents in
and it should take the time out to Oh
no, our front end died because I'm
deploying the IPFS stuff. All right.
Oh no, build error in IPFS. Let's see.
Is this up? Let's bring this back. I may
have to push it to Verscell. It's way
cooler when you can deploy the app to
IPFS. But maybe because I'm trying to do
two things at once here, it's not
liking.
page block explorer.
Yeah. Okay. Let's go. Let's go hit the
thing. I think this is the end of the
demo. The oneshot was barely successful.
We were able to create a FOMO 3D like
app on Arbitum Live uh with not a single
prompt and one step. It looks like that
transaction did go through. Uh you can
click this and it's going to push things
forward five minutes. Uh
and once this time runs out, uh whoever
was the last person to pick it, which is
the current winner here, can come
withdraw their funds. Let's try one more
time to see if I can get this to push to
IPFS. If not, I'll have to yarn versel
and it will take a much slower time
getting uh to versel and I can paste the
uh the app out to my Twitter or
something like that. Do you need API?
You do not need an API key to deploy to
IPFS. It's actually using uh BG IPFS
which is our own uh panning service
uh right here. Yeah. So, BGIPFS is
what's used under the hood for scaffold
ETH. And uh let's see. Did our Oh, wait.
Oh, wait. I'm going to have it. It's
going. I think it was because I was
doing too many things at once there. I
was running my front end and I There we
go. There we go. Our page is live. All
right. I'm pasting it into the chat.
Someone Someone else go push the button.
You have to pay 41 cents and you're
definitely going to lose your money.
This is a terrible, terrible, terrible
app. But, uh, this is just an example of
how you can quickly build a money Lego
on Ethereum or an Ethereum L2. Uh, here
we go. I'm going to click the button one
more time. Pay another 41 cents. Uh,
here we go. And it will, you definitely
don't want to click the button when
you're already the current winner. And
it's just going to push the time back
more. So, now it's 17 minutes. sometime
17 minutes from now if no one else has
clicked this. I'll be able to get in
here and get my money out. But also, you
can uh you can go click the button too
if you want at this address. Let me let
me put it into ETH. Oh, whoa. Get out of
here. Let me put it into ETH build and I
can have a QR code so then anybody can
scan this. Let's go to ETH.Uld.
Let's go to build. I'm going to get a QR
code for the website so you can get this
long uh link out.
There we go. Okay, there's a QR code.
There's also uh that's that there's no
money in that. That's the thing where
you can just click it and it generates
them. Uh but check out that QR code. If
you want to go play my crappy FOMO 3D
clone that I built with almost a oneshot
with Claude and Cursor and Scaffold
Eath, you can just scan this QR code
here and uh wait for the time to get
down toward the end and then click the
button and then if it waits five minutes
and no one else clicks it, you can claim
the money and win 40 cents or something
there. Cool. There's the app. It's at 15
minutes now. Thank you. Uh thank you for
playing. Go use scaffoldeth at
scaffoldeth.io
and uh build something cool. Thank you.
[Music]
Austin Griffith speedruns building Ethereum apps with Scaffold-ETH: init, local chain, hot-reloading UI with burner wallets, and the Debug Contracts panel. He live-edits a starter contract (counter, payable price curve), shows front-end hooks for reads/writes, then “one-shots” a FOMO-3D-style game using Cursor/Claude: last clicker wins after a countdown. He debugs timer quirks (local block timestamp), discusses incentives, and deploys the app to Arbitrum and the front end to IPFS. Resources: ethereum.org, Tour, SpeedrunEthereum, Scaffold-ETH docs. 00:10 Intro, resources (ethereum.org, Tour, SpeedrunEthereum) 01:23 Scaffold-ETH init (create-eth, Foundry/Hardhat choices) 03:02 Run local chain, deploy, start front end 03:58 UI tour: burner wallets, faucet, Debug Contracts 04:44 Starter “greeter/counter” contract demo 06:20 Adding payable logic & price curve; hot-reload UX 08:16 Front-end hooks: useScaffoldRead / useScaffoldWrite 09:53 “One-shot” build with AI (Cursor/Claude) 10:54 FOMO-3D mechanics (button, pot, countdown) 13:29 AI-generated contract review (lastClicker, claimPrize) 15:16 Deploy & test; timer bug surfaces 18:01 Fixing logic; quick iteration 19:55 Incentive design for automation & liveness 23:13 Debugging local timestamp / tx heartbeat 23:49 Deploy to Arbitrum; wallet/key mgmt 27:17 Set 5-min round; deploy front end to IPFS 29:51 Wrap-up + live link/QR; build more “money legos” _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 💻 ETHOnline 2025 This workshop is specifically for ETHOnline 2025, a 21-day hackathon held October 10 - 31, 2025, bringing together the most skilled web3 developers, designers and product builders from all around the globe for a weekend-long adventure to advance the Ethereum ecosystem! _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ✅ Follow BuidlGuidl X: https://x.com/buidlguidl ✅ Follow ETHGlobal X: https://x.com/ETHGlobal Warpcast: https://warpcast.com/ethglobal Website: https://ethglobal.com YouTube: https://www.youtube.com/c/ETHGlobal _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Are you interested in Ethereum development and entrepreneurship?_ 👉 Sign up for the next ETHGlobal event: https://ethglobal.com/events 🎁 Get exclusive access and perks with ETHGlobal Plus! https://ethglobal.com/plus 📣 Want us to throw an event in your city? Tell us where! https://ethglobal.com/city