├── requirements.txt ├── proxies.txt ├── README.md └── main.py /requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | colorama 3 | names 4 | -------------------------------------------------------------------------------- /proxies.txt: -------------------------------------------------------------------------------- 1 | JUST EXAMPLE, DELETE THIS ALL 2 | http://127.0.0.1:8080 3 | http://user:pass@127.0.0.1:8080 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # KardPay Autoreferral [ PROGRAM ENDED ] 2 | KardPay Autoreferral script with autogenerated credentials and using proxies. [ PROGRAM ENDED ] 3 | ## Tools and components required 4 | 1. Download APP: [KardPay](https://www.kardpay.app/store) 5 | 2. Register using Google Account, Then insert code: ``H2W9I6`` 6 | 3. Proxies 7 | 4. VPS or RDP (OPTIONAL) 8 | 5. Python version 3.10 or Latest 9 | ### Buy Proxies 10 | - Free Proxies Static Residental: 11 | 1. [WebShare](https://www.webshare.io/?referral_code=p7k7whpdu2jg) 12 | 2. [ProxyScrape](https://proxyscrape.com/?ref=odk1mmj) 13 | 3. [MonoSans](https://github.com/monosans/proxy-list) 14 | - Paid Premium Static Residental: 15 | 1. [922proxy](https://www.922proxy.com/register?inviter_code=d03d4fed) 16 | 2. [Proxy-Cheap](https://app.proxy-cheap.com/r/JysUiH) 17 | 3. [Infatica](https://dashboard.infatica.io/aff.php?aff=544) 18 | ## Installation 19 | - Install Python For Windows: [Python](https://www.python.org/ftp/python/3.13.0/python-3.13.0-amd64.exe) 20 | - For Unix: 21 | ```bash 22 | apt install python3 python3-pip git -y 23 | ``` 24 | - For Termux: 25 | ```bash 26 | pkg install python python-pip git -y 27 | ``` 28 | - Download script [Manually](https://github.com/im-hanzou/kardpay-autoref/archive/refs/heads/main.zip) or use git: 29 | ```bash 30 | git clone https://github.com/im-hanzou/kardpay-autoref 31 | ``` 32 | - Make sure you already in bot folder: 33 | ```bash 34 | cd kardpay-autoref 35 | ``` 36 | - Install requirements, Windows and Termux: 37 | ```bash 38 | pip install -r requirements.txt 39 | ``` 40 | - Unix: 41 | ```bash 42 | pip3 install -r requirements.txt 43 | ``` 44 | ## Run the Bot 45 | - Replace the proxies ```proxies.txt``` to your own proxies, with the format example is like: 46 | ```bash 47 | http://127.0.0.1:8080 48 | http://user:pass@127.0.0.1:8080 49 | ``` 50 | >Only http proxies supported for now 51 | - Windows and Termux: 52 | ```bash 53 | python main.py 54 | ``` 55 | - Unix: 56 | ```bash 57 | python3 main.py 58 | ``` 59 | - Then insert your referral code 60 | # Notes 61 | - Run this bot, use my referrer code if you don't have one. 62 | - You can just run this bot at your own risk, I'm not responsible for any loss or damage caused by this bot. 63 | - This bot is for educational purposes only. 64 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import json 3 | import random 4 | import time 5 | import string 6 | import names 7 | from colorama import Fore, Style, init 8 | from datetime import datetime 9 | 10 | init(autoreset=True) 11 | 12 | header = { 13 | 'User-Agent': "okhttp/4.9.2 (Linux; Android 14; Pixel 8 Pro Build/UQ1A.240105.004)", 14 | 'Connection': "keep-alive", 15 | 'Accept': "application/json, text/plain, */*", 16 | 'Accept-Encoding': "gzip, deflate, br", 17 | 'Content-Type': "application/json; charset=UTF-8", 18 | 'Cache-Control': "no-cache", 19 | 'Pragma': "no-cache" 20 | } 21 | 22 | def get_log_prefix(account_num=None, total=None): 23 | timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S') 24 | if account_num is not None and total is not None: 25 | return f"[{Fore.LIGHTBLUE_EX}{timestamp}{Style.RESET_ALL}] [{Fore.LIGHTCYAN_EX}{account_num}/{total}{Style.RESET_ALL}]" 26 | return f"[{Fore.LIGHTBLUE_EX}{timestamp}{Style.RESET_ALL}]" 27 | 28 | def get_random_proxy(proxies): 29 | if not proxies: 30 | return None 31 | return random.choice(proxies) 32 | 33 | def load_proxies(file_path): 34 | try: 35 | with open(file_path, 'r') as file: 36 | proxies = [line.strip() for line in file if line.strip()] 37 | print(f"{Fore.LIGHTGREEN_EX}Loaded {len(proxies)} proxies{Style.RESET_ALL}") 38 | return proxies 39 | except FileNotFoundError: 40 | print(f"{Fore.LIGHTRED_EX}No proxy file found, running without proxies{Style.RESET_ALL}") 41 | return [] 42 | except Exception as e: 43 | print(f"{Fore.LIGHTRED_EX}Error loading proxies: {str(e)}{Style.RESET_ALL}") 44 | return [] 45 | 46 | def generate_keyword(): 47 | vowels = 'aeiou' 48 | consonants = ''.join(set(string.ascii_lowercase) - set(vowels)) 49 | return random.choice(consonants) + random.choice(vowels) 50 | 51 | def get_random_domain(proxy_dict): 52 | keyword = generate_keyword() 53 | #url = f"https://emailfake.com/search.php?key={keyword}" 54 | url = f"https://generator.email/search.php?key={keyword}" 55 | 56 | try: 57 | resp = requests.get(url, proxies=proxy_dict, timeout=60) 58 | resp.raise_for_status() 59 | domains = resp.json() 60 | return random.choice(domains) if domains else None 61 | except Exception as e: 62 | print(f"{get_log_prefix()} {Fore.LIGHTRED_EX}Error fetching domain: {str(e)}{Style.RESET_ALL}") 63 | return None 64 | 65 | def generate_username(): 66 | first_name = names.get_first_name().lower() 67 | last_name = names.get_last_name().lower() 68 | separator = random.choice(['', '.']) 69 | random_numbers = ''.join(random.choices(string.digits, k=3)) 70 | return f"{first_name}{separator}{last_name}{random_numbers}" 71 | 72 | def generate_password(): 73 | word = ''.join(random.choices(string.ascii_letters, k=5)) 74 | numbers = ''.join(random.choices(string.digits, k=3)) 75 | return f"{word.capitalize()}@{numbers}#" 76 | 77 | def generate_email(proxy_dict): 78 | domain = get_random_domain(proxy_dict) 79 | if not domain: 80 | return None 81 | username = generate_username() 82 | return f"{username}@{domain}" 83 | 84 | def save_account(email, password, account_num, total): 85 | with open('accounts.txt', 'a') as f: 86 | f.write(f"{email}|{password}\n") 87 | print(f"{get_log_prefix(account_num, total)} {Fore.LIGHTMAGENTA_EX}Complete! Account saved to accounts.txt{Style.RESET_ALL}") 88 | 89 | def send_otp(email, password, proxy_dict, account_num, total): 90 | url = "https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser" 91 | params = { 92 | 'key': "AIzaSyDmqZpkteihdMSDV5-VkNjgGBeLbFjGRCg" 93 | } 94 | payload = { 95 | "email": email, 96 | "password": password, 97 | "clientType": "CLIENT_TYPE_ANDROID" 98 | } 99 | 100 | headers = dict(header) 101 | 102 | try: 103 | response = requests.post(url, params=params, json=payload, 104 | headers=headers, proxies=proxy_dict, timeout=60) 105 | result = response.json() 106 | 107 | if response.status_code == 200: 108 | print(f"{get_log_prefix(account_num, total)} {Fore.LIGHTGREEN_EX}Success Register{Style.RESET_ALL}") 109 | return result 110 | else: 111 | print(f"{get_log_prefix(account_num, total)} {Fore.LIGHTRED_EX}Register failed: {result}{Style.RESET_ALL}") 112 | return None 113 | except requests.RequestException as e: 114 | print(f"{get_log_prefix(account_num, total)} {Fore.LIGHTRED_EX}Request error: {str(e)}{Style.RESET_ALL}") 115 | return None 116 | 117 | def login(id_token, proxy_dict, account_num, total): 118 | url = "https://api.kardpay.app/waitinglist/users/user/login" 119 | headers = dict(header) 120 | headers['Authorization'] = f"Bearer {id_token}" 121 | 122 | try: 123 | response = requests.post(url, headers=headers, proxies=proxy_dict, timeout=60) 124 | response.raise_for_status() 125 | print(f"{get_log_prefix(account_num, total)} {Fore.LIGHTGREEN_EX}Success Login{Style.RESET_ALL}") 126 | return response.json() 127 | except requests.exceptions.RequestException as e: 128 | print(f"{get_log_prefix(account_num, total)} {Fore.LIGHTRED_EX}Login error: {str(e)}{Style.RESET_ALL}") 129 | return None 130 | 131 | def set_reff(referral_code, token, proxy_dict, account_num, total): 132 | url = "https://api.kardpay.app/waitinglist/users/user/sponsor" 133 | payload = {"referralCode": referral_code} 134 | headers = dict(header) 135 | headers['Authorization'] = f"Bearer {token}" 136 | 137 | try: 138 | response = requests.post(url, headers=headers, json=payload, proxies=proxy_dict, timeout=60) 139 | if response.status_code == 200: 140 | print(f"{get_log_prefix(account_num, total)} {Fore.LIGHTGREEN_EX}Success Referral{Style.RESET_ALL}") 141 | return True 142 | else: 143 | print(f"{get_log_prefix(account_num, total)} {Fore.LIGHTRED_EX}Failed to referral: {response.text}{Style.RESET_ALL}") 144 | return False 145 | except requests.exceptions.RequestException as e: 146 | print(f"{get_log_prefix(account_num, total)} {Fore.LIGHTRED_EX}Referral error: {str(e)}{Style.RESET_ALL}") 147 | return False 148 | 149 | def print_banner(): 150 | banner = f""" 151 | {Fore.LIGHTCYAN_EX}╔═══════════════════════════════════════════╗ 152 | ║ KardPay Autoreferral ║ 153 | ║ https://github.com/im-hanzou ║ 154 | ╚═══════════════════════════════════════════╝{Style.RESET_ALL} 155 | """ 156 | print(banner) 157 | 158 | def process_single_registration(proxies, referral_code, account_num, total_referrals): 159 | proxy = get_random_proxy(proxies) 160 | proxy_dict = {"http": proxy, "https": proxy} if proxy else None 161 | 162 | while True: 163 | email = generate_email(proxy_dict) 164 | if not email: 165 | print(f"{get_log_prefix(account_num, total_referrals)} {Fore.LIGHTRED_EX}Failed to generate email. Retrying...{Style.RESET_ALL}") 166 | time.sleep(2) 167 | continue 168 | 169 | password = generate_password() 170 | print(f"{get_log_prefix(account_num, total_referrals)} {Fore.LIGHTYELLOW_EX}Email: {email}{Style.RESET_ALL}") 171 | print(f"{get_log_prefix(account_num, total_referrals)} {Fore.LIGHTYELLOW_EX}Password: {password}{Style.RESET_ALL}") 172 | 173 | otp_result = send_otp(email, password, proxy_dict, account_num, total_referrals) 174 | if not otp_result: 175 | time.sleep(2) 176 | continue 177 | 178 | id_token = otp_result.get("idToken") 179 | if not id_token: 180 | print(f"{get_log_prefix(account_num, total_referrals)} {Fore.LIGHTRED_EX}No ID token received{Style.RESET_ALL}") 181 | time.sleep(2) 182 | continue 183 | 184 | login_result = login(id_token, proxy_dict, account_num, total_referrals) 185 | if not login_result: 186 | time.sleep(2) 187 | continue 188 | 189 | if referral_code.strip(): 190 | if not set_reff(referral_code, id_token, proxy_dict, account_num, total_referrals): 191 | time.sleep(2) 192 | continue 193 | 194 | save_account(email, password, account_num, total_referrals) 195 | return True 196 | 197 | def main(): 198 | print_banner() 199 | print(f"{Fore.LIGHTCYAN_EX}Use this script at your own risk!{Style.RESET_ALL}") 200 | proxies = load_proxies('proxies.txt') 201 | 202 | referral_code = "" 203 | while not referral_code.strip(): 204 | referral_code = input(f"{Fore.LIGHTCYAN_EX}Enter referral code: {Style.RESET_ALL}") 205 | if not referral_code.strip(): 206 | print(f"{Fore.LIGHTRED_EX}Referral code is required! Please enter a valid code.{Style.RESET_ALL}") 207 | 208 | total_referrals = 0 209 | while total_referrals <= 0: 210 | try: 211 | total_referrals = int(input(f"{Fore.LIGHTCYAN_EX}Enter total referrals: {Style.RESET_ALL}")) 212 | if total_referrals <= 0: 213 | print(f"{Fore.LIGHTRED_EX}Please enter a positive number!{Style.RESET_ALL}") 214 | except ValueError: 215 | print(f"{Fore.LIGHTRED_EX}Please enter a valid number!{Style.RESET_ALL}") 216 | 217 | print(f"\n") 218 | 219 | attempt_count = 0 220 | current_account = 1 221 | 222 | while current_account <= total_referrals: 223 | attempt_count += 1 224 | print(f"{get_log_prefix(current_account, total_referrals)} {Fore.LIGHTCYAN_EX}{'='*50}{Style.RESET_ALL}") 225 | 226 | if process_single_registration(proxies, referral_code, current_account, total_referrals): 227 | current_account += 1 228 | 229 | time.sleep(5) 230 | 231 | print(f"\n{get_log_prefix()} {Fore.LIGHTGREEN_EX}All {total_referrals} referrals completed successfully!{Style.RESET_ALL}") 232 | 233 | if __name__ == "__main__": 234 | try: 235 | main() 236 | except KeyboardInterrupt: 237 | print(f"\n{get_log_prefix()} {Fore.LIGHTYELLOW_EX}Program terminated by user{Style.RESET_ALL}") 238 | except Exception as e: 239 | print(f"{get_log_prefix()} {Fore.LIGHTRED_EX}Unexpected error: {str(e)}{Style.RESET_ALL}") 240 | --------------------------------------------------------------------------------