Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- import requests
- import time
- from ecdsa import SigningKey, SECP256k1
- import sha3
- '''
- RUN
- pip install ecdsa
- AND
- pip install sha3
- BEFORE YOU RUN THE SCRIPT THE FIRST TIME
- LIMITS: 20 keys per request, 5 requests per second
- made by @subvert (tg), i'd be grateful if you sent me a tiny bit of your booty after you got rich
- '''
- ETHERSCAN_API = '' # insert your API KEY from etherscan.io here
- def main():
- wallets = []
- while len(wallets) < 21:
- wallet = {}
- wallet['private_key'], wallet['public_key'], wallet['address'] = generate_address()
- wallets.append(wallet)
- addresses_to_check = ','.join(wallet['address'] for wallet in wallets)
- for result in check_balance(addresses_to_check):
- print(*result)
- def generate_address():
- keccak = sha3.keccak_256()
- private_key = SigningKey.generate(curve=SECP256k1)
- public_key = private_key.get_verifying_key().to_string()
- keccak.update(public_key)
- address = keccak.hexdigest()[24:]
- return private_key.to_string().hex(), public_key.hex(), checksum_encode(address)
- def checksum_encode(addr_str): # hex str
- keccak = sha3.keccak_256()
- out = ''
- addr = addr_str.lower().replace('0x', '')
- keccak.update(addr.encode('ascii'))
- hash_addr = keccak.hexdigest()
- for i, c in enumerate(addr):
- if int(hash_addr[i], 16) >= 8:
- out += c.upper()
- else:
- out += c
- return '0x' + out
- def check_balance(addresses): # str commaseparated
- params = {'module': 'account',
- 'action': 'balancemulti',
- 'address': addresses,
- 'apikey': ETHERSCAN_API
- }
- while True:
- r = requests.get('https://api.etherscan.io/api', params=params)
- response = json.loads(r.text)
- if response['status']:
- for address in response['result']:
- if address['balance'] != '0':
- yield address['account'], address['balance']
- else: #optional
- yield address['account'], address['balance']
- break
- else:
- print(f'ERROR: {response["result"]}')
- if __name__ == '__main__':
- while True:
- main()
- time.sleep(0.22)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement