Track Our Progress
This kanban board shows our teamโs progress across bug reports, feature requests and incident reports.
Backlog
2Under consideration
Multikey VerificationMethod support
Currently by my reading of the docs, iโm able to update a DIDDoc with VMs of type: Ed25519VerificationKey2020 EcdsaSecp256k1VerificationKey2019 RsaVerificationKey2018 (source) https://docs.cheqd.io/product/advanced/sdk/did-module#supported-key-types Although the source code seems to indicate: JsonWebKey2020 (key types ECDSA, Ed25519 & RSA are seemingly supported) Ed25519VerificationKey2020 Ed25519VerificationKey2018 (source) https://github.com/cheqd/cheqd-node/blob/2089162a071d1a741696a256457d656fa9457968/x/did/types/diddoc_verification_method.go#L17 It would be nice if it was also possible to push Multikey VM types. Anecdotally, iโve seen this VM grow in popularity over the years, as it is able to represent a huge range of key types with a single VM type, and is also compact. Similar properties to JsonWebKey2020, but arguably more compact and could be overtaking it in popularity. The support for the VM could be done in the same way as JsonWebKey2020 - limited scope to ed25519, ecdsa & rsa key type support. Supporting multikey VMs in cheqd DID Docs may improve interoperability in systems which prefer Multikey to itโs alternatives (e.g. JsonWebKey2020)
Compress AnonCreds status lists
From Timo (Animo) Maybe we should update the cheqd anoncreds method to compress the status list (or anoncreds in general)? It's quite inefficient to put it as an array like this: https://resolver.cheqd.net/1.0/identifiers/did:cheqd:mainnet:fdd80fdc-8756-491d-838d-ccd705b2776a/resources/c95a79db-fb74-4b00-a114-faa8ac12d629
Next up
4Staging: Studio: Credential Identification - UX
UX/UI Issue: Low/Moderate Priority: Low/Moderate We need to come up with a better way to identify which credentials are which in this list. If I need to delete one or more of 131072 indices how do I know what I am deleting? Example What if I am closing a department of 100 staff and moving them to a different department or something, how do I know who is who? We need to name the credentials, or be able to click them and have a modal, or some sort of search which will pull data from fields.
Improve revocation registry size
Revocation registries have limited size to a relatively small amount of entries. It would be fantastic to bump the size, and improve the efficiency of how these are stored and indexed on ledger
Studio: Staging: Session timer
I have been soft logged out twice while trying to review this page section, the second time while filling out my last ticket. Can we please check the session timer again?
Improve / Understand batching logic
Please create documentation around how multiple resources can be batched together into a single transaction / block. Currently, there is no clear way to achieve this. A diagram showing the logic would be very helpful
In Progress
1Actively being built
In Review
2Actively being built
Plant chage error
Internal error: You passed an empty string for 'flow_data[subscription_update_confirm][items][0][price]'. We assume empty values are an attempt to unset a parameter; however 'flow_data[subscription_update_confirm][items][0][price]' cannot be unset. You should remove 'flow_data[subscription_update_confirm][items][0][price]' from your request or supply a non-empty value.
cannot change card and plan
Plan changes and credit card changes are not possible.
Done
16Recently shipped
account/create
Hi, I get the following error while calling the โaccount/createโ endpoint for getting a token so that my client can use the API endpoints of cheqd studio. Maybe the error: "Internal Error: Cannot read properties of undefined (reading 'kid')" is a bug? See the attached picture to replicate the error. Regards, Sid
Cheqd Studio Update DID
isDIDArray: (value: Validatable) => { const res = new DIDArrayValidator().validate((value as string[]).map((v) => (v.includes('#') ? v.split('#')[0] : v))); if (!res.valid) { throw new Error(res.error); } return true; }, Am I write to consider this a fix for checking the authentication property for the update did api endpoint validator in Cheqd Studio? https://github.com/cheqd/studio/blob/140dcea007da52f0fc4aea1eb6f2ca65aef0327c/src/controllers/api/did.ts#L131 I am attempting to update the authentication but its failing during validation unless I make the above change.
Studio: Staging: Verification of Suspended Credential
Bug: Severe Priority: High This is too much of a major bug. Unfortunately, the result from verifying a suspended credential is returned as still being valid. This is extremely misleading. And in addition, a revoked credential in my list comes back as valid when I verify. Using the features of our own platform, revocation appears to not to be working.
Unable to update Cheqd did with DIDComm V1 Service endpoint on Credo
1) Using Credo v0.5.14-0.5.17 create a cheqd did, with or without an existing DIDDoc. 2) Then immediately after successful creation, add a DIDCommV1 Service endpoint to the DIDDoc of the created did. 3) And then update the cheqd did with the newly updated DIDDoc. Step 3 should result in the following error: 'unknownError: failed to execute message; message index: 0: there should be at least one valid signature by did:cheqd:testnet:52ae96fb-66cd-4945-9914-39b7ff638243 (old version): invalid signature detected' With the did referenced in the error message being the did that was created in step 1.
Cheqd Rust Resolver - Crates.io deployment failing
From Glenn (CEO @ Affinidi) One of your engineers (https://github.com/DaevMithran) submitted a PR to integrate Cheqd into our DID Resolver - thank you! Unfortunately we canโt push this to release because the Cheqd code is being sourced from the OWF git repo which hasnโt been published on crates.io and crates.io is failing it because it is pedantic on package names etc. I had a Quick Look at the OWF repo code https://github.com/openwallet-foundation/vcx/tree/main/did_core/did_methods/did_cheqd It is old, out of date and needs some love ๐ I am going to hold the Cheqd implementation as it is breaking our own CICD toolchain (and it is pulling in a rather large git repo). Do you have a preference on the following solutions: Pull the Cheqd DID implementation out of OWF and you publish a standalone Rust Library of the Cheqd resolver. Affinidi can then integrate with this cleanly If you have dev documentation on the gRPC details of resolving Cheqd DIDโs, I can whip up a did-cheqd native crate for you (similar to the other DID-methods in the eco-system).
Fallback Endpoints for DID Resolver / DID Registrar
I wanted to reach out about an operational challenge weโre experiencing with cheqd/did-resolver and cheqd/did-registrar that a fallback mechanism could solve.The Problem: Weโre running into issues with testnet accessibility. When your testnet nodes are behind the firewall (blocking p2p connections), our self-hosted node canโt join the network, which breaks our applications that are configured to use our local endpoints.Current Manual Workaround: Testnet nodes go behind firewall โ our node canโt sync We manually update deployments to point at official endpoints (grpc.cheqd.network:443, https://rpc.cheqd.network) When firewall is removed โ our node can rejoin the network We manually update deployments back to our local endpoints This creates a lot of operational overhead and requires manual intervention every time network accessibility changes.Proposed Solution: Could you add automatic fallback functionality to both projects? Something like: did-resolver: Try our gRPC endpoint first, if connection fails (5xx, or Connection Refused) โ automatically fall back to grpc.cheqd.network:443 did-registrar: Try our RPC endpoint first, if connection fails (5xx, or Connection Refused) โ automatically fall back to https://rpc.cheqd.network The Flow Weโre Envisioning: Try primary endpoint (our node) On connection error โ switch to official endpoints When primary comes back online โ switch back automatically This would eliminate the need for manual deployment updates every time testnet accessibility changes and make our infrastructure much more resilient to network-level issues.
Missing validator Dep
I raised an issue here that may be related to my problem but mainly is just a noted missing dep in the @cheqd/studio code https://github.com/cheqd/studio/issues/694
P256 signing fails when using Askar as KMS
Raised on behalf of Timo from Animo On the P256 signing in Credo (brought this up a long time ago). When i add an authentication using Askar as KMS it fails, but if I use Node crypto directly it succeeds. It's odd as we have been using our P256 signing with Askar with a lot of other implementation correctly, but it's probably something to do with encoding then I guess? Additional context: We are going to add P-256 signing in Paradym, and if cheqd can support it we will also enable this for Cheqd DIDs. It's not high priority, mainly wanted to share this behvaiour that it does work with another crypto implementation
SDK expects serviceEndpoint to be an Array of Strings
Opened on behalf of Timo / Animo Bug raised in GitHub: https://github.com/cheqd/sdk/issues/436 DID Spec mentions: The value of the serviceEndpoint property MUST be a string, a map, or a set composed of one or more strings and/or maps. How can we reproduce this bug? Update a did document, where there is a service having serviceEndpoint that is a string. (I think it also applies to creating a did doc). Environment Not applicable Bug prevalence No response Which browser/client application did you encounter the bug in? (if applicable) No response Relevant log output
Unknown error writing to Cheqd mainnet
Transaction with ID 904E70D7044638A0A37103E32C00DB1031BD0198B08F25CEED7AA2B3F78AD061 was submitted but was not yet found on the chain. You might want to check later. There was a wait of 60 seconds We suddenly got this error when submitting a status list to cheqd mainnet for did did:cheqd:mainnet:c3a49697-6282-4fda-a0d9-c81d2f76e9fe and revocation registry definition did:cheqd:mainnet:c3a49697-6282-4fda-a0d9-c81d2f76e9fe/resources/9ed8e025-2697-477c-a49a-3ec8da44de3e