代替可能トークン
非公式な"借用書"から、法定通貨を担保とするステーブルコイン、純粋なデジタルファンジブルトークンやセミファンジブルトークンなど、誰でもXRP Ledger上で代替可能なトークンを発行することができます。
代替可能トークンは交換可能で、互いに区別がつきません。トークンは交換可能で、同等の価値を持つ他のトークンと置き換えることができます。交換可能なトークンを作成するには、2つのアカウント間で会計関係の一種である「トラストライン」を設定し、それらのアカウント間で支払いを送信します。ほとんどのユースケースでは、最初に設定する必要がある設定もあります。
トラストライン
トラストラインとは、XRP Ledgerにおけるトークンを保持するための仕組みを指します。トラストラインは、XRP Ledgerのルールである「不要なトークンを他者に保有させることはできない」という原則を強制するものです。この制限は、XRP Ledgerのユースケースであるコミュニティクレジットなどを実現するために不可欠なものです。
それぞれの「トラストライン」は、以下のような 双方向 の関係から成り立っています。
- トラストラインが接続する 2つのアカウント の識別子
- 一方のアカウントから見てプラス、他方のアカウントから見てマイナスとなる、単一の共有された残高
- 残高がマイナスのアカウントは、一般的にトークンの「発行者」とみなされます。ただし、APIでは、
issuer
という名称はどちらを指すこともあるようです。
- 残高がマイナスのアカウントは、一般的にトークンの「発行者」とみなされます。ただし、APIでは、
- 様々な 設定 とメタデータ。2つのアカウントの それぞれ は、トラストライン上の設定を制御することができます。
- 最も重要なことは、各サイドがトラストラインに 限度額 を設定できることです。これはデフォルトでは0です。各アカウントの残高は(トラストラインから見て)そのアカウントの上限を超えることはできません。ただし、アカウント自身の操作を除きます。
各トラストラインは、特定の通貨コードに固有です。2つのアカウント間に作成できる各種通貨コードのトラストラインの数に制限はありませんが、どの通貨コードについても、作成できるトラストラインは1方向に1つだけです。
トラストラインの残高は、それをどちらの側から見るかによって負または正になります。負の残高を持つ側は「発行者」と呼ばれ、トークンの振る舞いに関するいくつかのプロパティを制御できます。トークンを発行者ではない別のアカウントに送ると、そのトークンは発行者や、おそらく同じ通貨コードを使用している他のアカウントを通じて「ripple(波及)」します。これは便利な場合もありますが、予期しない望ましくない動作を引き起こす場合もあります。トラストラインにNo Rippleフラグを使用することで、トラストラインが波及しないようにすることができます。
作成
アカウントはいずれも、ゼロでない上限と独自の設定を持つTrustSetトランザクションを送信することによって、他のアカウントに対して一方的にトークンを「トラスト」することができます。これによって、残高ゼロのトラストラインが作成され、相手側の設定がデフォルトとして設定されます。
トラストラインは、分散型取引所でトークンを購入するときなど、いくつかのトランザクションによって暗黙的に作成されることがあります。この場合、トラストラインはデフォルト設定をそのまま使用します。
限度額以上を保有する
トラストラインの限度額よりも 大きい 残高を保有できるケースは次の3つがあります。
- トレードによって、限度額以上のトークンを取得した場合
- プラスの残高があるトラストラインの限度額を減らした場合
- チェックの現金化によって、トークンを限度額以上取得する場合 (CheckCashMakesTrustLine amendmentにより追加されました。)
トラストラインの設定
アカウントごとに、共通残高のほかに、トラストラインの設定項目があり、その構成は以下のとおりです。
- Limit: 0からトークンの上限量の範囲内の数字です。支払いや他のアカウントの操作によって、(このアカウントから見た)トラストラインの残高が限度額を超えることはできません。デフォルトは
0
です。 - Authorized: Authorized Trust Linesと併用し、このアカウントが発行するトークンを相手側に保持させることを許可するための値(true/false)です。デフォルトは
false
です。一度true
に設定すると、元に戻すことはできません。 - No Ripple: トークンがこのトラストラインを通過してrippleするかどうかを設定するための値(true/false)です。デフォルトはアカウントの"Default Ripple"設定に依存します。新しいアカウントでは"Default Ripple"はoffで、つまり
true
がNo Rippleのデフォルト値となります。通常、発行者はrippleを許可し、非発行者はコミュニティクレジットのためにトラストラインを使用していない限り、rippleを無効にするべきです。 - Freeze: このトラストラインに個別の凍結が適用されているかどうかを示す値(true/false)です。デフォルトは`false です。
- Quality In および Quality Out: この設定により、このトラストライン上の他のアカウントで発行されたトークンを額面より少なく(または多く)評価することができます。たとえば、ステーブルコインの発行者が、オフレッジャーにある同等の資産に対してトークンの引き出しに3%の手数料を課している場合、この設定を使用して、それらのトークンを額面の97%で評価することが可能です。デフォルトは
0
で、額面価格を表しています。
準備金と削除
トラストラインは台帳のスペースを使用するため、トラストラインはあなたのアカウントが準備金として保持しなければならないXRPを増加させます。 トラストラインのどちらか、または両方のアカウントにトラストラインの準備金が負担されることがあります。トラストラインの設定がデフォルトでない場合、またはプラス残高を保持している場合、所有者準備金の1つとしてカウントされます。
一般に、トラストラインを作成したアカウントが準備金を負担し、発行者は負担しないという意味です。
トラストラインは、両者の設定がデフォルトの状態で、残高が0であれば自動的に削除されます。つまり、トラストラインを削除するには次の方法があります。
- 設定した内容をデフォルトに戻すために、TrustSetトランザクションを送信する。
- トラストラインにあるプラスの残高をすべて処分します。これは支払いによって通貨を送るか、分散型取引所で通貨を売却することで可能です。
残高がマイナス(あなたが発行者)の場合や、相手側の設定が初期状態でない場合、トラストラインを完全に削除させることはできませんが、同様の手順で所有者準備金にカウントされないようにすることが可能です。
Authorized の設定は、一度オンにするとオフにできないため、トラストラインの初期状態にはカウントされません。
無料のトラストライン
トラストラインはXRP Ledgerの強力な機能であるため、アカウントの最初の2つのトラストラインを「無料」にする特別な機能が用意されています。
アカウントが新しいトラストラインを作成する際、台帳の中で新しいトラストラインを含む最大2つのオブジェクトを所有している場合、アカウントの所有者準備金は通常の量ではなく、0として扱われます。これにより、アカウントが台帳内のオブジェクトを所有するために必要な準備金の増加分を満たすだけのXRPを保有していない場合でも、取引を成功させることができます。
アカウントが台帳に3つ以上のオブジェクトを所有している場合、所有者準備金が全額適用されます。
関連項目
- コンセプト:
- リファレンス:
- account_linesメソッド - 指定されたアカウントに関連付けられたトラストラインを確認
- gateway_balancesメソッド - 発行者の発行残高を確認
- RippleStateオブジェクト - 台帳の状態データのうち、トラストラインのデータ形式
- TrustSetトランザクション - トラストラインを作成・変更するトランザクション