Bot DeFi bot DEX 開発ログ

🛠️開発記録#560(2026/9/3) DeFi清算をbot開発の研究テーマに変えるまで

こんにちは、よだかです。

今回は、DeFi市場で発生した清算事象を調べ、そこからbot研究として継続的に観測できそうな構造を整理した過程について書きます。

きっかけは、Morpho上でPT-reUSDを担保にしたポジションが大規模に清算された事象でした。

今回の目的は、清算事件そのものを詳しく解説することではありません。

自分が確認したかったのは、主に次の点です。

  • 清算が起きるまでに、どのような価格・オラクル・借入構造が関係していたのか
  • その構造は事前にある程度観測できたのか
  • 同じ考え方を他の市場にも当てられるのか
  • 個人botterである現時点の自分が、どこまでを研究対象として拾うべきか
  • 逆に、どこから先は競争条件を考えて捨てるべきか

現時点では、取引上の優位性(edge)が確認できたわけではありません。

今回は、一つの市場事象をbot研究へ接続するまでに何を確認したのかを整理します。


Morphoで発生した清算事象を確認する

最初に、PT-reUSDを担保としたMorpho上の清算事象を、APIやオンチェーンデータから確認しました。

2026年8月25日には、Morphoで33件の清算イベントが発生していました。

USDC・USDTを合わせた返済額は約3,614万ドル相当で、清算対象となった借り手は19でした。

取得できた清算イベントの範囲では、不良債権(bad debt)も確認されませんでした。

また、清算が始まる少し前には、Pendle上でPT-reUSDの売り方向の大きな取引フローが確認できました。

時系列だけを単純化すると、

PendleでPT売り方向の取引フロー

PTの市場価格が低下

Morphoで清算が発生

という並びです。

ただし、この時系列だけから、

「Pendle上の価格下落がMorphoの清算を直接引き起こした」

とまでは判断していません。

Morphoが実際に参照したオラクル価格を分単位で完全に再構成できておらず、Pendle側の価格変化が、どのタイミング・どの値でMorphoの清算判定へ伝わったのかは未確認だからです。

ここで注目したのは、個別の価格変動そのものではなく、

市場価格の変化から清算に至るまでに、複数の段階が存在する

という点でした。


清算までの構造を分けて考える

今回の事象を他の市場でも使える形に整理するため、清算までの過程を次のように分けて考えました。

① 担保の価値が決まる市場・評価の仕組み

② その価値を融資市場へ伝えるオラクル

③ 担保を使って借りているポジション

④ 借り手ごとの清算ライン

⑤ 清算による担保の強制移転

⑥ 移転した担保がその後どのように処理されるか

今回のPT-reUSDでは、担保であるPTの価格形成を確認するためにPendleも見ています。

ただし、一般化したモデルの①を「Pendle」と考えているわけではありません。

今回の研究の起点はMorphoです。

Morpho上で清算が発生したため、

「Morphoが担保価値として見ている価格は、どこから来ているのか」

と上流へ遡った結果、今回のPTについてはPendleを見る必要がありました。

別の担保を調べる場合には、価格形成市場やオラクルの構造も変わるはずです。

そのため、一般化すると、

清算が起きた融資市場だけを見るのではなく、清算条件を動かしている価格の上流まで確認する

という考え方になります。


関連記事:仮説と観測経路は分けて考える

以前、xStocksとHyperliquidの観測機を作った際にも、

「仮説そのもの」と「その仮説を確認する観測経路」は分けて考える必要がある

と整理しました。

今回も考え方は同じです。

「PT価格が下がれば清算が増えるのではないか」

という仮説だけを置くのではなく、

どの価格を見ているのか。
その価格がどのオラクルを通るのか。
Morphoの清算判定では最終的に何が使われるのか。

を分けて確認する必要があります。

関連記事
🛠️開発記録#559(2026/9/2) 仮説を検証する前に、観測経路を監査する――xStocks × Hyperliquidの観測設計を作るまで

続きを見る


個人botterとして、清算実行はどこまで狙うべきか

清算構造を確認した次に考えたのが、

この構造のどこをbotで狙うのか

という点です。

最も直接的なのは、清算可能になったポジションを検知して、自分で清算を実行することです。

しかし、今回の事象を確認した限りでは、現時点の自分がここを主戦場にするのは分が悪いと判断しました。

今回取得した清算では、最大の清算実行者が返済額の96%超を処理していました。

また、大きな清算トランザクションでは、

FlashLoan(フラッシュローン)

Liquidate(清算)

SupplyCollateral(担保供給)

Borrow(借入)

という一連の処理も確認できました。

ここは実際の関数・処理名に対応するため英語表記を残していますが、要するに、

外部から一時的に資金を調達して清算し、受け取った担保を再び担保として使い、そこからさらに資金を借りる

という資本再利用が同じトランザクション内で行われていました。

少なくとも今回のケースでは、単に清算可能なポジションを見つければよいわけではありません。

実際に清算を取るには、

  • 実行速度
  • ガス代とその設定
  • フラッシュローンなどを使った資金調達
  • 資本効率
  • 清算時に呼び出される処理への対応
  • 清算後に受け取った担保の処理

なども関係します。

ここは、自分が現在使っている「拾う/捨てる」の判断基準にも関係しています。


取引上の優位性がありそうでも、競争条件によっては捨てる

市場に何らかの取引上の優位性が存在することと、

その優位性を自分が取りに行くべきか

は別だと考えています。

特に現時点では、

  • 高度な取引執行基盤が必要
  • 数十ミリ秒以下の速度差が支配的
  • 大きな資本を効率的に回せること自体が優位になる
  • 最も速い参加者が利益の大部分を取る競争になっている

といった場所は、優先度を下げています。

これは、その領域に利益機会が存在しないという意味ではありません。

自分よりも資本・インフラ・実装能力で優位な参加者がいる場所で、同じ方法を使って真正面から競争することに、どの程度研究資本を投入するかという判断です。

一方で、

  • 公開データから観測できる
  • 数秒~分単位でも意味が残る
  • 構造理解や観測方法の改善が効く
  • 少額から検証できる
  • 最速者だけが利益を取る構造ではない

といった条件があるなら、個人でも継続的に調べる余地があります。

この考え方は、以前CEXとHyperliquidの観測粒度を検討した際にも使っています。

そのときも、単純に「より高速なデータを取る」ことを目的にするのではなく、

自分が取引可能性を検証するために必要な時間粒度はどこまでか

を先に決めました。

関連記事
🛠️開発記録#558(2026/9/1) 高頻度なら細かいほどいい?|個人botterの「必要十分な観測粒度」を具体例で考える話

続きを見る

今回も、

「清算botをどこまで高速化できるか」

から入るのではなく、

そもそも自分が清算実行の競争へ参加する必要があるのか

を先に確認しています。


清算実行ではなく、その手前を観測する

清算実行そのものを優先対象から外しても、清算までの構造すべてを捨てる必要はありません。

そこで次に確認したのが、

価格が一定幅変化したとき、どれだけの借入が清算域へ入るのかを事前に推定できるか

という点です。

Morphoでは、借り手の担保量・借入額・LLTV・オラクルなど、清算条件を計算するための情報を公開データから取得できます。

そこで、PT-reUSDで実際に清算された借り手について、事件前の時点データから清算ラインを概算しました。

その結果、今回取得した部分的なデータでは、

  • オラクル価格が約100bp(約1%)低下すると、約2,602万ドル相当
  • 約200bp(約2%)低下すると、約3,612万ドル相当
  • 約300bp(約3%)低下すると、約3,735万ドル相当

の借入が清算域へ入る計算になりました。

これは全借り手の状態を完全に再構成した清算閾値マップではありません。

また、後述する通り、横断スクリーニングを作った後には、清算閾値の計算方法そのものも監査し直しています。

そのため、この数字をそのまま将来の清算予測へ使えるとは考えていません。

ここで確認できたのは、

少なくとも借り手の状態データから、価格変化に対してどの程度の借入が清算対象になり得るのか、その分布を事前に調べる方法は成立しそうだ

という点です。


清算可能額と実際の売り圧は分ける

この段階で、もう一つ区別しているものがあります。

仮に3,000万ドルの借入が清算可能になったとしても、

3,000万ドル分の担保が、そのまま市場で売却されるとは限りません。

清算された担保は、清算実行者によって、

  • そのまま保有される
  • 別の担保として再利用される
  • 新たな借入に使われる
  • 償還される
  • ヘッジされる
  • 別の取引経路で処理される

可能性があります。

そのため、現在は次の金額・数量をそれぞれ別のものとして扱っています。

清算対象になり得る借入額
清算によって差し押さえられる担保額
市場へ売却されると予想される数量
実際に取引可能な数量
最終的な損益

つまり、

清算ラインが見えることと、その清算を利用して利益を出せることは別です。

ここは、現在の研究で使っている「見えるか?/取れるか?」という分け方にも対応しています。

まず、市場構造として観測できるのかを確認します。

その後に、

  • 手数料
  • スリッページ
  • 注文・取引の執行条件
  • 実際に取引可能な数量

などを含めて、本当に利益へ変換できるのかを調べます。

順序を分けています。


関連記事:観測できたことと取引可能性を分ける

この点については、CEXとHyperliquidの研究でも同じ問題を扱っています。

価格差が一定時間後に収束することを確認できても、

それだけでは、

「その価格差をbotで利益に変換できる」

とは言えません。

そこで、市場現象として確認できたことと、実際に取引可能かどうかを分けて評価するようにしています。

関連記事
🛠️開発記録#554(2026/8/27)AIと進めていたアルゴ研究を一度止めて、研究そのものを監査した話

続きを見る

今回の清算研究でも同様に、

清算可能額を推定できることと、清算または清算前後の値動きを実際に取引できることを分けています。


PT-reUSDだけでなく、他のMorpho市場にも当ててみる

PT-reUSDについて事前の清算ラインをある程度再構成できたため、次に確認したのが、

同じ見方を他のMorphoのPT担保市場にも当てられるか

という点です。

ここでも起点はMorphoです。

Morpho上でPTを担保に使っている市場を抽出し、

  • 借り手の状態データ
  • LLTV
  • オラクル
  • 借入額
  • 借り手ごとの清算ライン

などを確認しました。

また、PTの価格がどこから来ているのかを確認するために、Pendle側の市場やオラクル経路も参照します。

目的はPendle市場そのものを横断探索することではありません。

Morpho上の清算条件を理解するために、必要なところまで価格の上流を遡る

という位置づけです。


横断スクリーニングを作った後、そのスクリーニング自体を監査する

Morpho上のPT担保市場を横断すると、清算ラインや借入規模などを比較するためのスクリーニングを作ることはできました。

ただし、この時点では順位付けの結果をそのまま使わず、スクリーニングの前提を監査しました。

そこで、少なくとも次の問題が見つかりました。

今回の仮説とは条件の異なるPTが混ざっていた

PendleのPTには満期があります。

最初に抽出したMorpho市場には、担保PTがすでに満期を迎えているものも含まれていました。

今回見ているのは、

満期前のPT価値の変化

オラクルへの反映

Morpho上の担保価値変化

清算

という構造です。

そのため、満期後PTを担保とする市場は、

「価値がないから除外する」

のではなく、

今回の仮説と比較条件が異なるため、同じスクリーニングから分ける

必要がありました。

表示用のUSD換算値と清算判定に使われる値は同じではなかった

当初は、APIから取得したUSD換算値を使って清算ラインを概算していました。

しかし検証すると、

表示用のUSD換算値から求めた値を、正確な清算閾値として扱うことはできませんでした。

Morphoが実際の清算判定に使うオラクルの生値、市場状態、借入シェア(borrowShares)などから再構成する必要があります。

ここで borrowShares はMorpho内部で使われている変数名に対応するため、英語表記を残しています。

この点は後から計算方法を修正しています。

同じ清算可能額でも、借り手の構成が違う

もう一つ確認したのが、清算可能額の構成です。

例えば、

「100bp以内に数百万ドルの借入が清算域へ入る」

という数字だけを見ると、大きな清算リスクがあるように見えます。

しかし、借り手単位に分解すると、

  • 複数の借り手が近い清算ラインに並んでいる場合
  • 一つの大きなポジションが清算可能額の大部分を占めている場合

では構造が異なります。

現在は便宜的に、

複数ポジション密集型

単一大口型

くらいに分けて考えています。

ただし、これは現段階の研究用整理です。

市場をこの二つに分類できるところまで検証したわけではありません。


「データが取れる」と「比較方法が妥当」は別です

今回の横断スクリーニングでは、多数のMorpho市場からデータを取得できました。

しかし、

データを取れたことと、そのデータを同じ物差しで比較してよいことは別です。

例えば、

  • PTの満期条件が違う
  • 清算ラインの計算方法に近似が含まれる
  • オラクルの経路が市場ごとに完全には解けていない
  • 借入額が一部の借り手へどの程度集中しているかも異なる

といった違いがあります。

こうした条件を確認せずに順位だけを見ると、数値は出ていても、何を比較しているのかが曖昧になります。

この点は、以前プロジェクト全体を監査したときの問題とも共通しています。

コードが動いていること。

数字が出ていること。

その数字を研究上どう解釈してよいか。

これは分けて確認する必要があります。

今回も、監視機を長時間動かす前に、スクリーニング自体を監査することにしました。


現時点で確認できていること

今回の研究で、現時点では次のように整理しています。

まず、

DeFi清算について、清算発生後だけでなく、その手前にある借り手の状態データや清算ラインを公開データから観測できる場合があります。

また、

その清算条件を動かすオラクルの上流まで確認することで、価格形成側とレバレッジを伴う借入ポジションの関係を研究対象にできる可能性があります。

さらに今回、PT-reUSDで作った考え方を他のMorpho PT担保市場へ当てるための横断スクリーニングも試作しました。

一方で、まだ確認できていないものも残っています。

  • 価格形成側の変化がオラクルへどのように伝わるのか
  • その構造が時間的にどの程度維持されるのか
  • 清算された担保が実際にどの経路で処理されるのか
  • 清算前後の価格変化に取引可能な歪みがあるのか
  • 手数料やスリッページを含めて利益になるのか

このため、現時点では、

取引上の優位性は未確認

です。

現在の候補市場や個別の借り手については、継続研究中のためこの記事では扱いません。


今後確認すること

次に確認したいのは、オラクルの上流です。

具体的には、

価格形成側でどの程度の変化が起きる

オラクルがどのように反応する

Morpho上でどの程度の借入が清算域へ入る

という経路を、同じ尺度で結べるかを確認します。

ここまで確認できれば、

「清算が起きそう」

という曖昧な見方ではなく、

一定の価格変動に対して、どの程度の借入が清算対象になり得るのか

を継続的に観測できる可能性があります。

その上で、次に確認するのが「取れるか?」です。

現時点ではまだ、その一つ前にいます。


まとめ

今回は、Morphoで発生したPT-reUSDの清算事象を起点に、

事象の確認

清算までの構造化

個人botterとして狙う場所・優先度を下げる場所の整理

清算ラインを事前に観測できるか検証

他のMorpho PT担保市場への横断スクリーニング

スクリーニングそのものの監査

まで進めました。

現時点では、清算を利用した取引上の優位性が確認できたわけではありません。

今回確認できたのは、

清算という市場現象を、事後的なニュースとして見るだけでなく、事前に観測可能な変数へ分解できる可能性がある

というところまでです。

また、個人botterとしては、

「存在する取引機会をすべて取りに行く」

のではなく、

自分がどの競争条件なら研究を続ける価値があるのか

を先に考える必要があります。

清算実行のように、資本・速度・高度な取引執行基盤による競争が強い場所は、現時点では優先度を下げます。

一方で、

価格形成、オラクル、借り手の状態データ、清算ラインのように公開データから観測できる部分には、まだ確認できることがあります。

今回の研究では、そこを次の観測対象として残しました。

今後も、

何が見えるのか。
その中で何を調べる価値があるのか。
そこから実際に取れるものがあるのか。

を分けながら検証していきます。

それでは、また。


参考一次情報

Morpho:清算・LTV

MorphoにおけるLTV、LLTV、Health Factor、清算条件の確認に使用しています。

Pendle:PTの仕組みと満期

PT(Principal Token)の基本構造、満期、償還の仕組みを確認するために使用しています。

Pendle:オラクル

PTを外部プロトコルで価格評価する際のオラクル構造を確認するために使用しています。

-Bot, DeFi bot, DEX, 開発ログ