Enviar um arquivo
  1. base64hub
  2. Outras bases
  3. Decodificador Base58

Decodificador Base58: Base58 para hex e texto

Cole uma string Base58 para ver os bytes dela em hex. Os 1s iniciais voltam como bytes zero, e a saída pode ser trocada para texto ou Base64 quando você precisar.

Grátis sem cadastro, sem limites Local nada é enviado Saída em hex com texto e Base64 a um clique Atualizado 27 de out. de 2026
Entrada 0Bytes 0 BSaída 0

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como decodificar Base58

  1. Cole a string em Entrada · Base58. Espaços e quebras de linha são ignorados.
  2. Leia os bytes em Saída · Hex. Abaixo da saída, você pode mudar a Caixa, acrescentar um Separador, como espaço ou :, ou quebrar o dump em 16 ou 32 Bytes por linha.
  3. Se a string não for Base58 no estilo Bitcoin, mude o Alfabeto abaixo da entrada para Flickr ou Ripple.
  4. Para outras visualizações, mude Para: Texto se os dados eram uma string, Base64 para uma API ou arquivo de configuração. O Base58 para Base64 é uma página preparada para essa conversão.
  5. Use Copiar saída, Baixar o hex ou Salvar bytes para obter os bytes decodificados como arquivo.

Para o que strings Base58 comuns decodificam

Base58Bytes (hex)O que é
1111111111111111111111111111111132 × 00System Program da Solana (chave de 32 bytes zero)
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA06ddf6e1d765…7eff00a9 (32 bytes)ID do programa SPL Token da Solana
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa00 62e907b1…ebb88f18 c29b7d93Endereço do bloco gênese do Bitcoin: versão, hash, checksum
QmQudp5N7EzTxrBk3yESEKyEroMYNd7R22G2KWffwNZyzq1220 262a86b6…e0882d8aIPFS CIDv0: cabeçalho de multihash SHA-256, digest de 32 bytes
9Ajdvzr48656c6c6fO texto Hello

Ler os bytes revela a estrutura. Um resultado de 25 bytes começando com 00 ou 05 é um endereço Bitcoin com o checksum ainda anexado, um resultado de 34 bytes começando com 1220 é um CIDv0, e 32 bytes sem estrutura visível provavelmente são uma chave pública.

Os 1s iniciais são bytes zero

No Base58, cada 1 inicial decodifica para um byte 00, e o resto da string decodifica como um único número. Este decodificador preserva esses bytes, então o endereço gênese acima retorna 25 bytes, não 24. Um decodificador que converte só o número os perde, e o primeiro sinal geralmente é uma chave com um byte a menos ou um checksum que nunca confere.

A regra vale no outro sentido também: 1111 são quatro bytes zero, enquanto 2 é o byte único 01.

Quando a decodificação falha

  • Caractere inesperado "0", "O", "I" ou "l". Esses quatro não estão no alfabeto Base58, que os deixa de fora por se parecerem com outros caracteres. O erro informa a posição; geralmente é um erro de transcrição.
  • +, / ou = inesperado. A string é Base64. Use o decodificador Base64.
  • A entrada começa com bc1. Isso é um endereço SegWit Bech32, outra codificação, com checksum e alfabeto próprios. Ela falha aqui ou decodifica para bytes sem sentido.
  • O hex está certo, mas sobram 4 bytes. Você decodificou um valor Base58Check como Base58 simples. Os últimos 4 bytes são o checksum; descarte-os ou use o Base58Check.
  • Entrada acima de 64 KB. O Base58 trata a entrada inteira como um único número, então a ferramenta para em 64 KB para continuar responsiva. Valores Base58 reais têm algumas dezenas de caracteres.

Decodificar Base58 para hex no JavaScript

O BigInt deixa a conversão curta. Funciona em navegadores e no Node.js:

const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";

function base58ToHex(s) {
  let n = 0n;
  for (const ch of s) {
    const v = ALPHABET.indexOf(ch);
    if (v < 0) throw new Error(`not Base58: ${ch}`);
    n = n * 58n + BigInt(v);
  }
  let hex = n === 0n ? "" : n.toString(16);
  if (hex.length % 2) hex = "0" + hex;
  const zeros = s.length - s.replace(/^1+/, "").length;
  return "00".repeat(zeros) + hex;
}

base58ToHex("1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa");
// '0062e907b15cbf27d5425399ebf6f0fb50ebb88f18c29b7d93'

Para mais manipulação de bytes em JavaScript, veja a página de JavaScript.

Perguntas frequentes

Como decodificar um endereço Solana?

Cole aqui: a saída em hex é a chave pública Ed25519 de 32 bytes. O endereço do System Program, 11111111111111111111111111111111, decodifica para 32 bytes zero, um jeito rápido de ver a regra dos zeros à esquerda funcionando.

Por que meu endereço Bitcoin decodifica para 25 bytes?

Um endereço legado é Base58Check: 1 byte de versão, um hash de chave pública de 20 bytes e um checksum de 4 bytes. A decodificação Base58 simples devolve os 25 bytes. O decodificador Base58Check verifica o checksum e o remove para você.

Por que o decodificador rejeita minha string?

O Base58 não tem 0, O, I nem l, então um deles geralmente indica um erro de digitação ou outra codificação. Uma string com +, / ou = é Base64, e 0x… é hex.

Como converter Base58 em hex no JavaScript?

Acumule um BigInt dígito a dígito, imprima-o com toString(16) e depois acrescente 00 para cada 1 inicial. O trecho desta página mostra a função completa.