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

  • 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

In Go, you can do this very easily:

package main

import (


var addresses = []string{

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)

        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
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.