We started Water-level Ready Insurance because we identified a need for disruption in the $30B marine insurance industry by using parametric insurance and smart contracts.
We want to make modern life for inland marine cargo transportation businesses more manageable during the times that matter most by providing a 21st-century insurance solution to help support them with adapting to the effects of a changing climate.
Climate-related uncertainty is leading to more unpredictable seaway conditions such as low or high water levels. This can result in the temporary closing of major shipping seaway channels. For example, an estimated $193 million is lost per week in the U.S. economy if the St. Lawrence Seaway temporarily closes. Last year, the channel was closed for 12 days costing the U.S. economy an estimated $331 million.
Fortunately, our solution using chainlink has paved the way for consumer-centric, self-executing, decentralized marine insurance products using real-time data and executing via smart contracts.
What it does
We created a water level named-peril parametric insurance product for inland marine cargo transportation. With parametric insurance, a loss is triggered by a specific automated event, starting the smart contract's automatic execution on the blockchain. With arbitrators removed from the process, the result is a significantly faster, trusted, secure payout process.
For example, if a shipping channel's water level is outside the pre-agreed upon a water-level range, the insurance policyholder will receive a daily payment instantly for loss of business.
This insurance product will be useful for primary and secondary supply chain infrastructures impacted by seaway water fluctuation, such as perishable goods manufacturers, commercial shippers, steel manufacturers, miners, construction companies, etc.
How we built it
The first task was to find data sources for water level data from where we could query. The API we selected was Stormglass since it provided water level information from stations worldwide and provided a free tier plan. We then created a Chainlink external adapter to make this API data available to the blockchain. We deployed the adapter in the Google Cloud and Azure Platform using Cloud Functions. We then requested two different Chainlink node operators to host our adapter. One node points to the Azure function URL and the other to the Google function URL. The approach we took will reduce the risk of data unavailability if one external adapter goes down. At a later stage, we created a pre-coordinator contract that pointed to both oracles from the nodes that host our external adapter. The smart contract we developed interacts with this pre-coordinator contract to make the decentralized API call. We found this solution to be the easiest to use multiple Chainlink oracles.
We wrote the smart contract using the Solidity language. For the application codebase, we bootstrapped it using the Chainlink Trufflebox. The bootstrap code gave us a good idea of the best practices to test Chainlinked contracts, considering that they depend on other deployed contracts and components listening to the blockchain. Using mock oracles, as to how it's demonstrated in the bootstrap code, we were able to verify the smart contract's logic in the development process. Performing these tests was necessary since the oracles' response decides if the smart contract should make the ETH transfer to the beneficiary or not for the current day. We also implemented Chainlink alarms to update the water-level and perform the claim evaluation every 24 hours. Throughout the Hackathon, we iterated the smart contract to add more parametrization to make it easier to change the values once deployed.
We used the React library, Web3, Rimble UI, and the Drizzle framework for the frontend.
Challenges we ran into
ENS not available in Kovan network: Even though we integrated ENS into our solution, it was challenging to test it since it's not available in Kovan. Since Ropsten was having issues during the Hackathon, we deployed our project and set up the Chainlink nodes in Kovan. It was later when we found out that ENS is not available in that testnet. The other testnet supported by ENS and Chainlink is Rinkeby. Unfortunately, test ETH for Rinkeby, unlike Kovan, is now hard to come by. In the end, we managed to deploy our contract with the little ETH; we were able to get to Rinkeby and demo ENS integration there. We performed the main demo in Kovan, where we have sufficient test funds.
Lack of free or low-cost ship position APIs: One of our ideas we had to discard for the Hackathon was to use the ship position to determine the body of water they are currently traveling and send this position to Stormglass. Unfortunately, there are no free or low-cost APIs available that provide this data—the only potential ship location API communicated to us that they were having problems with their system.
Chainlink Alarms: In our last test, the Chainlink alarm wasn't calling our contract function after the specified amount of time. We found out that debugging this kind of scenario is quite complicated.
Accomplishments that we're proud of
Working together as a team for the first time and coming up with innovative solutions and ideas to a real-world problem with the potential to completely disrupt an industry through automation and enhanced trust.
What we learned
We learned about the potential of smart contracts to disrupt the insurance industry. In our product for water level insurance, there is minimal need for arbitration as the conditions for the contract are set based on predetermined data points. Chainlink allows for entire business processes to become automated on the blockchain.
At a technical level, we learned a lot about the infrastructure of Chainlink and Chainlinked contracts. We learned how to test Chainlinked contracts without deploying them to a network. We also learned about developing and deploying an external adapter and making decentralized API calls from the blockchain.
What's next for Parametric Water-level Insurance
We have focused on one seaway for our proof of concept. Still, We plan to extend insurance across all significant seaways in North America, starting with those that handle the most marine transportation and experience the most significant fluctuations in water level.
From here, we will explore more use cases for decentralized parametric insurance products that can operate on the same smart contract framework we have built.