Ir para o conteúdo principal
OpenQRS
Ferramentas
Idioma atual: Português
100% Privado

Gerador de QR Code para carteira cripto

100% privado e local — seus dados nunca saem do navegador. Estes QR Codes são permanentes e nunca expiram.

Configurações de Carteira cripto

Define o esquema da URI e como o valor é escrito. Um endereço enviado na rede errada costuma ser irrecuperável.

Cole-o da tela de recebimento da sua carteira. Digitá-lo à mão é como os endereços saem errados.

Paste the Bitcoin receiving address from your wallet's receive screen.

Opcional, em moedas inteiras — BTC, ETH, SOL, LTC ou DOGE. Use ponto, sem separador de milhar e sem símbolo de moeda.

Um nome curto para quem recebe. As carteiras que oferecem suporte mostram isso ao lado do endereço.

Uma nota exibida ao pagador. É apenas texto de exibição e não é gravada na transação.

Design

Forma dos módulos
Predefinições
Moldura do canto
Adicionar logo central
Escolha uma imagem, ou solte uma aquiPNG, JPEG, WebP ou GIF, até 1000 KB

A imagem é lida nesta página e embutida no código como URL data:. Ela não é enviada a lugar nenhum e permanece dentro do arquivo que você baixa.

Mais opções de design

A metade escura do código. Mantenha-a bem abaixo do fundo em luminosidade.

Cobre a zona silenciosa e também os vãos entre os módulos. Um fundo transparente o deixa fora do arquivo, então nada é desenhado com ele.

Contraste 11.5:1 entre os módulos e o fundo.

Predefinições

PNG e WebP mantêm um canal alfa; o SVG simplesmente omite o retângulo de fundo. Aquilo sobre o que o código for colocado vira a metade clara do contraste.

Gradiente

O gradiente preenche apenas os módulos escuros. A ponta mais clara define o contraste que o leitor realmente recebe, então as duas pontas precisam continuar escuras.

A segunda cor, usada apenas enquanto um gradiente está selecionado. Ela é medida no contraste junto com a primeira.

45°

Graus no sentido horário a partir de uma varredura da esquerda para a direita. Um gradiente radial se espalha do centro para fora, então o ângulo vale só para o linear.

Forma dos módulos

Formas arredondadas cobrem menos de cada célula. O centro continua coberto, que é onde o decodificador faz a amostragem, mas uma impressão pequena de um código denso é lida com mais confiança em quadrados.

Moldura do canto

O anel dos três padrões de localização.

Centro do canto

O olho dentro de cada padrão de localização.

4 módulos

A margem em branco ao redor do código, medida em módulos. 4 é o mínimo especificado.

Uma recuperação mais alta sobrevive a mais dano e custa capacidade, então o mesmo conteúdo produz um símbolo mais denso.

Um logo ocupa o centro e mantém o nível em H. O limite de largura dele acompanha o símbolo: 14% no código menor, 30% em um denso.

Prévia ao vivo e exportação

Exportar

Exportar

Raster, para telas

Preencha o formulário para liberar os downloads.

Tamanho de exportação e texto codificado
Payload
Nada codificado ainda
Símbolo
Ainda não montado
Recuperação
H

Aguardando dados

Tamanho de exportação

Entre 64 e 4096 pixels. Exportando em 1024 px.

Texto codificado

Monte um código de recebimento escaneável para uma de cinco redes, com valor e nota opcionais. O endereço é usado exatamente como você digitar e nunca é enviado a lugar nenhum.

Quando alguém escaneia

Um app de carteira lê a URI, preenche o destinatário e mostra valor e nota como uma solicitação de pagamento editável, e nada é assinado ou enviado até o pagador confirmar na própria carteira.

Como é a URI de cada rede

Bitcoin, Litecoin e Dogecoin usam todos o formato BIP-21: o nome do esquema, dois-pontos, o endereço e parâmetros de query opcionais. O valor é escrito em moedas inteiras, como decimal — amount=0.005 significa cinco milésimos de um bitcoin — e o rótulo e a mensagem são percent-encoded.

O Ethereum usa a EIP-681, em que o parâmetro value é denominado em wei, e não em ether. A especificação incentiva a notação científica, então 0,25 ETH é escrito como value=2.5e17. Não existem parâmetros de rótulo e mensagem na EIP-681, e é por isso que esses dois campos desaparecem quando você seleciona Ethereum.

O Solana Pay define a própria solicitação de transferência: solana: seguido da chave do destinatário em base58, com amount em SOL e rótulo e mensagem opcionais. A especificação limita o valor a nove casas decimais, que é a precisão do SOL, e exige que as carteiras recusem uma URI que traga mais do que isso.

O endereço é codificado exatamente como você o digita, inclusive nas maiúsculas e minúsculas. Endereços Bitcoin em bech32 não distinguem maiúsculas de minúsculas e poderiam ser passados para maiúsculas para caber no modo alfanumérico do QR e encolher o símbolo, mas endereços legados em base58 distinguem, e passar um deles para maiúsculas o destrói. Aplicar essa otimização só às vezes é o tipo de comportamento condicional que produz um código quebrado justamente no caso que ninguém testou, então ela não é aplicada em caso nenhum.

  • bitcoin:bc1q…?amount=0.005&label=Livraria%20Beira-Rio
  • ethereum:0x…?value=2.5e17
  • solana:7xKX…?amount=1.5&label=Livraria%20Beira-Rio

O valor é um pedido, não um compromisso

Todo esquema aqui trata o valor como uma sugestão à carteira que envia. Muitas carteiras preenchem o campo e deixam o pagador editá-lo antes de assinar. Algumas ignoram o parâmetro por completo e abrem com o valor vazio. Nenhuma delas é obrigada a respeitá-lo, e não existe mecanismo em um QR Code que pudesse obrigar.

O BIP-21 define, sim, um prefixo req- para parâmetros que a carteira precisa entender ou então recusar, mas isso governa se a carteira faz o parsing da URI, não se a pessoa paga a cifra. Trate um valor impresso como uma conveniência que poupa digitação, e concilie o que de fato chegou com o que você pediu.

Os valores também não carregam referência de cobrança. O campo de mensagem é texto de exibição para o pagador; ele não é escrito na transação e não chega até você junto com os fundos. Casar um pagamento recebido com um pedido significa usar um endereço novo por pedido, o que um único código impresso não tem como fazer.

Confira o endereço antes de o código sair da sua tela

Este site não tem como verificar um endereço. Ele checa apenas se o que você digitou combina com o conjunto de caracteres e com o comprimento aproximado da rede que você selecionou, o que pega um erro óbvio de colagem e mais nada. Ele não tem como saber se o endereço é seu, se a carteira ainda existe ou se a string foi substituída entre a sua carteira e este campo. Não há consulta a fazer, porque não existe requisição de rede nenhuma nesta página.

Malware que troca endereços é uma ameaça real e corriqueira: sequestradores de área de transferência ficam à espreita de um endereço de carteira copiado e o substituem pelo do atacante. O endereço substituído é bem formado, então passa por todas as checagens de formato, e o código resultante é perfeitamente válido — para outra pessoa. As transferências nessas redes são finais, não existe estorno e nenhuma central de atendimento consegue puxar os fundos de volta.

A defesa é curta e inegociável. Depois que o código for desenhado, escaneie-o com o celular que você usaria para pagar e compare o endereço que a carteira mostra com a tela de recebimento da sua carteira, caractere por caractere — os seis primeiros e os seis últimos caracteres pegam a maioria das substituições, a string inteira pega o resto. Depois envie um pequeno valor de teste para você mesmo antes de o código ser impresso em escala. Faça isso de novo depois de qualquer reimpressão a partir de um arquivo salvo.

Perguntas e respostas

O código guarda a minha chave privada ou a minha frase de recuperação?

Não, e nunca digite nenhuma das duas em página web nenhuma. Esta ferramenta recebe um endereço de recebimento, que é informação pública e feita para ser compartilhada. Uma chave privada ou uma frase de recuperação entrega o controle da carteira em si, e nenhum gerador, corretora ou atendente legítimo tem qualquer motivo para pedir uma.

Um código impresso danificado ou sujo pode mandar fundos para o endereço errado?

Não. Os QR Codes carregam correção de erros Reed-Solomon, e o decodificador ou reconstrói a string original exata ou falha de vez — ele não devolve um endereço plausível porém diferente. Dano além da capacidade de recuperação produz uma falha de leitura, o que é seguro. O risco de verdade é um endereço errado codificado corretamente desde o começo.

Por que a opção Ethereum esconde os campos de rótulo e mensagem?

Porque a EIP-681 não os define. Acrescentar parâmetros que uma especificação não descreve faz com que as carteiras ou os ignorem ou tratem a URI como malformada, e uma URI malformada é pior do que um rótulo ausente. O BIP-21 e o Solana Pay definem rótulo e mensagem, então os campos aparecem para aquelas quatro redes.

Isso funciona para um token em vez da moeda nativa?

Por esta página, não. Transferências ERC-20 pela EIP-681 precisam de um endereço de contrato e de uma chamada de função na URI, e o Solana Pay precisa de um parâmetro spl-token de mint — os dois são fáceis de errar de formas sutis que perdem fundos. Use o recurso de solicitação da sua própria carteira, que conhece as casas decimais e o contrato do token.

Como funciona um QR Code estático

Todo código deste site é estático: o payload é escrito nos próprios módulos pretos e brancos. Nada é consultado quando o código é lido, nenhum servidor nosso participa e nenhuma assinatura sustenta o código impresso. Essa mesma propriedade é o limite — depois de impresso, o que ele contém não pode ser alterado.

Três coisas decidem então se um código impresso é lido: quantos bytes o payload ficou, qual nível de recuperação absorve o dano e que largura um único módulo acaba tendo no papel. Estes guias percorrem cada uma delas com os números.