Vai al contenuto principale
OpenQRS
Strumenti
Lingua attuale: Italiano
100% privato

Generatore di QR code per wallet crypto

100% privato e locale — i tuoi dati non escono mai dal tuo browser. Questi QR code sono permanenti e non scadranno mai.

Impostazioni Wallet crypto

Imposta lo schema dell'URI e il modo in cui si scrive l'importo. Un indirizzo inviato sulla rete sbagliata è di solito irrecuperabile.

Incollalo dalla schermata di ricezione del tuo portafoglio. Digitarlo a mano è il modo in cui gli indirizzi finiscono sbagliati.

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

Facoltativo, in monete intere — BTC, ETH, SOL, LTC o DOGE. Usa il punto, nessun separatore delle migliaia, nessun simbolo del ticker.

Un nome breve per chi riceve. I portafogli che la supportano la mostrano accanto all'indirizzo.

Una nota mostrata a chi paga. È solo testo di visualizzazione e non viene scritta nella transazione.

Design

Forma dei moduli
Preset
Cornice d'angolo
Aggiungi un logo centrale
Scegli un'immagine, o trascinala quiPNG, JPEG, WebP o GIF, fino a 1000 KB

L'immagine viene letta in questa pagina e incorporata nel codice come data: URL. Non viene caricata da nessuna parte e resta dentro il file che scarichi.

Altre opzioni di design

La metà scura del codice. Tienilo ben al di sotto dello sfondo come luminosità.

Copre la zona di quiete oltre agli spazi tra i moduli. Uno sfondo trasparente lo lascia fuori dal file, quindi con esso non viene disegnato nulla.

Contrasto 11.5:1 tra i moduli e lo sfondo.

Preset

PNG e WebP mantengono un canale alfa; l'SVG semplicemente omette il rettangolo di sfondo. Qualunque cosa stia sotto il codice diventa la metà chiara del contrasto.

Gradiente

Un gradiente riempie solo i moduli scuri. È il suo estremo più chiaro a fissare il contrasto che un lettore ottiene davvero, quindi entrambi gli estremi devono restare scuri.

Il secondo colore, usato solo quando è selezionato un gradiente. Il contrasto viene misurato su di esso come sul primo.

45°

Gradi in senso orario a partire da una sfumatura da sinistra a destra. Un gradiente radiale si espande dal centro verso l'esterno, quindi l'angolo vale solo per quello lineare.

Forma dei moduli

Le forme arrotondate coprono meno di ogni cella. Il centro resta coperto, ed è lì che un decoder campiona, ma una stampa piccola di un codice denso si legge in modo più affidabile con i quadrati.

Cornice d'angolo

L'anello dei tre pattern di ricerca.

Centro d'angolo

L'occhio dentro ogni pattern di ricerca.

4 moduli

Il margine vuoto attorno al codice, misurato in moduli. 4 è il minimo previsto dalla specifica.

Un recupero più alto sopporta più danni e costa capacità, quindi lo stesso contenuto produce un simbolo più denso.

Un logo sta al centro e tiene il livello su H. Il suo limite di larghezza segue il simbolo: 14% sul codice più piccolo, 30% su uno denso.

Anteprima live ed esportazione

Esporta

Esporta

Raster, per schermi

Completa il modulo per abilitare i download.

Dimensione di esportazione e testo codificato
Payload
Nulla ancora codificato
Simbolo
Non ancora costruito
Recupero
H

In attesa di dati

Dimensione di esportazione

Tra 64 e 4096 pixel. Esportazione a 1024 px.

Testo codificato

Costruisci un codice di ricezione scansionabile per una di cinque reti, con importo e nota facoltativi. L'indirizzo viene usato esattamente come lo scrivi e non viene mai inviato da nessuna parte.

Quando qualcuno lo scansiona

Un'app wallet legge l'URI, precompila il destinatario e mostra importo e nota come richiesta di pagamento modificabile: nulla viene firmato o inviato finché chi paga non conferma nel proprio wallet.

Che aspetto ha l'URI di ciascuna rete

Bitcoin, Litecoin e Dogecoin usano tutti la forma BIP-21: il nome dello schema, i due punti, l'indirizzo e i parametri di query facoltativi. L'importo si scrive in monete intere come decimale — amount=0.005 significa cinque millesimi di bitcoin — e l'etichetta e il messaggio sono codificati in percentuale.

Ethereum usa l'EIP-681, dove il parametro value è denominato in wei invece che in ether. La specifica incoraggia la notazione scientifica, quindi 0,25 ETH si scrive value=2.5e17. Nell'EIP-681 non esistono parametri di etichetta o di messaggio, ed è per questo che quei due campi scompaiono quando selezioni Ethereum.

Solana Pay definisce una propria richiesta di trasferimento: solana: seguito dalla chiave del destinatario in base58, con l'importo in SOL ed etichetta e messaggio facoltativi. La specifica limita l'importo a nove cifre decimali, che è la precisione di SOL, e impone ai wallet di rifiutare un URI che ne porti di più.

L'indirizzo viene codificato esattamente come lo scrivi, maiuscole comprese. Gli indirizzi Bitcoin bech32 non distinguono maiuscole e minuscole e si potrebbero portare in maiuscolo per entrare nella modalità alfanumerica del QR e rimpicciolire il simbolo, ma gli indirizzi legacy in base58 le distinguono, e portarne uno in maiuscolo lo distrugge. Applicare quell'ottimizzazione solo a volte è il tipo di comportamento condizionale che produce un codice rotto proprio nel caso che nessuno ha provato, quindi non viene applicata affatto.

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

L'importo è una richiesta, non un impegno

Ogni schema qui tratta l'importo come un suggerimento al wallet che invia. Molti wallet precompilano il campo e lasciano che chi paga lo modifichi prima di firmare. Alcuni ignorano del tutto il parametro e si aprono con l'importo vuoto. Nessuno di essi è obbligato a rispettarlo, e in un QR code non esiste alcun meccanismo che possa costringerlo.

Il BIP-21 definisce sì un prefisso req- per i parametri che un wallet deve comprendere o rifiutare, ma questo governa se il wallet analizza l'URI, non se la persona paga quella cifra. Tratta un importo stampato come una comodità che risparmia digitazione, e riconcilia quanto è davvero arrivato con quanto avevi chiesto.

Gli importi non portano nemmeno una causale. Il campo del messaggio è testo da mostrare a chi paga; non viene scritto nella transazione e non ti raggiunge insieme ai fondi. Far corrispondere un pagamento in arrivo a un ordine significa usare un indirizzo nuovo per ogni ordine, cosa che un singolo codice stampato non può fare.

Verifica l'indirizzo prima che il codice lasci il tuo schermo

Questo sito non può verificare un indirizzo. Controlla soltanto che quello che hai scritto corrisponda all'insieme di caratteri e alla lunghezza approssimativa della rete che hai selezionato, il che intercetta un errore di incollaggio evidente e nient'altro. Non può dire se l'indirizzo sia tuo, se il wallet esista ancora o se la stringa sia stata sostituita fra il tuo wallet e questo campo. Non c'è alcuna interrogazione da fare, perché su questa pagina non c'è alcuna richiesta di rete.

Il malware che scambia gli indirizzi è una minaccia reale e ordinaria: i dirottatori degli appunti sorvegliano la copia di un indirizzo wallet e la sostituiscono con quello dell'attaccante. L'indirizzo sostituito è ben formato, quindi supera ogni controllo di formato, e il codice che ne risulta è perfettamente valido — per qualcun altro. I trasferimenti su queste reti sono definitivi, non esiste alcuno storno e nessun servizio di assistenza può riportare indietro i fondi.

La difesa è breve e non negoziabile. Dopo che il codice è stato disegnato, scansionalo con il telefono che useresti per pagare e confronta l'indirizzo che il wallet mostra con la schermata di ricezione del tuo wallet, carattere per carattere: i primi e gli ultimi sei caratteri intercettano la maggior parte delle sostituzioni, la stringa intera intercetta il resto. Poi inviati un piccolo importo di prova prima che il codice venga stampato in quantità. Rifallo dopo ogni ristampa a partire da un file salvato.

Domande e risposte

Il codice contiene la mia chiave privata o la frase di recupero?

No, e non inserire mai né l'una né l'altra in alcuna pagina web. Questo strumento prende un indirizzo di ricezione, che è un'informazione pubblica, fatta per essere condivisa. Una chiave privata o una frase di recupero cede il controllo del wallet stesso, e nessun generatore, exchange o addetto all'assistenza legittimo ha alcun motivo di chiederne una.

Un codice stampato danneggiato o sporco può inviare i fondi all'indirizzo sbagliato?

No. I QR code portano la correzione d'errore di Reed-Solomon, e il decodificatore o ricostruisce esattamente la stringa originale o fallisce del tutto: non restituisce un indirizzo plausibile ma diverso. Un danno oltre la capacità di recupero produce una scansione fallita, il che è sicuro. Il rischio vero è un indirizzo sbagliato codificato correttamente fin dall'inizio.

Perché l'opzione Ethereum nasconde i campi etichetta e messaggio?

Perché l'EIP-681 non li definisce. Aggiungere parametri che una specifica non descrive significa che i wallet o li ignorano o trattano l'URI come malformato, e un URI malformato è peggio di un'etichetta mancante. Il BIP-21 e Solana Pay definiscono entrambi etichetta e messaggio, quindi per quelle quattro reti i campi compaiono.

Funziona per un token invece che per la moneta nativa?

Non da questa pagina. I trasferimenti ERC-20 sotto l'EIP-681 richiedono un indirizzo di contratto e una chiamata a funzione dentro l'URI, e Solana Pay richiede un parametro spl-token con il mint: entrambi sono facili da sbagliare in modi sottili che fanno perdere i fondi. Usa la funzione di richiesta del tuo wallet, che conosce i decimali e il contratto del token.

Come funziona un QR code statico

Ogni codice su questo sito è statico: il payload è scritto nei moduli bianchi e neri stessi. Alla lettura non viene consultato nulla, nessun nostro server entra in gioco e nessun abbonamento tiene in piedi il codice stampato. La stessa proprietà è anche il limite: una volta stampato, ciò che contiene non si può cambiare.

A quel punto tre cose decidono se un codice stampato si legge: quanti byte è venuto a pesare il payload, quale livello di recupero assorbe i danni e quanto risulta largo un singolo modulo sulla carta. Queste guide affrontano ciascuna di esse con i numeri.