I am building an application that would create a wallet for a user. One option is the web3.personal API in web3.py, which has a newAccount('passphrase')
method. The method only returns the address of created account.
What I'm looking for is a function similar to the eth.accounts API in web3.js, which has a create([entropy])
method. It returns an account object with 'address', 'privatekey' and other details.
Edit: I removed the deprecated
pyethereum
solution, replaced with the bettereth-account
one.Setup
At shell:
pip install eth_account
Generating Account
The
eth-account
library will help you create a private key with an attached address:Adding some of your own randomness above helps address potential limitations of
os.urandom
, which depends on your version of Python, and your operating system. Obviously use a different string of randomness than the'KEYSMASH...'
one from above.For more information about using the private key, see this doc with common examples, like signing a transaction.
As a side-note, you may find more support at ethereum.stackexchange.com