LoginSignup
3
2

More than 5 years have passed since last update.

EthereumアドレスをQRコードにする方法

Last updated at Posted at 2017-09-11

やったこと

pythonでMyEtheWalletのようにEthereumのアドレスをQRコードにしてみる。
スマートフォンにインストールしたJAXXからQRコードを読みとりできるか確認してみる。

EIP67でQRコードの議論がされていたのでそれを参考にする。
https://github.com/ethereum/EIPs/issues/67

色々議論されているようで理解するのに時間がかかりそう。

要は、次のように送付先として指定するETHアドレスを必須として、あとは用途に沿ったオプションを
QRコードに仕込めば良いと勝手に理解する。(違ってたらすみません)。

qrcode

 ethereum:<address>[オプション]


作り方

Pythonの画像処理ライブラリ PillowとQRコード用のライブラリを入れる。

qrcode
$ pip3 install pillow qrcode

たとえば、自分の指定するアドレスに1ETHを送付してもらいたい場合、
次の情報をQRコードに付加する。

 ・指定アドレス(例):0xdcc47176a2afee39dbf175e22e46a8de38fd0524 (必須)
 ・送付量(ETH):1 (オプション)

上記情報をQRコードに仕込む場合、フォーマットは次の条件に従う。

qrcode

 ethereum:<address>[?amout=<amount>]

上記条件を満たし、QRコードを出力するスクリプトは次の通り(3行で済む)

eth_qr.py

import qrcode 
img=qrcode.make('ethereum:0xdcc47176a2afee39dbf175e22e46a8de38fd0524?amount=1')
img.show()


確認結果

できたもの

こんなQRコードが出力されるので、スマートフォンにインストールしたJAXXのカメラ機能でQRコードを読ませてみる。

eth_qrcode.png

JAXX上では送付先のアドレスと、送付ETHが自動的に入力されていることを確認することができた。

122436.jpg

色々とEthereumのQRコードのオプションとして、gasの指定だったり、ERC20トークンを送付する指定だったり、QRコードに仕込むデータ仕様が決められてる。もう少し時間があれば他のオプションも試してみる。

参考

「Pythonの「qrcode」を使ってQRコードを生成する」
 http://qiita.com/ak1procom/items/c9da5d5f1039adea9704
「ERC: Standard URI scheme with metadata, value and byte code #67」
 https://github.com/ethereum/EIPs/issues/67

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2