7.4 KiB
wallet_propose
Use the wallet_propose method to generate a key pair and XRP Ledger address. This command only generates keys, and does not affect the XRP Ledger itself in any way. To become a funded address stored in the ledger, the address must receive a Payment transaction that provides enough XRP to meet the reserve requirement.
The wallet_propose request is an admin command that cannot be run by unprivileged users! (This command is restricted to protect against people sniffing network traffic for account secrets, since admin commands are not usually transmitted over the outside network.)
[Updated in: rippled 0.31.0][New in: rippled 0.31.0]
Request Format
An example of the request format:
WebSocket (with key type)
{
"command": "wallet_propose",
"seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb",
"key_type": "secp256k1"
}
WebSocket (no key type)
{
"command": "wallet_propose",
"passphrase": "masterpassphrase"
}
JSON-RPC (with key type)
{
"method": "wallet_propose",
"params": [
{
"seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb",
"key_type": "secp256k1"
}
]
}
JSON-RPC (no key type)
{
"method": "wallet_propose",
"params": [
{
"passphrase": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb"
}
]
}
Commandline
#Syntax: wallet_propose [passphrase]
rippled wallet_propose masterpassphrase
The request can contain the following parameters:
Field |
Type | Description |
|---|---|---|
key_type |
String | Which elliptic curve to use for this key pair. Valid values are ed25519 and secp256k1 (all lower case). Defaults to secp256k1. |
passphrase |
String | (Optional) Generate a key pair and address from this seed value. This value can be formatted in hexadecimal, base58, RFC-1751, or as an arbitrary string. Cannot be used with seed or seed_hex. |
seed |
String | (Optional) Generate the key pair and address from this base58-encoded seed value. Cannot be used with passphrase or seed_hex. |
seed_hex |
String | (Optional) Generate the key pair and address from this seed value in hexadecimal format. Cannot be used with passphrase or seed. |
You must provide at most one of the following fields: passphrase, seed, or seed_hex. If you omit all three, rippled uses a random seed.
Note: Ed25519 support is experimental. The commandline version of this command cannot generate Ed25519 keys.
Specifying a Seed
For most cases, you should use a seed value generated from a strong source of randomness. Anyone who knows the seed value for an address has full power to send transactions signed by that address. Generally, running this command with no parameters is a good way to generate a random seed.
Cases where you would specify a known seed include:
- Re-calculating your address when you only know the seed associated with that address
- Testing
rippledfunctionality
If you do specify a seed, you can specify it in any of the following formats:
- As a base58 secret key format string. Example:
snoPBrXtMeMyMHUVTgbuqAfg1SUTb. - As an RFC-1751 format string (secp256k1 key pairs only). Example:
I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE. - As a 128-bit hexadecimal string. Example:
DEDCE9CE67B451D852FD4E846FCDE31C. - An arbitrary string to use as a seed value. For example:
masterpassphrase.
Response Format
An example of a successful response:
WebSocket
{
"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"
}
}
JSON-RPC
{
"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",
"status": "success"
}
}
Commandline
Loading: "/etc/rippled.cfg"
Connecting to 127.0.0.1:5005
{
"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",
"status" : "success"
}
}
The response follows the standard format, with a successful result containing various important information about the new account, including the following fields:
Field |
Type | Description |
|---|---|---|
master_seed |
String | The master seed from which all other information about this account is derived, in Ripple's base58 encoded string format. This is the private key of the key pair. |
master_seed_hex |
String | The master seed, in hex format. |
master_key |
String | The master seed, in RFC 1751 format. |
account_id |
String | The [Address][] of the account. |
public_key |
String | The public key of the account, in encoded string format. |
public_key_hex |
String | The public key of the account, in hex format. |
warning |
String | (May be omitted) If the request specified a seed value, this field provides a warning that it may be insecure. [New in: rippled 0.32.0][] |
The key generated by this method can also be used as a regular key for an account if you use the SetRegularKey transaction type to do so.
Possible Errors
- Any of the universal error types.
invalidParams- One or more fields are specified incorrectly.badSeed- The request specified a disallowed seed value (in thepassphrase,seed, orseed_hexfields), such as an empty string, or a string resembling a XRP Ledger address.