/cryptoroots.xyz

Offset your carbon footprint by planting trees and earn climate change impact badges.

Primary LanguageJavaScriptMIT LicenseMIT

cryptoroots.xyz

Platform License Release

cryptoroots.xyz is a platform that allows users to offset their carbon footprint by planting trees ($1 = 1 tree) and earn ERC-1155 powered climate change impact badges. Let’s unlock the true potential of NFTs. Let's save our planet.

cryptoroots.xyz is a No-profit organization, 100% of the cryptoroots funds will be donated to #teamtrees cause (founded by YouTubers Mr. Beast and Mark Rober in 2019, they’ve planted 20 million + trees till now). We will frequently release donation receipts on our platform for transparency (will send emails to those who opt to subscribe to our mailing list). Also, users can track how many trees they've planted, how much area is covered, and how much carbon emission is reversed/year. The platform is designed to encourage everyone to go carbon neutral.

Roadmap:

  • Research and implement biconomy for gasless transactions and to receive funds in USDC on Polygon Mainnet.
  • Create a subgraph to query totalSupply data from the blockchain by using The Graph protocol (so that the stats will be visible without connecting the wallet).
  • Leaderboard (maximum number of trees donated).
  • Write tests in mocha, follow best security practices in Solidity, learn more in this article.
  • Resolve erc-1155 contract verification error (Unable to generate Contract ByteCode and ABI).
  • A co2 emission calculator that tells how much an individual is emitting CO2/year and how many trees they need to offset their CO2 footprint (make a predictive ML model based on datasets).
  • FAQ section for better UX.
  • Whitepaper.
  • Improve NFT artwork before public launch (animated cards that contain info regarding CO2 emission).
  • Improve UI.
  • Deploy on Polygon Mainnet.

Development

Installation & setup

Make sure you have truffle installed on your computer.

# Install Truffle globally
npm install -g truffle
# Install truffle dependencies in root directory (./cryptoroots.xyz)
npm install

Ensure you create an .env file in root directory. Then to access the Ethereum network/node, create a project on infura and copy-paste the infura project-id url in .env with a variable name REACT_APP_INFURA_MATIC_TESTNET or REACT_APP_INFURA_RINKEBY.

REACT_APP_INFURA_MATIC_TESTNET=https://polygon-mumbai.infura.io/v3/YOUR_PROJECT_ID
REACT_APP_INFURA_RINKEBY=https://rinkeby.infura.io/v3/YOUR_PROJECT_ID

Paste the 12 word Secret Recovery Phrase of your (preferably newly generated and testnet-only) MetaMask wallet in .env with the variable name REACT_APP_MNEMONIC. This will be loaded by truffle at runtime, and the environment variable can then be accessed with process.env.REACT_APP_MNEMONIC.

REACT_APP_MNEMONIC=for example put your twelve word BIP39 secret recovery phrase here

OR

To develop on ganache blockchain, open ganache and import the accounts by adding your ganache private keys in MetaMask.

$ ganache-cli

Deployment

To deploy the smart contracts on blockchain networks, follow the given truffle command below.

# truffle migrate --network NETWORK_NAME
truffle migrate --network matic_testnet
truffle migrate --network rinkeby

# --reset: Run all migrations from the beginning, instead of running from the last completed migration.

For more information, read truffle docs.

React client

Start react app.

# cd into client directory
cd client

# Install dependencies
npm install

# Start the app
npm start
Starting the development server...

Contribution

  • Thanks for your interest in contributing to cryptoroots.xyz. There are many ways you can contribute to the project.
  • To start, take a few minutes to read the "contribution guide".
  • We look forward to your pull requests and / or involvement in our issues page.

License

cryptoroots.xyz is licensed under the MIT license.


Don't forget to leave a star ⭐️ ~ twitter