送金手数料
トークンの発行者は、TransferRate
の設定を使用して、ユーザに対し 送金手数料 を請求できます。この送金の送金元からは送金手数料に基づく割合で引き落とされ、送金先へ入金されます。差額が送金手数料となります。
標準的なトークンの場合、送金手数料として支払われたトークンはバーンされ、XRP Ledgerでは記録されなくなります。トークンがレジャー外の資産で裏付けされている場合、これは発行者がXRP Ledgerでの債務を果たすために準備金として保有しなければならないそれらの資産の量を減らします。送金手数料は通常、外部資産で裏付けられていないトークンには適切ではありません。
非代替性トークンにも送金手数料がかかりますが、その仕組みは異なります。詳細は非代替性トークンをご覧ください。
送金手数料は、発行アカウントと直接送受信する場合には適用されませんが、運用アドレスから他のユーザへ送金する場合には適用されます。
XRPは発行者が存在しないため、送金手数料がかかることはありません。
例
この例では、ACME銀行はXRP Ledger上でEURステーブルコインを発行します。ACME Bankは送金手数料を1%に設定するかもしれません。支払いの受取人が2 EUR.ACMEを得るためには、送金者は2.02 EUR.ACMEを送らなければなりません。トランザクションの後、XRP LedgerにおけるACMEの未払い債務は0.02ユーロ減少し、ACMEはEURステーブルコインの裏付けとなる銀行口座にその金額を保持する必要がなくなります。
以下の図は、AliceからCharlieへの2EUR.ACMEのXRP Ledger支払いを、送金手数料1%で表しています。
会計用語では、Alice、ACME、Charlieの貸借対照表はこのように変わっているでしょう。
ペイメントパスでの送金手数料
送金手数料は、各送金においてイシュアンスが発行アカウントを通じて当事者間を移動するたびに適用されます。さらに複雑なトランザクションでは、手数料が複数回適用されます。送金手数料は、送金の終わりの時点から逆方向に適用されるので、最終的には支払いの送金者がすべての手数料をカバーするのに十分な額を送金する必要があります。例:
このシナリオでは、ACMEが発行したEURをSalazar(送金元)が保有しており、WayGateが発行した100 USDをRosa(受取人)に送金したいと思っています。FXMakerはオーダーブックで最も良いレート(1 USD.WayGate = 0.9 EUR.ACME)のオファーを提供する通貨取引業者です。もし手数料がなければ、Salazarは90 EURを送金すればRosaに100 USDを送金することができます。しかしながら、ACMEで1%の送金手数料が発生し、WayGateで0.2%の送金手数料が発生します。つまり、次のようになります。
- Rosaが100 USD.WayGateを受領するには、FXMakerから100.20 USD.WayGateを送金する必要があります。
- 100.20 USD.WayGateを送金する場合のFXMakerの現在の買値は90.18 EUR.ACMEです。
- FXMakerが90.18 EUR.ACMEを受領するには、Salazarが91.0818 EUR.ACMEを送金する必要があります。
技術詳細
送金手数料は発行アドレスの設定により表されます。送金手数料には、0%未満の値と100%を超える値は指定できず、0.0000001%の位までで切り捨てられます。TransferRate設定は同一アカウントにより発行されるすべての通貨に適用されます。通貨によって異なる送金手数料のパーセンテージを適用するには、通貨ごとに異なる発行アドレスを使用します。
送金手数料はTransferRate
フィールドで指定します。このフィールドは受信者が同じトークンを10億単位で取得するために送金しなければならない金額を表す整数です。TransferRate
が1005000000
の場合、送金手数料は0.5%に相当します。デフォルトではTransferRate
は0%に設定されています。TransferRate
の値を1000000000
未満("0%"未満の手数料)または2000000000
以上(”100%”超の手数料)に設定することはできません。値0
は手数料無料の特別な場合で、1000000000
と同じです。
トークン発行者は、AccountSetトランザクションを送信することで、発行するトークンすべてのTransferRate
を変更することができます。
アカウントのTransferRate
はaccount_infoメソッドで誰でも確認できます。もしTransferRate
が省略されていれば、手数料は無料です。
注記: rippled
v0.80.0で導入され2017-11-14に有効となったfix1201 Amendmentにより、最大送金手数料は実効限度である約329%(32ビット整数の最大サイズに基づく)から100%に引き下げられました。送金手数料の設定が100%(TransferRate
が2000000000
)を上回るアカウントがレジャーにまだ含まれている可能性があります。すでに設定されている手数料はすべて、規定のレートで引き続き運用されます。
クライアントライブラリのサポート
いくつかのクライアントライブラリはTransferRate
を取得・設定するための便利な関数を持っています。
JavaScript: xrpl.percentToTransferRate()
を使うと、文字列からパーセンテージの送金手数料を対応するTransferRate
値に変換することができます。