Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
LABS
Guides

Setting Up a Decentralized Identity for Researchers

A developer-focused guide to creating a self-sovereign identity for researchers using decentralized identifiers (DIDs), verifiable credentials, and on-chain attestations for scientific provenance.
Chainscore © 2026
introduction
INTRODUCTION

Setting Up a Decentralized Identity for Researchers

A practical guide to implementing self-sovereign identity (SSI) for academic and Web3 research workflows.

Decentralized identity (DID) systems shift control of personal data from centralized institutions to the individual. For researchers, this means creating a verifiable credential ecosystem where academic affiliations, publication records, and peer reviews can be cryptographically proven without relying on a single university or publisher. Core to this is the W3C Decentralized Identifiers (DID) standard, which provides a framework for creating persistent, portable identifiers not owned by any central registry. Researchers can use DIDs to build a portable, tamper-evident record of their professional achievements.

The technical foundation relies on public key cryptography. A DID is essentially a URI that points to a DID Document (DIDDoc). This document contains public keys, authentication protocols, and service endpoints. When you create a DID—for instance, using the did:ethr method on Ethereum or did:key for a simple key pair—you generate a cryptographic key pair. The private key signs credentials, while the public key, published in the DIDDoc, allows anyone to verify those signatures. This creates a trust model based on cryptographic proof rather than institutional authority.

For practical implementation, researchers interact with Verifiable Credentials (VCs). A VC is a tamper-proof digital claim, like a diploma, issued by an authority (an issuer). The researcher holds this credential in a digital wallet. When applying for a grant or submitting a paper, they can present a Verifiable Presentation, sharing only the necessary credentials without revealing their entire identity. Protocols like JSON Web Tokens (JWT) or W3C Verifiable Credentials Data Model are commonly used to structure these credentials. Libraries such as did-jwt-vc or Microsoft's Verifiable Credentials SDK facilitate creation and verification.

Setting up a basic decentralized identity involves several steps. First, choose a DID method suitable for your use case; did:key is simple for testing, while did:ethr leverages Ethereum for decentralized public key infrastructure. Next, generate a DID and its corresponding DIDDoc. Then, integrate with a wallet capable of storing VCs, such as Spruce ID's Credible or Trinsic's ecosystem. Finally, you must design the credential schema for your claims (e.g., ResearchPaperPublished) and establish a process for trusted issuers, like universities or conferences, to sign them.

The applications in research are significant. Decentralized identity can streamline peer review by providing verifiable anonymized credentials, enable trust in decentralized science (DeSci) collaborations, and create portable reputational scores across platforms. However, challenges remain, including key management responsibility, interoperability between different DID methods, and establishing widespread trust in issuers. The evolution of standards and wallet infrastructure is critical for broader adoption beyond early prototypes.

prerequisites
PREREQUISITES

Setting Up a Decentralized Identity for Researchers

Before you can build with or analyze decentralized identity systems, you need to establish your own foundational setup. This guide covers the essential tools and concepts required for researchers.

Decentralized Identity (DID) is a paradigm where identity credentials are owned and controlled by the user, not a central authority. For researchers, this means creating a self-sovereign identity that can be used to authenticate across Web3 applications, sign verifiable credentials, and interact with decentralized protocols. The core standard is the W3C Decentralized Identifiers (DID) specification, which defines a unique identifier (a DID) and an associated DID Document containing public keys and service endpoints. Understanding this model is the first prerequisite for any practical work.

You will need a cryptographic wallet to manage your DID's keys. While any Ethereum wallet like MetaMask can generate a key pair, dedicated DID wallets offer better support for standards. For development and testing, we recommend using did:ethr or did:key methods initially. The ethr-did library allows you to create a DID linked to an Ethereum address, where the associated private key controls the DID Document. This provides a practical starting point without requiring a blockchain transaction for every update.

To interact with DID registries and resolve identifiers, you'll need access to a DID Resolver. This is a software component that takes a DID string (e.g., did:ethr:0xabc...) and returns the corresponding DID Document. For Ethereum-based DIDs, you can use the universal resolver service or run a local instance. In a Node.js environment, you can install the ethr-did-resolver and web-did-resolver packages. The ability to programmatically resolve DIDs is essential for verifying credentials and building applications.

A critical concept is the Verifiable Credential (VC), a tamper-evident credential whose authorship can be cryptographically verified. As a researcher, you may issue VCs (e.g., for survey participation) or verify them from others. The JSON-LD data format is commonly used for VCs, providing a standardized structure for claims. Libraries like veramo (JavaScript/TypeScript) or ssi-sdk (Go) provide comprehensive toolkits for creating, signing, and verifying VCs, handling the complex cryptographic operations for you.

Finally, set up a development environment with Node.js (v18+) or your language of choice. For a full-stack research setup, consider using the Veramo Agent Framework, which bundles DID management, credential handling, and message routing into a single configurable system. Start by initializing an agent with an in-memory database and a simple key management system. This agent will be your primary interface for executing the identity operations covered in subsequent guides, from creating your first DID to issuing a verifiable presentation.

key-concepts-text
KEY CONCEPTS

Setting Up a Decentralized Identity for Researchers

Decentralized identity (DID) provides researchers with self-sovereign, verifiable credentials that are portable across platforms and resistant to censorship.

A Decentralized Identifier (DID) is a new type of globally unique identifier that an individual or entity controls without reliance on a central registry. Unlike an email address controlled by Google or a university ID, a DID is anchored on a public blockchain or decentralized network. This creates a foundational layer for self-sovereign identity (SSI), where users have ownership and control over their credentials. For researchers, this means academic affiliations, publication records, and peer review contributions can be issued as cryptographically signed Verifiable Credentials (VCs) linked to their DID, forming a portable and tamper-evident digital resume.

The core components of a researcher's DID system are the DID Document and the Verifiable Data Registry. The DID Document, stored on-chain, contains public keys and service endpoints for interaction. The registry, often a blockchain like Ethereum or a purpose-built network like ION (on Bitcoin), provides the decentralized root of trust. When a university issues a credential—like a proof of PhD completion—it signs the VC with its private key. The researcher stores this credential in a personal digital wallet (e.g., SpruceID, Trinsic) and can present cryptographically verifiable proof of it to journals, grant committees, or collaborators without revealing unnecessary personal data.

Implementing a basic DID involves generating a key pair and registering it on a network. For example, using the did:key method, a researcher can generate a DID locally. A simple JavaScript example using the @digitalbazaar/did-method-key library illustrates creation:

javascript
import { driver } from '@digitalbazaar/did-method-key';
const didKeyDriver = driver();
const { didDocument, keyPairs } = await didKeyDriver.generate();
console.log(didDocument.id); // e.g., did:key:z6Mk...

This didDocument contains the public key, and the corresponding private key in keyPairs is held securely by the researcher. For production use, networks like Ethereum (using did:ethr) or Ceramic Network offer persistent, resolvable DIDs.

For researchers, the practical applications are significant. DIDs enable trust-minimized collaboration in open science. A researcher can prove their institutional affiliation to submit to a journal, demonstrate a history of peer review for a tenure dossier, or verify the provenance of a dataset—all without intermediaries querying centralized databases. Projects like Gitcoin Passport aggregate credentials for Sybil resistance in grant funding, while ORCID is exploring integrations with DIDs. This shifts the paradigm from siloed, organization-controlled identities to a user-centric model where the researcher controls their professional narrative.

The ecosystem relies on interoperable standards from the World Wide Web Consortium (W3C), namely the DID Core specification and the Verifiable Credentials Data Model. Adoption also faces challenges: key management security, user experience of wallets, the cost of on-chain transactions, and legal recognition of digital signatures. However, the trajectory points toward DIDs becoming critical infrastructure for academic credibility, reproducible research, and mitigating issues like paper mill fraud and citation manipulation through cryptographically verifiable attribution.

TECHNICAL SPECIFICATIONS

DID Method Comparison for Researchers

A technical comparison of popular DID methods for academic and research applications, focusing on governance, interoperability, and implementation.

Featuredid:keydid:webdid:ethrdid:ion

W3C Standard Compliance

Underlying Ledger

None (off-chain)

Web Server (off-chain)

Ethereum (on-chain)

Bitcoin + IPFS (hybrid)

Primary Use Case

Simple key management

Web domain verification

Ethereum ecosystem

High-scale, portable identities

DID Document Update Cost

$0

$0

$2-10 (gas fee)

$0.01-0.10 (on-chain anchor)

Resolver Complexity

Low (local)

Low (HTTP)

Medium (Ethereum node)

High (Bitcoin node + CAS)

VC Issuance Support

Decentralized Governance

Yes (Ethereum community)

Yes (ION Working Group)

Typical Resolution Time

< 100 ms

< 500 ms

2-15 sec

1-5 sec

step-1-create-did
FOUNDATION

Step 1: Create a Decentralized Identifier

A Decentralized Identifier (DID) is the cornerstone of self-sovereign identity, providing a persistent, verifiable, and cryptographically secure identifier that you control.

A Decentralized Identifier (DID) is a new type of globally unique identifier that does not rely on a central registry, identity provider, or certificate authority. Unlike an email address or social media handle, a DID is owned and controlled by the subject (you, the researcher) through cryptographic keys. It is typically expressed as a URI, such as did:ethr:0xabc123..., where the method (ethr) specifies the underlying blockchain or ledger. This architecture shifts control from centralized entities to the individual, enabling self-sovereign identity.

Creating a DID involves generating a public/private key pair. The public key is used to derive the DID itself, while the private key is used to create verifiable proofs, like signatures. For researchers, this is a foundational step for credentialing, data provenance, and peer review. Popular DID methods include did:ethr (Ethereum), did:key (simple key pairs), and did:web (web domains). The choice depends on your needs: did:ethr offers on-chain verifiability, while did:key is lightweight and portable.

Here is a practical example using the did:key method with the did-key-creator library in JavaScript. This method is excellent for getting started as it doesn't require blockchain interaction.

javascript
import { generateKeyPair } from 'did-key-creator';

// Generate a new Ed25519 key pair
const keyPair = await generateKeyPair('Ed25519');

// The public key in multibase format becomes your DID
const myDID = `did:key:${keyPair.publicKeyMultibase}`;
console.log('Your new DID:', myDID);
// Example: did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK

This code snippet creates a fully functional DID and its associated private key material, which you must store securely.

After creation, your DID must be associated with a DID Document. This JSON-LD document describes the DID, listing its public keys, authentication mechanisms, and service endpoints (like a personal data vault). While did:key documents are implicit, methods like did:ethr require publishing the document to a blockchain. For researchers, the DID Document is where you can link to your professional profiles, ORCID iD, or public encryption keys, creating a verifiable digital identity backbone.

The next step is to use your DID to issue or receive Verifiable Credentials, which are tamper-evident claims that can be cryptographically verified. For instance, a university could issue a credential attesting to your PhD, signed with their DID, which you can then present to a journal or conference. Your newly created DID is the anchor point for all these trust relationships, ensuring your academic contributions and affiliations are portable, private, and under your control.

step-2-anchor-eth
ON-CHAIN VERIFICATION

Step 2: Anchor Identity to Ethereum

Learn how to publish your decentralized identifier (DID) and its public keys to the Ethereum blockchain, creating a permanent, verifiable anchor for your researcher profile.

Anchoring your DID to Ethereum transforms it from a local document into a globally verifiable credential. This process involves publishing a DID Document—a JSON-LD file containing your public keys and service endpoints—to a smart contract on the Ethereum mainnet or a testnet. The contract acts as a public registry, allowing anyone to resolve your DID (e.g., did:ethr:0xabc123...) and retrieve the associated document to verify your signatures and discover your linked services. This on-chain proof is the foundation of trust in decentralized identity systems.

The most common method uses the ERC-1056 (Ethr-DID) standard or the ERC-725/735 identity contracts. For researchers, Ethr-DID is often preferred for its simplicity. You'll use a library like ethr-did-registry or did-ethr-resolver to interact with the registry contract. The core operation is a createDID transaction, which writes your initial DID Document's hash to the chain. Subsequent updates (like adding a new public key from a hardware wallet) require a signed updateDID transaction, ensuring only the holder of the current private key can modify the identity.

Here's a conceptual code snippet using the ethr-did library:

javascript
import { EthrDID } from 'ethr-did';
// Your Ethereum account from Step 1
const provider = /* your web3 provider */;
const owner = '0xYourEthereumAddress';
const privateKey = '0xYourPrivateKey';

// Create a DID instance anchored to the Goerli testnet
const ethrDid = new EthrDID({
  provider,
  registry: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b', // Goerli registry address
  signer: new ethers.Wallet(privateKey, provider),
  identifier: owner
});

// This will send a transaction to create/update your DID document
await ethrDid.setAttribute(
  'did/pub/Secp256k1/veriKey', // Key type
  '0x02...', // Public key hex
  86400 // Key validity in seconds
);

This transaction anchors a public key attribute to your DID.

After anchoring, you can resolve your DID from any application. A resolver library queries the Ethereum registry contract, fetches the DID Document, and validates the chain of ownership. This enables use cases like signing verifiable credentials for your research data or logging into decentralized applications (dApps) without a password. The anchoring cost is a one-time gas fee; subsequent reads are free. For active researchers, consider anchoring to a Layer 2 like Arbitrum or Optimism to reduce costs for future updates while maintaining Ethereum's security guarantees.

Best practices for researchers include: anchoring to a testnet first (like Goerli or Sepolia) to practice, using a hardware wallet-backed key for the master DID, and documenting your DID method and registry address in your research profiles. Your anchored DID is now a persistent cryptographic handle for your professional work, enabling peer-to-peer verification without centralized intermediaries.

step-3-issue-credentials
IMPLEMENTATION

Step 3: Issue and Store Verifiable Credentials

This step details how to issue cryptographically signed credentials to a researcher's DID and store them in a user-controlled, interoperable data vault.

A Verifiable Credential (VC) is a tamper-evident digital claim issued by an issuer (like a university or journal) to a holder (the researcher). It contains claims (e.g., "has PhD in Computer Science"), metadata, and a digital signature from the issuer's DID. The core data model is defined by the W3C VC Data Model, ensuring interoperability across different SSI ecosystems. For a researcher, common VCs include academic degrees, publication records, peer-review history, and institutional affiliations.

To issue a VC, the issuer must sign a JSON-LD document with their private key. Below is a simplified example of a VC for a PhD credential, using the did:key method for demonstration. The proof section contains the signature, making the credential verifiable by anyone with the issuer's public DID.

json
{
  "@context": [
    "https://www.w3.org/2018/credentials/v1",
    "https://schema.org"
  ],
  "id": "https://university.edu/credentials/123",
  "type": ["VerifiableCredential", "EducationalOccupationalCredential"],
  "issuer": "did:key:z6Mkf5rGM...",
  "issuanceDate": "2024-01-15T00:00:00Z",
  "credentialSubject": {
    "id": "did:ethr:0xabc123...",
    "degree": "PhD",
    "fieldOfStudy": "Blockchain Security"
  },
  "proof": {
    "type": "Ed25519Signature2018",
    "created": "2024-01-15T00:00:00Z",
    "verificationMethod": "did:key:z6Mkf5rGM...#z6Mkf5rGM...",
    "proofPurpose": "assertionMethod",
    "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..."
  }
}

After receiving a VC, the researcher must store it in a secure, portable location they control. This is a Verifiable Data Registry (VDR). While some architectures use public blockchains for this, they are often inefficient for storing large JSON objects. The recommended pattern is to store the VC's cryptographic hash (like a SHA-256 digest) on-chain for immutable timestamping and revocation checks, while storing the full credential JSON in an off-chain storage layer the user controls.

For off-chain storage, researchers should use an encrypted personal data store or cloud agent. Solutions like Ceramic Network's ComposeDB, Spruce ID's Kepler, or Microsoft ION's Sidetree offer decentralized storage protocols where users hold the encryption keys. The researcher's wallet or agent software manages the private key to decrypt and present VCs from this store. This creates a self-sovereign data vault, ensuring the researcher can access and use their credentials across different applications without relying on the original issuer's servers.

The final, critical component is revocation. Issuers need a mechanism to invalidate a VC (e.g., if a degree is rescinded). Common methods include revocation lists (a signed list of revoked credential IDs stored on-chain or in a VDR) and status registries (like OAuth 2.0 Token Status List). When a verifier checks a credential, their software must also query the relevant revocation registry to confirm the credential is still valid. This maintains trust without requiring central databases.

With a VC issued and stored, the researcher can now present selective claims to verifiers (like a grant committee or journal). Using Verifiable Presentations and Zero-Knowledge Proofs (ZKPs), they can prove they hold a valid credential from a trusted issuer without revealing the entire document, enabling privacy-preserving verification. This completes the core flow of a decentralized identity system for academic and professional credentials.

step-4-build-profile
DECENTRALIZED IDENTITY

Step 4: Build a Portable Researcher Profile

Establish a self-sovereign, verifiable identity that moves with you across platforms, enabling trustless credentialing and reputation portability in Web3 research.

A portable researcher profile is a decentralized identifier (DID) anchored on a public blockchain, such as Ethereum or Polygon. Unlike traditional accounts tied to a single platform, a DID is a cryptographically verifiable identifier you own and control. It serves as the root for your verifiable credentials (VCs), which are tamper-proof attestations of your achievements, affiliations, or skills. This architecture, defined by the W3C, shifts control from centralized institutions to the individual, forming the backbone of trust in decentralized science (DeSci) and on-chain reputation systems.

To create your profile, you first generate a DID using a standard method like did:ethr or did:key. This involves creating a public-private key pair, where the private key is stored securely in your wallet (e.g., MetaMask). Your public DID document is then published, often via a smart contract or the Ceramic network. For example, using the ethr-did library, you can instantiate a DID linked to your Ethereum address:

javascript
import { EthrDID } from 'ethr-did';
const provider = // your ethers/web3 provider
const ethrDid = new EthrDID({ identifier: '0xYourAddress', provider });

This DID becomes your permanent, platform-agnostic identifier.

The real power comes from issuing and holding verifiable credentials. Imagine receiving a VC from a recognized DAO like Gitcoin attesting to your grant review work, or from a protocol like Optimism for your governance participation. These credentials are signed by the issuer's DID and stored in your identity wallet (e.g., SpruceID's Kepler). You can then present cryptographically verified proof of these credentials to any application without revealing unnecessary personal data, a process known as selective disclosure. This enables systems like Orange Protocol or Galxe to calculate a reputation score based on your portable, verified history.

Integrating this profile into research platforms unlocks new functionalities. You can sign in with Ethereum (SIWE) to access a dashboard, where your portable reputation precedes you. A platform can query your consented credentials to auto-populate your profile, verify your peer-review history, or grant tiered access to datasets. This composable identity layer reduces redundant verification, combats sybil attacks, and allows your contributions—whether in Bio.xyz biotech DAOs or ResearchHub communities—to accumulate into a unified, sovereign reputation asset that you own and monetize.

VERIFIABLE CREDENTIALS

Researcher Profile Schema Fields

Comparison of common fields used in decentralized identity schemas for academic and scientific researchers.

Field NameData TypeRequiredVerification MethodExample

did

string (DID)

Blockchain Registry

did:ethr:0xabc...

name

string

Government ID / Institutional Proof

Dr. Alice Chen

orcid

string (URI)

ORCID API

institutionalAffiliation

string

Domain Verification / Signed Credential

Stanford University

publicationCount

integer

Crossref / PubMed API

42

hIndex

integer

Google Scholar / Scopus API

18

researchGrants

array (object)

Grant Database Attestation

[{"funder": "NSF", "id": "CBET-2025678"}]

peerReviewCount

integer

Publons / Journal Attestation

127
step-5-integrate-desci-app
IMPLEMENTATION

Step 5: Integrate with a DeSci Application

This guide walks through the practical steps of integrating a decentralized identity into a DeSci application, using Ceramic and ComposeDB as the data layer.

With a Decentralized Identifier (DID) and a Verifiable Credential (VC) attesting to your researcher status, you can now authenticate with DeSci applications. The core integration involves using your DID session to create, query, and update a ComposeDB data stream that represents your researcher profile. This profile is a mutable, user-owned data structure stored on the Ceramic network, separate from the immutable credential itself. Applications like ResearchHub or DeSci Labs platforms can read this stream to personalize your experience, displaying your verified affiliations and publication history.

To begin, a DeSci app's frontend must connect to your DID provider, such as MetaMask for an Ethereum-based did:pkh or Glaze for did:key. After authentication, the app obtains a signed session string. This session is used to instantiate an authenticated Ceramic HTTP client or ComposeDB client. The code snippet below shows a basic connection setup in a Node.js environment using the @composedb/client and @glazed/did-datastore packages.

javascript
import { ComposeClient } from '@composedb/client';
import { DID } from 'dids';
import { Ed25519Provider } from 'key-did-provider-ed25519';
import { getResolver } from 'key-did-resolver';

// 1. Authenticate a DID (example using a generated key)
const seed = new Uint8Array(...); // Your 32-byte seed
const did = new DID({
  provider: new Ed25519Provider(seed),
  resolver: getResolver(),
});
await did.authenticate();

// 2. Create an authenticated ComposeDB client
const composeClient = new ComposeClient({
  ceramic: 'https://ceramic-clay.3boxlabs.com', // Use mainnet for production
  definition: compiledComposite, // Your app's composite runtime definition
});
composeClient.setDID(did);

Once authenticated, you can interact with your researcher profile model. This model is defined as a ComposeDB composite—a GraphQL-based schema that dictates the structure of your on-chain profile. A typical schema might include fields for orcidId, affiliation, publications, and a reference to your verifiableCredential. The following mutation example creates or updates your profile stream, anchoring the VC issued in the previous step.

graphql
mutation CreateProfile {
  createResearcherProfile(input: {
    content: {
      orcidId: "0000-0002-1825-0097"
      affiliation: "Decentralized Science Foundation"
      verifiableCredential: "ceramic://kjzl6kcym7w8y9..." // StreamID of your VC
    }
  }) 
  {
    document {
      id  // Your new StreamID
      orcidId
      affiliation
    }
  }
}

Execute this mutation through your composeClient. The returned id is the StreamID, a permanent pointer to your profile data that applications can query without needing your DID for read access.

The true power of this integration is realized when the DeSci application leverages your verified data. For instance, when submitting a research proposal, the app can:

  • Automatically populate your author information from your profile.
  • Programmatically verify the authenticity of your institutional credential by resolving the referenced VC stream and checking its cryptographic proof.
  • Filter funding opportunities or reviewer pools based on verified expertise fields in profiles. This creates a trust-minimized system where reputation is portable and user-controlled, reducing redundant KYC processes across platforms.

For production applications, consider these critical practices. Index your profile data using a service like Ceramic's GraphQL node or The Graph for efficient querying. Handle DID session persistence securely, often by storing an encrypted session key in the user's browser. Always use Ceramic mainnet (https://gateway.ceramic.network) for production data. Monitor the Ceramic documentation and ComposeDB guides for updates on network upgrades and best practices for schema design and data modeling.

DID FOR RESEARCHERS

Frequently Asked Questions

Common technical questions and solutions for developers implementing decentralized identity (DID) systems in academic and research applications.

A Decentralized Identifier (DID) is a globally unique, cryptographically verifiable identifier that is owned and controlled by the user, not issued by a central authority. It is defined by the W3C standard. Unlike a traditional username/password or OAuth login, a DID is anchored on a verifiable data registry like a blockchain (e.g., Ethereum, Polygon) or a distributed ledger.

Key technical differences:

  • Self-Sovereignty: The private key controlling the DID is held by the user (e.g., in a wallet). No central database can revoke it.
  • Verifiable Credentials (VCs): DIDs are used to issue and present VCs—tamper-evident claims (like a degree or publication record) that can be cryptographically verified without contacting the original issuer.
  • Interoperability: DIDs use a standard URI format (did:method:identifier) enabling systems across different networks to resolve them.
How to Set Up a Decentralized Identity for Research | ChainScore Guides