Decentralized identity (DID) systems shift control of personal data from centralized institutions to the individual. For researchers, this enables self-sovereign identity (SSI), where credentials like academic degrees, publication records, and data access permissions are issued as cryptographically signed verifiable credentials (VCs). These VCs are stored in a user-controlled wallet and can be presented to verifiers—such as journal publishers, conference organizers, or data repositories—without relying on a central university registrar. The core technical standards are the W3C's Decentralized Identifiers (DIDs) and Verifiable Credentials Data Model, which provide interoperability across different platforms and blockchains.
Setting Up a Decentralized Identity Framework for Researchers
Setting Up a Decentralized Identity Framework for Researchers
A practical guide to implementing self-sovereign identity (SSI) for academic and data science workflows using verifiable credentials and decentralized identifiers.
The first step is choosing a DID method, which defines how a DID is created, resolved, and managed on a specific ledger or network. For research applications, consider methods like did:ethr (Ethereum), did:key (simple cryptographic keys), or did:web (for institutional hosting). A DID is a URI, e.g., did:ethr:0xabc123..., that points to a DID Document. This JSON-LD document contains public keys, service endpoints, and verification methods, allowing any party to cryptographically verify proofs signed by the DID's controller. You can generate a DID using SDKs from providers like SpruceID, Microsoft ION, or the DIF's universal resolver.
To issue a credential, an issuer (e.g., a university) creates a signed data structure containing claims about a holder (the researcher). Using a library like did-jwt-vc or vc-js, you can create a VC in JSON-LD format. The credential includes metadata like the issuer DID, issuance date, and expiry, and the claim payload (e.g., "degree": "PhD in Bioinformatics"). The issuer then signs the credential with their private key. The holder stores this VC in their digital wallet, which can be a mobile app (e.g., Spruce's Credible) or a cloud-custodied service. The wallet manages private keys and creates verifiable presentations—selective disclosures of credentials for specific verifiers.
Researchers can integrate DIDs into their workflows for peer review, data access, and reproducible science. For example, a Data Availability Statement in a paper could include a DID pointing to a verifiable credential granting access to a restricted dataset on IPFS or Arweave. Smart contracts on networks like Polygon or Ethereum can act as automated verifiers, checking a presenter's VC signature before granting access to a gated computational resource or releasing payment for a research bounty. This creates trust-minimized collaboration across institutional boundaries.
Key implementation considerations include privacy-preserving proofs using zero-knowledge circuits (e.g., with zkSNARKs) to prove credential attributes without revealing the underlying data, revocation mechanisms like status lists or smart contract registries, and key management strategies for recovery. Frameworks like Trinsic, Veramo, and Serto provide developer APIs to abstract these complexities. By adopting a DID framework, researchers gain portable, cryptographically assured identities that reduce administrative friction and enable new models of credentialing and data sovereignty in open science.
Setting Up a Decentralized Identity Framework for Researchers
This guide details the technical prerequisites and initial setup required to implement a decentralized identity (DID) framework for academic and data science research.
Decentralized identity (DID) systems allow researchers to own and control their credentials—such as academic degrees, publication records, and dataset access permissions—without relying on a central university or publisher. The core technology stack for implementing this involves three components: a DID method for creating identifiers, a Verifiable Credentials (VC) data model for attestations, and a wallet for key management. For research applications, the W3C DID Core and Verifiable Credentials Data Model specifications are the foundational standards. Popular DID methods include did:ethr (Ethereum), did:key, and did:web, each with different trade-offs in decentralization and ease of use.
Before writing any code, you must establish your development environment. You will need Node.js (v18 or later) and a package manager like npm or yarn. For blockchain-based DID methods, access to an Ethereum testnet (like Sepolia) via an RPC provider (Infura, Alchemy) is required, along with a funded test wallet (e.g., using MetaMask). Install essential libraries: did-resolver, ethr-did-resolver, web3, and a VC library such as vc-js or veramo. For a quick start, the Veramo framework provides a modular CLI and SDK that bundles many of these tools. Run npm install -g @veramo/cli to begin.
The first technical step is to create a DID Document. This JSON-LD document contains the public keys and service endpoints associated with your DID. Using the did:ethr method, you can generate a DID linked to an Ethereum address. Here's a basic example using the ethr-did library:
javascriptimport { EthrDID } from 'ethr-did'; const provider = /* your web3 provider */; const ethrDid = new EthrDID({ identifier: '0x...', provider, chainNameOrId: 'sepolia' }); console.log('My DID:', ethrDid.did);
This DID is now a persistent identifier you control, anchored on the blockchain.
Next, you need to issue and sign Verifiable Credentials. A VC is a tamper-evident credential, like a digital transcript, signed by an issuer's DID. Using the Veramo agent, you can create a credential schema and issue it to a researcher's DID. The credential's proof is a JSON Web Signature (JWS) or EdDSA signature, making it independently verifiable. This allows a researcher to prove their qualifications to a data repository without the issuer being online. The credential is stored in the researcher's digital wallet, which can be a cloud agent, mobile app, or browser extension.
Finally, configure a resolver to fetch DID Documents and a verifier to check credential proofs. The resolver connects to the appropriate blockchain or web endpoint to retrieve the public keys needed for verification. For production, consider privacy-preserving techniques like Zero-Knowledge Proofs (ZKPs) using circuits (e.g., with Circom) to allow selective disclosure of credential attributes. This setup forms the backbone for trust-minimized peer review, reproducible research attestation, and compliant data sharing under models like the GAIA-X framework.
Core Concepts: DIDs and Verifiable Credentials
A practical guide to implementing decentralized identity (DID) and verifiable credential (VC) frameworks for academic and scientific research workflows.
A Decentralized Identifier (DID) is a new type of globally unique identifier that an individual, organization, or device creates, owns, and controls, without reliance on a central registry. Unlike traditional identifiers (like an email address controlled by Google), a DID is anchored on a verifiable data registry, typically a blockchain or distributed ledger. This gives the subject self-sovereign control over their identity. For researchers, this means owning a persistent digital identity that is not tied to a single institution's IT system, enabling portability of their academic persona across universities, funding bodies, and publishing platforms.
Verifiable Credentials (VCs) are the digital, cryptographically secure equivalent of physical credentials like a diploma or a conference badge. A VC is a set of claims (e.g., "has a PhD in Bioinformatics from University X") issued by an issuer (the university) to a holder (the researcher). The credential is signed with the issuer's DID, making it tamper-evident and verifiable. The holder stores VCs in a digital wallet and can present them to a verifier (like a journal or grant committee) without revealing unnecessary personal data, a principle known as selective disclosure.
The technical foundation for VCs and DIDs is provided by the World Wide Web Consortium (W3C) standards. The W3C DID Core specification defines the data model and operations for DIDs, while the W3C Verifiable Credentials Data Model standardizes the structure of credentials. These standards ensure interoperability between different identity networks. Common DID methods (the specific implementation on a ledger) include did:ethr for Ethereum, did:key for simple key pairs, and did:web for web-based resolution.
For a researcher, a practical workflow begins with creating a DID. Using a library like did-ethr with ethers.js, you can generate a DID linked to an Ethereum wallet: const did = 'did:ethr:0x5B38Da6a701c568545dCfcB03FcB875f56beddC4';. This DID becomes your root identity. An institution, acting as an issuer, would then create a Verifiable Credential in JSON-LD format, signing it with their institutional DID. The credential would contain claims about your degree, publication record, or peer review history, and is delivered to your wallet.
When applying for a grant, you would use your wallet to create a Verifiable Presentation. This package bundles the relevant credentials (proving your qualifications) and is presented to the grant agency's verification service. The verifier checks the cryptographic signatures against the DIDs on the ledger, confirming the credential's authenticity and issuer authority without needing to contact the issuing university directly. This reduces administrative overhead and fraud risk while giving you control over your data.
Implementing this framework addresses key research pain points: credential portability across institutions, streamlined verification for peer review and grant applications, and enhanced privacy through minimal data disclosure. Open-source tools like Veramo (a TypeScript framework for SSI) and Trinsic provide SDKs to build these flows. The shift from institution-centric to user-centric identity is foundational for creating more open, collaborative, and efficient scientific ecosystems.
DID Method Comparison for DeSci
Key technical and operational differences between leading DID methods for decentralized science applications.
| Feature / Metric | did:ethr (Ethereum) | did:key (Portable) | did:web (Server-Based) | did:ion (Bitcoin/Sidetree) |
|---|---|---|---|---|
Underlying Ledger | Ethereum L1/L2 | None (off-chain) | Web domain (centralized) | Bitcoin + IPFS |
Update/Revocation | ||||
Resolver Complexity | Medium | Low | Low | High |
Typical Issuance Cost | $2-10 (Gas) | $0 | $0 (Hosting) | $1-5 (BTC fees + storage) |
VC Compatibility | ||||
Decentralization Level | High | Medium (key-based) | Low | Very High |
Primary Use Case | On-chain credentials, DeFi integration | Peer-to-peer exchange, testing | Controlled enterprise pilots | Censorship-resistant long-term IDs |
Sideline Recovery | Social recovery via smart contracts | None (key loss = ID loss) | Admin reset | Protocol-level recovery commits |
Step 1: Creating and Managing a DID
This guide explains how to create and manage a Decentralized Identifier (DID), the core component of a self-sovereign identity for researchers.
A Decentralized Identifier (DID) is a globally unique, cryptographically verifiable identifier that you control, independent of any centralized registry. Unlike an email address or social media handle, a DID is anchored on a blockchain or other decentralized network. For a researcher, this creates a persistent, portable identity for credentials like academic degrees, publication records, and peer reviews. The standard format is defined by the W3C as did:method:method-specific-identifier, where the method refers to the underlying ledger (e.g., did:ethr, did:key, did:ion).
To create a DID, you first generate a cryptographic key pair. This is typically done using a DID method SDK like did-ethr for Ethereum-compatible chains or did-key for a simple, offline method. The private key is your ultimate proof of ownership and must be stored securely, often in a digital wallet. The public key and the resulting DID document are then written to the chosen network. For example, using the did:ethr method on Ethereum, your DID is derived from your Ethereum address, and the associated DID document is managed via a smart contract like the Ethereum DID Registry.
A DID Document is a JSON-LD file that contains the public keys, authentication mechanisms, and service endpoints associated with your DID. It acts as your identity's public profile. When you create a DID, this document is published to the chosen decentralized network. Here is a simplified example of a DID document for did:example:123456789abcdefghi:
json{ "@context": "https://www.w3.org/ns/did/v1", "id": "did:example:123456789abcdefghi", "authentication": [{ "id": "did:example:123456789abcdefghi#key-1", "type": "Ed25519VerificationKey2020", "controller": "did:example:123456789abcdefghi", "publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV" }], "service": [{ "id": "did:example:123456789abcdefghi#linked-domain", "type": "LinkedDomains", "serviceEndpoint": "https://research-portal.example.com" }] }
Managing your DID involves updating its document to reflect changes, such as adding a new public key for a different device or rotating a compromised key. This is done by submitting a signed transaction to the underlying blockchain. For instance, to add a service endpoint for your ORCID profile, you would construct an update operation, sign it with your current private key, and send it to the DID's resolver contract. Key rotation is a critical security practice; you can add a new authentication key and then revoke the old one, all without changing your core DID identifier, ensuring continuity for your verified credentials.
For researchers, choosing the right DID method involves trade-offs. did:key is simple and offline, ideal for testing or private contexts. did:ethr leverages Ethereum's security and is well-suited for Web3-native applications. did:ion (based on Bitcoin's Sidetree protocol) offers high scalability for frequent updates. Your choice will depend on factors like required transaction throughput, cost, and the ecosystems where you need to operate. Always use established libraries and follow the specific method's documentation, such as the Ethr DID Resolver or the ION SDK.
Once your DID is created and managed, it becomes the root of trust for your decentralized identity. You can use it to sign and verify data (like signing a research dataset to prove authorship), authenticate to applications without passwords, and most importantly, receive and present Verifiable Credentials. These credentials, issued by trusted entities like universities or conferences, are cryptographically bound to your DID, creating a tamper-proof record of your achievements and affiliations that you control entirely.
Step 2: Issuing Verifiable Credentials
This guide details the technical process of creating and issuing W3C-compliant Verifiable Credentials (VCs) to establish a researcher's identity on-chain.
A Verifiable Credential (VC) is a tamper-evident digital credential whose authorship and integrity can be cryptographically verified. For a researcher, this could represent a validated academic degree, a published paper's DOI, or institutional affiliation. The core data model is defined by the W3C VC Data Model, which structures a credential into three parts: metadata (issuer, issuance date), claims (the actual data like "degree": "PhD"), and proofs (cryptographic signatures). This standardization ensures interoperability across different decentralized identity (DID) systems and verifiers.
To issue a VC, you first need a Decentralized Identifier (DID) for both the issuer (e.g., a university) and the subject (the researcher). Using the did:ethr method on Ethereum, an issuer's DID might look like did:ethr:0x5A9.... The credential is then constructed as a JSON-LD document. Below is a simplified example of a VC asserting a PhD qualification, signed using the EIP712 standard for Ethereum-compatible signatures, which provides human-readable signing requests.
json{ "@context": ["https://www.w3.org/2018/credentials/v1"], "id": "https://university.edu/credentials/123", "type": ["VerifiableCredential", "AcademicDegreeCredential"], "issuer": "did:ethr:0x5A9...", "issuanceDate": "2024-01-15T00:00:00Z", "credentialSubject": { "id": "did:ethr:0x7B2...", "degree": "PhD", "field": "Computational Biology", "awardingInstitution": "Example University" }, "proof": { "type": "EthereumEip712Signature2021", "created": "2024-01-15T00:00:00Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:ethr:0x5A9...#controller", "proofValue": "0x..." // The EIP712 signature } }
The cryptographic proof is the core of verifiability. After structuring the credential data, the issuer hashes it and signs the hash with their private key, attaching the signature as proofValue. On Ethereum, using EIP712 is preferred over a simple eth_sign as it structures the data for signing, preventing phishing attacks. Verifiers can then resolve the issuer's DID to fetch their public key from the blockchain or a DID resolver, recompute the hash, and verify the signature's validity. This process proves the credential was issued by the claimed entity and has not been altered.
For persistent, decentralized storage of VCs, researchers typically use Verifiable Data Registries (VDRs). While VCs can be stored off-chain (e.g., in the researcher's mobile wallet), their integrity is anchored on-chain. A common pattern is to store only the essential cryptographic commitment—like the credential's hash—in a smart contract or on a blockchain like Ethereum or Polygon. This creates an immutable timestamp and proof of existence without storing the potentially private data on-chain. The full credential is held by the subject and presented selectively using Verifiable Presentations.
The final step is enabling the researcher to present this credential. They create a Verifiable Presentation (VP), which packages one or more VCs, often with a specific challenge from a verifier (e.g., a research funding DAO). The researcher signs this presentation with their own DID key, proving control over the credentials without revealing unnecessary data. This allows for selective disclosure, where a researcher could prove they hold a PhD from a specific institution without exposing their student ID number, balancing verification with privacy.
Step 3: Implementing Attestation Protocols
This guide details the practical implementation of attestation protocols to build a decentralized identity framework for academic and research credentials.
An attestation is a cryptographically signed statement made by an issuer about a subject. In a research context, this could be a university attesting to a researcher's PhD, a journal attesting to a peer review, or a conference attesting to a presented paper. The core technical components are the issuer (signer), subject (holder of the credential), and verifier. Protocols like the W3C Verifiable Credentials Data Model provide the standard schema, while Decentralized Identifiers (DIDs) serve as the persistent, verifiable identifiers for all parties, decoupling identity from centralized registries.
To implement this, you first need to choose and deploy a verifiable credential protocol. Ethereum Attestation Service (EAS) is a popular on-chain option where attestations are stored as immutable records on-chain, ideal for high-stakes, publicly verifiable claims. For more private or scalable use cases, Veramo or Serto frameworks enable off-chain, JSON-LD Signatures or JWT-based credentials that can be presented selectively using protocols like Present Proof. The choice depends on your trade-off between transparency, cost, gas fees, and data privacy.
The implementation workflow involves three key steps. First, issuer onboarding: each institution (e.g., did:ethr:0xUniversity123) creates a DID and registers its public key or on-chain schema using a tool like EAS's SchemaRegistry. Second, credential issuance: the issuer creates a credential conforming to a schema (e.g., PhDCredential), signs it with their private key, and delivers it to the researcher's identity wallet (like MetaMask or a specialized Veramo agent). Third, verification: a grant committee or employer (the verifier) requests proof, the researcher presents a cryptographic proof from their wallet, and the verifier checks the issuer's signature and the credential's status without contacting the issuer directly.
For a concrete on-chain example using EAS, an issuer would first register a schema and then create an attestation. Here is a simplified Solidity interface call:
solidity// After schema is registered with schemaId bytes32 schemaId = 0x123...abc; address recipient = researcherWalletAddress; bool revocable = true; bytes memory data = abi.encode( researcherDID, "PhD in Computer Science", "Stanford University", 2024 ); // Create the on-chain attestation attestationUID = eas.attest({ schema: schemaId, data: { recipient: recipient, expirationTime: 0, // No expiration revocable: revocable, data: data } });
This code mints a non-transferable attestation NFT to the researcher's address, containing the encoded credential data.
Critical implementation considerations include revocation mechanisms (using on-chain revoke functions or status lists), selective disclosure (using zero-knowledge proofs via tools like Spartan-zkEAS or Polygon ID to reveal only that a degree is from an accredited institution without revealing the GPA), and interoperability. Ensure your credentials use public, well-documented schemas so they can be understood by verifiers across different ecosystems. Attestation stations like EAS or Ceramic Network also allow for composability, where multiple attestations (degree + publication record) can be aggregated to form a richer verifiable presentation of a researcher's profile.
Step 4: Integrating On-Chain Reputation
This guide explains how to build a decentralized identity framework for researchers using verifiable credentials and on-chain attestations to establish trust.
A decentralized identity (DID) framework allows researchers to own and control their professional credentials without relying on a central authority. The core components are a DID method (like did:ethr or did:pkh) that creates a unique identifier from a blockchain wallet, and Verifiable Credentials (VCs), which are tamper-proof digital claims issued by trusted entities. For example, a research institution can issue a VC attesting that a researcher holds a PhD, which the researcher stores in their personal identity wallet like SpruceID's Credible or Metamask Snaps.
To make these credentials useful for on-chain applications, they must be transformed into on-chain attestations. Services like Ethereum Attestation Service (EAS) or Verax allow issuers to create a permanent, public record of a claim on-chain. The attestation schema defines the data structure, such as issuer, recipient, credentialType, and expirationDate. When a researcher connects their wallet to a dApp, the application can query these attestation registries to verify their credentials in real-time, enabling permissioned access or reputation-based rewards.
Here is a basic example of creating an attestation using EAS on the Sepolia testnet. First, you define a schema and then attest to it for a recipient address.
javascriptimport { EAS, SchemaEncoder } from "@ethereum-attestation-service/eas-sdk"; const eas = new EAS("0x4200000000000000000000000000000000000021"); // Sepolia EAS contract eas.connect(provider); // Connected signer // Define the schema for a "ResearchAffiliation" credential const schemaEncoder = new SchemaEncoder("string affiliation,uint64 memberSince"); const encodedData = schemaEncoder.encodeData([ { name: "affiliation", value: "Chainscore Labs", type: "string" }, { name: "memberSince", value: 1735689600, type: "uint64" } ]); // Create the on-chain attestation const tx = await eas.attest({ schema: "0x...your_schema_uid_here...", data: { recipient: "0x...researcher_wallet_address...", expirationTime: 0n, // No expiration revocable: true, data: encodedData, }, });
For a researcher's identity to be truly portable and composable, their attestations should be discoverable via a DID resolver. This involves linking their DID document (stored on-chain or on IPFS) to their attestation records. A dApp can then resolve did:ethr:0xabc... to fetch the document, which contains service endpoints pointing to attestation registries. Frameworks like Ceramic Network and IDX provide a data stream for DIDs, allowing researchers to maintain a self-updating profile that aggregates credentials from EAS, Gitcoin Passport, and other sources into a single view.
When designing the framework, key considerations include selective disclosure, where a researcher can prove a specific claim (e.g., "I have a PhD") without revealing the entire credential, often using zero-knowledge proofs (ZKPs). Revocation mechanisms are also critical; using a registry like EAS allows the original issuer to revoke an attestation if a credential is invalidated. Finally, ensure privacy-preserving verification by default, perhaps using semaphore or zkBob for anonymous group membership proofs, so a researcher can verify their reputation without doxxing their entire transaction history.
Integrating this framework enables powerful use cases: reputation-weighted governance in DAOs, access-gated research datasets, and sybil-resistant grant distributions. By anchoring verifiable credentials to a decentralized ledger, researchers build a persistent, user-controlled reputation layer that interoperates across the Web3 ecosystem, moving beyond isolated platform scores to a unified professional identity.
Tools and Resources
These tools and specifications form a practical stack for researchers setting up decentralized identity systems. Each resource focuses on verifiable credentials, decentralized identifiers, or production-grade identity workflows used in active research and enterprise pilots.
Example Verifiable Credential Schemas for Research
Common credential schemas used to standardize academic and professional data for on-chain verification.
| Credential Attribute | Academic Credential | Professional Membership | Research Contribution | Peer Review Record |
|---|---|---|---|---|
Standard Schema | W3C Verifiable Credentials | Open Badges 3.0 | CERIF (Common European Research Information Format) | DIF Peer Review Vocabulary |
Primary Issuer | Accredited University | Professional Body (e.g., IEEE) | Research Institution / Publisher | Journal or Conference Committee |
Core Claim(s) | Degree conferred, GPA, graduation date | Membership ID, status, expiration | DOI, publication title, author list, venue | Reviewer ID, manuscript DOI, recommendation, date |
Revocation Method | Status List 2021 | Smart Contract Registry | Immutable on-chain record | Status List 2021 |
Typical Expiry | null | 1 year | null | null |
On-Chain Storage | IPFS hash of signed credential | Stored in issuer's smart contract | Arweave permanent storage | IPFS hash with timestamp proof |
Selective Disclosure | ||||
Estimated Minting Cost | $2-5 (Gas + Storage) | $10-20 (Gas + Registry Fee) | $5-15 (Gas + Arweave) | $1-3 (Gas) |
Frequently Asked Questions
Common technical questions and solutions for developers implementing decentralized identity (DID) systems for research and data access.
A Decentralized Identifier (DID) is a cryptographically verifiable identifier controlled by the user, not a central authority. Unlike a traditional username/password or OAuth login, a DID is anchored on a blockchain or distributed ledger (like Ethereum, Polygon, or Ceramic). The core components are:
- DID Document: A JSON-LD document containing public keys, authentication methods, and service endpoints, resolvable via the DID URI (e.g.,
did:ethr:0x...). - Verifiable Credentials (VCs): Tamper-proof, cryptographically signed attestations (like a researcher's affiliation or certification) issued to a DID.
- User Control: The private key holder (the researcher) proves ownership via digital signatures, enabling self-sovereign identity without relying on a central database that can be breached or censored.
Conclusion and Next Steps
You have now configured a decentralized identity framework using Verifiable Credentials and Decentralized Identifiers (DIDs). This setup enables secure, user-controlled data sharing for research collaboration.
The core components of your framework are now operational: a DID resolver for identifier management, a VC issuer service for credential creation, and a verifier application for proof validation. You have successfully issued a credential containing a researcher's academic affiliation and verified its authenticity using a cryptographic proof. This demonstrates a fundamental shift from centralized, institution-held records to a portable, user-centric model where researchers control their own verified data.
For production deployment, several critical next steps are required. First, integrate a revocation mechanism such as a credential status list to invalidate credentials if needed. Second, implement selective disclosure using technologies like BBS+ signatures, allowing a researcher to prove they hold a PhD from a specific university without revealing the exact issuance date or other metadata. Finally, establish a governance model for your Trust Registry—the curated list of trusted DID issuers—to prevent Sybil attacks and ensure credential quality.
To extend this framework, explore integrating with existing ecosystems. The W3C Verifiable Credentials Data Model is the universal standard. For Ethereum-based projects, consider using EIP-712 for structured data signing in smart contracts that verify credentials. Projects like Ceramic Network offer composable data streams for updating credentials over time, while Ontology's ONT ID provides a robust framework for multi-chain identity.
The practical applications for researchers are significant. Imagine a peer-review system where anonymous reviewers prove their expertise via VCs without revealing their identity, or a grant platform that automatically verifies institutional affiliation and publication history. This reduces administrative overhead and fraud. Your next project could be building a cross-institutional collaboration portal where researchers from different organizations seamlessly prove their credentials to join projects or access sensitive datasets.
Continue your learning by exploring the Decentralized Identity Foundation (DIF) specifications and the SSI Orbit community. Experiment with other DID methods like did:key for simplicity or did:web for prototyping. The code you've written is a foundation; the next layer is creating intuitive user experiences that hide cryptographic complexity, making self-sovereign identity accessible to all researchers.