This repository serves as a codebase for two overlapping projects:
- Yieldgate (yieldgate.xyz) is a protocol that allows anyone to start earning and building products with programmable yield. It originated as a finalist hackathon project at ETHGlobal in Amsterdam.
- Stake for Earth (stakefor.earth) is a pool which generates compounding yield to enable climate action at 0 cost.
This project is backed by Aave, Toucan, The Graph, Polygon, Coinbase, and WalletConnect. β€οΈ
- Package-Manager:
pnpm
- Monorepo Tooling:
turborepo
- Smart Contract Development:
hardhat
- Deploy & Address-Export:
hardhat-deploy
- Typescript-Types:
typechain
- Deploy & Address-Export:
- Frontend:
next
- Contract Interactions:
wagmi
,rainbowkit
- Styling:
tailwindcss
,chakra-ui
- Styled Components:
twin.macro
,emotion
- Contract Interactions:
- Misc:
- Linting & Formatting:
eslint
,prettier
- Actions on Git Hooks:
husky
,lint-staged
- Linting & Formatting:
See ETHathon for a equally set-up dApp-development boilerplate.
# Install (or update) pnpm
npm i -g pnpm
# Install project dependencies
pnpm install
# Copy & fill environments
cp packages/frontend-sfe/.env.local.example packages/frontend-sfe/.env.local && nano packages/frontend-sfe/.env.local
cp packages/frontend-yg/.env.local.example packages/frontend-yg/.env.local && nano packages/frontend-yg/.env.local
cp packages/contracts/.env.example packages/contracts/.env && nano packages/contracts/.env
When working in VSCode, it's recommended doing so by opening the workspace file located at .vscode/yieldgate.code-workspace
and installing recommended plugins listed in .vscode/extensions.json
.
# Generate types, artifacts & start both frontends
pnpm run dev
# Generate types, artifacts & start frontend (Yieldgate-only)
pnpm run dev-yg
# β¦ or only start frontend if types are generated previously (Yieldgate-only)
pnpm run dev:frontend-yg
# Start local hardhat network & deploy contracts
pnpm run deploy:contracts