### Launch walt.id Services with Docker Compose Source: https://docs.walt.id/community-stack/home This command navigates to the docker-compose directory and starts all the walt.id services (issuer API, verifier API, wallet API, Web Wallet, Web Portal, Verifiable Credentials Repo) using Docker Compose. Ensure Docker is installed and running. ```bash cd docker-compose && docker compose up ``` -------------------------------- ### Clone walt.id identity Repository Source: https://docs.walt.id/community-stack/wallet/apps/web-wallet/overview Clones the walt.id identity repository from GitHub to your local machine. This is the first step to getting started with the Community Stack. ```bash git clone https://github.com/walt-id/waltid-identity.git ``` -------------------------------- ### Start Docker Compose for Community Stack Source: https://docs.walt.id/community-stack/wallet/apps/web-wallet/overview Starts all the necessary services for the walt.id Community Stack using Docker Compose. This command assumes you are in the 'docker-compose' directory. ```bash cd docker-compose && docker-compose up ``` -------------------------------- ### Example Response with Matching Credentials Source: https://docs.walt.id/community-stack/home/tutorial-30-min This JSON array shows an example response from the wallet API when credentials matching the presentation definition are found. Each object represents a credential, including its wallet ID, unique ID, and the credential document itself. ```json [ { "wallet": "5f2eb7d7-7d04-461c-b93d-28d95efbf15b", "id": "urn:uuid:fb09ba3d-b73d-49ad-9d88-3d018878ea83", "document": "eyJraWQiOiJkaWQ6andrOmV5SnJkSGtpT2lKRlF5SXNJbU55ZGlJNklsQXRNalUySWl3aWEybGtJam9pTTFsT1pEbEdibmc1U214NVVGWlpkMmRYUmtVek4wVXpSM2RKTUdWSGJFTkxPSGRHYkZkNFIyWndUU0lzSW5naU9pSkdiM1paTWpGTVFVRlBWR3huTFcwdFRtVkxWMmhhUlV3MVlVWnlibEl3ZFdOS2FrUTFWRXR3UjNWbklpd2llU0k2SWtOeVJrcG1SMVJrVURJNVNrcGpZM0JSV0hWNVRVOHpiMmgwZW5KVWNWQjZRbEJDU1ZSWmFqQnZaMEVpZlEiLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJkaWQ6andrOmV5SnJkSGtpT2lKRlF5SXNJbU55ZGlJNklsQXRNalUySWl3aWEybGtJam9pTTFsT1pEbEdibmc1U214NVVGWlpkMmRYUmtVek4wVXpSM2RKTUdWSGJFTkxPSGRHYkZkNFIyWndUU0lzSW5naU9pSkdiM1paTWpGTVFVRlBWR3huTFcwdFRtVkxWMmhhUlV3MVlVWnlibEl3ZFdOS2FrUTFWRXR3UjNWbklpd2llU0k2SWtOeVJrcG1SMVJrVURJNVNrcGpZM0JSV0hWNVRVOHpiMmgwZW5KVWNWQjZRbEJDU1ZSWmFqQnZaMEVpZlEiLCJzdWIiOiJkaWQ6andrOmV5SnJkSGtpT2lKUFMxQWlMQ0pqY25ZaU9pSkZaREkxTlRFNUlpd2lhMmxrSWpvaVEyVTVNbGczUVhVMVRuQlRWV0ZoWlU5VFl6TkpSMjlDTFVacFNUTmtaMjFYT1Y5c2NGTldja3hrYXlJc0luZ2lPaUpIY1VabWRqbFNjemh1TlRrMk4wSXlVR3g0TW1wbFduRnlOWFZxVkRoM2RYWk5XbEpIYlZoeGVFSkZJbjAiLCJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF0dGVzdGF0aW9uIiwiVmVyaWZpYWJsZ উষ্ণdGlkZXIiXSwiY3JlZGVudGlhbFNjaGVtYSI6eyJpZCI6Imh0dHBzOi8vYXBpLnByZXByb2QuZWJzaS5ldS90cnVzdGVkLXNjaGVtYXMtcmVnaXN0cnkvdjEvc2NoZW1hcy8weGI3N2Y4NTE2YTk2NTYzMWI0ZjE5N2FkNTRjNjVhOWUyZjk5MzZlYmZjN2JiYWU0OTA2ZDMzNzQ0ZGJjYzYwYmEiLCJ0eXBlIjoiRnVsbEpzb25TY2hlbWFWYWxpZGF0b3IyMDIxIn0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImN1cnJlbnRBZGRyZXNzIjpbIjEgQm91bGV2YXJkIGRlIGxhIExpYmVydGEsIDU5ODAwIExpbGxlIl0sImRhdGVPZkJpcnRoIjoiMTk5My0wNC0wOCIsImZhbWlseU5hbWUiOiJET0UiLCJmaXJzdE5hbWUiOiJKYW5lIiwiZ2VuZGVyIjoiRkVMQUwiLCJpZCI6ImRpZDpqd2s6ZXlKcmRIa2lPaUpQUzFBaUxDSmpjbllpT2lKRlpESTFOVEU1SWl3aWEybGtJam9pUTJVNU1sZzNRWFUxVG5CVFZXRmhaVTlUWXpOSlIyOUNMVVpwU1ROa1oyMVhPVjlzY0ZOV2NreGtoYXlJc0luZ2lPaUpIY1VabWRqbFNjemh1TlRrMk4wSXlVR3g0TW1wbFduRnlOWFZxVkRoM2RYWk5XbEpIYlZoeGVFSkZJbjAiLCJuYW1lQW5kRmFtaWx5TmFtZUF0QnJ0aCI6IkphbmUgRE9FIiwicGVyc29uYWxJZGVudGlmaWVyIjoiMDkwNDAwODA4NEgiLCJwbGFjZU9mQmlydGgiOiJMSUxMRSwgRlJBTkNFIn0sImV2aWRlbmNlIjpbeyJkb2N1bWVudFByZXNlbmNlIjpbIlBoeXNpY2FsIl0sImV2aWRlbmNlRG9jdW1lbnQiOlsiUGFzc3BvcnQiXSwic3ViamVjdFByZXNlbmNlIjoiUGh5c2ljYWwiLCJ0eXBlIjpbIkRvY3VtZW50VmVyaWZpY2F0aW9uIl0sInZlcmlmaWVyIjoiZGlkOmVic2k6MkE5Qlo5U1VlNkJhdGFjU3B2czFWNUNkakh2THBRN2JFc2kySmI2TGRIS25ReGFOIn1dLCJpZCI6InVybjp1dWlkOmZiMDliYTNkLWI3M2QtNDlhZC05ZDg4LTNkMDE4ODc4ZWE4MyIsImlzc3VlZCI6IjIwMjEtMDgtMzFUMDA6MDA6MDBaIiwiaXNzdWVyIjoiZGlkOmp3azpleUpyZEhraU9pSkZReUlzSW1OeWRpSTZJbEF0TWpVMklpd2lhMmxrSWpvaU0xbE9aRGxHYm5nNVNteDVVRlpaZDJkWFJrVXpOMFV6UjNkSk1HVkhiRU5MT0hkR2JGZDRSMlp3VFNJc0luZ2lPaUpHYjNaWk1qRk1RVUZQVkd4bkxXMHRUbVZMVjJoYVJVdzFZVVp5YmxJd2RXTktha1ExVkV0d1IzVm5JaXdpZVNJNklrTnlSa3BtUjFSa1VESTVTa3BqWTNCUldIVjVUVTh6YjJoMGVuSlVjVkI2UWxCQ1NWUlphakJ2WjBFaWZRIiwidmFsaWRGcm9tIjoiMjAyMS0wOC0zMVQwMDowMDowMFoiLCJpc3N1YW5jZURhdGUiOiIyMDI0LTA4LTIxVDA5OjExOjMzLjI0NjM4OTA0MVoiLCJpYXQiOjE3MjQyMzE0OTMsIm5iZiI6MTcyNDIzMTQ5M30.OsPTKQC6tvD6TtxeoCd8FtaIThYrYeYRjCHzDXkmgTUjRw78faT9R2bljT03ncrb0YstK0EmjM9D5lwqMZ9ZIA ``` -------------------------------- ### OpenID4VP Presentation Definition Examples Source: https://docs.walt.id/community-stack/concepts/data-exchange-protocols/openid4vp Examples of how presentation definitions or DCQL queries are structured to specify required credentials and claims for a Verifier. ```json { "id": "a-unique-id", "input_descriptor": [ { "id": "id_document_descriptor", "name": "Government ID", "purpose": "Verify user identity", "format": { "jwt_vc": { "alg": ["EdDSA", "ES256"] } }, "constraints": { "fields": [ { "path": ["$.credentialSubject.dateOfBirth"], "filter": { "type": "integer", "minimum": "19900101" } } ] } } ] } ``` -------------------------------- ### Example Policies for VC/VP Verification Source: https://docs.walt.id/community-stack/verifier/api/credential-verification/vc-oid4vc Demonstrates the structure for defining policies, which can be simple strings for policies without arguments or objects for policies requiring arguments, such as a webhook URL. ```json [ "signature", "expired", "not-before", { "policy": "webhook", "args": "https://example.org/abc/xyz" } ] ``` -------------------------------- ### DID Method Examples Source: https://docs.walt.id/community-stack/concepts/decentralised-identifiers Provides examples of different DID methods, illustrating how DIDs can be anchored on registries like EBSI or the Domain Name Service, or distributed via peer-to-peer interactions. ```text did:ebsi did:web did:key ``` -------------------------------- ### Retrieve Verification Status using cURL Source: https://docs.walt.id/community-stack/verifier/api/credential-verification/vc-oid4vc This example demonstrates how to retrieve the verification status of a presented credential. It involves making a GET request to a specific session endpoint using the 'state' parameter obtained from the authorization URL. ```shell curl -X 'GET' \ 'https://verifier.demo.walt.id/openid4vc/session/$state' \ -H 'accept: */*' ``` -------------------------------- ### Create Credential Offer using cURL Source: https://docs.walt.id/community-stack/home/tutorial-30-min Demonstrates how to create a credential offer by sending a POST request to the `/openid4vc/jwt/issue` endpoint. Includes a sample JSON payload with issuer details, credential configuration, and data. ```curl curl -X 'POST' \ 'http://localhost:7002/openid4vc/jwt/issue' \ -H 'accept: text/plain' \ -H 'Content-Type: application/json' \ -d '{ \ "issuerKey": { \ "type": "jwk", \ "jwk": { \ "kty": "OKP", \ "d": "JvJIpga2GD8LJeRu4Sv-mL4thE31DuFlr9PA04CIoZY", \ "crv": "Ed25519", \ "kid": "iJMS5bkZVIlncfq_Lf_SuxJ2JtQ5Hvaz7tWPnAjUUds", \ "x": "FZdvwC8aGhRwqzWptej0NZgtwYAI1SyFg1mKDETOfqE" \ } \ }, \ "issuerDid": "did:jwk:eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5Iiwia2lkIjoiaUpNUzVia1pWSWxuY2ZxX0xmX1N1eEoySnRRNUh2YXo3dFdQbkFqVVVkcyIsIngiOiJGWmR2d0M4YUdoUndxeldwdGVqME5aZ3R3WUFJMVN5RmcxbUtERVRPZnFFIn0", \ "credentialConfigurationId": "UniversityDegree_jwt_vc_json", \ "credentialData": { \ "@context": [ \ "https://www.w3.org/2018/credentials/v1", \ "https://www.w3.org/2018/credentials/examples/v1" \ ], \ "id": "http://example.gov/credentials/3732", \ "type": [ \ "VerifiableCredential", \ "UniversityDegree" \ ], \ "issuer": { \ "id": "did:web:vc.transmute.world" \ }, \ "issuanceDate": "2020-03-10T04:24:12.164Z", \ "credentialSubject": { \ "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", \ "degree": { \ "type": "BachelorDegree", \ "name": "Bachelor of Science and Arts" \ } \ } \ }, \ "mapping": { \ "id": "", \ "issuer": { \ "id": "" \ }, \ "credentialSubject": { \ "id": "" \ }, \ "issuanceDate": "", \ "expirationDate": "" \ }, \ "authenticationMethod": "PRE_AUTHORIZED", \ "standardVersion": "DRAFT13" \ }' ``` -------------------------------- ### Example Credential Offer URL Source: https://docs.walt.id/community-stack/wallet/api/credentials/guides/receive-and-store-mdl-oid4vci An example of a credential offer URL used to communicate the issuance of credentials between an issuer and a wallet, conforming to the OID4VCI specification. These URLs typically start with 'openid-credential-offer://' or 'haip://'. ```plaintext openid-credential-offer://issuer.portal.walt.id/?credential_offer= ``` -------------------------------- ### Example Credential Offer URL (Decoded) Source: https://docs.walt.id/community-stack/home/tutorial-30-min This is a decoded version of the credential offer URL, making it more human-readable. It shows the structure of the credential offer JSON, including details about the issuer, credentials, and grants. ```json openid-credential-offer://issuer.portal.walt.id/? credential_offer= { "credential_issuer": "https://issuer.demo.walt.id", "credentials": [ { "format": "jwt_vc_json", "types": [ "VerifiableCredential", "UniversityDegree" ], ``` -------------------------------- ### GET /openid4vc/session/{id}/presented-credentials Source: https://docs.walt.id/community-stack/verifier/api/credential-verification/vc-oid4vc Retrieves presented credentials from a specific session. You can control the verbosity of the response with the `viewMode` query parameter. ```APIDOC ## GET /openid4vc/session/{id}/presented-credentials ### Description Retrieves a decoded and formatted view of all credentials presented by the holder within a given session. The `viewMode` parameter allows for controlling the level of detail in the response, with `simple` being the default and `verbose` providing more in-depth information. ### Method GET ### Endpoint `/openid4vc/session/{id}/presented-credentials` ### Parameters #### Path Parameters - **`id`** (string) - Required - The identifier of the presentation session whose credentials should be retrieved. #### Query Parameters - **`viewMode`** (string) - Optional - Controls how detailed the response will be. Available values are `simple` and `verbose` (defaults to `simple`). ### Request Example ```json { "example": "GET /openid4vc/session/12345/presented-credentials?viewMode=verbose" } ``` ### Response #### Success Response (200) - **`credential`** (string) - The name of the credential. - **`policyResults`** (array) - An array of policy results for the credential. - **`policy`** (string) - The name of the policy. - **`description`** (string) - A description of the policy. - **`is_success`** (boolean) - Indicates if the policy check was successful. - **`result`** (object) - The detailed result of the policy check. - **`verificationResult`** (boolean) - `true` if all policies were successful, `false` otherwise. #### Response Example ```json { "example": "{\n \"credential\": \"UniversityDegree\",\n \"policyResults\": [\n {\n \"policy\": \"signature\",\n \"description\": \"Checks a JWT credential by verifying its cryptographic signature using the key referenced by the DID in `iss`.\",\n \"is_success\": true,\n \"result\": {\n \"iss\": \"did:jwk:eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2Iiwia2lkIjoiM1lOZDlGbng5Smx5UFZZd2dXRkUzN0UzR3dJMGVHbENLOHdGbFd4R2ZwTSIsIngiOiJGb3ZZMjFMQUFPVGxnLW0tTmVLV2haRUw1YUZyblIwdWNKakQ1VEtwR3VnIiwieSI6IkNyRkpmR1RkUDI5SkpjY3BRWHV5TU8zb2h0enJUcVB6QlBCSVRZajBvZ0EifQ\",\n \"sub\": \"did:jwk:eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5Iiwia2lkIjoiTHFRb1g5SDI2MFVEWVJRVS1hOG9mUVZqd1V4R2FOT0s1UnVsaXVUSy1RbyIsIngiOiJpM0MtaF9tZzQ2Y3Z5YUZlZWNZUkRyUkJiZ1ZwZXZiS3JldmlrT3BwaTQ0In0\",\n \"vc\": {\n \"@context\": [\n \"https://www.w3.org/2018/credentials/v1\",\n \"https://www.w3.org/2018/credentials/examples/v1\"\n ],\n \"id\": \"urn:uuid:43524bbd-b479-43dd-b957-ad7a8e125271\",\n \"type\": [\n \"VerifiableCredential\",\n \"UniversityDegree\"\n ],\n \"issuer\": {\n \"id\": \"did:jwk:eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2Iiwia2lkIjoiM1lOZDlGbng5Smx5UFZZd2dXRkUzN0UzR3dJMGVHbENLOHdGbFd4R2ZwTSIsIngiOiJGb3ZZMjFMQUFPVGxnLW0tTmVLV2haRUw1YUZyblIwdWNKakQ1VEtwR3VnIiwieSI6IkNyRkpmR1RkUDI5SkpjY3BRWHV5TU8zb2h0enJUcVB6QlBCSVRZajBvZ0EifQ\"\n },\n \"issuanceDate\": \"2025-05-12T07:13:51.977330873Z\",\n \"credentialSubject\": {\n \"id\": \"did:jwk:eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5Iiwia2lkIjoiTHFRb1g5SDI2MFVEWVJRVS1hOG9mUVZqd1V4R2FOT0s1UnVsaXVUSy1RbyIsIngiOiJpM0MtaF9tZzQ2Y3Z5YUZlZWNZUkRyUkJiZ1ZwZXZiS3JldmlrT3BwaTQ0In0\",\n \"degree\": {\n \"type\": \"BachelorDegree\",\n \"name\": \"Bachelor of Science and Arts\"\n }\n }\n },\n \"jti\": \"urn:uuid:43524bbd-b479-43dd-b957-ad7a8e125271\",\n \"iat\": 1747034031,\n \"nbf\": 1747034031\n }\n }\n ],\n \"verificationResult\": true\n}" } ``` ``` -------------------------------- ### Run Issuer API Instance 1 Source: https://docs.walt.id/community-stack/issuer/api/configurations/distributed-architecture Starts the first instance of the Walt.id Issuer API with specific network, port mappings, and command-line arguments for web port and base URL. ```shell docker run --rm --name issuer1 --net waltid -p 7002:7002 waltid/issuer-api -- --webPort=7002 --baseUrl=http://caddy:9092 ``` -------------------------------- ### GET /openid4vc/session/{id}/presented-credentials Source: https://docs.walt.id/community-stack/verifier/api/credential-verification/vc-oid4vc Retrieves presented credentials for a given session ID. This endpoint is useful for verifying the credentials that have been shared in a session. ```APIDOC ## GET /openid4vc/session/{id}/presented-credentials ### Description Retrieves presented credentials for a given session ID. This endpoint is useful for verifying the credentials that have been shared in a session. ### Method GET ### Endpoint `/openid4vc/session/{id}/presented-credentials` #### Path Parameters - **id** (string) - Required - The unique identifier for the session. ### Request Example ```curl curl -X 'GET' \ 'http://0.0.0.0:7003/openid4vc/session/{id}/presented-credentials' \ -H 'accept: application/json' ``` ### Response #### Success Response (200) - **credentialsByFormat** (object) - An object containing credentials organized by format. - **jwt_vc_json** (array) - An array of JWT VC JSON formatted credentials. - **type** (string) - The type of the credential view (e.g., "jwt_vc_json_view_simple"). - **holder** (string) - The DID of the credential holder. - **verifiableCredentials** (array) - An array of verifiable credential objects. - **header** (object) - The header of the JWT. - **payload** (object) - The payload of the JWT, containing the Verifiable Credential. - **@context** (array) - The JSON-LD context for the Verifiable Credential. - **id** (string) - The unique identifier of the Verifiable Credential. - **type** (array) - The types of the Verifiable Credential (e.g., ["VerifiableCredential", "UniversityDegree"]). - **issuer** (object) - Information about the issuer of the credential. - **credentialSubject** (object) - The subject of the credential, containing specific claims. - **issuerDid** (string) - The DID of the issuer. - **expirationDate** (string) - The expiration date of the credential. - **issuanceDate** (string) - The issuance date of the credential. #### Response Example ```json { "credentialsByFormat": { "jwt_vc_json": [ { "type": "jwt_vc_json_view_simple", "holder": "did:jwk:eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2Iiwia2lkIjoiVkp6Qlc2bXVVMV8ydGFzcDdSTFh6N2tod0xWb3E2NTBtU0pWNGxtVzJmTSIsIngiOiI0bUx6N2RyMkxpT0JvaHEyaTI0Wk9qLWVUVWlCdC0xdEVtSm9mbFBBdzNrIiwieSI6Il9mS0JNc05WTnJ4ZUw0M1V1dVR0NVFMaUYwcUlvSEFUSkt0d1dyYXBhYlkifQ", "verifiableCredentials": [ { "header": { "kid": "did:key:zDnaeqPNFZ4YdURZczMiLp5cNpP3SurXZA5b8w461xRw19shB#zDnaeqPNFZ4YdURZczMiLp5cNpP3SurXZA5b8w461xRw19shB", "typ": "JWT", "alg": "ES256" }, "payload": { "iss": "did:key:zDnaeqPNFZ4YdURZczMiLp5cNpP3SurXZA5b8w461xRw19shB", "sub": "did:jwk:eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2Iiwia2lkIjoiVkp6Qlc2bXVVMV8ydGFzcDdSTFh6N2tod0xWb3E2NTBtU0pWNGxtVzJmTSIsIngiOiI0bUx6N2RyMkxpT0JvaHEyaTI0Wk9qLWVUVWlCdC0xdEVtSm9mbFBBdzNrIiwieSI6Il9mS0JNc05WTnJ4ZUw0M1V1dVR0NVFMaUYwcUlvSEFUSkt0d1dyYXBhYlkifQ", "vc": { "@context": [ "https://www.w3.org/2018/credentials/v1", "https://www.w3.org/2018/credentials/examples/v1" ], "id": "urn:uuid:1d037cf4-8489-4bb8-8c20-8f2e2d13292d", "type": [ "VerifiableCredential", "UniversityDegree" ], "issuer": { "id": "did:key:zDnaeqPNFZ4YdURZczMiLp5cNpP3SurXZA5b8w461xRw19shB" }, "credentialSubject": { "id": "did:jwk:eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2Iiwia2lkIjoiVkp6Qlc2bXVVMV8ydGFzcDdSTFh6N2tod0xWb3E2NTBtU0pWNGxtVzJmTSIsIngiOiI0bUx6N2RyMkxpT0JvaHEyaTI0Wk9qLWVUVWlCdC0xdEVtSm9mbFBBdzNrIiwieSI6Il9mS0JNc05WTnJ4ZUw0M1V1dVR0NVFMaUYwcUlvSEFUSkt0d1dyYXBhYlkifQ", "degree": { "type": "BachelorDegree", "name": "Bachelor of Science and Arts" } }, "issuerDid": "did:key:zDnaeqPNFZ4YdURZczMiLp5cNpP3SurXZA5b8w461xRw19shB", "expirationDate": "2026-07-16T06:52:03.063864637Z", "issuanceDate": "2025-07-16T06:52:03.063843966Z" }, "jti": "urn:uuid:1d037cf4-8489-4bb8-8c20-8f2e2d13292d", "exp": 1784184723, "iat": 1752648723, "nbf": 1752648723 } } ] } ] }, "viewMode": "simple" } ``` ``` -------------------------------- ### Onboarding Service API Source: https://docs.walt.id/community-stack/issuer/api/full-api-reference Endpoints for onboarding new issuers and issuing necessary certificates. ```APIDOC ## POST /onboard/iso-mdl/iacas ### Description Issues an Issuing Authority Certification Authority (IACA) certificate for Mobile Driver's License (mDL). ### Method POST ### Endpoint /onboard/iso-mdl/iacas ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **iacaData** (IACACertificateData) - Required - Data required for issuing the IACA certificate. ### Response #### Success Response (200) - **iacaResponse** (IACAOnboardingResponse) - The response containing details of the issued IACA certificate. #### Response Example ```json { "iacaResponse": { "certificate": "..." } } ``` ``` ```APIDOC ## POST /onboard/iso-mdl/document-signers ### Description Issues a Document Signer (DS) certificate for Mobile Driver's License (mDL). ### Method POST ### Endpoint /onboard/iso-mdl/document-signers ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **dsData** (DocumentSignerCertificateData) - Required - Data required for issuing the Document Signer certificate. ### Response #### Success Response (200) - **dsResponse** (DocumentSignerOnboardingResponse) - The response containing details of the issued DS certificate. #### Response Example ```json { "dsResponse": { "certificate": "..." } } ``` ``` ```APIDOC ## POST /onboard/issuer ### Description Onboards a new issuer to the system. ### Method POST ### Endpoint /onboard/issuer ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **onboardingRequest** (OnboardingRequest) - Required - Information needed to onboard the new issuer. ### Response #### Success Response (200) - **onboardingResponse** (IssuerOnboardingResponse) - The response confirming the issuer onboarding. #### Response Example ```json { "onboardingResponse": { "issuerId": "did:example:123" } } ``` ``` -------------------------------- ### GET /openid4vc/session/{id}/presented-credentials Source: https://docs.walt.id/community-stack/verifier/api/credential-verification/vc-oid4vc Retrieves presented Verifiable Credentials for a given session ID. This endpoint allows clients to fetch credentials that have been shared or presented. ```APIDOC ## GET /openid4vc/session/{id}/presented-credentials ### Description Retrieves presented Verifiable Credentials for a given session ID. This endpoint allows clients to fetch credentials that have been shared or presented. ### Method GET ### Endpoint /openid4vc/session/{id}/presented-credentials ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier for the session. #### Query Parameters None #### Request Body None ### Request Example ```curl curl -X 'GET' \ 'http://0.0.0.0:7003/openid4vc/session/{id}/presented-credentials' \ -H 'accept: application/json' ``` ### Response #### Success Response (200) - **credentialsByFormat** (object) - An object containing credentials categorized by their format. - **viewMode** (string) - The display mode for the credentials. #### Response Example ```json { "credentialsByFormat": { "jwt_vc_json": [ { "type": "jwt_vc_json_view_simple", "holder": "did:jwk:eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2Iiwia2lkIjoiZXY2a3BuS0l6akRLRTFZcXRONDJIMk9VMmxVZWVKamVpVmh4VEpRdVVJYyIsIngiOiJCdmt3bzh0Y0hLN3RsTy1lWUNZRjZLakNxTXNMeHdoTVJOQ3VtX0tJZUk4IiwieSI6IkQ3czc0WV9wdXVGdXJWNlJtWUtHRUpaTzlWdU1ycy1OdlNGeHdMd01SVVUifQ", "verifiableCredentials": [ { "header": { "kid": "did:key:zDnaeqgdw7qN5J8qZbwo8PCu18he2bK7PSHfaQEhmTw4xrDCC#zDnaeqgdw7qN5J8qZbwo8PCu18he2bK7PSHfaQEhmTw4xrDCC", "typ": "JWT", "alg": "ES256" }, "payload": { "iss": "did:key:zDnaeqgdw7qN5J8qZbwo8PCu18he2bK7PSHfaQEhmTw4xrDCC", "sub": "did:jwk:eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2Iiwia2lkIjoiZXY2a3BuS0l6akRLRTFZcXRONDJIMk9VMmxVZWVKamVpVmh4VEpRdVVJYyIsIngiOiJCdmt3bzh0Y0hLN3RsTy1lWUNZRjZLakNxTXNMeHdoTVJOQ3VtX0tJZUk4IiwieSI6IkQ3czc0WV9wdXVGdXJWNlJtWUtHRUpaTzlWdU1ycy1OdlNGeHdMd01SVVUifQ", "vc": { "@context": [ "https://www.w3.org/2018/credentials/v1", "https://www.w3.org/2018/credentials/examples/v1" ], "id": "urn:uuid:ca31b7d7-2db6-458e-b776-c6213ee82190", "type": [ "VerifiableCredential", "UniversityDegree" ], "issuer": { "id": "did:key:zDnaeqgdw7qN5J8qZbwo8PCu18he2bK7PSHfaQEhmTw4xrDCC" }, "issuanceDate": "2025-07-16T06:38:06.202581908Z", "credentialSubject": { "id": "did:jwk:eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2Iiwia2lkIjoiZXY2a3BuS0l6akRLRTFZcXRONDJIMk9VMmxVZWVKamVpVmh4VEpRdVVJYyIsIngiOiJCdmt3bzh0Y0hLN3RsTy1lWUNZRjZLakNxTXNMeHdoTVJOQ3VtX0tJZUk4IiwieSI6IkQ3czc0WV9wdXVGdXJWNlJtWUtHRUpaTzlWdU1ycy1OdlNGeHdMd01SVVUifQ", "degree": { "type": "BachelorDegree", "name": "Bachelor of Science and Arts" } }, "issuerDid": "did:key:zDnaeqgdw7qN5J8qZbwo8PCu18he2bK7PSHfaQEhmTw4xrDCC", "expirationDate": "2026-07-16T06:38:06.202607447Z" }, "jti": "urn:uuid:ca31b7d7-2db6-458e-b776-c6213ee82190", "exp": 1784183886, "iat": 1752647886, "nbf": 1752647886 } } ] } ] }, "viewMode": "simple" } ``` ``` -------------------------------- ### Presentation Request Response Example Source: https://docs.walt.id/community-stack/home/tutorial-30-min This snippet shows a typical response from the fulfill presentation request endpoint. It includes a 'redirectUri' field, which may be null if no redirection is necessary. ```json { "redirectUri": null } ``` -------------------------------- ### Example Presentation Definition Source: https://docs.walt.id/community-stack/wallet/api/credentials/guides/present-w3c-mdl-oid4vp-external-signatures This JSON object defines the criteria for credential presentation, specifying the format (JWT VC JSON with EdDSA algorithm) and constraints (credential type must be 'VerifiableId'). This definition guides the wallet on which credentials to request. ```json { "input_descriptors": [ { "id": "VerifiableId", "format": { "jwt_vc_json": { "alg": [ "EdDSA" ] } }, "constraints": { "fields": [ { "path": [ "$.type" ], "filter": { "type": "string", "pattern": "VerifiableId" } } ] } } ] } ``` -------------------------------- ### Find Matching Credentials (cURL) Source: https://docs.walt.id/community-stack/home/tutorial-30-min This cURL command demonstrates how to send a POST request to the wallet API to find credentials matching a given presentation definition. It includes the endpoint, headers, and a sample JSON payload for the request body. ```cURL curl -X 'POST' \ 'http://0.0.0.0:7001/wallet-api/wallet/{wallet_id}/exchange/matchCredentialsForPresentationDefinition' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -H 'authorization: Bearer {loginToken}' \ -d '{presentationDefinitionExtractedFromAuthorizationRequest}' ``` -------------------------------- ### Launch Walt.id Services with Docker Compose Source: https://docs.walt.id/community-stack/index Navigates to the docker-compose directory and launches the Walt.id services (issuer API, verifier API, wallet API, Web Wallet, Web Portal, and Verifiable Credentials Repo) using Docker Compose. ```shell cd docker-compose && docker compose up ``` -------------------------------- ### Full Credential Request Example with Policies and ID Source: https://docs.walt.id/community-stack/verifier/api/credential-verification/vc-oid4vc An example demonstrating a complete credential request object. It includes the credential type, format, an array of policies (including a webhook policy with an argument), and a custom ID for the Presentation Definition. ```json { "type": "ProofOfResidence", "format": "jwt_vc_json", "policies": [ "schema", { "policy": "webhook", "args": "https://example.org/abc/xyz" } ], "id": "test123" } ``` -------------------------------- ### Requesting an Identity Credential (SD-JWT VC) Source: https://docs.walt.id/community-stack/verifier/api/credential-verification/vc-oid4vc An example of a request body to obtain an 'identity_credential' using the SD-JWT VC format. ```JSON { "vct": "test.com/identity_credential", "format": "vc+sd-jwt" } ``` -------------------------------- ### Create Wallet Account (cURL) Source: https://docs.walt.id/community-stack/home/tutorial-30-min Sends a POST request to the wallet API to register a new user account. It requires a JSON body with user details like name, email, password, and account type. The API returns authentication details upon successful registration. ```curl curl -X 'POST' \ 'http://0.0.0.0:7001/wallet-api/auth/register' \ -H 'accept: */*' \ -H 'Content-Type: application/json' \ -d '{ \ "type": "email", \ "name": "Test", \ "email": "test@email.com", \ "password": "test" \ }' ```