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
Symbol:プールのシンボル(通貨記号)
Chain:プールが存在するブロックチェーン
Project:プールが属するDeFiプロジェクト
APY:現在の年率利回り(Annual Percentage Yield)
TVL:プールにロックされている資産の合計価値(USD建て)
もちろん、先程のpyMean30dなども列に追加できる。
データフレームの最も左側の列にある数字はインデックスを表している。
次回
特定のプールの経時的なAPYとTVLのデータを取得する