Inspiration

Watching the decentralized finance trend sweep through most of crypto, we thought about how to apply DeFi and the decentralized aspect of crypto to create social impact.

During such a transformational time - where decentralized and disintermediated technology has reduced prices, eliminated barriers to entry, and provided unrivaled opportunity to those ushering in the new technology, a question of further directing this opportunity to the public benefit arose. How do we capture the efficiency gains of this new decentralized paradigm and create a better world? Popcorn is our answer to that question.

Businesses have the resources to tackle the world's most pressing problems but they don't have the incentives to do so. Individuals have the desire to improve the world but they have little power on their own. Popcorn combines the resources of a business with the desire of the individual, bringing people and resources together to collectively tackle the most pressing issues. We are re-writing the social contract using smart contracts.

What it does

We've baked social impact into our smart contracts. Popcorn represents a new paradigm for DeFi where yield generating products simultaneously contribute to social impact. The fees generated by our smart contracts are directed to educational, open source and environmental initiatives from organizations that are chosen by token holders.

Token holders are able to vote in monthly, quarterly and yearly grant elections where they vote for their favorite organizations (in the areas of Education, Environment and Open Source). The organizations that are awarded a grant, will have a claim to the profits earned by Popcorn smart contracts during their awarded grant period. Users are subsequently rewarded for participating in the governance process by receiving POP tokens.

In order to discourage collusion schemes and sybil-attacks, we configured our grant election process to use Chainlink VRF. That means that awardees of grants are chosen using a combination of merit, popularity, and randomness. This approach also allows less mainstream projects, or what may be considered to be “entrepreneurial public goods” a chance to receive funding as well as the more popular ones.

Yield Strategies

We anticipate developing automated yield-generating strategies to provide users a simple way to grow their crypto assets. The fees collected by our strategy contracts would then be routed to a fee distribution contract that would share the fees with the organizations that have been awarded grants through the grant election process.

Below are two example strategies:

Users will be able to deposit popular and trusted stablecoins like sUSD (from Synthetix), which we would then use as the basis for our contracts' strategies. As an example, a strategy may then utilize the Curve sUSD pool to realize yields through liquidity pool transaction fees and incentivized liquidity mining.

Alternatively, another strategy to be automated would consist of collateralizing an incentivized short position (sETH) with sUSD, balanced by an equally weighted long position (ETH). The strategy would earn a yield through incentivized shorting and through the interest earned by lending the ETH long position. In order to compensate for swap fees, a time-lock on a withdrawal would be implemented to ensure a no-loss strategy (est. yield on sUSD: ~30%).

How we built it

The project is built with Chainlink VRF for the grant election process, React/Next.js on the front end, Solidity for smart contracts, Hardhat for deployment to ethereum, and Acala EVM for integration with Polkadot and Acala.

Our contracts include:

GrantElections* - this governs the grant election process and interacts with the GrantRegistry and BeneficiaryRegistry. It is configured to use Chainlink VRF for selecting beneficiaries.

Staking* - token holders stake their POP tokens to participate in goverance. They receive voice credits in return for staking their tokens.

GrantRegistry - Successfully created grants are stored here along with Beneficiaries that have been awarded grants

BeneficiaryRegistry - Organizations must be included in this registry through governance votes to be eligible to participate in Grant Elections

FeeDistribution (RewardsManager) - All fees generated by our DeFi products are sent to this contract for distribution to different stakeholders including Beneficiaries (social impact organizations), the treasury, and token stakers.

BeneficiaryVaults - Grant recipients may claim their grants through this contract.

*These contracts were developed for the hackathon. The others are included here to illustrate how all of the contracts will work together.

Challenges we ran into

Like other teams in the hackathon, our team was formed at a short notice about 2 weeks ago with team members spread out across different countries and time zones. This makes it different and logistically more challenging than a hackathon where everyone is in the same room working together. Our team members also hold day jobs and juggling this hackathon with our day work is also challenging. In addition, we also attempt to build an eth-based app that can interact with Acala EVM on Polkadot, a new area that none of our team members are familiar with and have to quickly learn.

Accomplishments that we're proud of

We built several contracts and UIs for them including a GrantElections contract and a Staking contract. The grant elections contract also makes use of Chainlink VRF. For several of our team members, this is the first time we're working with smart contracts and solidity. In the short time of the hackathon, we're able to learn new skills, build something fun and meaningful while making new friends along the way.

What we learned

We learned how to define roles and expectations in a short amount of time with little "getting-to-know-you" time. We jumped right into things and learned new best practices in developing dApps with react, and smart contracts with Solidity.

What's next for Popcorn

We'll continue to build out the rest of the application, such as the beneficiary nomination proposal process, and building the yield earning interface integrating different yield strategies with the relevant protocols and ecosystems (such as Aave, Synthetix, Solana, etc). We also need to expand on our work ensuring accountability of grant recipients when receiving a grant. After that, we plan to test it with a small pilot group of users before our first alpha release.

How we integrate with sponsor technologies

  1. Social Impact: we bake social impact into our contracts
  2. Chainlink: we use Chainlink VRF for our elections to discourage sybil attacks and collusion.
  3. Solana: We will be supporting Solana and integrating with DEXs such as Raydium and Serum in the near future
  4. Acala: We've deployed our contracts on Acala EVMs
  5. GovernmentTech prize: our open source contracts can be used for government grants and applied quadratic funding
  6. Aave: our DeFi yield strategies will incorporate Aave protocol including strategies that utilize aTokens
  7. Consensys Infura - we are using Infura to host our Ethereum nodes.
  8. IPFS: We use IPFS for beneficiary application documents and metadata represented as JSON with their content ids/hash stored in our contracts.
  9. Polkadot: We deployed our contracts to Acala EVM for polkdot compatability
  10. Synthetix - we will incorporate Synthetix such as sUSD and SNX with our yield earning products.
  11. 88mph - we'll compose our yield generating contracts to be compatible with 88mph as an underlying vault type.

Built With

+ 10 more
Share this project:

Updates