Next scheduled rescrape ... never
Version 1
Last scraped
Edited on 22/04/2025, 16:52:04 UTC
What if I have a real WIF that's missing, say, the last 12 characters ?  Tongue

change in WIFRoulette.cpp to be:
Code:
using namespace std;

#define ROOT_LENGTH 12

alignas(64) const char BASE58[] = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";

const char WIF_START[] = "KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qd7sDG4F";

class Timer {

remove "static const char VALID_PREFIXES[][3]" , static constexpr size_t NUM_PREFIXES and  "void generate_valid_prefix" from script.

change "void init_batch(WIFBatch& batch, int batch_size)" to:
Code:
void init_batch(WIFBatch& batch, int batch_size) {
    thread_local Xoshiro256plus rng([]() {
        static atomic<uint64_t> global_seed(chrono::steady_clock::now().time_since_epoch().count());
        uint64_t seed_value = global_seed.load();
        global_seed.store(seed_value + 1);
        return Xoshiro256plus(seed_value);
    }());
    char random_root[ROOT_LENGTH + 1];
    for (int b = 0; b < batch_size; ++b) {
        generate_random_root(random_root, ROOT_LENGTH, rng);
        memcpy(batch.wifs[b], WIF_START, strlen(WIF_START));
        memcpy(batch.wifs[b] + strlen(WIF_START), random_root, ROOT_LENGTH + 1);
        memset(batch.extended_WIFs[b], 0, 64);
        batch.extended_WIFs[b][0] = 0x80;
        batch.extended_WIFs[b][33] = 0x01;
    }
}

Change target adress in WIFRoulette.py to:
1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ

Code:
[2025-04-22 08:20:16] [I] WIF Roulette
[2025-04-22 08:25:34] [W] KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qd7sDG4F2sdMtzNe8y2U
[2025-04-22 08:25:35] [I] 1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ | Balance: 0 BTC
[2025-04-22 08:25:35] [I] 1G1PszAzdLZWgGNG79pijNrt6BuK5HsVo8 | Balance: 0 BTC
[2025-04-22 08:25:36] [I] Partial match found (Compressed): 1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ
[2025-04-22 08:25:36] [I] PRIVATE KEY FOUND!!!
[2025-04-22 08:25:37] Compressed Bitcoin Address: 1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ
[2025-04-22 08:25:37] Uncompressed Bitcoin Address: 1G1PszAzdLZWgGNG79pijNrt6BuK5HsVo8
[2025-04-22 08:25:37] Private key (hex): 00000000000000000000000000000000000000000000000bebb3940cd0fc1491
[2025-04-22 08:25:38] Private key (decimal): 219898266213316039825
[2025-04-22 08:25:38] [I] Private key saved to found_key.txt
PRIVATE KEY FOUND!     
[2025-04-22 08:25:39] [I] Script execution ended

Original archived Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
Scraped on 22/04/2025, 16:21:50 UTC
What if I have a real WIF that's missing, say, the last 12 characters ?  Tongue

change in WIFRoulette.cpp to be:
Code:
using namespace std;

#define ROOT_LENGTH 12

alignas(64) const char BASE58[] = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";

const char WIF_START[] = "KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qd7sDG4F";

class Timer {

remove "static const char VALID_PREFIXES[][3]" , static constexpr size_t NUM_PREFIXES and  "void generate_valid_prefix" from script.

change "void init_batch(WIFBatch& batch, int batch_size)" to:
Code:
void init_batch(WIFBatch& batch, int batch_size) {
    thread_local Xoshiro256plus rng([]() {
        static atomic<uint64_t> global_seed(chrono::steady_clock::now().time_since_epoch().count());
        uint64_t seed_value = global_seed.load();
        global_seed.store(seed_value + 1);
        return Xoshiro256plus(seed_value);
    }());
    char random_root[ROOT_LENGTH + 1];
    for (int b = 0; b < batch_size; ++b) {
        generate_random_root(random_root, ROOT_LENGTH, rng);
        memcpy(batch.wifs[b], WIF_START, strlen(WIF_START));
        memcpy(batch.wifs[b] + strlen(WIF_START), random_root, ROOT_LENGTH + 1);
        memset(batch.extended_WIFs[b], 0, 64);
        batch.extended_WIFs[b][0] = 0x80;
        batch.extended_WIFs[b][33] = 0x01;
    }
}

Change target adress in WIFRoulette.py to:
1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ