> For the complete documentation index, see [llms.txt](https://docs.napier.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.napier.finance/curate/napier-curation/manage-market/deploy-oracles/deploy-deterministic-oracles.md).

# Deploy Deterministic Oracles

Curators can deploy a Napier Deterministic Oracles from their markets via the Curator Dashboard.&#x20;

### What You'll Find Here

We assume you want to integrate PT and LP oracles into your system. In this guide, you will:

* Configure the **PT and LP oracles**.
  * Choose, per your use case, a price oracle for **any market’s PT or LP**.
  * Set an appropriate **Discount factor**.
  * **Deploy** the oracle and obtain its feed/endpoint.
* **Validate** the oracle to ensure it’s working correctly.

***

### Using the Napier Oracle

Follow the steps below to deploy a Napier Oracle.

{% stepper %}
{% step %}

### Step 1: Preparation

Before Configuring the oracle, you will prepare:

#### Before Configuring the Oracle

* Access the **Curator Dashboard**.
* If your account is not verified, complete verification under [**Verify Curator Account**](/curate/napier-curation/verify-curator-account.md).
* If you haven’t created a market yet, follow the steps in [**Create Market**](/curate/napier-curation/create-market-napier-amm.md).
* Once you finish creating a market, it will appear in your Curator Dashboard.

#### **C**larify the prerequisites

* If you haven’t learned how Napier market work, start with [**Markets - Napier AMM**](/learn/protocols/markets-napier-amm.md)**.**
* If you haven’t learned how Napier’s oracles work, start with Napier Oracles (Github)
  {% endstep %}

{% step %}

### **Step 2: Scoping**

Select the following parameters ([Github](https://github.com/napierfi/napier-v2/blob/d9648b23e337322defedf95b282d3c4bbacd294e/test/lens/uniswap/TokiLinearChainlinkOracle.t.sol#L39-L40))

<div align="left" data-with-frame="true"><figure><img src="/files/kj2nvOl0FhXJuf8rveBf" alt="" width="563"><figcaption></figcaption></figure></div>

#### **Chose a Market**

* Select the market from which you want to source the oracle.

#### **Chose an Oracle Type**

When deploying the oracle, specify the type:

* **TWAP** or **Deterministic Oracles**
  * if you select the latter, follow [Deploy Deterministic Oracles](/curate/napier-curation/manage-market/deploy-oracles/deploy-deterministic-oracles.md).
* **Quote unit**: **Underlying asset** or **Asset**
  * i.e., price of PT in the underlying unit vs. in the asset unit

{% hint style="success" %}

#### **Recommendation:** Price PT **against Underlying Assets** rather than against the **Asset**.

* **Why:** Many underlying assets (yield-bearing tokens) represent “assets staked in a specific protocol,” so the Asset price of that underlying is not strictly well-defined (redeemability, slashing risk, etc.). Therefore, a “perfect” **PT→Asset** price cannot be provided.
* **Example (PT-sUSDe / sUSDe, Asset = USDe):** Napier can guarantee that **1 PT-sUSDe** can be exchanged for **X sUSDe**, so a **PT→Underlying Assets** price exists natively.\
  By contrast, sUSDe→USDe redemption is not guaranteed; sUSDe’s “Asset” is actually **USDe staked in Ethena**, making the Asset-denominated price of the underlying not strictly well-defined.
* **Depeg behavior:** Even if **sUSDe depegs from USDe**, the **PT→sUSDe** conversion remains correct, since it relies on the Underlying assets side, not on external redeemability.
  {% endhint %}

#### **Set a Discount Factor**

Set the **discount factor** (`rateBps`) that determines the annualized linear slope until maturity.

{% hint style="info" %}
`rateBps` represents the annual slope, where 1 bps = 0.01%. Therefore, 10,000 bps = 100% per year.

* Example: `100 bps` → 1% annual discount rate
  {% endhint %}
  {% endstep %}

{% step %}

### Step 3: Price Retrieval

&#x20;Finally, deploy it and fetch the oracle.

#### Deploy the Oracle <a href="#step-1-deploy-the-oracle-if-not-already-deployed" id="step-1-deploy-the-oracle-if-not-already-deployed"></a>

Deploy the oracle here ([Github](https://github.com/napierfi/napier-v2/blob/d9648b23e337322defedf95b282d3c4bbacd294e/test/lens/uniswap/TokiLinearChainlinkOracle.t.sol#L20C4-L41C6))

#### Call the Oracle <a href="#step-2-call-the-oracle" id="step-2-call-the-oracle"></a>

Price can be obtained simply by calling the `latestRoundData()` function. ([Github](https://github.com/napierfi/napier-v2/blob/d9648b23e337322defedf95b282d3c4bbacd294e/src/oracles/chainlink/TokiTWAPChainlinkOracle.sol#L76))
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.napier.finance/curate/napier-curation/manage-market/deploy-oracles/deploy-deterministic-oracles.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
