---
# System prepended metadata

title: PreciousProject

---

# PreciousProject

## MagicRewards token flow for prMagicStaking and PreciousStaking 

MAGIC - MAGIC token
prMAGIC - locked MAGIC token (similar to cvxCRV)
PreciousToken - our own token(similar to cvx)
prMagicRewardPool - prMagic token staking
preciousRewardPool -preciousStaking token staking

1.  User Staked/Mint prMagic token :-
```mermaid
graph TD;
    U[User] -->|MAGIC| D[1. Deposits to MagicDepositor]
    D --> |MAGIC| L[2. Locks on AtlasMine]
    L --> M[3. Mints prMAGIC]
    M -->|prMAGIC| S{Stake}
    S --> |Y| S1[4. Stakes to prMagicRewardPool]
    S1 --> U
    S --> |No| U
``` 

2.  User Staked precious token :-

```mermaid
graph TD;
    U[User] -->|PreciousToken| S[1. Stakes to preciousRewardPool]
    
```

3. User Staked prMAgic token :-

```mermaid
graph TD;
    U[User] -->|prMagicToken| S[1. Stakes to prMagicRewardPool]
    
```


4.  Reward Token Flow for both StakingContract :-
for an example if we think protocl yield about 500 magic token.
Protocol will send 200 magic token to prMagicRewardPool,  400 to preciousRewardPool  and other purpose is 100 magic token
```mermaid
graph TD;
    U[User] -->|MagicDepositor Contract| E
    E[1. EarMark reward] --> |Call to queueNewRewards of both rewardPool with respective percentage | R[2. Reward Added to both pool i.e prMagicRewardPool and preciousRewardPool]
    
    R -->  S[3. User will claim rewards from respective rewardPool ] 
    
    S  --> C[4. Before Claiming Reward , claimed magic will deposit to magicDepositor]
    
    C --> RS[5. Same 1st process will restart i.e User Staked/Mint prMagic token ]
    
```