Skip to content

Commit

Permalink
Update PoR Wallet Address cross-chain reserves description (#1860)
Browse files Browse the repository at this point in the history
* Update PoR Wallet Address description

* Edits

* Clarify porSource labels (#1848)

* Update src/content/data-feeds/proof-of-reserve/index.mdx

Co-authored-by: Amine E. <aelmanaa@users.noreply.github.com>

* Remove Market Hours for PoR feeds

* Remove Starknet feeds temporarily to fix builds

* Apply new reporting terminology

* Edits

* Edits

* Edits

* Edits

---------

Co-authored-by: Amine E <aelmanaa@users.noreply.github.com>
  • Loading branch information
dwightjl and aelmanaa authored Apr 4, 2024
1 parent 348e109 commit fff299c
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 22 deletions.
10 changes: 5 additions & 5 deletions src/content/data-feeds/proof-of-reserve/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ To find a list of available Proof of Reserve Feeds, see the [Proof of Reserve Fe

## Types of Proof of Reserve Feeds

Reserves are available for both cross-chain assets and offchain assets. This categorization describes the data attestation variations of Proof of Reserve feeds and helps highlight some of the inherent market risks surrounding the data quality of these feeds.
Reserves are available for both cross-chain assets and offchain assets. This categorization describes the data reporting variations of Proof of Reserve feeds and helps highlight some of the inherent market risks surrounding the data quality of these feeds.

Reserves are available for both offchain assets and cross-chain assets. Token issuers prove the reserves for their assets through several different methods.

Expand All @@ -32,9 +32,9 @@ Offchain reserves are sourced from APIs through an [external adapter](/chainlink

Offchain reserves provide their data using the following methods:

- Third-party: An auditor, accounting firm, or other third party attests to reserves. This is done by combining both fiat and investment assets into a numeric value that is reported against the token.
- Third-party: An auditor, accounting firm, or other third party audits and verifies reserves. This is done by combining both fiat and investment assets into a numeric value that is reported against the token.
- Custodian: Reserves data are pulled directly from the bank or custodian. The custodian has direct access to the bank or vault holding the assets. Generally, this works when the underlying asset pulled requires no additional valuation and is simply reported onchain.
- ⚠️ Self-attested: Reserve data is read from an API that the token issuer hosts. Self-attested feeds carry additional risk.
- ⚠️ Self-reported: Reserve data is read from an API that the token issuer hosts. Reserve data reported by an asset issuer's self-hosted API carries additional risks. Chainlink Labs is not responsible for the accuracy of self-reported reserves data. Users must do their own risk assessment for asset issuer risk.

### Cross-chain reserves

Expand All @@ -44,8 +44,8 @@ Cross-chain reserves are sourced from the network where the reserves are held. C

Cross-chain reserves provide their data using the following methods:

- Wallet address manager: The project uses the [IPoRAddressList](https://github.com/smartcontractkit/chainlink/blob/master/contracts/src/v0.8/interfaces/PoRAddressList.sol) wallet address manager contract and self-attests to which addresses they own.
- Wallet address: The project attests which addresses they own through a self-hosted API.
- Wallet address manager: The project uses the [IPoRAddressList](https://github.com/smartcontractkit/chainlink/blob/master/contracts/src/v0.8/interfaces/PoRAddressList.sol) wallet address manager contract and self-reports which addresses they own. Reserve data reported by an asset issuer's self-reported addresses carries additional risks. Chainlink Labs is not responsible for the accuracy of self-reported reserves data. Users must do their own risk assessment for asset issuer risk.
- Wallet address: The project reports which addresses they own through a self-hosted API. Reserve data reported by an asset issuer's self-reported addresses carries additional risks. Chainlink Labs is not responsible for the accuracy of self-reported reserves data. Users must do their own risk assessment for asset issuer risk.

## Using Proof of Reserve Feeds

Expand Down
2 changes: 1 addition & 1 deletion src/features/feeds/callouts/por-wallet-address-manager.mdx
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
### Risks for Proof of Reserve feeds using the wallet address manager

Cross-chain Proof of Reserve feeds using wallet address manager contracts can vary in their configurations. If the wallet address manager is self-attested, these feeds might include reserve balances from onchain addresses that have not been cryptographically verified to show ownership or control. In circumstances where cryptographically verified ownership is not provided, there is a risk that token issuers could manipulate the value of a Proof of Reserve feed by adding more addresses to the address list even if they do not directly control these addresses. Each feed’s specific configuration is documented in the contract address section.
Cross-chain Proof of Reserve feeds using wallet address manager contracts can vary in their configurations. If the wallet address manager is self-reporting, these feeds might include reserve balances from onchain addresses that have not been cryptographically verified to show ownership or control. In circumstances where cryptographically verified ownership is not provided, there is a risk that token issuers could manipulate the value of a Proof of Reserve feed by adding more addresses to the address list even if they do not directly control these addresses. Each feed’s specific configuration is documented in the contract address section. Chainlink Labs is not responsible for the accuracy of self-reported reserves data. Users must do their own risk assessment for asset issuer risk.
16 changes: 3 additions & 13 deletions src/features/feeds/components/Tables.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -264,22 +264,12 @@ const ProofOfReserveTr = ({ network, proxy, showExtraDetails }) => (
</div>
<div>
<dt>
<span class="label">Attestation:</span>
<span class="label">
{proxy.docs.porSource === "Third-party" ? "Auditor verification:" : "Reporting:"}
</span>
</dt>
<dd>{proxy.docs.porSource}</dd>
</div>
{proxy.docs.marketHours && (
<div>
<dt>
<span class="label">Market hours:</span>
</dt>
<dd>
<a href="/data-feeds/selecting-data-feeds#market-hours" target="_blank">
{proxy.docs.marketHours}
</a>
</dd>
</div>
)}
</dl>
</div>
</td>
Expand Down
6 changes: 3 additions & 3 deletions src/features/feeds/components/pause-notice/PauseNotice.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ export const PauseNotice = ({
<img class={styles.icon} src={icons[type].src} />
<p class={styles.notice}>
The <a href={`https://etherscan.io/address/${feedAddress}`}>{feedName} feed</a> is paused due to lack of
attestation data. Read the <a href="/data-feeds/proof-of-reserve">Proof of Reserves</a> page to learn more
about data attestation types.
reporting data. Read the <a href="/data-feeds/proof-of-reserve">Proof of Reserves</a> page to learn more
about data reporting types.
</p>
</div>
</>
Expand All @@ -69,7 +69,7 @@ export const PauseNotice = ({
<>
<span
class={styles.banner + " " + styles.tooltip + " " + styles[type]}
tooltip-text="This feed is paused due to lack of attestation data."
tooltip-text="This feed is paused due to lack of reporting data."
>
<img class={styles.iconSmall} src={icons[type].src} />
<p class={styles.notice}>Paused</p>
Expand Down

0 comments on commit fff299c

Please sign in to comment.