Ethylene

Ethylene

Lens-based social Dapp that verifies environmental claims made by companies leveraging an optimistic oracle.

The problem Ethylene solves

Currently, there are few rules for social media postings done by companies. They can claim to make a positive environmental impact, without proving this is the truth. There is some moderation on social media, but this is often not transparent and biased.

We have created a Lens Dapp where PR posts from companies will be verified by the UMA optimistic oracle. After each post there is a 2-day window on UMA where claims can be disputed by the UMA validators. After this period, the post status is updated (it starts on "pending") to verified or incorrect, based on the outcome from UMA.

Our Dapp incentivizes companies to post only factual and verifiable claims on their social media. This way companies will back up their environmental claims, and social media users don't have to worry about fake news when scrolling. Let's stop the bragging and bring on real data!

Challenges we ran into

We've tried to use the Lens SDK in React to create new posts but the hook to create a publication just did not work as expected, it was taking too long to fix it so we've changed strategy and decided to go with the Lens SDK API using GraphQL queries. It was really hard to implement it given that we didn't find the documentation easily comprehensible, but we made it work.

The second problem with Lens was with the publication ids. When a post gets created the contract function returns a publication id that is different than the one provided by the hooks used to fetch publications, so we had to manipulate it to make it work, otherwise, the UI wasn't able to fetch the correct data.

We have faced some challenges when developing the Lens Profile component in NEAR, as in NEAR is not possible to use Lens SDK to make transactions. We had to go for the API option to read and write data. In NEAR it's not possible to use async functions nor custom promises, We figured out a way to handle component status changes without getting errors. Also, when implementing the wallet connection with their built-in component, the Mumbai network was not available among their networks. We had to kindly ask NEAR team to add the Mumbai network and near.social team acted fast. The NEAR mentor helped us a lot along the way.

UMA V3 Oracle was not available on Mumbai testnet. We needed it on that network because we use Lens, which is only on Polygon. Using mainnet was not an option because we don't have Lens profiles on there. With the help of the UMA team we created a sandboxed environment with all their smart contracts on Mumbai.

Deployment issues for sponsor prizes. We were not able to deploy on TAIKO, we figured it out in the end with help from the TAIKO team. For Optimism we couldn't verify the deployed contract, we tried to get help from their team but they have been unresponsive the whole weekend unfortunately. We focussed on the other problems since this was not blocking.

Discussion