Search content
Sort by

Showing 20 of 380 results by pbies
Post
Topic
Board Development & Technical Discussion
Re: base58encode_check to a string
by
pbies
on 24/07/2025, 23:17:23 UTC
I am getting:

Code:
AttributeError: module 'secp256k1' has no attribute 'create_burn_address'

Tried the same way you have posted here.

Steps:
1. Git clone or download this to any Folder in your pc. https://github.com/iceland2k14/secp256k1
2. cd to same folder and then run python commands or scripts you desire. That will work.

The reason for failure is that you might have another library with the same name secp256k1 from some other repo.

Yep! It works! Thank you very much!
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
pbies
on 23/07/2025, 20:28:08 UTC
with new vanity I'm getting this speed with 5090
VanitySearch v1.19 Linux with BitCrack integration
Difficulty: 1461501637330902918203684832716283019655932542976
Search: 1PWo3JeB9jrGwfHDNpdGK54CRas7fsVzXU [Compressed]
Current task START time: Wed Jul 23 17:22:14 2025
Number of CPU thread: 0
GPU: GPU #0 NVIDIA GeForce RTX 5090 (170x0 cores) Grid(1792x256)
[14.09 Gkeys/s][Total 2^34.71][00:00:02 RUN || END 00:20:41][Found 0]

Can you share link to this "new vanity"?
Post
Topic
Board Development & Technical Discussion
Re: base58encode_check to a string
by
pbies
on 23/07/2025, 15:04:57 UTC
Seems like yes, is there any python code to do that?

This library does not provide this function...

Why you said it. The library has already the wrapper defined for this purpose. You just need 2 lines of code in python3 for your purpose, nothing else.
Code:
>>> import secp256k1 as ice
>>> ice.create_burn_address('pbies', 'x')
'1pbiesxxxxxxxxxxxxxxxxxxxxxyWyYH7'

If you want to know the inside implementation of how it is done, then here is the defined function from the file secp256k1.py which is responsible.
Code:
def create_burn_address(vanity = 'iceLand', filler = 'x'):
    # create_burn_address('ADayWiLLcomeWheniceLandisGoingToSoLvebitCoinPuzzLe', 'X')
    out = []
    bs58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
    for i in vanity:
        if i not in bs58:
            return "invalid char found in vanity --> : " + i
    vanity = [vanity[i:i+25] for i in range(0,len(vanity),25)] # For longer text make many address
    for t in vanity:
        s = t.ljust(30, filler) if t[0] == '1' else ('1'+t).ljust(30, filler) + '111'
        h = address_to_h160(s)
        out.append(hash_to_address(0, True, bytes.fromhex(h)))
    if len(out) == 1: return out[0]
    else:    return out



I am getting:

Code:
AttributeError: module 'secp256k1' has no attribute 'create_burn_address'

Tried the same way you have posted here.
Post
Topic
Board Development & Technical Discussion
Re: base58encode_check to a string
by
pbies
on 22/07/2025, 20:52:11 UTC
Code:
# -*- coding: utf-8 -*-
"""

@author: iceland
"""
import secp256k1 as ice
import timeit

#==============================================================================
# For Operator Overloading Purpose. Like P + Q, Q * 20, P / 5 etc etc.
class UpubData:
    def __init__(self, data):
        if len(data) != 65:
            raise ValueError("Data must be 65 bytes")
        self.data = data
   
    def __add__(self, other):
        if not isinstance(other, UpubData):
            return NotImplemented
        return UpubData(ice.point_addition(self.data, other.data))
   
    def __sub__(self, other):
        if not isinstance(other, UpubData):
            return NotImplemented
        return UpubData(ice.point_subtraction(self.data, other.data))

    def __neg__(self):
        return UpubData(ice.point_negation(self.data))
   
    def __mul__(self, other):
        if isinstance(other, int):
            return UpubData(ice.point_multiplication(self.data, other))
        return NotImplemented

    def __rmul__(self, other):
        return self.__mul__(other)

    def __truediv__(self, other):
        if isinstance(other, int):
            return UpubData(ice.point_division(self.data, other))
        return NotImplemented
   
    def to_bytes(self):
        return self.data
   
    def __repr__(self):
        return f"UpubData({self.data})"
   
    def __str__(self):
        return f"{self.data.hex()}"

def upub(data):
    if isinstance(data, UpubData):
        return data
    return UpubData(data)
#==============================================================================
# Example. Q = (((P * 160 )-P) /77).to_bytes()

def fix_time(val):
    units = [("ms", 1e3), ("us", 1e6), ("ns", 1e9)]
    for unit, factor in units:
        if val >= 1 / factor:
            return f"{val * factor:.2f} {unit}"

def chk(mess, i, o):
    if i == o: print(f'{mess:<30} : PASS')
    else: print(f'{mess:<30} : FAIL')

def self_check():
    pvk = 42866423864328564389740932742094
    chk('P2PKH_C', ice.privatekey_to_address(0, True, pvk), '1EAKqa4DbqnxJ9uLUFrXTMSPd2k3fHzWgr')
    chk('P2PKH_U', ice.privatekey_to_address(0, False, pvk), '1SXCEWFyUp6q4x92iR6JANNDAu87MNmSz')
    chk('P2SH', ice.privatekey_to_address(1, True, pvk), '3BDxuSY3g7SM2Zg3k6pkYxCgvk2JbcCx3M')
    chk('Bech32', ice.privatekey_to_address(2, True, pvk), 'bc1qjpw34q9px0eaqmnut2vfxndkthlh5qs9gt969u')
   
    pvk = 33604
    P = ice.scalar_multiplication(pvk)
    chk('Scalar_Multiplication', P.hex(), '0488de60bd8c187071fc486979f2c9696c3602c562fbba6922993ff665eae81b4f8adf94f4e2a50b05fe35aee42c146f6415e5cf524b6b1b5a8d17de8b741a5a21')
    chk('Point Negation', ice.point_negation(P).hex(), '0488de60bd8c187071fc486979f2c9696c3602c562fbba6922993ff665eae81b4f75206b0b1d5af4fa01ca511bd3eb909bea1a30adb494e4a572e821738be5a20e')
    chk('Point Doubling', ice.point_doubling(P).hex(), '04484200af427941631f87f4ca153635156ceb0306e7033874e06a784088be5e3563868c14b34af7bc6206bcdbd63dee7a7825e595f8c45b07746e1b87da3091fc')
    chk('Point Multiplication', ice.point_multiplication(P, 7).hex(), '048ea2016371a8e644f84252993527896b4c4d024a3e4e6c18246eb71b9c10363375be5a09dd9eaa819cdd50710309b5cc854aa910822be36cb28f88511132e4ce')
    print('[8/8] All check Passed...')

def op_check():
    pvk = 0x437af32d9e723fb9cd0
    Q = upub(ice.scalar_multiplication(pvk))
    G = upub(ice.scalar_multiplication(1))
    R = Q * 25 - G * 8
    chk('Operator Check', R.to_bytes(), ice.scalar_multiplication(0x69701bf7479283925048))
   
def speed_check(mess, setup_code, test_code):
    timer = timeit.Timer(stmt=test_code, setup=setup_code)
    number, _ = timer.autorange()
    execution_times = timer.repeat(repeat=5, number=number)
    best_time = min(execution_times)
    time_per_loop = fix_time(best_time / number)
    print(f"{mess:<30} : {number} loops, best of 5: {time_per_loop} per loop")

#==============================================================================
setup_code = """import secp256k1 as ice; pvk = 0xf5ef7150682150f4ce2c6f4807b349827dcdbd
P = ice.scalar_multiplication(pvk)"""

test_code = """
ice.point_sequential_increment(3500000, P)
"""

self_check()
op_check()
speed_check("Point Sequential Increment", setup_code, test_code)
speed_check("Point Addition", setup_code, """ice.point_addition(P, P)""")

Source: https://github.com/iceland2k14/secp256k1/blob/main/benchmark.py


And how it is supposed to answer the question?
Post
Topic
Board Development & Technical Discussion
Topic OP
Give Electrum CLI password
by
pbies
on 22/07/2025, 15:39:43 UTC
I have the below script for getting all private keys from Electrum wallets:

Code:
#!/usr/bin/env bash

for file in *;
do
    electrum -w "./$file" listaddresses --offline | electrum getprivatekeys - --password one_password_for_all_wallets -w "./$file" --offline 2> /dev/null | jq -r ".[]"
done

How to provide Electrum CLI the password, because he asks for it for each wallet?
Post
Topic
Board Development & Technical Discussion
Re: base58encode_check to a string
by
pbies
on 22/07/2025, 14:06:55 UTC
can I create a valid address (without private key and public key) with a specific string?
I mean python 3 here and maybe some brute-force method?

I think you are simply looking for something like this.

Code:
import secp256k1 as ice
ice.create_burn_address('ADayWiLLcomeWheniceLandisGoingToSoLvebitCoinPuzzLe', 'X')

Result :
Code:
['1ADayWiLLcomeWheniceLandisXXVF7Q3', '1GoingToSoLvebitCoinPuzzLeXXxuijG']

If the String is bigger you will get a list of address output. Otherwise it will be just 1 address. Example
Code:
ice.create_burn_address('iceLandxxxxxxBTC', 'Z')
'1iceLandxxxxxxBTCZZZZZZZZZZae8Au3'

Is that what you want ?

Seems like yes, is there any python code to do that?
Post
Topic
Board Development & Technical Discussion
Re: base58encode_check to a string
by
pbies
on 21/07/2025, 20:24:25 UTC
...

The best you can do is an address like 1BitcoinEaterAddressDontSendf59kuE.

...

Yes, that is what I want to do. My own string in address. I don't need pvk nor pubkey.

Let's say I have "MyString" and I need to see it in address. Starting characters and ending can be any.
So, for example, I base58decode_check("MyStringChecksum"), I am getting bytes, add some at the end for proper length and checksum, and at the end base58encode_check the bytes giving me what I want.

I just don't know how to code that (mostly in Python 3).
Post
Topic
Board Development & Technical Discussion
Re: base58encode_check to a string
by
pbies
on 21/07/2025, 12:43:26 UTC
3. Convert your string to bytes and pad it with zeros until it is 160 bits (20 bytes)
4. Encode the result using Base58check (feed the 160-bit result to the encoder as if you are feeding the RIPEMD160 hash of a public key, it should add the address version byte to it and compute and append the checksum as well)

I need the result address to have the string, not the bytes before base58check encoding.
Post
Topic
Board Development & Technical Discussion
Topic OP
base58encode_check to a string
by
pbies
on 20/07/2025, 23:27:10 UTC
Beside vanity address search,

can I create a valid address (without private key and public key) with a specific string?

I want to put everlasting address into blockchain by moving there some dust.

I mean python 3 here and maybe some brute-force method?
Post
Topic
Board Development & Technical Discussion
Re: walletnotify parameters
by
pbies
on 02/07/2025, 18:22:55 UTC
Solved:

%s = tx id
%b = "unconfirmed"
%h = amount
%w = wallet name
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
pbies
on 27/06/2025, 08:52:30 UTC
...

"Whoever signs first is the owner" - this is so freaking wrong. So this means that all the Satoshi mined addresses are freebies, right? They don't belong to anyone? No, they belong to Satoshi, he did the effort to mine them. Exactly the same thing in this puzzle: the coins belong to the creator.

...

If someone would share the sha256 of private key which was in bytes or hex, then make the tx and the tx was replaced - he could prove that he had pvk.

One is that sha of pvk shouldn't be well known, this is reason why you need it to be unknown totally.

Second if he would share the sha before making the tx - he is the owner of laying funds.

You can't attack both.
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
pbies
on 19/06/2025, 17:59:34 UTC
For old wallets (2009-2017) there is not much to do beside having "performance counter data" which can lead to guessing private keys.

If you have this old perfdata you can generate old private keys and take the balance.

Seems like the only way to steal funds from these old addresses.
Post
Topic
Board Marketplace
Re: Don't buy "wallet.dat" files with lost passwords. EXCHANGE THEM!
by
pbies
on 17/06/2025, 12:50:03 UTC
How do you recognize a fake wallet.dat file?

What should you look for in the HEX editor, or are there other tools?

There is no effective way to tell 100% sure.

If you open the wallet in Bitcoin Core and sync+rescan blockchain with this wallet, then try to change the password and give the proper one - real wallet will change the password correctly, fake wallet will crash Core.
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
pbies
on 15/06/2025, 03:01:58 UTC
Good evening,

I just added an AVX512 version of KeyQuest V1.3 available at https://github.com/Benjade/KeyQuest promising higher speed. Available only on Linux or via WSL.

Best regards

I am getting 134.14 Mkeys/s with 28 threads on AMD Ryzen 9 9950X.
Post
Topic
Board Marketplace
Re: Don't buy "wallet.dat" files with lost passwords. EXCHANGE THEM!
by
pbies
on 19/05/2025, 17:04:48 UTC

...


I have this wallet in few versions. I share 20% for you, 80% for me if you give me the password.

No bargain possible.

Don't annoy me anyhow.
Post
Topic
Board Beginners & Help
Re: Discussion! Don't BUY FAKE! "wallet.dat" files with lost passwords.
by
pbies
on 18/05/2025, 21:16:14 UTC
There are new wallets available here to buy:

https://ntngld.com/
Post
Topic
Board Announcements (Altcoins)
Re: [ANN] LiteBar (LTB) - Reborn
by
pbies
on 15/05/2025, 03:23:52 UTC
My messages on Discord had been removed, I don't know why.

So I will write here:

I found LiteBar .svg files inside some wallet.dat files. The svg can be seen in MS Edge as bar with "8kB" text and a huge decimal integer number.

Isn't that sth that could be redeemed? Is the number some kind of private key for LTB?
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
pbies
on 13/05/2025, 16:32:02 UTC
How to edit VanitySearch by JLP to search in puzzle 71 space (not from 1)?

Anybody gone into c/c++ in this project?

Try JLP VanitySearch forked by @allinbit and @Ilker, starting from ranges what you want.
https://github.com/ilkerccom/VanitySearch
I tested it with puzzle 57, give wrong private key generated:
Code:
VanitySearch v1.16 Linux with BitCrack integration
[keyspace] start=                                                 1EB25C907000000
[keyspace]   end=                                                 1EB25C90795DFFF
Difficulty: 1461501637330902918203684832716283019655932542976
Search: 15c9mPGLku1HuW9LRtBf4jcHVpBUt8txKz [Compressed]
Current task START time: Mon May 12 16:13:57 2025
Number of CPU thread: 0
GPU: GPU #0 NVIDIA GeForce RTX 2050 (16x128 cores) Grid(2048x256)
 
Warning, wrong private key generated !
  Addr :15c9mPGLku1HuW9LRtBf4jcHVpBUunRoQS
  Check:1MH9K9aeZNBvLoyRzk2pwfMwygM5hMjwgZ
  Endo:0 incr:540 comp:1
[EXIT] Range research completed (2^36.55) [00:01:06 RUN || END ...finishing][0] 
Current task END time: Mon May 12 16:15:05 2025

I had no problem with other puzzle - it was found properly,
however the output file is not written, if pvk from console will disappear then it will be not written to the file.
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
pbies
on 12/05/2025, 17:30:04 UTC
How to edit VanitySearch by JLP to search in puzzle 71 space (not from 1)?

Anybody gone into c/c++ in this project?

Try JLP VanitySearch forked by @allinbit and @Ilker, starting from ranges what you want.
https://github.com/ilkerccom/VanitySearch

It hangs when given keyspace option.

There was need to modify the code. Works fine now.

No need modify, just change some line on makefile to matching with GPU type and CUDA version.


No, there are obvious bugs in the code, like using scanf istead of sscanf.
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
pbies
on 12/05/2025, 15:00:29 UTC
How to edit VanitySearch by JLP to search in puzzle 71 space (not from 1)?

Anybody gone into c/c++ in this project?

Try JLP VanitySearch forked by @allinbit and @Ilker, starting from ranges what you want.
https://github.com/ilkerccom/VanitySearch

It hangs when given keyspace option.

There was need to modify the code. Works fine now.