Personal Module
The personal module manages encrypted private keys in the local node keystore. It provides APIs to create new accounts, unlock accounts to enable signing, sign messages, and directly execute pre-authenticated transactions.
personal_newAccount
Creates a new encrypted keystore keyfile in the node's local storage.
Parameters
String- Passphrase to encrypt the keystore file.
Returns
DATA, 20 Bytes - The address of the newly created account.
Example
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"personal_newAccount","params":["mySecretPassword123"],"id":1}'
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
}personal_listAccounts
Lists all managed keystore addresses on the local node.
Parameters
None
Returns
Array of DATA, 20 Bytes - A list of addresses managed by the local node.
Example
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"personal_listAccounts","params":[],"id":1}'
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": [
"0x407d73d8a49eeb85d32cf465507dd71d507100c1",
"0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a"
]
}personal_unlockAccount
Decrypts the private key of the given address into memory for a specified duration to allow signing.
Parameters
DATA, 20 Bytes - The address to unlock.String- Passphrase used to decrypt the keystore.Number- (optional) Unlock duration in seconds (default:300). Pass0to keep unlocked indefinitely until node shutdown.
Returns
Boolean - true if unlock succeeded, otherwise false.
Example
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"personal_unlockAccount","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "mySecretPassword123", 60],"id":1}'
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": true
}personal_lockAccount
Removes the decrypted private key of the given address from memory.
Parameters
DATA, 20 Bytes - The address to lock.
Returns
Boolean - true if lock succeeded, otherwise false.
Example
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"personal_lockAccount","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1"],"id":1}'
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": true
}personal_sendTransaction
Signs a transaction and broadcasts it to the network in one step, using the specified account's password. The account does not need to be pre-unlocked.
Parameters
Object- The transaction object (see eth_sendTransaction for fields).String- Passphrase to decrypt the sender keystore file.
Returns
DATA, 32 Bytes - The transaction hash.
Example
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"personal_sendTransaction","params":[{"from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1", "to": "0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a", "value": "0xde0b6b3a7640000"}, "mySecretPassword123"],"id":1}'
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}personal_sign
Calculates an Ethereum-specific signature over message data using: sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))).
Parameters
DATA- Hex-encoded raw message bytes.DATA, 20 Bytes - Address to sign with.String- Passphrase to unlock the signing key.
Returns
DATA - Hex-encoded signature.
Example
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"personal_sign","params":["0x68656c6c6f20776f726c64", "0x407d73d8a49eeb85d32cf465507dd71d507100c1", "mySecretPassword123"],"id":1}'
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"
}personal_ecRecover
Recovers the address associated with the private key that signed the given message.
Parameters
DATA- Hex-encoded message bytes.DATA- Hex-encoded signature signature bytes.
Returns
DATA, 20 Bytes - Recovered signer address.
Example
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"personal_ecRecover","params":["0x68656c6c6f20776f726c64", "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"],"id":1}'
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
}