python 创建 eth 钱包地址

助记词可以生成私钥,但私钥无法生成助记词。

如果能够确保记得住私钥,其实是没有必要记住助记词的。助记词仅仅用于恢复私钥。

eth钱包地址的创建不需要连网,可以离线创建。那有没有可能你创建出来的私钥,跟别人正在使用的巧合相同?理论上有可能,但实际上机率比起【用计算生成一个小数长度1万位的随机数,这个随机数跟圆周率的前1万位小数刚好相等】的几率还要小

安装web3.py是会自动安装 eth-account的

web3.eth.account 实际上就是等于eth-account.Account

import os
from eth_account import Account
 
if __name__ == '__main__':
    # account = Account.create()
    # print('%s,%s'%(account.address,account.key.hex()))
    file_name = input('请输入文件名:')
    if os.path.exists(file_name):
        print("文件已存在,请换个名字:")
    else:
        j=1
        n = int(input('请输入需要创建的钱包数:'))
 
        for i in range(n):
            Account.enable_unaudited_hdwallet_features()
            account, mnemonic = Account.create_with_mnemonic()
            num = '第%d个钱包' % j
            print(num)
            line =('%s,%s,%s,%d' % (account.address, account.key.hex(), mnemonic, j)) #mnemonic助记词
            print(line)
            j = j + 1
            with open(file_name+'.csv', 'a') as f: 
                f.write(line + '\n')

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于PythonEth代币转账实现代码示例,需要使用web3.py库: ```python from web3 import Web3 import json # 1. 连接到以太坊节点 web3 = Web3(Web3.HTTPProvider('https://mainnet.infura.io/v3/{your-infura-project-id}')) # 2. 加载代币合约ABI with open('abi.json', 'r') as abi_definition: abi = json.load(abi_definition) # 3. 获取代币合约 contract_address = '0x1234567890123456789012345678901234567890' contract = web3.eth.contract(address=contract_address, abi=abi) # 4. 发送代币转账交易 token_sender_address = '0x1234567890123456789012345678901234567890' token_sender_private_key = '{your-private-key}' token_receiver_address = '0x0987654321098765432109876543210987654321' token_amount = 1000 gas_limit = 100000 gas_price = web3.toWei('20', 'gwei') # 获取nonce值 nonce = web3.eth.getTransactionCount(token_sender_address) # 构造交易数据 transaction = { 'nonce': nonce, 'to': contract_address, 'value': 0, 'gas': gas_limit, 'gasPrice': gas_price, 'data': contract.functions.transfer(token_receiver_address, token_amount).buildTransaction({'from': token_sender_address}).hex(), } # 对交易进行签名 signed_txn = web3.eth.account.signTransaction(transaction, private_key=token_sender_private_key) # 发送交易 tx_hash = web3.eth.sendRawTransaction(signed_txn.rawTransaction) # 等待交易被打包 tx_receipt = web3.eth.waitForTransactionReceipt(tx_hash) # 打印交易信息 print(f'Transaction sent: {tx_hash.hex()}') print(f'Transaction receipt: {tx_receipt}') ``` 其中,需要将代码中的以下参数替换为实际的值: - `{your-infura-project-id}`:Infura项目ID - `abi.json`:代币合约ABI文件路径 - `contract_address`:代币合约地址 - `token_sender_address`:代币发送者地址 - `token_sender_private_key`:代币发送者私钥 - `token_receiver_address`:代币接收者地址 - `token_amount`:代币数量 - `gas_limit`:交易的gas限制 - `gas_price`:交易的gas价格 需要注意的是,这只是一个简单的示例代码,实际使用中需要根据具体情况进行调整和完善。同时,在使用时需要非常小心,以免出现错误导致代币丢失。建议在测试环境中进行充分的测试,确保代码的正确性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值