最終更新:
編集

wallet_propose

[ソース]

wallet_proposeメソッドを使用して、キーペアとXRP Ledgerアドレスを生成します。このコマンドは単にキーとアドレス値を生成し、XRP Ledger自体には何ら影響しません。レジャー上で資金供給済みのアドレスになるには、そのアドレスで、必要準備金を満たすのに十分なXRPのPaymentトランザクションを受け取る必要があります。

wallet_proposeメソッドは、権限のないユーザは実行できない管理メソッドです。(このコマンドは、アカウントの機密情報を求めてネットワーク上の伝送情報をスニッフィングする人々から守るためにadminコマンドとされています。adminコマンドは通常、外部ネットワーク上で伝送されることはありません。)

更新: rippled 0.31.0

リクエストのフォーマット

リクエストのフォーマットの例:

{
    "command": "wallet_propose",
    "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb",
    "key_type": "secp256k1"
}

リクエストには以下のパラメーターを含めることができます。

Field説明
key_type文字列このキーペアの導出に使用する署名アルゴリズム。有効な値はed25519secp256k1(すべて小文字)です。デフォルトはsecp256k1です。
passphrase文字列(省略可) このシード値からキーペアとアドレスを生成します。この値は、16進数、XRP Ledgerのbase58フォーマット、RFC-1751、または任意の文字列でフォーマットできます。seedまたはseed_hexとともに使用することはできません。
seed文字列(省略可能) このシード値からXRP Ledgerのbase58エンコードフォーマットでキーペアとアドレスを生成します。passphraseまたはseed_hexとともに使用することはできません。
seed_hex文字列(省略可能) このシード値から16進数形式でキーペアとアドレスを生成します。passphraseまたはseedとともに使用することはできません。

以下のフィールドのうち1つを指定する必要があります。passphraseseed、またはseed_hex。3つすべてを省略すると、rippledによってランダムシードが使用されます。

注記
このコマンドのコマンドラインバージョンではEd25519キーを生成できません。

シードの指定

ほとんどの場合、強力な乱数ソースから生成されたシード値を使用する必要があります。あるアドレスのシード値を知っている人は、そのアドレスで署名されたトランザクションを送信するすべての権限を持っています。一般的に、ランダムシードの生成には、このコマンドにパラメーターを指定しないで実行する方法が適しています。

以下の場合には、既知のシードを指定します。

  • アドレスに関連するシードのみを知っていて、アドレスを再計算する
  • rippledの機能をテストする

シードは、以下のどのフォーマットでも指定できます。

  • XRP Ledgerのbase58フォーマットのシークレットキー文字列。例: snoPBrXtMeMyMHUVTgbuqAfg1SUTb
  • RFC-1751フォーマット文字列(secp256k1キーペアのみ)。例: I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE
  • 128ビットの16進数文字列。例: DEDCE9CE67B451D852FD4E846FCDE31C
  • シード値として使用する任意の文字列。例: masterpassphrase

レスポンスのフォーマット

処理が成功したレスポンスの例:

{
  "id": 2,
  "status": "success",
  "type": "response",
  "result": {
    "account_id": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
    "key_type": "secp256k1",
    "master_key": "I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE",
    "master_seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb",
    "master_seed_hex": "DEDCE9CE67B451D852FD4E846FCDE31C",
    "public_key": "aBQG8RQAzjs1eTKFEAQXr2gS4utcDiEC9wmi7pfUPTi27VCahwgw",
    "public_key_hex": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020"
  }
}

レスポンスは標準フォーマットに従い、正常に終了した場合、新しい(可能性がある)アカウントについての重要な各種情報を含みます。以下のフィールドを含みます。

Field説明
key_type文字列このキーペアの導出に使用された署名アルゴリズム。有効な値はed25519secp256k1(すべて小文字)です。
master_seed文字列これはキーペアの秘密鍵です。このアカウントに関するその他のあらゆる情報が、マスターシードからXRP Ledgerのbase58エンコード文字列フォーマットで引き出されます。通常、このフォーマットのキーを使用してトランザクションに署名します。
master_seed_hex文字列16進数形式のマスターシード。単純で広く支持されている秘密鍵表示法。トランザクションの署名に使用できます。
master_key文字列廃止予定 RFC-1751形式のマスターシード。覚えやすく書き留めやすい秘密鍵。トランザクションの署名に使用できます。注記: rippledの実装では、RFC-1751からデコードした後、RFC-1751にエンコードする前に、キーのバイト順序が逆になります。別のRFC-1751実装を使用して、XRP Ledgerで使用するキーの読み書きを行う場合は、同様にして、rippledのRFC-1751エンコーディングとの互換性を保つ必要があります。
account_id文字列XRP Ledgerのbase58フォーマットで作成されたアカウントのアドレス。これは公開鍵ではありませんが、公開鍵を2回ハッシュ化したものです。チェックサムも持っているため、タイプミスした場合はほぼ間違いなく無効なアドレスとみなされ、有効だが異なるアドレスとはみなされません。これはXRP LedgerのアカウントのプライマリIDです。支払いを受けるときにこれを人に伝えたり、トランザクションにおいて、自身や、支払先、委託先識別するのに使用します。マルチシグリストでもこれを使用して、他の署名者を識別します。
public_key文字列XRP Ledgerのbase58エンコード文字列フォーマットで作成された、キーペアの公開鍵。master_seedから生成されます。
public_key_hex文字列これは16進数で作成されたキーペアの公開鍵です。master_seedから生成されます。トランザクションの署名を検証する場合、rippledにはこの公開鍵が必要です。そのため、署名されたトランザクションのフォーマットのSigningPubKeyフィールドには公開鍵が入力されています。
warning文字列(削除される可能性あり)リクエストにシード値を指定した場合、このフィールドに安全でない可能性があるという警告が表示されます。新規: rippled 0.32.0

このメソッドを使用してキーペアを生成し、アカウントのレギュラーキーペアとして使用することもできます。アカウントにレギュラーキーペアを割り当てて、それを使用してほとんどのトランザクションに署名し、マスターキーペアをできるだけオフラインにしておくことも可能です。

レギュラーキーペアとして使用するほかに、マルチシグのリスト(SignerList)のメンバーとして使用することもできます。

マスターキーペアとレギュラーキーペアの詳細は、暗号鍵をご覧ください。

マルチシグの詳細は、マルチシグをご覧ください。

考えられるエラー

  • いずれかの汎用エラータイプ
  • invalidParams - 1つ以上のフィールドが不正に指定されています。
  • badSeed - リクエストには、空の文字列やXRP Ledgerアドレスに似た文字列などの許可されないシード値が(passphraseseed、またはseed_hexフィールド内に)指定されています。