こんにちは、ぼっちbotterよだかです。
今回はメインのトレードbotとは別に取り組んでいるDeFibotの話です。
DeFiでbotを作ろうと思ったとき、最初にぶつかるのは「どこで戦うのか」という問題です。(CEXでも本質的には同じですが)
DeFiには様々な戦場があります。
DEX間のアービトラージ、MEV(Maximal Extractable Value)、清算bot、流動性マイニングの回転、NFTミントの高速取得……。
しかし、これらの多くはすでにインフラ競争の世界になっています。Flashbotsやbuilder、private relay、コロケーションなどを前提とした環境で、数ミリ秒単位の競争が行われている領域です。
個人botterとして考えたとき、そこで真正面から殴り合うのはあまり現実的ではありません。戦場選びの仕方にもよりますがDeFiも成熟期に入りつつある現在、イージーなゲームは既に終わりつつあるなぁという印象です。
そこで今回は、価格ではなく資金フローを見る方向に寄せました。トレードbotではなく、まずは資金の流れを観測する observer を作ってみることにしました。
ざっくりいうと、DeFiの資金構造を観測するための計測器です。
そのような考えに至ったを前提を、軽く整理しておきます。
DeFiでは、資金は主に以下のような場所に集まります。
- レンディングプロトコル(例:Aave)
- 利回り市場(例:Pendle)
- ステーブルコイン発行プロトコル(例:Ethena)
つまり、
perp funding
↓
USDe yield
↓
DeFiの資金配分
という構造が生まれます。
この資金はさらに、
- Pendleで利回りトークンとして取引されたり
- Aaveで担保として使われてレバレッジが作られたり
- CurveやUniswapの流動性プールに供給されたり
と、DeFiプロトコル間を移動しながらエコシステム全体に影響を与えます。
もしこの資金移動の構造を観測できれば、
capital flow
↓
liquidity change
↓
price distortion
という連鎖の入口を見つけられるかもしれません。
この記事では、
- DeFiでどこで戦うべきか
- なぜ資金フローを見るのか
- observer botの設計
- 実装の概要
- 現在の状態と今後の課題
といった流れで、今回行ったリサーチと実装を整理していきます。
もしDeFi botを作ろうとしていて、
「MEVや高速arbの世界には入りたくない」
「もう少し違う戦い方はないのか」
と考えている方がいれば、
この試行錯誤が少しでも参考になれば嬉しいです。
1. DeFi botを作る前に「戦場」を決める
DeFiでbotを作ろうと思ったとき、まず考えなければならないのは「どこで戦うのか」という問題です。
DeFiにはさまざまな戦場があります。
たとえば、以下のようなものです。
- DEX間のアービトラージ
- MEV(Maximal Extractable Value)
- 清算(liquidation)bot
- 高速スワップによる価格差取り
- NFTミントの高速取得
どれも一見すると魅力的に見えます。実際、DeFiの初期にはこれらの戦略で大きな利益を出していたプレイヤーも多くいました。
しかし、現在の状況はかなり変わっています。
たとえばMEVの領域では、すでに Flashbots を中心としたエコシステムが形成されています。Flashbotsのrelayやbuilderを利用した取引バンドル、private mempool、さらにはblock builderレベルの最適化などが行われており、ここは完全にインフラ競争の世界です。
同様に、DEX間の高速アービトラージも状況は似ています。
Uniswap、Curve、BalancerといったDEXの価格差を狙う戦略は昔から存在しますが、現在は
- 高速ノード
- mempool監視
- gas最適化
- bundle送信
といった要素が前提となっており、数ミリ秒単位の競争になっています。
つまり、こうした領域では
速度
インフラ
資本
が大きな優位性を持ちます。
個人botterとして考えると、ここで真正面から戦うのはあまり合理的とは言えません。
もちろん不可能ではありませんが、勝負の軸が「研究」ではなく「インフラ」になってしまいます。
そこで今回は、少し視点を変えることにしました。
価格ではなく、資金を見る。
というアプローチです。
CeFi(中央集権取引所)のトレードでは、多くの場合「価格」を中心に考えます。
order flow
↓
価格変動
↓
トレード
という流れです。
一方で、DeFiは構造が少し違います。
DeFiではまず資金がプロトコルに配分され、その結果として流動性や金利が変化します。
capital flow
↓
liquidity change
↓
price distortion
という順序で市場が動くことが多いのです。
たとえば、レンディングプロトコルである Aave の利用率(utilization)が上昇すると、借入金利(borrow APY)が上昇します。するとその資産の需要が変化し、DEX側の流動性や価格にも影響が出ることがあります。
また、利回り市場である Pendle では、利回りの期待値に応じて資金が移動します。特定の資産の利回りが魅力的になると、その市場にTVL(Total Value Locked)が流入し、DeFi全体の資金配分が変化します。
さらに最近では、Ethena のようなプロトコルも登場しています。EthenaはETHのデルタニュートラルポジションを利用して、合成ドルである USDe を発行するプロトコルです。
このUSDeは、
- perpetual futures の funding rate
- ETHのステーキング利回り
などを組み合わせた利回りを持つ資産として利用されます。
結果として、USDeの供給が増えると
Ethena
↓
Pendle
↓
Aave
といった形で資金がプロトコル間を移動し、DeFi全体の流動性構造に影響を与えます。
このように、DeFiでは資金配分そのものが市場構造を作ることが多いのです。
そこで今回の方針は、次のように決めました。
まずトレードbotを作るのではなく、
資金フローを観測するobserverを作る。
つまり、
capital flow
↓
liquidity change
↓
price distortion
という構造の最初の部分、
資金フローの観測から始めることにしました。
この観測ができれば、
- どのプロトコルに資金が流入しているのか
- どこでレバレッジが作られているのか
- どの市場が流動性を吸収しているのか
といった構造が見えてくるはずです。
そして、その結果として生まれる市場の歪みを、あとからトレードとして利用できるかもしれません。
次の章では、この方針をもとに行ったリサーチについて整理していきます。
2. リサーチ:DeFiの資金フロー構造
前章では、「DeFiでどこで戦うか」という観点から、価格ではなく資金フローを見るという方針を立てました。
では実際に、DeFiの資金はどのように動いているのでしょうか。
ここでは、リサーチを通じて整理したDeFiの資金フロー構造を簡単にまとめます。
DeFiの資金はどこに集まるのか
DeFiの資金は、基本的に次の3つの領域に集中します。
- ステーブルコイン
- レンディング
- 利回り市場
それぞれを簡単に見ていきます。
ステーブルコインが資金の起点になる
DeFiでは、多くの取引やレンディングがUSD建ての資産で行われます。
代表的なものとしては
- USD Coin
- Tether
といったステーブルコインです。
これらは、DeFiにおけるいわば資金のベースレイヤーになっています。
多くのレンディングプロトコルやDEXでは、価格の基準がUSDであり、担保や借入の中心もステーブルコインです。
つまりDeFiの資金フローは、
stablecoin
↓
各プロトコル
という形で始まることが多いのです。
レンディングが資金のハブになる
次に重要なのがレンディングプロトコルです。
代表的なものが、DeFi最大級のレンディングプロトコルである
Aave です。
Aaveでは、ユーザーは資産を預けて利回りを得ることもできますし、担保を入れて別の資産を借りることもできます。
レンディング市場では、特に次の指標が重要になります。
- supply APY(貸出利回り)
- borrow APY(借入金利)
- utilization(利用率)
たとえば利用率が上がると、借入金利は上昇します。
すると、借入をしているトレーダーのコスト構造が変わり、資金配分も変化します。
つまりレンディングは、
capital flow
↓
leverage creation
↓
market impact
という構造の中心に位置しています。
そのため、Aaveのようなレンディングプロトコルは、DeFiの資金フローを観測する上で非常に重要な場所になります。
利回り市場が資金を吸収する
もう一つ重要なのが、利回り市場です。
その代表的なプロトコルが
Pendle です。
Pendleでは、利回り付き資産を
- 元本(PT)
- 利回り(YT)
に分解して取引することができます。
この仕組みによって、DeFiの利回りそのものが市場として取引されるようになりました。
結果として、利回りが魅力的な資産には資金が集中します。
たとえば、ある利回り資産の期待利回りが高くなると
stablecoin
↓
Pendle
↓
対象資産
という形で資金が流入します。
これは、DeFiにおける**yield chasing(利回り追求)**の典型例です。
Ethenaが作る新しい資金フロー
最近のDeFiで特に注目されているのが
Ethena です。
Ethenaは、ETHのデルタニュートラルポジションを利用して、合成ドルである
USDe
を発行するプロトコルです。
仕組みは比較的シンプルです。
ETH spot
+
ETH perpetual short
↓
delta neutral
↓
USDe発行
この構造では、主に次の2つが利回りの源になります。
- perpetual futures の funding rate
- ETHステーキング利回り
つまり、CeFiのデリバティブ市場で発生する収益が、DeFiのステーブルコイン利回りとして流れ込む仕組みです。
その結果、次のような資金フローが生まれます。
perp funding
↓
USDe yield
↓
Pendle
↓
Aave
この構造はかなり興味深いものです。
なぜなら、CeFiの市場構造がDeFiの資金配分に直接影響するからです。
DeFiの資金フローを整理すると
ここまでを整理すると、DeFiの資金フローはおおよそ次のようになります。
stablecoin
↓
Ethena / yield assets
↓
Pendle(利回り市場)
↓
Aave(レンディング)
↓
DEX流動性
つまり、
capital flow
↓
liquidity change
↓
price distortion
という順序で市場が変化していくことが多いのです。
この構造を観測できれば、
- どこに資金が流入しているのか
- どこでレバレッジが作られているのか
- どの市場が資金を吸収しているのか
といった情報が見えてきます。
そして、それが将来的にトレード機会につながる可能性があります。
次の章では、DeFiの資金フローを語る上で注目したい"Ethena"について軽くまとめます。
3. Ethenaという特殊な存在をどう見るか
DeFiの資金フローを調べていると、最近ほぼ必ず名前が出てくるプロトコルがあります。
それが
Ethena です。
Ethenaは、合成ドルである
USDe
を発行するプロトコルです。
一見するとUSDCやUSDTのようなステーブルコインと似ていますが、構造はまったく違います。
本記事ではEthenaを、DeFi内部の利回り装置というより、外部デリバティブ市場の収益構造をDeFiへ持ち込む入口として見ています。USDe供給の変化がPendleやAaveにどう波及するかを追うことで、資金フローの連鎖を観測できるかもしれません。
通常のステーブルコインとの違い
例えば
- USD Coin
- Tether
といった一般的なステーブルコインは、基本的に次のような構造です。
ドル
↓
発行体
↓
ステーブルコイン
つまり、オフチェーンの資産を裏付けにしています。
一方、Ethenaは完全に違います。
Ethenaの基本構造
Ethenaの基本アイデアはシンプルです。
ETHのデルタニュートラルポジションを使って
ドルのような資産を作る、というものです。
具体的には次のポジションを作ります。
ETH spot long
+
ETH perpetual short
つまり
ETH
+
perp hedge
↓
価格変動を打ち消す
という構造です。
このデルタニュートラルポジションを担保にして、USDeが発行されます。
利回りの源泉
Ethenaのもう一つの特徴は、USDeが利回りを持つことです。
その利回りの主な源泉は2つあります。
Ethenaの利回りは、主にデルタヘッジに伴う funding / basis と、ステーキング系リターンを源泉とします。
実際の収益構造は時期や担保構成によって変わるため、本記事では簡略化して2つに分けて扱います。
一次情報はこちら→Ethena Overview
1. perpetual futures の funding rate
暗号資産のperpetual futuresでは、ロングとショートのバランスを取るために funding rate が支払われます。
一般的には、強気相場ではロングが多くなるため
long
↓
short に funding を支払う
という構造になります。
Ethenaはショートポジションを持っているため、ここでfundingを受け取ります。
過去数年間のデータを見ると、ETHのfunding rateは平均して年率 7〜9%程度のプラスだったという研究もあります。
つまり、
perp funding
↓
Ethena
↓
USDe yield
という構造が生まれます。
2. ETHのステーキング利回り
Ethenaの担保には
- stETH
のようなステーキング資産も使われます。
そのため
ETH staking reward
も利回りの一部になります。
CeFiとDeFiをつなぐ構造
Ethenaの面白いところは、CeFiとDeFiの構造をつないでいる点です。
簡単に図にすると次のようになります。
CEX perp markets
↓
funding rate
↓
Ethena
↓
USDe
↓
Pendle / Aave
つまり
CeFiのデリバティブ市場
↓
DeFiの資金フロー
という関係が生まれます。
これは従来のDeFiではあまり見られなかった構造です。
Ethenaが資金フローを生む理由
USDeは単なるステーブルコインではありません。
- 利回りがある
- DeFiで担保として使える
- Pendleなどで利回り取引ができる
といった特徴があります。
その結果、USDeが増えると
USDe supply
↓
Pendle
↓
Aave
という形で資金が動くことがあります。
つまり、Ethenaは
DeFiの資金フローを生む装置
として機能している可能性があります。
observerで見たいもの
今回のobserverでは、Ethenaを
資金フローの起点
として扱っています。
具体的には
- USDe supply
- PendleのUSDe系市場TVL
- Aaveのレンディング利用率
などを組み合わせて観測します。
例えば
USDe supply ↑
Pendle TVL ↑
なら
USDE_FLOW_IN
という状態ラベルを出します。
このように、Ethenaを含めたDeFiの資金フローを観測することで、市場構造の変化を把握できるのではないかと考えています。
次の章では、この仮説をもとに設計した**資金フロー観測bot(observer)**について説明します。
4. 仮説:資金フローを観測すれば構造が見える
ここまでのリサーチで、DeFiの資金フロー構造はある程度見えてきました。
- ステーブルコインが資金の起点になる
- レンディングがレバレッジのハブになる
- 利回り市場が資金を吸収する
- Ethenaのようなプロトコルが新しい資金を生む
整理すると、DeFiではおおよそ次のような流れが存在します。
stablecoin
↓
利回り資産(例:USDe)
↓
Pendle(利回り市場)
↓
Aave(レンディング)
↓
DEX流動性
つまり
capital flow
↓
liquidity change
↓
price distortion
という順序で市場が変化していく可能性があります。
ここから、一つの仮説が生まれます。
資金フローを観測すれば、市場構造の変化が見えるのではないか。
CeFiとは逆の構造
この仮説の背景には、CeFiとの違いがあります。
中央集権取引所(CEX)のトレードでは、基本的に次の順序で市場が動きます。
order flow
↓
価格変動
↓
トレード機会
つまり、価格が最初に動きます。
一方でDeFiでは、資金配分が先に変わることがあります。
例えば、ある資産の利回りが魅力的になると、資金はそのプロトコルに流入します。
yield opportunity
↓
capital migration
↓
liquidity shift
その結果、流動性構造が変化し、DEXで価格が歪む可能性があります。
つまりDeFiでは
価格より先に資金が動くことがある。
という仮説です。
観測ポイントの整理
この仮説を検証するためには、どこを観測すればよいのでしょうか。
今回注目したのは、次の3つのプロトコルです。
- Aave
- Pendle
- Ethena
それぞれの役割は次のように整理できます。
| プロトコル | 役割 |
|---|---|
| Ethena | 資金の発生源 |
| Pendle | 利回り市場 |
| Aave | レバレッジのハブ |
つまり
Ethena
↓
Pendle
↓
Aave
という資金フローが観測できれば、DeFiの構造変化をかなり早い段階で把握できる可能性があります。
状態として表現する
今回のobserverでは、資金フローを単なる数値ではなく、状態(state)として表現することにしました。
例えば次のようなものです。
USDE_FLOW_IN
LENDING_TIGHTENING
PENDLE_ABSORBING_FLOW
NO_CLEAR_FLOW
これは簡単なルールベースで判定しています。
例えば、次のようなロジックです。
if ethena_delta > 0 and pendle_delta > 0:
return ("USDE_FLOW_IN", "ethena circulating up + pendle usde tvl up")
if util_d1 > 0 and borrow_d1 > 0:
return ("LENDING_TIGHTENING", "aave utilization up + borrow apy up")
つまり
- USDe供給が増えている
- PendleのUSDe市場に資金が流入している
なら
USDE_FLOW_IN
という状態になります。
トレードではなく観測
ここで重要なのは、このobserverはまだトレードbotではないという点です。
役割は次の通りです。
資金フロー観測
↓
構造把握
↓
仮説生成
つまり、DeFiの資金構造を理解するための研究装置です。
もしこの仮説が正しければ、
capital flow
↓
liquidity change
↓
price distortion
という連鎖が見えてくるはずです。
そして、その歪みが安定して観測できるなら、初めてトレード戦略につながる可能性があります。
では、このobserverで具体的に何を捉えたいのか。
狙いはDeFiの資金配分が構造変化へつながる入口を見えるようすることです。具体的には、
・特定銘柄の借入コスト上昇を早期に検知すること
・利回り市場への流入がDEX流動性に波及する前兆を見ること
・stable / yield / lending の三層で、資金の偏りを状態遷移として捉えること
を狙っています。つまり、observer は「数字の監視装置」ではなく、「構造変化の兆候を捉えるための研究装置」です。
次の章では、この仮説を実際に観測するために作った
資金フロー観測bot(observer)の設計について説明します。
5. 観測botを作る
ここまでのリサーチで、DeFiの資金フローはある程度整理できました。
stablecoin
↓
Ethena
↓
Pendle
↓
Aave
↓
DEX流動性
この構造を前提にすると、次の疑問が生まれます。
本当にこの資金フローは観測できるのか?
もし観測できるなら、
capital flow
↓
liquidity change
↓
price distortion
という変化を、価格より先に検知できる可能性があります。
そこで今回まず作ったのが、
**トレードbotではなく観測bot(observer)**です。
トレードではなく観測から始める
最初からトレードbotを作ることもできますが、今回はあえてそうしませんでした。
理由は単純です。
構造がまだ分かっていないからです。
DeFiでは、
- どこで資金が発生するのか
- どこに資金が吸収されるのか
- レバレッジはどこで作られるのか
といった関係がまだ十分に理解できていません。
そのため、まずは
資金フローを観測する
ための装置を作ることにしました。
つまり今回のbotの役割は
collector
↓
時系列データ保存
↓
簡易分析
というシンプルなものです。
観測対象のプロトコル
今回のobserverでは、次の4つのデータソースを使っています。
Aave
レンディング市場の状態を見るために
Aave
のデータを取得します。
Aaveでは特に次の指標が重要です。
- utilization(利用率)
- supply APY
- borrow APY
- available liquidity
利用率が上がると借入金利が上昇するため、
資金需要
↓
レバレッジ増加
を示すシグナルになる可能性があります。
データはAaveのGraphQL APIから取得します。
https://api.v3.aave.com/graphql
Pendle
利回り市場を見るために
Pendle
のデータを取得します。
Pendleでは
- market TVL
- implied APY
- spot price
などを取得します。
特に、Ethenaの資産(USDe / sUSDe)関連市場のTVLが重要です。
Pendle TVL
↑
↓
利回り資産への資金流入
という構造がある可能性があるからです。
データはPendleのAPIから取得します。
https://api-v2.pendle.finance/core/v1/{chainId}/markets
Ethena
資金の発生源として
Ethena
のUSDe供給量も観測します。
USDeの供給量が増えると、
USDe supply
↑
↓
Pendle
↓
Aave
という資金移動が起きる可能性があります。
このobserverでは、DefiLlama APIを使ってUSDe supplyを取得しています。
DefiLlama
DeFi全体の状況を見るために
DefiLlamaのAPIも利用しています。
取得しているのは主に
- protocol TVL
- stablecoin supply
です。
例
https://api.llama.fi/protocol/{slug}
observerの構造
今回のobserverは、できるだけシンプルに作っています。
構造は次の通りです。
collector
↓
SQLite
↓
analytics
↓
summary / alerts
各プロトコルのデータはcollectorで取得し、SQLiteに保存します。
observer.db
に次のテーブルを作っています。
aave_reservespendle_marketsprotocol_tvlethena_snapshots
このデータをもとに、簡単な時系列分析を行います。
CLIでの実行
observerはCLIツールとして実装しました。
主なコマンドは次の4つです。
python main.py init-db
データベースを初期化します。
python main.py collect
すべてのデータソースからデータを取得し、SQLiteに保存します。
python main.py summary
最新の観測値と状態ラベルを表示します。
python main.py alerts
簡易アラートを表示します。
observerの目的
このobserverは、トレードを行うものではありません。
目的は次の通りです。
資金フロー観測
↓
構造理解
↓
仮説生成
もし
- Ethena
- Pendle
- Aave
の間で資金フローが安定して観測できるなら、
capital flow
↓
liquidity change
↓
price distortion
という連鎖を捉えられる可能性があります。
そして、そのとき初めて
トレードbotを作る意味が出てきます。
次の章では、このobserverの設計についてもう少し詳しく説明します。
6. observerの設計
前章では、DeFiの資金フローを観測するためにobserverを作ったことを説明しました。
この章では、そのobserverをどのような設計思想で作ったのかを整理します。
ポイントはシンプルです。
トレードbotではなく、研究装置として設計する。
そのため、機能はできるだけ絞り、観測と分析に集中させています。
設計方針
今回のobserverの設計方針は次の通りです。
・無料データのみ使用
・トレード機能は持たない
・時系列データを保存する
・簡単な状態分類を行う
・CLIで実行できる
特に重要なのは、
「まず観測する」
という思想です。
DeFiの資金構造はまだ十分に理解されていません。
そのため、いきなりトレードロジックを書くよりも、まずデータを集めて構造を観察する方が合理的だと考えました。
データ取得
データ取得はcollectorとして分離しています。
今回作ったcollectorは次の4つです。
- Aave
- Pendle
- Ethena
- DefiLlama
それぞれPythonファイルとして独立しています。
collectors/
├ aave.py
├ pendle.py
├ ethena.py
└ defillama.py
この構造にしておくと、新しいプロトコルを追加するときにcollectorを1つ増やすだけで済みます。
データ保存
取得したデータはSQLiteに保存しています。
observer.db
テーブルは次の4つです。
aave_reserves
pendle_markets
protocol_tvl
ethena_snapshots
それぞれに
ts_utc
というタイムスタンプを持たせており、すべてのデータを時系列で追えるようにしています。
DeFi研究では、
いつ何が起きたか
を後から検証することが非常に重要です。
そのため、生データはできるだけそのまま保存する設計にしました。
watchlist
observerでは、監視対象を固定しています。
例えばAaveでは次の資産をwatchlistにしています。
USDC
USDT
USDE
DAI
GHO
そして
(asset_symbol, chain_name, market_name)
の複合キーで系列を扱います。
これは、同じ資産でも
- chain
- market
によって状態が違うためです。
例えば
USDC / Ethereum / Aave V3 Ethereum
のような形で識別します。
summary
observerの中心になるのが summary コマンドです。
python main.py summary
このコマンドは
- 最新データ
- 直近差分
- 24時間差分
- z-score
をまとめて表示します。
さらに、複数プロトコルを横断して
Combined flow summary
を表示します。
例:
Aave watchlist USDC / Ethereum / Aave V3 Ethereum
util=0.79 d1=+0.02 z=1.4Pendle watchlist rep: sUSDe
liq_usd_proxy=1.3B d1=+80MProtocol watchlist ethena-usde
tvl=2.7B d1=+120M
状態ラベル
数値を並べるだけでは解釈が難しいため、observerでは簡単な状態分類を行っています。
現在のラベルは次の4つです。
USDE_FLOW_IN
LENDING_TIGHTENING
PENDLE_ABSORBING_FLOW
NO_CLEAR_FLOW
これはルールベースで判定しています。
例えば
if ethena_delta > 0 and pendle_delta > 0:
return ("USDE_FLOW_IN", "ethena circulating up + pendle usde tvl up")
という形です。
つまり
USDe supply ↑
Pendle TVL ↑
なら
USDE_FLOW_IN
という状態になります。
alerts
observerには簡単なアラート機能もあります。
python main.py alerts
このコマンドは
- utilization急変
- TVL急変
- z-score異常
などを検知します。
ただし、このアラートはあくまで補助的なものです。
observerの中心はあくまで
summary
です。
observerの役割
このobserverの役割は次の通りです。
資金フロー観測
↓
構造理解
↓
仮説生成
つまり、DeFi市場を理解するための研究装置です。
このobserverを一定期間動かし、
- 資金フローのパターン
- 状態ラベルの出現頻度
- プロトコル間の関係
などを観察することで、初めてトレード戦略の候補が見えてくるはずです。
このobserverは常時稼働させることを想定していますが、まずは短時間の耐久テストを行い、
- API制限
- データ欠損
- ストレージ増加
などを確認してから、定期運用に移行する予定です。
ただし、このobserverには明確な限界があります。
まず、取得している値の多くは公開API由来であり、遅延や定義変更の影響を受けます。
また、TVLは資金フローそのものではなく、その近似値にすぎません。そのため、現時点で見ているのは因果というより相関です。
さらに、オフチェーン要因やCEX側のヘッジポジションは直接観測できません。つまり、このobserverだけで市場構造の全体を説明できるわけではなく、仮説を絞り込み、次に見るべき場所を見つけるための装置として使うのが適切だと考えています。
次の章では、observerを実際に動かしてみて、現在どこまで進んでいるのかを整理します。
7. 実装と現在の状態
前章までで、資金フローを観測するためのobserverの設計を説明しました。
この章では、実際にどこまで実装が進んでいるのか、そして現在の状態を整理します。
結論から言うと、観測装置としてはすでに動いている状態です。
ただし、これはまだトレードbotではなく、あくまで研究のための観測機です。
実装した構成
今回のobserverは、次のような構成になっています。
observer/
├ main.py
├ config.py
├ db.py
├ analytics.py
├ schema.sql
└ collectors/
├ aave.py
├ pendle.py
├ ethena.py
└ defillama.py
それぞれの役割はシンプルです。
| ファイル | 役割 |
|---|---|
| main.py | CLIエントリーポイント |
| collectors | データ取得 |
| db.py | SQLite保存 |
| analytics.py | 分析ロジック |
| config.py | watchlist定義 |
このobserverは、複雑なインフラを必要としません。
PrometheusやGrafanaなども使っていません。
あくまで
collector
↓
SQLite
↓
analysis
という最小構成です。
CLIコマンド
observerはCLIで操作します。
主なコマンドは次の4つです。
データベース初期化
python main.py init-db
データ収集
python main.py collect
最新状態表示
python main.py summary
アラート確認
python main.py alerts
collect を実行すると、
- Aave
- Pendle
- Ethena
- DefiLlama
からデータを取得し、SQLiteに保存します。
テーブル構成は次の通りです。
aave_reserves
pendle_markets
protocol_tvl
ethena_snapshots
すべてのテーブルに
ts_utc
を持たせており、時系列データとして扱えるようにしています。
summaryの出力
observerの中心になるのが summary コマンドです。
python main.py summary
このコマンドは
- 最新値
- 直近差分
- 24時間差分
- z-score
をまとめて表示します。
例としては次のような出力になります。
[Aave latest]USDC / Ethereum / Aave V3 Ethereum
util=0.79 supply_apy=3.2 borrow_apy=5.6[Pendle latest]sUSDe (2026-05-07)
liq_usd_proxy=1.3B implied_apy=9.4%[Protocol TVL latest]aave-v3 tvl=10.2B
pendle tvl=3.8B
ethena-usde tvl=2.7B
さらに、複数プロトコルを横断した
Combined flow summary
も表示されます。
状態ラベル
今回のobserverでは、数値だけでなく簡単な状態分類を行っています。
現在の状態ラベルは次の4つです。
USDE_FLOW_IN
LENDING_TIGHTENING
PENDLE_ABSORBING_FLOW
NO_CLEAR_FLOW
例えば
state: PENDLE_ABSORBING_FLOW
reason: pendle usde tvl up + aave usdc/usde liquidity down
のように出力されます。
これは、
- Ethena
- Pendle
- Aave
のデータを組み合わせて判定しています。
例えば
USDe supply ↑
Pendle TVL ↑
なら
USDE_FLOW_IN
という状態になります。
現在のobserverの完成度
現時点のobserverの完成度を整理すると次のようになります。
| 項目 | 状態 |
|---|---|
| データ取得 | 完成 |
| DB保存 | 完成 |
| watchlist | 完成 |
| 状態分類 | 完成 |
| アラート | 簡易版 |
つまり
観測botとしては十分動いている状態です。
ただし、重要なことがあります。
このobserverはまだ
エッジ
を見つけたわけではありません。
あくまで
観測装置
です。
ここまででできたこと
今回の実装でできたことは次の3つです。
1. DeFi資金フローを観測する装置を作った
Aave、Pendle、Ethenaの関係を
時系列で観測できるようになりました。
2. 仮説を検証するための基盤ができた
observerを動かすことで
資金フロー
↓
状態
を確認できます。
3. DeFi研究を継続できる環境が整った
このobserverを回し続けることで、
- 資金フローのパターン
- 状態ラベルの頻度
- プロトコル間の関係
を分析できるようになります。
次にやること
今後やることはシンプルです。
observerを回す
↓
データを貯める
↓
パターンを探す
まずは数週間〜数ヶ月程度、observerを動かし続けて、
- どの状態が多いのか
- 状態の遷移
- 状態と価格の関係
を確認していく予定です。
なお、現在はまだcronなどの定期実行は行っておらず、短時間の耐久テストを行いながらチューニングしている段階です。
次の章では、ここまでの開発で分かったことをまとめます。
8. ここまでで分かったこと
ここまで、DeFiの資金フロー構造をリサーチし、観測bot(observer)を設計・実装してきました。
この章では、現時点で分かっていることを整理しておきます。
結論から言うと、
まだエッジは見えていない。
しかし同時に、
観測すべき構造はかなり見えてきた。
という状態です。
DeFiは価格より資金で動く可能性がある
今回のリサーチで最も印象的だったのは、DeFiの市場構造がCeFiとはかなり違うことです。
中央集権取引所では、多くの場合
order flow
↓
価格変動
↓
トレード
という順序で市場が動きます。
しかしDeFiでは、むしろ
capital flow
↓
liquidity change
↓
price distortion
という順序になる可能性があります。
例えば、
- 利回りが魅力的な資産が出る
- 資金がそこに集中する
- 流動性構造が変わる
といった流れです。
つまり、DeFiでは
資金配分の変化そのものが市場構造を作る
可能性があります。
レンディングが資金のハブになる
リサーチの中で特に重要だと感じたのが、レンディングプロトコルです。
代表的なのが
Aave です。
レンディング市場では、
- utilization(利用率)
- borrow APY
- available liquidity
といった指標が、資金需要を直接反映します。
例えば利用率が上昇すると、
borrow APY
↑
↓
レバレッジ需要
↑
という構造になります。
つまりレンディングは、
DeFiのレバレッジが作られる場所
と言えます。
利回り市場が資金を吸収する
もう一つ重要なのが、利回り市場です。
今回の観測対象にした
Pendle
は、その典型です。
Pendleでは利回り付き資産を
- 元本
- 利回り
に分解して取引することができます。
その結果、
yield opportunity
↓
capital migration
という資金移動が起きます。
特に最近は、Ethenaの資産(USDe / sUSDe)がPendleで大きな市場を作っています。
Ethenaが新しい資金フローを作っている
今回のリサーチで一番興味深かったのは
Ethena
の存在です。
Ethenaは
- ETH spot
- ETH perpetual short
というデルタニュートラルポジションを使って
USDe
を発行します。
その利回りは主に
- perpetual futures の funding rate
- ETHステーキング利回り
から生まれます。
つまり
CeFiデリバティブ市場
↓
Ethena
↓
DeFi利回り
という資金フローが生まれます。
これはかなりユニークな構造です。
なぜなら、
CeFiの市場構造がDeFiの資金配分に直接影響する
からです。
observerは研究装置として機能している
今回作ったobserverは、まだトレードを行いません。
役割は
資金フロー観測
↓
構造理解
↓
仮説生成
です。
現時点では
- Aave
- Pendle
- Ethena
- DefiLlama
のデータを取得し、簡単な状態分類を行っています。
例えば
USDE_FLOW_IN
LENDING_TIGHTENING
PENDLE_ABSORBING_FLOW
といった状態です。
これにより、DeFiの資金フローをある程度構造として見ることができるようになりました。
まだ分かっていないこと
もちろん、まだ分からないことの方が多いです。
特に重要なのは次の点です。
- 資金フローはどの程度持続するのか
- 状態ラベルは価格とどの程度関係するのか
- 資金フローがどこで歪みを生むのか
つまり、
capital flow
↓
price distortion
が本当に存在するのかは、まだ確認できていません。
今の結論
現時点の結論はシンプルです。
DeFiの資金フローは観測できる。
しかし、
それがエッジになるかはまだ分からない。
です。
とはいえ、observerが動き始めたことで、ようやく
仮説
↓
データ
↓
検証
という研究サイクルに入ることができました。
次の章では、これから何をしていくのかを整理します。
9. 今後やること
ここまでで、DeFiの資金フロー構造を整理し、観測bot(observer)を実装しました。
とはいえ、これはまだ研究のスタート地点に過ぎません。
現時点では、
観測装置
ができただけで、
エッジ
はまだ見つかっていない状態です。
ここから先は、観測を続けながら仮説を検証していくフェーズになります。
まずはデータを蓄積する
最初にやるべきことはシンプルです。
observerを回し続けること。
今回のobserverは、
- Aave
- Pendle
- Ethena
- DefiLlama
のデータを定期的に取得し、SQLiteに保存します。
collect
↓
SQLite
↓
summary
という流れです。
このデータがある程度蓄積されないと、
- 資金フローのパターン
- 状態ラベルの出現頻度
- プロトコル間の関係
といったものは見えてきません。
そのため、まずは数週間から数ヶ月程度、observerを回してデータを貯めていく予定です。
具体的には、
・30分間で6回程度の collect 実行
・API制限に引っかからないか
・sourceごとのデータ取得が安定しているか
・DBに重複や欠損が発生していないか
といった点を確認します。
また、
・DBサイズの増加量
・1日 / 30日運用時のストレージ見積もり
なども測定する予定です。
この段階で問題がなければ、
5分間隔程度でobserverを定期実行する予定です。
状態ラベルの精度を上げる
現在のobserverでは、次の4つの状態ラベルを使っています。
USDE_FLOW_IN
LENDING_TIGHTENING
PENDLE_ABSORBING_FLOW
NO_CLEAR_FLOW
しかし、これはあくまで最小限のルールベースです。
例えば現在の判定は、
USDe supply ↑
Pendle TVL ↑
なら
USDE_FLOW_IN
という単純なものです。
今後は、
- 利回り(implied APY)
- 利用率(utilization)
- 借入金利(borrow APY)
なども組み合わせて、状態判定の精度を上げていく必要があります。
プロトコル間の関係を検証する
もう一つ重要なのは、プロトコル間の関係を確認することです。
今回の仮説では、次のような資金フローを想定しています。
Ethena
↓
Pendle
↓
Aave
つまり、
- USDe supply が増える
- Pendle の USDe市場に資金が流入する
- Aave の利用率が上昇する
という流れです。
しかし、この関係が本当に存在するのかは、まだ分かりません。
observerを動かし続けることで、
資金フローの順序
を確認する必要があります。
価格との関係を見る
最終的な目的は、もちろんトレードです。
そのためには、
capital flow
↓
price distortion
が本当に存在するのかを確認する必要があります。
例えば、
- Aave利用率の急上昇
- Pendle TVLの急増
- Ethena supplyの変化
などが起きたとき、
DEX価格
にどのような影響が出るのかを調べる必要があります。
この段階になって初めて、
トレード戦略の候補
が見えてくるはずです。
観測対象を広げる
もう一つの方向として、観測対象を広げることも考えています。
例えば、
- Curve
- Uniswap
- Morpho
- Spark
などのプロトコルです。
ただし、最初から対象を増やしすぎると、分析が難しくなります。
そのため、まずは
Ethena
Pendle
Aave
の関係を中心に観測を続ける予定です。
トレードbotを作るのはまだ先
現時点では、まだトレードbotを作る予定はありません。
理由はシンプルです。
構造がまだ見えていないからです。
無理にトレードbotを作るより、
観測
↓
理解
↓
仮説
↓
検証
という順序を守った方が、結果的に良い戦略に辿り着く可能性が高いと考えています。
ここまでが、今回のobserver開発のまとめです。
最後に、この取り組みを通して感じたことを少し書いておきます。
10. 今日の結論
今回の目的は、DeFiでどこで戦うべきかを考え、そのための観測装置を作ることでした。
結論として言えることは、次の二つです。
DeFiの資金フローは観測できる。
しかし、それがエッジになるかどうかはまだ分からない。
これは少し当たり前の結論かもしれませんが、個人的にはかなり大きな前進だと思っています。
DeFiは価格より資金を見る市場かもしれない
今回のリサーチで強く感じたのは、DeFiの市場構造がCeFiとはかなり違うということです。
中央集権取引所では、多くの場合
order flow
↓
価格変動
↓
トレード
という順序で市場が動きます。
一方、DeFiでは
capital flow
↓
liquidity change
↓
price distortion
という順序になる可能性があります。
例えば、
- 利回りの高い資産が登場する
- 資金がそこに流入する
- 流動性構造が変わる
という流れです。
この構造が本当に存在するなら、DeFiでは
価格より先に資金を見ることで市場を理解できる可能性
があります。
Ethenaが作る新しい資金フロー
今回のリサーチで特に印象的だったのが
Ethena
の存在です。
Ethenaは、
- ETHのデルタニュートラルポジション
- perpetual futures の funding rate
を利用して
USDe
を発行します。
この構造によって、
CeFiデリバティブ市場
↓
Ethena
↓
DeFi利回り
という資金フローが生まれます。
これは、CeFiとDeFiをつなぐかなり興味深い仕組みです。
もしUSDe supplyの変化がPendleやAaveに波及するなら、
Ethena
↓
Pendle
↓
Aave
という資金の連鎖が観測できる可能性があります。
observerは研究装置
今回作ったobserverは、トレードbotではありません。
役割は
資金フロー観測
↓
構造理解
↓
仮説生成
です。
Aave、Pendle、Ethena、DefiLlamaのデータを定期的に取得し、
簡単な状態ラベルを返すだけのシンプルなツールです。
例えば
USDE_FLOW_IN
LENDING_TIGHTENING
PENDLE_ABSORBING_FLOW
といった状態です。
このobserverを回し続けることで、
- 資金フローのパターン
- プロトコル間の関係
- 状態と市場の動き
などを観測していくことができます。
今はまだスタート地点
もちろん、これだけでトレード戦略ができるわけではありません。
まだ分かっていないことの方が多いです。
例えば、
- 資金フローはどの程度持続するのか
- 状態ラベルと価格の関係はあるのか
- 本当に市場の歪みが生まれるのか
といった点です。
そのため、今やるべきことはとてもシンプルです。
observerを回し続けること。
データを貯め、パターンを見つけ、仮説を検証する。
その繰り返しです。
今日の結論
今回の取り組みを一言でまとめると、
DeFiで戦うなら、まず資金を見る。
ということです。
価格を見る前に、資金の流れを見る。
トレードの前に、構造を理解する。
このobserverが、その第一歩になればと思っています。