Inspiration
This project is based on my childhood memories of harvest in my hometown. Some crops have peculiarities, some give good yield once every two years like clockwork. Others, not so much. Specially rain-dependent crops are very fickle and with changing climate billions of people that depend on these crops face an uncertain future.
I've decided to build a proof of concept tool for any farmer (or investor) can use to auto-invest in certain crops based on rainfall.
What it does
The app sources rainfall information from Chainlink oracles (for which we've built a custom adapter and we're running a chainlink node to provide the data). Based on this information, a sample suggestion is made, user can take action on this data by deciding to deposit into the contract and long/short the crop on open market.
How we built it
We've started from existing contracts/adapters and modified in order to get percentage chance of precipitation in specific regions of the world where very important crops are being grown. E.g. Sri Lanka, China, India and USA. Web app triggers a contract call to an oracle contract that our chainlink node is listening to. Chainlink node has a custom adapter for openweather API to source rainfall information. Based on the provided information, user can then decide to deposit into the contract in order to invest in this specific crop.
Challenges we ran into
Getting the custom adapter to source rainfall data was a challenge. Once we were able to trigger the oracle job via web, deploying an oracle contract and requesting the same data via a contract was very simple.
Accomplishments that we're proud of
Even with its limitations and simplifications, we're very proud of what we accomplished. This simple tool can be empowering to those facing the future and they can at least have the tools to hedge their risks.
What we learned
Solidity contract language to write, deploy and call the consumer contract. Metamask and web3 integration so the user can interface with everything from the web app. Customizing a chainlink oracle data adapter, deploying it as a cloud function. Running a chainlink node, building jobs that can be trigger by a consumer contract. And tying it all together with a simplistic UI.
What's next for Gorucu
For such an ambitious project, we had to cut some corners for now:
- Rainfall data can be made more long term and can be compared with historic data to help with better decision making,
- Deposit contract can be improved to include longer timelocks, users can have more options in terms of how long/how much they want to invest,
- Process can be automated further to loop through available data and make investments automatically every season based on critical rainfall data.
Built With
- chainlink
- google-cloud
- vue

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