#CryptoSchemes $USDT import requests import json import pandas as pd from datetime import datetime # Налаштування API (замініть 'YOUR_API_KEY' на реальний ключ від BlockCypher) API_KEY = 'YOUR_API_KEY' BASE_URL = 'https://api.blockcypher.com/v1/btc/main' # Санкційні списки (приклад, можна завантажити реальні списки OFAC, EU тощо) SANCTIONED_ADDRESSES = [ '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', # Приклад адреси '3EktnHQD7RiAE6uzMj2ZifT9YgRrkSgzQX' ] # Функція для отримання даних про транзакції за адресою def get_address_transactions(address): url = f"{BASE_URL}/addrs/{address}/full?token={API_KEY}" try: response = requests.get(url) response.raise_for_status() return response.json() except requests.exceptions.RequestException as e: print(f"Помилка запиту: {e}") return None # Функція для перевірки санкційних адрес def check_sanctioned_address(address): return address in SANCTIONED_ADDRESSES # Функція для аналізу транзакцій def analyze_transactions(address): data = get_address_transactions(address) if not data: return None suspicious_transactions = [] for tx in data.get('txs', []): # Аналіз обсягу транзакції (в BTC) total_btc = sum(output['value'] for output in tx.get('outputs', [])) / 1e8 if total_btc > 1: # Поріг для підозрілих транзакцій (наприклад, >1 BTC) for output in tx['outputs']: recipient = output.get('addresses', [None])[0] if recipient and check_sanctioned_address(recipient): suspicious_transactions.append({ 'tx_hash': tx['hash'], 'amount_btc': total_btc, 'recipient': recipient, 'date': tx.get('confirmed', 'N/A') }) return suspicious_transactions # Функція для збереження результатів у CSV def save_to_csv(transactions, filename='suspicious_transactions.csv'): if transactions: df = pd.DataFrame(transactions) df.to_csv(filename, index=False) print(f"Результати збережено у {filename}") else: print("Підозрілих транзакцій не виявлено") # Основна функція def main(): # Приклад адреси для аналізу target_address = '1EzwoHtiFBwYufXLDw3S3S3kB4wkyHGH6L' # Замініть на реальну адресу print(f"Аналіз адреси: {target_address}") suspicious_txs = analyze_transactions(target_address) save_to_csv(suspicious_txs) if __name__ == "__main__": main()