Lit Protocol Account Management API

The Account Management API from Lit Protocol — 28 operation(s) for account management.

OpenAPI Specification

lit-protocol-account-management-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: lit-api-server Account Management API
  description: Lit Express Node API Server
  version: 0.1.0
servers:
- url: /core/v1/
  description: Lit Protocol Express API (Core v1)
tags:
- name: Account Management
paths:
  /list_api_keys:
    get:
      tags:
      - Account Management
      operationId: list_api_keys
      parameters:
      - name: page_number
        in: query
        required: true
        schema:
          type: integer
          format: uint64
          minimum: 0.0
      - name: page_size
        in: query
        required: true
        schema:
          type: integer
          format: uint64
          minimum: 0.0
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - type: array
                  items:
                    $ref: '#/components/schemas/ApiKeyItem'
                - $ref: '#/components/schemas/ErrMessage'
  /new_account:
    post:
      tags:
      - Account Management
      operationId: new_account
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewAccountRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/NewAccountResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /convert_to_chain_secured_account:
    post:
      tags:
      - Account Management
      operationId: convert_to_chain_secured_account
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConvertToChainSecuredAccountRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /account_exists:
    get:
      tags:
      - Account Management
      operationId: account_exists
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - type: boolean
                - $ref: '#/components/schemas/ErrMessage'
  /create_wallet:
    get:
      tags:
      - Account Management
      operationId: create_wallet
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/CreateWalletResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /create_wallet_with_signature:
    post:
      tags:
      - Account Management
      operationId: create_wallet_with_signature
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWalletWithSignatureRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/CreateWalletWithSignatureResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /get_lit_action_ipfs_id:
    post:
      tags:
      - Account Management
      operationId: get_lit_action_ipfs_id
      requestBody:
        content:
          application/json:
            schema:
              type: string
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - type: string
                - $ref: '#/components/schemas/ErrMessage'
  /add_group:
    post:
      tags:
      - Account Management
      operationId: add_group
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddGroupRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AddGroupResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /remove_group:
    post:
      tags:
      - Account Management
      operationId: remove_group
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveGroupRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /add_action:
    post:
      tags:
      - Account Management
      operationId: add_action
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddActionRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /delete_action:
    post:
      tags:
      - Account Management
      operationId: delete_action
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteActionRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /add_action_to_group:
    post:
      tags:
      - Account Management
      operationId: add_action_to_group
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddActionToGroupRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /add_pkp_to_group:
    post:
      tags:
      - Account Management
      operationId: add_pkp_to_group
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPkpToGroupRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /remove_pkp_from_group:
    post:
      tags:
      - Account Management
      operationId: remove_pkp_from_group
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemovePkpFromGroupRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /add_usage_api_key:
    post:
      tags:
      - Account Management
      operationId: add_usage_api_key
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddUsageApiKeyRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AddUsageApiKeyResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /add_usage_api_key_with_signature:
    post:
      tags:
      - Account Management
      operationId: add_usage_api_key_with_signature
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddUsageApiKeyWithSignatureRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AddUsageApiKeyWithSignatureResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /update_usage_api_key:
    post:
      tags:
      - Account Management
      operationId: update_usage_api_key
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUsageApiKeyRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /remove_usage_api_key:
    post:
      tags:
      - Account Management
      operationId: remove_usage_api_key
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveUsageApiKeyRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /update_group:
    post:
      tags:
      - Account Management
      operationId: update_group
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGroupRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /remove_action_from_group:
    post:
      tags:
      - Account Management
      operationId: remove_action_from_group
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveActionFromGroupRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /update_action_metadata:
    post:
      tags:
      - Account Management
      operationId: update_action_metadata
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateActionMetadataRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /update_usage_api_key_metadata:
    post:
      tags:
      - Account Management
      operationId: update_usage_api_key_metadata
      parameters:
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUsageApiKeyMetadataRequest'
        required: true
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/AccountOpResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /list_groups:
    get:
      tags:
      - Account Management
      operationId: list_groups
      parameters:
      - name: page_number
        in: query
        required: true
        schema:
          type: integer
          format: uint64
          minimum: 0.0
      - name: page_size
        in: query
        required: true
        schema:
          type: integer
          format: uint64
          minimum: 0.0
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - type: array
                  items:
                    $ref: '#/components/schemas/ListMetadataItem'
                - $ref: '#/components/schemas/ErrMessage'
  /list_wallets:
    get:
      tags:
      - Account Management
      operationId: list_wallets
      parameters:
      - name: page_number
        in: query
        required: true
        schema:
          type: integer
          format: uint64
          minimum: 0.0
      - name: page_size
        in: query
        required: true
        schema:
          type: integer
          format: uint64
          minimum: 0.0
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - type: array
                  items:
                    $ref: '#/components/schemas/WalletItem'
                - $ref: '#/components/schemas/ErrMessage'
  /list_wallets_in_group:
    get:
      tags:
      - Account Management
      operationId: list_wallets_in_group
      parameters:
      - name: group_id
        in: query
        required: true
        schema:
          type: integer
          format: uint64
          minimum: 0.0
      - name: page_number
        in: query
        required: true
        schema:
          type: integer
          format: uint64
          minimum: 0.0
      - name: page_size
        in: query
        required: true
        schema:
          type: integer
          format: uint64
          minimum: 0.0
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - type: array
                  items:
                    $ref: '#/components/schemas/WalletItem'
                - $ref: '#/components/schemas/ErrMessage'
  /list_actions:
    get:
      tags:
      - Account Management
      operationId: list_actions
      parameters:
      - name: group_id
        in: query
        schema:
          type: string
          nullable: true
      - name: page_number
        in: query
        required: true
        schema:
          type: integer
          format: uint64
          minimum: 0.0
      - name: page_size
        in: query
        required: true
        schema:
          type: integer
          format: uint64
          minimum: 0.0
      - name: X-Api-Key
        in: header
        description: 'Account or usage API key. Alternatively use Authorization: Bearer <key>.'
        required: true
        schema:
          type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - type: array
                  items:
                    $ref: '#/components/schemas/ListMetadataItem'
                - $ref: '#/components/schemas/ErrMessage'
  /get_node_chain_config:
    get:
      tags:
      - Account Management
      operationId: get_node_chain_config
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/NodeChainConfigResponse'
                - $ref: '#/components/schemas/ErrMessage'
  /get_chain_config_keys:
    get:
      tags:
      - Account Management
      operationId: get_chain_config_keys
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ChainConfigKeysResponse'
                - $ref: '#/components/schemas/ErrMessage'
components:
  schemas:
    AddUsageApiKeyRequest:
      description: Request for add_usage_api_key. expiration and balance as decimal strings (e.g. unix timestamp, wei). API key via header.
      type: object
      required:
      - add_pkp_to_groups
      - can_create_groups
      - can_create_pkps
      - can_delete_groups
      - description
      - execute_in_groups
      - manage_ipfs_ids_in_groups
      - name
      - remove_pkp_from_groups
      properties:
        name:
          type: string
        description:
          type: string
        can_create_groups:
          type: boolean
        can_delete_groups:
          type: boolean
        can_create_pkps:
          type: boolean
        manage_ipfs_ids_in_groups:
          description: Group IDs to grant manage-IPFS-IDs permission. 0 is wildcard for all groups.
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
        add_pkp_to_groups:
          description: Group IDs to grant add-PKP permission. 0 is wildcard for all groups.
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
        remove_pkp_from_groups:
          description: Group IDs to grant remove-PKP permission. 0 is wildcard for all groups.
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
        execute_in_groups:
          description: Group IDs to grant execute permission. 0 is wildcard for all groups.
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
    ApiKeyItem:
      description: One item from list_api_keys (AccountConfig.sol UsageApiKey).
      type: object
      required:
      - api_key_hash
      - balance
      - can_add_pkp_to_groups
      - can_create_groups
      - can_create_pkps
      - can_delete_groups
      - can_execute_in_groups
      - can_manage_ipfs_ids_in_groups
      - can_remove_pkp_from_groups
      - description
      - expiration
      - id
      - name
      properties:
        id:
          type: string
        api_key_hash:
          type: string
        name:
          type: string
        description:
          type: string
        expiration:
          type: string
        balance:
          type: integer
          format: uint64
          minimum: 0.0
        can_create_groups:
          type: boolean
        can_delete_groups:
          type: boolean
        can_create_pkps:
          type: boolean
        can_manage_ipfs_ids_in_groups:
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
        can_add_pkp_to_groups:
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
        can_remove_pkp_from_groups:
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
        can_execute_in_groups:
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
    AddUsageApiKeyResponse:
      description: Response for account config operations (add_group, add_pkp_to_group, remove_pkp_from_group, add_usage_api_key, remove_usage_api_key).
      type: object
      required:
      - success
      - usage_api_key
      properties:
        success:
          type: boolean
        usage_api_key:
          type: string
    AddGroupResponse:
      description: Response for add_group, includes the on-chain group ID.
      type: object
      required:
      - group_id
      - success
      properties:
        success:
          type: boolean
        group_id:
          type: string
    DeleteActionRequest:
      description: Request for delete_action. hashed_cid is already a keccak256 hash (hex string). API key via header.
      type: object
      required:
      - hashed_cid
      properties:
        hashed_cid:
          description: Already-hashed CID for the action (0x-prefixed hex string).
          type: string
    ChainConfigKeysResponse:
      description: GET /get_chain_config_keys — names of every supported ConfigKeys variant.
      type: object
      required:
      - keys
      properties:
        keys:
          type: array
          items:
            type: string
    CreateWalletWithSignatureRequest:
      description: 'ChainSecured wallet creation. The client signs EIP-712 typed data with their wallet; the server verifies the signature, mints a PKP via DStack MPC, and returns the new wallet address + derivation path so the client can register it on-chain via `registerWalletDerivation`.


        The server does not maintain a nonce store. Replay protection is a ±5-minute window on the `issuedAt` field plus the per-flow primaryType binding — worst-case replay still just mints an extra unregistered PKP (compute cost only; registration requires a separate wallet signature on-chain).'
      type: object
      required:
      - signature
      - typed_data
      properties:
        typed_data:
          description: 'EIP-712 typed-data object the wallet signed. Must use `primaryType: "CreateWallet"` and the canonical schema (see `core::eip712`).'
        signature:
          description: 65-byte 0x-prefixed signature (r||s||v) over the EIP-712 digest of `typed_data`.
          type: string
    AddUsageApiKeyWithSignatureRequest:
      description: 'ChainSecured usage-key minting. Mirrors `CreateWalletWithSignatureRequest`: the user proves wallet ownership with an EIP-712 typed-data signature, the server mints a usage-key wallet via DStack MPC and returns the secret (as the usage API key) plus address + derivation path. The client follows up with on-chain `registerWalletDerivation` and `setUsageApiKey` signed by their admin wallet — only the admin wallet of a ChainSecured account can call `setUsageApiKey` (see AppStorage.accountExistsAndIsMutable).'
      type: object
      required:
      - signature
      - typed_data
      properties:
        typed_data:
          description: 'EIP-712 typed-data object the wallet signed. Must use `primaryType: "AddUsageApiKey"` and the canonical schema (see `core::eip712`).'
        signature:
          description: 65-byte 0x-prefixed signature (r||s||v) over the EIP-712 digest of `typed_data`.
          type: string
    UpdateUsageApiKeyRequest:
      description: Request for update_usage_api_key. Updates all permissions and metadata on an existing usage API key. API key via header.
      type: object
      required:
      - add_pkp_to_groups
      - can_create_groups
      - can_create_pkps
      - can_delete_groups
      - description
      - execute_in_groups
      - manage_ipfs_ids_in_groups
      - name
      - remove_pkp_from_groups
      - usage_api_key
      properties:
        usage_api_key:
          type: string
        name:
          type: string
        description:
          type: string
        can_create_groups:
          type: boolean
        can_delete_groups:
          type: boolean
        can_create_pkps:
          type: boolean
        manage_ipfs_ids_in_groups:
          description: Group IDs to grant manage-IPFS-IDs permission. 0 is wildcard for all groups.
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
        add_pkp_to_groups:
          description: Group IDs to grant add-PKP permission. 0 is wildcard for all groups.
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
        remove_pkp_from_groups:
          description: Group IDs to grant remove-PKP permission. 0 is wildcard for all groups.
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
        execute_in_groups:
          description: Group IDs to grant execute permission. 0 is wildcard for all groups.
          type: array
          items:
            type: integer
            format: uint64
            minimum: 0.0
    CreateWalletResponse:
      type: object
      required:
      - wallet_address
      properties:
        wallet_address:
          type: string
    NodeChainConfigResponse:
      type: object
      required:
      - chain_id
      - chain_name
      - contract_address
      - is_evm
      - testnet
      - token
      properties:
        chain_name:
          type: string
        chain_id:
          type: integer
          format: uint64
          minimum: 0.0
        is_evm:
          type: boolean
        testnet:
          type: boolean
        token:
          type: string
        contract_address:
          type: string
    NewAccountResponse:
      type: object
      required:
      - api_key
      - wallet_address
      properties:
        api_key:
          type: string
        wallet_address:
          type: string
    NewAccountRequest:
      type: object
      required:
      - account_description
      - account_name
      properties:
        account_name:
          type: string
        account_description:
          type: string
        email:
          description: Optional email address — forwarded to Stripe for the customer record.  Not stored on-chain.
          default: null
          type: string
          nullable: true
    AccountOpResponse:
      description: Response for account config operations (add_pkp_to_group, remove_pkp_from_group, add_usage_api_key, remove_usage_api_key).
      type: object
      required:
      - success
      properties:
        success:
          type: boolean
    AddPkpToGroupRequest:
      type: object
      required:
      - group_id
      - pkp_id
      properties:
        group_id:
          description: Group ID (decimal or hex string).
          type: integer
          format: uint64
          minimum: 0.0
        pkp_id:
          type: string
    UpdateUsageApiKeyMetadataRequest:
      description: Request for update_usage_api_key_metadata (AccountConfig.updateUsageApiKeyMetadata). API key via header.
      type: object
      required:
      - description
      - name
      - usage_api_key
      properties:
        usage_api_key:
          type: string
        name:
          type: string
        description:
          type: string
    AddUsageApiKeyWithSignatureResponse:
      description: Returned by `/add_usage_api_key_with_signature`. The client must follow up with on-chain `registerWalletDerivation(adminHash, wallet_address, derivation_path, name, description)` and `setUsageApiKey(adminHash, keccak256(usage_api_key), …)` — both signed by the admin wallet — to attach the usage key to the ChainSecured account.
      type: object
      required:
      - derivation_path
      - usage_api_key
      - wallet_address
      properties:
        usage_api_key:
          description: 'Base64-encoded 32-byte secret. Send as `X-Api-Key` / `Authorization: Bearer …` for usage requests; pass `keccak256(this)` to `setUsageApiKey`.'
          type: string
        wallet_address:
          description: 0x-prefixed lowercase hex EVM address of the minted PKP wallet.
          type: string
        derivation_path:
          description: 0x-prefixed lowercase hex (uint256). Pass through verbatim to `registerWalletDerivation`'s `derivationPath` arg.
          type: string
    ErrMessage:
      type: string
    WalletItem:
      description: One item from list_groups, list

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lit-protocol/refs/heads/main/openapi/lit-protocol-account-management-api-openapi.yml