最終更新:
編集

Oracle

(PriceOracle Amendment が必要です。)

[ソース]

Oracleのレジャーエントリには、単一資産の価格オラクルオブジェクトに関連するデータが格納されています。

注記

価格オラクルオブジェクトは、最大10個のトークンペアの情報を格納できます。

OracleのJSONの例

{
  "LedgerEntryType": "Oracle",
  "Owner": "rNZ9m6AP9K7z3EVg6GhPMx36V4QmZKeWds",
  "Provider": "70726F7669646572",
  "AssetClass": "63757272656E6379",
  "PriceDataSeries": [
    {
      "PriceData": {
        "BaseAsset": "XRP",
        "QuoteAsset": "USD",
        "AssetPrice": 740,
        "Scale": 3,
      }
    },
  ],
  "LastUpdateTime": 1724871860,
  "PreviousTxnID": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9",
  "PreviousTxnLgrSeq": 3675418
}

Oracleのフィールド

フィールドJSONの型内部の型必須?説明
Owner文字列AccountIDはいオラクルの更新および削除権限を持つXRPLアカウント。このアカウントでマルチシグを設定することをお勧めします。
Provider文字列Blobはいオラクルプロバイダーを識別する任意の値、例えば、Chainlink、Band、またはDIAなど。このフィールドは、最大256文字のASCII 16進エンコード文字(0x20-0x7E)の文字列です。
PriceDataSeries配列Arrayはいトークンペアの価格情報を表す、最大10個のPriceDataオブジェクトの配列。PriceDataオブジェクトが5個を超える場合、2つの所有者準備金が必要です。
LastUpdateTime数値UInt32はいUnix時間で表現された、データの最終更新時刻。
URI文字列Blobいいえ任意で指定可能なユニバーサルリソース識別子で、チェーン外の価格データを参照します。このフィールドは256バイトに制限されています。
AssetClass文字列Blobはい「通貨」、「商品」、「指数」などの資産の種類を説明します。このフィールドは、最大16文字のASCII 16進コード文字(0x20-0x7E)の文字列です。
OwnerNode文字列UInt64はいディレクトリが複数のページで構成されている場合、このエントリにリンクしているオラクル所有者のオーナーディレクトリのページを示すヒント。
PreviousTxnID文字列UInt256はいこのエントリを変更した前回のトランザクションのハッシュ値。
PreviousTxnLgrSeq文字列UInt32はいこのエントリが最後に変更または作成されたレジャーのインデックス。

PriceDataのフィールド

フィールドJSONの型内部の型必須?説明
BaseAsset文字列Currencyはい取引ペアにおける基軸となる資産。株式シンボル、債券CUSIP、通貨コードなど、有効な識別子であれば何でも使用できます。
QuoteAsset文字列Currencyはい取引ペアにおける見積資産。見積資産は、基軸資産の1単位の価格を示します。
AssetPrice数値UInt64いいえScaleの精度レベルを適用した後の資産価格。最後の更新トランザクションにBaseAsset/QuoteAssetのペアが含まれていなかった場合は、含まれません。
Scale数値UInt8いいえ資産価格に適用するスケーリング値。例えば、Scaleが6で元の価格が0.155の場合、スケーリング後の価格は155000となります。有効な範囲は0~10です。最後の更新トランザクションにBaseAsset/QuoteAssetのペアが含まれていない場合は、含まれません。

Oracleの準備金

Oracleオブジェクトは、1~5個のPriceDataオブジェクトを含む場合は1つの所有者準備金としてカウントされ、6~10個のPriceDataオブジェクトを含む場合は2つとしてカウントされます。

Oracle IDのフォーマット

OracleオブジェクトのIDは、以下の値を順番に連結したSHA-512Halfです。

  1. Oracleスペースキーy (0x52)
  2. OwnerのAccountID.
  3. OracleDocumentID.

Currencyの内部フォーマット

Currencyフィールドタイプには、通貨または資産コードを表す160ビットの任意データが含まれています。データがXRPLの通貨コードの標準フォーマットに一致する場合、APIはそれを"USD"などの文字列として表示します。一致しない場合は、40文字の16進数として表示されます。以下のJSONの例は、912810RR9/USDの取引ペアを表しています。BaseAssetはCUSIPコードの912810RR9を16進数文字列で表したものであり、QuoteAssetは標準の通貨コードであるUSDです。

{
  "PriceData" : {
    "BaseAsset" : "3931323831305252390000000000000000000000",
    "QuoteAsset" : "USD",
    "Scale" : 1,
    "SymbolPrice" : 740
  }
}