# TrustSet

[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/SetTrust.cpp)

2つのアカウントをリンクする[トラストライン](/ja/docs/concepts/tokens/fungible-tokens)を作成または変更します。

##  JSONの例


```json
{
   "TransactionType": "TrustSet",
   "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
   "Fee": "12",
   "Flags": 262144,
   "LastLedgerSequence": 8007750,
   "LimitAmount": {
     "currency": "USD",
     "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc",
     "value": "100"
   },
   "Sequence": 12
}
```

##  フィールド

[共通フィールド](/ja/docs/references/protocol/transactions/common-fields)に加えて、トランザクションは以下のフィールドを使用します。

| フィールド | JSONの型 | [内部の型](/ja/docs/references/protocol/binary-format) | 説明 |
|  --- | --- | --- | --- |
| `LimitAmount` | オブジェクト | Amount | 作成または変更するトラストラインを定義する[通貨額](/ja/docs/references/protocol/data-types/basic-data-types#%E9%80%9A%E8%B2%A8%E9%A1%8D%E3%81%AE%E6%8C%87%E5%AE%9A)フォーマットのオブジェクト。 |
| `LimitAmount`.`currency` | 文字列 | （Amount.currency） | このトラストラインが適用される通貨。3文字の[ISO 4217通貨コード](https://www.xe.com/iso4217.php)または[通貨フォーマット](/ja/docs/references/protocol/data-types/currency-formats)に基づく160ビットの16進数値です。「XRP」は無効です。 |
| `LimitAmount`.`value` | 文字列 | （Amount.value） | このトラストラインに設定される限度を表す引用符で囲んだ10進数値。 |
| `LimitAmount`.`issuer` | 文字列 | （Amount.issuer） | 信頼したいアカウントのアドレス。 |
| `QualityIn` | 数値 | UInt32 | *（省略可）* このトラストラインの受入額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 |
| `QualityOut` | 数値 | UInt32 | *（省略可）* このトラストラインの払出額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 |


`LimitAmount.issuer`で指定されたアカウントがトラストラインの着信をブロックしている場合、結果コード`tecNO_PERMISSION`でトランザクションが失敗します。 

## TrustSetのフラグ

TrustSetタイプのトランザクションについては、[`Flags`フィールド](/ja/docs/references/protocol/transactions/common-fields#flags%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89)で以下の値が追加でサポートされます。

| フラグ名 | 16進数値 | 10進数値 | 説明 |
|  --- | --- | --- | --- |
| `tfSetfAuth` | `0x00010000` | 65536 | [このアカウントから発行された通貨](/ja/docs/concepts/tokens)を相手方に保有させることを許可します。（[*asfRequireAuth* AccountSet フラグ](/ja/docs/references/protocol/transactions/types/accountset#accountset%E3%81%AE%E3%83%95%E3%83%A9%E3%82%B0)を使用しない場合は効果がありません。）設定を解除できません。 |
| `tfSetNoRipple` | `0x00020000` | 131072 | 2つのトラストラインの両方でこのフラグが有効になっている場合、同じ通貨のトラストライン間の[リップリング](/ja/docs/concepts/tokens/fungible-tokens/rippling)をブロックする No Ripple フラグを有効にします。 |
| `tfClearNoRipple` | `0x00040000` | 262144 | No Rippleフラグを無効にし、このトラストラインで[リップリング](/ja/docs/concepts/tokens/fungible-tokens/rippling)を許可します。 |
| `tfSetFreeze` | `0x00100000` | 1048576 | トラストラインを[フリーズ](/ja/docs/concepts/tokens/fungible-tokens/freezes)します。 |
| `tfClearFreeze` | `0x00200000` | 2097152 | トラストラインを[フリーズ解除](/ja/docs/concepts/tokens/fungible-tokens/freezes)します。 |
| `tfSetDeepFreeze` | `0x00400000` | 4194304 | トラストラインを[ディープフリーズ](/ja/docs/concepts/tokens/fungible-tokens/deep-freeze) します。 |
| `tfClearDeepFreeze` | `0x00800000` | 8388608 | トラストラインの[ディープフリーズ](/ja/docs/concepts/tokens/fungible-tokens/deep-freeze) を解除します。 |


トランザクションがNo Rippleを有効にしようとしたができない場合、結果コード `tecNO_PERMISSION` で失敗します。[fix1578 amendment](/ja/resources/known-amendments#fix1578)が有効になる前は、このようなトランザクションは代わりに`tesSUCCESS`（可能な限りの他の変更を行う）という結果になりました。

トラストラインのAuthフラグは、トラストラインがその所有者のXRP必要準備金に反映されるかどうかを左右しません。ただしAuthフラグを有効にすると、トラストラインがデフォルト状態になることがありません。承認されたトラストラインは削除できません。イシュアーは、トラストラインの限度と残高が0であっても、`tfSetfAuth`フラグだけを使用してトラストラインを事前承認できます。