---
# System prepended metadata

title: Solidity Dark Arts
tags: [ideas]

---

---
tags: ideas
---

# Solidity Dark Arts

## Background
The Ethereum community needs more Solidity Devs! Raid Guild contains significant skill in Solidity and we should begin bootstrapping program that upskills people interested in Solidity. We're in a unique position to offer such a program because we have received and observed a lot of unmet demand for solidity work. We can therefore upskill people via lectures and apprenticeships, and ideally culminate the program with apprentices responding to an audit and shipping an audited project.

## Scaffolding the Program
Initially, we'll test lecture material via "brown bag" lectures, which are basically informal opportunities for other interested Guild Members to access knowledge and experience in Solidity that not already easy to digest. the goal of these lectures is twofold: 
1. To test the value and accessibility of various solidity topics that we might include in our course
2. Begin to upskill at least a few Guild Members so we have more redundance in knowledge and eventually more teachers available. They'll also probably more patient about their upskilling progress as we shape and refine the course, and because they're established members of the community, will be empowered to share candid feedback about the lectures

After we have those members comfortable with some working knowledge of solidity development they can begin to take on Solidity raids, which should be closely advised, or ideally led by established Wizards. One of the benefits of Solidity is that you don't need to write a ton of code to have a useful product, so review load is relatively low if the code is well-tested, and _testing is an absolutely critical component of being a competent Solidity developer._

Once they've shipped some solidity Raids and met at least a few of the below standards, we can induct them as fellow Wizards and begin to make this process available to outside devs who are interested in learning Solidity and joining the Guild

### Program TODOS
- Determine some subset of useful lectures for the curriculum
- Make an Effort for Wizards to have enough availability to lead raids for apprentices. 
    - Established Wizards shouldn't have to actually do any development if they don't want to, but rather should be available for design and code reviews with apprentices as needed. They also of course have ultimate signoff on a contract before the Raid wraps up
- determine what minimum tribute new apprentices owe back to the guild
    - $X in Raid Spoils to the Guild Bank?
    - ideally helping to teach?


## Standards
- Be able to write tests in Solidity/JS for smart contracts in one or more test environments
- Capable of configuring a Solidiy Coverage tool in some form (all respectable smart contract projects have a coverage ticker on their README)
- capable of deploying a contract
- can verify a multi-file contract on etherscan
- Knows proxies / multi-file smart contract architecture and how it works together
    - OpenZeppelin
    - Aragon

## Tools
Tools we know of. List them here and provide links
- [Hardhat](https://hardhat.org/)
- [Waffle](https://ethereum-waffle.readthedocs.io/en/latest/)
- [Remix](https://remix.ethereum.org)
- Truffle
- Ganache/Ganache-cli

Security: 
- MythX
- Slither
- Manticore

ERCs:
- marketplaces (basically have their own specs)
- ERC20/721/1155
- current EIP development
- delegate call/proxy pattern

EVM:
    - [Ethervm.io](https://www.ethervm.io/) @topocount 's "goto" reference for opcodes and also a great meta-resource for other low-level tools and references

## Talks
What do members want to learn in the school of Solidity Dark arts?
- Architectural Overview of Ethereum and Smart Contracts
- Hardhat: The solidity environment to rule them all
- Level 0 start repo and deploy
- Tooling and dev environment
- Common attack vectors [SWCs](https://swcregistry.io/)
- ABI encoding/decoding
- Internal Transactions
- Security Audit Basics: Static Analysis w/ MythX and Slither 
- Flash Loans
- Legal Engineering Smart Contracts
- Intro to DeFi Protocols: Aave, Compound, Balancer Labs...

## Resources to Level Up

### Free
- [Julien Klepath YouTube](https://www.youtube.com/watch?v=LOIESNMRTVU)
- [ethernaut](https://ethernaut.openzeppelin.com/)
- [Awesome-Solidity Resources](https://github.com/bkrem/awesome-solidity)
- [CryptoZombies](https://cryptozombies.io/)
- [Austin Griffith YouTube](https://www.youtube.com/channel/UC_HI2i2peo1A-STdG22GFsA)
- [EtherVM.io](https://www.ethervm.io/) Detailed EVM opcode reference, with links to a lot of other super-useful stuff.

### Paid
- [Consensys Academy Blockchain Developer Bootcamp](https://learn.consensys.net/)
- [Julien Klepatch "Eat the Blocks Pro"](https://eattheblockspro.teachable.com/)
- Mastering Ethereum: A Book more on how Ethereum works architecturally
