· x402 EIP-7758 payment http

x402の技術的な観点の調査

先日Coinbaseからx402というプロトコルが発表されました。

発表された後、クリプト界隈でセンスのよい人々に言及されて話題になった印象です。

402について

HTTPの標準ステータスコードには402があります。 wikipedia が抜粋

402 Payment Required
支払いが必要である。 現在は使われておらず、将来のために予約されているとされる。
Web Payments HTTP APIで利用が検討されていたものの[5]、Web Payments HTTP APIそのものの開発が中止されたため、採用には至っていない。

https://www.w3.org/TR/2017/NOTE-webpayments-http-api-20171212/

話題になったのも今回Coinbaseはこれを使ったことだからではないかと思います。

余談ですが、昔遊びで社内向けにシステム開発作った時、「このロール持ってないユーザーがアクセスしてきたらhttp status codeを何にしようか?」「402にして課金してもらおうw」みたいな冗談を言ったことがあります。 使ってはいけないではなく、殆ど使ってないということですね。

コードを読んで図を描く

コードと実際動いてるもの見ないと自信持ってものことを言えない体質なのでコードを読むことにしました。 https://github.com/coinbase/x402 ライブラリ系のものでもないので、ディレクトリ構成をぱっと見よくわかりませんでした。 各ディレクトリを深堀って見るとなんとか理解できた感じです。

https://github.com/coinbase/x402/blob/main/typescript/packages/x402/src/shared/paywall.ts この辺のコードとかあんまりキレイじゃないなと思いながら読みましたw

image

Facilitatorはガス代を肩代わりする役割もあって、Coinbaseのサーバーを使ってもいいし、自前で開発しても良さそうです。

使われてる技術

感想