Deploy Deterministic Oracles

Curators can deploy a Napier Deterministic Oracles from their markets via the Curator Dashboard.

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.

1

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.

  • If you haven’t created a market yet, follow the steps in Create Market.

  • Once you finish creating a market, it will appear in your Curator Dashboard.

Clarify the prerequisites

  • If you haven’t learned how Napier market work, start with Markets - Napier AMM.

  • If you haven’t learned how Napier’s oracles work, start with Napier Oracles (Github)

2

Step 2: Scoping

Select the following parameters (Github)

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

  • Quote unit: Underlying asset or Asset

    • i.e., price of PT in the underlying unit vs. in the asset unit

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

Set a Discount Factor

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

rateBps represents the annual slope, where 1 bps = 0.01%. Therefore, 10,000 bps = 100% per year.

  • Example: 100 bps → 1% annual discount rate

3

Step 3: Price Retrieval

Finally, deploy it and fetch the oracle.

Deploy the Oracle

Deploy the oracle here (Github)

Call the Oracle

Price can be obtained simply by calling the latestRoundData() function. (Github)

Last updated

Was this helpful?