Panoramica
Questa pagina spiega come usare la schermata “Verifica Certificati” per controllare:
- se un certificato esiste davvero on-chain;
- lo stato del certificato (valido, revocato, sostituito);
- che il PDF in tuo possesso sia esattamente quello emesso (hash uguale);
- che i dati inseriti in chiaro corrispondano alle “impronte” registrate (hash).
La verifica “on-chain” legge i dati dal contratto tramite l’RPC impostato. Il PDF locale che scegli nella sezione “Verifica PDF originale” non viene caricato sul server: viene letto dal browser solo per calcolarne l’hash.
Indice rapido
1) Ricerca certificato (numero o TokenId) 2) Lettura dati certificato e significato campi 3) Verifica PDF originale (hash) 4) Verifica impronte dati (hash dei campi) 5) Certificati sostituiti / sostitutivi 6) Problemi comuni1) Ricerca certificato
Metodo A — Numero certificato
Inserisci un valore tipo CERT-2025-0002. La pagina calcola il TokenId in modo deterministico con: keccak256(utf8(numero_certificato)).
- Compila Numero certificato
- Clicca Calcola TokenId (opzionale)
- Clicca Verifica certificato
Metodo B — TokenId diretto
Se hai già il TokenId (formato 0x + 64 caratteri esadecimali), incollalo in TokenId (opzionale). In questo caso la pagina salta il calcolo.
- Compila TokenId (opzionale)
- Lascia vuoto il numero certificato (se vuoi)
- Clicca Verifica certificato
Contratto, RPC e Gateway Pinata
- Contratto: indirizzo dello smart contract che contiene i certificati (LUKSO testnet nel tuo esempio).
- RPC: endpoint per leggere la blockchain. Se l’RPC è lento o non risponde, la verifica può fallire.
- Gateway Pinata: serve per trasformare ipfs://CID in un link HTTPS apribile dal browser.
Se l’azienda ti fornisce un PDF e un gateway dedicato, usa quello: migliora accessibilità e affidabilità del link.
Esito (riquadro “Compliance”)
L’esito sintetizza “trovato/non trovato” e lo stato del certificato: Valido, Revocato, Sostituito.
2) Dati certificato (on-chain)
Dopo “Verifica certificato”, la sezione “Dati certificato” mostra i valori letti dallo smart contract.
Stato
- Valido: certificato attivo.
- Revocato: il certificato è stato annullato (non va considerato valido).
- Sostituito: esiste un certificato più recente che lo rimpiazza.
Emissione e validità
Due timestamp: issuedAt (data emissione) e validUntil (scadenza). Se validUntil è 0, viene mostrato “Nessuna scadenza”.
Impronta documento (hash)
È l’hash del PDF originale memorizzato on-chain. Serve a dimostrare che un PDF “identico byte-per-byte” corrisponde al documento emesso.
Documento (URI) + Link
Normalmente è una URI ipfs://.... La pagina genera un link usando il gateway: https://<gateway>/ipfs/<CID>.
Se il link è disponibile, si abilita anche Apri PDF.
Impronte azienda / lotto / standard / certificato
Questi campi sono hash (impronte) di valori in chiaro emessi in fase di creazione del certificato. L’obiettivo è verificare coerenza senza pubblicare necessariamente i dati originali on-chain.
- Impronta azienda: tipicamente partita IVA o identificativo cliente.
- Impronta lotto/batch: identificativo del lotto associato al documento.
- Impronta standard: es. ISO, MOCA, ecc.
- Impronta certificato: identificatore registrato nel certificato (può coincidere con il “numero certificato” in logica applicativa).
3) Verifica PDF originale
Selezioni un PDF dal tuo dispositivo. Il browser calcola l’hash del file e lo confronta con l’hash del documento registrato on-chain.
- Se l’hash coincide: PDF originale.
- Se l’hash non coincide: attenzione, potrebbe essere un PDF diverso (anche piccole modifiche cambiano l’hash).
Perché può non coincidere anche se “sembra uguale”
- Il PDF è stato ricreato, ristampato, “ottimizzato” o ricompressato.
- È stata aggiunta una firma digitale o un timestamp dopo l’emissione.
- Il file è stato scaricato da un sistema che rigenera i PDF (anche senza cambiare visivamente).
In questi casi il documento può essere “equivalente” per un umano ma non identico per la verifica crittografica.
4) Verifica impronte dati
Qui inserisci i valori in chiaro (azienda, lotto, standard, numero certificato). La pagina calcola più varianti “tolleranti” e verifica se almeno una corrisponde agli hash on-chain.
Varianti tolleranti: cosa cambia
- Normalizzazione (spazi, caratteri invisibili, unicode).
- Uniformazione trattini (— – − ecc. → “-”).
- Maiuscole.
- Opzioni “senza spazi” e “senza separatori” (spazi, -, _, ., :, /, \).
Serve a gestire differenze tipiche tra chi emette e chi verifica (formattazioni, copia/incolla, ecc.).
Interpretazione dell’esito
- Corrisponde: almeno una variante produce lo stesso hash registrato.
- Non corrisponde: nessuna variante produce lo stesso hash.
Se non corrisponde ma sei sicuro del dato, spesso il problema è la formattazione originale di emissione.
Numero certificato (opzionale)
Se inserisci anche il numero certificato in questa sezione, la pagina verifica se l’hash del numero (con varianti) coincide con il TokenId utilizzato (cioè l’identificativo della ricerca).
5) Certificati sostituiti / sostitutivi
La sezione “Sostituito da” e “Sostituisce” ti fa navigare nella storia del certificato.
- Sostituito da: esiste un certificato più recente che rimpiazza quello corrente.
- Sostituisce: il certificato corrente rimpiazza un precedente.
Se presente, il link “Apri certificato …” carica direttamente il tokenId correlato.
Regola pratica
Se un certificato risulta Sostituito, in genere quello da considerare “corrente” è quello indicato in Sostituito da. La pagina ti aiuta ad aprirlo in un click.
6) Problemi comuni
“Certificato non trovato”
- Numero certificato scritto diversamente da come è stato emesso (anche un carattere cambia il TokenId).
- TokenId incollato incompleto (deve essere 0x + 64 hex).
- Contratto errato o RPC sbagliato.
Non riesco ad aprire il PDF (link “—”)
- Il certificato non ha una documentURI valorizzata.
- Gateway Pinata errato o non raggiungibile.
- URI non in formato ipfs:// (o CID mancante).
PDF non corrisponde ma sembra uguale
È normale se il PDF è stato rigenerato/firmato/ottimizzato dopo l’emissione. Per la verifica crittografica serve lo stesso file identico (byte-per-byte).
Impronte non corrispondono
- Prova a incollare i valori esattamente come ricevuti (spazi, trattini, maiuscole).
- Evita di “correggere” formati (es. aggiungere zeri, cambiare separatori).
- Se l’emissione usa prefissi (es. PIVA, LOT-), devono essere presenti anche in verifica.