# Points Calculation

## Points Rules

This chapter describes how points are calculated, settled, ranked, and configured in the **1perp Aggregator**.

### Points Calculation

**Formula:**

```
Points = Base Points × Exchange Multiplier × (1 + Active Streak Bonus)
```

#### Base Points

**Formula:**

```
Filled Order Value (in USDT) ÷ 10
```

**Explanation:**

* Every **10 USDT of trading volume = 1 point**.
* The notional value is calculated in USDT at the time of execution.
* Only **filled trade amounts** (executed orders) are counted.

#### Exchange Multiplier

| Exchange  | Multiplier | Description                            |
| --------- | ---------- | -------------------------------------- |
| **Aster** | 1.0x       | Main promoted venue with default bonus |
| **Other** | —          | Not included in current season         |

> ⚙️ *This parameter is configurable in the admin panel and can be adjusted dynamically.*

#### Active Streak Bonus

| Consecutive Trading Days | Bonus Rate | Description         |
| ------------------------ | ---------- | ------------------- |
| ≥ 3 days                 | +5%        | Lightly active      |
| ≥ 7 days                 | +10%       | Consistently active |
| ≥ 14 days                | +15%       | Highly active       |

**Interruption Rule:**

* The streak resets if:
  * The user has **0 trading volume** for the day, **or**
  * The difference between two daily snapshots = 0.
* Snapshot interval: every **24 hours**.

***

#### Example

User A on Aster has been trading for 7 consecutive days.

* Trade volume difference: **25,000 USDT**
* Active streak: **7 days (+10%)**

**Calculation:**

```
Base Points = 25,000 ÷ 10 = 2,500 pts
Active Bonus = 2,500 × 10% = 250 pts
Final Daily Points = 2,750 pts
```

### Settlement Rules

| Item                   | Description                                                           |
| ---------------------- | --------------------------------------------------------------------- |
| **Data Scope**         | Only orders executed via the **1perp aggregator → Aster**             |
| **Data Source**        | Filled trade amount (TradeAmount)                                     |
| **Settlement Cycle**   | T+1 — every day at **00:00 UTC**, previous day’s points are finalized |
| **Calculation Method** | Compare with previous day’s snapshot and record the delta             |
| **Season Settlement**  | *To be defined*                                                       |
| **Display Precision**  | Two decimal places                                                    |

### Leaderboard Rules

| Type            | Description                                                 |
| --------------- | ----------------------------------------------------------- |
| **My Points**   | Displays user’s rank, total points, daily gain, and history |
| **Leaderboard** | Displays the Top 100 addresses by total points              |

**Ranking Criteria:**

1. Sorted by total season points (descending)
2. For ties, the user who reached the score earlier ranks higher

**Update Frequency:** Daily (T+1)

### Notes

* Points are counted **only for successfully filled orders** (pending or canceled orders are excluded).
* Daily points are finalized and immutable after T+1 settlement.
* Abnormal trading activities (e.g., wash trading, self-dealing) will result in point removal or suspension.

### Summary

> For every **10 USDT traded**, you earn **1 point**.\
> Consecutive trading days grant additional bonus points.\
> Points are finalized daily (T+1) and reflected in the leaderboard for transparent season rewards.

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nofa.gitbook.io/1perp/season-0-points-farming/points-calculation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
