> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Credential template

> Create a template, similar to an NFT collection, for issuing verifiable credentials.

**API scope required** `credentials:template.create`


<Snippet file="alpha-api-note.mdx" />


## OpenAPI

````yaml post /v1-alpha1/credentials/templates/
openapi: 3.0.1
info:
  description: N/A
  version: 1.0.0
  title: Verifiable Credentials
  contact:
    name: Crossmint Verifiable Credentials APIs
    url: https://www.crossmint.com
    email: support@crossmint.com
servers:
  - url: https://staging.crossmint.com/api
    description: Staging environment (testnets)
  - url: https://www.crossmint.com/api
    description: Production environment (mainnets)
security:
  - apiKey: []
paths:
  /v1-alpha1/credentials/templates/:
    post:
      tags:
        - Verifiable Credentials
      summary: Create Credential template
      description: >
        Create a template, similar to an NFT collection, for issuing verifiable
        credentials.


        **API scope required** `credentials:template.create`
      operationId: vc-create-template
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                metadata:
                  type: object
                  additionalProperties: false
                  required:
                    - name
                    - image
                    - description
                  properties:
                    name:
                      type: string
                      description: 'The name of your collection (Max length: 32).'
                      example: Verifiable Credential
                      maxLength: 32
                    imageUrl:
                      type: string
                      description: >-
                        Direct link to your Verifiable Credential Template
                        image.
                      example: https://www.crossmint.com/assets/crossmint/logo.png
                    description:
                      type: string
                      description: 'A brief description of credential (Max length: 64).'
                      example: The owner of this credential is authorized.
                      maxLength: 64
                chain:
                  description: >-
                    The chain to mint the nft on. All crossmint supported EVM
                    chains are compatible.
                  type: string
                  enum:
                    - polygon
                    - optimism
                    - base
                    - etc...
                credentials:
                  description: Credentials parameters
                  type: object
                  additionalProperties: false
                  properties:
                    type:
                      type: string
                      description: The type of credentials inside the collection.
                      example: >-
                        crossmint:5fe6040e-07a1-48bb-97a3-b588a7e927d2:CourseCompletionCertificate
                    storage:
                      type: string
                      description: Where to store the credential
                      enum:
                        - crossmint
                        - crossmint-private
                        - decentralized-ipfs
                        - delegated
                    delegatedStorageEndpoint:
                      type: string
                      description: >-
                        Only if storage is 'delegated', the endpoint to retrieve
                        the credential from
                      example: unknown
                    encryption:
                      type: string
                      description: >-
                        Whether to encrypt the credential, ensuring data
                        privacy. Only the subject and issuer have the
                        authentication to decrypt the credential.
                      enum:
                        - crossmint-recoverable
                        - decentralized-lit
                        - none
                    delegatedSignature:
                      type: object
                      additionalProperties: false
                      description: >-
                        Issuer information, fill only if using `delegated`
                        storage.
                      default: undefined
                      example: undefined
                      properties:
                        did:
                          type: string
                          description: The issuer's did
                          example: did:polygon:0x123456789
                        endpoint:
                          type: string
                          description: The issuer's endpoint to sign credentials
                          example: https://issuer.com/sign
                        token:
                          type: string
                          description: Token used for auth on the issuer endpoint
                          example: abcd
                      required:
                        - did
                        - endpoint
                        - token
                  required:
                    - type
                    - storage
                    - encryption
              required:
                - metadata
                - chain
                - credentials
      responses:
        '200':
          description: >-
            Success. Refer to the standard create collection response for more
            details.
          content:
            application/json:
              schema:
                type: string
                example: >-
                  Success. Refer to the standard nft create collection response
                  for more details.
        '400':
          description: Bad Request
          content:
            error:
              examples:
                InvalidCustomType:
                  description: Invalid Custom type
                ChainNotSupported:
                  description: Chain not supported
                SFTsNotSupported:
                  description: SFTs not supported
                CredentialsNotSupported:
                  description: Credentials not supported on this project
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-KEY
      description: >-
        Key obtained from the Crossmint developer console, reflecting the API
        scope granted.

````