|
1 | | -# Drip |
| 1 | +<!-- PROJECT LOGO --> |
| 2 | +<br /> |
| 3 | +<p align="center"> |
| 4 | + <img src="assets/drip_logo.png" alt="Logo" width="80" height="80"> |
| 5 | + <h3 align="center">Drip</h3> |
| 6 | + |
| 7 | + <p align="center"> |
| 8 | + A revolutionary decentralized incentive learning system built on-chain. |
| 9 | + <br /> |
| 10 | + <br /> |
| 11 | + <a href="https://ethglobal.com/showcase/drip-e73wa">Explore on ETHGlobal Showcase</a> |
| 12 | + </p> |
| 13 | +</p> |
2 | 14 |
|
3 | | -A revolutionary decentralized incentive learning system built on-chain. |
4 | 15 |
|
5 | 16 | ## Overview |
6 | 17 |
|
7 | | -Drip enables users to create and manage challenges, maintain user profiles, and handle tokenized vaults. The system is composed of several key components: |
| 18 | +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: |
8 | 19 |
|
9 | | -- DripProfile: An ERC-721 that governs user profiles and associated data. |
10 | | -- Challenge: An ERC-721 to manage individual challenges. |
11 | | -- ChallengeManager: Coordinates the creation and lifecycle management of challenges. |
12 | | -- DripVault: An ERC-4626-compliant vault that handles token deposits and withdrawals. |
| 20 | +- DripProfile: An ERC-721 standard for managing user profiles and associated data. |
| 21 | +- Challenge: An ERC-721 token for managing individual challenges. |
| 22 | +- ChallengeManager: Coordinates the creation and lifecycle of challenges. |
| 23 | +- DripVault: An ERC-4626-compliant vault for token deposits and withdrawals. |
13 | 24 |
|
14 | 25 | ## How It Works |
15 | 26 |
|
16 | | -1. Initiate a Challenge: |
17 | | - - Learners can start a challenge within a predefined timeframe, choosing an amount to deposit as a commitment. |
18 | | -2. Receive a Progress-Tracking NFT: |
19 | | - - Upon creation, the learner is issued an NFT that records their challenge progress. |
20 | | -3. Daily Task Completion: |
21 | | - - Learners complete assigned tasks daily. Task progress is automatically updated and reflected in the NFT. |
22 | | -4. Challenge Outcome: |
23 | | - - For Successful Days: Learners retrieve their deposited amount corresponding to the days completed successfully. |
24 | | - - For Unsuccessful Days: The deposits for incomplete days are allocated to the reward pool to incentivize successful participants. |
25 | | - - 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. |
| 27 | +1. **Initiate a Challenge** |
| 28 | + - Users can start a challenge within a predefined timeframe, committing a deposit amount as collateral. |
| 29 | +2. **Receive a Progress-Tracking NFT** |
| 30 | + - Participants are issued an NFT upon challenge initiation. This NFT dynamically tracks their progress. |
| 31 | +3. **Daily Task Completion** |
| 32 | + - Participants complete daily tasks. Their progress is automatically updated and reflected on their NFT. |
| 33 | +4. **Challenge Outcome** |
| 34 | + - **Successful Days**: Users can reclaim their deposits for the days they complete tasks successfully. |
| 35 | + - **Unsuccessful Days**: Deposits for incomplete days are allocated to a reward pool. |
| 36 | + - **Additional Rewards**: Participants who successfully complete challenges earn additional rewards from the reward pool, funded by incomplete day deposits across all participants. |
26 | 37 |
|
27 | 38 | ## Rewards Calculation |
28 | 39 |
|
29 | 40 | **Claimable Deposits** |
30 | 41 |
|
| 42 | +Represents the amount users can retrieve based on successfully completed days. |
| 43 | + |
31 | 44 |  |
32 | 45 |
|
33 | 46 | **Additional Rewards** |
34 | 47 |
|
| 48 | +Reflects a share of the reward pool distributed to successful participants. |
| 49 | + |
35 | 50 |  |
36 | 51 |
|
37 | 52 | **Total Redemption** |
38 | 53 |
|
| 54 | +Combines claimable deposits and additional rewards for a comprehensive view of user earnings. |
| 55 | + |
39 | 56 |  |
40 | 57 |
|
41 | 58 | ## Architecture |
| 59 | +The protocol is structured around four main contracts |
42 | 60 |
|
43 | | -The protocol consists of four main contracts: |
| 61 | +**Challenge** |
44 | 62 |
|
45 | | -**Challenge.sol**: Foundational contract for challenge operations. |
| 63 | +- Core logic for challenge operations. |
| 64 | +- Facilitates challenge creation and manages individual challenge states. |
| 65 | +- Retrieves challenges based on specific epochs. |
46 | 66 |
|
47 | | -- Facilitates challenge creation. |
48 | | -- Manages the state of individual challenges. |
49 | | -- Retrieves challenges for a specific epoch. |
| 67 | +**ChallengeManager** |
50 | 68 |
|
51 | | -**ChallengeManager.sol**: Orchestration layer for challenge lifecycles. |
| 69 | +- Orchestrates the lifecycle of challenges and epochs. |
| 70 | +- Establishes new epochs and manages their rewards through the DripVault. |
52 | 71 |
|
53 | | -- Establishes new epochs. |
54 | | -- Manages the lifecycle of epochs. |
55 | | -- Oversees epoch rewards using the DripVault. |
| 72 | +**DripProfile** |
56 | 73 |
|
57 | | -**DripProfile.sol**: User profiles management and engagement. |
| 74 | +- Manages user profile creation and updates. |
| 75 | +- Tracks daily task completions for users. |
58 | 76 |
|
59 | | -- Enables profile creation. |
60 | | -- Maintains and updates profile data. |
61 | | -- Tracks and records daily completions. |
| 77 | +**DripVault** |
62 | 78 |
|
63 | | -**DripVault.sol**: Tokenized asset management of epoch rewards. |
| 79 | +- Handles tokenized asset management for epoch rewards. |
| 80 | +- Facilitates token deposits and withdrawals. |
64 | 81 |
|
65 | | -- Facilitates deposits and withdrawals of tokens. |
| 82 | +## Contributers |
| 83 | +<a href="https://github.com/Doge-is-Dope/"><img src="https://avatars.githubusercontent.com/u/7845979?v=4" alt="clement.l" style="width:5%; border-radius: 50%;"/></a> |
| 84 | +<a href="https://github.com/yuhsuan19/"><img src="https://avatars.githubusercontent.com/u/22169860?v=4" alt="yuhsuan19" style="width:5%; border-radius: 50%;"/></a> |
| 85 | +<a href="https://github.com//"><img src="" alt="" style="width:5%; border-radius: 50%;"/></a> |
| 86 | +<a href="https://github.com//"><img src="" alt="" style="width:5%; border-radius: 50%;"/></a> |
66 | 87 |
|
67 | 88 | ## Deployed Contract Addresses |
68 | 89 |
|
69 | | -Unified CREATE2 addresses for multi-chain deployment: |
| 90 | +The protocol utilizes unified CREATE2 addresses for multi-chain deployments: |
70 | 91 |
|
71 | 92 | - Challenge: `0xaDcaAe61b8983940FB2c8098BDe112e507A0e1f0` |
72 | 93 | - ChallengeManager: `0xB3084eF0Dc7440e32A6cD64e2E5072FBCd9AEEeE` |
73 | 94 | - DripProfile: `0x0E69Ba1FF53c36D0fbb4fccC0e9B732D58593B2f` |
74 | 95 |
|
75 | | -The contracts are live on the following testnets: |
| 96 | +Currently live on the following testnets: |
76 | 97 |
|
77 | 98 | - Base Sepolia |
78 | 99 | - Mantle Sepolia |
|
0 commit comments