Solana MEV botまとめ
⛓Solana(SOL)でなんかやる🤖MEVbot.
Index
DApp specific bot
🤖Solana Arbitrage MEV
Solanaにおける🤖Arbitrage MEVまとめ. Solana Atomic Arb.
💡Solana Atomic Swap構築
📝Atomic Swapをつくるには? 複数Txをひとつにまとめたい.
Solanaの仕様に基づいていろいろ苦労する
- バイナリをdeserializeしてmessageを取り出す.
- messageをdecompileしてinstructionsを取り出す.
- instructionsをまとめる
- messageにコンパイル.
- txをserializeしてバイナリ変換.
Jito Bundleをつかう
🔧Jito BundlesはJito-solanaの機能のひとつ.
❓Solana Atomic Arbではスマコンを記述する必要はある?
TBD, 調査中. こういうやつ.
ChatGPTによると, 場合によるらしい.
ただし、特定のビジネスロジックや条件(例: 「実行中に利益が出なかったらトランザクションを失敗させる」)を実装したい場合は、カスタムのSolanaプログラム(スマートコントラクトに相当)を作成することが必要になります。このカスタムプログラム内で、アービトラージの条件やロジックをチェックし、それに基づいてトランザクションの成功または失敗を決定することができます。
具体的には、アービトラージの利益を計算し、所定のしきい値以上の利益が得られるかどうかを確認するロジックをプログラム内に実装することになります。利益が期待値を下回る場合や、その他の失敗条件が満たされる場合には、プログラムはエラーを返し、トランザクションはロールバックされます。
要するに、Solana の基本的なトランザクション機能だけでアトミック・アービトラージの基本はカバーできますが、特定の条件やロジックを組み込みたい場合はカスタムプログラムの作成が必要です。
自前Programの例
- viveksb007 | Arbitrage Bot Analysis on Solana
- https://solscan.io/tx/5hdwrwgfbFDbxsigaqHEB8syYrWjaidRec96xdbP7V4BPSMuYBk8yFeq8jdWxDPgK7CYLwEV2bAgSuPbf55HGzvg
- https://github.com/jup-ag/sol-swap-flash-fill/tree/main
- cliがts, programがrs.
Solanaarbitrage.com
- https://www.solanaarbitrage.com/
- これはjitoをつかってる: https://solscan.io/account/72FXMcchZS4JRgQ62pKweYhHAkFA19PFoaqAUhWZmEFU
手動アビトラ x 監視bot
botは開発に時間かかるので事件系は手動.
🤖Solana Liquidations MEV
- 🔍Jito Explorer: Liquidationの項目はあるけど開発中.
- https://github.com/port-finance/liquidator
Drift Protocol
- Tutorial: Liquidation Bot - Drift Protocol v2
- https://github.com/drift-labs/keeper-bots-v2/blob/master/src/bots/liquidator.ts
marginfi
Mango Markets
- https://github.com/blockworks-foundation/liquidator-v3
- Bots - Mango Markets
- https://github.com/blockworks-foundation/mango-explorer/blob/main/docs/LiquidatorQuickstart.md
- v4: https://github.com/blockworks-foundation/mango-v4/tree/dev/bin/liquidator
Solend Liquidators
🤖Solana Sniper MEV
Solana 🎴Liquidity Sniping
Solanaトークン上場戦bot. New listing sniper bot.
;; https://github.com/vobruno/Solana-Raydium-Token-Sniper-Bot
snipe tokens listed in the DEX Raydium, in the Solana network.
SolanaはアーキテクチャがEVMと違い独立国家なので競争が少ない?!
- 🔌bloXroute Solana Trader API
- 🐵Jupiter ApeProのLimit Orderをつかうとcloseは自動化できる?
Raydium Pool監視
Solanaチェーンだと🏢Raydiumを監視することになる.
- https://github.com/huynd0210/DexSpyder-Sniper-Tool
- https://github.com/iSyqozz/Solana-Raydium-Monitor
- https://github.com/fdundjer/solana-sniper-bot/tree/master/market
Birdeye監視
birdeyesでみて急激に価格が上がっている(>100%)のが新トークン. たいていはSOLとswapされる, USDCではない.
Jupiter Token Listに登録されるには時間がかかる(数日). token listに登録さないとUIからのswapができない. それなのにbirdeyesでJupiter Platformをつかってswapをしているaddressがbot.
new listing listの24H volでソートしてみつける.
https://birdeye.so/new-pairs?chain=solana
birdeye apiがもうすぐdeplicatedになるかも, DEXScreenerがいいかも.
telegram bot
なんか同じような名前のサービスが多すぎないか?!
- 🤖Unibot
- Ethereumの成功に続き2024/01からSolana殴り込み.
- Solsniper
- Sol Sniper Bot
- site: https://solsniperbot.io/
- telegram: https://t.me/solanaSnipers_bot
<2024-01-09 Tue>
まだ始動したばかりでよくわからない.
- SolanaSniperBot
- solanagun: https://solanagun.io/
🔍Sniperを探せ
BONKBotを使っている人
BONKBotはログに残る.
bloXroute Solana Trader APIを使っている人
<2025-01-08 Wed 12:05>
なんかみんなこれつかってるな…
Solana NFT Mints MEV
Solana NFT Snipter bot.
Examples/OSS
🤖Solana mmbot
🏢Solana CLOB DEXにおけるmarket maker bot.
- Raydium CLMM: https://github.com/raydium-io/raydium-sdk-V1-demo/tree/master/src/clmmMarketMaker
- drift
- Phoenix:
- mango-v4 mmbot: https://github.com/blockworks-foundation/mango-v4/tree/dev/ts/client/scripts/mm
- https://github.com/skynetcap/openbook-mm
🎴価格計算/quote取得
AMM DEXからの価格取得は取引所のSDKを使う方法とチェーンからLP情報を取得して算出する方法がある.
ことSolanaの場合, LP情報がバイナリなのでパースして解析するところがイーサリアムよりも難易度が高い. SDKを使えればそれがよいものの, そうでない場合は自前での解析が必要となる.
- もし公開されていれば UI のソースコードからトランザクションの構築方法を読み取る
- ウェブサイトの JavaScript を解読してトランザクションの構築方法を分析
- トランザクションを実行してみて、Solana Explorer や solscan で内容を精査する
ref. Solana での BOT 開発の概要
http get
- 🔌Jupiter Swap: getQuote
- 🔧solana/web3.js
- http: getTokenAccountBalance
- ws: onAccountChange
LP Poolsからの価格ローカル計算
🔖AMM Curvesの仕様にもとづいて自力計算.
- How to calculate token prices from LP pairs? - Solana Stack Exchange
- Token Swap Program | Solana Program Library Docs
- Raydium: computeAmountOutで計算
- Python実装例
🎴新規トークン検出/新規LP監視
Raydium Pool監視
結局Solanaでは新規トークンはRaydiumに上場する.
Jupiter Market監視/token list(all)より先に仕掛ける
JupiterのMarket Cacheに追加されると, 自動でそれはJuipterのall token listにも追加されてみんなが取引し始める. MEV的にはそれに追加される前に仕掛けたいところ.
裁定 パスに対応するLPを取得するには?
どうやってMarket(LP)を調べる?
- 各Platformからそれぞれ取得.
- 🔧jito-labs/mev-botだと, listを取得したあとに起動時にrouteをすべて検索してキャッシュしてる.
- https://github.com/jito-labs/mev-bot/blob/master/src/markets/index.ts
- 🔍Solscan: MintページのMarketsから確認.
- solscan以外のexploreがみつからない…
- 🔍DEX Screener:
- APIでpair検索や統計情報検索ができる.
- Raydim AMM/Orca/FluxBeamだけ.
🤖Solana Sniper BotのOSSをみるといろんなチャネルから情報収集している.
Explores
- gekcoterminal: https://www.geckoterminal.com/ja/explore/new-crypto-pools/solana
- Hello Moon: https://docs.hellomoon.io/docs/lp-creations
Helius Webhook活用
- How to set up a Solana Telegram bot
- web3.js - Listening to events about the creation of new pools - Solana Stack Exchange
- liquiditypool - Listen to newly created Liquidity Pool - Solana Stack Exchange
- まだ未回答…
🎴Route構築
🎨Solana Atomic Arb Patterns
- 基本はSOL or USDCからはじめる. たまにUSDTを使っている人はいる.
- token: USDC/SOL
- sub: USDT/USDH - ニッチだからありか?
- token: USDC/SOL
- hop: 2hop/3hop/4hop/5hop/6hop
2hop: SOL->X->SOl/USDC->X->USDC
もっとも基本的なパターン. たいていのトークンは必ずSOL/Xのペアで流動性プールをもつ.
- SOL->X->SOl
- USDC->X->USDC
2hop: DEX内閉路
DEX内Cyclic というパターンもある. たとえばRadiumにはSOL->RAYが複数あったりする. それらをうまく接続すると閉路になる.
3hop: USDC->SOL->X->USDC
あるDEXはSOL-Xのペアがあって別のDEXはX-USDCがある場合は, 3hopのrouteを構築しないとtxを通すことができない.
USDC->SOL->X->USDCのrouteをひっくり返して逆にたどるとSOL baseも探索していることになる. SOL->X->USDC->SOL.
ただしSOLよりもUSDCのほうがstableなのでUSDCを基軸にしたほうがいいかも.
3hop: USDT route
ほとんどのトークンはUSDC/SOLとのペアがおおいが, 3番目としてUSDTがある. ここを狙う.
3hop: 両端がUSDC/SOLではない流動性プール route
X-YがどちらもSOL/USDCでないケース.
- USDC->X->Y->USDC
- SOL->X->Y->USDC
こういう流動性プールで取引量がそこそこあるのはたいていJupiter SwapかAtomic Arbをしている人のどちらか.
4hop: 両端がUSDC/SOLではないLP x 2
X-YがどちらもSOL/USDCでなくかつ, あるDEXではSOL-X, 別のDEXではY-USDCの場合. このケースでは4hopしないとサヤがとれない.
- USDC->SOL->X->Y->USDC
4hop: 両端がUSDC/SOLではないLP x 3
ここまでくるとスピード勝負ではない. 計算が大変なので. ゆっくり網羅的に探す.
- USDC->X->Y->Z->USDC
- SOL->X->Y->Z->SOL
5hop
<2025-01-09 Thu 12:16>
推論では5hopをする必要がないんだけど、実際に構築してみると、たまに大きなサヤがとれる(しばしば独占して大きな利益!)のでなぜか考えている. 計算コストが大きくて普段は動かせない. どうもwrapped tokenを経由するrouteがとれる気がするが気のせいか?また、5hop/6hopは競合が極端に少ないのも事実. しかし、5hopでないととれないサヤがわからないな. 研究中.
Jupiter market.cacheに乗らないLPを探す
Raydium CLMM Pool
- このROCKY CLMMはtx履歴をみるとほぼ数人のarberだけだった.
<2024-01-13 Sat 14:44>
Meteora Valut
SolscanにRaydiumしか表示されてないのにMeteoraでswapできる?
PLZという新規トークンがSolscanからみるとRaydiumにのみ表示される. JupiterからもRaydiumのpathのみがでる. しかし, Raydium-MeteoraのpathでAtomic Arbをしているアカウントがいた. これはいったいどういうことだろう?
https://solscan.io/token/JAmcJfhcJXrAP2neAHwBhajjmqUqPQt8Nyc42WH4LpUx#markets
MeteoraのサイトからPLZを検索するとLPがでてきる. これはどういうこと?
https://app.meteora.ag/pools/CnwdHuakpVBsesuUAWxhBdX9rTi6nXp6AxP5GMJcdThc
さらにしばらくするとJupiterでSwap可能になった.
SOL/USDC/USDTから外れたLPを探す
たいていのプールはSOL/USDC/USDTとのペアだ. しかし, たまにへんなpairのPoolがある. それらは大抵の場合はTVLが小さい謎のPoolなのだが, そこのpathがよくarbで通過することがおおい.
Jupiter quoteでUSDCをinputにすると奇妙なpathがみつかることはある.
BUMBLE-USDB: https://solscan.io/account/8C4LAMW1Ut3fnwkT5NN3PJeFrNxsAAJZwBga8bGe5BYY
24h volumeはないがTVLはあるLPを探す
24時間以内に取引がないとそのまま誰も取引されずに放置されるプール. ただしTVLがあるというこは, ここにトークンが預けられているということで, swapは可能.
たまに忘れらされたとんでもない宝があったりする. ただし大抵の場合はそんなことはなく単なる徒労に終わる.
🎴AddressLookupTables調達
VersionedTransactionつかうことは当然の前提として, txのサイズを1232 bytesに収めるためにどうするべきか? みんなALTをどこから調達しているの?
Txサイズ調査方法
- JSの場合, オブジェクトサイズはlength関数で調べる.
- simulateTransactiondでサイズオーバーはtxを通してくれない.
Jupiter Cacheから調達
🔧Jupiter market.cacheから調達. params->addressLookupTableにある.
- 予測ではJupiterが独自に管理している(昔は取引所のALTを使っていた記憶がある).
- ひとつのALTで複数ownerを使いまわしてる. owenerごとではない.
- このアカウントがextendしているケースが多い.
- 推測では, market.cache更新のタイミングでAddressLookupTableAccountも作成される. ALTを作成したら, 1回のtxで22個ずつ, めいいっぱい追加. 以下の例だと, 20
22個ずつ, 10回にわけて追加. ひとつのtxには23のAMMが詰め込まれる. つまり, 詰め込み式でとりあえずどんどん追加される.- account: https://solscan.io/account/Gm4HQt6FGhzGLngJK6LBfsrmGmbwmGBNbx5LkTRo7uif
- crate: https://solscan.io/tx/3dw6LLspiyvpDSSGH5UHzzv6hCveQJwskgezztJaGi6d6B6DFWZWmnDMyM8YASC6xTHSFyWwq8SZyQu9DGEx1tGc
- extend: https://solscan.io/tx/4s78KEiSFUKTxzK9gt9gpcwmGyaip39PUo9DijxnWGRBpbDePUkpMXEGUZ2SzBgPSLG2E9HZX1PqXYKG2vWpNzbq
各Marketのpoollistから調達
たとえばRaydium系はPoolKeysにlookupTableAccountsにアドレスがある場合がある(ない場合もある). AuthorityはこれRayZuc5vEK174xfgNFdD9YADqbbwbFjVjY4NM8itSF9.
各Marketの片ペアを調査
2つのPairの片方のtokenを含む別LPのALTがわかっているならばそれを利用する. mint keyやvault keyが被っているので.
各MarketのSOL/USDCで代替
最後の手段. event authoryとかが被っているので.
自前で準備
- createAddressLookupTable
- extendAddressLookupTable
🎴Swap実行/tx送信
🔌bloXroute Solana Trader API
CEXでトレードするようにAPIを叩いてトレード. これならSolanaの複雑な仕組みをしらなくてもトレード可能.
- Trader API v2 - bloXroute Documentation
- https://solscan.io/account/HQ2UUt18uJqKaQFJhgV9zaTdQxUZjNrsKFgoEDquBkcx
- 末尾のLogで Program log: Powered by bloXroute Trader Apiとある.
💡Multihop SwapsのためにJupiter APIを利用
🔌Jupiter Swap APIを利用すると, multihop swapが構築できる. Solscanをみると Jupiter Aggregator v4でSwapしている人がとても多いが, 理由はおそらくこれ.
ref. https://github.com/jito-labs/mev-bot/blob/master/src/build-bundle.ts
The Jupiter program is used because it supports multi-hop swaps, which are necessary for executing the arbitrage route.
🔧jito-labs/mev-botはv4を利用していたがv6でもできた.
Solana MEVで最適なCommitment Levelは?
JitoやDriftのBotサンプルはtx送信でprocessed
どうもprocessedをつかっているな… ログをとるときはconfirmed.
- https://github.com/search?q=repo%3Adrift-labs%2Fkeeper-bots-v2%20commitment&type=code
- https://github.com/search?q=repo%3Ajito-labs%2Fmev-bot+commitment&type=code
5%程度のdropは仕方ないという判断か?
transaction process statusはfinalizedが先に処理される?
transaction process statusはprocessed/confirmed/finalizedがある. defaultがfinalized. どれがいいのか検討中.
ChatGPT的にはprocesse->finalizedの順に処理されるのでprocessed/confirmedをおすすめされたが, solscanで確認するとfinalized->processedの順に処理が並ぶところが直感に反する. ChatGPTに相談すると表示はSolscanの仕様かもとのこと.
processedを指定すると5%くらいがtx消失するらしいのでconfirmedあたりが無難か?
🎴入力量最適化
amountは大きければ大きいほど利益が大きいが, それは線形ではない. ただ小さい単位, たとえば1ドルを2ドルにする程度ならば線形.
- 最適化しない.
- AMM方式ならば自力計算は難しくない.
Topics
💡Solana Bot開発の流れ
強botterの研究してみた, magito氏がsolana mmbotをつくる軌跡の観察.
;; https://twitter.com/regolith1223/status/1459167224758140929
①Solanaチェーンの基本仕様を理解する(→Solana/Web3.jsを使いこなせるようになる)
②SerumDEXや各AMM等の基本仕様を理解する(→各DappのClientを実装できるようになる)
③Rustを学びつつ②を追求する(→各Dappに対応した独自コントラクトを開発できるようになる)
みたいな流れでした。
💡SOLを直接ipnutTokenにつかうとSolscanでbalanceがわからない
SOLをAtomic arbに利用すると, Solscanでは損益計算でSPL Transfersではなく, SOL Transfersに表示される. 他のトークンと違い, SOLだけ管理が別なのである.
すると, SolscanではSOL balanceの変更履歴が表示されない. SOLではなくWSOLがいいのかも.
どうもクリプタクトからSolana walletに接続する機能がそもそもない.
🔦Solana MEVは取引手数料が安いからSpam botなりがち
<2024-07-01 Mon 12:16>
あまりにDDoS spam botがSolanaネットワーク 全体の問題となり, 最近はほぼ全滅させられれたようにみえる. Priority feeをちゃんと支払うかJito をつかうか.
Solana tx発行コストが0.000005 SOL (= 1銭くらい)なので, atomic arbを行うspam botが多い.
🤔tx送信からconfirmedまで数十秒かかるので自分の先のtxであとのtxが失敗することもある
サヤを検出してTxを送信してarbitrageが成功するまで数十秒(30秒くらい)かかる. その間に再び価格取得をしてtxを送信しても, 先に送信した自分のtxであとの自分のtxが失敗することもある.
🤔Solana Txの裁定執行コストと裁定tx成功確率を考慮する
Solana Txの執行コストは0.000005 SOL. これは, SOL/USDC = 20程度のrateを仮定すると, 0.0001 USDC程度となる.
SOL/USDCでCyclic Arbをしようとしたとき, 0.0001 USDC程度の鞘は常に発生しているのだが, これを取りに行くとコスパ負けする. txは必ず通るとは限らない.
Solanaは執行コスト, いいかえればガス代がEVMに比べてとても安いとはいえ, それでもコスパを考えてTxを発行しないと気づいたら損をしている.
Solana LPの評価方法
- TVL: Token locked:
- 保有している2つのトークンをドル換算して足したもの.
- TVL pair比率
- 正常ならば1:1になる.
- 流動性はあるか?
- Volume24h
- Last trade
TVLがあればお金がLockされているということ
TVLがあればそこにはお金がlockされているということ. たとえ24時間のVolumeがない場合でも, まれに他のpoolと比較したときに大きな乖離があることがある.
PoolInfoの中でTVLの文字がない場合は,
- liquidity
- current_price x 基軸通貨のresered Volume x 2 で概算.
Issues
未解決, 調査中の課題.
CoingeckoとJupiterの関係は?
JupiterでよくWarningでCoingeckoと乖離があります!と表示がある.
coingeckoのpublic APIで取得しているようだ.
https://api.coingecko.com/api/v3/simple/price?ids=wrapped-solana,dogwifcoin&vs_currencies=usd
Raydium v4とOpenBookは同一の流動性プール?
Solscanをみると大抵の場合Raydium/OpenBookの2つが並んでいるが取引 PlatformはRaydiumでしかされてないようにみえる. これはどういうこと?
おそらく同一pool. 本物のPoolの流動性はTVLで表示されていて, solscanだとsortをつかうと見える.
VaultでSwapするとはどういうこと?
JupiterがMeteoraでSwapしている, これはなにをしているのだ? KaminoはJupiterに対応していないが同じことは可能なのか?
Insights
🤔SkipPreflightはfalseがいいのか?
Txを送信するときのオプションとしてskipPreflightがある. これは言い換えるとトランザクションシミュレーションであり, 事前にTxが失敗しないかどうかチェックする機能.
これを有効にすると, もしTxがオンチェーンにのってから失敗した場合のコスト0.000005 SOLを払う必要がない. 一方, チェーンに乗るまでにdelayが生じる.
とくに速度が必要なsniper/arbはfalseがいいかも. 他の戦略はわからない.
🤔Atomic ArbではsendTransactionのmaxRetriesは0が推奨か?
たとえばAtomic Arbitrageだと, 鞘がなくなってslippageのエラー終了でtxが通らない場合, その後にリトライしても無駄なことが多い.この場合は手数料がかかる.
ProgramのエラーでもNodeはリトライをする仕様のようだ. そのため, retryを無効にしたほうがいいかも.
何も設定しないと, blockhashがfinalied or expiresされるまでNode でリトライされる仕様.
ref. https://docs.solana.com/api/http#sendtransaction
🔗References
- https://github.com/0xMisaka/MEV-data-solana/blob/main/MEV-ARB-90-0322.ipynb
- Solana Tx解体真書~Solscanを日本一のしつこさで解説してみる~前編|さるお|note
- Solana Tx解体真書~Solscanを日本一のしつこさで解説してみる~後編|さるお
- 初心者向け:Solana Japanミーティング内容まとめてみた!【ボッター編】|るー
- botterのためのRustでSolana入門(前編) #Rust - Qiita
- 40行で支度しな #初心者 - Qiita
- Solana Botter 昔話 〜Atomic症候群〜|magito, 2021の話.
- 続・Solana Botter 昔話 〜Atomic流星群〜|magito, 2024/03
- はじめてのAtomic Arbitrage with Rust とon-chain Program|pe, 2024/01
- Solana Atomic Arbitrageで日給1000円くらいになるまで|pe
- わたしが半年やっていたことを2ヶ月で追い越された…
🏢ARB Protocol(ARB)
Atomic ArbのOSSプロジェクト.
- https://arbsolana.gitbook.io/arb-protocol/
- Arbitrage theory | ARB Central Station
- v1-bot: https://github.com/ARBProtocol/solana-jupiter-bot
- v2は非公開.
- grid: https://github.com/ARBProtocol/jupgrid: 🔌Jupiter Limit Orderを利用.
- dca: https://github.com/ARBProtocol/jup-dca-bot
<2024-06-06 Thu 13:00>
若干胡散臭いものの1年前から継続的にコードはupdateされている. 中の人のやる気はみえる. コードはなんかあまりきれいじゃないけど.
🔍Explores/Dashborad
Trading Pairの24H Volumeが重要指標.
- 🔍Jito Explorer
- 🔍Birdeye
- 🔍Jupiter Stats: Top Trading pairsをみる.
- https://sandwiched.me/sandwiches
- Sandwiched.me v2 Launch | Sandwiched.me, 25/03/10
- attaker 23…
- むしろJupiter Ultraが0であることがすごい.
🤖BONKbot
🤖Telegram Trading Bot for Solana.
BONKbotは内部でJitoをつかってる?
Program log: Memo (len 137): “BONKbot MEV-Protect transaction priority tip for 2488HSfXczcJB6k9VMYwudCjJxPLSLi1Q2Zbz5fGTSvuPPWoAzP7G64r4grUvgM48XvfCdAcpSWLHfZyEXwx1LhM”
ChorusOne: Solana-MEV
ChorusOneというdAppsの中の人のSolana MEVのPOC.
- Chorus One Releasing Prototype To Capture MEV on Solana - Blockworks
- https://github.com/ChorusOne/solana-mev/, runtime
- Analyzing MEV Instances on Solana — Part 1 | by Umberto Natale | Chorus One | Medium
- Analyzing MEV Instances on Solana — Part 3 | by Umberto Natale | Chorus One | Medium
- Arbitrage as a Convex optimization problem
sample codes
atomic arb.
- Breakpoint 2021: Build a Bot: How to Build an Arbitrage Bot Using Orca’s SDK! - YouTube
- 🏢OrcaのCo-Founder, Mori Yutaroさんののarbtrageのプレゼン.
- Orca SDKをつかったarbitrageの方法を解説. marinadeについてはsdkからtx発行方法を調べる.
- Orca/Marinade, SOL/mSOLの探索, 🎴Peg Arbitrage
- サンプルコードはないようだ, 動画をみるしかない.
with JavaScript
- 🔧jito-labs/mev-bot, jitoのサンプルコード. 別メモで精読.
- Automated Arbitrage Trading Bot - Senior Capstone Project - YouTube
- Orca/Raydiumの複数銘柄を監視.
- プロトタイプの成果報告的なプレゼン?のようで報告用に資料がまとまっている.
- https://github.com/solarbitrage/solarbitrage
- https://solscan.io/account/DcdQUY7TAh5GSgTzoAEG5q6bZeVk95xFkJLqu4JHKa7z
with Rust
- https://github.com/ChorusOne/solana-mev/
- Rust, srcはcode配下.
- https://github.com/0xNineteen/solana-arbitrage-bot, DEXes Spot, Rust
- https://github.com/buffalojoec/arb-program/tree/main/program
- Rust, srcはprogram配下.
- https://github.com/benjamintan1013/Solana-Arbitrage-Bot/tree/main
with Jupiter SDK
jup-ag/core はdeplicatedなので注意.
- https://github.com/jup-ag/api-arbs-example, 2つのtxをバラバラで投げるのでatomicではない.
- https://github.com/firefly-sol/jupiter-arb
- https://github.com/ARBProtocol/solana-jupiter-bot
- Jupiter Arbitrage Trading | Flash Loan Mastery, with flashloan.