Skip to content

Commit 5f069f9

Browse files
committed
Design principles and implementation of OIS
1 parent 9896683 commit 5f069f9

File tree

5 files changed

+48
-7
lines changed

5 files changed

+48
-7
lines changed

components/StakingCapBar.tsx

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState } from 'react';
1+
import React, { useState } from "react";
22

33
const StakingCapBar = () => {
44
const [maxRewardRate, setMaxRewardRate] = useState(10);
@@ -10,7 +10,10 @@ const StakingCapBar = () => {
1010
<div className="flex flex-col items-start p-4 max-w-md">
1111
<h2 className="text-xl font-bold mb-2">Example:</h2>
1212
<div className="mb-4 w-full">
13-
<label htmlFor="rewardRateSlider" className="block text-sm font-medium text-gray-700 mb-1">
13+
<label
14+
htmlFor="rewardRateSlider"
15+
className="block text-sm font-medium text-gray-700 mb-1"
16+
>
1417
Max Reward Rate: {maxRewardRate}%
1518
</label>
1619
<input
@@ -24,7 +27,7 @@ const StakingCapBar = () => {
2427
/>
2528
</div>
2629
<div className="relative w-full h-8 bg-gray-200 rounded">
27-
<div
30+
<div
2831
className="absolute top-0 left-0 h-full bg-blue-500 rounded"
2932
style={{ width: `${maxRewardRate}%` }}
3033
></div>
@@ -33,9 +36,11 @@ const StakingCapBar = () => {
3336
<span className="text-sm font-semibold">100%</span>
3437
</div>
3538
</div>
36-
<p className="mt-2 text-sm text-gray-600">Max Reward Rate = {maxRewardRate}%</p>
39+
<p className="mt-2 text-sm text-gray-600">
40+
Max Reward Rate = {maxRewardRate}%
41+
</p>
3742
</div>
3843
);
3944
};
4045

41-
export default StakingCapBar;
46+
export default StakingCapBar;

pages/home/pyth-token.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Please note that the scope of community governance proposals may be expanded if
3030

3131
The Pyth Network is built to provide decentralized applications with reliable and trustworthy data. The quality of the data it provides is paramount for these application's functions and the network's overall success.
3232

33-
Pyth's [Oracle Integrity Staking] (OIS) concentrates on producing quality data in the hands of a limited set of semi-trusted entities to achieve more coverage and lower latency than the competition. The responsibility of Publishers over data quality is not just ethical but also incentivized through economics:
33+
Pyth's [Oracle Integrity Staking (OIS)](/home/pyth-token/oracle-integrity-staking) concentrates on producing quality data in the hands of a limited set of semi-trusted entities to achieve more coverage and lower latency than the competition. The responsibility of Publishers over data quality is not just ethical but also incentivized through economics:
3434

3535
- **Staking and Slashing:** Publishers can self-stake PYTH tokens as collateral. It also allows other stakers to choose publishers to delegate their PYTH tokens. In the event of data inaccuracies or inconsistencies, a portion of this stake can be slashed as a penalty. This mechanism ensures that publishers have a vested interest in providing accurate data
3636
- **Reputation:** The reputation of data publishers is directly linked to the quality of data they provide. Publishers with a track record of providing accurate data are more likely to be trusted and attract more interest.

pages/home/pyth-token/_meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"oracle-integrity-staking": "Oracle Integrity Staking (OIS)",
23
"pyth-distribution": "PYTH Token Distribution",
34
"pyth-token-addresses": "PYTH Token Contract Addresses"
45
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Oracle Integrity Staking (OIS)
2+
3+
This document outlines the design principles and implementation details of the Oracle Integrity Staking (OIS) protocol.
4+
5+
## Design Principles
6+
7+
OIS's economic design focuses on awarding and penalizing Stakers over the primary dimension of data accuracy.
8+
Stakers receive rewards from an open-ended pool for helping to ensure data quality. They will also have their stake slashed as a penalty for failing to maintain data accuracy.
9+
10+
The core design principles behind OIS include the following:
11+
12+
- Integrity Staking secures all current and future price feeds produced by the Pyth Network.
13+
- Data Publishers are individually responsible for data accuracy.
14+
- Rewards and penalties are proportionate to the stake assigned to each publisher. Delegators share in the risk-reward of the publisher(s) they assign their stake to.
15+
- A higher number of publishers for each price feed contributes positively to the security of such feed.
16+
- Staking for OIS is complementary to Staking for Governance, and eligible $PYTH tokens can be used for both purposes.
17+
- The ability to slash stake in OIS requires **unlocked** \$PYTH tokens, whereas Staking for Governance can use both locked and unlocked $PYTH tokens.
18+
- All parameter related to the OIS protocol are subject to the governance of the Pyth DAO.
19+
20+
## Implementation
21+
22+
OIS implements the principle above through the following structure:
23+
24+
1. OIS is subject to the same 7-day epoch as Governance voting. All parameters used in the OIS protocol are captured at each start of the epoch on Thursdays at 0:00 UTC and remain constant until the end of the epoch. Staking into OIS is also subject to warmup and cooldown period prior and post epoch respectively.
25+
26+
2. Each publisher is programmatically assigned a staking pool where they can self-stake and to which other stakers can delegate
27+
- The staking pool assigned to each publisher covers all price feeds/symbols they publish.
28+
- Each staking pool has a soft cap. This soft cap dynamically expands and shrinks given the number of symbols published by the assigned publisher.
29+
- Price feeds with a low number of publishers contribute less to the cap's expansion.
30+
- Staking into the pool can exceed the soft cap. However no rewards are paid nor penalties are levied on the excess amount.
31+
- The OIS protocol prioritizes self-stake attributed to the **publisher's stake** when distributing rewards to the publisher's pool.
32+
- All staking pools charge the same delegation fee for stakers who are delating stake to one or many pools.
33+
3. Each pool has a maximum reward rate per epoch, which applies only to the staked amount within the soft cap.
34+
4. The total amount of rewards paid to all pools is bound by the same cap relative to the amount of rewards available to the OIS protocol.
35+
5. Slashing of stake has a hard cap and only impacts pools that assigned to publishers responsible for the poor data quality. Both self-stakers and delegators are also slashed proportionally to their staked amount in the impacted pools.

pages/home/pyth-token/ois/examples.mdx renamed to pages/home/pyth-token/oracle-integrity-staking/examples.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ $$
3333
$$
3434

3535
$$
36-
\text{Total Reward} \quad{R_p} = {r} \times {R_a} = 10\% \times 100 = 10
36+
\text{Total Reward} \quad{R_p} = {r} \times {E_p} = 10\% \times 100 = 10
3737
$$
3838

3939
$$

0 commit comments

Comments
 (0)