Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thirdweb-example/nft-staking-app
An NFT Staking contract deployed using thirdweb deploy, where users stake their ERC721 tokens and earn ERC20 tokens in return!
https://github.com/thirdweb-example/nft-staking-app
erc20 erc721 ethereum nft-staking solidity staking
Last synced: about 6 hours ago
JSON representation
An NFT Staking contract deployed using thirdweb deploy, where users stake their ERC721 tokens and earn ERC20 tokens in return!
- Host: GitHub
- URL: https://github.com/thirdweb-example/nft-staking-app
- Owner: thirdweb-example
- License: apache-2.0
- Created: 2022-05-31T05:09:19.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-17T15:31:40.000Z (about 1 year ago)
- Last Synced: 2023-11-07T19:58:17.512Z (about 1 year ago)
- Topics: erc20, erc721, ethereum, nft-staking, solidity, staking
- Language: TypeScript
- Homepage: https://nft-staking-contract.thirdweb-example.com/
- Size: 179 KB
- Stars: 127
- Watchers: 8
- Forks: 153
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
> [!Important]
> This repository is referencing the `mumbai` chain.
>
> `Mumbai` [is deprecated since 08/04/2024](https://blog.thirdweb.com/deprecation-of-mumbai-testnet/), meaning the code in this repository will no longer work out of the box.
>
> You can still use this repository, however you will have to switch any references to `mumbai` to another chain.# NFT Staking App
## Introduction
This example demonstrates a use of several thirdweb tools to create an NFT Staking application. In this example, users can stake their ERC721 NFTs and earn ERC20 tokens as a reward. It combines:
- [NFT Drop contract](https://thirdweb.com/thirdweb.eth/DropERC721): To create a collection of NFTs that users can stake.
- [Token contract](https://thirdweb.com/thirdweb.eth/TokenERC20): To create a token that users can earn as a reward for staking.
- [NFT Staking contract](https://thirdweb.com/thirdweb.eth/NFTStake): To create a contract that users can stake their NFTs in, and earn tokens as a reward.## Using This Template
Create a project using this example:
```bash
npx thirdweb create --template nft-staking-app
```- Create an [NFT Drop](https://thirdweb.com/thirdweb.eth/DropERC721) contract using the dashboard.
- Create a [Token](https://thirdweb.com/thirdweb.eth/TokenERC20) contract using the dashboard.
- Create an [NFT Staking](https://thirdweb.com/thirdweb.eth/NFTStake) contract using the dashboard.
- Approve the NFT Staking contract to transfer your tokens.
- Deposit the tokens into the NFT Staking contract.
- Update the information in the [contractAddresses.ts](./consts/contractAddresses.ts) file to## Run Locally
Install dependencies
```bash
# npm
npm install# yarn
yarn install
```Start the server
```bash
# npm
npm run start# yarn
yarn start
```## Environment Variables
To run this project, you will need to add environment variables. Check the `.env.example` file for all the environment variables required and add it to `.env.local` file or set them up on your hosting provider.
## Deployment
Deploy a copy of your application to IPFS using the following command:
```bash
yarn deploy
```## Additional Resources
- [Documentation](https://portal.thirdweb.com)
- [Templates](https://thirdweb.com/templates)
- [Video Tutorials](https://youtube.com/thirdweb_)
- [Blog](https://blog.thirdweb.com)## Contributing
Contributions and [feedback](https://feedback.thirdweb.com) are always welcome! Please check our [open source page](https://thirdweb.com/open-source) for more information.
## Need help?
For help, join the [discord](https://discord.gg/thirdweb) or visit our [support page](https://support.thirdweb.com).