如何在纯python中创建一个以太坊钱包?

问题描述 投票:8回答:1

我正在构建一个为用户创建钱包的应用程序。一个选项是web3.py中的web3.personal API,它有一个newAccount('passphrase')方法。该方法仅返回已创建帐户的地址。

我正在寻找的是类似于web3.js中的eth.accounts API的函数,它具有create([entropy])方法。它返回一个带有“地址”,“私钥”和其他详细信息的帐户对象。

我对以太坊和这种开发实践的想法很新,所以很乐意从你那里得到一些帮助。先感谢您。

python ethereum web3
1个回答
12
投票

编辑:我删除了已弃用的pyethereum解决方案,替换为更好的eth-account解决方案。

建立

在shell:pip install eth_account

生成帐户

eth-account图书馆将帮助您create a private key附加地址:

>>> from eth_account import Account

>>> acct = Account.create('KEYSMASH FJAFJKLDSKF7JKFDJ 1530')
>>> acct.privateKey
b"\xb2\}\xb3\x1f\xee\xd9\x12''\xbf\t9\xdcv\x9a\x96VK-\xe4\xc4rm\x03[6\xec\xf1\xe5\xb3d"
>>> acct.address
'0x5ce9454909639D2D17A3F753ce7d93fa0b9aB12E'

在上面添加一些自己的随机性有助于解决os.urandom的潜在限制,这取决于您的Python版本和您的操作系统。显然,使用与上面的'KEYSMASH...'不同的随机性串。

有关使用私钥的更多信息,请参阅this doc with common examples, like signing a transaction


作为旁注,您可以在ethereum.stackexchange.com找到更多支持

© www.soinside.com 2019 - 2024. All rights reserved.