Weather Watcher
We envision a future where students from around the world can access high quality education through Web3.0, augmented reality, and metaverse environments. Dissatisfaction with public education, coupled with the coronavirus pandemic, has driven new interest in virtual learning. As our world continues to rapidly change, Chainlink’s ability to bridge immediate, definitive, real-world truth into a digital environment, while also providing the provenance of that information, is critical to evolving better, more adaptive educational systems.
What does Weather Watcher do?
Weather Watcher is a whimsical weather predictor. Using Chainlink VRF, you can generate a truly random weather prediction in the form of an on-chain SVG NFT.
contract WeatherWatcher is RainCatcher
Our original project, RainCatcher, is a simple, non-competitive, educational game intended to teach players about blockchain and meteorology. Players would mint an NFT “bucket” and stake it on one of multiple locations from around the world. Chainlink Keepers would monitor the weather conditions for each location, and whenever it started raining somewhere, RAIN tokens would be gradually minted to all addresses that staked a bucket at that location. Gathered RAIN could then be used to water and grow NFT plants. Players would learn about weather and climate science, and use data to make predictions about weather patterns, while also learning the basics of blockchain navigation.
Blockchain Navigation + Game Design > Engineering Skills
We began the hackathon with lot of blockchain navigation experience but no real blockchain development experience. We had never created a Web3 front-end, or studied React, or even deployed a real Solidity contract (just the learning contracts from last summer’s Chainlink Bootcamp).
When researching Chainlink Keepers for our use case, we found data parameters offered by the Accuweather node that would probably work well, but we couldn’t figure out how to access the node, let alone determine the right code syntax and order of operations to bring its data to our contract.
The biggest lesson for us during the hackathon was that we understand how Solidity and Chainlink work in concept, but the actual practice of building has a steep learning curve. After several weeks of working on RainCatcher, we decided to pivot toward a facet of our project that better aligns with our level of experience and skill.
How did we build Weather Watcher?
We used Visual Studio Code with Hardhat + OpenZeppelin and Chainlink contracts. We finally figured out how to make the code work to mint SVG NFTs and connected our smart contracts to the frontend at a Buildspace workshop during the weekend of November 20.
We went to almost all of the workshops offered during the hackathon, rewatched more than a few, found other YouTube tutorials to watch, explored Moralis, went back to our notes from last summer’s Chainlink Bootcamp, repeatedly returned to the Chainlink tutorials and documents, and spent a lot of time studying contracts on GitHub.
Eventually we found a contract on GitHub (credit:SimRunBot) that mints SVG NFTs composed of randomized circles. We modified the contract’s functions to create our randomized weather predictions, and deployed it with our Buildspace / Replit frontend.
Biggest Accomplishment
It was a struggle to piece together all the skills needed to deploy a working dApp, but we persevered, and finally launched a working project on Rinkeby at 4:30am on November 28. To be honest, after all the time spent working on this and so many failures and near-misses, it feels surreal to have a working project!
What's next for Weather Watcher / RainCatcher?
Sleep will be good, and some exercise, and some outdoor time. We will be returning to CryptoZombies and a React tutorial in a ‘recovery run’ kind of way. We have two Buildspace workshops coming up.
We’ll use Weather Watcher to upgrade RainCatcher’s bucket minting contract. After that, we need to write contracts that will allow the NFT buckets to be staked on different locations, then register for Chainlink Keepers to check the weather in those locations and toggle RAIN minting on and off.
Eventually we will add the Garden contract where players can use their RAIN to grow dynamic plant NFTs. Finished plants could be placed in “The Field”, an amazing metaverse space we’re imagining where players and visitors can explore.
RainCatcher would be just one of a suite of educational dApps attached to a metaverse, pulling real-world data in real-time to give students immediate access to learning environments far removed from wherever they may be.
Thank you to everyone who made the Chainlink Hackathon happen, who presented, who answered endless questions, and who is cheering on developers of all skill levels in the Web3 space. The work done by educators in this space has been tremendous, and is something we truly appreciate. Looking forward to seeing the winning projects in December!
Built With
- alchemyapi
- buildspace
- chainlink
- javascript
- openzeppelin
- replit
- solidity

Log in or sign up for Devpost to join the conversation.