You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pages/lessons/projects/2.mdx
+82-16Lines changed: 82 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,13 +29,18 @@ Welcome to this lesson on creating a series of NFTs using Solidity smart contrac
29
29
30
30
We have some checkpoint questions for you throughout the lesson for testing either your previous knowledge, predicting next steps in the lesson, or letting you see for yourself how well you're absorbing the new content. Needless to say, there's a quiz at the end, so make sure you're checking out all the side-drawers for a deeper dive of the new concepts. To complete the lesson, expect somewhere between two and six hours depending on your previous experience and the need to learn new ideas. Let's make developing enjoyable, so take care of your well-being - we have a pomodoro timer ⌛ for you in the menu header to let you ensure you’re taking regular breaks, and please *do* go outside and 'touch some grass'😊. Nature is the source of our well-being.
31
31
32
+
PART 1 INTRO
32
33
## What are we buidling?
33
34
34
35
In this project we will build a basic NFT smart contract, that will serve us as
35
36
the backbone or foundation for almost any future NFT project.
36
37
37
-
<SideDrawerbuttonText="What do you already know about NFTs?"title="Build on your previous knowledge">
38
-
<Questionquestion="question-1" />
38
+
<SideDrawerbuttonText="Previous knowledge + prediction for parts 1 and 2"title="Build on your previous knowledge">
39
+
<Questionquestion="lesson-2/1-intro/Q1" />
40
+
<Questionquestion="lesson-2/1-intro/Q2" />
41
+
<Questionquestion="lesson-2/1-intro/Q3" />
42
+
<Questionquestion="lesson-2/1-intro/Q4" />
43
+
<Questionquestion="lesson-2/1-intro/Q5" />
39
44
</SideDrawer>
40
45
<br/>
41
46
@@ -74,6 +79,7 @@ By the end of this lesson we are going to learn a lot of things. A simple breakd
74
79
-*Mint*, i.e. create our very own NFT
75
80
- See our NFT in a public marketplace
76
81
82
+
PART 2 TOOLS/ENVIRONMENT
77
83
## Set up your environment
78
84
79
85
Like the pros. For that we are going to set up our working environment in our
@@ -223,12 +229,16 @@ widely used and fully tested and audited.
223
229
</SideDrawer>
224
230
<br/>
225
231
226
-
Just before you go .....
227
-
<SideDrawerbuttonText="What's your opinion?"title="Coding is cool, but we want our contracts water tight">
228
-
<Questionquestion="question-2"/>
232
+
<SideDrawerbuttonText="Assessment of part 1 and 2 and prediction of 3"title="Assessment of part 1 and 2 and prediction of 3">
With our project folder ready, we can now fire up our Code Editor.
@@ -275,12 +285,12 @@ delegates to transfer them, etc).
275
285
</SideDrawer>
276
286
277
287
All of it is pretty much for our project, but luckily OpenZeppelin has developed
278
-
a lot of contracts that implement these standards and more, they are widely
279
-
used and audited and, the thing we love about them, they are open-source and we
288
+
a lot of contracts that implement these standards and more. They are widely
289
+
used and audited, and the thing we love about them, they are open-source and we
280
290
can use them to leverage our learning process. With that in our heads, we are
281
291
going to use them inside our contract.
282
292
283
-
## Standing in the shoulder of giants
293
+
## Standing on the shoulder of giants
284
294
285
295
For this we are going to ‘inherit’ (think of _using the properties of_ or
286
296
_extending_ for now) the ERC721 contract from OpenZeppelin. In the same way you
@@ -347,6 +357,18 @@ We made our totalSupply variable private and it will store exactly how many NFTs
347
357
have been minted so far. In the next step we will use this variable to identify
348
358
each new NFT that’s created.
349
359
360
+
361
+
<SideDrawerbuttonText="Assessment of part 3 and prediction of 4"title="Assessment of part 3 and prediction of 4">
362
+
<Questionquestion="lesson-2/3-sol-erc/Q1" />
363
+
<Questionquestion="lesson-2/3-sol-erc/Q2" />
364
+
<Questionquestion="lesson-2/3-sol-erc/Q3" />
365
+
<Questionquestion="lesson-2/3-sol-erc/Q4" />
366
+
<Questionquestion="lesson-2/3-sol-erc/Q5" />
367
+
</SideDrawer>
368
+
<br/>
369
+
370
+
PART 4. NFT IDENTITY
371
+
350
372
## Mint… Feels Good
351
373
352
374
Once we have a way to identify our NFTs, we only need a way to create them.
@@ -474,15 +496,25 @@ experience.
474
496
We have most of our smart contract ready, so we are going to focus on the media
475
497
that we want on our NFTs.
476
498
477
-
We propose a "Choose your own adventure" for this part of the project:
499
+
We propose a *choose your own adventure* for this part of the project:
478
500
479
501
- If you want to go quickly into deploying the contract, you can use the images
480
502
and files that we prepared, and move on to the next section.
481
503
482
-
- If you want to create your own images and have an NFT of your own, you'll have
483
-
to take the winding road and learn a little about the standard used to identify NFTs
504
+
- If you want to create your own images and have an NFT of your own, why not take the winding road and learn a little about the standard used to identify NFTs
484
505
and a solution to store files in a decentralized way.
485
506
507
+
<SideDrawerbuttonText="Assessment of part 4 and prediction of 6"title="Assessment of part 4 and prediction of 6">
508
+
<Questionquestion="lesson-2/4-nft-id/Q1" />
509
+
<Questionquestion="lesson-2/4-nft-id/Q2" />
510
+
<Questionquestion="lesson-2/4-nft-id/Q3" />
511
+
<Questionquestion="lesson-2/4-nft-id/Q4" />
512
+
<Questionquestion="lesson-2/4-nft-id/Q5" />
513
+
</SideDrawer>
514
+
<br/>
515
+
516
+
PART 5 JSON/IPFS (SEPARATE SIDE DRAWER QUIZ)
517
+
486
518
<SideDrawerbuttonText="Longer Path (learn about JSON and IPFS)">
487
519
## JSON
488
520
@@ -612,14 +644,26 @@ an IPFS service will surely help you get ahead in your learning.
612
644
613
645
Have your json files folder IPFS link saved (the full link, that links to all
614
646
the files), for we will use it in our next step.
647
+
<SideDrawerbuttonText="Assessment of part 5 and prediction of 6"title="Assessment of part 5 and prediction of 6">
Ok. We are ready, let's deploy to the Goerli testnet!
855
921
856
922
Now we need to run our deploy.js script and the deployment is going to cost us
@@ -892,7 +958,7 @@ Wow, you have created your own NFT collection from scratch. What a superstar! Yo
892
958
But first, we want you to go and 'touch some grass'. So why don't you scroll to the top and set the pomodoro timer, and when you come back after your well earned rest, take the quiz. Breathe and enjoy.
893
959
894
960
<br/>
895
-
<Quizquiz="quiz-lesson-2" />
961
+
<Quizquiz="lesson-2-quiz" />
896
962
<br/>
897
963
898
964
Congratulations on your results. You're now a supreme open-sourcerer! See you in the next lesson, where you will be adding to your knowledge of creating ERC721s, by creating *tiered NFTs*. See you there....
0 commit comments