Earning System

Point system for lending platform activity.

Overview

GM Points represent the user's positive-sum participation in the GM Lending platform. The main activities that earn points are below. See the Calculations section below for specific examples. Any other questions not answered here might be in the FAQs.

Base Points

To begin earning Points, you must lend at least 100 USDC to the protocol. Once you meet this requirement, you will immediately accrue Base Points for lending or borrowing USDC, without staking.

  • Lending:

    • Earn 2 Points for every dollar coin of USDC you lend per 1,000 seconds.

  • Borrowing:

    • Earn 1 Point for every dollar coin of USDC you borrow per 1,000 seconds.

Points are accrued over the program’s total duration.


Staking Boosts

For GLOOP stakers, Point calculations are boosted.

  • Boosts count only while your stake is locked.

  • Once your lock ends, you continue to earn Base Points only.

  • If you unstake before lock expiry, boosts stop immediately.

The longer you lock, the higher your boost:

Lock Period
Points Boost
Multiplier

0 days

10%

1.1×

14 days

25%

1.25×

28 days

50%

1.5×

56 days

100%

2.0×


Applying Boosts ("lesser of" rule)

For each 1 GLOOP staked, the boost % applies to $1 of the user’s lent funds and $1 of user's borrowed funds, up to their total funds of each. Put in other words:

  • For lending: boost applies only up to the lesser of staked GLOOP vs lent USDC.

  • For borrowing: boost applies only up to the lesser of staked GLOOP vs borrowed USDC.

Example: Stake 2,000 GLOOP tokens, lend $3,000 USDC, and borrow $1,000 USDC → Boost applies to only $2,000 of the lent USDC, but applies over the full $1,000 borrowed USDC


Point Parameters and Formulas

Base Lending Points = 2 points/dollar/second * USDC lent balance * (total seconds / 1,000)

Base Borrowing Points = 1 point/dollar/second * USDC borrowed balance * (total seconds / 1,000)

Boosted Lending Points = 2 points/dollar/second * min(S, L) * (multiplier - 1) * (t_locked / 1000)

Boosted Borrowing Points = 1 point/dollar/second * min(S, B) * (multiplier - 1) * (t_locked / 1000)

Users' Total Earned Points = Base Lending Points + Boosted Lending Points + Base Borrowing Points + Boosted Borrowing Points

Notes:

  • t_locked = seconds staked within staking period. Cannot be more than staking lock duration.

  • min(S, L) = the lesser of the staking $ and lent $ amounts.

  • min(S, B) = the lesser of the staking $ and borrowed $ amounts.

  • Elapsed time is calculated via lastUpdateTime, which is the last time the user transacted with the Lending Pool. This number gets updated to the timestamp of the block that the most recent transaction was executed in. So if a user borrows 10 days after their one and only deposit, then they will accrue points on that deposit for those 10 days, but not the immediate borrow, and the lastUpdateTime will be updated to the time of the borrow.

  • Once block.timestamp > lockPeriod end time, then points are not boosted, and the user only earns base points + default stake boost (10%). Once fully unstaked, user only earns points with no multiplier for lent/borrowed USDC.


End of Program and Claiming Points

After the Points Program ends, users do not need to claim points or do do anything to store their accumulated points. Information on airdrops will be released around that time.

You may withdraw funds at any time, however, to maximize point earning, keep at least the minimum amount of 100 USDC deposited until the program ends.


Quick Reference Table

This table shows a quick look at how points are boosted at each different level. The last column is the Total Points you would receive every 1,000 seconds.

Staked GLOOP

Lock Period

Lent USDC

Borrowed USDC

Boost Multiplier

Time Active

Time Locked

Base Lending

Boosted Lending

Base Borrowing

Boosted Borrowing

Total Points (per 1,000 seconds)

0

$1,500

$500

None

Full Program

3,000

0

500

0

3,500

500

0 days

$1,000

$0

1.1× (10%)

Full Program

0 days

2,000

+50

0

0

2,050

1,000

14 days

$1,000

$1,000

1.25× (25%)

Full Program

14 days

2,000

+250

1,000

+250

3,500

2,000

28 days

$3,000

$1,000

1.5× (50%)

Full Program

28 days

6,000

+1,000

1,000

+500

8,500

5,000

56 days

$2,000

$5,000

2.0× (100%)

Full Program

56 days

4,000

+2,000

5,000

+5,000

16,000


Point Calculation Examples

Assumptions: For all examples, the GM Points Program is 56 days, lending earns 2 points per dollar per second, and borrowing earns 1 point per dollar per second. The users have also deposited GM tokens enabled as collateral, so that they can borrow. The amount of GM tokens deposited doesn't matter for GM Point calculation purposes.

Example Calculation #1: Lending, Borrowing, and Staking

User actions:

  • Lend $3,000 USDC and borrow $1,000 USDC during the program.

  • Wait 28 days and then stake 2000 GLOOP with a 28-day lock (50% boost).

  • The program runs for the remaining 28 days

Breakdown:

  • 28 days of seconds = 28 * 24 * 60 * 60 = 2,419,200 seconds

  • 56 days of seconds = 56 * 24 * 60 * 60 = 4,838,400 seconds

  • Base Lending (56 days) = 2 * 3,000 * (4,838,400 / 1,000 seconds) = 29,030,400 Points

  • Boosted Lending (28 days) = 2 * 2,000 * 0.5 * (2,419,200 / 1,000 seconds) = 4,838,400 Points

  • Base Borrowing (56 days) = 1* 1,000 (4,838,400 / 1,000 seconds) = 4,838,400 Points

  • Boosted Borrowing (28 days) = 1 * 1,000 * 0.5 * (2,419,200 / 1,000 seconds) = 1,209,600 Points

Total = 29,030,400 + 4,838,400 + 2,419,200 + 1,209,600 = 37,497,600 Points

Example Calculation #2: Lending, Borrowing, Staking, Withdrawing

User actions:

  • Lend $3,000 USDC and borrow $1,000 USDC during the program.

  • Stakes 2,000 GLOOP with a 56-day lock (100% boost).

  • After 28 days, user withdraws 2000 of the 3000 USDC lent.

Breakdown:

28 days of seconds = 28 * 24 * 60 * 60 = 2,419,200 seconds

For the first 28 days:

  • Base Lending = 2 * 3,000 * (2,419,200 / 1,000 seconds) = 14,515,200 Points

  • Boosted Lending = 2 * 2,000 * 1 * (2,419,200 / 1,000 seconds) = 9,676,800 Points

  • Base Borrowing = 1 * 1,000 * (2,419,200 / 1,000 seconds) = 2,419,200 Points

  • Boosted Borrowing = 1 * 1,000 * 1 * (2,419,200 / 1,000 seconds) = 2,419,200 Points

Subtotal_first28 = 14,515,200 + 9,676,800 + 2,419,200 + 2,419,200 = 29,030,400

After 28 days, user withdraws 2000 lent USDC:

  • Base Lending = 2 * 1,000 * (2,419,200 / 1,000 seconds) = 4,838,400 Points

  • Boosted Lending = 2 * 1,000 * 1 * (2,419,200 / 1,000 seconds) = 4,838,400 Points

  • Base Borrowing = 1 * 1,000 * (2,419,200 / 1,000 seconds) = 2,419,200 Points

  • Boosted Borrowing = 1 * 1,000 * 1 * (2,419,200 / 1,000 seconds) = 2,419,200 Points

Subtotal_second28 = 4,838,400 + 4,838,400 + 2,419,200 + 2,419,200 = 14,515,200

Total Points = 29,030,400 + 14,515,200 = 43,545,000 Points

Last updated