支払いリンクで Blocknet の支払いを依頼する

· 7 分で読めます

Blocknet の支払いリンクには、支払う側に必要なものがすべて 1 行に収まっています。誰に支払うか、いくらの BNT か、そして請求書番号などの任意のメモです。チャットで送ったり、請求書やプロフィールに載せたりすれば、相手はそれをウォレットに貼り付けて確認するだけです。このガイドでは、2 つのリンク形式、アドレスまたは $name を使ったリンクの書き方、そして誰かがリンクを貼り付けたときにウォレットが何をするかを正確に説明します。

Blocknet の支払いリンクとは何ですか?

簡単な答え

Blocknet の支払いリンクは、受取人、金額、任意のメモを 1 行にまとめたもので、blocknet://recipient?amount=25&memo=invoice-42 または bntpay.com/recipient?amount=25&memo=invoice-42 のように書きます。受取人はウォレットのアドレスか Blocknet ID の名前です。コマンドライン版ウォレットに貼り付けると、確認するだけで送れる送金になります。

Blocknet のコマンドライン版ウォレットは 2 つの形式を受け付けます。

blocknet://<address-or-$name>?amount=<BNT>&memo=<text>
bntpay.com/<address-or-$name>?amount=<BNT>&memo=<text>

どちらの形式も同じフィールドを持ちます。

フィールド 位置 必須 内容
受取人 blocknet:// または bntpay.com/ の直後 はい ウォレットのアドレス、または $name 形式のショートネーム
amount クエリ文字列 はい 依頼する BNT(小数点以下 8 桁まで)
memo クエリ文字列 いいえ 支払いメモのテキスト(最大 124 バイト)

ウォレットはリンクの書き方に寛容です。blocknet:// と短い blocknet: の両方を認識し、ウェブ形式では bntpay.com/ 単体でも、前に www.、http://、https:// が付いていても受け付けます。プレフィックスは大文字と小文字を区別せず、amount と memo の順序も問いません。

bntpay.com 形式は通常のウェブアドレスなので、ほとんどのチャットアプリ、メールクライアント、SNS のプロフィールでタップできるリンクになります。blocknet:// 形式は Blocknet の URI で、リンクを直接ウォレットに渡す場面で便利です。

支払いリンクはどうやって作りますか?

リンクは 4 つのステップで手書きできます。

  1. 受取人を決める。 コマンドライン版ウォレットで address を実行してアドレスを表示するか、$ プレフィックスを付けて Blocknet ID のショートネームを使います。まだウォレットを持っていない場合は、Blocknet ウォレットガイドでウォレットの作り方とアドレスの確認方法を説明しています。
  2. 金額を決める。 BNT 単位で書きます。1 BNT は 100,000,000 最小単位なので、整数でも小数でも小数点以下 8 桁まで使えます。
  3. 必要ならメモを付ける。 注文番号、請求書 ID、短いお礼の言葉などを入れておくと、支払いが届いたときに照合しやすくなります。124 バイト以内にしてください。
  4. パーツをつなげる。 プレフィックスの後に受取人、続いて ?amount=、メモがあれば &memo= を書きます。

名前宛てに 25 BNT を請求するリンクを両方の形式で書くと、次のようになります。

https://bntpay.com/$yourname?amount=25&memo=invoice-42
blocknet://$yourname?amount=25&memo=invoice-42

フルアドレス宛ての同じ依頼は次のとおりです。

bntpay.com/<address>?amount=25&memo=invoice-42

メモ内の文字のエンコード

スペースや記号を含むメモでは、リンク自体が使う一部の文字を URL エンコードで書く必要があります。ウォレットは支払いを作る前に元の文字に戻します。

文字 書き方 理由
スペース %20 共有したときにリンクが途切れないようにする
& %26 & は次のフィールドの始まりを示す
# %23 # はクエリ文字列の終わりを示す
+ %2B そのままの + はスペースとして読まれる

たとえば memo=Order%20%231042 は Order #1042 として届きます。英字、数字、ハイフン、アンダースコア、ドットはエンコード不要なので、invoice-42 のようなメモはそのまま使えて便利です。

リンクにはアドレスと $name のどちらを使うべきですか?

どちらも使え、それぞれ向いている用途があります。

名前を使えば、読んだり、口頭で伝えたり、自己紹介欄に収めたりできるほどリンクが短くなります。リンクでは $ プレフィックスを付けて書いてください。$yourname と @yourname は同じ名前で、$ はどちらのリンク形式でもそのままウォレットに渡される形です。名前入りのリンクを貼り付けると、ウォレットは blocknet.id を通じて名前を解決し、レコードの Ed25519 署名を確認して、検証済みのフルアドレスを表示します。名前は支払いの時点で解決されるので、プロフィールに載せた投げ銭用リンクのように長く使うリンクも、後で名前を新しいウォレットに向け直しても、そのまま使い続けられます。

フルアドレスを使えば、送り先がリンク自体に固定されます。特定の 1 つのウォレットを指定したい単発の請求書に向いています。

どちらの場合も、チェーン上の支払いは使い捨てステルスアドレス宛ての通常の Blocknet トランザクションで、ほかの支払いと同じプライバシーが守られます。

支払いリンクを貼り付けると何が起きますか?

簡単な答え

ウォレットはリンクから受取人、金額、メモを読み取り、それを使って通常の送金を行います。名前があれば解決し、トランザクションを作ってから、金額、受取人、フルアドレス、手数料、メモを表示して Confirm [y/N] と尋ねます。BNT が動くのは、支払う側が y と入力したときだけです。

コマンドライン版ウォレットでの流れを順に説明します。

  1. 支払う側がウォレットのプロンプトにリンクを貼り付けます。 ウォレットは blocknet: または bntpay.com/ のプレフィックスを見て、その行を送金として扱います。$yourname 宛てに 25 BNT、メモ invoice-42 のリンクは、send $yourname 25 invoice-42 と入力したのと同じ依頼になります。
  2. 名前が解決されます。 名前入りのリンクでは、ウォレットが検証済みマーク付きで Resolved $yourname -> <address> と表示します。
  3. ウォレットが残高を確認して支払いを作ります。 コインを選び、プライベートなトランザクションを作り、手数料を計算します。
  4. 支払う側に概要が表示されます。 金額と受取人、手数料、名前を使った場合はフルアドレス、おつり、メモが一覧表示され、続いて Confirm [y/N] が表示されます。
  5. 支払う側が確認します。 y と入力するとトランザクションが送信され、その ID と explorer.blocknetcrypto.com のエクスプローラーリンクが表示されます。それ以外の回答では Cancelled と表示され、ウォレットが確保していたコインが解放されます。

概要は支払う側が依頼内容を確認する機会なので、それを見るまではウォレットから何も出ていきません。リンクには必ず金額が必要です。金額がない場合、ウォレットは payment link missing amount と返し、何も作らずに止まります。

リンクに入れたメモは、Blocknet の暗号化メモとして支払いと一緒に届きます。BNT が届くと、ウォレットの history コマンドが受け取った支払いの下にメモを表示するので、請求書や注文と照合できます。

共有する前にリンクをテストする

自分のリンクを自分のウォレットに貼り付ければ、支払う側に表示される内容をそのまま確認できます。ウォレットに依頼額以上の残高があれば、概要がすべて表示されます。受取人、金額、メモを確認したら n と答えれば、何も送られません。

支払いリンクが活躍する場面

マイニングでも BNT を獲得するなら、同じ名前をそちらにも使えます。seine と bntpool.com はどちらも Blocknet ID のショートネームを受け取りアドレスとして受け付けるので、マイニングの支払いとリンクでの支払いが 1 つのウォレットに届きます。設定方法は Blocknet のマイニングガイドで説明しています。

よくある質問

Blocknet の支払いリンクには金額が必要ですか?

はい。支払いリンクには必ず amount フィールドがあり、amount=25 や amount=0.5 のように、BNT 単位で小数点以下 8 桁まで書きます。メモは任意です。貼り付けたリンクに金額がない場合、コマンドライン版ウォレットは payment link missing amount と返して何も送らないので、支払う側が依頼内容を推測する必要はありません。

支払いリンクに Blocknet ID のショートネームを入れられますか?

はい。bntpay.com/$yourname?amount=10 や blocknet://$yourname?amount=10 のように、名前にドル記号のプレフィックスを付けて書きます。ウォレットは blocknet.id で名前を検索し、署名済みレコードを確認して、支払う側が確認する前に検証済みのフルアドレスを表示します。名前入りのリンクは、常にその名前が指すアドレスへ支払われます。

blocknet:// リンクと bntpay.com リンクの違いは何ですか?

どちらも受取人、金額、メモという同じ 3 つのフィールドを持ち、コマンドライン版ウォレットは両方を同じように読み取ります。blocknet:// 形式は Blocknet の URI スキームです。bntpay.com 形式は通常のウェブアドレスなので、チャットアプリ、メールクライアント、SNS のプロフィールでクリックできるリンクになります。

支払いリンクを貼り付けるとすぐに BNT が送られますか?

いいえ。リンクをウォレットに貼り付けると支払いが準備され、金額、受取人、フルアドレス、手数料、メモを示す概要が表示されたところで止まり、続いてはい・いいえの確認が求められます。BNT が動くのは、支払う側が y と入力した後だけです。それ以外の回答では支払いがキャンセルされ、確保していたコインが解放されます。