{"id":22267892,"url":"https://github.com/transmute-industries/api.did.actor","last_synced_at":"2026-03-09T12:39:24.242Z","repository":{"id":39890459,"uuid":"420580019","full_name":"transmute-industries/api.did.actor","owner":"transmute-industries","description":"Actor API for DIDs","archived":false,"fork":false,"pushed_at":"2023-02-02T14:57:43.000Z","size":2337,"stargazers_count":8,"open_issues_count":8,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-04T20:44:30.573Z","etag":null,"topics":["did","vc"],"latest_commit_sha":null,"homepage":"https://api.did.actor","language":"TypeScript","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/transmute-industries.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null}},"created_at":"2021-10-24T03:45:10.000Z","updated_at":"2025-03-06T07:23:46.000Z","dependencies_parsed_at":"2023-02-17T21:15:57.009Z","dependency_job_id":null,"html_url":"https://github.com/transmute-industries/api.did.actor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/transmute-industries/api.did.actor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transmute-industries%2Fapi.did.actor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transmute-industries%2Fapi.did.actor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transmute-industries%2Fapi.did.actor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transmute-industries%2Fapi.did.actor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/transmute-industries","download_url":"https://codeload.github.com/transmute-industries/api.did.actor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transmute-industries%2Fapi.did.actor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30295723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T11:12:22.024Z","status":"ssl_error","status_checked_at":"2026-03-09T11:10:54.577Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["did","vc"],"created_at":"2024-12-03T11:09:28.334Z","updated_at":"2026-03-09T12:39:24.079Z","avatar_url":"https://github.com/transmute-industries.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## [did actor api](https://api.did.actor)\n\n[![CI](https://github.com/transmute-industries/api.did.actor/actions/workflows/ci.yml/badge.svg)](https://github.com/transmute-industries/api.did.actor/actions/workflows/ci.yml) [![api.did.actor](https://github.com/transmute-industries/api.did.actor/actions/workflows/cd.yml/badge.svg)](https://github.com/transmute-industries/api.did.actor/actions/workflows/cd.yml)\n\n### What is did:actor API?\n\nThis API is for testing interoperability regarding a related W3C TR and W3C CCG Work items. Specifically [W3C CCG Traceability Interoperability Profile](https://w3id.org/traceability/interoperability) which uses the following standards:\n\n- [W3C Decentralized Identifiers](https://www.w3.org/TR/did-core/)\n- [W3C Verifiable Credentials](https://www.w3.org/TR/vc-data-model/)\n- [W3C CCG Verifiable Credentials API](https://github.com/w3c-ccg/vc-api)\n- [W3C CCG Credential Handler API](https://w3c-ccg.github.io/credential-handler-api/)\n\n### 🚨🚧🚧🚧🚨 WARNING 🚨🚧🚧🚧🚧🚨\n\nThis repository has been built for **testing purposes**.\nAs such **security precautions** have been intentionally **left out** for illustrative puposes.\nThe implementation of the VC-API used for `did:actor` **should not** be used outside of a testing / demonstration context.\n\n## Development\n\n```\ngit clone https://github.com/transmute-industries/api.did.actor.git\ncd api.did.actor\nnpm i\nnpm run dev\n```\n\nResolve a [did:key](https://github.com/transmute-industries/did-key.js)\n\n```\ncurl -s 'http://localhost:3000/identifiers/did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn' \\\n--header 'Accept: application/json' | jq\n```\n\nShould respond with\n\n```\n{\n  \"didDocument\": {\n    \"@context\": [\n      \"https://www.w3.org/ns/did/v1\",\n      \"https://w3id.org/security/suites/jws-2020/v1\"\n    ],\n    \"id\": \"did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn\",\n    \"verificationMethod\": [\n      {\n        \"id\": \"did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn\",\n        \"type\": \"JsonWebKey2020\",\n        \"controller\": \"did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn\",\n        \"publicKeyJwk\": {\n          \"kty\": \"OKP\",\n          \"crv\": \"Ed25519\",\n          \"x\": \"0-e2i2_Ua1S5HbTYnVB0lj2Z2ytXu2-tYmDFf8f5NjU\"\n        }\n      },\n      {\n        \"id\": \"did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6LSt8Cke1XG6vthTpdek9xx6a5NKz8gEuYPQHJPhRjfREAC\",\n        \"type\": \"JsonWebKey2020\",\n        \"controller\": \"did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn\",\n        \"publicKeyJwk\": {\n          \"kty\": \"OKP\",\n          \"crv\": \"X25519\",\n          \"x\": \"9GXjPGGvmRq9F6Ng5dQQ_s31mfhxrcNZxRGONrmH30k\"\n        }\n      }\n    ],\n    \"assertionMethod\": [\n      \"did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn\"\n    ],\n    \"authentication\": [\n      \"did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn\"\n    ],\n    \"capabilityInvocation\": [\n      \"did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn\"\n    ],\n    \"capabilityDelegation\": [\n      \"did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn\"\n    ],\n    \"keyAgreement\": [\n      \"did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn#z6LSt8Cke1XG6vthTpdek9xx6a5NKz8gEuYPQHJPhRjfREAC\"\n    ]\n  },\n  \"didResolutionMetadata\": {\n    \"didUrl\": {\n      \"did\": \"did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn\",\n      \"methodName\": \"key\",\n      \"methodSpecificId\": \"z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn\"\n    }\n  },\n  \"didDocumentMetadata\": {}\n}\n```\n\n## Deployment\n\nThis example API has been built with [Next.js](https://nextjs.org/) and [Material UI](https://mui.com/).\nThis repository is set up for deployment on either [Vercel](https://vercel.com/) or as a [Docker](https://docker.com/) container.\n\n#### Vercel\n\nFor deployment on Vercel, the app deploys as a normal nextjs app and can be deployed by following the [Vercel documentation](https://nextjs.org/docs/deployment)\n\n#### Docker Container\n\nTo build a container, the following steps should be taken:\n\n```bash\n$ docker build -t [TAG_NAME]:[VERSION] .\n```\n\n## Environment\n\nThere are a number of configuration options that are set from environment variables to simplify deployment\nin both docker. These options allow changing branding, enabling features, and enabling authenticaion.\n\nAt the moment, only [Auth0](https://auth0.com/) is supported for authentication.\n\nThe configuration is read into the app in `./components/config.tsx`. Required or variables that would normally be set are detailed below, though additional config options are covered in the component to allow for future developemnt or 'untested' functionality.\n\nConfig values listed below are in the format of `application variable name` | `enviornment variable name`\n\n### did_config\n\n- `mnemonic` | `DID_MNEMONIC`: sets the mnemonic used to derive key material - ideally this should be sourced from a secure location and should be treated as a private key\n\n### env_config\n\n- `domain`| `VC_DOMAIN`: what domain should be used for did:web and others, e.g. 'api.did.actor'\n- `auth_enabled`| `VC_AUTH_ENABLED`: is authentication enabled - if so, normal Auth0 environment variables should also be set [per this example](https://auth0.com/blog/ultimate-guide-nextjs-authentication-auth0/)\n\n### theme_config\n\n- `title` | `THEME_TITLE`: main application title to use\n- `logo` | `THEME_LOGO`: main logo to use\n- `logo_dark` | `THEME_LOGO_DARK`: logo to use on dark backgorunds\n- `theme` | `THEME`: general theme to use, e.g. 'dark' or 'light'\n- `header_show` | `THEME_HEADER_SHOW`: show header or not on api doc pages\n- `header_color` | `THEME_HEADER_COLOR`: Header color\n- `font` | `THEME_FONT`: main font name from [Google Fonts](https://fonts.google.com/)\n- `mono` | `THEME_MONO`: mono font name from [Google Fonts](https://fonts.google.com/)\n- `bg` | `THEME_BG`: Primary Background color\n- `bg_nav` | `THEME_BG_NAV`: Nav element backgroun color\n- `fg` | `THEME_FG`: Foreground/Text color\n- `primary` | `THEME_PRIMARY`: Primary color\n- `secondary` | `THEME_SECONDARY`: Secondary color\n- `accent` | `THEME_ACCENT`: Accent color\n- `footer` | `THEME_FOOTER`: What footer to use on pages that have it present\n\n### storage\n\n- `enabled` | `VC_STORAGE_ENABLED`: Is a storage backend enabled or not?\n- `driver` | `VC_STORAGE_DRIVER`: what driver to use for storage?\n- `connection_string` | `VC_STORAGE_CONNECTION_STRING`: if a connection string is required for the storage driver, what is it?\n\n### Static Resources / Resource Overrides\n\nThe contents of the folders prefixed `./local_*` will be coppied over to the docker container on build.\n\nThis is especially useful for static resources in the case of `./local_public`\n\n## License\n\n[Apache-2.0](./LICENSE) © Transmute Industries Inc. with contributions from [mesur.io](https://mesur.io/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftransmute-industries%2Fapi.did.actor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftransmute-industries%2Fapi.did.actor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftransmute-industries%2Fapi.did.actor/lists"}