ブロックチェーンの練習はいったんお休みして、今回は今話題(?)のJPYCをはじめて触ってみました。

今のところ、私の日常のシーンでJPYCの使い所は思いつかなかったのですが、なんだか面白そうなのでとにかくやってみよう精神です。といっても大したことはしていません。

  • 銀行から3,000円を振り込む
  • MetaMaskにJPYCが届く
  • 届いたJPYCを、MetaMaskの別のアドレスに送金してみる

というだけなのですが、POLのガス代なども実際にやってみてなるほどーと思えたので備忘録がてら残しておきます。

JPYCとは

JPYC EXのトップページ。「日本円のステーブルコイン「JPYC」をJPYC EXで、今すぐはじめよう」

JPYC(ジェイピーワイシー)とは、JPYC株式会社が発行する日本円ステーブルコインです。

ステーブルコインというのは「1枚=1円」のように法定通貨と価値を固定した暗号資産(仮想通貨)で、JPYCは2025年10月に、資金移動業の枠組みで発行される電子決済手段として正式リリースされました。

JPYCを手にいれるにあたり、JPYC EX(jpyc.co.jp)へのユーザー登録が必要です。また、実際に使ってゆくには本人確認・円入金用の銀行口座登録・ウォレットの登録までが必要です(現時点)。

準備: MetaMask(アカウント2つ)・手数料用のPOL

JPYCを管理するウォレットとして、MetaMask(ブラウザ拡張)を使います。公式サイトからのインストールやシードフレーズ管理等はこの記事では省きますが、練習用なので以下のように役割が違う2つのアドレスを作りました。

  • アカウント1: JPYC受け取り、送金役
  • アカウント2: 送金先。保管用アドレスの役

MetaMaskは1つのシードからアカウント(アドレス)をいくつでも増やせるのでこういった実験も簡単です。

JPYCを動かす「ガス代」が別途必要

JPYCはEthereum・Polygon(ポリゴン)・Avalanche・Kaiaの4つのブロックチェーン上で発行されていて、発行予約のときにどれで受け取るかを選びます。今回はガス代の安いPolygonを選びました。Polygonで取引のガス代(手数料)を払うには、Polygon固有の暗号資産POL(旧称MATIC)が必要です。JPYCを動かすガス代は、JPYCでは支払えないのですね。

補足ですが、ガス代はJPYCを受け取るだけなら不要です。ウォレットから任意の場所に送金する段階で必要になります。

今回はアカウント1からアカウント2への送金実験をかねているのでガス代がかかる、ということでその分は国内の取引所でPOLを買い、500円分ほどをMetaMaskのアカウント1へ送りました(取引所→ウォレットへの送金手数料は0.2POLほど)。

JPYC発行

さて、先述のJPYC EXにてJPYC発行手続きを行います。JPYCの発行と償還は、このJPYC EXで行います。

必要な段取りはこんな感じになります。

  1. 「発行」メニューから発行予約を入れる。ネットワーク(今回はPolygon)、受領アドレス(アカウント1)、注文額の3つを指定する。
  2. 予約を確定すると振込先の口座が表示される
  3. 2の口座に、登録した口座と同じ名義で、注文額どおり銀行振込する

なんとなくのイメージで「入金手続き」のメニューを探してしまいましたが、実際には「発行予約」です。よく考えたらJPYC EXはユーザーの資金を預かるところではないので入金という単語は適切ではないですね。

なおこの手続きでの注意点ですが、先に発行予約を完了させることです。発行予約をせずに振り込んでもJPYCは発行されません。また、発行予約時に指定した金額と同額を銀行から送金すること、振込名義は登録口座のカナと完全一致させること、があります。

ちなみに、金額指定のミニマムは3,000円です。なので今回は3,000円を指定しました。

JPYC EXの発行予約画面。発行数量3,000JPYC

ウォレットに着金

銀行にて送金手続きを済ませ、他の画面をあれこれ見ているうちに気がついたらMetaMaskに着金の通知が来ていました。

MetaMaskの着金通知。3K JPYC、Confirmed、Polygon

「銀行→ウォレット」の流れがさくっと完了。JPYC EXの画面には取引履歴は残りますが、残高などの表示はありません。JPYC EXはお金を預かるものではないので当たり前なのですが、なるほど、ただただJPYC EXを「通る」だけなのねと実感。

MetaMaskの画面では、JPYCの行に「$18.82」と出ていますが、単に表示通貨の初期設定がドルなので、3,000JPYCがドル換算されているだけです。

コントラクトアドレスの照合

これで無事に着金しているように見えますが、トークンは誰でも同じ名前で作れます。なので、一応確認のためコントラクトアドレス(トークンの本体の住所)を公式の掲載場所と照合します。

公式の掲載場所は、JPYC株式会社のGitHub組織ページ(github.com/jpycoin)のREADMEで、チェーン別のアドレス一覧があります。Polygonのアドレスは0xE7C3…3c29で、MetaMaskのトークン詳細と先頭・末尾が一致しました。READMEには「以前の前払式JPYCのコントラクトアドレスとは異なる」とも書かれていて、旧JPYCを持っていた人はここで取り違えに注意が必要です。

また、Polygonscan(Polygonのブロックエクスプローラー。チェーン上の取引を閲覧するサイト)でこのトークンのページを見てみます。

PolygonscanのJPYCトークンページ。Stablecoinラベル、Max Total Supply約37.6億JPYC、Holders 40,679、Token Contract 0xe7c3…3c29

「Stablecoin」のラベル、総供給量は約37.6億JPYC、保有アドレス数は約4万とあります。「Proxy」と書かれているのは、発行元がトークンのプログラムを後から差し替えられる構造で、USDCなどの大手ステーブルコインと同じ、発行体を信用する前提のトークンであることを指します。

発行トランザクションの中身

次に、着金した取引をPolygonscanで見てみます。

トークンを新規に作る(ミントする)取引は、送り主がゼロアドレス(0x000…000)になるのが通例です。ところが自分宛の3,000JPYCの送り主は0x8549…Def3というJPYC社が保有するアドレスでした。つまり、振込のたびに新しくJPYCを鋳造しているのではなく、あらかじめ発行済みのJPYCをJPYC社が在庫として持っていて、入金を確認したらそこから送ってくる運用になっています。

そしてこの取引のガス代0.0276POLは、JPYC社が払っています。こうして実現された「発行手数料無料」なのですね。

余談ですが、この取引はブロック高92,387,951(チェーンの何番目のブロックかを示す番号)に入っていました。

ウォレット間の送金

無事に手元にJPYCが届いたので、いよいよ送金の練習です。アカウント1からアカウント2へ、1,000JPYCを送ります。といってもやることは簡単で、MetaMaskでアカウント2のアドレスをコピーし、送金画面に貼り付けて、確定。

数十秒で完了し、アカウント2に1,000JPYC、アカウント1に2,000JPYCになりました。手数料は、Polygonscanの「Transaction Fee」欄によると0.02706POL。閲覧時点のPOL相場でドル換算すると0.0023ドル、円にして約0.4円です。1,000円を送って0.4円なので0.04%。一般的な銀行振込やEthereumベースのガス代と比べても桁違いに安い部類です。

取引の「宛先」が相手ではない

取引の画面で目を引いたのが、「Interacted With(To)」の欄が送金相手のアカウント2ではなく、**JPYCのコントラクト(0xE7C3…3c29)**になっていたことです。

これはトークン送金の構造によるものです。ブロックチェーンのネイティブ通貨(MoneroのXMRやDeroのDEROのような、そのチェーン自身の通貨)を送るときは宛先が相手そのものですが、JPYCのようなトークンを送るときは**「JPYCのコントラクトに対して、アカウント2へ1,000移せと命令する」**取引になります。実際の移動はその下の「ERC-20 Tokens Transferred」欄に、アカウント1→アカウント2、1,000JPYCとして記録されていました。

この取引はブロック高92,388,850で、数分後に見たときには218個のブロックが上に積まれていました(Polygonは約2秒に1ブロック)。発行の取引からは899ブロック後、時間にして30分ほど後です。

念の為、ガス代0で送金テスト

先ほど送金した先のアカウント2には、JPYCのみが入っていてPOLはありません。この状況からアカウント1へ送り返してみよう、と送金手続きをしてみたところ、以下のようになりました。

MetaMaskのエラー。資金不足: アカウントにネットワーク手数料を支払うのに十分なPOLがありません

アカウント2にはガス代となるPOLがないので、JPYCだけがあっても資産を動かすことはできない、ということが改めてわかりました。

「ウォレット→銀行」の操作は「償還」

ここまで、「銀行→ウォレット」の操作を確認しました。これの逆となる「ウォレット→銀行」の操作は今回は行いませんが、こちらももちろんJPYC EXを通して操作可能です。

ちなみにこちらの操作も、「送金」などの馴染みのある単語ではなく「償還」という名前のようです。聞き慣れない言葉ですよね。

償還(JPYC→円)も最低3,000円でしたので、またウォレットのお金をまとめたタイミングでやってみようと思います。