Bot CEX DEX 開発ログ

🛠️開発記録#555(2026/8/28)トークン化株式はどこで歪むのか|xStocksの市場構造を分解して観測を始めた話

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

ここ最近、DeFi周辺で発生する価格や流動性の歪みについていくつか研究しています。

清算による強制的なポジション解消。

CEXとDEXの間で発生する価格乖離。

チェーン終了やtoken migrationに伴う資産移動。

こうした市場を調べる中で、最近かなり意識するようになったのが、

「何か大きな値動きがあった」

ことと、

「その値動きを生み出した構造があり、さらにbotで回収可能なedgeがある」

ことは別だという点です。

前回は、このあたりを含めてAIと進めている研究そのものを一度監査しました。

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

続きを見る

今回は、そこから少し別方向へ研究対象を広げています。

対象は、

xStocks

です。

参考:https://docs.xstocks.fi/docs

かなり雑に言えば、

株式の経済価値を、クリプトウォレットから扱えるオンチェーン資産にしたもの

です。

最初は「株をtoken化したRWAの一種」くらいの認識でした。

ただ、仕組みを調べてみると、

TradFiの株式市場

broker / custodian

tokenized equity

DEX

lending / collateral / liquidation

という、TradFiとDeFiを直接接続する市場構造ができています。

ここに、

これまでTradFiだけでは存在しなかった資金フローや価格形成上の歪みが生まれるのではないか

と考え、観測を始めました。

今回は、現在どこに注目していて、どんな仮説を立てているのかを整理します。


xStocksは「株そのもの」ではない

まず前提です。

例えばSPYxやNVDAxをウォレットで持っていても、SPYやNVIDIA株そのものを直接保有して株主になるわけではありません。

xStocksは、対応する原株やETFによって1:1で裏付けられたtokenized assetです。

法的にはtracker certificateという債務証券として構成され、原株やETFの値動きなどの経済的な影響を受けるよう設計されていますが、議決権などの株主権を直接持つものではありません。

原株やETFは、TradFi側のbroker / custodianを通じて管理されます。

xStocks公式資料では、対応する原株・ETFは規制されたbroker / custodianに保管され、商品ごとの専用sub-accountを使って分別管理されると説明されています。また、異なるxStock商品の担保を混在させない設計になっています。

さらに、Backed Assetsが公開している法的資料のService Providers一覧では、Alpaca Securities LLC、InCore Bank AG、Maerki Baumann & Co. AGが原資産のbrokerとして記載されています。Custodianとしては、この3社に加えてGTN Europe Financial Services Limitedも記載されています。

一方、発行されたxStockはSolanaなどのblockchain上へ出てきて、walletで保有したり、DEXで交換したり、DeFiの担保として利用したりできます。

xStocksの一次発行・償還には、本人確認(KYC)やマネーロンダリング対策(AML)の審査が必要です。

また、原株市場に合わせて基本24/5で動きます。

一方、一度発行されたxStockの二次市場はplatformによって24/7で動きます。

つまり、

TradFi
SPY / NVDA / QQQ

broker / custodian(仲介者 / 保管者)

issuance / redemption(発行 / 償還)

────────────────
blockchain
────────────────

SPYx / NVDAx / QQQx

DEX / Lending / Wallet

という構造になっています。

この、

価値の根っこはTradFiにあるのに、流通・担保・売買はDeFiでも起きる

という境界が今回の研究対象です。

参考1:How xStocks Work

参考2:Product Legal Overview

参考3: Backed Assets|Service Providers


原株は誰が買っているのか

ここも最初は少し勘違いしていました。

一般ユーザーがApple株などをsmart contractへlockして、AAPLxをmintする仕組みではありません。

通常のMarket Flowでは、

stablecoin

xStocks issuer(発行体)

brokerへ原株の注文

実際の株を購入

custody(原株を分別保管)

xStockを発行

という流れになります。

発行体が原株のinventory(現株の在庫)を適当に持っておいてtokenを払い出すのではなく、Market Flow(市場経由の発行・償還フロー)では発行依頼に応じてbroker経由で原株を購入する仕組みです。

また、xPortという仕組みではAlpacaのbrokerage accountにある現物株を直接xStockへ変換する経路もあります。

つまりxStocksは、

TradFiを置き換えた仕組み

というより、

TradFiをbackendとして使い、その上にオンチェーン流通レイヤーを作った仕組み

と考える方が近そうです。

参考1:Market Flow

参考2:xPort - In-Kind Flow


今回はSolanaだけを見る

xStocks自体はmulti-chainです。

しかし最初から、

Solana
Ethereum
Hyperliquid
bridge
複数DEX
複数lending protocol

を全部観測すると、実装量が一気に膨らみます。

そこで現在はかなり範囲を絞っています。

対象chainは、

Solanaのみ。

assetも、

SPYx / QQQx / NVDAx

の3つだけです。

そして主に見ているのが、

Kamino

と、

Jupiter

です。


Kaminoは「xStockを担保にする場所」

KaminoはSolana上のDeFi protocolです。

Lending、Liquidity、Leverageなど複数機能がありますが、今回見ているのは主にKamino Lendです。

例えば、

SPYx

Kaminoへdeposit

collateralとして利用

USDCをborrow

というpositionを作れます。

するとSPYxの価格が大きく下がれば、

SPYxの価格下落

担保価値が低下

ポジションの健全性が悪化

清算

清算者(liquidator)が担保のSPYxを取得

市場で売却

という強制的な資金フローが発生する可能性があります。

ここは以前から調べている「Forced Flow」というテーマとかなり近いです。

関連記事
🛠️開発記録#553(2026/8/26)ライフサイクルの転換点にエッジを探す|DFK Chain終了イベントを検証した話

続きを見る

DFK Chainではshutdownによる資産整理を見ていました。

今回は、

lending positionの清算によって、売買するかどうかを自由に選べないフローが発生する

可能性を見ています。

参考:https://kamino.com/earn/lend


Jupiterは「Solana全体の実行価格を見る窓」

JupiterはSolanaの主要なDEX aggregatorです。

Ethereum系でいう1inchに近い存在です。

例えば、

「今10,000 USDCでSPYxを買ったら、どのくらいSPYxを受け取れるか?」

と問い合わせると、Solana上の複数のDEXやliquidity sourceを見ながらrouteを探索します。

そのため今回の研究では、特定のDEX一つだけを見るのではなく、

Solana上で今この瞬間にxStockを実際に売買しようとしたときのexecution quality

を見る窓としてJupiterを使っています。

単純な表示価格ではなく、

100ドル
1,000ドル
5,000ドル
10,000ドル

と注文サイズを変えて、

spread
price impact
route
liquidity source

などを継続保存しています。

将来的に売買するとした場合の執行レイヤーも、現時点ではこのSolana上の二次市場を想定しています。

TradFiの株式市場は価格のreferenceとして見るだけで、直接売買する前提にはしていません。

参考:https://developers.jup.ag/


現在考えている5つの仮説

ここまで市場構造を整理すると、歪みが発生しそうな場所を大きく5つに分けられました。

まだ売買戦略ではありません。

すべて、

「こういう市場現象が存在するのではないか」

という研究仮説です。


H1|Forced-flow Dislocation(強制フローによる価格乖離)

一つ目は清算です。

xStockを担保にする

stablecoin等をborrow

xStock価格が下落

position health悪化

liquidation

forced xStock flow

DEX価格へのimpact

convergence?

という流れです。

もし清算による売却が、その瞬間のavailable liquidityに対して十分大きければ、一時的にxStock価格を押し下げる可能性があります。

そして、その価格が別の市場参加者や裁定機構によって戻るなら、

Forced Flow
→ Price Dislocation
→ Convergence

という構造になるかもしれません。

ただし現在、実際のliquidationによる価格impactはまだ確認できていません。


H2|Incentive-driven Capital Reallocation(インセンティブによる資本再配置)

二つ目はインセンティブです。

xStocksではxPointsなど、オンチェーン利用を促す仕組みがあります。

例えば、

incentive増加

xStockのKamino deposit増加

lending supply増加

utilization変化

borrow rate変化

あるいは、

LP incentive増加

DEX liquidity増加

depth改善

price impact低下?

という資金移動が起こる可能性があります。

ここで見たいのは、

ポイントそのものの将来価格

ではありません。

報酬設計によって他の市場参加者が資金を移動した結果、市場構造がどう変わるか

です。


H3|Supply / Inventory-flow Dislocation(供給・在庫変化による価格形成の歪み)

三つ目はxStockそのものの供給量です。

xStocksは一次市場でmint / burnされます。

そこで、

mint

on-chain inventory増加

secondary liquidity改善?

あるいは、

burn

on-chain inventory減少

spread拡大 / price impact増加?

という可能性を考えています。

ただし、ここはデータ取得方法についてまだ制約があります。

現在のtoken transfer観測は、Kaminoイベントのように全履歴を完全に追跡する方式ではありません。

そのためtransfer件数そのものではなく、

raw supply
scaled supply
multiplier
mint / burn

など、供給stateを優先して観測しています。


H4a|Session-dependent On-chain Liquidity Regime(市場時間帯に依存するオンチェーン流動性)

四つ目から少し性格が変わります。

xStockの二次市場は24/7で動きます。

一方、原株の市場や一次発行・償還にはTradFi側の時間制約があります。

すると、

US market REGULAR

TradFi liquidity利用可能

primary access利用可能

MMのinventory riskが相対的に低い?

と、

US market CLOSED / WEEKEND

underlying market停止

primaryの価格拘束力低下?

MMのinventory risk上昇?

では、

オンチェーン側のspreadやprice impact、route構造まで変化するのではないか

という仮説です。

これは原株価格を見なくても、

spread
price impact
route
liquidity source

だけで検証できます。


H4b|Session-dependent Price-Anchor Regime(市場時間帯に依存する価格アンカー)

五つ目は価格アンカーです。

xStockは最終的に、

SPYx → SPY
QQQx → QQQ
NVDAx → NVDA

という外部価値を参照しています。

しかし、

原株市場は止まっているのにxStockは動いている

時間があります。

すると、

TradFi open

underlying price更新

issuance / redemptionが利用可能

arbitrage / MMが動きやすい

xStock価格への拘束力が強まる?

という状態と、

TradFi closed

underlying price更新停止

xStock側で独自にprice discovery

TradFi再開

再同期?

では、価格形成の仕方が変わる可能性があります。

ここでは、

「休日にSPYxがSPY終値から離れたから割安・割高」

とは判断できません。

原株の真の現在価値そのものが観測できないからです。

そのため、

freshなTradFi価格との差

と、

market close後の古いreferenceからどれだけ離れたか

は別の状態として扱っています。


重要なのは「価格アンカー」と「執行場所」が違うこと

この研究で少しややこしいところです。

例えば、

SPY reference = 100
SPYx = 98

だったとしても、

SPYxが2%安いから2%のarbがある

とは言えません。

私は海外株式市場でSPYを直接shortすることを前提にしていないからです。

SPYxを98で買っても、その後SPYそのものが100から95へ下がれば、SPYxも下がる可能性があります。

つまり、

原株価格との差がある

ことと、

その差をrisk-neutralに回収できる

ことは別です。

これは以前のCEX–DEX研究でもかなり意識した部分です。

関連記事
🛠️開発記録#552(2026/8/25)|CEX–DEX清算キャッチ研究:価格乖離の収束をOOSデータで検証した話

続きを見る

今回もまず確認するのは、

イベント

dislocation

convergence

という市場現象まで。

どの市場でhedgeするのか。

entry可能な価格が残るのか。

手数料やslippage後に利益が残るのか。

そこは現象が確認されてから検証します。


まず24時間だけ観測してみた

前提整理ができたところで、Solana上にread-onlyのcollectorを作りました。

対象は、

SPYx
QQQx
NVDAx

です。

主に、

Jupiter executable quote
Kamino lending state / event
xStock token state
TradFi reference

を2分間隔で保存しています。

最初の24時間では、

720 / 720 snapshots

を取得できました。

market observationは8,640件。

raw Jupiter quoteは約17,000件。

Kamino関連eventも73件取得できました。

少なくとも、

「この市場を継続観測するためのデータ自体が取れない」

という状態ではなさそうです。


3銘柄でもexecution qualityはかなり違った

例えば10,000ドル相当のJupiter quoteを見ると、24時間の中央値では、

SPYx
spread 約9.7bps
price impact 約6.1bps

NVDAx
spread 約21.9bps
price impact 約16.3bps

QQQx
spread 約34.2bps
price impact 約26.3bps

でした。

この24時間・この注文サイズという限定付きですが、

execution-cost qualityではSPYxが最も扱いやすかった

という結果です。

これはまだedgeではありません。

ただ、

xStocksという一つのカテゴリの中でも、assetによって実際に取れる市場の質はかなり違う

ことは分かりました。


そして最初の解釈はさっそく一つ間違えた

24時間データを最初に集計すると、

米国市場が閉じている時間帯はJupiter quote availabilityが低い

という結果が出ました。

かなり都合の良い結果です。

「TradFi市場が閉まったことで流動性が落ちたのでは?」

と考えたくなります。

しかし、データ取得基盤を監査すると違いました。

主因は、

Jupiter APIのHTTP 429

でした。

つまり、

市場に売買routeが存在しない

のではなく、

こちらがAPIからquoteを正常取得できなかった

ケースが大量に混ざっていました。

transport failureを除いて再集計すると、今回の24時間ではmarket route availabilityは100%でした。

このため、

「TradFi市場が閉じるとroute availabilityが低下する」

という最初の解釈は採用していません。

現在のH4aは、

routeが存在するか

ではなく、

同じroute availabilityでもspread・price impact・liquidity sourceなどの市場構造が変わるか

という仮説へ修正しています。


borrow=0 も、そのまま読めなかった

Kaminoでは24時間で、

deposit 41
withdraw 26
repay 6
borrow 0
liquidation 0

というeventを取得しました。

ここでも、

borrowが0なら、xStockを担保にした借入需要がないのでは?

と読みたくなります。

しかしdecoderを監査すると、このborrowは、

xStockそのものをliquidity assetとしてborrowしたevent

を数えていました。

例えば、

SPYx collateral

USDC borrow

なら、borrow側はUSDC reserveです。

つまり、

borrow=0

から、

xStockを担保としたレバレッジpositionが存在しない

とは言えません。

コードが返している数字と、その数字に自分が与えている経済的な意味は別です。

このあたりは、前回の研究監査で整理した問題がそのまま再登場しました。


「イベントを取れた」と「全イベントを取った」も違う

token transferについても同じです。

24時間では1万件以上のtoken event recordsを取得しました。

ただし現在のtoken event collectorは、毎回最新履歴を取得するsampling方式です。

そのため、

「24時間の全transfer件数が1万件以上だった」

とは言えません。

一方、Kamino eventについては前回どこまで取得したかというcursorを保存し、そこまで履歴を遡る方式を使っています。

これは、

liquidationを一件でも取り逃すと、H1の検証自体が壊れる

ためです。

研究対象によって、

現在stateが分かればいいのか
event履歴を一件も落としたくないのか

でcollectorの要件も変わります。

こういうところも、実際に観測機を作らないと見えてこなかった部分でした。


現在の仮説評価

24時間だけで結論は出しません。

現時点では、

H1 Forced Flow
→ liquidationが0件だったため、LOW EVENT FREQUENCY。継続観測。

H2 Incentive Flow
→ baselineを蓄積中。

H3 Supply Flow
→ 継続。ただしtoken event samplingに制約あり。

H4a Session Liquidity Regime
→ 仮説候補。route availabilityではなくexecution qualityを見る。

H4b Price-Anchor Regime
→ reference timestampの扱いを分離した上で継続。

という状態です。

一つも、

EDGE CONFIRMED

にはしていません。


現在は7日間の観測を始めている

24時間観測とデータ品質監査まで終わったので、現在は同じ条件のまま7日間のbounded observationを開始しています。

対象は増やしていません。

Solana。

SPYx / QQQx / NVDAx。

Jupiter。

Kamino。

同じ注文サイズ。

同じ観測間隔。

です。

観測条件もGitでbaselineとして固定し、途中で都合よく研究条件を変えないようにしています。

7日間取る理由の一つは、

平日のTradFi市場

週末・TradFi market closed

xStockはオンチェーンで継続取引

月曜・TradFi市場再開

価格・流動性がどう変化するか観測

という一周期を同じ条件で観測したいからです。

特に、

H1のliquidation eventが実際にどの程度発生するのか。

H4aのexecution qualityにsession差が再現するのか。

H4bでTradFi price anchorの停止・再開前後にどのような価格形成が起きるのか。

を確認します。


今回一番面白いのは「株をウォレットで買えること」ではない

xStocksを最初に見たときは、

クリプトウォレットから株の値動きを取れる

というところが分かりやすい特徴でした。

でも研究対象として面白いのは、むしろその先です。

TradFiの株式価値が、

TradFiの株式価値

xStockとしてtoken化

walletへ流通

DEXで売買

DeFiのcollateralとして利用

leverageが生まれる

liquidationという強制フローが生まれる

ところまで来ています。

つまり、

株式というTradFi資産の上に、crypto-nativeな市場構造が追加され始めている

ということです。

原株市場にはなかった清算経路。

報酬による資金移動。

オンチェーンinventory。

24/7市場と24/5市場の時間差。

複数DEXへのliquidity fragmentation。

こうした境界が増えれば、それぞれに摩擦が発生する可能性があります。


現時点では「エッジ」ではなく市場構造仮説

ここは最後に強調しておきます。

今回整理した5つは、

5つのトレード戦略ではありません。

5つの市場メカニズム仮説です。

今後、

仮説を立てる

市場現象を実測する

別期間でも再現するか確認する

原因をある程度attributionする

executable priceが残るか確認する

value anchor / executable exitを確認する

コスト後にも残る

edge候補

まで確認できたものだけ、初めてedge候補になります。

以前DFK Chainを調べたときにも、

大きな価格変動があることと、戻る場所があることは別

という問題に当たりました。

今回も同じです。

関連記事
🛠️開発記録#553(2026/8/26)ライフサイクルの転換点にエッジを探す|DFK Chain終了イベントを検証した話

続きを見る

xStocksでは原株という強いreferenceが存在します。

しかし、

referenceがある

ことと、

自分がそのreferenceとの価格差を実際に取引できる

ことは別です。

ここはこれから検証します。


現時点での結論

xStocksを調べ始めた結果、現在見えているのは、

TradFi資産をオンチェーン化すると、単に24時間売買できるようになるだけではなく、DeFi側に新しい資金フロー・担保・清算・在庫・時間境界が生まれる

という市場構造です。

そこから現在、

H1|Forced-flow Dislocation(強制フローによる価格乖離)
H2|Incentive-driven Capital Reallocation(インセンティブによる資本再配置)
H3|Supply / Inventory-flow Dislocation(供給・在庫変化による価格形成の歪み)
H4a|Session-dependent On-chain Liquidity Regime(市場時間帯に依存するオンチェーン流動性)
H4b|Session-dependent Price-Anchor Regime(市場時間帯に依存する価格アンカー)

という5つの仮説を置いています。

ただし、24時間観測した段階ではどれもedgeとして確定していません。

むしろ、

API failureを市場流動性低下と誤認しかけた
borrow=0の経済的な意味を誤読しかけた
event sampleを全履歴と解釈しかけた

といった、観測側の問題がかなり見つかりました。

このあたりを一つずつ潰しながら、現在は7日間の固定観測を続けています。

今回の研究も、

「xStocksにエッジがありそうだからbotを作る」

のではなく、

どこに歪みが生まれうるかを分解し、その歪みが本当に存在するかを実測する

ところから始めています。

7日分のデータが揃ったら、5つの仮説のうち何を残し、何を捨てるのか改めて整理します。

全部なくなるかもしれません。

予想していなかった別の現象が出てくるかもしれません。

今のところ、それでいいと思っています。

まず市場が実際にどう動いているのかを見る。

そこから、取れるものだけを残します。

それでは、また。

-Bot, CEX, DEX, 開発ログ