AccountRoot
AccountRoot
オブジェクトタイプは、1つのアカウント、そのアカウントの設定、XRP残高を記述します。
AccountRoot JSONの例
{ "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "AccountTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", "Balance": "148446663", "Domain": "6D64756F31332E636F6D", "EmailHash": "98B4375E1D753E5B91627516F6D70977", "Flags": 8388608, "LedgerEntryType": "AccountRoot", "MessageKey": "0000000000000000000000070000000300", "OwnerCount": 3, "PreviousTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", "PreviousTxnLgrSeq": 14091160, "Sequence": 336, "TransferRate": 1004999999, "index": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8" }
AccountRootフィールド
AccountRoot
オブジェクトのフィールドは次のとおりです。
フィールド | JSONの型 | 内部の型 | 必須? | 説明 |
---|---|---|---|---|
Account | 文字列 | AccountID | はい | このアカウントを識別するための(クラシック)アドレスです。 |
AccountTxnID | 文字列 | Hash256 | いいえ | このアカウントから直近に送信されたトランザクションの識別ハッシュ。このフィールドは、AccountTxnID トランザクションフィールドを使うために有効になっていなければなりません。これを有効にするには、asfAccountTxnID フラグを有効にしたAccountSetトランザクションを送信してください。 |
AMMID | 文字列 | Hash256 | いいえ | (AMM amendment が必要です。) 対応するAMMレジャーエントリのレジャーエントリID。アカウント作成時に設定します。AMM以外のアカウントでは常に省略されます。 |
Balance | 文字列 | Amount | いいえ | アカウントの現在のdrop単位のXRP残高で、文字列で表現されます。 |
BurnedNFTokens | 数値 | UInt32 | いいえ | このアカウントで発行された 非代替性トークン のうち、バーンしたトークンの総数を表します。この数値は常に MintedNFTokens と同じかそれ以下となります。 |
Domain | 文字列 | VariableLength | いいえ | このアカウントに関連付けられたドメイン。JSONでは、ドメインのASCII表現を16進数で表現します。256バイトを超える長さは使用できません |
EmailHash | 文字列 | Hash128 | いいえ | メールアドレスのmd5ハッシュ。クライアントはこれを使用してサービス内でGravatarなどのアバターを検索できます。 |
Flags | 数値 | UInt32 | はい | このアカウントに対して有効になっているブールフラグのビットマップ。 |
LedgerEntryType | 文字列 | UInt16 | はい | 値0x0061 で文字列AccountRoot にマッピングされ、AccountRootオブジェクトであることを示します。 |
MessageKey | 文字列 | VariableLength | いいえ | このアカウントに暗号化されたメッセージを送信するために使用することができる公開鍵です。JSONでは、16進数で指定します。33バイトであることが必要で、最初の1バイトは鍵の種類を表します。secp256k1鍵の場合は0x02 または0x03 、Ed25519鍵の場合は0xED となります。 |
MintedNFTokens | 数値 | UInt32 | いいえ | このアカウントによって、またはこのアカウントのためにMintされた非代替性トークン の合計数。 |
NFTokenMinter | 文字列 | AccountID | いいえ | このアカウントに代わって非代替性トークンをミントできる別のアカウントを表します。 |
OwnerCount | 数値 | UInt32 | はい | レジャーでこのアカウントが所有しており、アカウント所有者の準備金に資金を付与するオブジェクトの数。 |
PreviousTxnID | 文字列 | Hash256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
PreviousTxnLgrSeq | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録されたレジャーインデックス。 |
RegularKey | 文字列 | AccountID | いいえ | このアカウントのトランザクションに署名するときにマスターキーの代わりに使用できるキーペアのアドレス。この値を変更するにはSetRegularKeyトランザクションを使用してください。 |
Sequence | 数値 | UInt32 | はい | このアカウントの有効な次のトランザクションのシーケンス番号 を表します。 |
TicketCount | 数値 | UInt32 | いいえ | このアカウントが台帳に保有するチケットの数です。これは、アカウントが一度に250 チケットという上限以内に留まることを保証するために自動的に更新されます。このフィールドは、チケットの数がゼロの場合は省略されます。 (TicketBatch amendmentにより追加されました) |
TickSize | 数値 | UInt8 | いいえ | このアドレスが発行した通貨が関わるオファーの為替レートに使用する有効桁数。有効な値は3 以上15 以下です。(TickSize Amendmentにより追加されました。) |
TransferRate | 数値 | UInt32 | いいえ | このアカウントが発行した通貨を他のユーザが相互に送金する際に、これらのユーザに請求する送金手数料。 |
WalletLocator | 文字列 | Hash256 | いいえ | ユーザが設定できる任意の256bit値。 |
WalletSize | 数値 | UInt32 | いいえ | 未使用。(コード上ではこのフィールドをサポートしていますが、設定する方法はありません)。 |
AMMの特殊なAccountRootエントリ
(AMM amendment が必要です。)
自動マーケットメーカー(AMM)は、AMMの詳細の一部を追跡するためのAMMレジャーエントリに加えて、LPトークンを発行しAMMプール内の資産を保持するためにAccountRootレジャーエントリを使用します。AMMに関連するAccountRootのアドレスは、AMMが作成される前にユーザがそのアドレスを特定し資金を提供できないように、ランダム化されています。AMMのAccountRootは、通常のアカウントとは異なり、以下のような設定で作成されます。
lsfDisableMaster
有効 : トランザクションへ署名する手段はありません。これにより、誰もそのアカウントを直接操作することができず、トランザクションを送信することができなくなります。lsfRequireAuth
有効 : 事前承認されているアカウントは存在しません。これにより、AMMアカウントに資産を追加する唯一の方法は、AMMDepositトランザクションを使用することであることが保証されます。lsfDefaultRipple
有効 : ユーザ間でAMMのLPトークンを送信したり、取引したりすることが可能になります。
さらに、AMMのAccountRootエントリには以下の特別なルールが適用されます。
- このAMM向けの特殊なアカウントは、準備金要件の対象外ですが、AMMのプール内の2つの資産のうちの1つであれば、XRPを保有することができます。
- チェック、エスクロー、ペイメントチャネルの宛先にはできません。そのようなエントリを作成するトランザクションは結果コード
tecNO_PERMISSION
で失敗します。 - ユーザはAMMのLPトークン以外のためにトラストラインを作成することはできません。そのようなトラストラインを作成するトランザクションは結果コード
tecNO_PERMISSION
で失敗します。(AMMはそのプール内のトークンを保持するために2つのトラストラインを持っており、プール内の他の資産がXRPの場合は1つのトラストラインを持っています)。 - Clawback Amendmentも有効になっている場合においても、トークンの発行者はAMMから資金を回収することはできません。
LPトークンは他のトークンと同様に動作しますが、これらのトークンはAMM関連のトランザクションでも使用することができます。AMMの残高や、AMMに影響を与えたトランザクションの履歴は、通常のアカウントと同じように確認することができます。
AccountRootのフラグ
AccountRootフラグの多くは、AccountSetトランザクションで変更できるオプションに対応しています。ただし、レジャーで使用されるビット値は、トランザクションでそれらのフラグを有効または無効にするために使用される値とは異なります。レジャーのフラグは lsf` で始まる名前を持ちます。
AccountRootオブジェクトはFlags
フィールドに以下のフラグを指定できます。
フラグ名 | 16進数値 | 10進数値 | 対応するAccountSetのフラグ | 説明 |
---|---|---|---|---|
lsfAllowTrustLineClawback | 0x80000000 | 2147483648 | asfAllowTrustLineClawback | このアカウントのClawbackを有効にします。 (Clawback Amendmentが必要です。) |
lsfDefaultRipple | 0x00800000 | 8388608 | asfDefaultRipple | このアドレスのトラストラインでデフォルトでripplingを有効にします。発行アドレスに必要です。他のアドレスでの使用は推奨されません。 |
lsfDepositAuth | 0x01000000 | 16777216 | asfDepositAuth | このアカウントは、アカウントが送信するトランザクションと、事前承認されたアカウントからの資金だけを受領します。(DepositAuthが有効になっています。) |
lsfDisableMaster | 0x00100000 | 1048576 | asfDisableMaster | このアカウントのトランザクションの署名にマスターキーを使用することを禁止します。 |
lsfDisallowIncomingCheck | 0x08000000 | 134217728 | asfDisallowIncomingCheck | このアカウントを宛先とするチェックの作成をブロックします。 (DisallowIncoming Amendmentにより追加されました。) |
lsfDisallowIncomingNFTokenOffer | 0x04000000 | 67108864 | asfDisallowIncomingNFTokenOffer | このアカウントを宛先とするNFTokenオファーの作成をブロックします。 (DisallowIncoming Amendmentにより追加されました。) |
lsfDisallowIncomingPayChan | 0x10000000 | 268435456 | asfDisallowIncomingPayChan | このアカウントを宛先とするペイメントチャネルの作成をブロックします。 (DisallowIncoming Amendmentにより追加されました。) |
lsfDisallowIncomingTrustline | 0x20000000 | 536870912 | asfDisallowIncomingTrustline | このアカウントに対するトラストラインの作成をブロックします。 (DisallowIncoming Amendmentにより追加されました。) |
lsfDisallowXRP | 0x00080000 | 524288 | asfDisallowXRP | クライアントアプリケーションはこのアカウントにXRPを送金しないでください。rippled により強制されるものではありません。 |
lsfGlobalFreeze | 0x00400000 | 4194304 | asfGlobalFreeze | このアドレスが発行するすべての資産が凍結されます。 |
lsfNoFreeze | 0x00200000 | 2097152 | asfNoFreeze | このアドレスは、このアドレスに接続しているトラストラインを凍結できません。一度有効にすると、無効にできません。 |
lsfPasswordSpent | 0x00010000 | 65536 | (なし) | このアカウントは無料のSetRegularKeyトランザクションを使用しています。 |
lsfRequireAuth | 0x00040000 | 262144 | asfRequireAuth | このアカウントは、他のユーザがこのアカウントのトークンを保有することを個別に承認する必要があります。 |
lsfRequireDestTag | 0x00020000 | 131072 | asfRequireDest | 受信ペイメントには宛先タグの指定が必要です。 |
AccountRootの準備金
AccountRootエントリの準備金は、特別なAMM AccountRootの場合を除き、現在の基本準備金である10 XRPです。
このXRPは他人に送ることはできませんが、トランザクションコストの一部として利用することができます。
AccountRoot IDのフォーマット
AccountRootエントリのIDは、以下の値がこの順序で連結されているSHA-512ハーフです。
- Accountスペースキー(
0x0061
) - アカウントのAccountID