---
id: config-digital-wallet-open-id-list-key-store-types
title: "List key store types"
description: "Lists the key store types and the key store providers. A key store holds signing keys of the organisation. Its type tells what it can do, and its provider is the product or the partner. The first type is `local`, the key store of the installation, with `canAdd` `false` (its `protection` is `hsm` when the installation keeps the new keys in its hardware security module). Then come the types that the installation lets an organisation add (from `vault`, `gcp-kms`, `aws-kms`, `azure-key-vault`, `dpod` and `csc`)."
sidebar_label: "List key store types"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/openid4vc-api/igrant-io-api-documentation
custom_edit_url: null
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```


import ApiTabs from "@theme/ApiTabs";
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";
import MimeTabs from "@theme/MimeTabs";
import ParamsItem from "@theme/ParamsItem";
import ResponseSamples from "@theme/ResponseSamples";
import SchemaItem from "@theme/SchemaItem";
import SchemaTabs from "@theme/SchemaTabs";
import Markdown from "@theme/Markdown";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";

<h1 className={"openapi__heading"}>List key store types</h1>

<MethodEndpoint method={"get"} path={"/v2/config/digital-wallet/openid/key-management/key-store-types"}></MethodEndpoint>



Lists the key store types and the key store providers. A key store holds signing keys of the organisation. Its type tells what it can do, and its provider is the product or the partner. The first type is `local`, the key store of the installation, with `canAdd` `false` (its `protection` is `hsm` when the installation keeps the new keys in its hardware security module). Then come the types that the installation lets an organisation add (from `vault`, `gcp-kms`, `aws-kms`, `azure-key-vault`, `dpod` and `csc`).

`providers` is the catalogue of the installation in display order: OpenBao, HashiCorp Vault, Google Cloud KMS, AWS KMS and Azure Key Vault (category `external-vault`), Thales Luna Cloud HSM (DPoD) (category `hsm`), Intesi Group (category `qtsp`) and a CSC-compatible provider (category `remote-signing`), plus the providers that the installation adds. A provider is in the list only when the installation lets an organisation add its type and does not hide the provider. An organisation has at most one key store of each provider: a provider of which the organisation has a key store is always in the list, with `canAdd` `false` and `notAvailableReason` `The organisation already has a key store of this provider.` The type `dpod` is not in the default list of an installation, and it also needs the HSM signer of the platform: without it, the provider `thales-dpod` has `canAdd` `false` (`This installation has no HSM signer for DPoD partitions.`). A type that the installation does not allow is not in `keyStoreTypes`.


<div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

The service returned the key store types.

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>keyStoreTypes</strong><span className={"openapi-schema__name"}> object[]</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The key store types, `local` first.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"type"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`local`, `vault`, `gcp-kms`, `aws-kms`, `azure-key-vault`, `dpod`, `csc`]"} schema={{"type":"string","description":"The key store type.","enum":["local","vault","gcp-kms","aws-kms","azure-key-vault","dpod","csc"],"example":"vault"}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Display name of the type, for example `Local vault`, `External vault (OpenBao or HashiCorp Vault)`, `Google Cloud KMS`, `AWS KMS`, `Azure Key Vault`, `Thales Luna Cloud HSM (DPoD)` or `Remote signing service (CSC API)`.","example":"External vault (OpenBao or HashiCorp Vault)"}}></SchemaItem><SchemaItem collapsible={false} name={"canAdd"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Shows `true` when the organisation can add a key store of a provider of this type (see `providers`). Always `false` for `local`. For `dpod`, `false` also when the installation has no HSM signer.","example":true}}></SchemaItem><SchemaItem collapsible={false} name={"protection"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`software`, `hsm`, `dedicated-hsm`]"} schema={{"type":"string","nullable":true,"description":"Where the keys of a key store of the type are, when the type decides it. `local`, `software` for the OpenBao or the database backend, `hsm` for a hardware security module backend. `dpod`, `dedicated-hsm` (a type whose providers are all hardware security modules with one protection). `null` for the other types; each provider has its own `protection`.","enum":["software","hsm","dedicated-hsm"],"example":null}}></SchemaItem><SchemaItem collapsible={false} name={"qscd"} required={true} schemaName={""} qualifierMessage={undefined} schema={{"description":"Shows if a key store of this type keeps the keys in a qualified signature creation device (QSCD). `false`, or `provider` for `csc`, where the QTSP decides.","example":false}}></SchemaItem><SchemaItem collapsible={false} name={"capabilities"} required={true} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","description":"What a key store of this type can do. See `capabilities` of the key store.","items":{"type":"string"},"example":["create","import","reference","sign","csr","certificateChain","listProviderKeys","test","edit","delete"]}}></SchemaItem><SchemaItem collapsible={false} name={"keyOrigins"} required={true} schemaName={"string[]"} qualifierMessage={"**Possible values:** [`created`, `imported`, `referenced`]"} schema={{"type":"array","description":"How keys come into a key store of this type. `created` (the create key operation), `imported` (the import key operation) and `referenced` (the create key operation with `providerKeyRef`). `local`, `created` and `imported` (only `created` with the backend `hsm`). `vault`, all three. `gcp-kms`, `aws-kms`, `azure-key-vault` and `dpod`, `created` and `referenced`. `csc`, `referenced`.","items":{"type":"string","enum":["created","imported","referenced"]},"example":["created","imported","referenced"]}}></SchemaItem><SchemaItem collapsible={false} name={"authenticationMethods"} required={true} schemaName={"string[]"} qualifierMessage={"**Possible values:** [`userpass`, `approle`, `cert`, `token`, `accessKey`, `clientSecret`, `clientCertificate`]"} schema={{"type":"array","nullable":true,"description":"The values of `authentication.method` in the settings of the type. `vault` `userpass`, `approle`, `cert`, `token`. `aws-kms` `accessKey`. `azure-key-vault` `clientSecret`, `clientCertificate`. `null` for the other types.","items":{"type":"string","enum":["userpass","approle","cert","token","accessKey","clientSecret","clientCertificate"]},"example":["userpass","approle","cert","token"]}}></SchemaItem><SchemaItem collapsible={false} name={"apiVersions"} required={true} schemaName={"string[]"} qualifierMessage={"**Possible values:** [`v1`, `v2`]"} schema={{"type":"array","nullable":true,"description":"The CSC API versions of the type `csc`. `null` for the other types.","items":{"type":"string","enum":["v1","v2"]},"example":null}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>providers</strong><span className={"openapi-schema__name"}> object[]</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The key store providers, in display order (the category, then `order`).

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier of the provider in the catalogue. Give it in `provider` when you create a key store.","example":"intesi"}}></SchemaItem><SchemaItem collapsible={false} name={"category"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`external-vault`, `hsm`, `qtsp`, `remote-signing`]"} schema={{"type":"string","description":"The group of the provider, the box of the dashboard. `external-vault`: OpenBao, HashiCorp Vault and the cloud key management services that the organisation runs or rents (Google Cloud KMS, AWS KMS, Azure Key Vault). `hsm`: hardware security modules of the organisation (Thales Luna Cloud HSM, DPoD). `qtsp`: known qualified trust service providers. `remote-signing`: any other service with the Cloud Signature Consortium (CSC) API; it never claims a qualified status.","enum":["external-vault","hsm","qtsp","remote-signing"],"example":"qtsp"}}></SchemaItem><SchemaItem collapsible={false} name={"type"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`vault`, `gcp-kms`, `aws-kms`, `azure-key-vault`, `dpod`, `csc`]"} schema={{"type":"string","description":"The key store type of the provider. Give the same value in `type` when you create a key store.","enum":["vault","gcp-kms","aws-kms","azure-key-vault","dpod","csc"],"example":"csc"}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Display name of the provider.","example":"Intesi Group"}}></SchemaItem><SchemaItem collapsible={false} name={"order"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"The position of the provider in its category. The list is in display order (the category, then `order`).","example":10}}></SchemaItem><SchemaItem collapsible={false} name={"logo"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"The key of a logo that the dashboard has (`openbao`, `hashicorp-vault`, `intesi`), else `null`. The providers `google-cloud-kms`, `aws-kms`, `azure-key-vault` and `thales-dpod` have `null`, and the dashboard shows a neutral icon.","example":"intesi"}}></SchemaItem><SchemaItem collapsible={false} name={"logoUrl"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"An https URL of the logo of a provider that the installation added, else `null`. Without a logo, the dashboard shows a neutral icon.","example":null}}></SchemaItem><SchemaItem collapsible={false} name={"protection"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`software`, `hsm-backed`, `dedicated-hsm`, `provider`]"} schema={{"type":"string","description":"Where the private keys are. `software`: in the software of the key management service (`openbao`, `hashicorp-vault`). `hsm-backed`: in a cloud KMS that keeps the keys in hardware security modules of the cloud provider (`google-cloud-kms`, `aws-kms`, `azure-key-vault`). `dedicated-hsm`: in a hardware security module partition of the organisation (`thales-dpod`). `provider`: at the provider (a QTSP decides). A key store can have another `protection` than its provider when its settings decide, for example Google Cloud KMS keys of the protection level `SOFTWARE`.","enum":["software","hsm-backed","dedicated-hsm","provider"],"example":"provider"}}></SchemaItem><SchemaItem collapsible={false} name={"qualified"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Shows `true` for a known qualified trust service provider (category `qtsp` only). Only the key stores of such a provider get a qualified status (`qualifiedStatus` of the key store, `trust` of the key).","example":true}}></SchemaItem><SchemaItem collapsible={false} name={"region"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"The country of the provider (ISO 3166-1 alpha-2), else `null`.","example":"IT"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>defaults</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Settings to fill in for a new key store of the provider. They are not secret. Built in, `openbao` and `hashicorp-vault` give `transitMount`, `google-cloud-kms` gives `protectionLevel` `HSM`, `azure-key-vault` gives `keyType` `EC-HSM`, `intesi` gives `cscUrl` and `apiVersion`, and `other-csc` gives `apiVersion`. An entry of the installation can also give `location` (`gcp-kms`) or `region` (`aws-kms`).

</div><SchemaItem name={"property name*"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>apiVersions</strong><span className={"openapi-schema__name"}> object[]</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__nullable"}>nullable</span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

For the type `csc`, the exact CSC API versions of the wallet. `null` for the other types.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"value"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`v1`, `v2`]"} schema={{"type":"string","description":"The value of `apiVersion` in the settings.","enum":["v1","v2"],"example":"v1"}}></SchemaItem><SchemaItem collapsible={false} name={"label"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The exact CSC API version.","example":"1.0.4.0"}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={false} name={"canAdd"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Shows `true` when the organisation can add a key store of the provider. `false` only when the organisation already has a key store of the provider, or (`thales-dpod`) the installation has no HSM signer.","example":true}}></SchemaItem><SchemaItem collapsible={false} name={"notAvailableReason"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"Why the organisation cannot add a key store of the provider, `The organisation already has a key store of this provider.` or `This installation has no HSM signer for DPoD partitions.` `null` when `canAdd` is `true`.","example":null}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"keyStoreTypes\": [\n    {\n      \"type\": \"vault\",\n      \"name\": \"External vault (OpenBao or HashiCorp Vault)\",\n      \"canAdd\": true,\n      \"protection\": null,\n      \"qscd\": false,\n      \"capabilities\": [\n        \"create\",\n        \"import\",\n        \"reference\",\n        \"sign\",\n        \"csr\",\n        \"certificateChain\",\n        \"listProviderKeys\",\n        \"test\",\n        \"edit\",\n        \"delete\"\n      ],\n      \"keyOrigins\": [\n        \"created\",\n        \"imported\",\n        \"referenced\"\n      ],\n      \"authenticationMethods\": [\n        \"userpass\",\n        \"approle\",\n        \"cert\",\n        \"token\"\n      ],\n      \"apiVersions\": null\n    }\n  ],\n  \"providers\": [\n    {\n      \"id\": \"intesi\",\n      \"category\": \"qtsp\",\n      \"type\": \"csc\",\n      \"name\": \"Intesi Group\",\n      \"order\": 10,\n      \"logo\": \"intesi\",\n      \"logoUrl\": null,\n      \"protection\": \"provider\",\n      \"qualified\": true,\n      \"region\": \"IT\",\n      \"defaults\": {\n        \"cscUrl\": \"https://services.test4mind.com\",\n        \"apiVersion\": \"v1\"\n      },\n      \"apiVersions\": [\n        {\n          \"value\": \"v1\",\n          \"label\": \"1.0.4.0\"\n        },\n        {\n          \"value\": \"v2\",\n          \"label\": \"2.2.0.0\"\n        }\n      ],\n      \"canAdd\": true,\n      \"notAvailableReason\": null\n    }\n  ]\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

Unauthorized

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Internal server error

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      