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の型 内部の型 説明
LedgerEntryType 文字列 UInt16 0x0061が文字列AccountRootにマッピングされている場合は、これがAccountRootオブジェクトであることを示します。
Account 文字列 AccountID このアカウントの識別用アドレス(rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnなど)。
Balance 文字列 Amount アカウントの現在のdrop単位のXRP残高で、文字列で表現されます。
Flags 数値 UInt32 このアカウントに対して有効になっているブールフラグのビットマップ。
OwnerCount 数値 UInt32 レジャーでこのアカウントが所有しており、アカウント所有者の準備金に資金を付与するオブジェクトの数。
PreviousTxnID 文字列 Hash256 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。
PreviousTxnLgrSeq 数値 UInt32 最後にこのオブジェクトを変更したトランザクションが記録されたレジャーインデックス
Sequence 数値 UInt32 このアカウントの次に有効なトランザクションのシーケンス番号。(各アカウントはSequence = 1で開始し、トランザクションが作られるたびにこの値が増加します。)
AccountTxnID 文字列 Hash256 (省略可) このアカウントが最後に送信したトランザクションの識別用ハッシュ。
Domain 文字列 VariableLength (省略可) このアカウントに関連付けられているドメイン。JSONではこれはドメインのASCII表現の16進数値です。
EmailHash 文字列 Hash128 (省略可) メールアドレスのmd5ハッシュ。クライアントはこれを使用してサービス内でGravatar などのアバターを検索できます。
MessageKey 文字列 VariableLength (省略可) 暗号化メッセージをこのアカウントに送信するときに使用できる公開鍵。JSONでは16進数値を使用します。33バイト以下です。
RegularKey 文字列 AccountID (省略可) このアカウントのトランザクションに署名するときにマスターキーの代わりに使用できるキーペアのアドレス。この値を変更するにはSetRegularKeyトランザクションを使用してください。
TickSize 数値 UInt8 (省略可) このアドレスが発行した通貨が関わるオファーの為替レートに使用する有効桁数。有効な値は3以上15以下です。TickSize Amendmentが必要です。)
TransferRate 数値 UInt32 (省略可) このアカウントが発行した通貨を他のユーザーが相互に送金する際に、これらのユーザーに請求する送金手数料
WalletLocator 文字列 Hash256 (省略可) 廃止予定。使用しないでください。
WalletSize 数値 UInt32 (省略可) 廃止予定。使用しないでください。

Special AMM AccountRoot Objects

Automated Market Maker (AMM) functionality is part of the proposed XLS-30d extension to the XRP Ledger protocol. You can use these functions on AMM test networks, but there isn't an official amendment and they aren't available on the production Mainnet. Until there is an amendment, the details documented on these pages are subject to change.

Automated Market Makers (AMMs) use an AccountRoot object to issue their LP Tokens and hold the assets in the AMM pool, in addition to the AMM object for tracking some of the details of the AMM. The address of an AMM's associated AccountRoot is randomized so that users cannot identify and fund the address in advance of the AMM being created. Unlike normal accounts, AMM AccountRoots are created with the following settings:

  • lsfAMM enabled. This indicates that the AccountRoot is part of an AMM and is not a regular account.
  • lsfDisableMaster enabled and no other means of authorizing transactions. This ensures no one can control the account directly, and it cannot send transactions.
  • lsfRequireAuth enabled and no accounts preauthorized. This ensures that the only way to add money to the AMM Account is using the AMMDeposit transaction.
  • lsfDefaultRipple enabled. This ensures that users can send and trade the AMM's LP Tokens among themselves.

These special accounts are not subject to the reserve requirement but they can hold XRP if it is one of the two assets in the AMM's pool.

In most other ways, these accounts function like ordinary accounts; the LP Tokens they issue behave like other tokens except that those tokens can also be used in AMM-related transactions. You can check an AMM's balances and the history of transactions that affected it the same way you would with a regular account.

AccountRootのフラグ

このアカウントに対して有効化または無効化できる各種オプションがあります。これらのオプションを変更するには、AccountSetトランザクションを使用します。レジャーではフラグはバイナリ値として表され、これらのバイナリ値はビットOR演算と組み合わせることができます。レジャーでのフラグのビット値は、トランザクションでこれらのフラグを有効または無効にするために使用する値とは異なります。レジャーのフラグには、 lsf で始まる名前が付いています。

AccountRootオブジェクトには以下のフラグ値を指定できます。

フラグ名 16進数値 10進数値 説明 対応するAccountSetのフラグ
lsfDefaultRipple 0x00800000 8388608 このアドレスのトラストラインでデフォルトでripplingを有効にします。発行アドレスに必要です。他のアドレスでの使用は推奨されません。 asfDefaultRipple
lsfDepositAuth 0x01000000 16777216 このアカウントは、アカウントが送信するトランザクションと、事前承認されたアカウントからの資金だけを受領します。(DepositAuthが有効になっています。) asfDepositAuth
lsfDisableMaster 0x00100000 1048576 このアカウントのトランザクションの署名にマスターキーを使用することを禁止します。 asfDisableMaster
lsfDisallowXRP 0x00080000 524288 クライアントアプリケーションはこのアカウントにXRPを送金しないでください。rippledにより強制されるものではありません。 asfDisallowXRP
lsfGlobalFreeze 0x00400000 4194304 このアドレスが発行するすべての資産が凍結されます。 asfGlobalFreeze
lsfNoFreeze 0x00200000 2097152 このアドレスは、このアドレスに接続しているトラストラインを凍結できません。一度有効にすると、無効にできません。 asfNoFreeze
lsfPasswordSpent 0x00010000 65536 このアカウントは無料のSetRegularKeyトランザクションを使用しています。 (なし)
lsfRequireAuth 0x00040000 262144 このアカウントは、他のユーザーがこのアカウントのイシュアンスを保有することを個別に承認する必要があります。 asfRequireAuth
lsfRequireDestTag 0x00020000 131072 受信ペイメントには宛先タグの指定が必要です。 asfRequireDest

AccountRoot IDのフォーマット

AccountRootオブジェクトのIDは、以下の値がこの順序で連結されているSHA-512ハーフです。

  • Accountスペースキー(0x0061
  • アカウントのAccountID