# Objective
Sonne stakers should be able to claim rewards for staking the SONNE token on BASE chain.
## Solution
A smart contract deployed on BASE with the following features
### 1. Oracle posts stateRoot
There is no Oracle at the moment that we can use. There is an L1Block precompile available; however, it doesn't fit our needs since it cannot be used to retrieve any older L1 blocks other than the latest. There might be other options (e.g., passing the stateroot as an argument in addRewards) we can consider to solve that problem.
Estimation: ??? Depends on the oracle solution we'd consider.
### 2. Reward distributor
Sonne team has to add a new emmission via a permissioned addRewards function. That function would transfer a given amount of tokens to the contract that than can be claimed by any eligible staker.
Estimation : 10-15h
### 3. Claim rewards
The Sonne team has to add a new emission via a permissioned 'addRewards' function. This function would transfer a given amount of tokens to the contract that can then be claimed by any eligible staker.
Estimation 32h
### 4. Compute merkle Proof
A TypeScript function that can be embedded into a dApp. This function computes the Merkle proof and lets the user execute 'claim' with the right arguments.
Estimation : 15h
### 4. Deployment
Sonne might want to automate the reward distribution with something like keeper