Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

import random

import os
import requests
import asyncio
import aiohttp

# Your API key


API_KEY = '9ND5J7H5F8Y1M9YTZEZF4SKGYHW4XMVDEY'
# Number of concurrent requests
CONCURRENT_REQUESTS = 5

async def generate_private_key():


return ''.join(random.choice('0123456789abcdef') for _ in range(64))

async def check_balance(private_key):


async with aiohttp.ClientSession() as session:
btc_balance = await get_btc_balance(session, private_key)
eth_balance = await get_eth_balance(session, private_key)
return btc_balance, eth_balance

async def get_btc_balance(session, private_key):


address = private_key_to_address(private_key)
url = f'https://blockchain.info/balance?active={address}&apikey={API_KEY}'
async with session.get(url) as response:
try:
data = await response.json()
return data.get(address, {}).get('final_balance', 0) / 1e8
except aiohttp.client_exceptions.ContentTypeError as e:
print("ContentTypeError:", e)
await save_failed_response(await response.text())
return 0

async def get_eth_balance(session, private_key):


address = private_key_to_address(private_key, currency='ETH')
url = f'https://api.etherscan.io/api?
module=account&action=balance&address={address}&tag=latest&apikey={API_KEY}'
async with session.get(url) as response:
try:
data = await response.json()
return int(data.get('result', 0)) / 1e18
except aiohttp.client_exceptions.ContentTypeError as e:
print("ContentTypeError:", e)
await save_failed_response(await response.text())
return 0

def private_key_to_address(private_key, currency='BTC'):


if currency == 'BTC':
return '1BitcoinAddress'
elif currency == 'ETH':
return '0x12345EthereumAddress'

async def save_private_key(private_key, btc_balance, eth_balance):


with open('C:\\Users\\ayaan\\Desktop\\checked_private_keys.txt', 'a') as file:
file.write(f"Private Key: {private_key}\n")
file.write(f"BTC Balance: {btc_balance}\n")
file.write(f"ETH Balance: {eth_balance}\n\n")
if btc_balance > 0:
with open(f'C:\\Users\\ayaan\\Desktop\\
btc_non_zero_balance_private_keys.txt', 'a') as btc_file:
btc_file.write(private_key + '\n')
if eth_balance > 0:
with open(f'C:\\Users\\ayaan\\Desktop\\
eth_non_zero_balance_private_keys.txt', 'a') as eth_file:
eth_file.write(private_key + '\n')

async def save_failed_response(response_text):


with open('C:\\Users\\ayaan\\Desktop\\failed_response.json', 'w') as file:
file.write(response_text)

async def main():


while True:
tasks = []
for _ in range(CONCURRENT_REQUESTS):
private_key = await generate_private_key()
task = asyncio.create_task(check_and_save(private_key))
tasks.append(task)
await asyncio.gather(*tasks)

async def check_and_save(private_key):


btc_balance, eth_balance = await check_balance(private_key)
await save_private_key(private_key, btc_balance, eth_balance)
print(f"Private Key: {private_key}, BTC Balance: {btc_balance}, ETH Balance:
{eth_balance}")

if __name__ == "__main__":
asyncio.run(main())

You might also like