Identità Decentralizzata (DID)
Ogni company su FenixTrace riceve un identificatore decentralizzato (DID) ancorato on-chain tramite il modulo Move trace_shack::did_registry su IOTA Rebased. Il DID certifica l'autenticità dell'azienda, è verificabile pubblicamente nello scanner e costituisce la base crittografica per la tracciabilità trasparente dei prodotti nella supply chain.
Cos'è un DID?
Un DID (Decentralized Identifier) è un identificatore digitale univoco che non dipende da un'autorità centrale. A differenza di un semplice nome utente, un DID è ancorato on-chain e verificabile crittograficamente da chiunque. Nel contesto di FenixTrace, il DID rappresenta l'identità digitale verificabile di un'azienda nella supply chain, controllata dall'account aziendale.
FenixTrace adotta un approccio ispirato allo standard W3C DID Core, implementato con un modulo Move custom su IOTA Rebased (trace_shack::did_registry). Ogni DID corrisponde a uno shared object DidRecord on-chain contenente owner, company name, document hash e stato. La registrazione del DID avviene automaticamente quando un'azienda viene onboardata e conferma il piano: è il server a crearlo e firmarlo on-chain, senza alcuna azione tecnica da parte dell'utente.
Il vantaggio principale di un'identità ancorata on-chain è che ogni operazione lascia una prova pubblica e immutabile: chiunque può verificare che il DID di un'azienda esiste, a chi appartiene e qual è il suo stato, senza fidarsi ciecamente della piattaforma. Lo stato (active/suspended/revoked) è governato dal Super Admin solo per motivi di compliance, ma la registrazione e la storia del DID restano tracciate on-chain in modo trasparente e verificabile.
Struttura Tecnica del DID
| Campo | Valore | Descrizione |
|---|---|---|
| Method | did:iota | Metodo DID specifico per la rete IOTA |
| Network | IOTA Rebased (Move L1) | Rete IOTA Rebased con esecuzione Move |
| Format | did:iota:<network>:<object_id> | Il suffisso è l'object id dello shared DidRecord on-chain |
| Module | trace_shack::did_registry | Modulo Move che crea e aggiorna il DidRecord |
| Standard | Ispirato a W3C DID Core 1.0 | Integrazione completa con IOTA Identity Framework in roadmap |
| Storage | Shared object DidRecord | Ogni DID vive come oggetto condiviso on-chain, ispezionabile via RPC o Explorer |
| Verification | Firma server + evento DidRegistered | FenixTrace firma on-chain per conto dell'account aziendale ed emette un evento Move verificabile |
Esempio DID
Il DID è composto da quattro parti: il prefisso "did", il metodo "iota", la rete IOTA Rebased ("testnet" o "mainnet") e l'object id dello shared DidRecord creato on-chain dal modulo did_registry. Puoi copiare l'object id nell'Explorer IOTA per vedere il record completo.
Ciclo di Vita dell'Identità
Il processo di onboarding di un'identità DID su FenixTrace segue un flusso in 6 fasi, dalla selezione del piano alla piena operatività. Ogni fase coinvolge interazioni on-chain verificabili.
Onboarding via Email
L'azienda viene registrata su FenixTrace con la sola email aziendale. Non servono wallet, seed phrase, estensioni del browser né selezione di rete: l'accesso avviene con email e codice OTP. Al primo login l'azienda sceglie un piano (Base, Professional, Enterprise) che determina il numero di prodotti registrabili e le chiavi API disponibili.
Creazione Account Aziendale
Alla conferma del piano, FenixTrace crea l'account aziendale e provisiona, in modo sicuro e lato server, la chiave on-chain dedicata alla company. Questa chiave è custodita dalla piattaforma e usata solo dal server: l'azienda non la vede né la gestisce mai. L'account aziendale è da subito riconosciuto come azienda registrata e abilitato alla registrazione DID.
Registrazione DID On-Chain (automatica)
Il server registra automaticamente il DID on-chain: invoca il modulo did_registry::register passando company name e document hash, firmando con la chiave company custodita. Il modulo crea uno shared object DidRecord (owner, stato active, timestamp) ed emette l'evento DidRegistered con l'object id. Il DID definitivo è did:iota:<network>:<object_id> — risolvibile via RPC e visibile su Explorer. L'utente non firma nulla.
Notarizzazione DID (automatica)
Sempre lato server, FenixTrace chiama notarization::record con entity_type = did ed entity_reference che identifica la company. Il modulo emette un evento NotarizationRecorded che fa da ricevuta pubblica del flusso di onboarding, indicizzabile da qualsiasi osservatore on-chain. Anche questa notarizzazione è eseguita e firmata dal server, senza intervento dell'utente.
Linking DID ↔ Company
Il backend legge l'object id dall'evento DidRegistered e lo associa alla company nel registro locale. Lo scanner pubblico, gli endpoint /api/companies e /api/public/companies restituiscono da quel momento identityDid = did:iota:<network>:<object_id> risolvibile via Explorer.
Operatività Completa
L'azienda può registrare prodotti dalla dashboard o tramite chiavi API per le integrazioni (AgerLink, WooCommerce, PrestaShop, CRM/ERP). Ogni add_product emette un ProductAdded e viene notarizzato via notarization::record automaticamente dal server. La company appare nello scanner pubblico con il badge di identità attiva.
Stati dell'Identità
L'identità DID di una company può trovarsi in uno dei tre stati seguenti. Lo stato è visibile sia nella dashboard amministrativa che nello scanner pubblico, garantendo trasparenza totale.
Attivo
L'identità è verificata e pienamente operativa. La company accede via email e OTP e può registrare prodotti, generare chiavi API per le integrazioni, e i suoi prodotti sono visibili nello scanner pubblico con il badge "Verified Partner". FenixTrace conferma on-chain che il DID corrisponde all'account aziendale: la prova di autenticità è registrata automaticamente dal server, senza alcuna firma da parte dell'utente.
Dashboard completa • Prodotti visibili nello scanner • Chip "DID active" verde • Può generare chiavi API
Sospeso
L'identità è temporaneamente sospesa dall'amministratore. La company può ancora accedere alla dashboard in modalità di sola lettura, ma non può registrare nuovi prodotti né generare nuove chiavi API. I prodotti già registrati restano visibili nello scanner ma con un avviso di sospensione. Questa azione è reversibile: un Super Admin può riattivare l'identità in qualsiasi momento.
Dashboard in sola lettura • Nessuna nuova registrazione • Chip "DID suspended" giallo • Prodotti visibili con avviso
Revocato
L'identità è stata permanentemente revocata. Questa è un'azione irreversibile eseguita solo in casi gravi (frode, violazione dei termini di servizio, attività illegale). L'account aziendale perde l'accesso alla dashboard e i suoi prodotti vengono contrassegnati come "Identity Revoked" nello scanner. Le chiavi API associate smettono di funzionare. Per operare di nuovo sulla piattaforma è necessario un nuovo onboarding, con un nuovo account e una nuova identità DID.
Nessun accesso alla dashboard • Chiavi API disattivate • Prodotti contrassegnati "DID revoked" • Chip rosso nello scanner • Richiede nuovo onboarding
Azioni Amministrative (Governance)
Le azioni di governance sullo stato DID lato piattaforma sono riservate al Super Admin, che accede anch'esso via email e OTP. Ogni cambio di stato viene loggato come anomaly record e registrato nell'audit log, e le relative operazioni on-chain sono firmate automaticamente dal system wallet della piattaforma. Lo shared object DidRecord on-chain resta associato all'account aziendale: la sua storia è pubblica e immutabile, e la riattivazione è sempre possibile salvo i casi di revoca permanente.
Riattivazione Identità
Un Super Admin può riattivare un'identità precedentemente sospesa. L'azione ripristina tutte le funzionalità della company: accesso completo alla dashboard, capacità di registrare nuovi prodotti, generazione e uso delle chiavi API. Il badge nello scanner torna a "DID Active" (verde). La riattivazione è immediata e non richiede una nuova notarizzazione.
Sospensione Identità
Un Super Admin può sospendere temporaneamente un'identità per motivi di compliance, investigazione su segnalazioni, o richiesta della company stessa. Durante la sospensione, la company mantiene l'accesso in lettura alla dashboard ma non può eseguire operazioni di scrittura (nuovi prodotti, nuove chiavi API). I prodotti esistenti rimangono nello scanner con un avviso.
Revoca Identità
Azione irreversibile riservata a casi gravi. Il Super Admin revoca permanentemente l'identità DID di una company. L'account aziendale viene bloccato e le sue chiavi API disattivate, il DID viene contrassegnato come "revoked" on-chain, e tutti i prodotti della company vengono marcati con un badge di warning nello scanner. La company non può più accedere alla piattaforma con lo stesso account.
Visibilità nello Scanner Pubblico
Lo scanner pubblico di FenixTrace è il punto di accesso principale per la verifica delle identità. Ogni company registrata è visibile con le seguenti informazioni di identità:
Chip "Partner Verificato"
Indica che la company ha un DID attivo e verificato on-chain
Chip stato DID
Mostra lo stato corrente (DID active / suspended / revoked) col colore corrispondente
Card "Prove on-chain"
Owner, contract, DID completo e digest delle transazioni DID — ognuno con copia e link Explorer
Object ID DidRecord
Il suffisso del DID è l'object id dello shared DidRecord; cliccarlo apre l'oggetto on-chain
Data registrazione
Derivata dall'evento di creazione company o dalla notarizzazione del piano
Transazioni DID
Digest delle tx did_registry::register e notarization::record, aperti su Explorer
Tutte queste informazioni sono accessibili senza autenticazione, garantendo la massima trasparenza. Le API pubbliche dello scanner permettono anche l'accesso programmatico a questi dati.
Domande Frequenti
No. Su FenixTrace accedi solo con email e codice OTP: non esistono wallet da installare, seed phrase da custodire né firme da approvare. La chiave on-chain della tua azienda è generata e custodita in modo sicuro dal server, che firma le operazioni blockchain per tuo conto. Se perdi l'accesso all'email puoi recuperarlo come per qualsiasi account: contatta il supporto, la tua identità DID e i prodotti già registrati restano intatti on-chain.
Sì. Il DID in formato did:iota:<network>:<object_id> è esposto sia nello scanner pubblico che via /api/public/companies, e lo shared DidRecord è leggibile da chiunque via IOTA Explorer o via client RPC. Lo stato (active/suspended/revoked) segue il DidRecord on-chain ed è riflesso nel chip visibile sulla pagina company. Tu non devi mai gestire né mostrare indirizzi: l'identità è verificabile da chiunque, ma il suo controllo resta legato all'account aziendale.
La registrazione DID è inclusa nel costo della subscription. Non ci sono costi aggiuntivi per la creazione del DID e non devi preoccuparti di nessuna gas fee: tutte le transazioni on-chain (registrazione DID, notarizzazioni, registrazione prodotti) sono eseguite e coperte da FenixTrace lato server. Per te il costo è solo quello del piano scelto.
Ogni account aziendale corrisponde a una singola identità DID risolta dalla piattaforma. Se hai bisogno di identità multiple (es. per filiali o ragioni sociali diverse), crea un account aziendale dedicato per ciascuna, con il proprio piano: FenixTrace genererà un DID separato per ognuno, sempre in automatico lato server. Per portare prodotti da gestionali o e-commerce esterni non servono identità aggiuntive: bastano le chiavi API generate dalla dashboard.
Alla scadenza della subscription lo shared DidRecord on-chain resta dov'è — nessuno può cancellarlo — ma le funzionalità della dashboard vengono limitate. I prodotti già registrati restano visibili nello scanner con tutte le prove on-chain. Per riattivare le funzionalità basta rinnovare la subscription dalla pagina Pricing.
Verifica le Identità
Visita lo scanner pubblico per verificare lo stato DID di qualsiasi company registrata su FenixTrace. Puoi anche utilizzare le API pubbliche per integrare la verifica nel tuo sistema.