everything you need to build on Ethereum! π
π§ͺ Quickly experiment with Solidity using a frontend that adapts to your smart contract:
Prerequisites: Node (v16 LTS) plus Yarn and Git
clone/fork π scaffold-eth:
git clone https://github.com/scaffold-eth/scaffold-eth.gitinstall and start your π·β Hardhat chain:
cd scaffold-eth
yarn install
yarn chainin a second terminal window, start your π± frontend:
cd scaffold-eth
yarn startin a third terminal window, π° deploy your contract:
cd scaffold-eth
yarn deployπ Edit your smart contract YourContract.sol in packages/hardhat/contracts
π Edit your frontend App.jsx in packages/react-app/src
πΌ Edit your deployment scripts in packages/hardhat/deploy
π± Open http://localhost:3000 to see the app
Documentation, tutorials, challenges, and many more resources, visit: docs.scaffoldeth.io
π Read the docs: https://docs.soliditylang.org
π Go through each topic from solidity by example editing YourContract.sol in π scaffold-eth
π§ Learn the Solidity globals and units
Check out all the active branches, open issues, and join/fund the π° BuidlGuidl!
-
π« Extend the NFT example to make a "buyer mints" marketplace
-
βοΈ Learn how ecrecover works
-
π©βπ©βπ§βπ§ Build a multi-sig that uses off-chain signatures
-
βοΈ Learn how a simple DEX works
-
π¦ Ape into learning!
π Official web3-onboard docs: https://docs.blocknative.com/onboard
Web3-Onboard is the long awaited full re-write of Onboard that takes everything that we have learned in designing/managing Onboard V1 and implements a new architecture and API. This initial release has feature parity with version 1 along with a bunch of new features. This first release will also serve as a flexible foundation/architecture for the many upcoming features that we have planned. Features
* __Re-designed UI__ : New modern UI that is fully customizable via CSS vars.
* __Multiple Chain Support__ : Your users can now switch between chains/networks with ease. You configure which EVM compatible chains you want to support.
* __Multiple Wallets and Accounts Connection__ : Your users can now connect multiple wallets and/or multiple accounts within each wallet at the same time.
* __React Hooks__ : A React Hooks package for slick integration in to React apps.
* __Minimal Dependencies__ : All wallet dependencies are included in separate packages, so you only include the ones you want to use.
* __Dynamic Imports__ : Supporting multiple wallets in your app requires a lot of dependencies. Onboard dynamically imports a wallet and dependencies only when the user selects it, so that minimal bandwidth is used.
* __Wallet Provider Standardization__ : All wallet modules expose a provider that is patched to be compliant with the EIP-1193, EIP-1102, EIP-3085 and EIP-3326 specifications.
The implementation found within this project leverages the web3-onboard/react npm package that wraps and delivers convenient hooks for implementation.
React Hooks Package
web3-onboard is framework agnostic and is simple to integrate into any front end framework. You can find the core component package here as well as further documentation on features, customizing and handling build environments
With either instance the onboard package was created to be as light and fast as possible so you will have pass the wallet types you are interested in connecting to your DApp @web3-onboard/injected-wallets @web3-onboard/ledger @web3-onboard/trezor @web3-onboard/keepkey @web3-onboard/walletconnect @web3-onboard/walletlink @web3-onboard/torus @web3-onboard/portis @web3-onboard/mew (does not currently build on M1 Macs) @web3-onboard/gnosis @web3-onboard/fortmatic
Add the wallets you like and instantiate as found in blocknativeOnboardService.js
After wallet connection is successful you will be able to expose the wallet's provider along with the methods that will allow you to interact with the connected blockchain.
Check out all the awesome products from Blocknative at https://www.Blocknative.com
π You need an RPC key for testnets and production deployments, create an Alchemy account and replace the value of ALCHEMY_KEY = xxx in packages/react-app/src/constants.js with your new key.
π£ Make sure you update the InfuraID before you go to production. Huge thanks to Infura for our special account that fields 7m req/day!
Register as a builder here and start on some of the challenges and build a portfolio.
Join the telegram support chat π¬ to ask questions and find others building with π scaffold-eth!
π Please check out our Gitcoin grant too!
