{"id":13565154,"url":"https://github.com/w3c-ccg/vc-api","last_synced_at":"2025-04-03T22:30:46.526Z","repository":{"id":37901050,"uuid":"287404406","full_name":"w3c-ccg/vc-api","owner":"w3c-ccg","description":"A specification for an HTTP API used to issue and verify Verifiable Credentials.","archived":false,"fork":false,"pushed_at":"2025-04-01T19:28:41.000Z","size":7537,"stargazers_count":126,"open_issues_count":41,"forks_count":48,"subscribers_count":42,"default_branch":"main","last_synced_at":"2025-04-01T20:26:04.126Z","etag":null,"topics":["w3c-ccg","workitem"],"latest_commit_sha":null,"homepage":"https://w3c-ccg.github.io/vc-api","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/w3c-ccg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-14T00:09:39.000Z","updated_at":"2025-04-01T19:28:45.000Z","dependencies_parsed_at":"2024-06-04T19:19:47.940Z","dependency_job_id":"6e1c8c56-9f82-4651-a16f-137823a282a3","html_url":"https://github.com/w3c-ccg/vc-api","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c-ccg%2Fvc-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c-ccg%2Fvc-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c-ccg%2Fvc-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w3c-ccg%2Fvc-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/w3c-ccg","download_url":"https://codeload.github.com/w3c-ccg/vc-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247089830,"owners_count":20881852,"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":["w3c-ccg","workitem"],"created_at":"2024-08-01T13:01:41.805Z","updated_at":"2025-04-03T22:30:43.162Z","avatar_url":"https://github.com/w3c-ccg.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"# [Verifiable Credential API](https://github.com/w3c-ccg/vc-api/) Goals\n\nThe W3C Credentials Community Group Verifiable Credential APIs are a set of\nRESTful API definitions conforming with the [OpenAPI 3.0\nSpecification](https://swagger.io/specification/v3/) that support Verifiable\nCredential Lifecycle Management such as Issuing, Holding/Presentation/Exchange,\nand Verification for the roles of Issuer, Holder, and Verifier as described in\nthe [Verifiable Credential Data Model](https://www.w3.org/TR/vc-data-model-2.0/)\nspecification.\n\nThese APIs provide a standard set of interfaces by which interoperability may be\ntested and verified by various parties who leverage Verifiable Credentials\n(VCs).\n\nYou can view the latest version of the specification here:\n\n[The Verifiable Credential API](https://w3c-ccg.github.io/vc-api/)\n\nAs some implementations might not support all endpoints defined by this\nspecification, the APIs provide a clean measure by which to identify which\nmethods are or are not implemented when comparing solutions that provide VC\nsupport across vendors.\n\nTest procedures and specifications are provided as part of this API definition\nto allow for repeatable and automated interoperability testing between solutions\nthat interact with Verifiable Credentials. Some of these tests suites include:\n\n* [VC API Issuer Test Suite](https://w3c-ccg.github.io/vc-api-issuer-test-suite/)\n* [VC API Verifier Test Suite](https://w3c-ccg.github.io/vc-api-verifier-test-suite/)\n* [EdDSA Test Suite](https://w3c.github.io/vc-di-ed25519signature2020-test-suite/)\n* [Status List 2021 Test Suite](https://w3c-ccg.github.io/status-list-2021-test-suite/)\n\n## Style, Versioning, and Contribution\nThis API is versioned in conformance with the [Semantic Versioning 2.0\nspecification](https://semver.org/) to prevent breaking changes between minor\nversions, and to allow for reliable testing and integration of implementations\nof this API within enterprise environments.\n\nAPI style, endpoint naming, and object definitions within the vc-api should be\nin compliance with the guidelines laid out in the [REST API\nTutorial](https://restfulapi.net/).  The VC API conforms primarily to the\n[controller](https://restfulapi.net/resource-naming/) model as detailed in the\nREST documentation.\n\nThe actual standard and specification defined by the VC-API is provided in YAML\nformat and should be referenced directly by developers should questions arise,\nas certain interfaces on top of OpenAPI specifications may differ in their\npresentation of certain scenarios commonly encountered in API definitions,\nespecially when dealing with `nullable` parameters or properties.\n\nContributions to this repository should take place via [pull\nrequests](https://github.com/w3c-ccg/vc-api/pulls), and should generally\nreference an issue and related discussion around the topic\n\n## Best Practices\n\n### Security\n\nImplementations of this API SHOULD NOT be exposed directly over http(s) without\nauthorization.  Best Practices around OAuth and other widely accepted standards\nfor authentication and/or authorization should be followed.\n\n### Holder APIs\n\nHolder APIs are optional as many implementations will not need them, however\nthey are extremely useful for testing purposes as well as for cases where WebKMS\nis not present or not an option.\n\n## Public Meetings\n\nThe editors host an open community call using W3C-CCG meeting infrastructure.\nThis entails:\n- Proposed agendas and supplemental materials for review are sent out by any\n  regularly-participating member to the [CCG mailing\n  list](https://lists.w3.org/Archives/Public/public-credentials/); editors and\n  CCG chairs reserve the right to  adjudicate if conflicting, inappropriate, or\n  contentious agenda proposals are put forward.\n- Mostly-audio calls hosted on a CCG [Jitsi\n  room](https://meet.w3c-ccg.org/vcapi), Tuesdays at 4pm Eastern Time. This\n  allows members to screenshare during issue review or discussion of diagrams.\n- Minutes are scribed by volunteers from the group and sent to the CCG mailing\n  list for review.\n\n### Development\n\nBefore committing changes to the OpenAPI spec files, please be sure to run the linter and correct any errors:\n\n```bash\nnpm ci\nnpm run lint\n```\n\nTo assemble bundled `yaml` files, as well as an all-in-one bundle of all definitions,\nrun the following:\n\n```bash\nnpm ci\nnpm run build\n```\n\nThis will generate the following files:\n\n- `api/vc-api.yaml` - a bundle with all specifications rolled into one\n- `api/bundles/issuer.yml` - issuer endpoints bundled with no external refs\n- `api/bundles/verifier.yml` - verifier endpoints bundled with no external refs\n- `api/bundles/holder.yml` - holder endpoints bundled with no external refs\n\nTo view the generated specifications, execute `npm run serve`. By default, this will start an http server on http://127.0.0.1:8080. Once you have the server started, you can view the documentation in several formats:\n\n- [RapiDoc](http://127.0.0.1:8080/rapidoc.html)\n- [Redocly](http://127.0.0.1:8080/redoc.html)\n- [Swagger](http://127.0.0.1:8080/swagger.html)\n\nTo view changes to the related to the `index.html`, execute `npm run serveIndex`. By default this will start an http server on http://127.0.0.1:8080. Once you have the server started, you can view the `index.html` here:\n\n- [index.html](http://127.0.0.1:8080/index.html)\n\nYou can can view the documentation here:\n\n- [RapiDoc](http://127.0.0.1:8080/api/rapidoc.html)\n- [Redocly](http://127.0.0.1:8080/api/redoc.html)\n- [Swagger](http://127.0.0.1:8080/api/swagger.html)\n\nDocumentation for the [`http-server` can be found here.](https://www.npmjs.com/package/http-server)\n\nIf you need to run on another port, execute `npm run serveIndex -- -p 4543` replacing `4543` with a custom port.\n\n## Additional Documentation\n\n- [Verifiable Credentials Data Model](https://w3c.github.io/vc-data-model/)\n- [Presentation Request](https://w3c-ccg.github.io/vp-request-spec/)\n- [Data Integrity](https://w3c.github.io/vc-data-integrity/)\n- [Bitstring Status List](https://w3c.github.io/vc-bitstring-status-list/) (formerly known as \u003ci\u003eStatus List 2021\u003c/i\u003e)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw3c-ccg%2Fvc-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fw3c-ccg%2Fvc-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw3c-ccg%2Fvc-api/lists"}