見出し画像

【STEPN】虹靴の数を知るマル秘な方法

【2023/11/1 公開から一年経ちましたので無料に変更しました】

虹靴が解禁されて10日経ちましたね。
賛否両論かなりの盛り上がりをみせていますね。

私は余裕があまりなく一度もエンハンスできてないし、当然虹靴も持っていません(泣)
ただ虹靴については誰よりも調査しているという自負はあります。笑

ところで今世界中で虹靴は何足出回っていると思います?

アンケートを取ったところ思いのほか意見が割れましたね。

実は私は正確な数を知っていまして
10/21(金)23時現時点で、89足排出されています。
(アンケート開始時点では82足だったかな?)
なので75~100足が正解です!

ちなみに日々の虹靴靴排出量(一部推定あり)は以下の通りです。

なぜこのような数字が出せるのか、知りたい方は以下限定記事をどうぞご覧ください。調査に結構な手間もかかっているので有益、かつ面白い内容だと思います。ただ、大勢が知るのは色々な意味で良くないと思い以降は限定にしています。

3.5 GMT(250円)で読めるのでぜひ。
気に入らなかったら返金歓迎です。
その代わり面白かったらシェアお願いします🙇

発見①:虹靴の個体番号

虹靴にNFT番号とは別に個体番号があるのはご存じでしょうか?

虹靴の個体番号

虹靴自体は同じ見た目ですが、実は一つ一つの虹靴に刻まれる数字が違うため画像データは異なります。そして、実は未排出の靴も含めすべての虹靴の画像データにネットからアクセスできます。

https://res.stepn.com/imgOut/101/101/6052001_1.png

このリンクの最後の数字を変えるだけで50,000足用意されている虹靴の画像データにすべてアクセスすることができます。
例えば50,000番目の虹靴はこれです↓

https://res.stepn.com/imgOut/101/101/6052001_50000.png

面白いのがこの番号順に排出されていっており、1~89までは既に出回っている靴のデータになります。

発見②:靴の誕生日データ

多くの人がSTEPNアプリ内のマーケットで靴を見ていると思います。あまり知られていませんが、実はマーケット上では公開されていない隠れた情報をWebAPIから読み取ることができます。

補足(WebAPIの使い方)

PCのGoogle ChromeでSTEPN marketに出品されている虹靴を開き右クリックで「検証」を押します。出てきた画面の中で"network"タブのorderdata?…. を選択します。開いた画面の中の黄色い部分に記載されているRequest URL(https://api.stepn.com/run/orderdata?orderId=…)をコピーして開くと、出品靴の詳細データを見ることができます。

Chromeで右クリック「検証」を開いた画面

とある虹靴の出品データを取り出してみると…

"breedT":1665544706950
"otd":188500544
"hpLimit":100
"isTest":false
"shoeImg":"101/101/6052001_1.png"

例えば、"otd"は靴のNFT番号であり、"breedT"というのは虹靴NFTが誕生した時間を表しています。なじみのない数字列ですが、UNIX時間という形式です(協定世界時での1970年1月1日午前0時0分0秒からの経過秒数)。

この例(1665544706950)でいうと、2022/10/12 12:18:27 を表します。
ピンと来た人もいるかもしれませんが、これはミント第1号世界初の虹靴の出品情報を取り出したものになります。ちなみに"shoeImg"は画像データのリンクが書いてあり、最後の数字(_1.png)を見るとミント第何号かわかっちゃうということです!面白いですね。

つまりマーケットに出ている靴に関しては、ミント何号がいつ誕生したのか特定できるのです。従って、最新の出品をみると現時点でおおよそ何個排出されたかというデータを集めることができます。

しかし、マーケットに載るのは全体の一部の靴なのでデータ収集にはもう一声ほしいところ。

発見③:みんな靴の個体番号を隠し忘れている

Twitterで虹靴が出たよ!と自慢する人はたくさんいます。気を遣っている方は、靴のIDを隠して画像を投稿しています。しかし、靴の個体番号(画像に載っている番号)を隠している人は滅多にいません。

Twitterの投稿時間と虹靴のIDの組み合わせたデータであればたくさん収集できます。これらのデータを②で集めたデータの補強に使うことができます。

データ構築編(少々技術的な内容あり)

実際はここまでする必要ないと思いますが、個人的に扱いやすいようにするために。あわよくば何かしら虹靴の傾向がつかめたらいいなと期待しつつ次の手順で靴の個体番号のリストを取得して管理します。

  1. 全虹靴の画像データをダウンロード

  2. 画像から個体番号の抽出

  3. 個体番号と対応する生成時の記録(分かるものについて)

順番に紹介していきます。

1.全虹靴のデータをダウンロード

まずはスクリプトで50,000件の靴の画像データをダウンロードします。(プログラムかける人なら一瞬で書けます※)
※試す人はサーバに負荷を与えないようにSleep処理は必ず挟んでください

ダウンロードした虹靴画像

2.画像から個体番号の抽出

画像から番号の位置を切り出したのち、画像から文字情報への変換を行います。OCRという技術を使えば簡単に数字を取り出すことができます。ネットで適当に拾ってきたコードを改変して実行しました。

(すごく細かい話もすると、認識のロバスト性を上げるために①背景除去②グレースケール化③画像-45度回転④番号位置切り出し、という前処理を挟んでいます。)

画像から刻印された個体番号の切り出し
画像から個体番号の抽出結果

これで楽々5万件の靴の個体番号のリストを取得することに成功しました。

3.個体番号と対応する生成時の記録

あとは地味な作業ですが、ちょこちょこマーケットで確認した靴の誕生時間とNFT番号を表の対応する個体番号の行にメモしていきます。仕事が忙しい時期であまり見れなかったので一日に2回くらい収集していました。

スプレッドシート上では、以下の関数を使ってUNIX時間を日本時間に直して記載しています。

=セル位置/(24*60*60*1000)+DATE(1970,1,1)+TIME(9,0,0)
最新データはこんな感じ

さらに、マーケットで確認して生成時刻が確定したもの以外にも、Twitter上で報告されている情報を見てデータを補強していきました。ただ、刻印番号はめちゃくちゃ小さいので探していると目が悪くなりますね(泣)
画質が悪いものについては、雰囲気で候補番号と照らし合わせて読み取っていきました!

【参考】虹靴ホルダーのリスト↓
https://twitter.com/i/lists/1582742294427447297?s=20

それでも埋められないセルについては線形に時間補完した結果、こちらのグラフの結果が得られます(冒頭と同じもの)。

ところで予想通りではありますが、虹靴の排出量が日に日に落ちて行っていますね。最近だと1日あたり4~5足しか排出していません。明らかにエンハンスが減った影響が出ていますね。虹靴ホルダー達にとっては朗報かもしれません。獲得GMT効率も徐々に安定してきそうです、うらやましい!

その他気付き

マーケットを眺めていて面白かったのが、多くの人が似たムーブをとっていた点です。マーケットに並ぶ虹靴は基本的に生成されたて(1~2日以内)のホヤホヤが多く、みんな虹靴が出るといったん高値で出品する傾向にありました。その後、売れたのか取り下げて歩き始めたのかはわかりませんが、マーケットから姿を消して二度と現れなくなります。一度でも歩くと出品できなくなるという性質上こうなるのでしょうね。

ただ不思議だったのが、一件だけ例外がありました。なぜかミント第一号がかなり遅れたタイミング(10/20頃)で出品されるという現象が起きていました。基本的には最新に近いものしかマーケットに上がらない中、突如最古の靴が出現したのです。もしかして運営がホルダーだったのか?と睨んでいます。数多い爆益報告をスルーして10/19までサイレントのガチホする動きはあまりにも理解不能です!

10/19のS国マーケットでの虹靴の動き

まとめ

私は実はかなり序盤からこのような情報収集をしていました。当初のモチベーションとしては、靴の個体番号の謎を解明したい!というのと、虹靴が出やすい時間帯とか分析したい!でした。残念ながらギルさんの情報通り虹靴は固定確率で出る仕様のようなので当たりやすくする裏技はなさそうです。

個体番号については今だに本来の用途が不明で、ずっと考えています。最初に思いついたのは、虹靴のHPが尽きた時に刻印番号がNFT番号に含まれる
他の靴を合成するとHP回復できる、、とか。
ただ、個体番号が8桁なのに対してNFT番号は9桁なのでどこかしっくりこず…
全データ保有しているのでヒットする靴があるのか全件探索しようかとも考えましたが、面倒くさくまだやっていません。

個体番号の用途について何かしらピンときた方がいらっしゃいましたらぜひコメントでシェアしてもらえると嬉しいです!

(2022/10/23 追記)

想像以上の反響がありびっくりしています。
STEPN大御所の方々や虹ホルダーの方々にも読んでいただき、また追加でサポートを送ってくださった方本当にありがとうございます!

当初は無料公開しないと誰にも読んでもらえないだろうし、最初から無料にするかすごく悩みましたが…

・運営が意図していない方法かもしれないので何となく公にしたくない
・大勢が知るとスクレイピングでサーバに負荷かける人がいるかもしれない

といった理由で初の試みで有料記事にしました。
(決して小銭を稼ごうという下心があったわけではありません!決して!)

序盤の書きっぷりだけだとただの怪しい記事にしか見えませんが、見ていただき本当にありがとうございました!
情報を公開しようと思った最大の理由は、このデータを使ってコミュニティの皆さんに考察を深めて盛り上げていきたいなと思ったからです。

おまけ:個体番号リスト(~128番目)

せっかく記事を購入いただいたのでこちらも掲載します。今出回っている虹靴に刻印されている個体番号をここで探してみると、とりあえず第何号かわかるのでお試しください。OCRが失敗していない限りは正確なはずです。
ちなみにS国・B国・E国で虹靴管理は共通なので当然混ざっています。
私の観測した範囲では大半がS国で、E国は0件、B国3件だけでした。

  #  stamp
  1  43456984
  2  70875196
  3  98293408
  4  35711621
  5  63129833
  6  90548045
  7  27966258
  8  55384470
  9  82802682
 10  20220895
 11  47639107
 12  75057319
 13  12475532
 14  39893744
 15  67311956
 16  94730168
 17  32148381
 18  59566593
 19  86984805
 20  24403018
 21  51821230
 22  79239442
 23  16657655
 24  44075867
 25  71494079
 26  98912291
 27  36330504
 28  63748716
 29  91166928
 30  28585141
 31  56003353
 32  83421565
 33  20839778
 34  48257990
 35  75676202
 36  13094415
 37  40512627
 38  67930839
 39  95349051
 40  32767264
 41  60185476
 42  87603688
 43  25021901
 44  52440113
 45  79858325
 46  17276538
 47  44694750
 48  72112962
 49  99531174
 50  36949387
 51  64367599
 52  91785811
 53  29204024
 54  56622236
 55  84040448
 56  21458661
 57  48876873
 58  76295085
 59  13713298
 60  41131510
 61  68549722
 62  95967934
 63  33386147
 64  60804359
 65  88222571
 66  25640784
 67  53058996
 68  80477208
 69  17895421
 70  45313633
 71  72731845
 72  10150058
 73  37568270
 74  64986482
 75  92404694
 76  29822907
 77  57241119
 78  84659331
 79  22077544
 80  49495756
 81  76913968
 82  14332181
 83  41750393
 84  69168605
 85  96586817
 86  34005030
 87  61423242
 88  88841454
 89  26259667
 90  53677879
 91  81096091
 92  18514304
 93  45932516
 94  73350728
 95  10768941
 96  38187153
 97  65605365
 98  93023577
 99  30441790
100  57860002
101  85278214
102  22696427
103  50114639
104  77532851
105  14951064
106  42369276
107  69787488
108  97205700
109  34623913
110  62042125
111  89460337
112  26878550
113  54296762
114  81714974
115  19133187
116  46551399
117  73969611
118  11387824
119  38806036
120  66224248
121  93642460
122  31060673
123  58478885
124  85897097
125  23315310
126  50733522
127  78151734
128  15569947


この記事が気に入ったらサポートをしてみませんか?