Conversor de Endereço SS58 Polkadot: Chave Pública ↔ Qualquer Prefixo

Cole um endereço Polkadot 1…, Kusama C…–J… ou genérico 5… e obtenha a chave pública da conta mais a sua grafia em todas as principais redes Substrate. Ou cole uma chave pública 0x para codificá-la.

Polkadot (1…), Kusama (C… a J…), Substrate genérico (5…) e outros prefixos SS58, ou uma chave pública / ID de conta hex de 32 bytes. Somente chaves públicas; nunca cole uma frase de recuperação em lugar nenhum.

Verificado no seu navegador com JavaScript. Os endereços nunca são enviados nem armazenados.

O que é um endereço SS58?

SS58 é o formato de endereço da Polkadot, da Kusama e de toda cadeia baseada em Substrate: um prefixo de rede, a chave pública de 32 bytes (ID da conta) e um checksum de 2 bytes, codificados em Base58. O formato está documentado na wiki da Polkadot e os prefixos são atribuídos no registro SS58. Um conversor de endereço SS58 decodifica a string, verifica o checksum, extrai a chave pública e a recodifica para outros prefixos.

Como funciona a codificação SS58

  1. Bytes de prefixo. Prefixos de 0 a 63 ocupam um byte. Prefixos maiores (até 16383) ocupam dois bytes em forma compactada: o primeiro byte guarda os bits 2–7 do prefixo mais um marcador 0b01, o segundo guarda os bits 8–13 e os bits 0–1.
  2. Checksum. O BLAKE2b-512 é calculado sobre SS58PRE + bytes de prefixo + chave pública, e os dois primeiros bytes do digest são acrescentados.
  3. Base58. O buffer inteiro (1 ou 2 + 32 + 2 bytes) é codificado em Base58 com o alfabeto do Bitcoin. O prefixo 0 sempre gera um endereço que começa com 1, o prefixo 2 com uma letra maiúscula de C a J, o prefixo 42 com 5.

Exemplo prático

A conhecida conta de desenvolvimento Alice tem a chave pública 0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d. Com o prefixo 0 ela é codificada como 15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5 (Polkadot), com o prefixo 2 como HNZata7iMYWmk5RvZRTiAsSDhV8366zq2YGb3tLH5Upf74F (Kusama) e com o prefixo 42 como 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY (Substrate genérico). Cole qualquer um deles acima para ver os três, e mais catorze.

Prefixos e primeiros caracteres

PrefixoRedeEndereço começa comPrefixoRedeEndereço começa com
0Polkadot136Centrifuge4
2KusamaC, D, E, F, G, H, J38KILT4
5AstarV, W, X, Y, Z, a, b42Substrate (genérico)5
6Bifrostb, c, d, e, f, g, h63Hydration7
7Edgewareh, i, j, k, m, n, o73ZeitgeistdD, dE
8Karurao, p, q, r, s, t, u2032Interlaywd
10Acala2, z2092Kintsugia3
12Polymesh210041BasiliskbX
30Phala3, 4

Os caracteres iniciais são um efeito colateral do Base58 e do valor do prefixo; são uma dica visual rápida, não uma garantia. Confie sempre no prefixo decodificado que a ferramenta mostra.

Por que o checksum importa

O Base58 não tem detecção de erros embutida, então o SS58 adiciona um checksum BLAKE2b de dois bytes que pega qualquer caractere digitado errado e a grande maioria dos erros de vários caracteres. Na prática não existe carteira ou exchange que aceite um endereço com checksum inválido; esta ferramenta também o recusa e informa que o checksum falhou, em vez de adivinhar. Note que o checksum inclui o prefixo, e é por isso que um endereço Kusama é rejeitado como endereço Polkadot inválido mesmo que a chave dentro dele seja a mesma: quem envia precisa recodificá-lo, não redigitá-lo.

Usos típicos

Somente chaves públicas e endereços: esta página nunca pede uma frase de recuperação ou chave privada, e nada do que você cola sai do seu navegador. Para outros formatos, veja o validador de endereço cripto.

Perguntas frequentes

Por que a mesma conta tem endereços diferentes na Polkadot e na Kusama?

O SS58 prefixa a chave pública de 32 bytes com um identificador de rede antes de codificar: 0 para Polkadot, 2 para Kusama, 42 para Substrate genérico. A chave é idêntica; a string do endereço muda porque o prefixo e o checksum mudam. Os fundos em cada cadeia são rastreados pela chave, então converter o endereço nunca move nada.

Como o checksum SS58 é calculado?

O checksum são os dois primeiros bytes do BLAKE2b-512 sobre a string ASCII SS58PRE seguida do(s) byte(s) de prefixo e da chave pública. Esta página implementa o BLAKE2b em JavaScript e o confere contra o vetor de teste da RFC 7693 antes de usá-lo.

O que é a chave pública 0x?

A chave pública sr25519 ou ed25519 de 32 bytes, também chamada de ID da conta. O Polkadot.js a mostra como ID da conta em hex, e é o que você precisa para derivação de multisig, configuração de proxy e a maioria das chamadas RPC. É informação pública e pode ser compartilhada com segurança; a frase de recuperação, não.

Quais prefixos estão incluídos?

Polkadot (0), Kusama (2), Astar (5), Bifrost (6), Edgeware (7), Karura (8), Acala (10), Polymesh (12), Phala (30), Centrifuge (36), KILT (38), Substrate genérico (42), Hydration (63), Zeitgeist (73), Interlay (2032), Kintsugi (2092) e Basilisk (10041), retirados do registro SS58. Um endereço com outro prefixo é decodificado e mostrado sob o seu próprio prefixo.

Posso converter um endereço Moonbeam?

Não. Moonbeam e Moonriver usam contas H160 de 20 bytes no estilo Ethereum, escritas como endereços 0x, não chaves de 32 bytes, então não têm forma SS58 no sentido usual. A ferramenta explica isso se você colar um.

O conversor precisa da minha frase de recuperação?

Nunca. Ele trabalha a partir da chave pública, que está embutida em todo endereço. Nenhum site ou ferramenta precisa de uma frase de recuperação para converter, validar ou exibir um endereço.