Web3.0を生き抜くbotterたち

#はじめに
「仮想通貨botter Advent Calendar 2021」の18日目のその２です。

https://qiita.com/hesoponyo/private/947414c36398c7237cbd

こちらの初心者向けバイブルでは主にCEXを攻略するお話しでした。
今回はこれから初心者botterが向かうかも知れない分野について調べてみました。
こちらは主にTwitterの~~ストーキング~~記録ですね。

#Web3.0を生き抜くbotterたち
時は遡ること2021年4月29日頃、RaydiumでMEDIAがローンチされました。
当時はビットコイン価格が年初からの高騰を続けて、いわゆるバブルのような状況だったように思います。
飛ぶ鳥を落とす勢いのSolanaで新規銘柄のローンチ。
当然かなりの注目を集めており、多くの方が参加したのではないかと思います。

####Raydium接続できない事件
さて、注目を集めたMEDIAでしたが多くの人が参加しようとした結果、Raydiumが繋がらなくなってしまいました。
（「Raydium 繋がらない」でTwitterなどで検索すると今でも４月２９日頃の様子が伺えると思います。）
多くの方が唯一MEDIAを取引できる場であろうと考えていたRaydiumがうまく繋がらず混乱していたように思います。

###てぃなちゃんさん

https://twitter.com/btc_AP/status/1388125833022386177?s=20

https://twitter.com/btc_AP/status/1388133939894755337?s=20

そう、初心者向けバイブルで黒枝さんの記事にも登場したてぃなちゃんさんです。
Raydiumが繋がらないため、多くの方が諦めて寝たりF5連打して繋がるのを祈っている最中に、スマートに取引していたのです。
~~ちなみに私はふて寝してました~~
技術力で戦うってこういうことなんだなぁと半年後のさら今そう思います。
おそらくDexを主戦場にしているBotterの始祖。

#Defi/DEX　bot（通称DeBot）
Dexというのはいくつかありますが、その中でも特に活躍していらっしゃる方の多いSerum Dexで活躍されている方を調べました。

###magitoさん「DeBot」
https://twitter.com/regolith1223/status/1453620185261170692?s=20

Defi/Dexを主戦場としたbotを作っておられる方です。
Twitterを~~ストーキング~~辿ると１ヶ月ごとにどんどんパワーアップしていく様子が見られます。


###紫藤かもめさん「強botterの研究してみた」
https://blog.shidokamo.com/magical-magito/

こちらにmagitoさんの研究をまとめてくださっています。

###黒枝さん「ある草コイナーと私(2021年振り返り)」
https://note.com/kuroeda11/n/n3ec25340b1a3

DexBotを作成しておられる黒枝さん。ポロリも載っています。
前向きにNode.jsの勉強を始められそうです・・・腰が重いけど・・・

###tetoさん
https://twitter.com/teto_btc/status/1460488863432937474?s=20

最強高校生のtetoさんです。
結構ポロリがあったのですが削除されているようでした。


#NFT bot
その名の通りNFTを売買などのbotです。
NFTbotは大きく分けて高速MINT系統とミスプライス売買系統に分かれています。

##高速MINT系統
###tetoさん
https://twitter.com/teto_btc/status/1432721999340740615?s=20

https://twitter.com/teto_btc/status/1443499493429628928?s=20

tetoさんの伝説のbotです。おそらく高速MINT系統です。
9月末時点で4000万以上の利益…夢がありますね！

##ミスプライス系統

残念ながらその存在を発見できませんでした。
なのでほんのりミスプライスについて書こうと思います。

ここではDefiKingdoms(以下DFK)というブロックチェーンゲーム内のNFT売買についての紹介です。
DFKはNFT（ヒーロー）を使用してクエストこなしたり子孫を残したりFarmingしたりというゲームです。
手持ちの資産をどう割り振りするかという点でかなり奥が深いゲームのように思います。

このゲームでは公式がAPIを用意しています。
http://graph3.defikingdoms.com/subgraphs/name/defikingdoms/apiv5/graphql

ここではこのAPIを利用してヒーロー(NFT)の市場を覗いてみます。
pythonではこんなかんじです。

```python
import requests
import pandas as pd

Hero_price = """
    query {
        saleAuctions(first: %d, orderBy: startedAt, orderDirection: desc, where: {open: true}) {
            id
            startedAt
            tokenId {
                id
                generation
                rarity
                mainClass
                summons
                maxSummons
            }
            startingPrice
        }
    }
"""

url = 'http://graph3.defikingdoms.com/subgraphs/name/defikingdoms/apiv5'

count = 10  //取得するヒーロー数
request = requests.post(url, json={'query': Hero_price % count})
data = request.json()
df = pd.json_normalize(data['data']['saleAuctions'])
price = df['startingPrice'].values
price = price.astype(float) / 1000000000000000000
df['price'] = price
df['startedAt'] = pd.to_datetime(df['startedAt'],unit='s')
display(df)

```

これで売買可能なヒーローの一覧を取得することができましたね。
あとはweb3.pyでトランザクションを送るだけでNFTを売買できます。
ここではAPIを利用していますが、直接トランザクションを確認する方法もあります。
おそらくそちらが最速です。

DFKはクエストもトランザクション送ればこなせるので、そちらをbot化するのもいいかもしれませんね。
selenium+pyautoguiなど、トランザクションを送ることなくブラウザの操作でクエストを自動化する方法もあります。

Defi/DEXもNFTもWeb3.jsやweb3.pyなどのライブラリを利用してトランザクションを送るという意味では技術t系なところでは流用できるように思います。~~やったことないので知らんけど~~
さまざまな市場があるのでどんどん挑戦していきたいですね！

**そして強いbot作れたらbotください**