EIP-681が定めること
EIP-681は、EIPsリポジトリで公開されているイーサリアム改善提案(Ethereum Improvement Proposal)で、イーサ(ether)の送金や、コントラクトの関数の呼び出しを依頼するための、URI形式を定めています。URIは、ethereum:で始まり、送信先アドレス、任意の@とチェーンID、任意の関数名とクエリパラメーターが続きます。ウォレットは、このようなコードを読み取ると、ユーザーが確認するための取引を組み立てられます。
単純なイーサのリクエストは、ethereum:0x...@1?value=1e18 のようになります。valueは、イーサの最小単位であるweiで指定し、指数表記も使えるので、1e18は1イーサを意味します。チェーンIDは、どのネットワークを想定しているかをウォレットに伝えます。たとえば、1はイーサリアムのメインネットです。
トークンの送金
EIP-681では、トークンのコントラクトの呼び出しも記述できます。トークンの送金では、送信先アドレスがトークンのコントラクト、関数がtransferで、パラメーターが受取人と金額を示します。たとえば、ethereum:0xTokenContract@1/transfer?address=0xRecipient&uint256=1e6 のようになります。金額は、トークンの最小単位で、トークンの小数桁数によって決まります。
この形式全体への対応は、ウォレットによって異なります。アドレスだけを読み取るものや、チェーンIDや関数呼び出しを無視するものもあるので、支払う人が使うウォレットで、コードをテストしておくのがおすすめです。支払う人は、確認する前に、ネットワーク、トークン、受取人を必ず確認してください。