├── .gitbook
└── assets
│ ├── EthernautDao-Logo-future.png
│ └── solidyfing-the-future.png
├── .templates
└── basic-page.md
├── README.md
├── SUMMARY.md
├── community
└── contributing.md
├── educational-resources
├── advances-resources.md
├── intermediate-resources.md
└── resources-beginner.md
├── ethernautdao
├── i-want-to-grow-my-team-but-i-dont-have-a-mentor.md
├── i-want-to-learn
│ ├── README.md
│ ├── apply-for-mentorship.md
│ └── i-need-more-information.md
├── i-want-to-mentor
│ ├── README.md
│ └── mentor-resources-know-more.md
└── introduction.md
└── resources
├── resources.md
└── self-guided-learning.md
/.gitbook/assets/EthernautDao-Logo-future.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ethernautdao/documentation/3427f94c0b850755cc571b6bc146444c43258321/.gitbook/assets/EthernautDao-Logo-future.png
--------------------------------------------------------------------------------
/.gitbook/assets/solidyfing-the-future.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ethernautdao/documentation/3427f94c0b850755cc571b6bc146444c43258321/.gitbook/assets/solidyfing-the-future.png
--------------------------------------------------------------------------------
/.templates/basic-page.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: This is the description of the basic page
3 | ---
4 |
5 | # Basic Page Title
6 |
7 |
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: We bridge web2 developers into web3 wizards.
3 | layout: landing
4 | ---
5 |
6 | # Welcome
7 |
8 | Pick a topic below that best fits your interest.
9 |
10 | {% content-ref url="ethernautdao/i-want-to-learn/" %}
11 | [i-want-to-learn](ethernautdao/i-want-to-learn/)
12 | {% endcontent-ref %}
13 |
14 | {% content-ref url="ethernautdao/i-want-to-mentor/" %}
15 | [i-want-to-mentor](ethernautdao/i-want-to-mentor/)
16 | {% endcontent-ref %}
17 |
18 | {% content-ref url="ethernautdao/i-want-to-grow-my-team-but-i-dont-have-a-mentor.md" %}
19 | [i-want-to-grow-my-team-but-i-dont-have-a-mentor.md](ethernautdao/i-want-to-grow-my-team-but-i-dont-have-a-mentor.md)
20 | {% endcontent-ref %}
21 |
22 | {% content-ref url="ethernautdao/introduction.md" %}
23 | [introduction.md](ethernautdao/introduction.md)
24 | {% endcontent-ref %}
25 |
26 | {% content-ref url="community/contributing.md" %}
27 | [contributing.md](community/contributing.md)
28 | {% endcontent-ref %}
29 |
30 | ### Resources
31 |
--------------------------------------------------------------------------------
/SUMMARY.md:
--------------------------------------------------------------------------------
1 | # Table of contents
2 |
3 | ## EthernautDAO
4 |
5 | * [Welcome](README.md)
6 | * [📖 I want to learn](ethernautdao/i-want-to-learn/README.md)
7 | * [🙋 Apply for Mentorship](ethernautdao/i-want-to-learn/apply-for-mentorship.md)
8 | * [🤔 I need more information](ethernautdao/i-want-to-learn/i-need-more-information.md)
9 | * [🧑💻 I want to mentor](ethernautdao/i-want-to-mentor/README.md)
10 | * [🤔 Mentor resources (know more)](ethernautdao/i-want-to-mentor/mentor-resources-know-more.md)
11 | * [🤝 I want to grow my team but I don't have a mentor](ethernautdao/i-want-to-grow-my-team-but-i-dont-have-a-mentor.md)
12 | * [🧑🚀 About us](ethernautdao/introduction.md)
13 |
14 | ## Resources
15 |
16 | * [🗃 Educational Resources](resources/resources.md)
17 | * [📚 Self-learning Guide](resources/self-guided-learning.md)
18 |
19 | ## Community
20 |
21 | * [Contributing](community/contributing.md)
22 | * [Mirror Blog](https://mirror.xyz/ethernautdao.eth)
23 | * [Discord](https://discord.gg/RQ5WYDxUF3)
24 | * [Twitter](https://twitter.com/ethernautdao)
25 |
--------------------------------------------------------------------------------
/community/contributing.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: How to contribute to the Ethernaut DAO documentation
3 | ---
4 |
5 | # Contributing
6 |
7 | You want to contribute to the documentation but you don't know where to start ? You are at the right spot ! This page should give you all the necessary information to contribute efficiently to our documentation.
8 |
9 | First off, regardless of the time you have or your experience you can provide meaningful contribution to the documentation. Here are some examples depending on the time you have:
10 |
11 | * ⏲️: Add a resource, correct a typo, [deduplicate information](contributing.md#favor-links-to-repetition)
12 | * ⏲️⏲️: Rewrite a paragraph, add information to an existing page, create an issue for an improvement, propose a content template
13 | * ⏲️⏲️⏲️: Propose a new content, write an activity report, take an issue
14 |
15 | If you really have not much time but you have found a broken link, an error in the documentation or have a minor suggestion, we'd still like to hear from you. Drop us a message on our [discord](https://discord.gg/RQ5WYDxUF3)!
16 |
17 | ## Structure
18 |
19 | The documentation is structured around top-level directories that map the different [content types](contributing.md#content-types) of the documentation and create a hierarchical structure between contents. These top-level directories appear as the sections of the documentation on our Gitbook page.
20 |
21 | {% hint style="warning" %}
22 | Subdirectories to top-level directories will be seen as a content with different levels of nesting and not as subsections.
23 | {% endhint %}
24 |
25 | If you want to have multiple levels of nesting for your content (hence having multiple files), you can create subdirectories in a top-level directory with a `README.md` file at the root of this subdirectory. The README file will be the top-level content of the subdirectory.
26 |
27 | For example, if you want to have a meeting reports page with separate pages for each report you could create the following tree structure :
28 |
29 | ```
30 | ├── ethernautdao // top-level section
31 | │ └── meetings
32 | │ ├── first-meeting.md
33 | │ └── README.md
34 | ```
35 |
36 | In this case, the `README.md` would contain a list of the different meetings and at least a [description of the page](contributing.md#content-templates).
37 |
38 | There are no hard limits on the nesting of pages but you should avoid having more than 3 levels.
39 |
40 | ### Summary
41 |
42 | The `SUMMARY.md` file at the root of the page is - as its name suggests - the summary. It is automatically edited when you are using Gitbook.
43 |
44 | {% hint style="warning" %}
45 | If you are modifying content directly by making commits on the repository, make sure to edit the SUMMARY.md file in order to reflect your changes.
46 | {% endhint %}
47 |
48 | ### Naming
49 |
50 | When creating a new file or directory please follow these rules (some are automatically enforced when you use Gitbook) :
51 |
52 | * Use only lowercase letters
53 | * Do not use special characters and spaces
54 | * Use hyphens as a word separation
55 | * Use a filename as close as possible as the title of the page but if it is too long shorten it
56 |
57 | ### Content types
58 |
59 | As this documentation aims to be comprehensive it is important to organize the content well so it is easy to find the right information and easy to add information. The more the documentation grows the more this becomes important.
60 |
61 | The documentation is organized around topics that enforces the structure of the documentation. Whether you use/modify the documentation through Gitbook or directly via Git, you will find the same structure.
62 |
63 | Currently we have the following categories :
64 |
65 | * **EthernautDAO**: Content that documents the DAO activity (e.g. Improvement Proposal Reports, Pairing Reports, etc)
66 | * **Educational Resources**: Any type of external resources that can provide good information on any topics around Ethereum and Solidity development. Classified by level of knowledge.
67 |
68 | You want to provide content and no category fits? Feel free to propose a new content type by creating an issue on the GitHub repository.
69 |
70 | ## Style guide
71 |
72 | In order to have a consistent documentation we'd like you to follow the recommendations/conventions that are underlined below.
73 |
74 | #### Markdown
75 |
76 | All the documentation is written in [Markdown](http://commonmark.org/help/). You can either edit the documentation via any text editor or directly on Gitbook (an account & the correct role is needed).
77 |
78 | Regardless on how you plan to edit the documentation you should also check Gitbook's [markdown documentation](https://docs.gitbook.com/editing-content/markdown) as there are some specific syntax that could be useful (e.g. hint boxes).
79 |
80 | Embedded HTML is supported but should be avoided. If there are cases where you think it should be used, make an improvement proposal.
81 |
82 | #### Code style
83 |
84 | To ensure readability and consistency across the documentation, embedded code should also follow style convention:
85 |
86 | * Solidity: use the [official style guide](https://docs.soliditylang.org/en/latest/style-guide.html).
87 |
88 | If there are no convention for your favorite language do not hesitate to propose a documentation improvement.
89 |
90 | #### Media
91 |
92 | Adding an image can be done using the proper Markdown syntax, either using an external link or a direct reference to the path of the image. Videos files can also be added to pages as Gitbook supports [embedded content](https://docs.gitbook.com/editing-content/embeds), do not upload videos to the repository.
93 |
94 | When adding image to the documentation :
95 |
96 | 1. File must not exceed 150 KB.
97 | 2. All files must be in the`.gitbook/assets` at the root of the documentation
98 | 3. File reused across multiples sections must be in the `common`subdirectory
99 | 4. File specifically used in one section must be in the subdirectory with the same name as the section
100 | 5. Following [naming](contributing.md#naming) conventions use clear names describing the content of the media
101 |
102 | As the assets directory is at the root of the documentation, to add a link to the image the path must be relative : if you add a page in the section `activity` the image link will be`![]`(`../.gitbook/assets/filename.jpeg)`
103 |
104 | If you are using Gitbook you can directly add an image using the [insert palette](https://docs.gitbook.com/editing-content/rich-content/with-insert-palette).
105 |
106 | #### Content templates
107 |
108 | Content templates are markdown files that provides the basic structure for the different content types of the documentation. Creating a new page from a template will allow you to easily ensure that you are using the right structure for your page.
109 |
110 | All templates are located in the `templates` hidden folder.
111 |
112 | We currently provide the following templates :
113 |
114 | * **Basic Template** \[`basic-page.md`]: as the name suggests, it contains the very minimal elements that are required for a page.
115 |
116 | If there are no template for a specific content type, you can propose one by following our [improvement processes](contributing.md#process). As there are some minimal requirements for a page, make sure to use our basic template as a start.
117 |
118 | ### Writing style
119 |
120 | Even if this documentation is not a technical software documentation trying to write in a technical style that is concise, clear and objective should be what we aim for. Here are some general recommendations that you should follow when writing:
121 |
122 | * Be as clear as possible to avoid ambiguity
123 | * Use the same word for the same concept throughout a page. This can seems obvious but sometimes using what appears to be synonyms can cause ambiguity.
124 | * When using acronyms provide at least a link to a glossary or if it is the first time it appears on the page, spell it out.
125 | * A good example can help understanding a complex subject, so do not hesitate to provide some. They can take many form: schema, sample code or even a small exercise.
126 |
127 | As this documentation targets multiple level of knowledge you should always have this target in the back of your mind when you write.
128 |
129 | For example, if you write for a beginner, do not hesitate to provide comprehensive explanations even for concepts that seem obvious. Some of the readers may be well versed in computer science but may not be so knowledgeable on the Ethereum ecosystem, so keep it in mind.
130 |
131 | ## Process
132 |
133 | Ready to propose an improvement ? Depending on the type of improvement you want to make, you should follow these processes. You can propose an improvement either through Gitbook or Github, but the process is roughly the same.
134 |
135 | We can define two category of improvements :
136 |
137 | * **Small** : These changes do not necessarily require a discussion and the process is straightforward. (e.g. typo correction, paragraph improvement, adding a resource, etc)
138 | * **Big** : These changes can have an important impact on the documentation and should therefore be discussed before having to work on it. (e.g. documentation structure change, adding a new section, changing the structure of a page, propose a new process, etc.)
139 |
140 | ### Github
141 |
142 | Using this method is the most straightforward way of proposing a modification for the documentation as it does not require the creation of an account by the documentation admins. Anyone with a Github account can propose a pull request or create an issue.
143 |
144 | #### Small improvement
145 |
146 | 1. Fork the documentation repository
147 | 2. Create a new branch following the branche naming convention
148 | 3. Make the changes and commit them
149 | 4. Create a pull request on the documentation repository
150 |
151 | #### Big improvement
152 |
153 | 1. Create an issue on the documentation repository using the improvement template
154 | 2. If you want to add a proposal to your issue you can follow steps 1-3 of the small improvement and put a link to your branch in the issue body
155 | 3. If the issue is accepted you can create a pull request from a new branch or from your previously created branch
156 |
157 | Once the PR is created the code review will start and after it, the branch will be merged if it meets all the requirements.
158 |
159 | ### Gitbook
160 |
161 | Even if there are [roles](https://docs.gitbook.com/collaboration/team-management/setting-up-permissions) on Gitbook, account with writing permission can merge their modifications without any prior review. Hence, to be able to contribute via this platform you must must be part of the documentation team.
162 |
163 | If you want to join us, feel free to drop a message on the `#educational-material`channel. Note that if we'll be easier for us to consider you for a writer account if you've already contributed to the documentation via Github.
164 |
165 | #### Small improvement
166 |
167 | Except if you have doubts or want to have a discussion on these small improvements, it should be straightforward :
168 |
169 | 1. Edit the page
170 | 2. Save your draft. At this step, if you want you can always ask on of the team member to review the changes and add comments.
171 | 3. Merge
172 |
173 | The changes will be made on Gitbook and synced with Github. If there are conflicts please refer to the [documentation](https://docs.gitbook.com/collaboration/conflict-resolution).
174 |
175 | #### Big improvement
176 |
177 | Before adding or making big changes or improvements to the documentation, we recommend that you double-check and share your thoughts and ideas with the community in the `#educational-material` channel. Most likely, other community members will be happy to assist you.
178 |
179 | Further details are to be determined as we go. If you have ideas or suggestions, let us know!
180 |
181 |
182 |
183 | {% hint style="info" %}
184 | As always if you have any doubts or questions around the contribution to the documentation, do not hesitate to contact us on our discord channel `#educational-material`
185 | {% endhint %}
186 |
--------------------------------------------------------------------------------
/educational-resources/advances-resources.md:
--------------------------------------------------------------------------------
1 | # Advanced
2 |
3 |
--------------------------------------------------------------------------------
/educational-resources/intermediate-resources.md:
--------------------------------------------------------------------------------
1 | # Intermediate
2 |
3 |
--------------------------------------------------------------------------------
/educational-resources/resources-beginner.md:
--------------------------------------------------------------------------------
1 | # Beginner
2 |
3 |
--------------------------------------------------------------------------------
/ethernautdao/i-want-to-grow-my-team-but-i-dont-have-a-mentor.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: Guide for mentees in the EthernautDAO
3 | coverY: 0
4 | ---
5 |
6 | # 🤝 I want to grow my team but I don't have a mentor
7 |
8 |
9 |
10 | 💰 Mentor paid by you
11 |
12 | This is a job offer for mentors. You either have the candidates to be mentored or you need both a mentor and a mentee. We can offer mentors a payment for the hours implemented into training. \
13 | \
14 | To apply to this process please contact Dhannte on Discord [here](https://discordapp.com/users/343539565623115786/) or Twitter [here](https://twitter.com/messages/compose?recipient\_id=732723507352768513)
15 |
16 |
17 |
18 |
19 |
20 | 💎 Mentor paid by EthernautDAO
21 |
22 | This option is for public goods projects in need of a mentor and projects with small funds that plan to become profitable in the future. EthernautDAO treasury can cover the costs for the mentor in both cases.
23 |
24 | :green\_circle: Public good projects won't be charged in any way but we will appreciate mutual collaboration.
25 |
26 | :red\_circle: Future profitable projects will need to submit a fund request proposal and future EthernautDAO retribution, which is to be voted by the EthernautDAO council.
27 |
28 | To apply please contact Dhannte on Discord [here](https://discordapp.com/users/343539565623115786/) or Twitter [here](https://twitter.com/messages/compose?recipient\_id=732723507352768513)\
29 |
30 |
31 |
32 |
33 |
34 |
35 | ####
36 |
--------------------------------------------------------------------------------
/ethernautdao/i-want-to-learn/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: Guide for mentees in the EthernautDAO
3 | ---
4 |
5 | # 📖 I want to learn
6 |
7 |
8 |
9 | 🧟 CryptoZombies Game (Basic)
10 |
11 | #### Learn to Code Blockchain DApps By Building Simple Games
12 |
13 | CryptoZombies is an interactive school that teaches you all things technical about blockchains. Learn to make smart contracts in Solidity by making your own crypto-collectibles game.\
14 | \
15 | [https://cryptozombies.io/](https://cryptozombies.io/)
16 |
17 |
18 |
19 |
20 |
21 | 🧙 Austin Griffith Speedrun (Intermediate)
22 |
23 | 👩🏫 Learn how to build on Ethereum; the superpowers and the gotchas.
24 |
25 | 🎥 Watch this quick video as an [Intro to Ethereum Development](https://www.youtube.com/watch?v=MlJPjJQZtC8).
26 |
27 | Then use [🏗 Scaffold-ETH](https://github.com/scaffold-eth/scaffold-eth#-scaffold-eth) to copy/paste each Solidity concept and tinker:
28 |
29 | [global units](https://docs.soliditylang.org/en/v0.6.6/units-and-global-variables.html), [primitives](https://solidity-by-example.org/primitives/), [mappings](https://solidity-by-example.org/mapping/), [structs](https://solidity-by-example.org/structs/), [modifiers](https://solidity-by-example.org/function-modifier/), [events](https://solidity-by-example.org/events/),[inheritance](https://solidity-by-example.org/inheritance/), [sending eth](https://solidity-by-example.org/sending-ether/), and [payable](https://solidity-by-example.org/payable/)/[fallback](https://solidity-by-example.org/fallback/) functions.
30 |
31 | 🧑🚀 When you are ready to test your knowledge, speed run Ethereum:\
32 | \
33 | [https://speedrunethereum.com/](https://speedrunethereum.com/)
34 |
35 |
36 |
37 |
38 |
39 | 🧑🚀 Ethernaut Game (Advance)
40 |
41 | The Ethernaut is a Web3/Solidity based wargame inspired on [overthewire.org](https://overthewire.org/), played in the Ethereum Virtual Machine. Each level is a smart contract that needs to be 'hacked'.
42 |
43 | The game is 100% open source and all levels are contributions made by other players. Do you have an interesting idea? PRs are welcome at [github.com/OpenZeppelin/ethernaut](https://github.com/OpenZeppelin/ethernaut).
44 |
45 | Are you interested in smart contract development or security? Does securing the world’s blockchain infrastructure sound exciting to you? [**We are hiring!**](https://grnh.se/dd38880f3us)
46 |
47 | You like the game but your language is not available? [**Contribute a translation!**](https://github.com/OpenZeppelin/ethernaut/tree/master/README.md#adding-new-languages)****\
48 | ****\
49 | ****[**https://ethernaut.openzeppelin.com/**](https://ethernaut.openzeppelin.com/)****
50 |
51 |
52 |
53 | {% content-ref url="apply-for-mentorship.md" %}
54 | [apply-for-mentorship.md](apply-for-mentorship.md)
55 | {% endcontent-ref %}
56 |
57 | {% content-ref url="i-need-more-information.md" %}
58 | [i-need-more-information.md](i-need-more-information.md)
59 | {% endcontent-ref %}
60 |
61 |
--------------------------------------------------------------------------------
/ethernautdao/i-want-to-learn/apply-for-mentorship.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: Remember to apply for a mentorship you need to be a senior dev.
3 | ---
4 |
5 | # 🙋 Apply for Mentorship
6 |
7 | These mentorships are focused on a crash course of 2 months where you will have an increasing amount of hour demand. Please be aware this won't be easy if you are working on a second job, but you will thank yourself for enduring once is finished.\
8 | \
9 | We will publish active mentorships in the forum [here](https://forum.ethernautdao.io/c/mentorships/6).
10 |
--------------------------------------------------------------------------------
/ethernautdao/i-want-to-learn/i-need-more-information.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: Remember to apply for a mentorship you need to be a senior dev.
3 | ---
4 |
5 | # 🤔 I need more information
6 |
7 | As a mentee you'll be able to apply to mentorships with experienced Solidity developers in order to ramp up your skills and join the Ethereum developer ecosystem.
8 |
9 | New availabile mentorships are announced on the `#announcement` channel on our Discord.
10 |
11 | As EthernautDAO does not offer direct mentorships and is a medium between mentees and mentors, mentorship offers can be very different and suited to different candidates depending on the needs of the mentor. Read offers attentively and respond to it by following the process explained in the offer.
12 |
13 | Usually, applications consist of a response post in the discord thread with the required information. Once the mentor has enough candidates, the application process will be closed. Selected candidates will be announced on our Discord once the selection process is done.
14 |
15 | If you are selected for a mentorship (Congratulations 🎉 ) we would love to hear from you! If you can share some content produced during the pairing, especially if it can help others become better developers, mentees, etc, it would greatly add value to our documentation.
16 |
17 | If you're not selected - don't worry! - there will be other opportunities! In the meantime you can always work on your skills. Here are some ideas:
18 |
19 | * Check [our resources](../../resources/resources.md) to improve your knowledge & skills (e.g. Solidity, EVM, ...)
20 | * Enter into discussions with members of the DAO on our Discord to improve your understanding on different topics or share ideas about projects
21 | * Participate in the DAO! Jump in on our Discord and hang around. Any help is welcome!
22 |
--------------------------------------------------------------------------------
/ethernautdao/i-want-to-mentor/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: Guideline for seasoned Solidity developers interested in mentoring
3 | ---
4 |
5 | # 🧑💻 I want to mentor
6 |
7 |
8 |
9 | 👥 Mentorship for my team
10 |
11 | A developer from the team publishes a mentorship for what they are looking for. The same developer will pick candidates which applied to this mentorship and train them to be part of the team. This mentorship is focused on hiring developers once they finish the training. \
12 | \
13 | To publish a mentorship follow this link: [Mentorship template](https://forum.ethernautdao.io/c/mentorships/6) and click on "New Topic"
14 |
15 |
16 |
17 |
18 |
19 | 🌳 Mentorship for public good
20 |
21 | A developer, who wants to mentor, publishes a mentorship with the topics to be covered. The same developer will pick candidates who applied for this mentorship and train them. \
22 | \
23 | To publish a mentorship follow this link: [Mentorship template](https://forum.ethernautdao.io/c/mentorships/6) and click on "New Topic"
24 |
25 |
26 |
27 | {% content-ref url="mentor-resources-know-more.md" %}
28 | [mentor-resources-know-more.md](mentor-resources-know-more.md)
29 | {% endcontent-ref %}
30 |
--------------------------------------------------------------------------------
/ethernautdao/i-want-to-mentor/mentor-resources-know-more.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: This is a guide for those curious about how to mentor
3 | ---
4 |
5 | # 🤔 Mentor resources (know more)
6 |
7 | Below roadmap can be used as a rough guideline to plan your mentorship. The roadmap should be modified on a per-mentorship base to account for the mentees individual skills and level of knowledge.
8 |
9 | ### Roadmap
10 |
11 | * Smart Contract Dev Mentorship
12 | * Week 1 - 2: Mentee weekly demand 4hs
13 | * Week 3 - 4: Mentee weekly demand 6hs
14 | * Week 5 - 4: Mentee weekly demand 12hs
15 | * Week 6 - 8: Mentee weekly demand 20hs
16 |
17 | ### Week 1:
18 |
19 | * Set up a regular slot for the weekly call
20 | * Skills gauge to identify areas for improvement/focus
21 | * Solidity Language
22 | * EVM
23 | * Testing Smart Contracts
24 | * Hardhat
25 | * Typescript
26 | * Secure Code
27 | * Study plan with resources
28 | * Daily CTF with GitHub repo explaining solutions. Damn Vulnerable DeFi
29 |
30 | ### Week 2:
31 |
32 | Depending on the skills gauge.
33 |
34 | * Learn common tooling and become comfortable with doing the following:
35 | * Creating contracts from scratch
36 | * Deploying contracts using hardhat
37 | * Check out hardhat deploy and set up the project: [https://github.com/wighawag/hardhat-deploy](https://github.com/wighawag/hardhat-deploy)
38 | * Verifying contracts with Etherscan plugin
39 | * Testing contracts with hardhat, typescript & [ethers.js](https://dev.to/yakult/a-beginers-guide-four-ways-to-play-with-ethersjs-354a)
40 | * Creating GitHub workflows to run tests on commits and PR merges
41 |
42 | <- OR ->
43 |
44 | * Analyze common DeFi Contracts & make a personal note/blog posts etc detailing how they work
45 | * [Sushi Masterchef](https://github.com/sushiswap/sushiswap/blob/canary/contracts/MasterChef.sol)
46 | * [Masterchef V2](https://github.com/sushiswap/sushiswap/blob/canary/contracts/MasterChefV2.sol)
47 | * [Uniswap V2 Pair](https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol)
48 | * [Uniswap V2 Router02](https://github.com/Uniswap/v2-periphery/blob/master/contracts/UniswapV2Router02.sol)
49 | * [Curve Gauges](https://github.com/curvefi/curve-dao-contracts/blob/master/doc/README.md)
50 |
51 | ### Week 3 - 4:
52 |
53 | Project: Smart contract challenge
54 |
55 | ### Week 5 - 4:
56 |
57 | * Intro to the protocol/team or work idea
58 | * Analyze main apps and branches from the project
59 | * Produce dev documentation explaining how it works
60 |
61 | ### Week 6 - 8:
62 |
63 | * Working on the project. Specifics TBD and will be decided closer to the date
64 |
65 | ## Smart Contract Dev Study
66 |
67 | Below is a curated list of resources that do an excellent job of explaining topics related to smart contract development. These should provide good foundational knowledge and hopefully help you identify additional subjects you may want to look into deeper. Also, if there is anything you think should be added, please feel free to add it.
68 |
69 | **Cryptography**
70 |
71 | * Public key cryptography
72 | * Hashing functions
73 | * Digital signatures
74 | * [Mastering Ethereum - Chapter 4](https://github.com/ethereumbook/ethereumbook/blob/develop/04keys-addresses.asciidoc)
75 |
76 | **Ethereum Virtual Machine & Gas**
77 |
78 | * [Gas explained](https://ethgas.io/)
79 | * [Intro to the EVM](https://ethereum.org/en/developers/docs/evm/)
80 | * [EVM, Opcodes & Playground](https://www.evm.codes/) - Good for seeing how gas is calculated
81 | * [EVM Puzzles](https://github.com/fvictorio/evm-puzzles)
82 | * [Mastering Ethereum - Chapter 13](https://github.com/ethereumbook/ethereumbook/blob/develop/13evm.asciidoc)
83 |
84 | **Solidity**
85 |
86 | * [Official Solidity Docs](https://docs.soliditylang.org/en/latest/) - The best resource for learning solidity. Take your time studying the content.
87 | * [Solidity by example](https://solidity-by-example.org/)
88 | * [Solidity patterns](https://fravoll.github.io/solidity-patterns/)
89 |
90 | **Secure Development**
91 |
92 | * [Secureum - Security Pitfalls & Best Practices 101](https://secureum.substack.com/p/security-pitfalls-and-best-practices-101?s=r)
93 | * [Video](https://www.youtube.com/playlist?list=PLYORQHvGMg-XLdPc9Do8dWnjqtFcaDWEG)
94 | * [Secureum - Security Pitfalls & Best Practices 201](https://secureum.substack.com/p/security-pitfalls-and-best-practices-201?s=r)
95 | * [Video](https://www.youtube.com/playlist?list=PLYORQHvGMg-Urml835vJRec\_hbPJYIb33)
96 | * [Consensys Security Best Practices](https://consensys.github.io/smart-contract-best-practices/)
97 | * [Trail of Bits Security Best Practices](https://github.com/crytic/building-secure-contracts)
98 | * [Not So Smart Contracts](https://github.com/crytic/not-so-smart-contracts)
99 |
100 | **Fun Stuff**
101 |
102 | * [Ethernaut Solidity Trivia](https://github.com/ajsantander/trivias)
103 | * [Smart contract wargames & writeups](https://github.com/blockthreat/blocksec-ctfs) - Start with Ethernaut
104 |
--------------------------------------------------------------------------------
/ethernautdao/introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: Become an Ethernaut and help build the next generation of Ethereum developers.
3 | ---
4 |
5 | # 🧑🚀 About us
6 |
7 | ## Welcome to the Ether, Ethernaut.
8 |
9 | The Ethereum ecosystem continues to grow at a staggering pace. Layer 2 solutions are finally here, the Eth2 merge is well underway, and DeFi adoption continues to rise. Things are stirring up for sure! To keep up with the pace, protocols need to scale engineering capacities. In spite of the phenomenal growth, there aren’t enough qualified developers in the ecosystem for everything we need to build in the short to mid term. The issue at hand is that while there are millions of exceptionally skilled and experienced senior developers out there, senior _Solidity_ developers remain scarce.
10 |
11 | The **Ethernauts**, developers already exploring the ether, seek out to solve this imbalance and flip the supply deficiency by combining their forces and knowledge. We can rapidly transform senior developers into senior Solidity developers with the right incentives.
12 |
13 | For more detailed information, check out our [initial blog post](https://mirror.xyz/ethernautdao.eth/oGmj3vY9RyDA4gCCIx-Apw4JEjuexC-lPMKz\_JNm8zo).\
14 | \
15 | If you want to donate and get an awesome NFT in the process: [https://mint.ethernautdao.io/](https://mint.ethernautdao.io/)
16 |
--------------------------------------------------------------------------------
/resources/resources.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: >-
3 | A curated list of educational resources to get you started on your journey to
4 | become an Ethernaut
5 | ---
6 |
7 | # 🗃 Educational Resources
8 |
9 | ## Contribute
10 |
11 | The best place for discussions is our [EthernautDAO Discord server](https://discord.gg/RQ5WYDxUF3). Be welcome to post your educational resources in the #educational-material channel, too.
12 |
13 | Everyone is invited to contribute educational resources. We kindly ask to submit your contribution via a [pull-request](https://github.com/ethernautdao/documentation). An EthernautDAO community member will then curate the content and merge it accordingly.
14 |
15 | ## Categories
16 |
17 | ### 🎮 Games
18 |
19 | | | |
20 | | -------------------------------------- | ---------------------------------------------------------------------------------------------- |
21 | | **Description** | **Link** |
22 | | Ethernaut CTF | [https://ethernaut.openzeppelin.com/](https://ethernaut.openzeppelin.com) |
23 | | CryptoZombies | [https://cryptozombies.io/](https://cryptozombies.io) |
24 | | Blockchain security games & challenges | [https://github.com/blockthreat/blocksec-ctfs](https://github.com/blockthreat/blocksec-ctfs) |
25 | | Damn Vulnerable DeFi | [https://www.damnvulnerabledefi.xyz/](https://www.damnvulnerabledefi.xyz) |
26 | | Capture the Ether | [https://capturetheether.com/](https://capturetheether.com) |
27 | | Solidity Trivia | [https://github.com/ajsantander/trivias](https://github.com/ajsantander/trivias) |
28 |
29 | ### 🎓 Tutorials
30 |
31 | | | |
32 | | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
33 | | **Description** | **Link** |
34 | | Hardhat | [https://hardhat.org/tutorial/](https://hardhat.org/tutorial/) |
35 | | Let's Do Defi Guides | [https://letsdodefi.com/](https://letsdodefi.com) |
36 | | Journey to become a Blockchain Engineer | [https://github.com/spo0ds/Journey-to-become-a-Blockchain-Engineer](https://github.com/spo0ds/Journey-to-become-a-Blockchain-Engineer) |
37 |
38 | ### 📑 Articles
39 |
40 | | | |
41 | | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
42 | | **Description** | **Link** |
43 | | The Complete Guide to Full Stack Ethereum Development | [https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13](https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13) |
44 | | How to Get Into Ethereum/Crypto/Web3 as a Developer | [https://dev.to/dabit3/how-to-get-into-ethereum-crypto-web3-as-a-developer-9l6](https://dev.to/dabit3/how-to-get-into-ethereum-crypto-web3-as-a-developer-9l6) |
45 | | How to become a DeFi Developer - Kerman Kohli | [https://defiweekly.substack.com/p/how-to-become-a-defi-developer](https://defiweekly.substack.com/p/how-to-become-a-defi-developer) |
46 | | A Guide for Developers Interested in Learning Blockchain Development | [https://www.linumlabs.com/articles/a-guide-for-developers-interested-in-learning-blockchain-development](https://www.linumlabs.com/articles/a-guide-for-developers-interested-in-learning-blockchain-development) |
47 | | Taking undercollateralized loans for fun and for profit | [https://samczsun.com/taking-undercollateralized-loans-for-fun-and-for-profit/](https://samczsun.com/taking-undercollateralized-loans-for-fun-and-for-profit/) |
48 | | Resources for learning smart contract security | [https://immunefi.com/learn/](https://immunefi.com/learn/) |
49 | | Most common smart contract bugs of 2020 | [https://medium.com/solidified/most-common-smart-contract-bugs-of-2020-c1edfe9340ac](https://medium.com/solidified/most-common-smart-contract-bugs-of-2020-c1edfe9340ac) |
50 | | Deconstructing a Solidity Contract —Part I | [https://blog.openzeppelin.com/deconstructing-a-solidity-contract-part-i-introduction-832efd2d7737/](https://blog.openzeppelin.com/deconstructing-a-solidity-contract-part-i-introduction-832efd2d7737/) |
51 | | Developer Superpowers with The Graph | [https://theethernaut.substack.com/p/developer-superpowers-with-thegraph](https://theethernaut.substack.com/p/developer-superpowers-with-thegraph) |
52 | | How to write your first decentralized app - scaffold-eth Challenge 1: Staking dApp | [https://dev.to/stermi/scaffold-eth-challenge-1-staking-dapp-4ofb](https://dev.to/stermi/scaffold-eth-challenge-1-staking-dapp-4ofb) |
53 | | How to create an ERC20 Token and a Solidity Vendor Contract to sell/buy your own token | [https://dev.to/stermi/how-to-create-an-erc20-token-and-a-solidity-vendor-contract-to-sell-buy-your-own-token-4j1m](https://dev.to/stermi/how-to-create-an-erc20-token-and-a-solidity-vendor-contract-to-sell-buy-your-own-token-4j1m) |
54 | | How to deploy your first smart contract on Ethereum with Solidity and Hardhat | [https://dev.to/stermi/how-to-deploy-your-first-smart-contract-on-ethereum-with-solidity-and-hardhat-5efc](https://dev.to/stermi/how-to-deploy-your-first-smart-contract-on-ethereum-with-solidity-and-hardhat-5efc) |
55 | | Understanding Blockchain Explorers | [https://frankiefab.hashnode.dev/understanding-blockchain-explorers](https://frankiefab.hashnode.dev/understanding-blockchain-explorers) |
56 |
57 | ### ⚒️ Dev Tools
58 |
59 | | | |
60 | | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
61 | | **Description** | **Link** |
62 | | Hardhat | [https://hardhat.org/](https://hardhat.org) |
63 | | Infura | [https://infura.io/](https://infura.io) |
64 | | Alchemy | [https://www.alchemy.com/](https://www.alchemy.com) |
65 | | Tenderly - Smart Contract Monitoring and Alerting | [https://tenderly.co/](https://tenderly.co) |
66 | | Scaffold-eth - 🏗 forkable Ethereum dev stack focused on fast product iterations | [https://github.com/scaffold-eth/scaffold-eth](https://github.com/scaffold-eth/scaffold-eth) |
67 | | 🛠️ solidity-template: a starter kit for your next smart contract | [https://github.com/StErMi/solidity-template](https://github.com/StErMi/solidity-template) |
68 |
69 | ### 📜 Resources
70 |
71 | | | |
72 | | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
73 | | **Description** | **Link** |
74 | | Kernel - Development | [https://kernel.community/en/resources/development](https://kernel.community/en/resources/development) |
75 | | Kernel - Security | [https://kernel.community/en/resources/security](https://kernel.community/en/resources/security) |
76 | | Solidity Crash Course | [https://www.notion.so/Solidity-Crash-Course-Curriculum-7f61f269f1d54be5b6f92bd881fc4d74](https://www.notion.so/Solidity-Crash-Course-Curriculum-7f61f269f1d54be5b6f92bd881fc4d74) |
77 | | Build Guidl | [https://buidlguidl.com/](https://buidlguidl.com) |
78 | | ETH Foundation Developer Guide | [https://ethereum.org/en/developers/](https://ethereum.org/en/developers/) |
79 | | Learn Solidity in X and Y | [https://learnxinyminutes.com/docs/solidity/](https://learnxinyminutes.com/docs/solidity/) |
80 | | DeFi Threat Matrix | [https://github.com/manifoldfinance/defi-threat](https://github.com/manifoldfinance/defi-threat) |
81 | | Defi Developer RoadMap | [https://github.com/OffcierCia/DeFi-Developer-Road-Map](https://github.com/OffcierCia/DeFi-Developer-Road-Map) |
82 | | Various Resources by ConseSys | [https://github.com/ConsenSys/ethereum-developer-tools-list/blob/master/EcosystemResources.md](https://github.com/ConsenSys/ethereum-developer-tools-list/blob/master/EcosystemResources.md) |
83 | | Buildspace | [https://buildspace.so](https://buildspace.so) |
84 | | Rari Capital | [https://github.com/Rari-Capital/solcurity](https://github.com/Rari-Capital/solcurity) |
85 | | Web3 Security Resources | [https://www.w3bs3c.com/](https://www.w3bs3c.com/) |
86 | | Smart Contract Security | [https://docs.google.com/presentation/d/18MJpWB2aktdSPen83K6bEfdhji3BOX9Urx3qkALdie8/edit#slide=id.p](https://docs.google.com/presentation/d/18MJpWB2aktdSPen83K6bEfdhji3BOX9Urx3qkALdie8/edit#slide=id.p) |
87 | | Blockchain Development Resources | [https://github.com/frankiefab100/Blockchain-Development-Resources](https://github.com/frankiefab100/Blockchain-Development-Resources) |
88 |
89 | ### 📚 Books
90 |
91 | | | |
92 | | ------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
93 | | **Description** | **Link** |
94 | | Web3 Books Collection | [https://www.useweb3.xyz/books](https://www.useweb3.xyz/books) |
95 | | Mastering Ethereum | [https://github.com/ethereumbook/ethereumbook](https://github.com/ethereumbook/ethereumbook) |
96 | | Life After Google: The Fall of Big Data and the Rise of the Blockchain Economy | [Audible link](https://www.audible.com/pd/Life-After-Google-Audiobook/B07FCQJJQK?action\_code=ASSGB149080119000H\&share\_location=pdp) |
97 | | Token Economy Book | [https://github.com/sherminvo/TokenEconomyBook/wiki](https://github.com/sherminvo/TokenEconomyBook/wiki) |
98 |
99 | ### 📹 Videos
100 |
101 | | | |
102 | | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
103 | | **Description** | **Link** |
104 | | Extensive smart contract course by freeCodeCamp | [https://www.youtube.com/watch?v=M576WGiDBdQ](https://www.youtube.com/watch?v=M576WGiDBdQ) |
105 | | Finematics | [https://www.youtube.com/channel/UCh1ob28ceGdqohUnR7vBACA](https://www.youtube.com/channel/UCh1ob28ceGdqohUnR7vBACA) |
106 | | Defi Weekly | [https://www.youtube.com/channel/UCksmBX-Jj\_FGYX3EJahKW3Q](https://www.youtube.com/channel/UCksmBX-Jj\_FGYX3EJahKW3Q) |
107 | | Bankless | [https://www.youtube.com/c/Bankless/videos](https://www.youtube.com/c/Bankless/videos) |
108 | | Industry Talks Austin Griffith | [https://www.youtube.com/watch?v=TGlklzDmTyc](https://www.youtube.com/watch?v=TGlklzDmTyc) |
109 |
110 | ### 📣 Tweet Storms
111 |
112 | | | |
113 | | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
114 | | **Description** | **Link** |
115 | | Solidity Recommendation by Santiago Palladino | [https://docs.google.com/spreadsheets/d/1aq9y\_dygyST48JmQKd0MYJzZaH8-3eDqWbQbp5pw6Xs/edit?usp=sharing](https://docs.google.com/spreadsheets/d/1aq9y\_dygyST48JmQKd0MYJzZaH8-3eDqWbQbp5pw6Xs/edit?usp=sharing) |
116 | | Solidity Recommendation by [@StErMi](https://twitter.com/StErMi/) | [https://twitter.com/StErMi/status/1434054722965544964](https://twitter.com/StErMi/status/1434054722965544964) |
117 |
118 | ### 🌐 Substacks
119 |
120 | | | |
121 | | ----------------------------------------------------- | ------------------------------------------------------------------- |
122 | | **Description** | **Link** |
123 | | Defi Weekly Substack | [https://defiweekly.substack.com/](https://defiweekly.substack.com) |
124 | | Secureum: Perspectives on security topics in Ethereum | [https://secureum.substack.com/](https://secureum.substack.com) |
125 |
126 | ### 🧰 Fun & Useful Tools
127 |
128 | | | |
129 | | --------------------------------------------------------------------- | --------------------------------------- |
130 | | **Description** | **Link** |
131 | | A Windows 95 themed UI for interacting with Ethereum smart contracts. | [https://eth95.dev/](https://eth95.dev) |
132 |
133 | ### 💡 Tip & Tricks
134 |
135 | | | | |
136 | | --------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
137 | | **From** | **Tip/Trick** | **Description** |
138 | | Will@Linum Labs | Loading web3.js into the dev console | [Use ES6 modules from dev tools console](https://stackoverflow.com/questions/52569996/how-to-use-es6-modules-from-dev-tools-console). That should help you load web3.js. You should be able to interact with MetaMask even without loading web3.js through the window.ethereum api, I think these would be the docs for that: [MetaMask Eth-provider](https://docs.metamask.io/guide/ethereum-providerhtml#table-of-contents) |
139 | | Karmacoma | Sending Ether Cheat Sheet | [https://gist.github.com/karmacoma-eth/4f206a46dedc6da6808c1ccdef3262d0](https://gist.github.com/karmacoma-eth/4f206a46dedc6da6808c1ccdef3262d0) |
140 |
141 | ### 📃 Blogs
142 |
143 | | | |
144 | | -------------------------------------- | -------------------------------------------------------------------------------------------- |
145 | | **Description** | **Link** |
146 | | Alberto Cuesta Cañada (Yield Protocol) | [https://albertocuestacanada.medium.com/](https://albertocuestacanada.medium.com) |
147 | | | [https://hackernoon.com/u/albertocuestacanada](https://hackernoon.com/u/albertocuestacanada) |
148 |
--------------------------------------------------------------------------------
/resources/self-guided-learning.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: Self-learning Guide
3 | ---
4 |
5 | # 📚 Self-learning Guide
6 |
7 | {% hint style="warning" %}
8 | The documentation is an ever evolving work-in-progress and it's content is determined by community members like you. Everyone is welcome to contribute and help make this documentation a wonderful experience and a great educational resource for upcoming Sol
9 | {% endhint %}
10 |
11 | There are many ways you can get involved in developing in Ethereum ecosystem.
12 |
13 | * Ethereum: You can work on Ethereum itself, which involves research and development (R\&D) work at the protocol level. This, in itself, is a huge effort with different areas of work coming together to create Ethereum.
14 | * Applications: You can develop applications (like Uniswap) on top of Ethereum, which involves writing smart contract programs and a front-end to interact with those smart contracts.
15 | * Security: Smart contracts are immutable once deployed. Once a vulnerability is deployed, it cannot be fixed by updating that smart contract code. Hence, focus on secure contracts is a big part of any dapp development.
16 |
17 | Depending on your interests, you can follow one of the guides below.
18 |
19 | ## Application
20 |
21 | This will guide you through learning Solidity for writing smart contracts. It will also involve:
22 |
23 | * React: For writing front-end in Javascript.
24 | * Hardhat: A development environment based on Javascript to compile, debug and test your dapp.
25 |
26 | Since these applications don't require a trusted third-party, they are also called dapps (decentralized applications).
27 |
28 | {% hint style="info" %}
29 | Solidity, React and Hardhat is not the only way to build dapps. For example: Vyper, Vue.js and Truffle are other alternatives.
30 | {% endhint %}
31 |
32 | 1. Do the **Solidity Path** and **Advanced Solidity Path** from [Crypto Zombies](https://cryptozombies.io/en/course/).
33 | 2. Build and deploy a basic dapp: [The complete guide to full stack ethereum development](https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13).
34 | 3. Scaffold-eth is a github repository containing hundreds of example branches to demonstrate different concepts. Follow [Ethereum dev speed run](https://medium.com/@austin\_48503/%EF%B8%8Fethereum-dev-speed-run-bd72bcba6a4c) to learn some Solidity concepts and then build dapps using scaffold-eth.
35 | 4. Smart contracts need to be secure. Solve these series of challenge to hack smart contracts: [https://ethernaut.openzeppelin.com/](https://ethernaut.openzeppelin.com/). There are online resources to guide you through them if you're stuck.
36 | 5. Hackathons are a great way to find a team (or hack solo) and get hands-on experience. [EthGlobal](https://ethglobal.com/) conducts hackathons throughout the year. They have sponsors who have prizes for best applications using their products. They also have pool prizes which is distributed to all the submissions integrating their products in a meaningful way.
37 |
38 | ## Ethereum Virtual Machine (EVM)
39 |
40 | ## Security
41 |
--------------------------------------------------------------------------------