{"id":197379,"date":"2026-05-26T06:39:58","date_gmt":"2026-05-26T10:39:58","guid":{"rendered":"https:\/\/innowise.com\/?p=197379"},"modified":"2026-05-27T06:41:50","modified_gmt":"2026-05-27T10:41:50","slug":"decentralized-identifiers","status":"publish","type":"post","link":"https:\/\/innowise.com\/it\/blog\/decentralized-identifiers\/","title":{"rendered":"Cos'\u00e8 un identificatore decentralizzato (DID)? Guida all'identit\u00e0 digitale basata su blockchain"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"197379\" class=\"elementor elementor-197379\">\n\t\t\t\t<div class=\"elementor-element elementor-element-667380f main-block e-flex e-con-boxed e-con e-parent\" data-id=\"667380f\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-3e59aca e-con-full e-flex e-con e-child\" data-id=\"3e59aca\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-98a5c37 elementor-widget-tablet__width-inherit elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"98a5c37\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">What is a decentralized identifier (DID)? A guide to blockchain-based digital identity<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f62f88 elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"9f62f88\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"heroBottom\">\r\n  <div>\r\n    <a href=\"https:\/\/innowise.com\/authors\/andrew-nalichaev\/\">Andrew Nalichaev<\/a>\r\n  <\/div>\r\n\r\n  <div class=\"second\">\r\n    <span>May 26, 2026<\/span>\r\n    <span>15 min read<\/span>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b399fb9 elementor-hidden-desktop elementor-hidden-tablet e-flex e-con-boxed e-con e-parent\" data-id=\"b399fb9\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-523b86d elementor-widget elementor-widget-image\" data-id=\"523b86d\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/Small-cover-What-is-a-decentralized-identifier-DID_-Simple-guide-to-blockchain-based-digital-identity.png\" class=\"attachment-large size-large wp-image-197381\" alt=\"\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/Small-cover-What-is-a-decentralized-identifier-DID_-Simple-guide-to-blockchain-based-digital-identity.png 880w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/Small-cover-What-is-a-decentralized-identifier-DID_-Simple-guide-to-blockchain-based-digital-identity-300x225.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/Small-cover-What-is-a-decentralized-identifier-DID_-Simple-guide-to-blockchain-based-digital-identity-768x576.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/Small-cover-What-is-a-decentralized-identifier-DID_-Simple-guide-to-blockchain-based-digital-identity-16x12.png 16w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-970be0b article-description e-con-full e-flex e-con e-parent\" data-id=\"970be0b\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-f2465c0 author-article e-con-full e-flex e-con e-child\" data-id=\"f2465c0\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-e6efd78 e-con-full e-flex e-con e-child\" data-id=\"e6efd78\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3d76e49 e-con-full e-flex e-con e-child\" data-id=\"3d76e49\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ef45fbb elementor-widget elementor-widget-shortcode\" data-id=\"ef45fbb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[summarize_button_ai]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ccd97df elementor-widget elementor-widget-text-editor\" data-id=\"ccd97df\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">You\u2019ve probably seen it yourself: feed GPT a selfie, ask for a passport-style document, and within minutes, you get something that can get past basic visual checks. Add voice cloning and synthetic video, and \u201cliveness\u201d starts to look like theater. That\u2019s the real break in digital identity in <span id=\"current-year\">2026<\/span>. The photo-based KYC model itself is wearing out. If identity proof still depends on images being hard to fake, you\u2019re building on sand.<\/span><\/p><p><span style=\"font-weight: 400;\">So where does that leave us? With a pretty obvious shift: away from storing identity data and toward verifying claims cryptographically. Instead of collecting a passport scan and parking it in another database, the system asks for proof: are you over 18, have you passed KYC, are you cleared for this transaction, and <\/span><b>can you prove it without revealing anything else?<\/b><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><p><b>But what changes exactly? Why are we suddenly talking about DIDs and verifiable credentials?\u00a0<\/b><\/p><p><span style=\"font-weight: 400;\">Because in a DID-based model, trust doesn\u2019t come from what something looks like. It comes from who signed it and whether you can prove control over it. A deepfake selfie doesn\u2019t help if the verifier expects a credential signed by a trusted issuer and bound to your cryptographic keys. You\u2019re no longer trying to \u201clook real.\u201d You\u2019re proving possession of a valid, signed claim. Images stop being the source of trust. Signatures take over.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">And that\u2019s the point of this guide: I\u2019ll show how that model works, why it\u2019s becoming the serious path forward, and where blockchain fits into it.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f2858d1 e-con-full e-flex e-con e-child\" data-id=\"f2858d1\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-86cbb77 elementor-widget elementor-widget-heading\" data-id=\"86cbb77\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What is a decentralized identifier (DID)?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c717074 elementor-widget elementor-widget-text-editor\" data-id=\"c717074\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">A decentralized identifier, or DID, is a URI-based identifier designed to be controlled through cryptographic keys rather than issued and managed by a central directory. Under the <\/span><a href=\"https:\/\/www.w3.org\/\" target=\"_blank\" rel=\"noopener nofollow\"><span style=\"font-weight: 400;\">World Wide Web Consortium (W3C)<\/span><\/a><span style=\"font-weight: 400;\"> DID standard, a DID resolves to a DID document that informs other systems on how to verify signatures, authenticate the controller, or discover service endpoints associated with that identifier. In plain English: a DID is not your profile, your passport, or your account record. It\u2019s the pointer other parties use to verify that you control a specific identifier and the keys behind it.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d8c7788 e-con-full e-flex e-con e-child\" data-id=\"d8c7788\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c947e5 elementor-widget elementor-widget-heading\" data-id=\"9c947e5\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">How a DID differs from traditional identifiers<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-caf0d60 elementor-widget elementor-widget-text-editor\" data-id=\"caf0d60\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">This is where people often flatten everything into \u201cjust another ID.\u201d It\u2019s not.<\/span><\/p><p><span style=\"font-weight: 400;\">An email address is really a locator inside someone else\u2019s system. If the provider suspends the account, the identifier is effectively gone. An SSN is a state-issued identifier, but it has no built-in cryptographic proof layer; anyone who gets the number can replay it. OAuth tokens are different again: they\u2019re not identity identifiers at all, but delegated access artifacts issued by an authorization server so a client can call a protected resource. Useful, yes. Portable identity layer, no.<\/span><\/p><p><span style=\"font-weight: 400;\">A DID works differently. <\/span><b>It is meant to be resolved, not merely looked up in a vendor database.<\/b><span style=\"font-weight: 400;\"> Control sits with the subject through key material and the rules of the DID method, not with a mail provider, SaaS platform, or identity broker. That distinction matters in practice. If you\u2019re building reusable credentials, wallet-based login, or verifier flows that should work across organizational boundaries, an email or app-specific user ID won\u2019t carry enough trust semantics. A DID can.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7a5ae69 e-con-full e-flex e-con e-child\" data-id=\"7a5ae69\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8625b18 elementor-widget elementor-widget-heading\" data-id=\"8625b18\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">DID structure: did:method:identifier<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f71d701 e-con-full e-flex e-con e-child\" data-id=\"f71d701\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-255c4ac elementor-widget elementor-widget-text-editor\" data-id=\"255c4ac\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">At the syntax level, the W3C model is simple: a DID has three parts: the DID scheme, a method name, and a method-specific identifier. In other words: <\/span><span style=\"font-weight: 400; color: #c63031;\">did:method:identifier<\/span><span style=\"font-weight: 400;\">.<\/span><\/p><p><span style=\"font-weight: 400;\">Take <\/span><span style=\"font-weight: 400; color: #c63031;\">did:web:example.com<\/span><span style=\"font-weight: 400;\"> as a concrete example.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ddab989 elementor-widget elementor-widget-html\" data-id=\"ddab989\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><span style=\"color: #C63031;\">did<\/span> tells you this is a decentralized identifier<\/li>\r\n     <li><span style=\"color: #C63031;\">web<\/span> tells you which DID method defines resolution rules<\/li>\r\n     <li><span style=\"color: #C63031;\">example.com<\/span> is the method-specific identifier<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-600e653 elementor-widget elementor-widget-text-editor\" data-id=\"600e653\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">With <\/span><span style=\"font-weight: 400; color: #c63031;\">did:web<\/span><span style=\"font-weight: 400;\">, resolution typically maps to a DID document published at a well-known HTTPS location on that domain. With something like <\/span><span style=\"font-weight: 400; color: #c63031;\">did:ethr<\/span><span style=\"font-weight: 400;\">, resolution depends on Ethereum-linked method rules. Same DID syntax, different trust and update model.<\/span><\/p><p><span style=\"font-weight: 400;\">That\u2019s the key point:<\/span> <span style=\"font-weight: 400;\">the DID string itself is only the handle. The method tells you how to resolve it. The DID document gives you the verification material. Once you get that, you can verify signatures, authenticate a holder, or validate a credential presentation <\/span><b>without treating the identifier as just another row in somebody\u2019s user table<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4b2adb1 e-con-full e-flex e-con e-child\" data-id=\"4b2adb1\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ede55be elementor-widget elementor-widget-heading\" data-id=\"ede55be\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Wallet and presentation protocols<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b4b9493 e-con-full e-flex e-con e-child\" data-id=\"b4b9493\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1f1bc51 elementor-widget elementor-widget-text-editor\" data-id=\"1f1bc51\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Up to this point, we\u2019ve looked at DIDs and verifiable credentials as data structures: identifiers, documents, signatures. But that\u2019s only part of a working identity system. In real deployments, the harder problem is interaction: how credentials are issued, how they\u2019re presented, and how verifiers decide whether to trust them.<\/span><\/p><p><span style=\"font-weight: 400;\">In production systems like the <\/span><a href=\"https:\/\/ec.europa.eu\/digital-building-blocks\/sites\/spaces\/EUDIGITALIDENTITYWALLET\/pages\/694487738\/EU+Digital+Identity+Wallet+Home#:~:text=The%20European%20Digital%20Identity%20Framework,types%20of%20business%20100%25%20online\" target=\"_blank\" rel=\"noopener nofollow\"><span style=\"font-weight: 400;\">EU Digital Identity Wallet <\/span><\/a><span style=\"font-weight: 400;\">or <\/span><a href=\"https:\/\/www.aamva.org\/topics\/mobile-driver-license\" target=\"_blank\" rel=\"noopener nofollow\"><span style=\"font-weight: 400;\">US mobile driver\u2019s license (mDL)<\/span><\/a><span style=\"font-weight: 400;\"> pilots, wallets and verifiers don\u2019t just \u201cresolve a DID\u201d and stop there. They communicate through defined protocols and credential formats:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3809ad9 elementor-widget elementor-widget-html\" data-id=\"3809ad9\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><b>ISO\/IEC 18013-5 (mdoc):<\/b> a standardized format for mobile credentials such as driver\u2019s licenses, optimized for device-to-device and QR-based presentation<\/li>\r\n     <li><b>OpenID4VP (verifiable presentations):<\/b> defines how a wallet presents credentials to a verifier<\/li>\r\n     <li><b>OpenID4VCI (verifiable credential issuance):<\/b> defines how credentials are issued to a wallet<\/li>\r\n     <li><b>Trust registries (e.g., VICAL):<\/b> define which issuers and schemas a verifier should accept<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d165596 elementor-widget elementor-widget-text-editor\" data-id=\"d165596\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The important distinction is that DIDs and verifiable credentials define <\/span><b>what<\/b><span style=\"font-weight: 400;\"> is being verified. These protocols define <\/span><b>how<\/b><span style=\"font-weight: 400;\"> it moves between the issuer, holder, and verifier in real systems.<\/span><\/p><p><span style=\"font-weight: 400;\">Without this layer, DIDs remain a resolution mechanism. With it, they become part of a working identity infrastructure.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8b7d02f elementor-widget elementor-widget-shortcode\" data-id=\"8b7d02f\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[blog_related_services post_in='173537,40614,68396' title='See what related services we offer']<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-66118d4 e-con-full e-flex e-con e-child\" data-id=\"66118d4\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-264b6a1 elementor-widget elementor-widget-heading\" data-id=\"264b6a1\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What is decentralized identity?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c431d59 elementor-widget elementor-widget-text-editor\" data-id=\"c431d59\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">If we strip it down, decentralized identity is a model where identifiers, credentials, and verification flows are not controlled by a single provider. Instead, identity is anchored in cryptographic keys (via DIDs), and claims about that identity are issued and verified independently of where they\u2019re used. A useful way to think about it: <\/span><b>identity stops being an account stored in someone else\u2019s database and becomes a set of verifiable statements you control and reuse.<\/b><\/p><p><span style=\"font-weight: 400;\">Let\u2019s break that down against the models you\u2019re already working with.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f89c4c2 e-con-full e-flex e-con e-child\" data-id=\"f89c4c2\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4690f74 elementor-widget elementor-widget-heading\" data-id=\"4690f74\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Decentralized identity vs centralized identity<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-97710a8 e-con-full e-flex e-con e-child\" data-id=\"97710a8\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8538115 elementor-widget elementor-widget-text-editor\" data-id=\"8538115\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Centralized identity is still the default everywhere. A platform owns the user record, stores your data, and acts as the authority for verification. If you want access, you authenticate against that system. Everything, including login, permissions, recovery, flows through it.<\/span><\/p><p><span style=\"font-weight: 400;\">The problem isn\u2019t just security (though breaches are a constant issue). It\u2019s architecture:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6ff976e elementor-widget elementor-widget-html\" data-id=\"6ff976e\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Identity is duplicated across systems<\/li>\r\n     <li>Each system becomes a honeypot of sensitive data<\/li>\r\n     <li>Verification requires access to internal records<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5eb2455 elementor-widget elementor-widget-text-editor\" data-id=\"5eb2455\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Decentralized identity flips this. The system doesn\u2019t need to store your data. It only needs to verify the claims you present. <\/span><b>The trust shifts from \u201cwe have your data\u201d to \u201cwe can verify this cryptographic proof.\u201d<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-50d47ce e-con-full e-flex e-con e-child\" data-id=\"50d47ce\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c7185d9 elementor-widget elementor-widget-heading\" data-id=\"c7185d9\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Decentralized identity vs federated identity<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ac1b9a9 e-con-full e-flex e-con e-child\" data-id=\"ac1b9a9\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-37f758e elementor-widget elementor-widget-text-editor\" data-id=\"37f758e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Federated identity (OAuth, SAML, OpenID Connect) tried to solve fragmentation by introducing identity providers, such as Google, Microsoft, or Apple, that vouch for users across services.<\/span><\/p><p><span style=\"font-weight: 400;\">It works, up to a point. But federated identity still has a central dependency:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d2d3669 elementor-widget elementor-widget-html\" data-id=\"d2d3669\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>The identity provider controls access<\/li>\r\n     <li>Tokens are issued and validated through that provider<\/li>\r\n     <li>If the provider revokes access, your identity in downstream systems collapses<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-917b2be elementor-widget elementor-widget-text-editor\" data-id=\"917b2be\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Decentralized identity removes that dependency. There\u2019s no single issuer that must be online at the time of verification. Credentials are verified via signatures, not API calls. That means:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-518a726 elementor-widget elementor-widget-html\" data-id=\"518a726\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>No runtime dependency on the issuer<\/li>\r\n     <li>No single point of failure<\/li>\r\n     <li>Credentials can be reused across domains without tight coupling<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f97472c elementor-widget elementor-widget-text-editor\" data-id=\"f97472c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">It\u2019s closer to how physical credentials work: you don\u2019t call the passport office every time someone checks your ID.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2438961 e-con-full e-flex e-con e-child\" data-id=\"2438961\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-b632b98 e-con-full e-flex e-con e-child\" data-id=\"b632b98\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c0d443c elementor-widget-tablet__width-inherit elementor-widget__width-initial max100 elementor-widget elementor-widget-heading\" data-id=\"c0d443c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Explore DID implementation for your business<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7700ed2 e-con-full e-flex e-con e-child\" data-id=\"7700ed2\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ceec5bd elementor-absolute elementor-widget-mobile__width-inherit transform elementor-widget elementor-widget-html\" data-id=\"ceec5bd\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"wave-container\"><\/div>\r\n\r\n<style>\r\n  .wave-container {\r\n    width: 400px;\r\n    height: 400px;\r\n  }\r\n\r\n  @media(max-width: 767px) {\r\n    .wave-container {\r\n      width: 100%;\r\n      height: 100%;\r\n    }\r\n  }\r\n\r\n\r\n  .wave {\r\n    position: absolute;\r\n    border: 1px solid rgba(210, 184, 214, 1);\r\n    border-radius: 50%;\r\n    animation: drop 16s infinite;\r\n    top: 50%;\r\n    left: 50%;\r\n    transform: translate(-50%, -50%);\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  @keyframes drop {\r\n    0% {\r\n      width: 0px;\r\n      height: 0px;\r\n      border: 1px solid rgba(210, 184, 214, 1);\r\n    }\r\n\r\n    100% {\r\n      width: 400px;\r\n      height: 400px;\r\n      border: 1px solid rgba(210, 184, 214, 0);\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    function createWaves(numberOfWaves) {\r\n      const waveContainers = document.querySelectorAll('.wave-container');\r\n\r\n      waveContainers.forEach((waveContainer) => {\r\n        for (let i = 0; i < numberOfWaves; i++) {\r\n          const wave = document.createElement('div');\r\n          wave.classList.add('wave');\r\n\r\n          wave.style.animationDelay = `${i * 0.8}s`;\r\n\r\n          waveContainer.appendChild(wave);\r\n        }\r\n      });\r\n    }\r\n\r\n    createWaves(10)\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b930dfc elementor-align-left elementor-widget__width-initial elementor-widget-mobile__width-inherit cta-btn elementor-widget elementor-widget-button\" data-id=\"b930dfc\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#contact-form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Talk to experts<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-da2e301 e-con-full e-flex e-con e-child\" data-id=\"da2e301\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-86d3f20 elementor-widget elementor-widget-heading\" data-id=\"86d3f20\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Decentralized identity vs self-sovereign identity (SSI)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a0ba021 e-con-full e-flex e-con e-child\" data-id=\"a0ba021\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d23b47 elementor-widget elementor-widget-text-editor\" data-id=\"5d23b47\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">These terms get mixed up a lot. SSI is more of a design philosophy: the individual controls their identity, chooses what to share, and isn\u2019t locked into a provider. Decentralized identity is the technical stack that makes that possible:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c38a640 elementor-widget elementor-widget-html\" data-id=\"c38a640\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>DIDs for identifiers<\/li>\r\n     <li>Verifiable credentials for claims<\/li>\r\n     <li>Wallets for storage and presentation<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e4d58d elementor-widget elementor-widget-text-editor\" data-id=\"7e4d58d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">You can implement decentralized identity systems that aren\u2019t fully \u201cself-sovereign\u201d (for example, enterprise-controlled wallets or permissioned networks). And you can talk about SSI without specifying the infrastructure. In real systems, the two usually converge, but it\u2019s useful to keep the distinction clear when you\u2019re designing architectures.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-70a3485 e-con-full e-flex e-con e-child\" data-id=\"70a3485\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2f2ac7b elementor-widget elementor-widget-heading\" data-id=\"2f2ac7b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Key management and recovery<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-30f077e e-con-full e-flex e-con e-child\" data-id=\"30f077e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4178718 elementor-widget elementor-widget-text-editor\" data-id=\"4178718\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Wallets are where decentralized identity meets real-world constraints. In theory, control over identity comes from controlling cryptographic keys. In practice, that creates a problem traditional systems don\u2019t have:<\/span><b> what happens when the user loses access?<\/b><\/p><p><span style=\"font-weight: 400;\">If a DID is tied to a private key and that key is lost, there is no default recovery mechanism. There\u2019s no \u201creset password\u201d flow unless the system is explicitly designed to support it. Loss of the key can mean loss of control over the identifier and the credentials bound to it.<\/span><\/p><p><span style=\"font-weight: 400;\">That\u2019s why production systems introduce recovery and custody models on top of the DID layer:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0c2e4e0 elementor-widget elementor-widget-html\" data-id=\"0c2e4e0\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><b>Social recovery:<\/b> access can be restored through trusted parties (\u201cguardians\u201d), often implemented via smart accounts and account abstraction standards like ERC-4337 (and emerging proposals such as EIP-7702)<\/li>\r\n     <li><b>MPC wallets:<\/b> private keys are split across multiple devices or services, reducing the risk of a single point of failure (used in systems like Fireblocks or Web3Auth)<\/li>\r\n     <li><b>Hardware- and passkey-backed wallets:<\/b> keys are stored in secure hardware environments such as iOS Secure Enclave or Android StrongBox, with biometric or passkey-based authentication<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1de9baa elementor-widget elementor-widget-text-editor\" data-id=\"1de9baa\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The trade-off is unavoidable: the more control shifts to the user, the more responsibility shifts to key management. That\u2019s why most real-world deployments balance self-sovereignty with usability instead of pushing full key ownership entirely onto the user.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0089397 e-con-full e-flex e-con e-child\" data-id=\"0089397\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9bb786f elementor-widget elementor-widget-heading\" data-id=\"9bb786f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">The core primitives behind decentralized identity<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5939b09 e-con-full e-flex e-con e-child\" data-id=\"5939b09\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d2def4 elementor-widget elementor-widget-text-editor\" data-id=\"5d2def4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">It\u2019s worth pausing here, because DID-based identity only really clicks once you separate its core primitives. The identifier is not the credential, the credential is not the wallet, and the on-chain marker is not the identity itself. Each layer has a distinct function, and that separation is what makes the model work.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdd2299 elementor-widget elementor-widget-html\" data-id=\"cdd2299\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><b>DIDs and DID documents.<\/b> The resolution layer. A DID points to a document that contains public keys and verification methods. When a verifier sees a DID, this is what they use to check signatures or authenticate the holder. No database lookup, just key resolution.<\/li>\r\n     <li><b>Verifiable credentials (VCs).<\/b> The claims layer. A VC is a signed statement from an issuer: \u201cThis user passed KYC,\u201d \u201cThis wallet belongs to a licensed entity,\u201d and so on. The holder stores it, presents it when needed, and the verifier checks the signature. No need to call the issuer at runtime.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ac7e44b elementor-widget elementor-widget-text-editor\" data-id=\"ac7e44b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">These two components form the core of the decentralized identity model. In some systems, especially in Web3 environments, additional on-chain mechanisms are used to enforce access or roles.<\/span><\/p><p><b>Soulbound tokens (SBTs)<\/b><span style=\"font-weight: 400;\"> are one example. They are non-transferable tokens tied to a wallet and used for things like KYC gating, accreditation, or protocol permissions. Smart contracts can check them directly.<\/span><\/p><p><span style=\"font-weight: 400;\">However, SBTs are not part of the identity stack itself. They are an optional enforcement layer built on top of identity signals, and they come with trade-offs: public visibility on-chain, limited portability, and challenges around revocation and key recovery.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1aca61c elementor-widget elementor-widget-image\" data-id=\"1aca61c\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"608\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/digital-identity-system.png\" class=\"attachment-large size-large wp-image-197386\" alt=\"Workflow of digital identity system linking DID documents, verifiable credentials, and non-transferable blockchain tokens\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/digital-identity-system.png 1000w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/digital-identity-system-300x228.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/digital-identity-system-768x584.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/digital-identity-system-16x12.png 16w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cddf402 e-con-full e-flex e-con e-child\" data-id=\"cddf402\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7491d0b elementor-widget elementor-widget-heading\" data-id=\"7491d0b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Why traditional identity systems fail<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-31822c8 elementor-widget elementor-widget-text-editor\" data-id=\"31822c8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Traditional identity systems fail because they treat trust as a storage problem. Every platform collects the same raw evidence, such as passport scans, selfies, and proof of address, then stores it inside its own compliance perimeter. That creates the same mess everywhere: duplicated PII, weak portability, broad breach surfaces, and onboarding flows that get heavier without getting much better.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-62012db e-con-full e-flex e-con e-child\" data-id=\"62012db\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0df2f9f elementor-widget elementor-widget-heading\" data-id=\"0df2f9f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Security and data breach risks<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6549167 elementor-widget elementor-widget-text-editor\" data-id=\"6549167\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In the traditional model, identity systems accumulate risk over time. KYC vendors, exchanges, fintech apps, HR platforms, and marketplaces all end up storing roughly the same evidence set: government ID, face scan, address data, and metadata from the verification session itself.<\/span><\/p><p><span style=\"font-weight: 400;\">From an implementation standpoint, the problem usually gets compounded by copy proliferation. The same user data ends up in onboarding systems, fraud tools, CRM layers, support tools, data warehouses, and compliance archives. Even if the primary verification stack is locked down, the surrounding systems often aren\u2019t held to the same standard.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-170386a e-con-full e-flex e-con e-child\" data-id=\"170386a\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1aad899 elementor-widget elementor-widget-heading\" data-id=\"1aad899\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Lack of user control and ownership<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-396f997 elementor-widget elementor-widget-text-editor\" data-id=\"396f997\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Traditional identity gives the user almost no control over the verification state. The platform controls the record, the retention policy, the re-verification schedule, and the rules for reuse.<\/span><\/p><p><span style=\"font-weight: 400;\">That means the user can\u2019t carry trust from one context to another. Passing KYC at Platform A does nothing at Platform B because the verification result is trapped inside Platform A\u2019s compliance perimeter. The underlying claim may still be valid, but there is no portable cryptographic artifact that the next verifier can rely on.<\/span><\/p><p><span style=\"font-weight: 400;\">This is where the model starts to break economically. <\/span><b>Every platform pays to rebuild trust from scratch because identity is stored as internal data, not issued as reusable proof.<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2eb60e9 e-con-full e-flex e-con e-child\" data-id=\"2eb60e9\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9749edc elementor-widget elementor-widget-heading\" data-id=\"9749edc\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Privacy and tracking issues<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c71640b elementor-widget elementor-widget-text-editor\" data-id=\"c71640b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The legacy model also reveals too much by default. To prove a narrow fact, users are usually asked to disclose the full source document behind it.<\/span><\/p><p><span style=\"font-weight: 400;\">That is a bad privacy pattern, but it is also a bad systems pattern. Once identity is tied to account-based records and repeated document submission, correlation becomes easy across services, sessions, and counterparties. <\/span><b>The verifier gets more data than it needs, stores more than it should, and increases liability without improving trust quality proportionally.<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cdbeea0 e-con-full e-flex e-con e-child\" data-id=\"cdbeea0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fb67737 elementor-widget elementor-widget-heading\" data-id=\"fb67737\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Inefficiencies in verification and onboarding<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-22bf83f elementor-widget elementor-widget-text-editor\" data-id=\"22bf83f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">This is the operational tax everyone already knows. The same person completes KYC over and over because each platform runs its own trust stack and can\u2019t consume verification as a portable credential.<\/span><\/p><p><span style=\"font-weight: 400;\">If you\u2019ve worked on tokenization, exchange onboarding, or regulated wallet flows, you\u2019ve seen how wasteful this gets. The bottleneck is the fact that trust can\u2019t move cleanly between systems, so every institution rebuilds the same verification pipeline around its own database boundary.<\/span><\/p><p><span style=\"font-weight: 400;\">And even verifiable credentials don\u2019t fix that by themselves. A valid signature only proves that a claim was issued by a specific party. It does not prove that this party had the authority to issue that claim. That is the part that many DID pilots underestimate. Verifiers need to know which issuers are legitimate, which credential schemas are accepted, and under which rules a claim can be relied on.<\/span><\/p><p><span style=\"font-weight: 400;\">In production, this is handled through trust frameworks:<\/span><b> eIDAS 2.0<\/b><span style=\"font-weight: 400;\"> trust lists in the EU, <\/span><b>VICAL-style<\/b><span style=\"font-weight: 400;\"> trust coordination for mobile driver\u2019s licenses under ISO 18013-5, <\/span><b>OpenID Federation<\/b><span style=\"font-weight: 400;\"> trust chains, and national trust service provider registries.<\/span><\/p><p><span style=\"font-weight: 400;\">Without that layer, you don\u2019t get reusable identity. You get credentials that verify mathematically but mean nothing operationally. The signature is valid. The trust is missing.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6e62020 e-con-full author-quote e-flex e-con e-child\" data-id=\"6e62020\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d9e8c41 elementor-widget elementor-widget-text-editor\" data-id=\"d9e8c41\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u201c<i><span style=\"font-weight: 400;\">Why does the decentralized identity model work? Because it gives each party less to store, less to expose, and less to re-check. The user reuses trusted proof, the verifier gets only the claim it needs, and the platform avoids becoming another PII vault. At Innowise, that usually means off-chain credentials for portability, on-chain attestations for access control, and selective disclosure for privacy-sensitive checks.<\/span><\/i>\u201d<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-af6a849 e-grid e-con-full e-con e-child\" data-id=\"af6a849\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-70b28cc elementor-widget elementor-widget-image\" data-id=\"70b28cc\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"180\" height=\"180\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/Andrew-Nalichaev-1.png\" class=\"attachment-full size-full wp-image-194961\" alt=\"\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/Andrew-Nalichaev-1.png 180w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/Andrew-Nalichaev-1-150x150.png 150w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/Andrew-Nalichaev-1-12x12.png 12w\" sizes=\"(max-width: 180px) 100vw, 180px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b6e8fbe e-con-full max100 e-flex e-con e-child\" data-id=\"b6e8fbe\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a3c76f4 elementor-widget elementor-widget-heading\" data-id=\"a3c76f4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/innowise.com\/authors\/andrew-nalichaev\/\">Andrew Nalichaev<\/a><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-be837bc elementor-widget elementor-widget-text-editor\" data-id=\"be837bc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Blockchain Expert &amp; DeFi Analyst<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-524dd2a e-con-full e-flex e-con e-child\" data-id=\"524dd2a\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cc66f7f elementor-widget elementor-widget-heading\" data-id=\"cc66f7f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How decentralized identifiers and verifiable credentials work<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-37d5e2d e-con-full e-flex e-con e-child\" data-id=\"37d5e2d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f8059e3 elementor-widget elementor-widget-text-editor\" data-id=\"f8059e3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Enough with definitions. What matters here is the verification path: how a DID becomes resolvable, how an issuer binds a claim to it, and how that claim is checked later without falling back to a central registry. Let\u2019s walk through the flow end to end.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8cd16de elementor-element-5acb955 custom-roadmap elementor-widget elementor-widget-html\" data-id=\"8cd16de\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n    .elementor-element-5acb955 .blog-roadmap {\n    display: flex;\n    flex-direction: column;\n\n    width: 100%;\n}\n\n.elementor-element-5acb955 p {\n    margin: 0;\n}\n\n\n.elementor-element-5acb955 .blog-roadmap-item {\n    display: grid;\n\n    grid-template-columns: 345px 1fr;\n\n    place-items: stretch;\n\n    color: #2e2e2e;\n    \n    padding-top: 12px;\n    padding-bottom: 12px;\n    padding-left: 10px;\n    border-bottom: 1px solid #999999;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item__title {\n    display: flex;\n    \n    align-items: center;\n\n    gap: 22px;\n}\n\n\n.elementor-element-5acb955 .blog-roadmap-item__content {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n\n    padding-top: 20px;\n    padding-right: 30px;\n    padding-bottom: 20px;\n    padding-left: 30px;\n    \n    font-family: Karla;\n    font-weight: 400;\n    font-size: 18px;\n    line-height: 150%;\n    letter-spacing: 0%;\n\n\n}\n\n.elementor-element-5acb955 .blog-roadmap-item__content > * {\n    font: inherit;\n}\n\n\n.elementor-element-5acb955 .blog-roadmap-item .blog-roadmap-item__content ul {\n    gap: 10px;\n}\n\n\n.elementor-element-5acb955 .blog-roadmap-item__title__text-block {\n    font-family: Sora;\n    font-weight: 600;\n    font-size: 20px;\n    line-height: 26px;\n    letter-spacing: 0%;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item__title__num-block {\n    display: flex;\n    flex-direction: column;\n\n    align-self: stretch;\n\n    justify-content: space-between;\n    align-items: center;\n    \n    min-width: 23px;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item__title__num-block__num {\n    font-family: Karla;\n    font-weight: 700;\n    font-size: 18px;\n    line-height: 21.04px;\n    letter-spacing: 0%;\n\n    color: #C63031;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item__title__num-block__arrow {\n    width: 10px;\n    height: 16px;\n\n    display: flex;\n}\n\n@media (max-width: 1320px) {\n    .elementor-element-5acb955 .blog-roadmap-item__content {\n        padding-right: 0;\n    }\n    \n    .elementor-element-5acb955 .blog-roadmap-item {\n        grid-template-columns: 253px 1fr;\n        \n        padding: 10px;\n    }\n\n    .elementor-element-5acb955 .blog-roadmap-item__title {\n        gap: 20px;\n    }\n    \n\n    .elementor-element-5acb955 .blog-roadmap-item__title__num-block__num {\n        font-family: Sora;\n        font-weight: 600;\n        font-size: 16px;\n        line-height: 20.16px;\n        letter-spacing: 0%;\n    \n        color: #C63031;\n    }\n}\n\n@media (max-width: 1279px) {\n    .elementor-element-5acb955 .blog-roadmap-item {\n        padding: 10px;\n    }\n\n}\n\n\n.elementor-element-5acb955 .blog-roadmap-mobile {\n    display: none;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile {\n    display: flex;\n    gap: 16px;\n\n    align-items: stretch;\n\n    padding-top: 20px;\n    padding-bottom: 20px;\n    border-bottom: 1px solid #999999;\n    \n    cursor: pointer;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile__main-wrapper {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile__title {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile__title__num {\n    font-family: Sora;\n    font-weight: 600;\n    font-size: 14px;\n    line-height: 18.2px;\n    letter-spacing: 0%;\n\n    color: #C63031;\n    \n    min-width: 20px;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile__title__text {\n    font-family: Sora;\n    font-weight: 400;\n    font-size: 14px;\n    line-height: 18.2px;\n    letter-spacing: 0%;\n}\n\n\n.elementor-element-5acb955 .active .blog-roadmap-item-mobile__title__text {\n    font-weight: 600;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile__content {\n    font-family: Karla;\n    font-weight: 400;\n    font-size: 14px;\n    line-height: 150%;\n    letter-spacing: 0%;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile__content > * {\n    font: inherit;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile__content ul {\n    gap: 8px !important;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile__side-arrow-wrapper {\n\n    position: relative;\n\n    display: flex;\n\n    align-items: center;\n\n    width: 8px;\n    \n    \n    object-fit: cover;\n    \n    flex-shrink: 0;\n    \n    clip-path: inset(0 -100vw);\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile:not(.active) .blog-roadmap-item-mobile__content {\n    display: none;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile.active .blog-roadmap-item-mobile__side-arrow-wrapper {\n\n    display: flex;\n    align-items: end;\n\n    align-self: stretch;\n\n    position: relative;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile .side-arrow--closed {\n    display: flex;\n    transform:translateX(-50%);\n\n    opacity: 0.2;\n}\n.elementor-element-5acb955 .blog-roadmap-item-mobile .side-arrow--open {\n    display: none;\n}\n\n.elementor-element-5acb955 .blog-roadmap-item-mobile.active .side-arrow--closed {\n    display: none;\n}\n.elementor-element-5acb955 .blog-roadmap-item-mobile.active .side-arrow--open {\n    display: flex;\n\n    position: absolute;\n    transform:translateX(-50%);\n    \n    opacity: 1;\n\n    bottom: 0;\n}\n\n\n\n@media (max-width: 767px) {\n    \n    \n    .elementor-element-5acb955 .blog-roadmap {\n        display: none;\n    }\n    .elementor-element-5acb955 .blog-roadmap-mobile {\n        display: flex;\n        flex-direction: column;\n\n        width: 100%;\n    }\n}\n<\/style>\n\n<div class=\"blog-roadmap\">\n    \n    <div class=\"blog-roadmap-item\">\n        <div class=\"blog-roadmap-item__title\">\n            <div class=\"blog-roadmap-item__title__num-block\">\n                <span class=\"blog-roadmap-item__title__num-block__num\">01<\/span>\n                <img decoding=\"async\" class=\"blog-roadmap-item__title__num-block__arrow\" src=\"https:\/\/i.ibb.co\/t4Px1j6\/Rectangle-784-2.png\" \/ alt=\"\">\n            <\/div>\n            <span class=\"blog-roadmap-item__title__text-block\">The DID is created and resolved<\/span>\n        <\/div>\n        <div class=\"blog-roadmap-item__content\">\n            <p>A DID only becomes useful once it can be resolved. It is generated with key material and published according to a DID method. Resolution returns the DID document, which exposes the public keys and verification methods others use to validate signatures.<\/p>\n        <\/div>\n    <\/div>\n\n    <div class=\"blog-roadmap-item\">\n        <div class=\"blog-roadmap-item__title\">\n            <div class=\"blog-roadmap-item__title__num-block\">\n                <span class=\"blog-roadmap-item__title__num-block__num\">02<\/span>\n                <img decoding=\"async\" class=\"blog-roadmap-item__title__num-block__arrow\" src=\"https:\/\/i.ibb.co\/t4Px1j6\/Rectangle-784-2.png\" \/ alt=\"\">\n            <\/div>\n            <span class=\"blog-roadmap-item__title__text-block\">The issuer binds a claim to that DID<\/span>\n        <\/div>\n        <div class=\"blog-roadmap-item__content\">\n            <p>Once the subject has a DID, an issuer can attach a signed claim to it as a verifiable credential. The issuer runs its checks first, then signs a credential that binds the claim to the subject identifier. What moves forward is not raw evidence, but an attested result.<\/p>\n        <\/div>\n    <\/div>\n\n    <div class=\"blog-roadmap-item\">\n        <div class=\"blog-roadmap-item__title\">\n            <div class=\"blog-roadmap-item__title__num-block\">\n                <span class=\"blog-roadmap-item__title__num-block__num\">03<\/span>\n                <img decoding=\"async\" class=\"blog-roadmap-item__title__num-block__arrow\" src=\"https:\/\/i.ibb.co\/t4Px1j6\/Rectangle-784-2.png\" \/ alt=\"\">\n            <\/div>\n            <span class=\"blog-roadmap-item__title__text-block\">The holder presents the claim<\/span>\n        <\/div>\n        <div class=\"blog-roadmap-item__content\">\n            <p>The holder stores the credential, usually in a wallet, and presents it when proof is needed. Depending on the stack, that can be the full credential or a derived proof. The point is reuse: the holder presents an already verified claim instead of restarting onboarding.<\/p>\n        <\/div>\n    <\/div>\n\n    <div class=\"blog-roadmap-item\">\n        <div class=\"blog-roadmap-item__title\">\n            <div class=\"blog-roadmap-item__title__num-block\">\n                <span class=\"blog-roadmap-item__title__num-block__num\">04<\/span>\n            <\/div>\n            <span class=\"blog-roadmap-item__title__text-block\">The verifier validates it locally<\/span>\n        <\/div>\n        <div class=\"blog-roadmap-item__content\">\n            <p>The verifier checks the issuer\u2019s signature, confirms the subject binding, and evaluates credential status, such as expiry or revocation. To do that, it resolves the issuer\u2019s DID and retrieves the public key from the DID document. No issuer callback is required.<\/p>\n        <\/div>\n    <\/div>\n\n<\/div>\n\n<div class=\"blog-roadmap-mobile\">\n\n    <div class=\"blog-roadmap-item-mobile active\">\n\n        <div class=\"blog-roadmap-item-mobile__side-arrow-wrapper\">\n            <img decoding=\"async\" class=\"side-arrow--open\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/01\/Line-404-2.svg\" alt=\"arrow-icon\" \/>\n\n            <img decoding=\"async\" class=\"side-arrow--closed\" src=\"https:\/\/i.ibb.co\/t4Px1j6\/Rectangle-784-2.png\" alt=\"arrow-icon\" \/>\n        <\/div>\n\n        <div class=\"blog-roadmap-item-mobile__main-wrapper\">\n            <div class=\"blog-roadmap-item-mobile__title\">\n                <span class=\"blog-roadmap-item-mobile__title__num\">01<\/span>\n                <span class=\"blog-roadmap-item-mobile__title__text\">The DID is created and resolved<\/span>\n            <\/div>\n            <div class=\"blog-roadmap-item-mobile__content\">\n                <p>A DID only becomes useful once it can be resolved. It is generated with key material and published according to a DID method. Resolution returns the DID document, which exposes the public keys and verification methods others use to validate signatures.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"blog-roadmap-item-mobile\">\n\n        <div class=\"blog-roadmap-item-mobile__side-arrow-wrapper\">\n            <img decoding=\"async\" class=\"side-arrow--open\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/01\/Line-404-2.svg\" alt=\"arrow-icon\" \/>\n\n            <img decoding=\"async\" class=\"side-arrow--closed\" src=\"https:\/\/i.ibb.co\/t4Px1j6\/Rectangle-784-2.png\" alt=\"arrow-icon\" \/>\n        <\/div>\n\n        <div class=\"blog-roadmap-item-mobile__main-wrapper\">\n            <div class=\"blog-roadmap-item-mobile__title\">\n                <span class=\"blog-roadmap-item-mobile__title__num\">02<\/span>\n                <span class=\"blog-roadmap-item-mobile__title__text\">The issuer binds a claim to that DID<\/span>\n            <\/div>\n            <div class=\"blog-roadmap-item-mobile__content\">\n                <p>Once the subject has a DID, an issuer can attach a signed claim to it as a verifiable credential. The issuer runs its checks first, then signs a credential that binds the claim to the subject identifier. What moves forward is not raw evidence, but an attested result.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"blog-roadmap-item-mobile\">\n\n        <div class=\"blog-roadmap-item-mobile__side-arrow-wrapper\">\n            <img decoding=\"async\" class=\"side-arrow--open\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/01\/Line-404-2.svg\" alt=\"arrow-icon\" \/>\n\n            <img decoding=\"async\" class=\"side-arrow--closed\" src=\"https:\/\/i.ibb.co\/t4Px1j6\/Rectangle-784-2.png\" alt=\"arrow-icon\" \/>\n        <\/div>\n\n        <div class=\"blog-roadmap-item-mobile__main-wrapper\">\n            <div class=\"blog-roadmap-item-mobile__title\">\n                <span class=\"blog-roadmap-item-mobile__title__num\">03<\/span>\n                <span class=\"blog-roadmap-item-mobile__title__text\">The holder presents the claim<\/span>\n            <\/div>\n            <div class=\"blog-roadmap-item-mobile__content\">\n                <p>The holder stores the credential, usually in a wallet, and presents it when proof is needed. Depending on the stack, that can be the full credential or a derived proof. The point is reuse: the holder presents an already verified claim instead of restarting onboarding.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"blog-roadmap-item-mobile\">\n\n        <div class=\"blog-roadmap-item-mobile__side-arrow-wrapper\">\n            <img decoding=\"async\" class=\"side-arrow--open\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/01\/Line-404-2.svg\" alt=\"arrow-icon\" \/>\n\n            <img decoding=\"async\" class=\"side-arrow--closed\" src=\"https:\/\/i.ibb.co\/t4Px1j6\/Rectangle-784-2.png\" alt=\"arrow-icon\" \/>\n        <\/div>\n\n        <div class=\"blog-roadmap-item-mobile__main-wrapper\">\n            <div class=\"blog-roadmap-item-mobile__title\">\n                <span class=\"blog-roadmap-item-mobile__title__num\">04<\/span>\n                <span class=\"blog-roadmap-item-mobile__title__text\">The verifier validates it locally<\/span>\n            <\/div>\n            <div class=\"blog-roadmap-item-mobile__content\">\n                <p>The verifier checks the issuer\u2019s signature, confirms the subject binding, and evaluates credential status, such as expiry or revocation. To do that, it resolves the issuer\u2019s DID and retrieves the public key from the DID document. No issuer callback is required.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n\n<\/div>\n\n<script>\n\n    document.addEventListener('DOMContentLoaded', () => {\n      const mobileRoadmapItems = [...document.querySelectorAll('.blog-roadmap-item-mobile')];\n  \n      mobileRoadmapItems.forEach(item => {\n\n        item.addEventListener('click', () => {\n          const isActive = item.classList.contains('active');\n  \n          \/\/ Collapse all items\n          mobileRoadmapItems.forEach(nav => {\n            nav.classList.remove('active');\n            \/*const ul = nav.querySelector('.mobile-domain-list');\n            if (ul) ul.style.maxHeight = '0';*\/\n          });\n  \n          \/\/ Expand clicked item only if it was not active\n          if (!isActive) {\n            item.classList.add('active');\n            \/*const ul = item.querySelector('.mobile-domain-list');\n            if (ul) ul.style.maxHeight = \"unset\"; \/\/ul.scrollHeight + 'px';*\/\n          }\n        });\n        \n      });\n    });\n  \n<\/script>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f02dd6f e-con-full e-flex e-con e-child\" data-id=\"f02dd6f\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fb12980 elementor-widget elementor-widget-heading\" data-id=\"fb12980\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Public vs private (pairwise) DIDs and key management<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f0289e4 e-con-full e-flex e-con e-child\" data-id=\"f0289e4\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0e75644 elementor-widget elementor-widget-text-editor\" data-id=\"0e75644\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Once the flow is clear, the real design questions show up: how identifiers are used and how keys are managed over time.<\/span><\/p><p><b>A public DID<\/b> <b>is stable and discoverable.<\/b><span style=\"font-weight: 400;\"> Issuers typically use it because verifiers need a consistent way to resolve keys and validate signatures. <\/span><b>A pairwise DID, on the other hand, is generated per relationship.<\/b><span style=\"font-weight: 400;\"> The same user presents different identifiers to different verifiers, which prevents cross-service correlation.<\/span><\/p><p><span style=\"font-weight: 400;\">That choice is not cosmetic. Reusing a single DID across services makes linkage trivial. Pairwise DIDs break that linkage at the identifier level.<\/span><\/p><p><span style=\"font-weight: 400;\">Then there is key management, which is where most systems struggle in production. A DID is only as reliable as the keys behind it, so you need to plan for:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e6ba2f elementor-widget elementor-widget-html\" data-id=\"9e6ba2f\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Key rotation without invalidating existing credentials<\/li>\r\n     <li>Recovery mechanisms if a holder loses access to their wallet or device<\/li>\r\n     <li>Key separation, where authentication keys and credential assertion keys serve different purposes<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-690c31c elementor-widget elementor-widget-text-editor\" data-id=\"690c31c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In practice, this is where the complexity sits. Signature verification is straightforward. Keeping identifiers usable, recoverable, and non-correlatable over time is the harder engineering problem.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a102737 e-con-full e-flex e-con e-child\" data-id=\"a102737\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-3070dca e-con-full e-flex e-con e-child\" data-id=\"3070dca\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-71fb5e3 elementor-widget-tablet__width-inherit elementor-widget__width-initial max100 elementor-widget elementor-widget-heading\" data-id=\"71fb5e3\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Develop DID-based apps with our blockchain experts<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-aa524d3 e-con-full e-flex e-con e-child\" data-id=\"aa524d3\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e44c199 elementor-absolute elementor-widget-mobile__width-inherit transform elementor-widget elementor-widget-html\" data-id=\"e44c199\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"wave-container\"><\/div>\r\n\r\n<style>\r\n  .wave-container {\r\n    width: 400px;\r\n    height: 400px;\r\n  }\r\n\r\n  @media(max-width: 767px) {\r\n    .wave-container {\r\n      width: 100%;\r\n      height: 100%;\r\n    }\r\n  }\r\n\r\n\r\n  .wave {\r\n    position: absolute;\r\n    border: 1px solid rgba(210, 184, 214, 1);\r\n    border-radius: 50%;\r\n    animation: drop 16s infinite;\r\n    top: 50%;\r\n    left: 50%;\r\n    transform: translate(-50%, -50%);\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  @keyframes drop {\r\n    0% {\r\n      width: 0px;\r\n      height: 0px;\r\n      border: 1px solid rgba(210, 184, 214, 1);\r\n    }\r\n\r\n    100% {\r\n      width: 400px;\r\n      height: 400px;\r\n      border: 1px solid rgba(210, 184, 214, 0);\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    function createWaves(numberOfWaves) {\r\n      const waveContainers = document.querySelectorAll('.wave-container');\r\n\r\n      waveContainers.forEach((waveContainer) => {\r\n        for (let i = 0; i < numberOfWaves; i++) {\r\n          const wave = document.createElement('div');\r\n          wave.classList.add('wave');\r\n\r\n          wave.style.animationDelay = `${i * 0.8}s`;\r\n\r\n          waveContainer.appendChild(wave);\r\n        }\r\n      });\r\n    }\r\n\r\n    createWaves(10)\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1f3e49a elementor-align-left elementor-widget__width-initial elementor-widget-mobile__width-inherit cta-btn elementor-widget elementor-widget-button\" data-id=\"1f3e49a\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#contact-form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Get started<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3df81c5 e-con-full e-flex e-con e-child\" data-id=\"3df81c5\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-72dcdd1 elementor-widget elementor-widget-heading\" data-id=\"72dcdd1\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">DID documents, methods, and infrastructure<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c778ec elementor-widget elementor-widget-text-editor\" data-id=\"1c778ec\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Once you move past the flow, the next question is how identifiers are actually resolved and maintained. That comes down to two things: <\/span><b>the<\/b> <b>DID document structure<\/b><span style=\"font-weight: 400;\"> and<\/span><b> the<\/b> <b>DID method<\/b><span style=\"font-weight: 400;\"> that defines how it is created, updated, and resolved.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c93e866 e-con-full e-flex e-con e-child\" data-id=\"c93e866\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ef50e97 elementor-widget elementor-widget-heading\" data-id=\"ef50e97\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Key elements of a DID document<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1613245 e-con-full e-flex e-con e-child\" data-id=\"1613245\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9620b92 elementor-widget elementor-widget-text-editor\" data-id=\"9620b92\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">A DID document is the resolution output of a DID. It tells verifiers which keys, controllers, and service endpoints are authorized for that identifier. In practice, it is not a user profile. It is a verification descriptor.<\/span><\/p><p><span style=\"font-weight: 400;\">Core fields you usually care about:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7140cbf elementor-widget elementor-widget-html\" data-id=\"7140cbf\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><b>ID:<\/b> The DID the document describes, for example, <span style=\"color: #C63031\">did:web:example.com<\/span>.<\/li>\r\n     <li><b>Controller:<\/b> The entity allowed to make changes to the DID document. In simple setups, the DID controls itself. In enterprise setups, control can be delegated or split.<\/li>\r\n     <li><b>Verification methods:<\/b> Public keys and their types, such as Ed25519, secp256k1, or JsonWebKey2020. These are used to verify signatures.<\/li>\r\n     <li><b>Authentication:<\/b>  Which verification methods can prove control of the DID, for example, in login or challenge-response flows.<\/li>\r\n     <li><b>Assertion methods:<\/b> Which keys are allowed to sign verifiable credentials when the DID acts as an issuer.<\/li>\r\n     <li><b>Service endpoints:<\/b> Optional pointers to off-chain services like credential exchange, messaging, or status registries.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dce8293 elementor-widget elementor-widget-image\" data-id=\"dce8293\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"306\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/did-documemt-components.png\" class=\"attachment-large size-large wp-image-197389\" alt=\"Key components of a DID document explained, including controller, verification methods, authentication, and service endpoints\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/did-documemt-components.png 1000w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/did-documemt-components-300x115.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/did-documemt-components-768x294.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/05\/did-documemt-components-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e318544 elementor-widget elementor-widget-text-editor\" data-id=\"e318544\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">And the key implementation point stays the same: a verifier resolves the DID, selects the appropriate verification method, and checks whether that key is authorized for the operation being performed.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3165167 e-con-full e-flex e-con e-child\" data-id=\"3165167\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7e4de0d elementor-widget elementor-widget-heading\" data-id=\"7e4de0d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Organizational DIDs and delegation<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a04c35 elementor-widget elementor-widget-text-editor\" data-id=\"7a04c35\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">So far, we\u2019ve mostly talked about identity as something a person controls. In B2B systems, the key subject is often an organization. Banks, logistics providers, and RWA platforms need to verify not just <\/span><i><span style=\"font-weight: 400;\">who<\/span><\/i><span style=\"font-weight: 400;\"> signed something, but whether that person was authorized to act for a company.<\/span><\/p><p><span style=\"font-weight: 400;\">That is where organizational DIDs get more complex. Control is distributed across roles, custody systems, signing policies, and delegation rules. A production setup has to define who can sign, what they can sign, and how that authority is revoked.<\/span><\/p><p><span style=\"font-weight: 400;\">In practice, this can involve <\/span><b>vLEI<\/b><span style=\"font-weight: 400;\"> from GLEIF for legal entity identity, corporate wallets with <\/span><b>HSM-backed signing<\/b><span style=\"font-weight: 400;\">, and authorization capability chains such as <\/span><b>ZCAP-LD<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-502ab68 e-con-full e-flex e-con e-child\" data-id=\"502ab68\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-558261a elementor-widget elementor-widget-heading\" data-id=\"558261a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Updates and key rotation<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6844102 elementor-widget elementor-widget-text-editor\" data-id=\"6844102\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">DID documents are not static. Keys expire, devices get lost, signing infrastructure changes, and issuer keys need rotation. A serious DID design has to handle this without breaking existing credentials.<\/span><\/p><p><span style=\"font-weight: 400;\">Key rotation usually means adding a new verification method, changing which key is authorized for a given relationship, and retiring the old key. But the detail that matters is <\/span><b>purpose<\/b><span style=\"font-weight: 400;\">. Rotating an <\/span><span style=\"font-weight: 400; color: #c63031;\">authentication<\/span><span style=\"font-weight: 400;\"> key affects login or challenge-response flows. Rotating an <\/span><span style=\"font-weight: 400; color: #c63031;\">assertionMethod<\/span><span style=\"font-weight: 400;\"> key affects credential issuance and verification.<\/span><\/p><p><span style=\"font-weight: 400;\">The update path depends on the DID method. With<\/span><span style=\"font-weight: 400; color: #c63031;\"> did:web<\/span><span style=\"font-weight: 400;\">, you update the hosted DID document. With <\/span><span style=\"font-weight: 400; color: #c63031;\">did:ethr<\/span><span style=\"font-weight: 400;\">, you publish a transaction to the registry. The hard part is continuity: verifiers must know which key was valid when a credential was issued and whether that credential has since been revoked, expired, or superseded.<\/span><\/p><p><span style=\"font-weight: 400;\">And that brings us to DID methods, because the method defines exactly how creation, resolution, updates, and deactivation work in the real system.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3812cdf e-con-full e-flex e-con e-child\" data-id=\"3812cdf\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dede432 elementor-widget elementor-widget-heading\" data-id=\"dede432\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">What is a DID method<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5db77e9 e-con-full e-flex e-con e-child\" data-id=\"5db77e9\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3f1f528 elementor-widget elementor-widget-text-editor\" data-id=\"3f1f528\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">A DID method is the implementation layer behind the standard DID syntax.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">It defines the rules for:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1d65008 elementor-widget elementor-widget-html\" data-id=\"1d65008\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>How a DID is created<\/li>\r\n     <li>How it is resolved to a DID document<\/li>\r\n     <li>How updates and deactivation are handled<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9ae0ca7 elementor-widget elementor-widget-text-editor\" data-id=\"9ae0ca7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In other words, the DID syntax is standard (<\/span><span style=\"font-weight: 400; color: #c63031;\">did:method:identifier<\/span><span style=\"font-weight: 400;\">), but the method shapes the whole infrastructure model behind the DID.<\/span><\/p><p><span style=\"font-weight: 400;\">These three methods cover most real-world use cases:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6c79390 elementor-widget elementor-widget-html\" data-id=\"6c79390\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"criteria-table\">\r\n    <div class=\"custom-table-wrapper\">\r\n       <div class=\"custom-table\">\r\n  <div class=\"row header\">\r\n    <div class=\"cell\">Criteria<\/div>\r\n    <div class=\"cell\">did:key<\/div>\r\n    <div class=\"cell\">did:web<\/div>\r\n    <div class=\"cell\">did:ethr<\/div>\r\n  <\/div>\r\n\r\n  <div class=\"row data\">\r\n    <div class=\"cell\">Resolution model<\/div>\r\n    <div class=\"cell\">Deterministic (derived from public key)<\/div>\r\n    <div class=\"cell\">HTTPS (well-known DID document path)<\/div>\r\n    <div class=\"cell\">Ethereum DID registry (on-chain)<\/div>\r\n  <\/div>\r\n  \r\n  <div class=\"row data\">\r\n    <div class=\"cell\">Update model<\/div>\r\n    <div class=\"cell\">Not updatable<\/div>\r\n    <div class=\"cell\">Off-chain (domain-hosted)<\/div>\r\n    <div class=\"cell\">On-chain transactions<\/div>\r\n  <\/div>\r\n  \r\n  <div class=\"row data\">\r\n    <div class=\"cell\">Trust model<\/div>\r\n    <div class=\"cell\">Direct key control<\/div>\r\n    <div class=\"cell\">DNS + TLS + domain control<\/div>\r\n    <div class=\"cell\">Blockchain consensus (Ethereum)<\/div>\r\n  <\/div>\r\n  \r\n  <div class=\"row data\">\r\n    <div class=\"cell\">Typical use case<\/div>\r\n    <div class=\"cell\">Ephemeral IDs, peer DIDs, testing<\/div>\r\n    <div class=\"cell\">Enterprises, SaaS, issuer DIDs<\/div>\r\n    <div class=\"cell\">Web3, tokenization, on-chain identity<\/div>\r\n  <\/div>\r\n\r\n  \r\n<\/div> \r\n    <\/div>\r\n  \r\n    \r\n<\/div>\r\n\r\n<style>\r\n  .custom-table-wrapper{\r\n     overflow-x: auto; \r\n  }\r\n  \r\n  .custom-table {\r\n    width: 100%;\r\n    margin: 0;\r\n    display: flex;\r\n    flex-direction: column;\r\n    border-collapse: collapse;\r\n    gap: 0;\r\n  }\r\n\r\n  .custom-table.row.data {\r\n    border-bottom: 1px solid black;\r\n  }\r\n\r\n  .custom-table .row {\r\n    display: grid;\r\n    font-size: 18px;\r\n    border-bottom: 1px solid #000;\r\n    font-weight: 600;\r\n  }\r\n\r\n  .custom-table .cell {\r\n    background-color: unset;\r\n    color: #2e2e2e;\r\n    font-family: Karla;\r\n    font-size: 18px;\r\n    font-weight: 400;\r\n    line-height: 27px;\r\n    vertical-align: top;\r\n    margin: 0;\r\n    padding: 20px;\r\n  }\r\n  \r\n  .custom-table .cell:first-child{\r\n      padding-left: 0;\r\n  }\r\n  \r\n  .custom-table .cell:last-child{\r\n      padding-right: 0;\r\n  }\r\n\r\n  .custom-table .header {\r\n    font-weight: 600;\r\n    border-bottom: 1px solid #000;\r\n    text-align: left;\r\n  }\r\n\r\n  .custom-table .row.header .cell {\r\n    font-weight: 700;\r\n    padding-top: 0;\r\n  }\r\n\r\n  .custom-table .row.hidden {\r\n    display: none;\r\n  }\r\n  \r\n  .table-toggle {\r\n      display: inline-block;\r\n      color: #c63031;\r\n      font-family: Karla;\r\n      font-weight: 700;\r\n      font-size: 22px;\r\n      line-height: 150%;\r\n      margin-top: 20px;\r\n      margin-left: 20px;\r\n      cursor: pointer;\r\n    }\r\n  \r\n  .table-toggle {\r\n    display: none;\r\n  }\r\n\r\n  \/* ====== RESPONSIVE ====== *\/\r\n\r\n  @media (max-width: 1279px) {\r\n    .custom-table {\r\n      min-width: 1000px;\r\n    }\r\n  }\r\n  \r\n  @media (max-width: 1024px){\r\n      .table-toggle{\r\n          display: block;\r\n      }\r\n  }\r\n\r\n  @media (max-width: 767px) {\r\n    .custom-table {\r\n      min-width: 732px;\r\n    }\r\n\r\n    .custom-table .cell {\r\n      font-size: 14px;\r\n      line-height: 21px;\r\n      padding: 20px 10px;\r\n    }\r\n    \r\n    .table-toggle{\r\n        font-size: 16px;\r\n        line-height: 140%;\r\n    }\r\n  }\r\n  \r\n  .criteria-table .row{\r\n    grid-template-columns: 20% 1fr 1fr 1fr;  \r\n  }\r\n  \r\n  .criteria-table .row .cell:first-child {\r\n      font-weight: bold;\r\n  }\r\n  \r\n  .criteria-table .row:first-child .cell:not(:first-child) {\r\n      color: #C63031;\r\n  }\r\n<\/style>\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f2a956b e-con-full e-flex e-con e-child\" data-id=\"f2a956b\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f94af3e elementor-widget elementor-widget-heading\" data-id=\"f94af3e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Choosing the right DID method<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b1f796d e-con-full e-flex e-con e-child\" data-id=\"b1f796d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bafec60 elementor-widget elementor-widget-text-editor\" data-id=\"bafec60\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Now the table gives you the mechanics. The harder part is deciding which failure mode you can live with: DNS dependence, chain cost, no rotation, public auditability, or weaker portability. So here\u2019s my take on how to choose.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3cc3926 elementor-widget elementor-widget-html\" data-id=\"3cc3926\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Use <span style=\"color: #C63031;\">did:web<\/span> for enterprise issuers, SaaS products, and regulated workflows where domain control is already part of the trust model. <b>It is cheap to operate, easy to monitor, and friendly to existing infrastructure.<\/b><\/li>\r\n     <li>Use <span style=\"color: #C63031;\">did:ethr<\/span> when identity has to be consumed by smart contracts, token-gated flows, on-chain KYC, or tokenization logic. <b>You pay more in gas and latency, but you get chain-based auditability.<\/b><\/li>\r\n     <li>Use <span style=\"color: #C63031;\">did:key<\/span> for short-lived identifiers, test environments, peer-to-peer flows, or cases where you do not need rotation. <b>It is clean and portable, but not a good fit for long-lived issuer identity.<\/b><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d17bcf elementor-widget elementor-widget-text-editor\" data-id=\"7d17bcf\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Before choosing, ask the ugly production questions:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f6c396c elementor-widget elementor-widget-html\" data-id=\"f6c396c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Who can update the DID document?<\/li>\r\n     <li>What happens if the signing key is compromised?<\/li>\r\n     <li>Can verifiers still validate old credentials after rotation?<\/li>\r\n     <li>Does public resolution create privacy risk?<\/li>\r\n     <li>Will verification happen off-chain, on-chain, or both?<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5f377c3 elementor-widget elementor-widget-text-editor\" data-id=\"5f377c3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In real deployments, you usually mix methods. Issuers often use <\/span><span style=\"font-weight: 400; color: #c63031;\">did:web<\/span><span style=\"font-weight: 400;\"> or <\/span><span style=\"font-weight: 400; color: #c63031;\">did:ethr<\/span><span style=\"font-weight: 400;\">; holders use pairwise or ephemeral identifiers. That split keeps issuer trust stable while reducing correlation risk for users.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b3236c6 e-con-full e-flex e-con e-child\" data-id=\"b3236c6\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-e6d3639 e-con-full e-flex e-con e-child\" data-id=\"e6d3639\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-323b760 elementor-widget-tablet__width-inherit elementor-widget__width-initial max100 elementor-widget elementor-widget-heading\" data-id=\"323b760\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Talk to us about decentralized identity architecture<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a2ce823 e-con-full e-flex e-con e-child\" data-id=\"a2ce823\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-054c582 elementor-absolute elementor-widget-mobile__width-inherit transform elementor-widget elementor-widget-html\" data-id=\"054c582\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"wave-container\"><\/div>\r\n\r\n<style>\r\n  .wave-container {\r\n    width: 400px;\r\n    height: 400px;\r\n  }\r\n\r\n  @media(max-width: 767px) {\r\n    .wave-container {\r\n      width: 100%;\r\n      height: 100%;\r\n    }\r\n  }\r\n\r\n\r\n  .wave {\r\n    position: absolute;\r\n    border: 1px solid rgba(210, 184, 214, 1);\r\n    border-radius: 50%;\r\n    animation: drop 16s infinite;\r\n    top: 50%;\r\n    left: 50%;\r\n    transform: translate(-50%, -50%);\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  @keyframes drop {\r\n    0% {\r\n      width: 0px;\r\n      height: 0px;\r\n      border: 1px solid rgba(210, 184, 214, 1);\r\n    }\r\n\r\n    100% {\r\n      width: 400px;\r\n      height: 400px;\r\n      border: 1px solid rgba(210, 184, 214, 0);\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    function createWaves(numberOfWaves) {\r\n      const waveContainers = document.querySelectorAll('.wave-container');\r\n\r\n      waveContainers.forEach((waveContainer) => {\r\n        for (let i = 0; i < numberOfWaves; i++) {\r\n          const wave = document.createElement('div');\r\n          wave.classList.add('wave');\r\n\r\n          wave.style.animationDelay = `${i * 0.8}s`;\r\n\r\n          waveContainer.appendChild(wave);\r\n        }\r\n      });\r\n    }\r\n\r\n    createWaves(10)\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4dec75 elementor-align-left elementor-widget__width-initial elementor-widget-mobile__width-inherit cta-btn elementor-widget elementor-widget-button\" data-id=\"c4dec75\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#contact-form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Let\u2019s talk<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9e3884e e-con-full e-flex e-con e-child\" data-id=\"9e3884e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31c5d5b elementor-widget elementor-widget-heading\" data-id=\"31c5d5b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What role does blockchain play in decentralized identity?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76b07b6 elementor-widget elementor-widget-text-editor\" data-id=\"76b07b6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Let\u2019s clear this up early: you don\u2019t need a blockchain to implement decentralized identity. The World Wide Web Consortium DID Core spec doesn\u2019t require it, and many production systems run entirely off-chain.<\/span><\/p><p><span style=\"font-weight: 400;\">So why is blockchain even in the conversation? Because it solves one specific problem really well: <\/span><b>shared trust without a central owner<\/b><span style=\"font-weight: 400;\">. Not storage, not identity itself, but coordination around keys, identifiers, and status.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4a3ba92 e-con-full e-flex e-con e-child\" data-id=\"4a3ba92\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ffd0ac3 elementor-widget elementor-widget-heading\" data-id=\"ffd0ac3\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Blockchain as a trust layer and anchoring layer<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7f18dc6 e-con-full e-flex e-con e-child\" data-id=\"7f18dc6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eadb032 elementor-widget elementor-widget-text-editor\" data-id=\"eadb032\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In DID-based systems, blockchain acts as a <\/span><b>public, tamper-resistant registry<\/b><span style=\"font-weight: 400;\">. Depending on the method, it can be used to:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3601bc elementor-widget elementor-widget-html\" data-id=\"d3601bc\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Anchor DIDs<\/li>\r\n     <li>Publish or update DID documents<\/li>\r\n     <li>Register issuer keys<\/li>\r\n     <li>Maintain revocation or status registries<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3d0f5ea elementor-widget elementor-widget-text-editor\" data-id=\"3d0f5ea\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The key point: the blockchain is not verifying identity. It is providing a <\/span><b>common reference point<\/b><span style=\"font-weight: 400;\"> that verifiers can rely on without trusting a single party.<\/span><\/p><p><span style=\"font-weight: 400;\">For example, with <\/span><span style=\"font-weight: 400; color: #c63031;\">did:ethr<\/span><span style=\"font-weight: 400;\">, the DID resolves against on-chain data. The verifier trusts the chain state, not the issuer\u2019s infrastructure.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1c2cfc1 e-con-full e-flex e-con e-child\" data-id=\"1c2cfc1\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ffca63 elementor-widget elementor-widget-heading\" data-id=\"1ffca63\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">What is stored on-chain vs off-chain<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e3c598c e-con-full e-flex e-con e-child\" data-id=\"e3c598c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7141512 elementor-widget elementor-widget-text-editor\" data-id=\"7141512\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">This is where many DID implementations go wrong. Blockchain is useful for shared state, but it is a terrible place for raw identity data. You do not put passports, biometrics, full credentials, or personal records on-chain. You use the chain for proof material and coordination data, then keep sensitive identity payloads off-chain.<\/span><\/p><p><span style=\"font-weight: 400;\">A clean split usually looks like this:<\/span><\/p><p><b>On-chain:<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2cc9473 elementor-widget elementor-widget-html\" data-id=\"2cc9473\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Identifiers or registry entries<\/li>\r\n     <li>Public keys or key hashes<\/li>\r\n     <li>Credential status, such as revocation flags or status registries<\/li>\r\n     <li>Hashes or references to off-chain records<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1fdbb1b elementor-widget elementor-widget-text-editor\" data-id=\"1fdbb1b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><b>Off-chain:<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-96f0059 elementor-widget elementor-widget-html\" data-id=\"96f0059\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Verifiable credentials<\/li>\r\n     <li>Personal data<\/li>\r\n     <li>KYC files and evidence<\/li>\r\n     <li>Biometric data<\/li>\r\n     <li>Full DID documents in methods like <span style=\"color: #C63031\">did:web<\/span><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ad9064 elementor-widget elementor-widget-text-editor\" data-id=\"8ad9064\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The reason is simple: privacy and cost. Blockchains are public, permanent, and costly to update. Identity data needs privacy, deletion, correction, and access control. Those two don\u2019t mix.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6861bbe e-con-full e-flex e-con e-child\" data-id=\"6861bbe\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d52bd0f elementor-widget elementor-widget-heading\" data-id=\"d52bd0f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Anchoring and immutability<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ab9b948 e-con-full e-flex e-con e-child\" data-id=\"ab9b948\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-360a72c elementor-widget elementor-widget-text-editor\" data-id=\"360a72c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Blockchain is usually used for anchoring, not storage. You commit a small proof of state to the chain, such as a DID document hash, issuer registry update, credential status reference, or key rotation event, while the actual identity data stays off-chain.<\/span><\/p><p><span style=\"font-weight: 400;\">That gives verifiers three useful properties:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dca83a6 elementor-widget elementor-widget-html\" data-id=\"dca83a6\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><b>Immutability:<\/b> the anchored record cannot be silently changed<\/li>\r\n     <li><b>Timestamping:<\/b> verifiers can see when the state was recorded<\/li>\r\n     <li><b>Auditability:<\/b> anyone can check whether off-chain data still matches the on-chain reference<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc7920d elementor-widget elementor-widget-text-editor\" data-id=\"fc7920d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The trade-off is permanence. If you put the wrong data on-chain, you cannot cleanly remove it. That\u2019s why mature DID systems anchor hashes, references, and state transitions, not full credentials, documents, or personal data.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2385d5d e-con-full e-flex e-con e-child\" data-id=\"2385d5d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7ac6aae elementor-widget elementor-widget-heading\" data-id=\"7ac6aae\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">When blockchain is not required<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a3cb799 e-con-full e-flex e-con e-child\" data-id=\"a3cb799\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-55b1be3 elementor-widget elementor-widget-text-editor\" data-id=\"55b1be3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Blockchain is the wrong tool <\/span><b>when it doesn\u2019t remove a trust dependency<\/b><span style=\"font-weight: 400;\">. If the same organization controls the issuer, verifier, and application, putting DID state on-chain usually just adds fees, latency, and operational noise.<\/span><\/p><p><span style=\"font-weight: 400;\">Skip blockchain when:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-509de3c elementor-widget elementor-widget-html\" data-id=\"509de3c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Trust already sits inside one organization<\/li>\r\n     <li>The issuer and verifier are under the same control<\/li>\r\n     <li>DNS, HTTPS, and signed credentials are enough<\/li>\r\n     <li>Audit logs already meet the compliance requirement<\/li>\r\n     <li>Chain metadata would create a privacy risk<\/li>\r\n     <li>Low latency matters more than public verifiability<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1ac4aab elementor-widget elementor-widget-text-editor\" data-id=\"1ac4aab\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">That\u2019s why <\/span><span style=\"font-weight: 400; color: #c63031;\">did:web<\/span><span style=\"font-weight: 400;\"> works so well for many enterprise identity flows. It keeps the DID model, but uses existing web infrastructure instead of forcing every update through a blockchain transaction.<\/span><\/p><p><span style=\"font-weight: 400;\">Use blockchain when independent parties need a shared state that they can verify without trusting your server. Otherwise, keep it off-chain. More decentralization on paper does not automatically mean better identity architecture.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-74356b0 e-con-full e-flex e-con e-child\" data-id=\"74356b0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b763b50 elementor-widget elementor-widget-heading\" data-id=\"b763b50\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Permissioned zk-L2 as a third path<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-638012b e-con-full e-flex e-con e-child\" data-id=\"638012b\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f5b25b9 elementor-widget elementor-widget-text-editor\" data-id=\"f5b25b9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In systems like the EU Digital Identity Wallet or mobile driver\u2019s licenses (ISO 18013-5), PKI was chosen largely because public L1\/L2 networks don\u2019t meet core identity requirements: privacy, data sovereignty, and regulatory control. Identity data can\u2019t be publicly replicated, and jurisdictions need strict control over where data is processed and stored.<\/span><\/p><p><span style=\"font-weight: 400;\">But newer architectures introduce a third option: <\/span><b>permissioned zk-L2 systems<\/b><span style=\"font-weight: 400;\">. These combine:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6f85b9b elementor-widget elementor-widget-html\" data-id=\"6f85b9b\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><b>Permissioned execution<\/b> (who can read\/write state is controlled)<\/li>\r\n     <li><b>Zero-knowledge proofs<\/b> (state transitions can be verified without revealing underlying data)<\/li>\r\n     <li><b>Public anchoring<\/b> (integrity is enforced via a shared cryptographic root)<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7b80dc0 elementor-widget elementor-widget-text-editor\" data-id=\"7b80dc0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The key idea is the separation of concerns at the infrastructure level:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b39d556 elementor-widget elementor-widget-html\" data-id=\"b39d556\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><b>Private state:<\/b> identity data, credentials, and transaction logic remain inside controlled environments (e.g., per organization or jurisdiction)<\/li>\r\n     <li><b>Shared state:<\/b> only proofs of correctness are published or anchored<\/li>\r\n     <li><b>Verification:<\/b> external parties verify proofs, not raw data<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e4fab8 elementor-widget elementor-widget-text-editor\" data-id=\"7e4fab8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">This avoids a core limitation of public chains: data exposure. At the same time, it avoids a limitation of pure PKI: reliance on closed trust hierarchies without shared auditability.<\/span><\/p><p><span style=\"font-weight: 400;\">Another important property is <\/span><b>multi-domain architecture<\/b><span style=\"font-weight: 400;\">. Different actors \u2014 ministries, regulators, banks, or regions \u2014 can operate in separate execution zones with their own compliance boundaries, while still contributing to a shared verifiable state through proofs.<\/span><\/p><p><span style=\"font-weight: 400;\">This expands the design space for identity systems. Instead of choosing between centralized PKI and public blockchain, new deployments can combine privacy, compliance, and shared trust in a single model.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f74d1af e-con-full e-flex e-con e-child\" data-id=\"f74d1af\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-25378ef elementor-widget elementor-widget-heading\" data-id=\"25378ef\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Benefits of decentralized identity and DIDs<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-73088c8 elementor-widget elementor-widget-text-editor\" data-id=\"73088c8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Ok, so by now it should be clear what DIDs do differently from standard KYC. But the more practical question is: <\/span><b>what does that actually change for me?<\/b><span style=\"font-weight: 400;\"> Fair question. From what I\u2019ve seen in real implementations, the impact depends a lot on which side you\u2019re on, so it\u2019s worth breaking it down.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4ab3220 e-con-full e-flex e-con e-child\" data-id=\"4ab3220\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0a9c968 elementor-widget elementor-widget-heading\" data-id=\"0a9c968\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Benefits for individuals<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6bdda0d e-con-full e-flex e-con e-child\" data-id=\"6bdda0d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b3effce elementor-widget elementor-widget-text-editor\" data-id=\"b3effce\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">For users, the biggest shift is control over <\/span><b>when and how identity is shared<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-966c2ea elementor-widget elementor-widget-html\" data-id=\"966c2ea\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><b>No repeated onboarding:<\/b> Once a credential is issued, it can be reused across services. You don\u2019t resubmit the same passport and selfie every time.<\/li>\r\n     <li><b>Selective disclosure:<\/b> You prove only what the service needs to know. \u201cOver 18\u201d instead of your full date of birth. \u201cKYC passed\u201d instead of passport scans, selfies, and address history. \u201cCredit score within an accepted range\u201d instead of the exact score or the financial data behind it.<\/li>\r\n     <li><b>Reduced breach exposure:<\/b> Your data is not copied into every platform\u2019s database. Fewer copies means fewer breach surfaces.<\/li>\r\n     <li><b>Better privacy by design:<\/b> With pairwise DIDs, different services see different identifiers. Cross-platform tracking becomes much harder.<\/li>\r\n     <li><b>Portability:<\/b> Your identity artifacts live with you, not locked inside a single provider\u2019s system.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f971085 elementor-widget elementor-widget-text-editor\" data-id=\"f971085\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In practice, this turns identity from something you constantly re-submit into something you <\/span><b>present when needed<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-131f908 e-con-full e-flex e-con e-child\" data-id=\"131f908\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a0d8ddd elementor-widget elementor-widget-heading\" data-id=\"a0d8ddd\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Benefits for organizations<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ca16b98 e-con-full e-flex e-con e-child\" data-id=\"ca16b98\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8031782 elementor-widget elementor-widget-text-editor\" data-id=\"8031782\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">For organizations, the shift is less about UX and more about <\/span><b>risk and cost structure<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e106bda elementor-widget elementor-widget-html\" data-id=\"e106bda\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><b>Less sensitive data to store:<\/b> You verify claims instead of storing raw identity data. That reduces liability, especially under regulations like GDPR.<\/li>\r\n     <li><b>Reusable KYC \/ compliance signals:<\/b> Instead of running full KYC every time, you can accept attestations from trusted issuers. That shortens onboarding and lowers operational cost.<\/li>\r\n     <li><b>Faster verification flows:<\/b> No need to wait on external APIs or manual review for every interaction. Verification becomes local and deterministic.<\/li>\r\n     <li><b>Interoperability across platforms:<\/b> Credentials issued in one system can be verified in another, as long as trust frameworks align.<\/li>\r\n     <li><b>On-chain enforcement when needed:<\/b> For tokenized systems, compliance can be enforced directly in smart contracts via signals like soulbound tokens.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d2fae09 elementor-widget elementor-widget-text-editor\" data-id=\"d2fae09\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">What changes operationally is this: you stop being a data custodian and start being a <\/span><b>verifier of claims<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ea5dea0 e-con-full e-flex e-con e-child\" data-id=\"ea5dea0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-deef885 elementor-widget elementor-widget-heading\" data-id=\"deef885\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Benefits for developers<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bf38f69 e-con-full e-flex e-con e-child\" data-id=\"bf38f69\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c83aae4 elementor-widget elementor-widget-text-editor\" data-id=\"c83aae4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">For developers, the value is in <\/span><b>how identity logic is structured<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6dba433 elementor-widget elementor-widget-html\" data-id=\"6dba433\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><b>Stateless verification:<\/b> You don\u2019t need to maintain a user identity database or rely on issuer APIs at runtime. You verify signatures and status locally.<\/li>\r\n     <li><b>Clear separation of concerns:<\/b> Issuance, storage, and verification are decoupled. That makes systems easier to reason about and integrate.<\/li>\r\n     <li><b>Composable identity layer:<\/b> Credentials can be reused across applications, including dApps, APIs, and backend services.<\/li>\r\n     <li><b>Native fit for smart contracts:<\/b> Identity signals (e.g., compliance status) can be consumed directly by contracts without exposing user data.<\/li>\r\n     <li><b>Standard-based integration:<\/b> You\u2019re building on top of W3C specs like DID Core and Verifiable Credentials, not custom identity formats.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f9cc5d9 elementor-widget elementor-widget-text-editor\" data-id=\"f9cc5d9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">From an engineering standpoint, the shift is from \u201cmanage users and sessions\u201d to <\/span><b>verifying proofs and enforcing conditions<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-57f0cf6 e-con-full e-flex e-con e-child\" data-id=\"57f0cf6\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-ce0748f e-con-full e-flex e-con e-child\" data-id=\"ce0748f\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1e8aa7a elementor-widget-tablet__width-inherit elementor-widget__width-initial max100 elementor-widget elementor-widget-heading\" data-id=\"1e8aa7a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Reduce KYC costs with Innowise\u2019s DID solutions<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f4ae15 e-con-full e-flex e-con e-child\" data-id=\"1f4ae15\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4b754e6 elementor-absolute elementor-widget-mobile__width-inherit transform elementor-widget elementor-widget-html\" data-id=\"4b754e6\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"wave-container\"><\/div>\r\n\r\n<style>\r\n  .wave-container {\r\n    width: 400px;\r\n    height: 400px;\r\n  }\r\n\r\n  @media(max-width: 767px) {\r\n    .wave-container {\r\n      width: 100%;\r\n      height: 100%;\r\n    }\r\n  }\r\n\r\n\r\n  .wave {\r\n    position: absolute;\r\n    border: 1px solid rgba(210, 184, 214, 1);\r\n    border-radius: 50%;\r\n    animation: drop 16s infinite;\r\n    top: 50%;\r\n    left: 50%;\r\n    transform: translate(-50%, -50%);\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  @keyframes drop {\r\n    0% {\r\n      width: 0px;\r\n      height: 0px;\r\n      border: 1px solid rgba(210, 184, 214, 1);\r\n    }\r\n\r\n    100% {\r\n      width: 400px;\r\n      height: 400px;\r\n      border: 1px solid rgba(210, 184, 214, 0);\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    function createWaves(numberOfWaves) {\r\n      const waveContainers = document.querySelectorAll('.wave-container');\r\n\r\n      waveContainers.forEach((waveContainer) => {\r\n        for (let i = 0; i < numberOfWaves; i++) {\r\n          const wave = document.createElement('div');\r\n          wave.classList.add('wave');\r\n\r\n          wave.style.animationDelay = `${i * 0.8}s`;\r\n\r\n          waveContainer.appendChild(wave);\r\n        }\r\n      });\r\n    }\r\n\r\n    createWaves(10)\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-28b249f elementor-align-left elementor-widget__width-initial elementor-widget-mobile__width-inherit cta-btn elementor-widget elementor-widget-button\" data-id=\"28b249f\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#contact-form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Save on KYC<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-19880bb e-con-full e-flex e-con e-child\" data-id=\"19880bb\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7c7a9ed elementor-widget elementor-widget-heading\" data-id=\"7c7a9ed\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Real-world use cases<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3c279e3 elementor-widget elementor-widget-text-editor\" data-id=\"3c279e3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Let\u2019s drop the theory for a second and just walk through this like we would in a real system. What does DID actually <\/span><i><span style=\"font-weight: 400;\">feel like<\/span><\/i><span style=\"font-weight: 400;\"> in practice? Where does it stop being a diagram and start being something you\u2019d ship?<\/span><\/p><p><span style=\"font-weight: 400;\">You\u2019ll notice something as we go: the objects change \u2014 diploma, job history, KYC status \u2014 but the flow barely does.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c5e5a83 e-con-full e-flex e-con e-child\" data-id=\"c5e5a83\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d50989f elementor-widget elementor-widget-heading\" data-id=\"d50989f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Education and credentials<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5fd0201 e-con-full e-flex e-con e-child\" data-id=\"5fd0201\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7fcc719 elementor-widget elementor-widget-text-editor\" data-id=\"7fcc719\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Say you\u2019ve just graduated and need to prove your degree to a future employer. The usual path is clumsy: upload a PDF, attach a scan, maybe wait while someone emails the registrar. It works, but barely. The whole process depends on manual trust.<\/span><\/p><p><span style=\"font-weight: 400;\">With a DID-based credential, the university issues a verifiable credential when you graduate. It sits in your wallet, signed by a key published in the university\u2019s DID document.<\/span><\/p><p><span style=\"font-weight: 400;\">Months later, you apply for a job. The employer doesn\u2019t need to contact the university. You present the credentials, and their system checks:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bb83a8c elementor-widget elementor-widget-html\" data-id=\"bb83a8c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>The university\u2019s DID<\/li>\r\n     <li>The public key in its DID document<\/li>\r\n     <li>The credential signature<\/li>\r\n     <li>Expiry or revocation status<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c1596da elementor-widget elementor-widget-text-editor\" data-id=\"c1596da\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">That\u2019s the beauty of the model: <\/span><b>the university signs once, you reuse the proof, and every verifier can check it independently<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4c734c0 e-con-full e-flex e-con e-child\" data-id=\"4c734c0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-543557e elementor-widget elementor-widget-heading\" data-id=\"543557e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Employment and workforce verification<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-07b49ff e-con-full e-flex e-con e-child\" data-id=\"07b49ff\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-80f1868 elementor-widget elementor-widget-text-editor\" data-id=\"80f1868\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">How much of a CV do you actually trust? Titles get inflated. Dates get fuzzy. \u201cLed a team\u201d can mean anything from managing ten people to running standups.<\/span><\/p><p><span style=\"font-weight: 400;\">Now flip the model. When you leave a company, they issue you a credential:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0a814ce elementor-widget elementor-widget-html\" data-id=\"0a814ce\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Your role<\/li>\r\n     <li>Time period<\/li>\r\n     <li>Certifications or internal training<\/li>\r\n     <li>Clearance level, if relevant<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46c3928 elementor-widget elementor-widget-text-editor\" data-id=\"46c3928\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Next time someone asks, \u201cCan you prove you\u2019ve done X?\u201d you don\u2019t explain. You present. And no, that doesn\u2019t mean exposing the whole work history every time. With the right credential format, the holder can prove a narrower claim, like:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d48dd74 elementor-widget elementor-widget-html\" data-id=\"d48dd74\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>\u201cMore than 3 years of experience.\u201d<\/li>\r\n     <li>\u201cWorked in a regulated environment.\u201d<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-38943f4 elementor-widget elementor-widget-text-editor\" data-id=\"38943f4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">\u2026without handing over the full employment history. That\u2019s a very different posture from \u201csend us your entire CV and references.\u201d<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e0092e5 e-con-full e-flex e-con e-child\" data-id=\"e0092e5\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c76e3b4 elementor-widget elementor-widget-heading\" data-id=\"c76e3b4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Financial services and KYC<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5c7b7d0 e-con-full e-flex e-con e-child\" data-id=\"5c7b7d0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a584322 elementor-widget elementor-widget-text-editor\" data-id=\"a584322\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Here, reusable identity gets obvious. You verify once with a trusted provider: passport checked, sanctions screening passed, jurisdiction confirmed. The provider issues a KYC credential to your wallet.<\/span><\/p><p><span style=\"font-weight: 400;\">Next platform? You present the credentials instead of uploading the same documents again. The platform checks:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-265093e elementor-widget elementor-widget-html\" data-id=\"265093e\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Issuer trust<\/li>\r\n     <li>Signature validity<\/li>\r\n     <li>Expiry or revocation status<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b358449 elementor-widget elementor-widget-text-editor\" data-id=\"b358449\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Some tokenization teams also use <\/span><b>soulbound tokens<\/b><span style=\"font-weight: 400;\"> as on-chain KYC markers: this address passed the required check. The identity data stays off-chain; the chain carries only the eligibility signal.<\/span><\/p><p><span style=\"font-weight: 400;\">Useful, but only if the marker is broad, revocable, and not a permanent privacy leak.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bde5413 e-con-full e-flex e-con e-child\" data-id=\"bde5413\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a09d17c elementor-widget elementor-widget-heading\" data-id=\"a09d17c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Healthcare and data sharing<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-31b22f1 elementor-widget elementor-widget-text-editor\" data-id=\"31b22f1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Healthcare is where DID architecture needs a short leash. Say a clinic gives you a vaccination credential, a lab signs your blood test result, and your doctor issues a prescription credential. You keep them in your wallet instead of letting each record disappear into another portal.<\/span><\/p><p><span style=\"font-weight: 400;\">Then you change doctors. Do you wait for one system to talk to another? Chase PDFs?\u00a0 No. You share the specific credential the new provider needs. They verify the issuer, the signature, and the status.<\/span><\/p><p><span style=\"font-weight: 400;\">And just to be clear: none of this requires putting medical data on-chain. The chain is for identifiers, keys, maybe status registries. The sensitive stuff stays off-chain. If that boundary isn\u2019t respected, the design is broken.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b1159d4 e-con-full e-flex e-con e-child\" data-id=\"b1159d4\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fcbb039 elementor-widget elementor-widget-heading\" data-id=\"fcbb039\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Supply chain and product authenticity<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3b4b59e e-con-full e-flex e-con e-child\" data-id=\"3b4b59e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-09aaef8 elementor-widget elementor-widget-text-editor\" data-id=\"09aaef8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Now let\u2019s step away from people. Pick up a product \u2014 say, a bottle of olive oil. Premium label, nice packaging. Is it real? Instead of trusting branding, you tap your phone on an NFC tag. Behind that tag is a DID tied to the product batch.<\/span><\/p><p><span style=\"font-weight: 400;\">What you get back is signed data:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a56f126 elementor-widget elementor-widget-html\" data-id=\"a56f126\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Farm says where and when it was produced<\/li>\r\n     <li>Processor signs transformation steps<\/li>\r\n     <li>Logistics signs custody transfers<\/li>\r\n     <li>Certifier signs inspection<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-607a4a8 elementor-widget elementor-widget-text-editor\" data-id=\"607a4a8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">You can literally follow the product from source to shelf. Does it solve everything? No. If the first data entry is wrong, everything after it just preserves the error. But at least now you know <\/span><i><span style=\"font-weight: 400;\">who<\/span><\/i><span style=\"font-weight: 400;\"> signed each step. That\u2019s a big upgrade from \u201ctrust us.\u201d<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3f98ccc e-con-full e-flex e-con e-child\" data-id=\"3f98ccc\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5df7ebc elementor-widget elementor-widget-heading\" data-id=\"5df7ebc\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Government and digital IDs<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d660979 e-con-full e-flex e-con e-child\" data-id=\"d660979\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5ede9dc elementor-widget elementor-widget-text-editor\" data-id=\"5ede9dc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Government is where DID-style identity leaves the crypto bubble. One major reference point is the EU Digital Identity Wallet under eIDAS 2.0, a large-scale initiative aiming to provide wallets to citizens, residents, and businesses across all Member States.<\/span><\/p><p><span style=\"font-weight: 400;\">But the broader landscape is more diverse. Some of the largest and most mature digital identity systems globally are not strictly DID-based, yet follow similar patterns around reusable credentials and holder-controlled data:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-900a1a6 elementor-widget elementor-widget-html\" data-id=\"900a1a6\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>India\u2019s <b>Aadhaar system<\/b>, covering over a billion users, combined with DigiLocker and e-KYC flows<\/li>\r\n     <li><b>Singapore\u2019s Singpass<\/b>, a highly integrated national identity system with API-based verification and consent-driven data sharing<\/li>\r\n     <li><b>US mobile driver\u2019s licenses<\/b> (mDL) under ISO 18013-5, already deployed in multiple states and integrated into mobile wallets<\/li>\r\n     <li>Government-led credential systems such as <b>GOV.UK One Login or British Columbia\u2019s OrgBook<\/b><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6852379 elementor-widget elementor-widget-text-editor\" data-id=\"6852379\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The common shift across these systems is the same: moving from centralized identity records toward reusable, user-presented proofs. At the same time, it\u2019s important to separate trust models. Systems like eIDAS rely on federated PKI and trust service lists, while DID-based systems rely on cryptographic identifiers and verifiable credentials. In practice, these models often coexist rather than replace each other.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0053782 e-con-full e-flex e-con e-child\" data-id=\"0053782\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-81d2058 elementor-widget elementor-widget-heading\" data-id=\"81d2058\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Standards and governance<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-159670d elementor-widget elementor-widget-text-editor\" data-id=\"159670d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">So far, everything works nicely inside a single system. But what happens when credentials cross system boundaries? That\u2019s where things get strict. You need shared standards so the data makes sense everywhere, and you need governance, so verifiers know which issuers to trust. Here are the standards and governance layers that matter most.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef86a17 elementor-widget elementor-widget-html\" data-id=\"ef86a17\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"software-table\">\r\n    <div class=\"custom-table-wrapper\">\r\n       <div class=\"custom-table\">\r\n  <div class=\"row header\">\r\n    <div class=\"cell\">Layer<\/div>\r\n    <div class=\"cell\">What it defines<\/div>\r\n    <div class=\"cell\">What it looks like in practice<\/div>\r\n    <div class=\"cell\">Why it matters<\/div>\r\n  <\/div>\r\n\r\n  <div class=\"row data\">\r\n    <div class=\"cell\">W3C DID Core specification<\/div>\r\n    <div class=\"cell\">DID syntax (<span style=\"color: #C63031\">did:method:id<\/span>), DID documents, verification relationships, resolution model<\/div>\r\n    <div class=\"cell\">DID document with <span style=\"color: #C63031\">verificationMethod<\/span>, <span style=\"color: #C63031\">authentication<\/span>, <span style=\"color: #C63031\">assertionMethod<\/span>, service endpoints<\/div>\r\n    <div class=\"cell\">Ensures any verifier can resolve a DID and understand which keys are valid for which operations<\/div>\r\n  <\/div>\r\n  \r\n  <div class=\"row data\">\r\n    <div class=\"cell\">Verifiable Credentials data model<\/div>\r\n    <div class=\"cell\">Credential structure, issuer\/holder\/verifier roles, proof formats, presentation model<\/div>\r\n    <div class=\"cell\">JSON-LD or JWT credentials, selective disclosure, presentation exchange flows<\/div>\r\n    <div class=\"cell\">Allows credentials to be portable across systems and verified without issuer involvement<\/div>\r\n  <\/div>\r\n  \r\n  <div class=\"row data\">\r\n    <div class=\"cell\">DIF (Decentralized Identity Foundation)<\/div>\r\n    <div class=\"cell\">Protocols, interoperability specs, wallet\/agent communication, presentation exchange<\/div>\r\n    <div class=\"cell\">DIDComm messaging, Presentation Exchange, wallet-to-wallet or wallet-to-service flows<\/div>\r\n    <div class=\"cell\">Prevents fragmentation by making different wallets and verifiers actually work together<\/div>\r\n  <\/div>\r\n  \r\n  <div class=\"row data\">\r\n    <div class=\"cell\">Trust frameworks<\/div>\r\n    <div class=\"cell\">Issuer accreditation, credential schemas, assurance levels, governance rules<\/div>\r\n    <div class=\"cell\">KYC providers approved for a platform, schema definitions for \u201cverified investor\u201d or \u201clicensed entity\u201d<\/div>\r\n    <div class=\"cell\">Defines which credentials are acceptable and under what conditions they can be relied upon<\/div>\r\n  <\/div>\r\n  \r\n\r\n  \r\n<\/div> \r\n    <\/div>\r\n  \r\n    \r\n<\/div>\r\n\r\n<style>\r\n  .custom-table-wrapper{\r\n     overflow-x: auto; \r\n  }\r\n  \r\n  .custom-table {\r\n    width: 100%;\r\n    margin: 0;\r\n    display: flex;\r\n    flex-direction: column;\r\n    border-collapse: collapse;\r\n    gap: 0;\r\n  }\r\n\r\n  .custom-table.row.data {\r\n    border-bottom: 1px solid black;\r\n  }\r\n\r\n  .custom-table .row {\r\n    display: grid;\r\n    font-size: 18px;\r\n    border-bottom: 1px solid #000;\r\n    font-weight: 600;\r\n  }\r\n\r\n  .custom-table .cell {\r\n    background-color: unset;\r\n    color: #2e2e2e;\r\n    font-family: Karla;\r\n    font-size: 18px;\r\n    font-weight: 400;\r\n    line-height: 27px;\r\n    vertical-align: top;\r\n    margin: 0;\r\n    padding: 20px;\r\n  }\r\n  \r\n  .custom-table .cell:first-child{\r\n      padding-left: 0;\r\n  }\r\n  \r\n  .custom-table .cell:last-child{\r\n      padding-right: 0;\r\n  }\r\n\r\n  .custom-table .header {\r\n    font-weight: 600;\r\n    border-bottom: 1px solid #000;\r\n    text-align: left;\r\n  }\r\n\r\n  .custom-table .row.header .cell {\r\n    font-weight: 700;\r\n    padding-top: 0;\r\n  }\r\n\r\n  .custom-table .row.hidden {\r\n    display: none;\r\n  }\r\n  \r\n  .table-toggle {\r\n      display: inline-block;\r\n      color: #c63031;\r\n      font-family: Karla;\r\n      font-weight: 700;\r\n      font-size: 22px;\r\n      line-height: 150%;\r\n      margin-top: 20px;\r\n      margin-left: 20px;\r\n      cursor: pointer;\r\n    }\r\n  \r\n  .table-toggle {\r\n    display: none;\r\n  }\r\n\r\n  \/* ====== RESPONSIVE ====== *\/\r\n\r\n  @media (max-width: 1279px) {\r\n    .custom-table {\r\n      min-width: 1000px;\r\n    }\r\n  }\r\n  \r\n  @media (max-width: 1024px){\r\n      .table-toggle{\r\n          display: block;\r\n      }\r\n  }\r\n\r\n  @media (max-width: 767px) {\r\n    .custom-table {\r\n      min-width: 732px;\r\n    }\r\n\r\n    .custom-table .cell {\r\n      font-size: 14px;\r\n      line-height: 21px;\r\n      padding: 20px 10px;\r\n    }\r\n    \r\n    .table-toggle{\r\n        font-size: 16px;\r\n        line-height: 140%;\r\n    }\r\n  }\r\n  \r\n  .software-table .row{\r\n    grid-template-columns: 20% 1fr 1fr 1fr;  \r\n  }\r\n  \r\n  .software-table .row .cell:first-child {\r\n      font-weight: bold;\r\n  }\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-04ca823 elementor-widget elementor-widget-text-editor\" data-id=\"04ca823\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Standards make credentials interoperable. Governance makes them acceptable. Without standards, nothing parses. Without governance, nothing is trusted. Real systems only work when both layers are defined together.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5ce16c7 e-con-full e-flex e-con e-child\" data-id=\"5ce16c7\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-8927140 e-con-full e-flex e-con e-child\" data-id=\"8927140\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f674ba8 elementor-widget-tablet__width-inherit elementor-widget__width-initial max100 elementor-widget elementor-widget-heading\" data-id=\"f674ba8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Speed up verification without external dependencies<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fce38c e-con-full e-flex e-con e-child\" data-id=\"0fce38c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aff4821 elementor-absolute elementor-widget-mobile__width-inherit transform elementor-widget elementor-widget-html\" data-id=\"aff4821\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"wave-container\"><\/div>\r\n\r\n<style>\r\n  .wave-container {\r\n    width: 400px;\r\n    height: 400px;\r\n  }\r\n\r\n  @media(max-width: 767px) {\r\n    .wave-container {\r\n      width: 100%;\r\n      height: 100%;\r\n    }\r\n  }\r\n\r\n\r\n  .wave {\r\n    position: absolute;\r\n    border: 1px solid rgba(210, 184, 214, 1);\r\n    border-radius: 50%;\r\n    animation: drop 16s infinite;\r\n    top: 50%;\r\n    left: 50%;\r\n    transform: translate(-50%, -50%);\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  @keyframes drop {\r\n    0% {\r\n      width: 0px;\r\n      height: 0px;\r\n      border: 1px solid rgba(210, 184, 214, 1);\r\n    }\r\n\r\n    100% {\r\n      width: 400px;\r\n      height: 400px;\r\n      border: 1px solid rgba(210, 184, 214, 0);\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    function createWaves(numberOfWaves) {\r\n      const waveContainers = document.querySelectorAll('.wave-container');\r\n\r\n      waveContainers.forEach((waveContainer) => {\r\n        for (let i = 0; i < numberOfWaves; i++) {\r\n          const wave = document.createElement('div');\r\n          wave.classList.add('wave');\r\n\r\n          wave.style.animationDelay = `${i * 0.8}s`;\r\n\r\n          waveContainer.appendChild(wave);\r\n        }\r\n      });\r\n    }\r\n\r\n    createWaves(10)\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd11468 elementor-align-left elementor-widget__width-initial elementor-widget-mobile__width-inherit cta-btn elementor-widget elementor-widget-button\" data-id=\"dd11468\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#contact-form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Let\u2019s discuss<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c1807aa e-con-full e-flex e-con e-child\" data-id=\"c1807aa\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8aea8bd elementor-widget elementor-widget-heading\" data-id=\"8aea8bd\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Security and limitations<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b2e9adf elementor-widget elementor-widget-text-editor\" data-id=\"b2e9adf\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Standards tell you how a DID system should behave. Production tells you where it gets messy. Today, most risks don\u2019t come from DID syntax or signature algorithms themselves. They show up around wallets, key recovery, revocation, interoperability, and whether enough issuers and verifiers actually agree to use the same trust model.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e748371 e-con-full e-flex e-con e-child\" data-id=\"e748371\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-df9663a elementor-widget elementor-widget-heading\" data-id=\"df9663a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Wallet and key security<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29b9e29 elementor-widget elementor-widget-text-editor\" data-id=\"29b9e29\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In DID systems, identity depends on key control. That\u2019s powerful, but unforgiving. If a user loses the key, recovery is not automatic. If an attacker gets the key, they can impersonate the holder. That\u2019s why serious implementations rarely rely on a raw seed phrase alone. They usually need MPC, social recovery, hardware-backed keys, or some hybrid custody model.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-12dafae e-con-full e-flex e-con e-child\" data-id=\"12dafae\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d16e9ba elementor-widget elementor-widget-heading\" data-id=\"d16e9ba\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Revocation and credential status<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45ff893 elementor-widget elementor-widget-text-editor\" data-id=\"45ff893\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Credentials age. KYC expires, employees leave, licenses get suspended. So verification cannot stop at \u201cis the signature valid?\u201d The verifier checks the credential status at the time of use. That usually means status lists, revocation registries, or short-lived credentials. Miss this part, and old credentials keep looking valid.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1101dd2 e-con-full e-flex e-con e-child\" data-id=\"1101dd2\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6581a9c elementor-widget elementor-widget-heading\" data-id=\"6581a9c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Interoperability challenges<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1869bb8 elementor-widget elementor-widget-text-editor\" data-id=\"1869bb8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Standards help, but they don\u2019t magically make every wallet, issuer, and verifier compatible. One stack may use JSON-LD credentials, another may prefer JWT. DID methods. Presentation protocols differ. So yes, the ecosystem is moving toward interoperability, but real projects still need integration work and strict profile choices.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9aca312 e-con-full e-flex e-con e-child\" data-id=\"9aca312\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-02fa19a elementor-widget elementor-widget-heading\" data-id=\"02fa19a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Adoption barriers<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dbff7ce elementor-widget elementor-widget-text-editor\" data-id=\"dbff7ce\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The hardest part is coordination. A DID system needs issuers people trust, verifiers willing to accept credentials, users able to manage wallets, and governance rules everyone understands. Until those pieces line up, adoption happens in pockets: regulated finance, tokenization, workforce credentials, government ID, and closed ecosystems first.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-93bc064 e-con-full e-flex e-con e-child\" data-id=\"93bc064\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1da21cd elementor-widget elementor-widget-heading\" data-id=\"1da21cd\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Post-quantum risk and crypto-agility<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-61c7c3c elementor-widget elementor-widget-text-editor\" data-id=\"61c7c3c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Most DID systems today rely on elliptic curve cryptography: <\/span><b>Ed25519, secp256k1, or P-256<\/b><span style=\"font-weight: 400;\">. These schemes are widely deployed, but they are not post-quantum secure. A sufficiently powerful quantum computer could break them with Shor\u2019s algorithm, making signature forgery a real long-term risk.<\/span><\/p><p><span style=\"font-weight: 400;\">That matters because identity credentials often live for years. Diplomas, licenses, and legal attestations issued today may still need to be verified long after the cryptography behind them ages out.<\/span><\/p><p><span style=\"font-weight: 400;\">Standards are already moving in that direction. NIST has finalized post-quantum signature schemes such as ML-DSA (Dilithium) and SLH-DSA (SPHINCS+), while the DID\/VC ecosystem is exploring hybrid signatures and crypto-agility.<\/span><\/p><p><span style=\"font-weight: 400;\">DID systems should support multiple verification methods, new signature suites, and clear key rotation paths from day one. Post-quantum signatures are much larger than Ed25519 or ECDSA signatures, which affects QR presentations, registries, and on-chain status mechanisms. But for long-lived government and enterprise identity, crypto-agility is a must.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c32fcf8 e-con-full e-flex e-con e-child\" data-id=\"c32fcf8\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2c86ac4 elementor-widget elementor-widget-heading\" data-id=\"2c86ac4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How organizations implement decentralized identity<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e67e9cf elementor-widget elementor-widget-text-editor\" data-id=\"e67e9cf\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The mistake we see most often is treating DID as something you \u201cadd\u201d to an existing identity stack. In practice, it\u2019s a shift in how you model trust, data flow, and responsibility. The technical pieces are rarely the hardest part. Most projects succeed or fail on coordination, governance, and integration.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cca40d4 e-con-full e-flex e-con e-child\" data-id=\"cca40d4\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-84390d1 elementor-widget elementor-widget-heading\" data-id=\"84390d1\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Shift from data storage to credential verification<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08f3130 elementor-widget elementor-widget-text-editor\" data-id=\"08f3130\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Start by identifying where you store identity data only to verify it later: KYC status, age, employment, licenses, accreditation, and access rights. The goal is to store less raw data and verify more signed claims. That reduces liability, simplifies compliance, and makes identity portable across systems.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0e246a1 e-con-full e-flex e-con e-child\" data-id=\"0e246a1\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7922e99 elementor-widget elementor-widget-heading\" data-id=\"7922e99\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Define trust relationships and credential schemas<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d3f49d4 e-con-full e-flex e-con e-child\" data-id=\"d3f49d4\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-07d3a95 elementor-widget elementor-widget-text-editor\" data-id=\"07d3a95\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Before choosing tools, define the trust model in concrete terms. In real projects, that typically results in:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aaa100f elementor-widget elementor-widget-html\" data-id=\"aaa100f\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>A trust framework document (who can issue what, under which conditions)<\/li>\r\n     <li>Issuer onboarding rules and SLAs<\/li>\r\n     <li>Credential schemas (JSON-LD or JWT-based)<\/li>\r\n     <li>Legal and compliance review for each credential type<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-df3e66d elementor-widget elementor-widget-text-editor\" data-id=\"df3e66d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Without this, you get credentials that verify correctly but are not accepted by verifiers.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ce2d510 e-con-full e-flex e-con e-child\" data-id=\"ce2d510\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3478711 elementor-widget elementor-widget-heading\" data-id=\"3478711\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Choose standards and DID methods<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a1763d elementor-widget elementor-widget-text-editor\" data-id=\"3a1763d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Now choose the technical stack. Pick the DID method, credential format, wallet flow, and revocation model. <\/span><span style=\"font-weight: 400; color: #c63031;\">did:web<\/span><span style=\"font-weight: 400;\"> usually fits enterprise and SaaS flows. <\/span><span style=\"font-weight: 400; color: #c63031;\">did:ethr<\/span><span style=\"font-weight: 400;\"> fits smart contract enforcement and on-chain identity. <\/span><span style=\"font-weight: 400; color: #c63031;\">did:key<\/span><span style=\"font-weight: 400;\"> fits short-lived or local identifiers.<\/span><\/p><p><span style=\"font-weight: 400;\">Don\u2019t pick the most \u201cdecentralized\u201d option. Pick the one that matches your trust boundary.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8c87424 e-con-full e-flex e-con e-child\" data-id=\"8c87424\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-72230d0 elementor-widget elementor-widget-heading\" data-id=\"72230d0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Start with a pilot<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-30e57c6 e-con-full e-flex e-con e-child\" data-id=\"30e57c6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3dbcabc elementor-widget elementor-widget-text-editor\" data-id=\"3dbcabc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Don\u2019t start with \u201cidentity for everything.\u201d Start with one flow where the pain is clear. Good pilots include:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-23f9563 elementor-widget elementor-widget-html\" data-id=\"23f9563\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Reusable KYC for a single product<\/li>\r\n     <li>Contractor or workforce credentials<\/li>\r\n     <li>Wallet-based access control<\/li>\r\n     <li>Investor verification for tokenized assets<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e472589 elementor-widget elementor-widget-text-editor\" data-id=\"e472589\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Scope it tightly: one credential type, one or two issuers, one verifier flow, clear revocation rules. Avoid starting with:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7781e6e elementor-widget elementor-widget-html\" data-id=\"7781e6e\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Highly regulated employee identity in large organizations<\/li>\r\n     <li>Cross-border identity without an agreed trust framework<\/li>\r\n     <li>Full identity platforms instead of a single use case<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d814f19 elementor-widget elementor-widget-text-editor\" data-id=\"d814f19\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Prove the flow end-to-end, then expand.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7d52f5b e-con-full e-flex e-con e-child\" data-id=\"7d52f5b\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-416d4fe elementor-widget elementor-widget-heading\" data-id=\"416d4fe\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Revocation models and trade-offs<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3d83791 e-con-full e-flex e-con e-child\" data-id=\"3d83791\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-05e37ff elementor-widget elementor-widget-text-editor\" data-id=\"05e37ff\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Once you move from a pilot to production, issuing credentials is only half the problem. The harder question is what happens when a credential should no longer be trusted: a KYC check expires, an employee leaves, a license is suspended, or a wallet is compromised.<\/span><\/p><p><span style=\"font-weight: 400;\">There is no single standard approach, and each model comes with trade-offs:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4885a90 elementor-widget elementor-widget-html\" data-id=\"4885a90\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li><b>Status lists (e.g., W3C Bitstring Status List):<\/b> widely used and cost-efficient, but require periodic checks and can leak metadata<\/li>\r\n     <li><b>On-chain registries:<\/b> fast lookup and shared state, but introduce cost and public visibility<\/li>\r\n     <li><b>Cryptographic accumulators:<\/b> privacy-preserving, but computationally heavy and harder to deploy on mobile<\/li>\r\n     <li><b>Short-lived credentials:<\/b> avoid revocation entirely, but require frequent reissuance and online issuer access<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aa9906d elementor-widget elementor-widget-text-editor\" data-id=\"aa9906d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Different ecosystems take different approaches. For example, ISO 18013-5 mobile driver\u2019s licenses rely on issuer validation and trust lists rather than W3C-style revocation. Without a clear revocation strategy, the \u201creusable credential\u201d model breaks. A compromised credential can continue to be presented unless its status is actively checked.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b15e5c5 e-con-full e-flex e-con e-child\" data-id=\"b15e5c5\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-781cb7d elementor-widget elementor-widget-heading\" data-id=\"781cb7d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">What a typical implementation looks like<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0688778 e-con-full e-flex e-con e-child\" data-id=\"0688778\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8d64c42 elementor-widget elementor-widget-text-editor\" data-id=\"8d64c42\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">A typical DID\/VC project moves in phases. A pilot usually takes <\/span><b>3\u20134 months<\/b><span style=\"font-weight: 400;\"> and validates one use case end-to-end, typically in the range of <\/span><b>$150K\u2013$300K<\/b><span style=\"font-weight: 400;\">, depending on scope. A production rollout takes <\/span><b>9\u201312 months<\/b><span style=\"font-weight: 400;\"> and expands to multiple issuers, verifiers, and credential types, usually ranging from <\/span><b>$800K to $2M+<\/b><span style=\"font-weight: 400;\">, depending on integration complexity and compliance requirements.<\/span><\/p><p><span style=\"font-weight: 400;\">A typical team includes:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2212a6b elementor-widget elementor-widget-html\" data-id=\"2212a6b\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n\r\n\r\n<ul class=\"blackUl\">\r\n     <li>Identity architect<\/li>\r\n     <li>Cryptography \/ PKI engineer<\/li>\r\n     <li>Wallet or mobile developer<\/li>\r\n     <li>Backend\/integration engineer<\/li>\r\n     <li>Compliance or legal lead<\/li>\r\n     <li>Smart contract developer (if on-chain components are used)<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8d77038 elementor-widget elementor-widget-text-editor\" data-id=\"8d77038\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In practice, the complexity is rarely in cryptography. It\u2019s in integration, governance, and user experience.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5762b06 e-con-full e-flex e-con e-child\" data-id=\"5762b06\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-617b76f e-con-full e-flex e-con e-child\" data-id=\"617b76f\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-92f2bae elementor-widget-tablet__width-inherit elementor-widget__width-initial max100 elementor-widget elementor-widget-heading\" data-id=\"92f2bae\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Replace document checks with cryptographic proof<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-98b4d6c e-con-full e-flex e-con e-child\" data-id=\"98b4d6c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8696e2f elementor-absolute elementor-widget-mobile__width-inherit transform elementor-widget elementor-widget-html\" data-id=\"8696e2f\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"wave-container\"><\/div>\r\n\r\n<style>\r\n  .wave-container {\r\n    width: 400px;\r\n    height: 400px;\r\n  }\r\n\r\n  @media(max-width: 767px) {\r\n    .wave-container {\r\n      width: 100%;\r\n      height: 100%;\r\n    }\r\n  }\r\n\r\n\r\n  .wave {\r\n    position: absolute;\r\n    border: 1px solid rgba(210, 184, 214, 1);\r\n    border-radius: 50%;\r\n    animation: drop 16s infinite;\r\n    top: 50%;\r\n    left: 50%;\r\n    transform: translate(-50%, -50%);\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  @keyframes drop {\r\n    0% {\r\n      width: 0px;\r\n      height: 0px;\r\n      border: 1px solid rgba(210, 184, 214, 1);\r\n    }\r\n\r\n    100% {\r\n      width: 400px;\r\n      height: 400px;\r\n      border: 1px solid rgba(210, 184, 214, 0);\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    function createWaves(numberOfWaves) {\r\n      const waveContainers = document.querySelectorAll('.wave-container');\r\n\r\n      waveContainers.forEach((waveContainer) => {\r\n        for (let i = 0; i < numberOfWaves; i++) {\r\n          const wave = document.createElement('div');\r\n          wave.classList.add('wave');\r\n\r\n          wave.style.animationDelay = `${i * 0.8}s`;\r\n\r\n          waveContainer.appendChild(wave);\r\n        }\r\n      });\r\n    }\r\n\r\n    createWaves(10)\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8fda2f5 elementor-align-left elementor-widget__width-initial elementor-widget-mobile__width-inherit cta-btn elementor-widget elementor-widget-button\" data-id=\"8fda2f5\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#contact-form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Let\u2019s talk details<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c957909 e-con-full e-flex e-con e-child\" data-id=\"c957909\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6d71dc3 elementor-widget elementor-widget-heading\" data-id=\"6d71dc3\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">The future of decentralized identity<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-69753a8 elementor-widget elementor-widget-text-editor\" data-id=\"69753a8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">To wrap this up, let\u2019s zoom out a bit. DID-based identity is not a finished stack. It\u2019s still evolving, mostly around proof systems, wallet infrastructure, interoperability layers, and regulatory integration. From what I see in real implementations, a few directions are becoming clear.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fb88068 e-con-full e-flex e-con e-child\" data-id=\"fb88068\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8f19ed4 elementor-widget elementor-widget-heading\" data-id=\"8f19ed4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Reusable identity across platforms<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3f7d37 elementor-widget elementor-widget-text-editor\" data-id=\"d3f7d37\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Reusable identity is the obvious endgame, but the bottleneck is not signature verification. That part already works. The harder part is issuer trust, credential schemas, and acceptance rules.<\/span><\/p><p><span style=\"font-weight: 400;\">In the future, a KYC credential issued in one regulated environment should be reusable across exchanges, tokenization platforms, lending products, and compliant DeFi interfaces, provided the issuer DID is resolvable, the schema is understood, and the verifier accepts the issuer under its trust framework. That\u2019s where the real work is: not proving that a signature is valid, but agreeing on what the signed claim actually means.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-70f79d8 e-con-full e-flex e-con e-child\" data-id=\"70f79d8\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7867aaf elementor-widget elementor-widget-heading\" data-id=\"7867aaf\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Zero-knowledge proofs for selective disclosure<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d28af3 elementor-widget elementor-widget-text-editor\" data-id=\"7d28af3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Today, many systems still reveal attributes. The future is proving conditions. Instead of showing your date of birth, you prove you\u2019re over 18. Instead of exposing full KYC data, you prove you passed a defined compliance policy. Instead of sharing a jurisdiction field, you prove eligibility for a transaction.<\/span><\/p><p><span style=\"font-weight: 400;\">Technically, that points toward BBS+ signatures for selective disclosure and zk-SNARKs or zk-STARKs for predicate proofs. The verifier checks the proof against issuer-controlled public keys, while the underlying personal data stays hidden. <\/span><b>That changes the privacy model from \u201cshare less data\u201d to \u201cdon\u2019t share the data at all when a proof is enough.\u201d<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d32065a e-con-full e-flex e-con e-child\" data-id=\"d32065a\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2226876 elementor-widget elementor-widget-heading\" data-id=\"2226876\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Interoperability and cross-platform identity<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-37035fa elementor-widget elementor-widget-text-editor\" data-id=\"37035fa\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Interoperability will decide whether decentralized identity stays fragmented or becomes usable infrastructure.<\/span><\/p><p><span style=\"font-weight: 400;\">The weak spots are still familiar: JSON-LD vs JWT credentials, different DID methods, different wallet protocols, different presentation flows. That\u2019s why production systems increasingly define strict profiles: approved credential formats, supported DID methods, trusted issuers, and accepted presentation protocols.<\/span><\/p><p><span style=\"font-weight: 400;\">Over time, I expect more convergence around wallet-to-verifier flows, presentation exchange, and trust registries. Without that, every DID project becomes another identity island. With it, credentials can move across platforms without custom integration every time.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6a1b953 e-con-full e-flex e-con e-child\" data-id=\"6a1b953\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2a9913d elementor-widget elementor-widget-heading\" data-id=\"2a9913d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Regulatory developments<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e9a3664 elementor-widget elementor-widget-text-editor\" data-id=\"e9a3664\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Regulation is turning decentralized identity from a technical option into public infrastructure.<\/span><\/p><p><span style=\"font-weight: 400;\">In the EU, eIDAS 2.0 and the EU Digital Identity Wallet are the big signal. Member states are required to provide wallet infrastructure, with credentials for identity attributes, licenses, qualifications, and public-private sector use cases. That creates a regulated credential layer across Europe.<\/span><\/p><p><span style=\"font-weight: 400;\">In the US, National Institute of Standards and Technology is updating digital identity guidance (e.g., NIST 800-63) to account for cryptographic credentials, assurance levels, and privacy-preserving verification. The US will likely keep a more market-driven model, while the EU pushes a coordinated wallet framework.<\/span><\/p><p><span style=\"font-weight: 400;\">So where does this go? Toward fewer document uploads, more reusable credentials, more local cryptographic checks, and more selective disclosure. The winners won\u2019t be the systems that store the most identity data. They\u2019ll be the ones that can verify the right claim with the least exposure.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8b80ee0 e-con-full e-flex e-con e-child\" data-id=\"8b80ee0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7a97c91 elementor-widget elementor-widget-heading\" data-id=\"7a97c91\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">FAQ<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9dd306a e-con-full e-flex e-con e-child\" data-id=\"9dd306a\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e3250e8 faq elementor-widget elementor-widget-n-accordion\" data-id=\"e3250e8\" data-element_type=\"widget\" data-settings=\"{&quot;default_state&quot;:&quot;all_collapsed&quot;,&quot;max_items_expended&quot;:&quot;one&quot;,&quot;n_accordion_animation_duration&quot;:{&quot;unit&quot;:&quot;ms&quot;,&quot;size&quot;:400,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-n-accordion\" aria-label=\"Accordion. Open links with Enter or Space, close with Escape, and navigate with Arrow Keys\">\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2380\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2380\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> What is a decentralized identifier (DID)? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M19 8h2v24h-2z\"><\/path><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2380\" class=\"elementor-element elementor-element-f18639d e-con-full e-flex e-con e-child\" data-id=\"f18639d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ed2addf elementor-widget elementor-widget-html\" data-id=\"ed2addf\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class='content'>\n <p>A decentralized identifier is a unique, resolvable identifier that points to a DID document containing public keys and verification methods. It allows entities to prove identity or control without relying on a central authority. In practice, it replaces database lookups with cryptographic verification.<\/p>   \n<\/div> \n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2381\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"2\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2381\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> How do decentralized identifiers work? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M19 8h2v24h-2z\"><\/path><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2381\" class=\"elementor-element elementor-element-7240951 e-con-full e-flex e-con e-child\" data-id=\"7240951\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3ad6faa elementor-widget elementor-widget-html\" data-id=\"3ad6faa\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<div class='content'>\n <p>A DID resolves to a DID document with public keys. An issuer signs a credential, a holder stores it, and a verifier checks the signature and status using the issuer\u2019s DID. No direct call to the issuer is required. This makes verification portable and independent of any single system.<\/p>\n<\/div> \n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2382\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"3\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2382\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> What is the difference between decentralized identity and DID? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M19 8h2v24h-2z\"><\/path><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2382\" class=\"elementor-element elementor-element-12c5e05 e-flex e-con-boxed e-con e-child\" data-id=\"12c5e05\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-94cf567 elementor-widget elementor-widget-html\" data-id=\"94cf567\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class='content'>\n <p>Decentralized identity is the overall model of issuing and verifying claims without central storage. A DID is just one component of that model. It acts as the identifier layer used to resolve keys and verify signatures. Without DIDs, the system would lack a consistent way to locate and trust verification material.<\/p>   \n<\/div> \n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2383\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"4\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2383\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Are decentralized identifiers stored on a blockchain? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M19 8h2v24h-2z\"><\/path><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2383\" class=\"elementor-element elementor-element-2a7ad35 e-flex e-con-boxed e-con e-child\" data-id=\"2a7ad35\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a5738a6 elementor-widget elementor-widget-html\" data-id=\"a5738a6\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class='content'>\n <p>Not necessarily. Some DID methods use blockchains for resolution or anchoring, but many, like <span style=\"color: #C63031\">did:web<\/span>, rely on standard web infrastructure. The DID itself is a reference, not a data record. What may be stored on-chain are keys, hashes, or status references, not identity data.<\/p>   \n<\/div> \n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2384\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"5\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2384\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> What are decentralized identifiers used for? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M19 8h2v24h-2z\"><\/path><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2384\" class=\"elementor-element elementor-element-0da7656 e-flex e-con-boxed e-con e-child\" data-id=\"0da7656\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2f39248 elementor-widget elementor-widget-html\" data-id=\"2f39248\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class='content'>\n <p>They are used to link identities to cryptographic keys, enable verifiable credentials, support reusable KYC, workforce verification, digital IDs, and access control in both web and blockchain-based systems. Their role is to make identity verification portable across systems.<\/p>   \n<\/div> \n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-2385\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"6\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-2385\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> How do you create a decentralized identifier (DID)? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40\" height=\"40\" fill=\"none\"><path fill=\"#C63031\" d=\"M19 8h2v24h-2z\"><\/path><path fill=\"#C63031\" d=\"M8 21v-2h24v2z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-2385\" class=\"elementor-element elementor-element-4adb046 e-flex e-con-boxed e-con e-child\" data-id=\"4adb046\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-12198de elementor-widget elementor-widget-html\" data-id=\"12198de\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class='content'>\n <p>You generate a key pair and create a DID according to a chosen method. Then you publish or register it so it can be resolved to a DID document. The exact process depends on the DID method (e.g., web, blockchain, or key-based). The method determines how the DID is anchored, updated, and resolved.<\/p>   \n<\/div> \n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<script type=\"application\/ld+json\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is a decentralized identifier (DID)?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A decentralized identifier is a unique, resolvable identifier that points to a DID document containing public keys and verification methods. It allows entities to prove identity or control without relying on a central authority. In practice, it replaces database lookups with cryptographic verification.\"}},{\"@type\":\"Question\",\"name\":\"How do decentralized identifiers work?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A DID resolves to a DID document with public keys. An issuer signs a credential, a holder stores it, and a verifier checks the signature and status using the issuer\\u2019s DID. No direct call to the issuer is required. This makes verification portable and independent of any single system.\"}},{\"@type\":\"Question\",\"name\":\"What is the difference between decentralized identity and DID?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Decentralized identity is the overall model of issuing and verifying claims without central storage. A DID is just one component of that model. It acts as the identifier layer used to resolve keys and verify signatures. Without DIDs, the system would lack a consistent way to locate and trust verification material.\"}},{\"@type\":\"Question\",\"name\":\"Are decentralized identifiers stored on a blockchain?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Not necessarily. Some DID methods use blockchains for resolution or anchoring, but many, like did:web, rely on standard web infrastructure. The DID itself is a reference, not a data record. What may be stored on-chain are keys, hashes, or status references, not identity data.\"}},{\"@type\":\"Question\",\"name\":\"What are decentralized identifiers used for?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"They are used to link identities to cryptographic keys, enable verifiable credentials, support reusable KYC, workforce verification, digital IDs, and access control in both web and blockchain-based systems. Their role is to make identity verification portable across systems.\"}},{\"@type\":\"Question\",\"name\":\"How do you create a decentralized identifier (DID)?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"You generate a key pair and create a DID according to a chosen method. Then you publish or register it so it can be resolved to a DID document. The exact process depends on the DID method (e.g., web, blockchain, or key-based). The method determines how the DID is anchored, updated, and resolved.\"}}]}<\/script>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cd91912 elementor-widget elementor-widget-shortcode\" data-id=\"cd91912\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[post_share]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-39afb34 e-con-full tablePadding40 author-container e-flex e-con e-child\" data-id=\"39afb34\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-29bb8d6 e-grid e-con-full e-con e-child\" data-id=\"29bb8d6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9ca525c elementor-widget elementor-widget-image\" data-id=\"9ca525c\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"180\" height=\"180\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/Andrew-Nalichaev-1.png\" class=\"attachment-full size-full wp-image-194961\" alt=\"\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/Andrew-Nalichaev-1.png 180w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/Andrew-Nalichaev-1-150x150.png 150w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/Andrew-Nalichaev-1-12x12.png 12w\" sizes=\"(max-width: 180px) 100vw, 180px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7d15845 e-con-full e-flex e-con e-child\" data-id=\"7d15845\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-6128eaf e-con-full e-flex e-con e-child\" data-id=\"6128eaf\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8946710 no-text-decoration elementor-widget elementor-widget-heading\" data-id=\"8946710\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/innowise.com\/authors\/andrew-nalichaev\/\">Andrew Nalichaev<\/a><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dc24fc4 elementor-widget elementor-widget-image\" data-id=\"dc24fc4\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.linkedin.com\/in\/andrei-nalichaev\/\" target=\"_blank\" rel=\"nofollow\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"32\" height=\"33\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/04\/Social-icons-1.svg\" class=\"attachment-full size-full wp-image-181902\" alt=\"Linkedin icon\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a3300b6 elementor-widget elementor-widget-text-editor\" data-id=\"a3300b6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Blockchain Expert &amp; DeFi Analyst<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d0fcf5e e-con-full e-flex e-con e-child\" data-id=\"d0fcf5e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ff56182 text4String elementor-widget elementor-widget-text-editor\" data-id=\"ff56182\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Andrew translates decentralized concepts into secure, functional financial tools. He navigates the volatile DeFi landscape to build scalable blockchain infrastructures that address real-world utility, moving past the buzzwords to deliver technical value.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-af67e90 readMore elementor-widget elementor-widget-heading\" data-id=\"af67e90\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/innowise.com\/authors\/andrew-nalichaev\/\">Read more<\/a><\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9de5a5e table-content-container e-con-full e-flex e-con e-child\" data-id=\"9de5a5e\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-05c2ddb e-con-full stickyTable e-flex e-con e-child\" data-id=\"05c2ddb\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-1bcc3b7 author-block e-con-full e-flex e-con e-child\" data-id=\"1bcc3b7\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-79476dc ddcv elementor-widget elementor-widget-html\" data-id=\"79476dc\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n  .article-description > .e-con-inner {\r\n    align-items: baseline !important;\r\n    \/* align-items: flex-start !important; *\/\r\n  }\r\n\r\n  .stickyTable {\r\n    position: sticky;\r\n    top: 72px;\r\n    bottom: auto;\r\n  }\r\n<\/style>\r\n\r\n<!--NOTE Change data-id in wrapper styles for hide this block on the mobile device screen-->\r\n<div class=\"toc-wrapper\">\r\n  <h4 class=\"toc-title\">Table of contents<\/h4>\r\n  <div class=\"toc toc-2\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\n  document.addEventListener(\"DOMContentLoaded\", () => {\r\n    \/*-------------------------------\r\n    SETTING\r\n  --------------------------------*\/\r\n    const LINKS = {\r\n      \"Unleashing the power of .NET 8\": \"gggggg\",\r\n      \"Revamping legacy systems: unlocking business potential through software modernization\":\r\n        \"hello\",\r\n      \"Solution we delivered\": \"Solution\",\r\n    };\r\n\r\n    const OFFSET = 70; \/\/ \u043e\u0442\u0441\u0442\u0443\u043f \u043f\u0440\u0438 \u0441\u043a\u0440\u043e\u043b\u043b\u0435 \u043a \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0443\r\n\r\n    let headerElements = [];\r\n    let tocLinks = [];\r\n    \r\n    \/\/SET TOC HEIGHT\r\n    const setContainerHeight = () => {\r\n        const windowHeight = window.innerHeight;\r\n        const tocContainer = document.querySelector(\".ddcv\");\r\n    \r\n        tocContainer.style.maxHeight = \"calc(100vh - 230px)\";\r\n        tocContainer.style.minHeight = \"200px\";\r\n    };\r\n\r\n    \/*-------------------------------\r\n    CREATE TOC LIST\r\n  --------------------------------*\/\r\n    function createToc() {\r\n      const tocContainer = document.querySelector(\".toc.toc-2\");\r\n      const list = document.createElement(\"ul\");\r\n\r\n      \/\/ \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0432\u0441\u0435 h2 \u0432\u043d\u0443\u0442\u0440\u0438 .article-description\r\n      headerElements = [\r\n        ...document.querySelectorAll(\".article-description h2\"),\r\n      ];\r\n\r\n      \/\/ \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043b\u0438\u0448\u043d\u0438\u0435 h2 \u2014 \u043a\u0430\u043a \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0435\r\n      const excluded = [\r\n        document.querySelector(\".related_content_blog_container h2\"),\r\n      ];\r\n      \/\/   headerElements = headerElements.filter((h) => !excluded.includes(h));\r\n\r\n      headerElements.forEach((header) => {\r\n        const textOriginal =\r\n          header.dataset.title?.trim() || header.textContent.trim();\r\n        const id =\r\n          header.id ||\r\n          textOriginal\r\n            .toLowerCase()\r\n            .replace(\/[^\\w ]+\/g, \"\")\r\n            .replace(\/ +\/g, \"-\");\r\n        header.id = id;\r\n\r\n        const li = document.createElement(\"li\");\r\n        const a = document.createElement(\"a\");\r\n\r\n        a.href = \"#\" + id;\r\n        a.textContent = LINKS[textOriginal] || textOriginal;\r\n\r\n        a.addEventListener(\"click\", (e) => {\r\n          e.preventDefault();\r\n          const y =\r\n            header.getBoundingClientRect().top + window.scrollY - OFFSET;\r\n          window.scrollTo({ top: y, behavior: \"smooth\" });\r\n        });\r\n\r\n        li.appendChild(a);\r\n        list.appendChild(li);\r\n      });\r\n\r\n      tocContainer.appendChild(list);\r\n      tocLinks = Array.from(list.querySelectorAll(\"li\"));\r\n    }\r\n\r\n    \/*-------------------------------\r\n    INTERSECTION OBSERVER\r\n    \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\r\n  --------------------------------*\/\r\n    function createObserver() {\r\n      const observerOptions = {\r\n        root: null,\r\n        rootMargin: \"0px 0px -60% 0px\",\r\n        threshold: 0, \/\/ \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u0432 \u0437\u043e\u043d\u0435 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438\r\n      };\r\n\r\n      const callback = (entries) => {\r\n        entries.forEach((entry) => {\r\n          if (entry.isIntersecting) {\r\n            const id = entry.target.id;\r\n\r\n            tocLinks.forEach((li) =>\r\n              li.classList.remove(\"active\", \"pre-active\"),\r\n            );\r\n\r\n            const index = headerElements.findIndex((h) => h.id === id);\r\n\r\n            tocLinks.forEach((li, i) => {\r\n              if (i === index) li.classList.add(\"active\");\r\n              if (i < index) li.classList.add(\"pre-active\");\r\n            });\r\n          }\r\n        });\r\n      };\r\n\r\n      const observer = new IntersectionObserver(callback, observerOptions);\r\n      headerElements.forEach((h) => observer.observe(h));\r\n    }\r\n\r\n    \/*-------------------------------\r\n    LOAD IMAGES (\u0442\u0438\u043f\u043e lazy load fix)\r\n  --------------------------------*\/\r\n    function loadAllImages() {\r\n      document.querySelectorAll(\"img\").forEach((img) => {\r\n        const src = img.dataset.src || img.src;\r\n        img.src = src;\r\n      });\r\n    }\r\n\r\n    \/*-------------------------------\r\n    INIT\r\n  --------------------------------*\/\r\n    setTimeout(() => {\r\n      loadAllImages();\r\n      createToc();\r\n      setContainerHeight();\r\n      createObserver();\r\n    }, 300);\r\n  });\r\n<\/script>\r\n\r\n<style>\r\n  .table-content-container {\r\n    max-width: 300px;\r\n    width: 100%;\r\n    flex-shrink: 0;\r\n  }\r\n\r\n  .table-content-container .elementor-widget-wrap {\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n  }\r\n\r\n  @media (max-width: 1279px) {\r\n    .table-content-container {\r\n      display: none !important;\r\n    }\r\n  }\r\n\r\n  .toc-wrapper {\r\n    display: flex;\r\n    flex-direction: column;\r\n    row-gap: 30px;\r\n    font-family: \"Karla\";\r\n    box-sizing: border-box;\r\n    \/* height: 100%; *\/\r\n\r\n    flex: 1;\r\n  }\r\n  .ddcv {\r\n    flex-basis: 100%;\r\n    flex-grow: 1;\r\n    flex-shrink: 1;\r\n    overflow-y: auto;\r\n  }\r\n\r\n  .toc-wrapper {\r\n    overflow-y: auto;\r\n    flex-shrink: 1;\r\n    flex-basis: 100%;\r\n    flex-grow: 1;\r\n  }\r\n\r\n  .toc-wrapper::-webkit-scrollbar,\r\n  .ddcv::-webkit-scrollbar {\r\n    position: absolute !important;\r\n    width: 4px !important;\r\n    background-color: #f5f5f7 !important;\r\n  }\r\n\r\n  .toc-wrapper::-webkit-scrollbar-thumb,\r\n  .ddcv::-webkit-scrollbar-thumb {\r\n    position: absolute !important;\r\n    background-color: #999999 !important;\r\n    border-radius: 4px !important;\r\n  }\r\n\r\n  .toc-wrapper .toc {\r\n    scrollbar-width: 4px !important;\r\n    scrollbar-color: auto !important;\r\n  }\r\n\r\n  h4.toc-title {\r\n    margin: 0;\r\n    font-family: Karla;\r\n    font-size: 22px;\r\n    line-height: 28px;\r\n    font-weight: 700;\r\n  }\r\n\r\n  @media screen and (max-width: 1279px) {\r\n    .ddcv {\r\n      margin-top: 0px;\r\n      position: absolute;\r\n      top: 0px;\r\n      left: 50%;\r\n      transform: translate(50%, 0);\r\n    }\r\n  }\r\n\r\n  @media screen and (max-width: 767px) {\r\n    .ddcv {\r\n      display: none;\r\n    }\r\n  }\r\n\r\n  .toc ul {\r\n    list-style: none;\r\n    font-family: \"Karla\";\r\n    font-size: 16px;\r\n    line-height: 22px;\r\n    padding: 0px;\r\n    border-left: 1px solid #717171;\r\n  }\r\n\r\n  .toc li {\r\n    margin-left: -1px;\r\n    margin-top: 0;\r\n    padding: 16px 16px 16px 20px;\r\n    font-size: 18px;\r\n    line-height: 22px;\r\n    color: #717171;\r\n    border-left: 2px solid transparent;\r\n  }\r\n\r\n  .toc ul li a {\r\n    display: block;\r\n    width: 100%;\r\n    color: inherit;\r\n    text-decoration: none !important;\r\n  }\r\n\r\n  .toc ul .active {\r\n    color: #2e2e2e;\r\n    border-left: 2px solid #c63031;\r\n  }\r\n\r\n  .toc ul .pre-active {\r\n    border-left: 2px solid #c63031;\r\n  }\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-eab1d6c e-flex e-con-boxed e-con e-parent\" data-id=\"eab1d6c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-87ab0d5 elementor-widget elementor-widget-shortcode\" data-id=\"87ab0d5\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f100240-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"100240\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/it\/wp-json\/wp\/v2\/posts\/197379#wpcf7-f100240-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" enctype=\"multipart\/form-data\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"100240\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f100240-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<style>\n.mailToContact br:nth-child(2){\ndisplay:none;\n}\n#form-templates .contact__info {\n  background-color: #f4f4f4;\n  padding: 70px 44px 70px 50px;\n  position: relative;\n  max-width: 540px;\n  width: 100%;\nborder: 1px solid #AEB1B7;\n}\n\n#form-templates .contact__info-background {\n  z-index: -1;\n  position: absolute;\n  top: 20px;\n  left: 20px;\n  width: 100%;\n  height: 100%;\n  border: 1px dashed #ef4557;\n}\n\n\n#form-templates .new-container{\ndisplay: flex;\njustify-content: space-between;\nflex-wrap: wrap;\n}\n\n\n#form-templates{\npadding: 100px 15px 100px 15px;        \n}\n\n#form-templates .contact__info-heading {\n  font-family: 'Sora' !important;\n  font-style: normal !important;\n  font-weight: 400 !important;\n  font-size: 36px !important;\n  line-height: 46px !important;\n  color: #2E2E2E !important;\n   margin-bottom: 60px !important;\n\n}\n\n\n#form-templates .message label{\ncolor: #585858 !important;   \n}\n\n.elementor-widget-container.form-template h2,.elementor-widget-container.form-template h1{\n font-size: 60px !important;\n  line-height: 70px !important;\n  font-family: \"Sora\", Sans-serif;\n  font-weight: 400;\n  margin: 0;  \n  margin-bottom: 20px;\n}\n\n\n\n\n.elementor-widget-container.form-template p{\n  font-family: \"Karla\", Sans-serif;\n  font-size: 22px;\n  font-weight: 400;\n  line-height: 28px;\n  color: var( --e-global-color-primary );\n  max-width: 700px;\n  margin: 0; \n  margin-bottom: 40px;\n} \n  \n\n\n.new-container #spinner{\nwidth: 50%;\nmax-width: 700px;\n}\n\n\n#form-templates .new-container #spinner div.contact-us__wrapper:nth-child(6){\ngap:30px; \n    \n}\n\n\n#form-templates .contact__info-heading {\n  margin-bottom: 67px;\n  font-size: 36px;\n  font-family: karla;\n  color:  #2E2E2E;\n\n  line-height: 49px;\n}\n\n#form-templates .contact__info-steps {\n  display: flex;\n  flex-direction: column;\n  max-width: 425x;\n  row-gap: 20px;\n  border-left: 1px solid #2e2e2e;\n}\n\n#form-templates .contact__info-block {\n  position: relative;\n  padding-left: 45px;\n}\n\n#form-templates .contact__info-block:last-child {\n  box-shadow: -1px 0 0 1px #f4f4f4;\n}\n\n#form-templates .contact__info-step {\n  position: absolute;\n  border: 1px solid #2e2e2e;\n  width: 40px;\n  height: 40px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: 20px;\n  left: -20px;\n  top: -8px;\n  background-color: #F4F4F4;\n  color:  #2E2E2E;\n\nfont-family: Karla;\nfont-weight: 700;\nfont-size: 18px;\nline-height: 28px;\n\n}\n\n.elementor-widget-global .contact__info-step {\n        color:  #2E2E2E;\n}\n\n#form-templates .contact__info-text {\n  margin: 0;\n  font-size: 16px;\n  line-height: 26px;\n  color: #2E2E2E;\n  font-family: karla;\n\n  width: 100%;\n}\n\n\n#form-templates .contact-us__send{\nflex-shrink: 0;\nmargin-top:0;\n}\n\n\n\n@media screen and (max-width: 1279px) {\n    .new-container #spinner{\n        width: 100%;\n        max-width:100%;\n        margin-bottom:40px;\n    }\n    \n\n    .new-container .contact__info {\n        max-width: 700px !important;\n    }\n    \n}\n\n\n@media screen and (max-width: 1279px) {\n#form-templates{\npadding: 60px 15px 70px 15px;     \n}\n}\n\n\n\n@media screen and (max-width: 767px) {\n\n#form-templates .new-container #spinner div.contact-us__wrapper:nth-child(6){\ngap:20px; \n \n}\n\n\n  #form-templates .contact__info {\n    padding: 20px 20px 40px 40px;\n    margin: 0 auto;\n  }\n\n\n#form-templates{\npadding: 40px 15px 50px 15px;  \n    \n}\n\n  \n   .new-container #spinner{\n       \n    margin-bottom:30px;   \n   }\n   \n   \n   .elementor-widget-container #form-templates .form-template h2,.elementor-widget-container.form-template h1{\n   font-size: 32px !important;\n    line-height: 42px !important;    \n   }\n   \n   \n   .elementor-widget-container #form-templates .form-template p{\n       \n    font-size: 16px;\n    line-height: 20px;  \n    margin-bottom: 30px !important;\n \n       \n   }\n   \n   #form-templates .contact__info-heading{\n   font-size: 24px !important;\n    line-height: 49px !important;    \n       \n   }\n   \n\n.mailToContact{\nmargin-top: 10px !important;        \n}\n\n   \n\n  #form-templates .contact__info-heading {\n    font-size: 24px;\n    margin-bottom: 37px;\n  }\n\n  #form-templates .contact__info-background {\n    top: 10px;\n    left: 10px;\n  }\n\n  #form-templates .contact__info-text {\n    font-size: 12px;\n    line-height: 20px;\n  }\n  \n  \n  #form-templates .contact__info-heading {\n   margin-bottom: 35px !important;\n\n}\n\n}\n\n@media (max-width: 767px) {\n    .mailToContact {\n        max-width: 100%;\n    }\n    .contact-us__wrapper .pp {\nfont-size: 12px !important;\nline-height: 140%;\nmargin-bottom: 0 !important;\n\n}\n}\n<\/style>\n\n<script>\nwindow.addEventListener('hashchange',function(e){if(window.history.pushState){window.history.pushState('','\/',window.location.pathname)}else{window.location.hash=''}})\n<\/script>\n\n\n<div id=\"form-templates\">\n<div class=\"elementor-widget-container form-template\">\n<a name=\"contact-form\"><\/a>\n<h2>Contact us<\/h2>\n<p><a id=\"calendlylink\" style=\"color: #c63031; border-bottom: 1px solid #c63031; padding: 0;\">Book a call<\/a> or fill out the form below and we\u2019ll get back to you once we\u2019ve processed your request.<\/p>\n<\/div>\n\n<div class=\"new-container\">\n\n\n<div class=\"contact-us__main\" id=\"spinner\" data-no-defer=\"1\">\n\n<div class=\"contact-us__wrapper\">\n\n<div class=\"name\">\n<label>Name<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"field_name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required contact-us__name\" id=\"contact-name\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Name*\" value=\"\" type=\"text\" name=\"field_name\" \/><\/span>\n<\/div>\n\n<div class=\"company\">\n<label>Company<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"company\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required contact-us__company\" id=\"contact-company\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Company*\" value=\"\" type=\"text\" name=\"company\" \/><\/span>\n<\/div>\n\n<\/div>\n\n<div class=\"contact-us__wrapper\">\n\n<div class=\"email\">\n<label>Email<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email contact-us__email\" id=\"contact-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Corporate email*\" value=\"\" type=\"email\" name=\"email\" \/><\/span>\n<\/div>\n\n<div class=\"phone\">\n<label>Phone<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"tel\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel contact-us__phone\" id=\"contact-phone\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Phone*\" value=\"\" type=\"tel\" name=\"tel\" \/><\/span>\n<\/div>\n\n<\/div>\n<div class=\"contact-us__wrapper subj\">\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-recipient\"><select class=\"wpcf7-form-control wpcf7-select\" id=\"form-field-subj_js\" aria-invalid=\"false\" name=\"your-recipient\"><option value=\"\">Subject*<\/option><option value=\"IT staff augmentation\">IT staff augmentation<\/option><option value=\"Turnkey product development\">Turnkey product development<\/option><option value=\"Support and enhancement\">Support and enhancement<\/option><option value=\"Careers\">Careers<\/option><option value=\"Other\">Other<\/option><\/select><\/span>\n\n<span class=\"wpcf7-form-control-wrap\" data-name=\"form-field-budget_js\"><select class=\"wpcf7-form-control wpcf7-select\" id=\"form-field-budget_js\" aria-invalid=\"false\" name=\"form-field-budget_js\"><option value=\"\">Project budget<\/option><option value=\"Under $15K\">Under $15K<\/option><option value=\"$15K-$30K\">$15K-$30K<\/option><option value=\"$30K-$100K\">$30K-$100K<\/option><option value=\"$100K-$250K\">$100K-$250K<\/option><option value=\"$250K-$500K\">$250K-$500K<\/option><option value=\"More than $500K\">More than $500K<\/option><\/select><\/span>\n\n<\/div>\n\n\n<div class=\"message\">\n<label>Message<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"message\"><textarea cols=\"40\" rows=\"1\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required contact-us__message\" id=\"contact-message\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Describe your needs in detail*\" name=\"message\"><\/textarea><\/span>\n<\/div>\n\n<div class=\"atvoice-wrap\">\n\n<div class=\"voice-wrap\">\n<span id=\"voice-mut\" class=\"voicetext\">Send us a voice message<\/span>\n         <div class=\"qc_voice_audio_wrapper\">\n            <div class=\"qc_voice_audio_container\">\n                <div class=\"qc_voice_audio_upload_main\" id=\"qc_audio_main\">\n                    <a class=\"qc_audio_record_button\" id=\"qc_audio_record\" href=\"#\" aria-label=\"Record an audio message\">\n                        <span class=\"dashicons dashicons-microphone\"><\/span> \u00a0<\/a> \n                <\/div>\n\n                <div class=\"qc_voice_audio_recorder\" id=\"qc_audio_recorder\" style=\"display:none\">\n\n                <\/div>\n                <div class=\"qc_voice_audio_display\" id=\"qc_audio_display\"  style=\"display:none\">\n                    <audio id=\"qc-audio\" controls src=\"\"><\/audio>\n                    <span title=\"Remove and back to main upload screen.\" class=\"qc_audio_remove_button dashicons dashicons-trash\"><\/span>\n                <\/div>\n            <\/div>\n            <input type=\"hidden\" value=\"\" name=\"qcwpvoicemessage\" id=\"qc_audio_url\" \/>\n        <\/div>\n        \n<\/div>\n\n\n<div class=\"attach-wrap\">\n<span class=\"voicetext\">Attach documents<\/span>\n\n<div class='attachment'>\n\n<div class=\"downloaded\">\n<span><\/span>\n<div class=\"deleteFile\"><\/div>\n<\/div>\n\n<div class=\"attachmentButton\" onclick=\"(function cl(e){if(e.target.nodeName == 'DIV'){e.target.parentNode.children[1].children[0].click(); }})(arguments[0]);\">\n\n<div class=\"innerText\">Upload file<\/div>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"att-files\"><input size=\"40\" class=\"wpcf7-form-control wpcf7-file\" accept=\".jpg,.png,.jpeg,.pdf\" aria-invalid=\"false\" type=\"file\" name=\"att-files\" \/><\/span>\n\n<div class=\"tip\" onclick=\"event.stopPropagation()\">\n<p>You can attach 1 file up to 2MB. Valid file formats: pdf, jpg, jpeg, png.<\/p>\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<\/div>\n\n<div class=\"contact-us__wrapper\"> \n<p class=\"pp\">By clicking Send, you consent to Innowise processing your personal data per our<a href=\"\/privacy-notice\/\"> Privacy Policy <\/a>to provide you with relevant information. By submitting your phone number, you agree that we may contact you via voice calls, SMS, and messaging apps. Calling, message, and data rates may apply.<\/p>\n\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"scoring_point\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmCampaign\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmContent\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmMedium\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmSource\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmTerm\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"location\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"city\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"ip\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"Summ\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"gclid\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"rating\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"urlCompany\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"urlWithParams\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"audioMessageLink\" \/>\n<input class=\"wpcf7-form-control wpcf7-submit has-spinner contact-us__send\" id=\"contact-send-button\" type=\"submit\" value=\"Send\" \/>\n<\/div>\n\n<div class='mailToContact'>You can also send us your request <\/br>to <a href=\"mailto:contact@innowise.com\">contact@innowise.com<\/a><\/div>\n\n<\/div>\n\n<div class=\"elementor-widget-container\" style=\"z-index:1;\">\n<div class=\"contact__info\">\n  <div class=\"contact__info-background\"><\/div>\n  <div class=\"contact__info-heading\">What happens next?<\/div>\n  <div class=\"contact__info-steps\">\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">1<\/div>\n      <p class=\"contact__info-text\">Once we\u2019ve received and processed your request, we\u2019ll get back to you to detail your\n        project needs and sign an NDA to ensure confidentiality.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">2<\/div>\n      <p class=\"contact__info-text\">After examining your wants, needs, and expectations, our team will devise a project\n        proposal with the scope of work, team size, time, and cost estimates.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">3<\/div>\n      <p class=\"contact__info-text\">We\u2019ll arrange a meeting with you to discuss the offer and nail down the details.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">4<\/div>\n      <p class=\"contact__info-text\">Finally, we\u2019ll sign a contract and start working on your project right away.<\/p>\n    <\/div>\n  <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\n<\/div>\n\n<\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"related_content_blog_container\">[related_content_list]<\/div><script>\n            jQuery( document ).ready(function($) {\n            var parentSection = $('[data-elementor-type=\"wp-page\"]');\n            if($('[data-elementor-type=\"wp-post\"]').length){\n                var parentSection = $('[data-elementor-type=\"wp-post\"]');\n            }\n            \n                parentSection.children().last().before($('.related_content_blog_container'));\n            });\n            <\/script><div class=\"other_services_container\">[need_other_services_v2]<\/div><script>\n                    jQuery( document ).ready(function($) {\n                        var parentSection = $('[data-elementor-type=\"wp-page\"]');\n                        if($('[data-elementor-type=\"wp-post\"]').length){\n                            var parentSection = $('[data-elementor-type=\"wp-post\"]');\n                        }\n                        \n                        console.log(parentSection);\n                        parentSection.children().last().before($('.other_services_container'));\n                        var sections = parentSection.find('.net-15.dt-16');\n                        for(var i = 0; i<sections.length; i++){\n                            if($(sections[i]).hasClass( 'net-15' ) && $(sections[i]).hasClass( 'dt-16' ) && $(sections[i]).hasClass( 'elementor-hidden-desktop' )==false){\n                                $(sections[i]).before($('.other_services_container'));   \n                            }\n                        }\n                        \n                    });\n                <\/script>","protected":false},"excerpt":{"rendered":"<p>What is a decentralized identifier (DID)? A guide to blockchain-based digital identity Andrew Nalichaev May 26, 2026 15 min read [summarize_button_ai] You\u2019ve probably seen it yourself: feed GPT a selfie, ask for a passport-style document, and within minutes, you get something that can get past basic visual checks. Add voice cloning and synthetic video, and [&hellip;]<\/p>\n","protected":false},"author":159,"featured_media":197381,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"_acf_changed":true,"inline_featured_image":false,"footnotes":""},"categories":[1175,128],"class_list":["post-197379","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-andrew_author","category-blog","tag-blockchain"],"acf":[],"_links":{"self":[{"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/posts\/197379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/users\/159"}],"replies":[{"embeddable":true,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/comments?post=197379"}],"version-history":[{"count":0,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/posts\/197379\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/media\/197381"}],"wp:attachment":[{"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/media?parent=197379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/categories?post=197379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/innowise.com\/it\/wp-json\/wp\/v2\/tags?post=197379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}