Skip to content

Commit

Permalink
docs: update README
Browse files Browse the repository at this point in the history
  • Loading branch information
Doge-is-Dope committed Nov 26, 2024
1 parent 1f10b51 commit 0b76c6b
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 32 deletions.
100 changes: 68 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,79 +1,115 @@
# Drip
<!-- PROJECT LOGO -->
<br />
<p align="center">
<img src="assets/drip_logo.png" alt="Logo" width="80" height="80">

A revolutionary decentralized incentive learning system built on-chain.
<h3 align="center">Drip</h3>

<p align="center">
A revolutionary decentralized incentive learning system built on-chain.
<br />
<br />
<a href="https://ethglobal.com/showcase/drip-e73wa">ETHGlobal Showcase</a>
</p>
</p>

## Overview

Drip enables users to create and manage challenges, maintain user profiles, and handle tokenized vaults. The system is composed of several key components:
Drip is a decentralized protocol that enables users to create and manage challenges, maintain user profiles, and handle tokenized vaults. The system comprises several key components:

- DripProfile: An ERC-721 that governs user profiles and associated data.
- Challenge: An ERC-721 to manage individual challenges.
- ChallengeManager: Coordinates the creation and lifecycle management of challenges.
- DripVault: An ERC-4626-compliant vault that handles token deposits and withdrawals.
- DripProfile: An ERC-721 standard for managing user profiles and associated data.
- Challenge: An ERC-721 token for managing individual challenges.
- ChallengeManager: Coordinates the creation and lifecycle of challenges.
- DripVault: An ERC-4626-compliant vault for token deposits and withdrawals.

## How It Works

1. Initiate a Challenge:
- Learners can start a challenge within a predefined timeframe, choosing an amount to deposit as a commitment.
2. Receive a Progress-Tracking NFT:
- Upon creation, the learner is issued an NFT that records their challenge progress.
3. Daily Task Completion:
- Learners complete assigned tasks daily. Task progress is automatically updated and reflected in the NFT.
1. Initiate a Challenge: Users can start a challenge within a predefined timeframe, committing a deposit amount as collateral.
2. Receive a Progress-Tracking NFT: Participants are issued an NFT upon challenge initiation. This NFT dynamically tracks their progress.
3. Daily Task Completion: Participants complete daily tasks. Their progress is automatically updated and reflected on their NFT.
4. Challenge Outcome:
- For Successful Days: Learners retrieve their deposited amount corresponding to the days completed successfully.
- For Unsuccessful Days: The deposits for incomplete days are allocated to the reward pool to incentivize successful participants.
- Additional Rewards: Successful learners earn an additional reward from the share of the reward pool accumulated from the deposits of all incomplete days across participants.
- Successful Days: Users can reclaim their deposits for the days they complete tasks successfully.
- Unsuccessful Days: Deposits for incomplete days are allocated to a reward pool.
- Additional Rewards: Participants who successfully complete challenges earn additional rewards from the reward pool, funded by incomplete day deposits across all participants.

## Rewards Calculation

**Claimable Deposits**

Represents the amount users can retrieve based on successfully completed days.

![claimable_deposits](assets/reward_claimable_deposits.png)

**Additional Rewards**

Reflects a share of the reward pool distributed to successful participants.
![additional_rewards](assets/reward_additional_rewards.png)

**Total Redemption**

Combines claimable deposits and additional rewards for a comprehensive view of user earnings.

![additional_redemption](assets/reward_total.png)

## Architecture

The protocol consists of four main contracts:

**Challenge.sol**: Foundational contract for challenge operations.
**Challenge.sol**

- Facilitates challenge creation.
- Manages the state of individual challenges.
- Retrieves challenges for a specific epoch.
- Core logic for challenge operations.
- Facilitates challenge creation and manages individual challenge states.
- Retrieves challenges based on specific epochs.

**ChallengeManager.sol**: Orchestration layer for challenge lifecycles.
**ChallengeManager.sol**

- Establishes new epochs.
- Manages the lifecycle of epochs.
- Oversees epoch rewards using the DripVault.
- Orchestrates the lifecycle of challenges and epochs.
- Establishes new epochs and manages their rewards through the DripVault.

**DripProfile.sol**: User profiles management and engagement.
**DripProfile.sol**

- Enables profile creation.
- Maintains and updates profile data.
- Tracks and records daily completions.
- Manages user profile creation and updates.
- Tracks daily task completions for users.

**DripVault.sol**: Tokenized asset management of epoch rewards.
**DripVault.sol**

- Facilitates deposits and withdrawals of tokens.
- Handles tokenized asset management for epoch rewards.
- Facilitates token deposits and withdrawals.

## Deployed Contract Addresses

Unified CREATE2 addresses for multi-chain deployment:
The protocol utilizes unified CREATE2 addresses for multi-chain deployments:

- Challenge: `0xaDcaAe61b8983940FB2c8098BDe112e507A0e1f0`
- ChallengeManager: `0xB3084eF0Dc7440e32A6cD64e2E5072FBCd9AEEeE`
- DripProfile: `0x0E69Ba1FF53c36D0fbb4fccC0e9B732D58593B2f`

The contracts are live on the following testnets:
Currently live on the following testnets:

- Base Sepolia
- Mantle Sepolia
- Polygon zkEVM Cardona

## Contributors

<div style="display: flex">
<div style="text-align: center; display: inline-block;">
<a href="https://github.com/Doge-is-Dope">
<img src="https://avatars.githubusercontent.com/u/7845979?v=4" alt="" style="width:25%; border-radius: 50%;" />
</a>
</div>
<div style="text-align: center; display: inline-block;">
<a href="https://github.com/yuhsuan19">
<img src="https://avatars.githubusercontent.com/u/22169860?v=4" alt="" style="width:25%; border-radius: 50%;" />
</a>
</div>
<div style="text-align: center; display: inline-block;">
<a href="https://github.com/meatballjim">
<img src="https://avatars.githubusercontent.com/u/185509988?v=4" alt="" style="width:25%; border-radius: 50%;" />
</a>
</div>
<div style="text-align: center; display: inline-block;">
<a href="https://github.com/">
<img src="https://avatars.githubusercontent.com/u/0?v=4" alt="" style="width:25%; border-radius: 50%;" />
</a>
</div>
Binary file modified assets/drip_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 0b76c6b

Please sign in to comment.