{"id":34684545,"url":"https://github.com/cheqd/did-resolver-rs","last_synced_at":"2026-05-28T19:01:56.217Z","repository":{"id":318936566,"uuid":"1075190970","full_name":"cheqd/did-resolver-rs","owner":"cheqd","description":"DID Resolver implementation for the did:cheqd method in Rust","archived":false,"fork":false,"pushed_at":"2025-10-16T06:33:36.000Z","size":98,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-16T15:52:05.288Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cheqd.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.md","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-13T06:58:13.000Z","updated_at":"2025-10-16T06:33:40.000Z","dependencies_parsed_at":"2025-10-17T09:10:56.793Z","dependency_job_id":"f48371ec-b6d7-44fa-8aaf-5b8c52a5cf5b","html_url":"https://github.com/cheqd/did-resolver-rs","commit_stats":null,"previous_names":["cheqd/did-resolver-rs"],"tags_count":1,"template":false,"template_full_name":"cheqd/.github","purl":"pkg:github/cheqd/did-resolver-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheqd%2Fdid-resolver-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheqd%2Fdid-resolver-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheqd%2Fdid-resolver-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheqd%2Fdid-resolver-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cheqd","download_url":"https://codeload.github.com/cheqd/did-resolver-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheqd%2Fdid-resolver-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33622070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-24T21:41:19.698Z","updated_at":"2026-05-28T19:01:56.211Z","avatar_url":"https://github.com/cheqd.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cheqd DID Resolver Rust\n\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/cheqd/did-resolver-rs?color=green\u0026label=stable%20release\u0026style=flat-square)](https://github.com/cheqd/did-resolver-rs/releases/latest) ![GitHub Release Date](https://img.shields.io/github/release-date/cheqd/did-resolver-rs?color=green\u0026style=flat-square) [![GitHub license](https://img.shields.io/github/license/cheqd/did-resolver-rs?color=blue\u0026style=flat-square)](https://github.com/cheqd/did-resolver-rs/blob/main/LICENSE)\n\n[![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/cheqd/did-resolver-rs?include_prereleases\u0026label=dev%20release\u0026style=flat-square)](https://github.com/cheqd/did-resolver-rs/releases/) ![GitHub commits since latest release (by date)](https://img.shields.io/github/commits-since/cheqd/did-resolver-rs/latest?style=flat-square) [![GitHub contributors](https://img.shields.io/github/contributors/cheqd/did-resolver-rs?label=contributors%20%E2%9D%A4%EF%B8%8F\u0026style=flat-square)](https://github.com/cheqd/did-resolver-rs/graphs/contributors)\n\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/cheqd/did-resolver-rs/dispatch.yml?label=workflows\u0026style=flat-square)](https://github.com/cheqd/did-resolver-rs/actions/workflows/dispatch.yml) [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/cheqd/did-resolver-rs/codeql.yml?label=CodeQL\u0026style=flat-square)](https://github.com/cheqd/did-resolver-rs/actions/workflows/codeql.yml) ![GitHub repo size](https://img.shields.io/github/repo-size/cheqd/did-resolver-rs?style=flat-square)\n\n## ℹ️ Overview\n\nDID methods are expected to provide [standards-compliant methods of DID and DID Document (\"DIDDoc\") production](https://w3c.github.io/did-resolution/#resolver-architectures). The **cheqd DID Resolver** is designed to implement the [W3C DID _Resolution_ specification](https://w3c.github.io/did-resolution/) for [`did:cheqd`](https://docs.cheqd.io/identity/architecture/adr-list/adr-001-cheqd-did-method) method in Rust.\n\n### 📝 Architecture\n\nThe [Architecture Decision Record for the cheqd DID Resolver](https://docs.cheqd.io/identity/architecture/adr-list/adr-003-did-resolver) describes the architecture \u0026 design decisions for this software package.\n\n#### gRPC Endpoints used by DID Resolver\n\nOur DID Resolver uses the [Cosmos gRPC endpoint](https://docs.cosmos.network/main/core/grpc_rest) from `cheqd-node` to fetch data. Typically, this would be running on port `9090` on a `cheqd-node` instance.\n\nYou can either use [public gRPC endpoints for the cheqd network](https://cosmos.directory/cheqd/nodes) (such as the default ones mentioned above), or point it to your own `cheqd-node` instance by enabling gRPC in the `app.toml` configuration file on a node:\n\n```toml\n[grpc]\n\n# Enable defines if the gRPC server should be enabled.\nenable = true\n\n# Address defines the gRPC server address to bind to.\naddress = \"0.0.0.0:9090\"\n```\n\n**Note**: If you're pointing a DID Resolver to your own node instance, by default `cheqd-node` instance gRPC endpoints are _not_ served up with a TLS certificate. This means the `useTls` property would need to be set to `false`, unless you're otherwise using a load balancer that provides TLS connections to the gRPC port.\n\n\u003c!-- cargo-rdme start --\u003e\n\nThis crate contains a resolver for DIDs of the [did:cheqd](https://docs.cheqd.io/product/architecture/adr-list/adr-001-cheqd-did-method) method.\nThe implementation resolves DIDs via gRPC network requests to the configured nodes. Default nodes for cheqd's `mainnet` \u0026 `testnet` can be used,\nor custom nodes can be opt-in by supplying a different gRPC URL configuration.\n\nThis crate uses gRPC types and clients generated using [tonic](https://github.com/hyperium/tonic).\nThe generated rust code is checked-in to this repository for monitoring, [see here](./src/proto/mod.rs).\nThese generated rust files are checked-in alongside the V2 cheqd proto files \u0026 dependencies.\nwhich are sourced from [cheqd's Buf registry](https://buf.build/cheqd/proto/docs).\n\nSince the generated code \u0026 proto files are not relatively large nor overwhelming in content, they are checked-in rather than pulled and/or generated at build time. The benefit is that the contents of the files can be monitored with each update, making supply-chain attacks obvious. It also reduces the build time complexity for consumers - such as reducing requirements for any 3rd party build tools to be installed (`protobuf`). The drawback is that it introduces some more manual maintainence.\nThe crate exports the `DIDCheqd` type which implements the\n[`ssi_dids_core::DIDMethod`] and\n[`ssi_dids_core::resolution::DIDMethodResolver`] traits. This crate is\nuses cheqd network's GRPC\n\n##### Example\n\nThe example below is intentionally minimal and self-contained so it can be\nexecuted as a doc-test (no network calls, no async runtime). It verifies the\npublic associated constant and basic construction of the type. This keeps\n`cargo test --doc` and tools like `cargo-rdme` reliable.\n\n```rust\nuse did_resolver_cheqd::DIDCheqd;\nuse ssi_dids_core::DIDMethod;\n// Confirm the API constant and that we can construct the value\nassert_eq!(DIDCheqd::DID_METHOD_NAME, \"cheqd\");\nlet _ = DIDCheqd::default();\nlet _ = DIDCheqd::new(None);\nlet _ = DIDCheqd::new(Some(DidCheqdResolverConfiguration {\n    networks: vec![\n        NetworkConfiguration {\n            grpc_url: \"https://grpc.cheqd.net:443\".to_string(),\n            namespace: \"mainnet\".to_string(),\n        },\n    ],\n}));\n```\n\n##### Library features\n\n- Implements a `DIDMethodResolver` for the `did:cheqd` DID method.\n- Exposes `resolution`, `proto` and `error` modules for integration.\n\n\u003c!-- cargo-rdme end --\u003e\n\n## 🐞 Bug reports \u0026 🤔 feature requests\n\nIf you notice anything not behaving how you expected, or would like to make a suggestion / request for a new feature, please create a [**new issue**](https://github.com/cheqd/did-resolver-rs/issues/new/choose) and let us k\n\n## 💬 Community\n\nOur [**Discord server**](http://cheqd.link/discord-github) is the primary chat channel for the open-source community, software developers, and node operators.\n\nPlease reach out to us there for discussions, help, and feedback on the project.\n\n## 🙋 Find us elsewhere\n\n[![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge\u0026logo=telegram\u0026logoColor=white)](https://t.me/cheqd) [![Discord](https://img.shields.io/badge/Discord-7289DA?style=for-the-badge\u0026logo=discord\u0026logoColor=white)](http://cheqd.link/discord-github) [![Twitter](https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge\u0026logo=twitter\u0026logoColor=white)](https://twitter.com/intent/follow?screen_name=cheqd_io) [![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white)](http://cheqd.link/linkedin) [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge\u0026logo=medium\u0026logoColor=white)](https://blog.cheqd.io) [![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge\u0026logo=youtube\u0026logoColor=white)](https://www.youtube.com/channel/UCBUGvvH6t3BAYo5u41hJPzw/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheqd%2Fdid-resolver-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheqd%2Fdid-resolver-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheqd%2Fdid-resolver-rs/lists"}