{"id":14455913,"url":"https://github.com/w3c/vc-test-suite-implementations","last_synced_at":"2025-10-19T23:32:14.012Z","repository":{"id":187439254,"uuid":"676915984","full_name":"w3c/vc-test-suite-implementations","owner":"w3c","description":"List of W3C Verifiable Credentials Implementations","archived":false,"fork":false,"pushed_at":"2025-01-24T15:34:28.000Z","size":205,"stargazers_count":8,"open_issues_count":12,"forks_count":21,"subscribers_count":22,"default_branch":"main","last_synced_at":"2025-01-30T09:03:23.337Z","etag":null,"topics":["standard","vc-wg","w3c"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/w3c.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-10T09:57:48.000Z","updated_at":"2025-01-21T22:03:18.000Z","dependencies_parsed_at":"2023-08-10T12:32:22.301Z","dependency_job_id":"910d113a-a79c-498f-8584-df4f6dc50443","html_url":"https://github.com/w3c/vc-test-suite-implementations","commit_stats":null,"previous_names":["w3c/vcwg-test-suite-implementations","w3c/vc-test-suite-implementations"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Fvc-test-suite-implementations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Fvc-test-suite-implementations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Fvc-test-suite-implementations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c%2Fvc-test-suite-implementations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/w3c","download_url":"https://codeload.github.com/w3c/vc-test-suite-implementations/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237228743,"owners_count":19275749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["standard","vc-wg","w3c"],"created_at":"2024-09-01T15:01:18.673Z","updated_at":"2025-10-19T23:32:13.668Z","avatar_url":"https://github.com/w3c.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003c!--\nCopyright 2024 Digital Bazaar, Inc.\n\nSPDX-License-Identifier: BSD-3-Clause\n--\u003e\n\n# VC Test Suite Implementations\n\nThis repository contains a list of all implementations that have registered to\nbe regularly run against the\n[W3C Verifiable Credentials](https://www.w3.org/groups/wg/vc/) test suites.\n\n## Table of Contents\n\n- [Background](#background)\n- [Security](#security)\n- [Install](#install)\n  - [NPM](#npm)\n  - [Development](#development)\n- [Usage](#usage)\n  - [Adding a new implementation](#adding-a-new-implementation)\n  - [Testing locally](#testing-locally)\n  - [Tags](#tags)\n- [Contribute](#contribute)\n- [License](#license)\n\n## Background\n\nImplementations added to this package are tested against various test suites\nlisted below in order to demonstrate [W3C Verifiable Credentials](https://www.w3.org/groups/wg/vc/) interoperability.\n\n## Security\n\nPlease do not commit any sensitive materials such as oauth2 client secrets or\nprivate key information used for signing\n[Authorization Capabilities](https://w3c-ccg.github.io/zcap-spec/) or\n[HTTP Message Signatures](https://www.ietf.org/archive/id/draft-ietf-httpbis-message-signatures-08.html).\n\n## Install\n\n- Node.js 18+ is required.\n\n### NPM\n\nTo install via NPM:\n```sh\nnpm install w3c/vc-test-suite-implementations\n```\n\n### Development\n\nTo install locally (for development):\n\n```sh\ngit clone https://github.com/w3c/vc-test-suite-implementations.git\ncd vc-test-suite-implementations\nnpm install\n```\n\n## Usage\n\n#### Adding a new implementation\nPlease add implementations to the `./implementations` directory.\nImplementation configuration files are expressed in JSON and use roughly the\nfollowing form:\n\n```json\n{\n  \"name\": \"My Company\",\n  \"implementation\": \"My Implementation Name\",\n  \"oauth2\": {\n     \"clientId\": \"bar\",\n     \"clientSecret\": \"CLIENT_SECRET_MY_COMPANY\",\n     \"tokenAudience\": \"https://product.example.com\",\n     \"tokenEndpoint\": \"https://product.example.com/oauth/token\"\n  },\n  \"issuers\": [{\n    \"id\": \"urn:uuid:my:implementation:issuer:id\",\n    \"endpoint\": \"https://product.example.com/issuers/foo/credentials/issue\",\n    \"zcap\": {\n      \"capability\": \"{\\\"@context\\\":[\\\"https://w3id.org/zcap/v1\\\",\\\"https://w3id.org/security/suites/ed25519-2020/v1\\\"],\\\"id\\\":\\\"urn:uuid:4d44084c-334e-46dc-ac23-5e26f75262b6\\\",\\\"controller\\\":\\\"did:key:zFoo\\\",\\\"parentCapability\\\":\\\"urn:zcap:root:https%3A%2F%2Fmy.implementation.net%2Fissuers%2Fz19wCeJafpsTzvA6hZksz7TYF\\\",\\\"invocationTarget\\\":\\\"https://my.implementation.net/issuers/z19wCeJafpsTzvA6hZksz7TYF/credentials/issue\\\",\\\"expires\\\":\\\"2022-05-29T17:26:30Z\\\",\\\"proof\\\":{\\\"type\\\":\\\"Ed25519Signature2020\\\",\\\"created\\\":\\\"2022-02-28T17:26:30Z\\\",\\\"verificationMethod\\\":\\\"did:key:z6Mkk2x1J4jCmaHDyYRRW1NB7CzeKYbjo3boGfRiefPzZjLQ#z6Mkk2x1J4jCmaHDyYRRW1NB7CzeKYbjo3boGfRiefPzZjLQ\\\",\\\"proofPurpose\\\":\\\"capabilityDelegation\\\",\\\"capabilityChain\\\":[\\\"urn:zcap:root:https%3A%2F%2Fmy.implementation.net%2Fissuers%2Fz19wCeJafpsTzvA6hZksz7TYF\\\"],\\\"proofValue\\\":\\\"zBar\\\"}}\",\n      \"keySeed\": \"KEY_SEED_DB\"\n    },\n    \"supportedEcdsaKeyTypes\": [\"P-256\"]\n    \"tags\": [\"ecdsa-rdfc-2019\"]\n  }],\n  \"verifiers\": [{\n    \"id\": \"https://product.example.com/verifiers/z19uokPn3b1Z4XDbQSHo7VhFR\",\n    \"endpoint\": \"https://product.example.com/verifiers/z19uokPn3b1Z4XDbQSHo7VhFR/credentials/verify\",\n    \"zcap\": {\n      \"capability\": \"{\\\"@context\\\":[\\\"https://w3id.org/zcap/v1\\\",\\\"https://w3id.org/security/suites/ed25519-2020/v1\\\"],\\\"id\\\":\\\"urn:uuid:41473f9f-9e44-4ac9-9ac2-c86a6f695703\\\",\\\"controller\\\":\\\"did:key:zFoo\\\",\\\"parentCapability\\\":\\\"urn:zcap:root:https%3A%2F%2Fmy.implementation.net%3A40443%2Fverifiers%2Fz19uokPn3b1Z4XDbQSHo7VhFR\\\",\\\"invocationTarget\\\":\\\"https://my.implementation.net/verifiers/zBar/credentials/verify\\\",\\\"expires\\\":\\\"2023-03-17T17:39:49Z\\\",\\\"proof\\\":{\\\"type\\\":\\\"Ed25519Signature2020\\\",\\\"created\\\":\\\"2022-03-17T17:39:49Z\\\",\\\"verificationMethod\\\":\\\"did:key:zFoo#zBar\\\",\\\"proofPurpose\\\":\\\"capabilityDelegation\\\",\\\"capabilityChain\\\":[\\\"urn:zcap:root:https%3A%2F%2Fmy.application.net%2Fverifiers%2FzFoo\\\"],\\\"proofValue\\\":\\\"zBar\\\"}}\",\n      \"keySeed\": \"KEY_SEED_DB\"\n    },\n    \"supportedEcdsaKeyTypes\": [\"P-256\"]\n    \"tags\": [\"ecdsa-rdfc-2019\"]\n  }]\n}\n```\n\nPlease note: implementations may specify authorization parameters for oauth2 or\nzcaps, but not both. Implementations may also not specify any authorization\nparameters, in which case they do not specify `oauth2` or `zcap` properties.\n\nPlease check specific test suite READMEs for further details on implementation properties and endpoints. \nTest suites MAY specify additional properties and features for endpoints such as\nmandatory JSON-LD contexts, keyTypes settings, additional tags for specific tests such as Enveloped Proofs,\nand supported VC Data Model versions. In most cases, endpoints are expected to: be capable\nof using the test suite API; be capable of signing and/or verifying using `did:key`; and support the following contexts:\n\n- https://www.w3.org/ns/credentials/examples/v2\n- https://www.w3.org/2018/credentials/v1\n- https://www.w3.org/ns/credentials/v2\n\n#### Testing locally\n\nTo test implementations with endpoints running locally, create a configuration file named\n`localConfig.cjs` in the root directory of the test suite. `localConfig.cjs` should export\na json object. Add the property `implementations` to the exported object. `implementations`\nshould be an array of objects such as the one below:\n\n```js\n// localConfig.cjs defining local implementations\nmodule.exports = {\n  \"implementations\": [{\n    \"name\": \"My Company\",\n    \"implementation\": \"My Implementation Name\",\n    \"issuers\": [{\n      \"id\": \"urn:uuid:my:implementation:issuer:id\",\n      \"endpoint\": \"https://localhost:40443/issuers/foo/credentials/issue\",\n      \"tags\": [\"eddsa-rdfc-2022\"]\n    }],\n    \"verifiers\": [{\n      \"id\": \"https://localhost:40443/verifiers/z19uokPn3b1Z4XDbQSHo7VhFR\",\n      \"endpoint\": \"https://localhost:40443/verifiers/z19uokPn3b1Z4XDbQSHo7VhFR/credentials/verify\",\n      \"tags\": [\"eddsa-rdfc-2022\"]\n    }]\n  }];\n};\n```\n\nAfter adding the config file, only implementations in `localConfig.cjs` will run.\n\n### Test Suite Settings\n\nAdditional test suite runtime configuration can be done via the `settings` key\nin a `localConfig.cjs`. The current global settings are:\n\n  * `enableInteropTests` - enable/disable the cross-implementation \"interop\" tests\n  * `testAllImplementations` - enable/disable testing _all_ implementations (not\n    just what's in `localConfig.cjs`)\n\nBoth of these settings are `false` when `localConfig.cjs` is present, but may be\noverridden as below:\n\n```js\nmodule.exports = {\n  \"settings\": {\n    // overriding the default, false, for local testing\n    \"enableInteropTests\": true,\n    \"testAllImplementations\": true\n  },\n  \"implementations\": [{\n    \"name\": \"My Company\",\n    \"implementation\": \"My Implementation Name\",\n    \"issuers\": [{\n      \"id\": \"urn:uuid:my:implementation:issuer:id\",\n      \"endpoint\": \"https://localhost:40443/issuers/foo/credentials/issue\",\n      \"tags\": [\"eddsa-rdfc-2022\"]\n    }],\n    \"verifiers\": [{\n      \"id\": \"https://localhost:40443/verifiers/z19uokPn3b1Z4XDbQSHo7VhFR\",\n      \"endpoint\": \"https://localhost:40443/verifiers/z19uokPn3b1Z4XDbQSHo7VhFR/credentials/verify\",\n      \"tags\": [\"eddsa-rdfc-2022\"]\n    }]\n  }, {\n    // Add additional implementations as needed\n  }];\n```\n\n### Tags\n\nTags tell the test suites which implementations' endpoints to run the test suites against.\n\n* `vc2.0` - This tag will run the [VC Data Model 2.0 Test Suite](https://github.com/w3c/vc-data-model-2.0-test-suite) on the tagged issuer and verifier endpoints.\n\n* `Ed25519Signature2020` - This tag will run the [Ed25519 tests](https://github.com/w3c/vc-di-ed25519signature2020-test-suite) on the tagged issuer and/or verifier endpoints.\n\n* `BitstringStatusList` - This tag will run the [BitstringStatusList tests](https://github.com/w3c/vc-bitstring-status-list-test-suite) on the tagged issuer and/or verifier endpoints.\n\n* `ecdsa-rdfc-2019` or `ecdsa-sd-2023` - These tags will run the\n[VC Data Integrity ECDSA Test Suite](https://github.com/w3c/vc-di-ecdsa-test-suite)\non the tagged issuer and verifier endpoints.\n  * Alongside this cryptosuite tag, also specify the\n  `supportedEcdsaKeyTypes` property listing the ECDSA key types the\n  implementation issues or can verify. Currently, the ECDSA test suite supports\n  `P-256` and `P-384` ECDSA key types.\n\n  You can specify the key types supported by your implementation in the issuer\n  and verifier configs as shown in this example:\n  ```jsonc\n  {\n    \"issuers\": [{\n      // ...\n      \"supportedEcdsaKeyTypes\": [\"P-256\"]\n      \"tags\": [\"ecdsa-rdfc-2019\"]\n    }, {\n      // ...\n      \"supportedEcdsaKeyTypes\": [\"P-384\"]\n      \"tags\": [\"ecdsa-jcs-2019\"]\n    }, {\n      // ...\n      \"supportedEcdsaKeyTypes\": [\"P-256\"]\n      \"tags\": [\"ecdsa-sd-2023\"]\n    }],\n    \"verifiers\": [{\n      // ...\n      \"supportedEcdsaKeyTypes\": [\"P-256\", \"P-384\"]\n      \"tags\": [\"ecdsa-rdfc-2019\", \"ecdsa-sd-2023\", \"ecdsa-jcs-2019\"]\n    }]\n  }\n  ```\n\n* `eddsa-rdfc-2022` - This tag will run the [VC Data Integrity EDDSA Test Suite](https://github.com/w3c/vc-di-eddsa-test-suite) on the tagged issuer and verifier endpoints.\n\n* `eddsa-jcs-2022` - This tag will run the [VC Data Integrity EDDSA Test Suite](https://github.com/w3c/vc-di-eddsa-test-suite) on the tagged issuer and verifier endpoints.\n\n* `bbs-2023` - This tag will run the [VC Data Integrity BBS Test Suite](https://github.com/w3c/vc-di-bbs-test-suite) on the tagged issuer and verifier endpoints.\n\n## Contribute\n\nSee [the CONTRIBUTING.md file](CONTRIBUTING.md).\n\nPull Requests are welcome!\n\n## License\n\n[BSD-3-Clause](LICENSE) Copyright 2022-2024, World Wide Web Consortium\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw3c%2Fvc-test-suite-implementations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fw3c%2Fvc-test-suite-implementations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw3c%2Fvc-test-suite-implementations/lists"}