# Lilybit_ Rewards have Landed!

## A detailed guide to the Lilybit_ Reward Calculations for Resource Providers

**TLDR Overview:**

GPUs contributing to the Lilypad Network can earn Lilybit_ credits daily

These credits will be redeemable for Lilypad (LP) Mainnet Tokens at TGE (expected in Q4, 2024)

Approximately 10% of mainnet LP tokens have been earmarked for the IncentiveNet program (with anywhere up to 15% being provided depending on demand)

70% of Lilybit_ credits are earmarked to go to compute providers for their essential participation in the Lilypad compute network

The earlier a compute provider participates in the network, the more rewards are available to earn (the algorithm for rewards decreases in 2 weekly phases by 10% each time)

Nodes must be online for a minimum of 4 hours a day continuously (verified with POW efforts) to earn that day’s Lilybit_ rewards.

A 4x multiplier on this base daily rate is available for nodes that are online and taking jobs over the full day (This is calculated with 1.3195^(number of 4 hour windows GPU is online)). Put another way, this is an exponential curve multiplier, rather than a linear multiplier to determine

The power of the compute being contributed also provides a point multiplier, with the hashrate of a node (determined by the required POW algorithm) determining the multiplier given to a node’s power. 10 points are rewarded for every MHash/sec provided to the network.

In order to incentivise long term participation in the network, a node will be slashed 10% of their total number of points (earned by providing compute power) each day that node isn’t online for at least 4 hours continuously.

# Lilypad Network Overview

At its base layer, Lilypad offers a coordination platform for compute, bringing together the exponentially rising user demand for compute services & hardware with compute providers who can add new revenue streams and optimized efficiency to their hardware business.

A key differentiator and advantage for the Lilypad Network is that unlike other compute marketplaces, which offer hardware in time-based increments requiring users to configure and set them up for the purpose and which generally rely only on a loose reputation system to ensure trust, Lilypad uses a **job-based** system with verification built into the protocol. (note) This unique mix of on-chain and off-chain features ensures that the compute network is efficient & performant while being verifiably trusted.

Jobs on the Lilypad network are called modules. These modules are containerized scripts (docker images) or arbitrary WASM code with a Lilypad spec attached to them (located on Git Hub), which forms the basis of coordinating match-making between a job and a compute machine. (note) In time, this match-making algorithm will become increasingly sophisticated, with the potential for agents to do the deals for both the nodes and the users.

This module system turns Lilypad into a powerful, performant and competitively priced 3 sided marketplace. Developers have full flexibility over the type of compute they want to run - by creating their own unique modules. They can then hand off the job of computing to the Lilypad network and integrate the intuitive serverless, API-like DX into almost any work flow, and they are even able to attach a fee to the running of the module, bootstrapping a module marketplace system.

Its this module system that allows Lilypad to become a backend for compute, and for developers to be able to offload the need to host and run large modules to the Lilypad compute platform, as well as giving Lilypad the ability to integrate with a multitude of other agents, protocols and projects to provide an open infrastructure stack which can form the basis of a full-featured decentralised AI ecosystem.

# IncentiveNet Overview

Lilypad is working at the cutting edge of what’s possible in research and technology. In order to ensure the Lilypad Network is market ready, performant & secure and to help bootstrap growth, Lilypad is launching the Lilypad Incentivised Testnet (or IncentiveNet)!

The **IncentiveNet will run continuously from June 2024** through to the offical launch of Lilypad on mainnet - anticipated in Q4 2024, and will offer rewards to those participants providing services, utility and value to the Lilypad Network in the form of Lilybit_ credits.

These Lilybit_ reward points will be redeemable, for the Lilypad ERC20 Utility Token at Mainnet Launch. **Approximately 10% of mainnet LP tokens** have been earmarked for the IncentiveNet program (with **anywhere up to 15%** being provided depending on demand and tokenomics finalisation) being allocated to this phase of the Lilypad Network.

Earning Lilybit_ credits is directly relatable to useful work being performed on the network or on behalf of the project goals, with these goals also being holistic in nature to encompass the need for business validation and community education initiatives, and to build a general lifecycle loops for feedback and improvements in the network.

The **goals for the Lilypad IncentiveNet Program** fall into the following main categories:

Network Growth Goals (→ supply, jobs and ecosystem)

Network Security & Readiness Goals (Testing in Real-world conditions)

Community Building, Engagement and Education Goals

Market Readiness, Research, Product Testing & Business Validation Goals

The overall distribution of the Lilybit_ reward credits will be heavily skewed in favour of those providing essential services to the network growth - being the GPU compute providers, with a rough heuristic of **70% of rewards being directed towards network growth goals and 30% towards all other activities**. Lilypad aims to recognise the contribution of all types of community members, including non-technical participants who will also be able to earn rewards for their value add activities in the Lilypad Network - **some of these participatory points will be calculated & applied retroactively & will not be known in advance to the community.**

## IncentiveNet Timeline

The Lilypad Incentivised Testnet will focus on specific areas of network growth in stages of reward activities leading up to mainnet release, and will run parallel reward tracks alongside the main phase network growth goal.

The full details for the main focus of each stage of the IncentiveNet goals will be released before launch.

The table below helps to simplify the release phases and provide some potential community participation items:

Stage | Main Incentive Focus | Dates (maybe use weeks?) | Requirements | Parallel Effort 1 | Parallel Effort 2 | Parallel Effort 4 | Community |

1 | GPU Onboarding | June, July (ongoing to mainnet) | Installation Reliability | Metrics Dashboard | Costing & network & infra reliability | ETHCC Use Cases | OSS docs contributions, DX contributions, community growth (ongoing) |

2 | Module Onboarding | August | Module Marketplace | Reputation system & market matching | Non-determinism with Lilypad | Tokenomics | Tutorials & educational threads in mutliple languages |

3 | Plugins & Integrations | September | Multi-chain deployment | Smart Contract Auditing | Partnerships & Use Cases | Auditing & Game Theory Testing | |

4 | APIs & SDKs | October, November | LilySaaS launch | Marketing campaign | Game Theory testing | Hacktoberfest | |

5 | Downstream Apps & DApps | Oct, November | Mainnet launch (Q4 2024) |

# We're Live & Onboarding GPUs NOW!

## Stage 1 Overview

The focus of Stage 1 of the Lilypad Incentivised Testnet is onboarding compute supply - GPU’s - to the network. The incentives for Resource Providers (RPs) will be available to earn throughout the entirety of the IncentiveNet program.

## Aims of Stage

**Main Aims**

Onboard long-term Compute Providers (GPUs) to the network

Encourage feedback on tooling, logging, metrics & other network requirements

Build relationships with compute providers and the community

**Other Aims**

Build, develop & test network reliability, market matching, costing mechanisms, verification & performance

Encourage Opensource & documentation contributions

Encourage educational content creation

Grow & engage a supportive and knowledgeable community

## Lilybit_ Reward Point Allocation - Compute Providers

Early Resource Providers (RPs) participating in the Lilypad IncentiveNet Program will receive Lilybit_ points for providing compute power to the network, which will be redeemable for Lilypad tokens in future.

The amount of rewards available to Resource Providers is based on

Power of compute supplied (based on hashrate and POW algorithm - NB: only NVIDIA GPUs are initially eligible)

Time online & accepting jobs on the network daily

How early a node joins IncentiveNet to provide compute

Continuity of time on the network throughout the IncentiveNet rewards period leading up to mainnet and the Lilypad Token Generation Event (TGE).

💡 *Note: Lilypad reserves the right to allocate bonus points - for highly participatory parties, or to deduct points from actors found to be cheating the overall program spirit or operating in a way that is not constructive to the growth of the Lilypad Network and it’s overall goals.

## Lilybit_ Reward Allocation Mechanism’s

### Base Rewards

Resource Providers contributing (Nvidia) GPU power to the Lilypad Network can earn a base number of daily Lilybit_ credits when they are online and accepting jobs for a minimum of 4 continuous hours in any one day.

The Base Rewards available to a node (or RP) will be determined by

The Time a node is online each day (in continuous 4 hour segments)

The Phase of the IncentiveNet Program (where a phase is a 2 weekly time period)

The Compute Power a node provides to the network (measured in MHash/seconds)

The Continuity of Participation a node has in the network over time

### Fortnightly Reward Phases: Phase Function 𝛽=0.9

The base number of rewards available each day will depend on the phase that the IncentiveNet is at, with a phase being equal to a time period of 2 weeks.

In order to provide an incentive for early adopters (the early frog gets the best flies!), the earlier the phase, the more rewards will be available, with a step down method used to reduce the number of rewards available each phase (every 2 weeks).

Each phase the number of Lilybit_ rewards able to be earned for the same compute task will be reduced by 10%.

This means that the earlier a RP joins, the more points are available to be earned, with the step down delta being equal to 0.9, meaning the number of points for a given action in each phase is only worth 90% that of the phase before it.

This function is shown in Figure 1 and can be described by the mathematical equation below:

where

*P*= Lilybit_ reward points,*ph*= phase,𝛽 = 0.9,

*i*= phase number

**Points Multiplier per Phase Graph**

Figure 1: Points Multiplier per phase

**Points Multiplier per Phase Table**

Below are the first 5 phases alongside their corresponding dates & the multiplier for it

Phase Number | Phase multiplier (= 0.9^phase number) | Dates |

0 | 0.9^0 = 1 | 24/6 - 14/7 ** |

1 | 0.9^1 = 0.9 | 15/7 - 28/7 |

2 | 0.9^2 = 0.81 | 29/7 - 11/8 |

3 | 0.9^3 = 0.729 | 12/8 - 26/8 |

4 | 0.9^4 = 0.6561 | 26/8 - 8/9 |

5 | 0.9^5 = 0.596049 | 9/9 - 15/9 |

… to mainnet | Q4 2024 |

### Compute Power Multiplier

In order to measure compute power in the network, Lilypad will require a GPU Proof of Work algorithm to be submitted by nodes on the network.

This POW will run each hour on the hour and once randomly during each hour to ensure nodes are participating in good faith. This POW submission will provide a hash rate for each node - a measure of the computational power (in hash/s) of a Resource Provider.

The proof of work mechanism is shipped with the Lilypad Node installation, and nodes - identified by their unique wallet address, will listen for the POW smart contract event to be triggered. Once the event is broadcast, a node has one minute to calculate and submit their GPU POW.

Each MHash/second contributed by a resource provider earns 10 Lilybit_ reward points - provided they meet the baseline criteria of being online and accepting jobs for 4 hours continuously during any daily period.

This equation is given by the following:

*Rpow[k] = Pph[i]PcomH[k]*

where

*Pcom*= 10 Lilybit_ points*H*is the hashrate in Mh/s (Mega-hashes per second)*k*is the POW instance*H[k]*is the hashrate in Mh/s (Mega-hashes per second) provided from POW instance k

**Compute Multiplier Table**

Example Table for a Resource Provider contributing 1000MHash/second to the network.

NB: 1000MHash/second would be the sum of all POW hash numbers for one 4 hour time period)

Phase Number | Phase Multiplier (= 0.9^phase number) | Dates | Lilybit Points for a Node Contributing 1000 MHash/s in One 4 Hour Time Period (= 1000 x 10 x Phase Multiplier) |

0 | 0.9^0 = 1 | 24/6 - 14/7 ** | 1000 x 10 x 1 = 10000 |

1 | 0.9^1 = 0.9 | 15/7 - 28/7 | 1000 x 10 x 0.9 = 9000 |

2 | 0.9^2 = 0.81 | 29/7 - 11/8 | 1000 x 10 x 0.81 = 8100 |

3 | 0.9^3 = 0.729 | 12/8 - 26/8 | 1000 x 10 x 0.729 = 7290 |

4 | 0.9^4 = 0.6561 | 26/8 - 8/9 | 1000 x 10 x 0.6561 = 6561 |

5 | 0.9^5 = 0.596049 | 9/9 - 15/9 | 1000 x 10 x 0.596049 = 5960.49 |

… to mainnet | Q4 2024 |

### Time Online Multiplier

Nodes can earn more rewards for being online more!

The baseline requirement for a node to earn Lilybit_ rewards in any one day is to be online and accepting jobs for a 4 hour continuous period.

In order to incentivise people to onboard compute and keep that compute active, Nodes can earn up to 4 x this baseline reward by being online and accepting jobs for the full 24 hours in a day.

The time multiplier calculation is based on an exponential curve rate of the number of 4 hour continuous time windows a node provides resources

The equation for this is given by:

$$R_{day}[j]=1.3195^{(Npow-1)} \Sigma_{k=1}^{K}(R_{PWO}[k])$$

where

*K*is the number of POWs in a day*Npow*is any block of 4 consecutive POWs passed.*1.3195(Npow-1)*is the daily time multiplier that makes it such that any RP who stays online all day and passes all POW tests will receive a 4X multiplier to their daily points -> since 1.3195(Npow-1) = 1.3195(6-1) = 4.

Note that any amount beyond Npow= 1, will earn some multiplier on an exponential slope.

For example, a node contributor returns the following POW Hashrates in a 4 hour period: NB: The 9th POW in a 4 hour window is checked also with the hashrate needing to be at least 3/4 of the average of the 8 previously provided to ensure that a node doesn’t simply disconnect GPUs.

Hour | POW time UTC | Hashrate (MHash/s) | Cumulative Hashrate (MHash/s) |

1 | 00:00:00 | 100 | 100 |

1 | 00:05:35 | 200 | 300 |

2 | 01:00:00 | 50 | 350 |

2 | 01:44:01 | 200 | 550 |

3 | 02:00:00 | 100 | 650 |

3 | 02:51:11 | 200 | 850 |

4 | 03:00:00 | 50 | 900 |

4 | 03:23:77 | 100 | 1000 |

RESET | |||

5 ←checked! | 04:00:00 | 200 (ok! greater than 1000/8 !) | 200 (start of new 4 hour window) |

5 | 04:01:10 | 150 | 350 |

**Time Multiplier Table**

Example Table for a Resource Provider contributing a total of 1000MHash/second to the network in each 4 hour period of time.

NB: In this table the equation has been slightly simplified as the sum of the hashrate in every 4 hour period is held constant.

Number of 4 Hour Continuous Periods Node Contributes 1000 MHash/sec of Compute Resources to the Network (Npow) | Lilybit Points for a Node Contributing 1000 MHash/s for Given No. of 4hr Windows (Npow) = 1000 x Npow x 10 x 1.3195^(Npow - 1) |

1 | 1000 x 1 x 10 x 1.3195^(1-1) = 10000 x 1.3195^0 = 10000 Lilybit points |

2 | 1000 x 2 x 10 x 1.3195^(2-1) = 20000 x 1.3195^1 = 26390 Lilybit points |

3 | 1000 x 3 x 10 x 1.3195^(3-1) = 30000 x 1.3195^2 = 52232.4075 Lilybit points |

4 | 1000 x 4 x 10 x 1.3195^(4-1) = 40000 x 1.3195^3 = 91894.215595 Lilybit points |

5 | 1000 x 5 x 10 x 1.3195^(5-1) = 50000 x 1.3195^4 = 151568.021947 Lilybit points |

6 (Max in a day → 6 x 4 = 24 hours) | 1000 x 6 x 10 x 1.3195^(6-1) = 60000 x 1.3195^5 = 239992.805793 Lilybit points |

As we can see, the rewards multiplier can have a significant impact on rewards earned in a day.

## Complete Calculation

**Complete Calculation Example Table** NB: To simplify things, 1000MHash/second is assumed to be the cumulative sum of all POW hashrates returned in a 4 hour window (with none missed) as shown in the Time Multiplier section.

Phase + multiplier (= 0.9^phase number) | Base points available for a 1000MHash/sec node online for 4 hours a day (Npow = 1) | Base points available for a 1000MHash/sec node online for 8 hours a day (Npow = 2) | Base points available for a 1000MHash/sec node online for 24 hours a day (Npow = 6) |

1000MHash/sec Npow 10 (Lilybit_’s) phase multiplier (0.9^phase number) | 1000MHash/sec Npow 10 (Lilybit_’s) phase multiplier (0.9^phase number) 1.3195 ^ (2 4hr_Windows-1) | 1000MHash/sec Npow 10 (Lilybit_’s) phase multiplier (0.9^phase number) 1.3195 ^ (6 4hr_Windows-1) | |

0 | |||

[0.9^0 = 1] | 1000 x 10 x 1 | ||

\= | |||

10000 Lilybit_’s | 10000 x 2 x 1.3195^1 | ||

\= | |||

26390 Lilybit_’s | 10000 x 6 x 1.3195^5 | ||

\= | |||

239992.8 Lilybit_’s | |||

1 | |||

[0.9^1 = 1] | 1000 x 10 x 0.9 | ||

\= | |||

9000 Lilybit_’s | 9000 x 2 x 1.3195^1 | ||

\= | |||

23751 Lilybit_’s | 9000 x 6 x 1.3195^5 | ||

\= | |||

215993.53Lilybit_’s | |||

2 | |||

[0.9^2 = 0.81] | 1000 x 10 x 0.81 | ||

\= | |||

8100 Lilybit_’s | 8100 x 2 x 1.3195^1 | ||

\= | |||

21375.9 Lilybit_’s | 8100 x 6 x 1.3195^5 | ||

\= | |||

194394.17 Lilybit_’s | |||

3 | |||

[0.9^3 = 0.729] | 1000 x 10 x 0.729 | ||

\= | |||

7290 Lilybit_’s | 7290 x 2 x 1.3195^1 | ||

\= | |||

19238.31 Lilybit_’s | 7290 x 6 x 1.3195^5 | ||

\= | |||

174954.76 Lilybit_’s | |||

4 | |||

[0.9^4 = 0.6561] | 1000 x 10 x 0.6561 | ||

\= | |||

6561 Lilybit_’s | 6561 x 2 x 1.3195^1 | ||

\= | |||

17314.48 Lilybit_’s | 6561 x 6 x 1.3195^5 | ||

\= | |||

157459.28 Lilybit_’s | |||

5 | |||

[0.9^5 = 0.596049] | 1000 x 10 x 0.596049 | ||

\= | |||

5960.49 Lilybit_’s | 5960.49 x 2 x 1.3195^1 | ||

\= | |||

15729.73 Lilybit_’s | 5960.49 x 6 x 1.3195^5 | ||

\= | |||

143047.47 Lilybit_’s | |||

etc… (to mainnet Q4) |

**special 3 week calibration & release phase → all other phases are 2 week periods

### Continuous Node Service & Point Slashing

Lilypad is seeking to reward node providers who see Lilypad as a long term project with serious potential to disrupt, innovate and grow.

To achieve the goal of incentivising real resource providers to the Lilypad Network, a slashing mechanism has been implemented which will deduct points from nodes that become unresponsive or stop providing resources to the Lilypad Network.

This mechanism disincentives both those actors seeking to farm points on multiple wallets and those actors seeking only to earn valuable early points without making a long term commitment to provide compute power and help build out the Lilypad decentralised compute network.

If a node stops providing compute for the minimum 4 hour window on any one day, their total points accumulated in earlier deployments will be slashed by a factor of 10%. While this number sounds like a lot, if an RP were to come online at the beginning of day 1 of a particular phase, and then remain offline for the remainder of the phase (13 days), they would still have 0.913 = 25% of their earned Lilybit_ points remaining.

For a user offline for a consecutive 24 hours, the slashing calculation is given by

*Rday[j] = (1-S)Rday[j-1]*

where

*S*is the percent of points slashed

If you are offline for 24 hours, your points will drop to (1-S) of what they were on the day before, and each consecutive 24 hour period offline results in another S slashing.

NB: This slashing calculation only applies to rewards earned for providing compute to the network and not other participation tasks in the network that are subject to their own mechanisms. So for example if you earned 10000 rewards for contributing compute and 100 for an OSS contribution (for example), only the 10000 Lilybit_’s would be subject to the slashing.

### Points Calculation Code

Here’s a simplified pseudo-code example which defines the implementation of the rewards algorithm. The full calculation script will be available in the Lilypad Github Repo shortly (psst - why not star us while you’re there… you never know what rewards may be applied for activity on the Lilypad Network!)

```
const firstPhase = 0
var currentPhase = detectCurrentPhase()
const phaseMultiplier = 0.9
const pointsPerMegaHashesPerSecond = 10
var basePointsAvailableThisPhase = pointsPerMegaHashesPerSecond * phaseMultiplier
//it's the 4x multiplier for dailyrewards
const clintsConstant = 1.3195
//wallet address is being used as the node id
//BUT, there can be many bacalhau node id's to one wallet address
var walletAddress
const slashPcntPerDay = 10%
func sumOfWalletAddressHashRatesForDay(walletAddress) {
//sum all hashrates for this walletAddress
//only include in the sum of it was part of a contiguous 4 hour sequence of valid PoW submissions
//hasrate rates not part of a continuous 4 hour sequence don't get counted
}
func getAllPoWSubmissionsForDay(walletAddress) {
//returns array of ValidPoWSubmissions
//probably from postgres
}
//no slashing here yet
func calculateRewardsForDay(walletAddress) {
4hourWindowCount = countOf4HourWindows(walletAddress)
if (4hourWindowCount < 1) {
slashRewards(walletAddress)
} else {
rewards = clintsConstant^(4hourWindowCount -1) *
sumOfWalletAddressHashRate(walletAddress)
}
}
//no slashing here yet
func saveRewardsToDatabase(walletAddress, rewards) }
/*
TABLE: rewards_history_per_wallet
walletAddress | rewards | date | reward_type
TABLE: total_reward_for_wallet
walletAddress | total_reward
*/
}
func getSumOfRewardsForWalletAddressSoFar(walletAddress) {
//get from db
}
func slashRewards(walletAddress) {
rewards = getSumOfRewardsForWalletAddressSoFar(walletAddress)
return (1 - slashRatePctPerDay)*rewards
}
```

### Calculation Model

You can model this calculation yourself using the mathematical model in the Lilypad Github repo here: https://github.com/Lilypad-Tech/tokenomics_modeling

Don’t forget to star us while you’re there - you never know what rewards may be applied for activity on the Lilypad Network!

Get the Pdf here

### Caveats

This is the first implementation of the rewards mechanism for the IncentiveNet. Some of the mechanisms that allocate rewards to resource providers may change in future iterations. As much as is possible, these changes will be designed to NOT impact a node in a negative way, however there may be some instances, especially considering that IncentiveNet is validating Lilypad’s underlying protocol logic and code, where this is not the case. Lilypad will do it’s best to ensure that all voices are heard however and strive to keep the allocation of rewards fair.

Lilypad also reserves the right to alter points allocations based on activity suspected of breaking the spirit of the IncentiveNet Program, not operating in good faith or being deliberately malicious