枠は借りものだった ― 借りなかったのは、カラスと、文字の大きさだけ
CAWの名前NFTには、名刺のようなカードがついています。黒い枠に、金色のカラスが1羽。この1枚には、よそから来たものと、手で選ばれたものが混ざっています。❶ 数のうえでは、よそから来たもののほうがずっと多くを占めています。ENS(.eth の名前NFT)のカードと並べると、空行を除いた31行のうち18行が、行頭の空白まで含めて一字一句同じでした。ただしその18行のうち中身のある行は7つで、残りは括弧のような構造の行です。偶然では説明のつかない一致は3つあります。一度も描かれないグラデーションの定義の中にある、丸めていない小数が2つ。この絵では使っていない書体4つの並びが丸ごと。そして影をつける4つの数値です。違っていたのは、カラスの3本の線と、色と、文字の置き場所だけでした。枠のほうが借りもので、中に入っているカラスのほうが自前です。 ❷ どうやって持ってきたのかも、絵の中に残っていました。開始タグに data-ember-extension="1" という属性が付いています。これはファイルの中には一度も書かれない属性です。 押しているのは Ember Inspector という拡張機能で、同梱の小さなプログラムが、開いている文書のいちばん外側の要素にこの印を書き込みます。相手のサイトを選ばず、すべてのページで走ります。SVGを1枚だけタブで開くと、その絵そのものがいちばん外側の要素になります。つまりこの印は、絵をダウンロードしても、ソースを表示しても、リポジトリからコピーしても付きません。 開いていた画面の中身を、そのまま持ち出したときにだけファイルの側に残ります。印そのものは珍しくありません——持っているファイルは千件を超えていて、その大半はよそのイラストです。変わっているのは印ではなく、この1枚が行き着いた先のほうでした。 ❸ 行き着いた先は、テスト用に置かれた予備ではありませんでした。2022年6月3日に書かれた契約——名前NFTをチェーンの上で描くための契約——のソースの中です。その契約は絵を文字列として組み立てていて、組み立てのいちばん最初の部品が、印のついた開始タグでした。 ❹ その日にあちらのリポジトリを開いて写したのでも、話が合いません。2022年5月19日に、あちらのカードの書体は別のものへ置き換えられています。この絵が書かれたのはその15日後なのに、置き換える前の書体の並びを持っています。 リポジトリから取ったのなら、新しいほうの名前が入っていたはずです。その1行だけを手で消した可能性は残ります。ただ、書体は消し忘れるものではなく置き換えるものなので、新しい名前が入っていないことのほうが重い、と読みました。❺ 書き換えが途中で止まった箇所が2つあります。ひとつは属性の名前で、SVGに存在しない綴りになっています。しかも並びの元の位置から消えて、行のいちばん後ろに付き直っています——画面の上で名前を書き換えると、いったん消してから足し直す形になるので、位置が動きます。もうひとつは色コードで、桁がひとつ足りません。#22222 と書かれています。どちらも、一度も描かれないほうのグラデーションの中にあります。 誰も見ない場所なので、間違っていても画面には何も起きません。色のほうが何の書き損じかは決められません。すぐ隣の色は別の色へ作り直されていて、途中で止まった書き換えとも、単純な打ち間違いとも読めるからです。❻ その日に書かれた契約は2本あって、どちらも1行目が別のプロジェクトのファイル名で始まっていました。4か月後——122日後——にその1行は直されるのですが、直したときの記録に、一文だけこう残っています。「Fixing file title copied from another project on etherscan」(他のプロジェクトから写したファイルの題名を直す)。誰かに言われる前に、書いた側が自分で書いています。 ❼ ここまでは、ありもので急いで組み上げた話です。ところが1か所だけ、そうしなかった場所があります。 並べたあちらのカードは、文字の大きさを自分では選んでいません。名前を実際に描いてみて、幅を測って、そこから計算で出しています。自動で決まる仕組みがすぐそこにあって、それで足りるはずでした。こちらはその仕組みを使いませんでした。 名前の長さごとの大きさを、17個ぶん、ひとつずつ選び直しています。この板には、その17個だけを追った回があります。台紙は借りました。文字は借りませんでした。 ❽ 2026年8月11日時点で、同じ形が残っている場所は4つに分かれます。作業用の1枚はリポジトリにまだありますが、動いているコードのどこからも呼ばれていません。画面を描く部品には影の4つの数値が残っていて、そこでは例の属性名が正しい綴りになっています。チェーンの上の契約には、一致する識別子も書体も数値も残っていません。あるのは270という枠と、文字を置く高さだけです。そしていま同じ場所に置かれている新しい作業用の1枚には、印がひとつも入っていません。──なぜこれを残したか。足場は、建ったあとに外すものです。チェーンの上の契約はもう一から組み直されていて、いま置かれている新しい1枚に印はありません。誰も見ない場所の綴り間違いが、片方だけ、いつのまにか直っていました。 そして借りものだった枠のほうは、ここから先へも渡っています——別のチェーンの名前サービスがこの絵を引き継いでいて、出どころを自分のソースに書いたうえで、カラスの金色をそのまま残しています。急ぎで組んだ枠は外れて、手で選んだほうが残りました。 始まりの1枚が借りものでも、そこから配られていくものは自前になっていきます。次に置かれる1枚も、誰かの手で少しずつ良くなっているのかもしれません。 🐦⬛