0

Are there online tool or repositories that can convert multiple base58 (BTC address) to base16 simultaneously?

closed as off-topic by Max Vernon, Anonymous, Andrew Chow Nov 24 '17 at 23:45

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking product or service reviews are off-topic because they tend to attract subjective, low-quality, and spam answers. On the other hand, offerings in the Bitcoin space are still evolving rapidly which often renders answers outdated quickly. For more information see this meta-discussion." – Max Vernon, Anonymous, Andrew Chow
If this question can be reworded to fit the rules in the help center, please edit the question.

  • what do you need? the address is hash160. are you looking for a tool for converting from base58 to base16 (aka hex)? – amaclin Nov 22 '17 at 7:04
  • Hello @amaclin sorry about that, I mean base58(BTC address) to ripemd160. I need a tool that can convert multiple address simultaneously. – Nael Cruz Nov 22 '17 at 8:00
  • I see you do not understand this. Can you provide an example of one pair (A,B) where A is what you have and B is what you want before asking a tool? – amaclin Nov 22 '17 at 8:25
  • Alright. A is 1CiezJhGh4YqT1gv4NuBJ9pQAXSFkSEXXG I need to find B which is 808a261b6a7b67371958523913a035274fe4c4d0 – Nael Cruz Nov 22 '17 at 8:30
  • Both A and B are hash160 outputs, which is the source of the confusion here. The only difference is the representation of the values. A is encoded as base58 and B as base16 (hex). I suggest you edit the question to reflect this. – Daniel R Nov 22 '17 at 10:18
1

In Go, you can do this very easily:

package main

import (
    "fmt"

    "github.com/btcsuite/btcutil/base58"
)

var addresses = []string{
    "1Nh7uHdvY6fNwtQtM1G5EZAFPLC33B59rB",
    "1Le1ttNd2GQ79212Epyciw39JDy2E6DYWf",
    "1LpRieyPAZfFyUSMGiZhwAarQoJw1Y8pEx",
}

func main() {
    for _, address := range addresses {
        ripemd160, _, err := base58.CheckDecode(address)
        if err != nil {
            fmt.Printf("Failed to decode address %s: %s\n", address, err)
            continue
        }

        fmt.Printf("HASH160 %x from address %s\n", ripemd160, address)
    }
}

When you have Go installed, you can run this code very easily in your terminal:

$ go get github.com/btcsuite/btcutil/base58
$ go run thefile.go
HASH160 edf10a7fac6b32e24daa5305c723f3de58db1bc8 from address 1Nh7uHdvY6fNwtQtM1G5EZAFPLC33B59rB
HASH160 d76a86f903b33835f06d7b18a1429a8f249f3ab1 from address 1Le1ttNd2GQ79212Epyciw39JDy2E6DYWf
HASH160 d96292e45d045d2269a818b96b13422555557d85 from address 1LpRieyPAZfFyUSMGiZhwAarQoJw1Y8pEx
-2
static const QByteArray convert ( const QLatin1String& buf )
{
  QByteArray ret;
  ret.resize ( 20 );
  quint8 addr [30];
  BASE58::decodeBase58 ( buf.latin1 ( ), addr, 26, true );
  memcpy ( ret.data ( ), addr + 1, 20 );
//printf ( "%s\n", ret.toHex ( ).constData ( ) );
  return ret.toHex ( );
}

Oups, sorry. This is not an answer if you are looking for online solution

  • Hello @amaclin thanks for your answer. Where can I reach you I have some ideas maybe we can collaborate . – Nael Cruz Nov 23 '17 at 7:59

Not the answer you're looking for? Browse other questions tagged or ask your own question.