見出し画像

DefiLlama API (yields/APY編①)

前回の記事

今回は、DefiLlama APIを使ってAPYやイールドのデータを取得し、分析する

プールのデータを取得

requestsのライブラリのインポートが必要

import requests
from pprint import pprint

yieldsUrl = 'https://yields.llama.fi'

# プールデータを取得
poolData = requests.get(yieldsUrl + '/pools')

# レスポンスをJSONに変換
poolJson = poolData.json()

# 出力: 最初のプールの詳細データ
pprint(poolJson['data'][0])

出力結果(LidoのstETH)

{'apy': 3.004, # 現在の年率利回り(APY)
 'apyBase': 3.004, # 追加の報酬なしの基本的なAPY
 'apyBase7d': None, # 過去7日間の基本的なAPYの平均値
 'apyBaseInception': None, # プールの開始以来の基本的なAPYの平均値 
 'apyMean30d': 3.32341, # 過去30日間のAPYの平均値
 'apyPct1D': -0.054, # 前日比
 'apyPct30D': -0.182, # 前月比
 'apyPct7D': -0.169, # 前週比
 'apyReward': None, # 追加の報酬によるAPY
 'chain': 'Ethereum', # poolのチェーン
 'count': 698, # データポイントの数
 'exposure': 'single', # poolのエクスポージャータイプ(単一または複数)
 'il7d': None, # 過去7日間の非永続的損失
 'ilRisk': 'no', # 非永続的損失(IL)のリスク
 'mu': 4.26936, # APYの対数平均 
 'outlier': False, # 外れ値かどうか
 'pool': '747c1d2a-c668-4682-b9f9-296708a3dd90', # poolの一意な識別子
 'poolMeta': None, # poolのメタデータ
 'predictions': {'binnedConfidence': 1, # APY予測の信頼度のビン
                 'predictedClass': 'Down', # 予測されるAPYの方向性
                 'predictedProbability': 50}, # APYが下がる確率の予測値
 'project': 'lido', # プロジェクト名
 'rewardTokens': None, # 追加の報酬トークン 
 'sigma': 0.04775, # APYの対数標準偏差
 'stablecoin': False, # ステーブルコインかどうか
 'symbol': 'STETH', # プールのシンボル
 'tvlUsd': 30277089284, # プールのUSD建てのTVL(ロックされた総価値) 
 'underlyingTokens': ['0x0000000000000000000000000000000000000000'], # プールの基礎となるトークンのアドレス
 'volumeUsd1d': None, # 過去1日間のUSD建ての取引量
 'volumeUsd7d': None} # 過去7日間のUSD建ての取引量

データ分析

追加でpandasのライブラリのインポートが必要

import requests
import pandas as pd

yieldsUrl = 'https://yields.llama.fi'

# プールデータを取得
poolData = requests.get(yieldsUrl + '/pools')

# レスポンスをJSONに変換
poolJson = poolData.json()

# データをリストに変換
poolList = [[pool['symbol'], pool['chain'], pool['project'], pool['apy'], pool['tvlUsd']] for pool in poolJson['data']]

# データフレームに変換
df = pd.DataFrame(poolList, columns=['Symbol', 'Chain', 'Project', 'APY', 'TVL(USD)'])

print(df.head(5))

出力結果

   Symbol     Chain             Project      APY          TVL
0   STETH  Ethereum                lido  3.00400  30365561747
1     BTC      Tron            justlend  0.00011   5837310307
2    RETH  Ethereum         rocket-pool  2.68150   3709496444
3  WSTETH  Ethereum             aave-v3  0.00164   3569344756
4   WBETH  Ethereum  binance-staked-eth  2.77108   2314973328
  1. Symbol:プールのシンボル(通貨記号)

  2. Chain:プールが存在するブロックチェーン

  3. Project:プールが属するDeFiプロジェクト

  4. APY:現在の年率利回り(Annual Percentage Yield)

  5. TVL:プールにロックされている資産の合計価値(USD建て)

もちろん、先程のpyMean30dなども列に追加できる。

データフレームの最も左側の列にある数字はインデックスを表している。

次回

特定のプールの経時的なAPYとTVLのデータを取得する

いいなと思ったら応援しよう!