Saltar al contenido principal
OpenQRS
Herramientas
Idioma actual: Español
100% privado

Generador de códigos QR para wallet cripto

100% privado y local: tus datos nunca salen de tu navegador. Estos códigos QR son permanentes y nunca caducan.

Ajustes de Cripto

Fija el esquema del URI y cómo se escribe el importe. Una dirección enviada por la red equivocada casi nunca se recupera.

Pégala desde la pantalla de recibir de tu wallet. Escribirla a mano es como salen mal las direcciones.

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

Opcional, en monedas enteras: BTC, ETH, SOL, LTC o DOGE. Usa un punto, sin separador de miles y sin el símbolo del ticker.

Un nombre corto para quien recibe. Las wallets que lo admiten lo muestran junto a la dirección.

Una nota que ve quien paga. Es solo texto de visualización y no se escribe dentro de la transacción.

Diseño

Forma de los módulos
Preajustes
Marco de esquina
Añadir un logo central
Elige una imagen o suelta una aquíPNG, JPEG, WebP o GIF, hasta 1000 KB

La imagen se lee en esta página y se incrusta en el código como una URL data:. No se sube a ninguna parte y se queda dentro del archivo que descargas.

Más opciones de diseño

La mitad oscura del código. Mantenlo muy por debajo del fondo en luminosidad.

Cubre la zona de silencio y también los huecos entre módulos. Un fondo transparente lo deja fuera del archivo, así que no se dibuja nada con él.

Contraste 11.5:1 entre los módulos y el fondo.

Preajustes

PNG y WebP conservan un canal alfa; el SVG simplemente omite el rectángulo de fondo. Aquello sobre lo que se coloque el código pasa a ser la mitad clara del contraste.

Degradado

Un degradado rellena solo los módulos oscuros. Su extremo más claro fija el contraste que recibe de verdad un lector, así que los dos extremos tienen que seguir siendo oscuros.

El segundo color, usado solo mientras hay un degradado seleccionado. Se mide su contraste junto con el primero.

45°

Grados en sentido horario desde un barrido de izquierda a derecha. Un degradado radial se expande del centro hacia fuera, así que el ángulo solo se aplica al lineal.

Forma de los módulos

Las formas redondeadas cubren menos de cada celda. El centro sigue cubierto, que es donde muestrea el decodificador, pero un código denso impreso pequeño se lee con más fiabilidad en cuadrados.

Marco de esquina

El anillo de los tres patrones de localización.

Centro de esquina

El ojo dentro de cada patrón de localización.

4 módulos

El margen en blanco alrededor del código, medido en módulos. 4 es el mínimo que fija la especificación.

Más recuperación aguanta más daño y cuesta capacidad, así que el mismo contenido produce un símbolo más denso.

Hay un logo en el centro que mantiene el nivel en H. Su límite de ancho sigue al símbolo: 14% en el código más pequeño, 30% en uno denso.

Vista previa y exportación

Exportar

Exportar

Ráster, para pantalla

Completa el formulario para activar las descargas.

Tamaño de exportación y texto codificado
Carga útil
Aún no hay nada codificado
Símbolo
Aún sin construir
Recuperación
H

Esperando datos

Tamaño de exportación

Entre 64 y 4096 píxeles. Exportando a 1024 px.

Texto codificado

Crea un código de cobro escaneable para una de cinco redes, con importe y nota opcionales. La dirección se usa exactamente como la escribes y no se envía a ninguna parte.

Cuando alguien lo escanea

Una app de wallet lee el URI, rellena el destinatario y muestra el importe y la nota como una solicitud de pago editable, y no se firma ni se envía nada hasta que quien paga lo confirma en su propia wallet.

Cómo es el URI de cada red

Bitcoin, Litecoin y Dogecoin usan las tres la forma BIP-21: el nombre del esquema, dos puntos, la dirección y parámetros de consulta opcionales. El importe se escribe en monedas enteras como decimal —amount=0.005 son cinco milésimas de bitcoin— y la etiqueta y el mensaje se codifican en porcentaje.

Ethereum usa EIP-681, donde el parámetro value se denomina en wei y no en ether. La especificación anima a usar notación científica, así que 0,25 ETH se escribe como value=2.5e17. En EIP-681 no hay parámetros de etiqueta ni de mensaje, y por eso esos dos campos desaparecen cuando seleccionas Ethereum.

Solana Pay define su propia solicitud de transferencia: solana: seguido de la clave del destinatario en base58, con el importe en SOL y una etiqueta y un mensaje opcionales. La especificación limita el importe a nueve decimales, que es la precisión de SOL, y obliga a las wallets a rechazar un URI que lleve más.

La dirección se codifica exactamente como la escribes, mayúsculas y minúsculas incluidas. Las direcciones bech32 de Bitcoin no distinguen mayúsculas de minúsculas y se podrían pasar a mayúsculas para entrar en el modo alfanumérico del QR y encoger el símbolo, pero las direcciones heredadas en base58 sí las distinguen, y pasar una a mayúsculas la destruye. Aplicar esa optimización solo a veces es la clase de comportamiento condicional que produce un código roto justo en el único caso que nadie probó, así que no se aplica nunca.

  • bitcoin:bc1q…?amount=0.005&label=Mercado%20Ribera
  • ethereum:0x…?value=2.5e17
  • solana:7xKX…?amount=1.5&label=Mercado%20Ribera

El importe es una solicitud, no un compromiso

Todos los esquemas de aquí tratan el importe como una sugerencia dirigida a la wallet que envía. Muchas wallets rellenan el campo por adelantado y dejan que quien paga lo edite antes de firmar. Algunas ignoran el parámetro por completo y abren con el importe vacío. Ninguna está obligada a respetarlo, y no hay ningún mecanismo en un código QR que pudiera obligarlas.

BIP-21 sí define un prefijo req- para los parámetros que una wallet debe entender o rechazar, pero eso gobierna si la wallet analiza el URI, no si la persona paga la cifra. Trata un importe impreso como una comodidad que ahorra teclear, y concilia lo que llegó de verdad con lo que pediste.

Los importes tampoco llevan una referencia de factura. El campo de mensaje es texto de visualización para quien paga; no se escribe en la transacción y no te llega con los fondos. Casar un pago entrante con un pedido significa usar una dirección nueva por pedido, que es justo lo que un solo código impreso no puede hacer.

Verifica la dirección antes de que el código salga de tu pantalla

Este sitio no puede verificar una dirección. Solo comprueba que lo que has escrito encaja con el juego de caracteres y con la longitud aproximada de la red que elegiste, lo que caza un error de pegado evidente y nada más. No puede saber si la dirección es tuya, si la wallet sigue existiendo o si la cadena fue sustituida entre tu wallet y este campo. No hay ninguna consulta que hacer, porque en esta página no hay ninguna petición de red en absoluto.

El malware que sustituye direcciones es una amenaza real y corriente: los secuestradores de portapapeles vigilan si se copia una dirección de wallet y la reemplazan por la del atacante. La dirección sustituida está bien formada, así que pasa todas las comprobaciones de formato, y el código resultante es perfectamente válido: para otra persona. Las transferencias en estas redes son definitivas, no hay devolución de cargo y ningún servicio de soporte puede recuperar los fondos.

La defensa es corta y no es negociable. Cuando el código se haya dibujado, escanéalo con el teléfono con el que pagarías y compara la dirección que muestra la wallet con la pantalla de recepción de tu propia wallet, carácter por carácter: los seis primeros y los seis últimos caracteres cazan la mayoría de las sustituciones, y la cadena entera caza el resto. Después envíate a ti mismo un importe pequeño de prueba antes de imprimir el código a gran escala. Repítelo después de cualquier reimpresión hecha desde un archivo guardado.

Preguntas y respuestas

¿El código contiene mi clave privada o mi frase de recuperación?

No, y no escribas nunca ninguna de las dos en ninguna página web. Esta herramienta toma una dirección de recepción, que es información pública y está pensada para compartirse. Una clave privada o una frase de recuperación entregan el control de la wallet en sí, y ningún generador, ninguna casa de cambio y ningún agente de soporte legítimos tienen motivo alguno para pedir una.

¿Un código impreso dañado o sucio puede enviar los fondos a la dirección equivocada?

No. Los códigos QR llevan corrección de errores Reed-Solomon, y el descodificador o reconstruye la cadena original exacta o falla del todo: no devuelve una dirección plausible pero distinta. Un daño que supere la capacidad de recuperación produce un fallo de escaneo, que es seguro. El riesgo real es una dirección equivocada codificada correctamente desde el principio.

¿Por qué la opción de Ethereum oculta los campos de etiqueta y mensaje?

Porque EIP-681 no los define. Añadir parámetros que una especificación no describe hace que las wallets o los ignoren o traten el URI como mal formado, y un URI mal formado es peor que una etiqueta que falta. BIP-21 y Solana Pay definen los dos, etiqueta y mensaje, así que los campos aparecen para esas cuatro redes.

¿Servirá esto para un token en lugar de la moneda nativa?

Desde esta página no. Las transferencias ERC-20 bajo EIP-681 necesitan una dirección de contrato y una llamada a función dentro del URI, y Solana Pay necesita un parámetro spl-token con el mint: los dos son fáciles de equivocar de formas sutiles que pierden fondos. Usa la función de solicitud de tu propia wallet, que conoce los decimales y el contrato del token.

Cómo funciona un código QR estático

Todos los códigos de este sitio son estáticos: la carga útil está escrita en los propios módulos blancos y negros. No se consulta nada al leer el código, ningún servidor nuestro interviene y ninguna suscripción sostiene el código impreso. Esa misma propiedad es el límite: una vez impreso, lo que contiene ya no se puede cambiar.

A partir de ahí, tres cosas deciden si un código impreso se lee: cuántos bytes ocupó la carga útil, qué nivel de recuperación absorbe los daños y cuánto mide un módulo suelto sobre el papel. Estas guías recorren cada una de ellas con los números.