Aller au contenu principal
OpenQRS
Outils
Langue actuelle : Français
100 % privé

Générateur de QR code de portefeuille crypto

100 % privé et local — Vos données ne quittent jamais votre navigateur. Ces QR codes sont permanents et n'expireront jamais.

Réglages Portefeuille crypto

Définit le schéma d'URI et la façon dont le montant est écrit. Une adresse envoyée sur le mauvais réseau est en général irrécupérable.

Collez-la depuis l'écran de réception de votre portefeuille. La saisir à la main, c'est ainsi qu'une adresse se trompe.

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

Facultatif, en pièces entières — BTC, ETH, SOL, LTC ou DOGE. Utilisez un point, sans séparateur de milliers ni symbole de ticker.

Un nom court pour le destinataire. Les portefeuilles qui le prennent en charge l'affichent à côté de l'adresse.

Une note affichée au payeur. C'est du texte d'affichage seulement, il n'est pas écrit dans la transaction.

Design

Forme des modules
Préréglages
Cadre d'angle
Ajouter un logo central
Choisissez une image, ou déposez-la iciPNG, JPEG, WebP ou GIF, jusqu'à 1000 Ko

L'image est lue dans cette page et intégrée au code sous la forme d'une URL data:. Elle n'est pas téléversée, et elle reste dans le fichier que vous téléchargez.

Plus d'options de design

La moitié sombre du code. Gardez-la nettement moins claire que le fond.

Couvre la zone de silence comme les espaces entre les modules. Un fond transparent le retire du fichier, donc rien n'est dessiné avec.

Contraste 11.5:1 entre les modules et le fond.

Préréglages

Le PNG et le WebP conservent un canal alpha ; le SVG omet simplement le rectangle de fond. Ce sur quoi le code est posé devient la moitié claire du contraste.

Dégradé

Un dégradé ne remplit que les modules sombres. Son extrémité la plus claire fixe le contraste que le lecteur obtient réellement, donc les deux extrémités doivent rester sombres.

La seconde couleur, utilisée seulement quand un dégradé est sélectionné. Son contraste est mesuré au même titre que celui de la première.

45°

Degrés dans le sens horaire à partir d'un balayage de gauche à droite. Un dégradé radial se propage du centre vers l'extérieur, donc l'angle ne s'applique qu'à un dégradé linéaire.

Forme des modules

Les formes arrondies couvrent moins chaque cellule. Le centre reste couvert, et c'est là que le décodeur échantillonne, mais une petite impression d'un code dense se lit plus sûrement en carrés.

Cadre d'angle

L'anneau des trois motifs de repérage.

Centre d'angle

L'œil à l'intérieur de chaque motif de repérage.

4 modules

La marge vide autour du code, mesurée en modules. 4 est le minimum spécifié.

Une correction plus élevée survit à plus de dégâts et coûte de la capacité, donc le même contenu produit un symbole plus dense.

Un logo occupe le centre et maintient le niveau sur H. Sa limite de largeur suit le symbole : 14% sur le plus petit code, 30% sur un code dense.

Aperçu en direct et export

Export

Export

Matriciel, écrans

Complétez le formulaire pour activer les téléchargements.

Taille d'export et texte encodé
Charge utile
Rien d'encodé
Symbole
Non construit
Correction
H

En attente de saisie

Taille d'export

Entre 64 et 4096 pixels. Export à 1024 px.

Texte encodé

Construisez un code de réception scannable pour l'un des cinq réseaux, avec un montant et une note en option. L'adresse est utilisée exactement telle que vous la tapez et n'est jamais envoyée nulle part.

Quand quelqu'un le scanne

Une application de portefeuille lit l'URI, pré-remplit le destinataire et affiche le montant et la note comme une demande de paiement modifiable, et rien n'est signé ni envoyé tant que le payeur ne le confirme pas dans son propre portefeuille.

À quoi ressemble l'URI de chaque réseau

Bitcoin, Litecoin et Dogecoin utilisent tous la forme BIP-21 : le nom du schéma, deux-points, l'adresse, puis des paramètres de requête optionnels. Le montant s'écrit en pièces entières sous forme décimale — amount=0.005 signifie cinq millièmes de bitcoin — et le libellé comme le message sont encodés en pourcentage.

Ethereum utilise EIP-681, où le paramètre value est libellé en wei et non en ether. La spécification encourage la notation scientifique, donc 0,25 ETH s'écrit value=2.5e17. Il n'y a ni paramètre de libellé ni paramètre de message dans EIP-681, et c'est pourquoi ces deux champs disparaissent quand vous sélectionnez Ethereum.

Solana Pay définit sa propre demande de transfert : solana: suivi de la clé du destinataire en base58, avec le montant en SOL et un libellé et un message optionnels. La spécification plafonne le montant à neuf décimales, ce qui est la précision de SOL, et impose aux portefeuilles de rejeter un URI qui en porte davantage.

L'adresse est encodée exactement telle que vous la saisissez, casse comprise. Les adresses Bitcoin bech32 sont insensibles à la casse et pourraient être passées en majuscules pour tenir dans le mode alphanumérique du QR et réduire le symbole, mais les anciennes adresses base58 sont sensibles à la casse et en passer une en majuscules la détruit. N'appliquer cette optimisation que dans certains cas relève du comportement conditionnel qui produit un code cassé dans le seul cas que personne n'a testé, alors elle n'est appliquée nulle part.

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

Le montant est une demande, pas un engagement

Tous les schémas présents ici traitent le montant comme une suggestion faite au portefeuille émetteur. Beaucoup de portefeuilles pré-remplissent le champ et laissent le payeur le modifier avant de signer. Certains ignorent purement et simplement le paramètre et s'ouvrent avec un montant vide. Aucun n'est tenu de l'honorer, et il n'existe dans un QR code aucun mécanisme qui pourrait les y contraindre.

BIP-21 définit bien un préfixe req- pour les paramètres qu'un portefeuille doit comprendre sous peine de rejet, mais cela régit l'analyse de l'URI par le portefeuille, pas le fait que l'humain paie le chiffre affiché. Considérez un montant imprimé comme une commodité qui évite de taper, et rapprochez ce qui est réellement arrivé de ce que vous aviez demandé.

Les montants ne portent pas non plus de référence de facture. Le champ message est du texte affiché au payeur ; il n'est pas inscrit dans la transaction et ne vous parvient pas avec les fonds. Rapprocher un paiement entrant d'une commande impose une adresse neuve par commande, ce qu'un seul code imprimé ne peut pas faire.

Vérifiez l'adresse avant que le code quitte votre écran

Ce site ne peut pas vérifier une adresse. Il contrôle seulement que ce que vous avez saisi correspond au jeu de caractères et à la longueur approximative du réseau sélectionné, ce qui attrape une erreur de collage flagrante et rien de plus. Il ne peut pas dire si l'adresse vous appartient, si le portefeuille existe encore, ni si la chaîne a été substituée entre votre portefeuille et ce champ. Il n'y a aucune recherche à effectuer, parce qu'il n'y a aucune requête réseau sur cette page.

Les logiciels malveillants qui remplacent les adresses sont une menace réelle et ordinaire : les pirates du presse-papiers guettent une adresse de portefeuille copiée et la remplacent par celle de l'attaquant. L'adresse substituée est bien formée, donc elle passe tous les contrôles de format, et le code obtenu est parfaitement valide — pour quelqu'un d'autre. Les transferts sur ces réseaux sont définitifs, il n'existe aucune rétrofacturation, et aucun service d'assistance ne peut récupérer les fonds.

La parade est courte et non négociable. Une fois le code affiché, scannez-le avec le téléphone que vous utiliseriez pour payer, et comparez l'adresse que le portefeuille affiche à l'écran de réception de votre propre portefeuille, caractère par caractère — les six premiers et les six derniers caractères attrapent la plupart des substitutions, la chaîne entière attrape le reste. Puis envoyez-vous un petit montant de test avant que le code soit imprimé en série. Recommencez après toute réimpression à partir d'un fichier enregistré.

Questions et réponses

Le code contient-il ma clé privée ou ma phrase de récupération ?

Non, et ne saisissez jamais ni l'une ni l'autre sur une page web, quelle qu'elle soit. Cet outil prend une adresse de réception, qui est une information publique faite pour être partagée. Une clé privée ou une phrase de récupération donne le contrôle du portefeuille lui-même, et aucun générateur, aucune plateforme d'échange et aucun agent d'assistance légitime n'a la moindre raison d'en demander une.

Un code imprimé abîmé ou sali peut-il envoyer des fonds à la mauvaise adresse ?

Non. Les QR codes portent une correction d'erreurs Reed-Solomon, et le décodeur reconstruit exactement la chaîne d'origine ou échoue franchement — il ne renvoie pas une adresse plausible mais différente. Des dégâts au-delà de la capacité de restauration produisent un échec de lecture, ce qui est sans danger. Le vrai risque, c'est une mauvaise adresse correctement encodée dès le départ.

Pourquoi l'option Ethereum masque-t-elle les champs libellé et message ?

Parce qu'EIP-681 ne les définit pas. Ajouter des paramètres qu'une spécification ne décrit pas fait que les portefeuilles les ignorent ou traitent l'URI comme mal formé, et un URI mal formé est pire qu'un libellé absent. BIP-21 et Solana Pay définissent tous deux libellé et message, donc les champs apparaissent pour ces quatre réseaux.

Cela fonctionne-t-il pour un jeton plutôt que pour la pièce native ?

Pas depuis cette page. Les transferts ERC-20 sous EIP-681 exigent une adresse de contrat et un appel de fonction dans l'URI, et Solana Pay exige un paramètre spl-token de mint — les deux sont faciles à écrire subtilement de travers, de façons qui font perdre des fonds. Servez-vous de la fonction de demande de votre propre portefeuille, qui connaît les décimales et le contrat du jeton.

Comment fonctionne un QR code statique

Chaque code de ce site est statique : la charge utile est écrite dans les modules noirs et blancs eux-mêmes. Rien n'est interrogé à la lecture, aucun de nos serveurs n'intervient, et aucun abonnement ne maintient le code imprimé en vie. Cette même propriété est la limite — une fois imprimé, ce qu'il contient ne peut plus être changé.

Trois choses décident ensuite si un code imprimé se lit : le nombre d'octets de la charge utile, le niveau de correction qui absorbe les dégâts, et la largeur d'un seul module sur le papier. Ces guides passent en revue chacune d'elles, chiffres à l'appui.