This project integrates Privy with the scaffold-eth template, enabling users to connect their wallets and interact with Ethereum networks seamlessly. The integration includes support for various login methods and network configurations.
This currently uses an app-id featued on the privy docs, this is a severely rate limited app - id and is NOT production ready, you'll need to sign up on their site and contact their team for a proper appid
- Connect with multiple login methods including email, wallet, SMS, and Twitter.
- Support for creating embedded wallets for users without an existing wallet.
- Default chain set to Hardhat, easily changeable to suit your application needs.
- Customizable appearance and user experience.
To get started, set up the PrivyProvider in your _app.tsx file with the required configurations:
<PrivyProvider
appId={"your-privy-app-id"}
onSuccess={handleLogin}
config={{
loginMethods: ["email", "wallet", "sms", "twitter"],
defaultChain: hardhat,
supportedChains: [
hardhat,
polygon,
mainnet,
base,
baseGoerli,
baseSepolia,
polygonMumbai,
polygonZkEvmTestnet,
optimism,
],
embeddedWallets: {
createOnLogin: "users-without-wallets",
},
appearance: {
showWalletLoginFirst: true,
theme: "light",
accentColor: "#676FFF",
logo: "https://your-logo-url",
},
}}
>
{/* Your application components */}
</PrivyProvider>To change the default chain or the list of supported chains, modify the defaultChain and supportedChains properties in the PrivyProvider configuration.
By default i have it set to hardhat, just add your desired chain in _app.tsx
Example:
config={{
// ...
defaultChain: hardhat,
supportedChains: [polygon, mainnet, goerli],
// ...
}}This feature is kinda janky lol i have to call both disconnect and logout to prevent an edge case where a user logs out with an external wallet and then can't reconnect after refreshing etc.
If a user is authenticated but not connected to a wallet, provide options to either connect to an existing wallet or create a new one.
Check out the privy docs https://docs.privy.io/ if you have more questions
🧪 An open-source, up-to-date toolkit for building decentralized applications (dapps) on the Ethereum blockchain. It's designed to make it easier for developers to create and deploy smart contracts and build user interfaces that interact with those contracts.
⚙️ Built using NextJS, RainbowKit, Hardhat, Wagmi, and Typescript.
- ✅ Contract Hot Reload: Your frontend auto-adapts to your smart contract as you edit it.
- 🪝 Custom hooks: Collection of React hooks wrapper around wagmi to simplify interactions with smart contracts with typescript autocompletion.
- 🧱 Components: Collection of common web3 components to quickly build your frontend.
- 🔥 Burner Wallet & Local Faucet: Quickly test your application with a burner wallet and local faucet.
- 🔐 Integration with Wallet Providers: Connect to different wallet providers and interact with the Ethereum network.
Before you begin, you need to install the following tools:
- Node (v18 LTS)
- Yarn (v1 or v2+)
- Git
To get started with Scaffold-ETH 2, follow the steps below:
- Clone this repo & install dependencies
git clone https://github.com/scaffold-eth/scaffold-eth-2.git
cd scaffold-eth-2
yarn install
- Run a local network in the first terminal:
yarn chain
This command starts a local Ethereum network using Hardhat. The network runs on your local machine and can be used for testing and development. You can customize the network configuration in hardhat.config.ts.
- On a second terminal, deploy the test contract:
yarn deploy
This command deploys a test smart contract to the local network. The contract is located in packages/hardhat/contracts and can be modified to suit your needs. The yarn deploy command uses the deploy script located in packages/hardhat/deploy to deploy the contract to the network. You can also customize the deploy script.
- On a third terminal, start your NextJS app:
yarn start
Visit your app on: http://localhost:3000. You can interact with your smart contract using the Debug Contracts page. You can tweak the app config in packages/nextjs/scaffold.config.ts.
Run smart contract test with yarn hardhat:test
- Edit your smart contract
YourContract.solinpackages/hardhat/contracts - Edit your frontend in
packages/nextjs/pages - Edit your deployment scripts in
packages/hardhat/deploy
Visit our docs to learn how to start building with Scaffold-ETH 2.
To know more about its features, check out our website.
We welcome contributions to Scaffold-ETH 2!
Please see CONTRIBUTING.MD for more information and guidelines for contributing to Scaffold-ETH 2.
