首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中创建ethereum钱包?

如何在Python中创建ethereum钱包?
EN

Stack Overflow用户
提问于 2017-09-01 16:15:15
回答 2查看 11.7K关注 0票数 12

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

我要找的是一个类似于web3.js中的eth.accounts API的函数,它有一个create([entropy])方法。它返回一个带有“address”、“privatekey”和其他详细信息的帐户对象。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-01 17:43:51

编辑:我删除了不推荐的pyethereum解决方案,代之以更好的eth-account解决方案。

设置

At shell:pip install eth_account

生成帐户

eth-account库将为您提供附加地址的创建私钥

代码语言:javascript
运行
复制
>>> 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...'字符串相比,使用不同的随机字符串。

有关使用私钥的详细信息,请参阅这个文档中有一些常见的例子,比如签署一个事务。

顺便提一句,您可能会在ethereum.stackexchange.com上找到更多的支持。

票数 16
EN

Stack Overflow用户

发布于 2021-07-31 02:35:00

您可以使用纯计算创建私有/公钥对,绕过web3.py帐户api。

安装要求:pip install coincurve pysha3

代码语言:javascript
运行
复制
from secrets import token_bytes
from coincurve import PublicKey
from sha3 import keccak_256

private_key = keccak_256(token_bytes(32)).digest()
public_key = PublicKey.from_valid_secret(private_key).format(compressed=False)[1:]
addr = keccak_256(public_key).digest()[-20:]
print('private_key:', private_key.hex())
print('eth addr: 0x' + addr.hex())

参考资料:https://www.arthurkoziel.com/generating-ethereum-addresses-in-python/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46004291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档