From f9c47e924d49ef06dfdbb35572e5bb581732ca4f Mon Sep 17 00:00:00 2001 From: "clement.l" Date: Tue, 26 Nov 2024 11:00:53 +0800 Subject: [PATCH] docs: update README.md --- README.md | 89 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 55 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 568fa73..5a3fc3a 100644 --- a/README.md +++ b/README.md @@ -1,78 +1,99 @@ -# Drip + +
+

+ Logo +

Drip

+ +

+ A revolutionary decentralized incentive learning system built on-chain. +
+
+ Explore on ETHGlobal Showcase +

+

-A revolutionary decentralized incentive learning system built on-chain. ## 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. -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. +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** + - **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 is structured around four main contracts -The protocol consists of four main contracts: +**Challenge** -**Challenge.sol**: Foundational contract for challenge operations. +- Core logic for challenge operations. +- Facilitates challenge creation and manages individual challenge states. +- Retrieves challenges based on specific epochs. -- Facilitates challenge creation. -- Manages the state of individual challenges. -- Retrieves challenges for a specific epoch. +**ChallengeManager** -**ChallengeManager.sol**: Orchestration layer for challenge lifecycles. +- Orchestrates the lifecycle of challenges and epochs. +- Establishes new epochs and manages their rewards through the DripVault. -- Establishes new epochs. -- Manages the lifecycle of epochs. -- Oversees epoch rewards using the DripVault. +**DripProfile** -**DripProfile.sol**: User profiles management and engagement. +- Manages user profile creation and updates. +- Tracks daily task completions for users. -- Enables profile creation. -- Maintains and updates profile data. -- Tracks and records daily completions. +**DripVault** -**DripVault.sol**: Tokenized asset management of epoch rewards. +- Handles tokenized asset management for epoch rewards. +- Facilitates token deposits and withdrawals. -- Facilitates deposits and withdrawals of tokens. +## Contributers +clement.l +yuhsuan19 + + ## 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