---
title: "POST /v1alpha1/id/generate"
method: POST
path: "/v1alpha1/id/generate"
tags: ["IdService"]
---

# POST /v1alpha1/id/generate

`POST /v1alpha1/id/generate`

Generate an Id and its corresponding ResolverMetadata for the specified Issuer

## Request body

- GenerateRequest — Generate an Id and its corresponding ResolverMetadata for the specified Issuer For external IdPs, the Issuer should be provided with a Proof of ownership of the Issuer's provided id
  - `issuer` Issuer — A Identity Issuer
    - `organization` string — The organization of the issuer
    - `subOrganization` string — The sub organization of the issuer
    - `commonName` string — The common name of the issuer Could be a FQDN or a FQDA
    - `verified` boolean — This will be set to true when issuer provides a valid proof of ownership of the common name on registration
    - `publicKey` Jwk — JWK represents: - a JSON Web Key (JWK) with the respective fields specific to RSA algorithms. - a Quantum JSON Web Key (QJWK) with the respective fields specific to AKP algorithms.
      - `alg` string — ALG represents the algorithm intended for use with the key. Example algorithms for Post-Quantum ML-DSA family: "ML-DSA-44", "ML-DSA-65", "ML-DSA-87". Some example algorithms are "RS256", "RS384", "RS512" for RSA algorithms.
      - `kty` string — KTY represents the key type parameter. It specifies the family of quantum algorithms used with the key, such as "AKP" for post quantum algorithms or "RSA" for non quantum algorithms.
      - `use` string — Use represents the intended use of the key. Some example values are "enc" and "sig".
      - `kid` string — KID represents the key ID. It is used to match a specific key.
      - `pub` string — The public key for the AKP kty.
      - `priv` string — The private key for the AKP kty.
      - `seed` string — Seed used to derive keys for ML-DSA alg.
      - `e` string — The exponent for the RSA public key.
      - `n` string — The modulus for the RSA public key.
      - `d` string — The private exponent for the RSA kty.
      - `p` string — The first prime factor for the RSA private key.
      - `q` string — The second prime factor for the RSA private key.
      - `dp` string — The first factor CRT exponent for the RSA private key.
      - `dq` string — The second factor CRT exponent for the RSA private key.
      - `qi` string — The first CRT coefficient for the RSA private key.
    - `privateKey` Jwk — JWK represents: - a JSON Web Key (JWK) with the respective fields specific to RSA algorithms. - a Quantum JSON Web Key (QJWK) with the respective fields specific to AKP algorithms.
      - `alg` string — ALG represents the algorithm intended for use with the key. Example algorithms for Post-Quantum ML-DSA family: "ML-DSA-44", "ML-DSA-65", "ML-DSA-87". Some example algorithms are "RS256", "RS384", "RS512" for RSA algorithms.
      - `kty` string — KTY represents the key type parameter. It specifies the family of quantum algorithms used with the key, such as "AKP" for post quantum algorithms or "RSA" for non quantum algorithms.
      - `use` string — Use represents the intended use of the key. Some example values are "enc" and "sig".
      - `kid` string — KID represents the key ID. It is used to match a specific key.
      - `pub` string — The public key for the AKP kty.
      - `priv` string — The private key for the AKP kty.
      - `seed` string — Seed used to derive keys for ML-DSA alg.
      - `e` string — The exponent for the RSA public key.
      - `n` string — The modulus for the RSA public key.
      - `d` string — The private exponent for the RSA kty.
      - `p` string — The first prime factor for the RSA private key.
      - `q` string — The second prime factor for the RSA private key.
      - `dp` string — The first factor CRT exponent for the RSA private key.
      - `dq` string — The second factor CRT exponent for the RSA private key.
      - `qi` string — The first CRT coefficient for the RSA private key.
    - `authType` 'ISSUER_AUTH_TYPE_UNSPECIFIED' | 'ISSUER_AUTH_TYPE_IDP' | 'ISSUER_AUTH_TYPE_SELF', enum — This field specifies the authentication mechanism used by the issuer. It determines whether the issuer uses an external Identity Provider (IDP) or a self-issued key for authentication.
  - `proof` Proof — A data integrity proof provides information about the proof mechanism, parameters required to verify that proof, and the proof value itself.
    - `type` string — The type of the proof
    - `proofPurpose` string — The proof purpose
    - `proofValue` string — The proof value

## Response `200`

OK

- GenerateResponse — Returns the Generated Id and its corresponding ResolverMetadata
  - `resolverMetadata` ResolverMetadata — ResolverMetadata represents a set of data describing the ID including mechanisms such as: - cryptographic public keys - used to authenticate itself and prove association with the ID - service - ways of communicating with the node that published the document A ResolverMetadata can be retrieved by resolving an ID.
    - `id` string — The ID The metadata below is related as claims to the ID
    - `verificationMethod` VerificationMethod[] — VerificationMethod is a list of cryptographic public keys, which can be used to authenticate or authorize interactions with the entities represented by the ID.
      - `id` string — A unique id of the verification method.
      - `publicKeyJwk` Jwk — JWK represents: - a JSON Web Key (JWK) with the respective fields specific to RSA algorithms. - a Quantum JSON Web Key (QJWK) with the respective fields specific to AKP algorithms.
        - `alg` string — ALG represents the algorithm intended for use with the key. Example algorithms for Post-Quantum ML-DSA family: "ML-DSA-44", "ML-DSA-65", "ML-DSA-87". Some example algorithms are "RS256", "RS384", "RS512" for RSA algorithms.
        - `kty` string — KTY represents the key type parameter. It specifies the family of quantum algorithms used with the key, such as "AKP" for post quantum algorithms or "RSA" for non quantum algorithms.
        - `use` string — Use represents the intended use of the key. Some example values are "enc" and "sig".
        - `kid` string — KID represents the key ID. It is used to match a specific key.
        - `pub` string — The public key for the AKP kty.
        - `priv` string — The private key for the AKP kty.
        - `seed` string — Seed used to derive keys for ML-DSA alg.
        - `e` string — The exponent for the RSA public key.
        - `n` string — The modulus for the RSA public key.
        - `d` string — The private exponent for the RSA kty.
        - `p` string — The first prime factor for the RSA private key.
        - `q` string — The second prime factor for the RSA private key.
        - `dp` string — The first factor CRT exponent for the RSA private key.
        - `dq` string — The second factor CRT exponent for the RSA private key.
        - `qi` string — The first CRT coefficient for the RSA private key.
    - `service` Service[] — Service is used in ResolverMetadatas to express ways of communicating with the node that published the document.
      - `serviceEndpoint` string[] — ServiceEndpoint is a network address, such as an HTTP URL, of the node.
    - `assertionMethod` string[] — AssertionMethod is used to specify how the entity represented by the ID is expected to express claims, such as for the purposes of issuing a VCs.
    - `controller` string — A controller is an entity that is authorized to make changes to a Resolver Metadata.

## Other responses

- `default` — Default error response

---

[API](https://skmtc.net/agntcy/apis/identity-node.md) · [All operations](https://skmtc.net/agntcy/apis/identity-node/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/agntcy/identity-node/versions/bf6df0a975b1/schema)
