> ## Documentation Index
> Fetch the complete documentation index at: https://turnkey-0e7c1f5b-bc-add-sdk-typedoc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Export Wallet Account

> Exports a Wallet Account



## OpenAPI

````yaml post /public/v1/submit/export_wallet_account
openapi: 3.0.1
info:
  title: API Reference
  description: Review our [API Introduction](../api-introduction) to get started.
  contact: {}
  version: '1.0'
servers:
  - url: https://api.turnkey.com/
security:
  - ApiKeyAuth: []
  - AuthenticatorAuth: []
tags:
  - name: Organizations
    description: >-
      An Organization is the highest level of hierarchy in Turnkey. It can
      contain many Users, Private Keys, and Policies managed by a Root Quorum.
      The Root Quorum consists of a set of Users with a consensus threshold.
      This consensus threshold must be reached by Quorum members in order for
      any actions to take place.


      See [Root Quorum](../concepts/users/root-quorum) for more information
  - name: Invitations
    description: >-
      Invitations allow you to invite Users into your Organization via email.
      Alternatively, Users can be added directly without an Invitation if their
      ApiKey or Authenticator credentials are known ahead of time.


      See [Users](./api#tag/Users) for more information
  - name: Policies
    description: >-
      Policies allow for deep customization of the security of your
      Organization. They can be used to grant permissions or restrict usage of
      Users and Private Keys. The Policy Engine analyzes all of your Policies on
      each request to determine whether an Activity is allowed.


      See [Policy Overview](../managing-policies/overview) for more information
  - name: Wallets
    description: >-
      Wallets contain collections of deterministically generated cryptographic
      public / private key pairs that share a common seed. Turnkey securely
      holds the common seed, but only you can access it. In most cases, Wallets
      should be preferred over Private Keys since they can be represented by a
      mnemonic phrase, used across a variety of cryptographic curves, and can
      derive many addresses.


      Derived addresses can be used to create digital signatures using the
      corresponding underlying private key. See [Signing](./api#tag/Signing) for
      more information
  - name: Signing
    description: >-
      Signers allow you to create digital signatures. Signatures are used to
      validate the authenticity and integrity of a digital message. Turnkey
      makes it easy to produce signatures by allowing you to sign with an
      address. If Turnkey doesn't yet support an address format you need, you
      can generate and sign with the public key instead by using the address
      format `ADDRESS_FORMAT_COMPRESSED`.
  - name: Private Keys
    description: >-
      Private Keys are cryptographic public / private key pairs that can be used
      for cryptocurrency needs or more generalized encryption. Turnkey securely
      holds all private key materials for you, but only you can access them.


      The Private Key ID or any derived address can be used to create digital
      signatures. See [Signing](./api#tag/Signing) for more information
  - name: Private Key Tags
    description: >-
      Private Key Tags allow you to easily group and permission Private Keys
      through Policies.
  - name: Users
    description: >-
      Users are responsible for any action taken within an Organization. They
      can have ApiKey or Auuthenticator credentials, allowing you to onboard
      teammates to the Organization, or create API-only Users to run as part of
      your infrastructure.
  - name: User Tags
    description: >-
      User Key Tags allow you to easily group and permission Users through
      Policies.
  - name: Authenticators
    description: >-
      Authenticators are WebAuthN hardware devices, such as a Macbook TouchID or
      Yubikey, that can be used to authenticate requests.
  - name: API Keys
    description: >-
      API Keys are used to authenticate requests


      See our [CLI](https://github.com/tkhq/tkcli) for instructions on
      generating API Keys
  - name: Activities
    description: >-
      Activities encapsulate all the possible actions that can be taken with
      Turnkey. Some examples include adding a new user, creating a private key,
      and signing a transaction.


      Activities that modify your Organization are processed asynchronously. To
      confirm processing is complete and retrieve the Activity results, these
      activities must be polled until that status has been updated to a
      finalized state: `COMPLETED` when the activity is successful or `FAILED`
      when the activity has failed
  - name: Consensus
    description: >-
      Policies can enforce consensus requirements for Activities. For example,
      adding a new user requires two admins to approve the request.


      Activities that have been proposed, but don't yet meet the Consesnsus
      requirements will have the status: `REQUIRES_CONSENSUS`. Activities in
      this state can be approved or rejected using the unique fingerprint
      generated when an Activity is created.
paths:
  /public/v1/submit/export_wallet_account:
    post:
      tags:
        - Wallets
      summary: Export Wallet Account
      description: Exports a Wallet Account
      operationId: ExportWalletAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExportWalletAccountRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponse'
components:
  schemas:
    ExportWalletAccountRequest:
      required:
        - organizationId
        - parameters
        - timestampMs
        - type
      type: object
      properties:
        type:
          type: string
          enum:
            - ACTIVITY_TYPE_EXPORT_WALLET_ACCOUNT
        timestampMs:
          type: string
          description: >-
            Timestamp (in milliseconds) of the request, used to verify liveness
            of user requests.
        organizationId:
          type: string
          description: Unique identifier for a given Organization.
        parameters:
          $ref: '#/components/schemas/ExportWalletAccountIntent'
    ActivityResponse:
      required:
        - activity
      type: object
      properties:
        activity:
          $ref: '#/components/schemas/Activity'
    ExportWalletAccountIntent:
      required:
        - address
        - targetPublicKey
      type: object
      properties:
        address:
          type: string
          description: Address to identify Wallet Account.
        targetPublicKey:
          type: string
          description: >-
            Client-side public key generated by the user, to which the export
            bundle will be encrypted.
    Activity:
      required:
        - canApprove
        - canReject
        - createdAt
        - fingerprint
        - id
        - intent
        - organizationId
        - result
        - status
        - type
        - updatedAt
        - votes
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for a given Activity object.
        organizationId:
          type: string
          description: Unique identifier for a given Organization.
        status:
          $ref: '#/components/schemas/ActivityStatus'
        type:
          $ref: '#/components/schemas/ActivityType'
        intent:
          $ref: '#/components/schemas/Intent'
        result:
          $ref: '#/components/schemas/Result'
        votes:
          type: array
          description: >-
            A list of objects representing a particular User's approval or
            rejection of a Consensus request, including all relevant metadata.
          items:
            $ref: '#/components/schemas/Vote'
        fingerprint:
          type: string
          description: An artifact verifying a User's action.
        canApprove:
          type: boolean
        canReject:
          type: boolean
        createdAt:
          $ref: '#/components/schemas/external.data.v1.Timestamp'
        updatedAt:
          $ref: '#/components/schemas/external.data.v1.Timestamp'
        failure:
          $ref: '#/components/schemas/Status'
    ActivityStatus:
      type: string
      enum:
        - ACTIVITY_STATUS_CREATED
        - ACTIVITY_STATUS_PENDING
        - ACTIVITY_STATUS_COMPLETED
        - ACTIVITY_STATUS_FAILED
        - ACTIVITY_STATUS_CONSENSUS_NEEDED
        - ACTIVITY_STATUS_REJECTED
    ActivityType:
      type: string
      enum:
        - ACTIVITY_TYPE_CREATE_API_KEYS
        - ACTIVITY_TYPE_CREATE_USERS
        - ACTIVITY_TYPE_CREATE_PRIVATE_KEYS
        - ACTIVITY_TYPE_SIGN_RAW_PAYLOAD
        - ACTIVITY_TYPE_CREATE_INVITATIONS
        - ACTIVITY_TYPE_ACCEPT_INVITATION
        - ACTIVITY_TYPE_CREATE_POLICY
        - ACTIVITY_TYPE_DISABLE_PRIVATE_KEY
        - ACTIVITY_TYPE_DELETE_USERS
        - ACTIVITY_TYPE_DELETE_API_KEYS
        - ACTIVITY_TYPE_DELETE_INVITATION
        - ACTIVITY_TYPE_DELETE_ORGANIZATION
        - ACTIVITY_TYPE_DELETE_POLICY
        - ACTIVITY_TYPE_CREATE_USER_TAG
        - ACTIVITY_TYPE_DELETE_USER_TAGS
        - ACTIVITY_TYPE_CREATE_ORGANIZATION
        - ACTIVITY_TYPE_SIGN_TRANSACTION
        - ACTIVITY_TYPE_APPROVE_ACTIVITY
        - ACTIVITY_TYPE_REJECT_ACTIVITY
        - ACTIVITY_TYPE_DELETE_AUTHENTICATORS
        - ACTIVITY_TYPE_CREATE_AUTHENTICATORS
        - ACTIVITY_TYPE_CREATE_PRIVATE_KEY_TAG
        - ACTIVITY_TYPE_DELETE_PRIVATE_KEY_TAGS
        - ACTIVITY_TYPE_SET_PAYMENT_METHOD
        - ACTIVITY_TYPE_ACTIVATE_BILLING_TIER
        - ACTIVITY_TYPE_DELETE_PAYMENT_METHOD
        - ACTIVITY_TYPE_CREATE_POLICY_V2
        - ACTIVITY_TYPE_CREATE_POLICY_V3
        - ACTIVITY_TYPE_CREATE_API_ONLY_USERS
        - ACTIVITY_TYPE_UPDATE_ROOT_QUORUM
        - ACTIVITY_TYPE_UPDATE_USER_TAG
        - ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG
        - ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2
        - ACTIVITY_TYPE_CREATE_ORGANIZATION_V2
        - ACTIVITY_TYPE_CREATE_USERS_V2
        - ACTIVITY_TYPE_ACCEPT_INVITATION_V2
        - ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION
        - ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V2
        - ACTIVITY_TYPE_UPDATE_ALLOWED_ORIGINS
        - ACTIVITY_TYPE_CREATE_PRIVATE_KEYS_V2
        - ACTIVITY_TYPE_UPDATE_USER
        - ACTIVITY_TYPE_UPDATE_POLICY
        - ACTIVITY_TYPE_SET_PAYMENT_METHOD_V2
        - ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V3
        - ACTIVITY_TYPE_CREATE_WALLET
        - ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS
        - ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY
        - ACTIVITY_TYPE_RECOVER_USER
        - ACTIVITY_TYPE_SET_ORGANIZATION_FEATURE
        - ACTIVITY_TYPE_REMOVE_ORGANIZATION_FEATURE
        - ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2
        - ACTIVITY_TYPE_SIGN_TRANSACTION_V2
        - ACTIVITY_TYPE_EXPORT_PRIVATE_KEY
        - ACTIVITY_TYPE_EXPORT_WALLET
        - ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V4
        - ACTIVITY_TYPE_EMAIL_AUTH
        - ACTIVITY_TYPE_EXPORT_WALLET_ACCOUNT
        - ACTIVITY_TYPE_INIT_IMPORT_WALLET
        - ACTIVITY_TYPE_IMPORT_WALLET
        - ACTIVITY_TYPE_INIT_IMPORT_PRIVATE_KEY
        - ACTIVITY_TYPE_IMPORT_PRIVATE_KEY
        - ACTIVITY_TYPE_CREATE_POLICIES
        - ACTIVITY_TYPE_SIGN_RAW_PAYLOADS
        - ACTIVITY_TYPE_CREATE_READ_ONLY_SESSION
        - ACTIVITY_TYPE_CREATE_OAUTH_PROVIDERS
        - ACTIVITY_TYPE_DELETE_OAUTH_PROVIDERS
        - ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V5
        - ACTIVITY_TYPE_OAUTH
        - ACTIVITY_TYPE_CREATE_API_KEYS_V2
        - ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION
        - ACTIVITY_TYPE_EMAIL_AUTH_V2
        - ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V6
        - ACTIVITY_TYPE_DELETE_PRIVATE_KEYS
        - ACTIVITY_TYPE_DELETE_WALLETS
        - ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION_V2
        - ACTIVITY_TYPE_DELETE_SUB_ORGANIZATION
        - ACTIVITY_TYPE_INIT_OTP_AUTH
        - ACTIVITY_TYPE_OTP_AUTH
        - ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V7
        - ACTIVITY_TYPE_UPDATE_WALLET
    Intent:
      type: object
      properties:
        createOrganizationIntent:
          $ref: '#/components/schemas/CreateOrganizationIntent'
        createAuthenticatorsIntent:
          $ref: '#/components/schemas/CreateAuthenticatorsIntent'
        createUsersIntent:
          $ref: '#/components/schemas/CreateUsersIntent'
        createPrivateKeysIntent:
          $ref: '#/components/schemas/CreatePrivateKeysIntent'
        signRawPayloadIntent:
          $ref: '#/components/schemas/SignRawPayloadIntent'
        createInvitationsIntent:
          $ref: '#/components/schemas/CreateInvitationsIntent'
        acceptInvitationIntent:
          $ref: '#/components/schemas/AcceptInvitationIntent'
        createPolicyIntent:
          $ref: '#/components/schemas/CreatePolicyIntent'
        disablePrivateKeyIntent:
          $ref: '#/components/schemas/DisablePrivateKeyIntent'
        deleteUsersIntent:
          $ref: '#/components/schemas/DeleteUsersIntent'
        deleteAuthenticatorsIntent:
          $ref: '#/components/schemas/DeleteAuthenticatorsIntent'
        deleteInvitationIntent:
          $ref: '#/components/schemas/DeleteInvitationIntent'
        deleteOrganizationIntent:
          $ref: '#/components/schemas/DeleteOrganizationIntent'
        deletePolicyIntent:
          $ref: '#/components/schemas/DeletePolicyIntent'
        createUserTagIntent:
          $ref: '#/components/schemas/CreateUserTagIntent'
        deleteUserTagsIntent:
          $ref: '#/components/schemas/DeleteUserTagsIntent'
        signTransactionIntent:
          $ref: '#/components/schemas/SignTransactionIntent'
        createApiKeysIntent:
          $ref: '#/components/schemas/CreateApiKeysIntent'
        deleteApiKeysIntent:
          $ref: '#/components/schemas/DeleteApiKeysIntent'
        approveActivityIntent:
          $ref: '#/components/schemas/ApproveActivityIntent'
        rejectActivityIntent:
          $ref: '#/components/schemas/RejectActivityIntent'
        createPrivateKeyTagIntent:
          $ref: '#/components/schemas/CreatePrivateKeyTagIntent'
        deletePrivateKeyTagsIntent:
          $ref: '#/components/schemas/DeletePrivateKeyTagsIntent'
        createPolicyIntentV2:
          $ref: '#/components/schemas/CreatePolicyIntentV2'
        setPaymentMethodIntent:
          $ref: '#/components/schemas/SetPaymentMethodIntent'
        activateBillingTierIntent:
          $ref: '#/components/schemas/ActivateBillingTierIntent'
        deletePaymentMethodIntent:
          $ref: '#/components/schemas/DeletePaymentMethodIntent'
        createPolicyIntentV3:
          $ref: '#/components/schemas/CreatePolicyIntentV3'
        createApiOnlyUsersIntent:
          $ref: '#/components/schemas/CreateApiOnlyUsersIntent'
        updateRootQuorumIntent:
          $ref: '#/components/schemas/UpdateRootQuorumIntent'
        updateUserTagIntent:
          $ref: '#/components/schemas/UpdateUserTagIntent'
        updatePrivateKeyTagIntent:
          $ref: '#/components/schemas/UpdatePrivateKeyTagIntent'
        createAuthenticatorsIntentV2:
          $ref: '#/components/schemas/CreateAuthenticatorsIntentV2'
        acceptInvitationIntentV2:
          $ref: '#/components/schemas/AcceptInvitationIntentV2'
        createOrganizationIntentV2:
          $ref: '#/components/schemas/CreateOrganizationIntentV2'
        createUsersIntentV2:
          $ref: '#/components/schemas/CreateUsersIntentV2'
        createSubOrganizationIntent:
          $ref: '#/components/schemas/CreateSubOrganizationIntent'
        createSubOrganizationIntentV2:
          $ref: '#/components/schemas/CreateSubOrganizationIntentV2'
        updateAllowedOriginsIntent:
          $ref: '#/components/schemas/UpdateAllowedOriginsIntent'
        createPrivateKeysIntentV2:
          $ref: '#/components/schemas/CreatePrivateKeysIntentV2'
        updateUserIntent:
          $ref: '#/components/schemas/UpdateUserIntent'
        updatePolicyIntent:
          $ref: '#/components/schemas/UpdatePolicyIntent'
        setPaymentMethodIntentV2:
          $ref: '#/components/schemas/SetPaymentMethodIntentV2'
        createSubOrganizationIntentV3:
          $ref: '#/components/schemas/CreateSubOrganizationIntentV3'
        createWalletIntent:
          $ref: '#/components/schemas/CreateWalletIntent'
        createWalletAccountsIntent:
          $ref: '#/components/schemas/CreateWalletAccountsIntent'
        initUserEmailRecoveryIntent:
          $ref: '#/components/schemas/InitUserEmailRecoveryIntent'
        recoverUserIntent:
          $ref: '#/components/schemas/RecoverUserIntent'
        setOrganizationFeatureIntent:
          $ref: '#/components/schemas/SetOrganizationFeatureIntent'
        removeOrganizationFeatureIntent:
          $ref: '#/components/schemas/RemoveOrganizationFeatureIntent'
        signRawPayloadIntentV2:
          $ref: '#/components/schemas/SignRawPayloadIntentV2'
        signTransactionIntentV2:
          $ref: '#/components/schemas/SignTransactionIntentV2'
        exportPrivateKeyIntent:
          $ref: '#/components/schemas/ExportPrivateKeyIntent'
        exportWalletIntent:
          $ref: '#/components/schemas/ExportWalletIntent'
        createSubOrganizationIntentV4:
          $ref: '#/components/schemas/CreateSubOrganizationIntentV4'
        emailAuthIntent:
          $ref: '#/components/schemas/EmailAuthIntent'
        exportWalletAccountIntent:
          $ref: '#/components/schemas/ExportWalletAccountIntent'
        initImportWalletIntent:
          $ref: '#/components/schemas/InitImportWalletIntent'
        importWalletIntent:
          $ref: '#/components/schemas/ImportWalletIntent'
        initImportPrivateKeyIntent:
          $ref: '#/components/schemas/InitImportPrivateKeyIntent'
        importPrivateKeyIntent:
          $ref: '#/components/schemas/ImportPrivateKeyIntent'
        createPoliciesIntent:
          $ref: '#/components/schemas/CreatePoliciesIntent'
        signRawPayloadsIntent:
          $ref: '#/components/schemas/SignRawPayloadsIntent'
        createReadOnlySessionIntent:
          $ref: '#/components/schemas/CreateReadOnlySessionIntent'
        createOauthProvidersIntent:
          $ref: '#/components/schemas/CreateOauthProvidersIntent'
        deleteOauthProvidersIntent:
          $ref: '#/components/schemas/DeleteOauthProvidersIntent'
        createSubOrganizationIntentV5:
          $ref: '#/components/schemas/CreateSubOrganizationIntentV5'
        oauthIntent:
          $ref: '#/components/schemas/OauthIntent'
        createApiKeysIntentV2:
          $ref: '#/components/schemas/CreateApiKeysIntentV2'
        createReadWriteSessionIntent:
          $ref: '#/components/schemas/CreateReadWriteSessionIntent'
        emailAuthIntentV2:
          $ref: '#/components/schemas/EmailAuthIntentV2'
        createSubOrganizationIntentV6:
          $ref: '#/components/schemas/CreateSubOrganizationIntentV6'
        deletePrivateKeysIntent:
          $ref: '#/components/schemas/DeletePrivateKeysIntent'
        deleteWalletsIntent:
          $ref: '#/components/schemas/DeleteWalletsIntent'
        createReadWriteSessionIntentV2:
          $ref: '#/components/schemas/CreateReadWriteSessionIntentV2'
        deleteSubOrganizationIntent:
          $ref: '#/components/schemas/DeleteSubOrganizationIntent'
        initOtpAuthIntent:
          $ref: '#/components/schemas/InitOtpAuthIntent'
        otpAuthIntent:
          $ref: '#/components/schemas/OtpAuthIntent'
        createSubOrganizationIntentV7:
          $ref: '#/components/schemas/CreateSubOrganizationIntentV7'
        updateWalletIntent:
          $ref: '#/components/schemas/UpdateWalletIntent'
    Result:
      type: object
      properties:
        createOrganizationResult:
          $ref: '#/components/schemas/CreateOrganizationResult'
        createAuthenticatorsResult:
          $ref: '#/components/schemas/CreateAuthenticatorsResult'
        createUsersResult:
          $ref: '#/components/schemas/CreateUsersResult'
        createPrivateKeysResult:
          $ref: '#/components/schemas/CreatePrivateKeysResult'
        createInvitationsResult:
          $ref: '#/components/schemas/CreateInvitationsResult'
        acceptInvitationResult:
          $ref: '#/components/schemas/AcceptInvitationResult'
        signRawPayloadResult:
          $ref: '#/components/schemas/SignRawPayloadResult'
        createPolicyResult:
          $ref: '#/components/schemas/CreatePolicyResult'
        disablePrivateKeyResult:
          $ref: '#/components/schemas/DisablePrivateKeyResult'
        deleteUsersResult:
          $ref: '#/components/schemas/DeleteUsersResult'
        deleteAuthenticatorsResult:
          $ref: '#/components/schemas/DeleteAuthenticatorsResult'
        deleteInvitationResult:
          $ref: '#/components/schemas/DeleteInvitationResult'
        deleteOrganizationResult:
          $ref: '#/components/schemas/DeleteOrganizationResult'
        deletePolicyResult:
          $ref: '#/components/schemas/DeletePolicyResult'
        createUserTagResult:
          $ref: '#/components/schemas/CreateUserTagResult'
        deleteUserTagsResult:
          $ref: '#/components/schemas/DeleteUserTagsResult'
        signTransactionResult:
          $ref: '#/components/schemas/SignTransactionResult'
        deleteApiKeysResult:
          $ref: '#/components/schemas/DeleteApiKeysResult'
        createApiKeysResult:
          $ref: '#/components/schemas/CreateApiKeysResult'
        createPrivateKeyTagResult:
          $ref: '#/components/schemas/CreatePrivateKeyTagResult'
        deletePrivateKeyTagsResult:
          $ref: '#/components/schemas/DeletePrivateKeyTagsResult'
        setPaymentMethodResult:
          $ref: '#/components/schemas/SetPaymentMethodResult'
        activateBillingTierResult:
          $ref: '#/components/schemas/ActivateBillingTierResult'
        deletePaymentMethodResult:
          $ref: '#/components/schemas/DeletePaymentMethodResult'
        createApiOnlyUsersResult:
          $ref: '#/components/schemas/CreateApiOnlyUsersResult'
        updateRootQuorumResult:
          $ref: '#/components/schemas/UpdateRootQuorumResult'
        updateUserTagResult:
          $ref: '#/components/schemas/UpdateUserTagResult'
        updatePrivateKeyTagResult:
          $ref: '#/components/schemas/UpdatePrivateKeyTagResult'
        createSubOrganizationResult:
          $ref: '#/components/schemas/CreateSubOrganizationResult'
        updateAllowedOriginsResult:
          $ref: '#/components/schemas/UpdateAllowedOriginsResult'
        createPrivateKeysResultV2:
          $ref: '#/components/schemas/CreatePrivateKeysResultV2'
        updateUserResult:
          $ref: '#/components/schemas/UpdateUserResult'
        updatePolicyResult:
          $ref: '#/components/schemas/UpdatePolicyResult'
        createSubOrganizationResultV3:
          $ref: '#/components/schemas/CreateSubOrganizationResultV3'
        createWalletResult:
          $ref: '#/components/schemas/CreateWalletResult'
        createWalletAccountsResult:
          $ref: '#/components/schemas/CreateWalletAccountsResult'
        initUserEmailRecoveryResult:
          $ref: '#/components/schemas/InitUserEmailRecoveryResult'
        recoverUserResult:
          $ref: '#/components/schemas/RecoverUserResult'
        setOrganizationFeatureResult:
          $ref: '#/components/schemas/SetOrganizationFeatureResult'
        removeOrganizationFeatureResult:
          $ref: '#/components/schemas/RemoveOrganizationFeatureResult'
        exportPrivateKeyResult:
          $ref: '#/components/schemas/ExportPrivateKeyResult'
        exportWalletResult:
          $ref: '#/components/schemas/ExportWalletResult'
        createSubOrganizationResultV4:
          $ref: '#/components/schemas/CreateSubOrganizationResultV4'
        emailAuthResult:
          $ref: '#/components/schemas/EmailAuthResult'
        exportWalletAccountResult:
          $ref: '#/components/schemas/ExportWalletAccountResult'
        initImportWalletResult:
          $ref: '#/components/schemas/InitImportWalletResult'
        importWalletResult:
          $ref: '#/components/schemas/ImportWalletResult'
        initImportPrivateKeyResult:
          $ref: '#/components/schemas/InitImportPrivateKeyResult'
        importPrivateKeyResult:
          $ref: '#/components/schemas/ImportPrivateKeyResult'
        createPoliciesResult:
          $ref: '#/components/schemas/CreatePoliciesResult'
        signRawPayloadsResult:
          $ref: '#/components/schemas/SignRawPayloadsResult'
        createReadOnlySessionResult:
          $ref: '#/components/schemas/CreateReadOnlySessionResult'
        createOauthProvidersResult:
          $ref: '#/components/schemas/CreateOauthProvidersResult'
        deleteOauthProvidersResult:
          $ref: '#/components/schemas/DeleteOauthProvidersResult'
        createSubOrganizationResultV5:
          $ref: '#/components/schemas/CreateSubOrganizationResultV5'
        oauthResult:
          $ref: '#/components/schemas/OauthResult'
        createReadWriteSessionResult:
          $ref: '#/components/schemas/CreateReadWriteSessionResult'
        createSubOrganizationResultV6:
          $ref: '#/components/schemas/CreateSubOrganizationResultV6'
        deletePrivateKeysResult:
          $ref: '#/components/schemas/DeletePrivateKeysResult'
        deleteWalletsResult:
          $ref: '#/components/schemas/DeleteWalletsResult'
        createReadWriteSessionResultV2:
          $ref: '#/components/schemas/CreateReadWriteSessionResultV2'
        deleteSubOrganizationResult:
          $ref: '#/components/schemas/DeleteSubOrganizationResult'
        initOtpAuthResult:
          $ref: '#/components/schemas/InitOtpAuthResult'
        otpAuthResult:
          $ref: '#/components/schemas/OtpAuthResult'
        createSubOrganizationResultV7:
          $ref: '#/components/schemas/CreateSubOrganizationResultV7'
        updateWalletResult:
          $ref: '#/components/schemas/UpdateWalletResult'
    Vote:
      required:
        - activityId
        - createdAt
        - id
        - message
        - publicKey
        - scheme
        - selection
        - signature
        - user
        - userId
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for a given Vote object.
        userId:
          type: string
          description: Unique identifier for a given User.
        user:
          $ref: '#/components/schemas/User'
        activityId:
          type: string
          description: Unique identifier for a given Activity object.
        selection:
          type: string
          enum:
            - VOTE_SELECTION_APPROVED
            - VOTE_SELECTION_REJECTED
        message:
          type: string
          description: The raw message being signed within a Vote.
        publicKey:
          type: string
          description: >-
            The public component of a cryptographic key pair used to sign
            messages and transactions.
        signature:
          type: string
          description: The signature applied to a particular vote.
        scheme:
          type: string
          description: Method used to produce a signature.
        createdAt:
          $ref: '#/components/schemas/external.data.v1.Timestamp'
    external.data.v1.Timestamp:
      required:
        - nanos
        - seconds
      type: object
      properties:
        seconds:
          type: string
        nanos:
          type: string
    Status:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/Any'
    CreateOrganizationIntent:
      required:
        - organizationName
        - rootAuthenticator
        - rootEmail
      type: object
      properties:
        organizationName:
          type: string
          description: Human-readable name for an Organization.
        rootEmail:
          type: string
          description: The root user's email address.
        rootAuthenticator:
          $ref: '#/components/schemas/AuthenticatorParams'
        rootUserId:
          type: string
          description: Unique identifier for the root user object.
    CreateAuthenticatorsIntent:
      required:
        - authenticators
        - userId
      type: object
      properties:
        authenticators:
          type: array
          description: A list of Authenticators.
          items:
            $ref: '#/components/schemas/AuthenticatorParams'
        userId:
          type: string
          description: Unique identifier for a given User.
    CreateUsersIntent:
      required:
        - users
      type: object
      properties:
        users:
          type: array
          description: A list of Users.
          items:
            $ref: '#/components/schemas/UserParams'
    CreatePrivateKeysIntent:
      required:
        - privateKeys
      type: object
      properties:
        privateKeys:
          type: array
          description: A list of Private Keys.
          items:
            $ref: '#/components/schemas/PrivateKeyParams'
    SignRawPayloadIntent:
      required:
        - encoding
        - hashFunction
        - payload
        - privateKeyId
      type: object
      properties:
        privateKeyId:
          type: string
          description: Unique identifier for a given Private Key.
        payload:
          type: string
          description: Raw unsigned payload to be signed.
        encoding:
          $ref: '#/components/schemas/PayloadEncoding'
        hashFunction:
          $ref: '#/components/schemas/HashFunction'
    CreateInvitationsIntent:
      required:
        - invitations
      type: object
      properties:
        invitations:
          type: array
          description: A list of Invitations.
          items:
            $ref: '#/components/schemas/InvitationParams'
    AcceptInvitationIntent:
      required:
        - authenticator
        - invitationId
        - userId
      type: object
      properties:
        invitationId:
          type: string
          description: Unique identifier for a given Invitation object.
        userId:
          type: string
          description: Unique identifier for a given User.
        authenticator:
          $ref: '#/components/schemas/AuthenticatorParams'
    CreatePolicyIntent:
      required:
        - effect
        - policyName
        - selectors
      type: object
      properties:
        policyName:
          type: string
          description: Human-readable name for a Policy.
        selectors:
          type: array
          description: >-
            A list of simple functions each including a subject, target and
            boolean. See Policy Engine Language section for additional details.
          items:
            $ref: '#/components/schemas/Selector'
        effect:
          $ref: '#/components/schemas/Effect'
        notes:
          type: string
    DisablePrivateKeyIntent:
      required:
        - privateKeyId
      type: object
      properties:
        privateKeyId:
          type: string
          description: Unique identifier for a given Private Key.
    DeleteUsersIntent:
      required:
        - userIds
      type: object
      properties:
        userIds:
          type: array
          description: A list of User IDs.
          items:
            type: string
    DeleteAuthenticatorsIntent:
      required:
        - authenticatorIds
        - userId
      type: object
      properties:
        userId:
          type: string
          description: Unique identifier for a given User.
        authenticatorIds:
          type: array
          description: A list of Authenticator IDs.
          items:
            type: string
    DeleteInvitationIntent:
      required:
        - invitationId
      type: object
      properties:
        invitationId:
          type: string
          description: Unique identifier for a given Invitation object.
    DeleteOrganizationIntent:
      required:
        - organizationId
      type: object
      properties:
        organizationId:
          type: string
          description: Unique identifier for a given Organization.
    DeletePolicyIntent:
      required:
        - policyId
      type: object
      properties:
        policyId:
          type: string
          description: Unique identifier for a given Policy.
    CreateUserTagIntent:
      required:
        - userIds
        - userTagName
      type: object
      properties:
        userTagName:
          type: string
          description: Human-readable name for a User Tag.
        userIds:
          type: array
          description: A list of User IDs.
          items:
            type: string
    DeleteUserTagsIntent:
      required:
        - userTagIds
      type: object
      properties:
        userTagIds:
          type: array
          description: A list of User Tag IDs.
          items:
            type: string
    SignTransactionIntent:
      required:
        - privateKeyId
        - type
        - unsignedTransaction
      type: object
      properties:
        privateKeyId:
          type: string
          description: Unique identifier for a given Private Key.
        unsignedTransaction:
          type: string
          description: Raw unsigned transaction to be signed by a particular Private Key.
        type:
          $ref: '#/components/schemas/TransactionType'
    CreateApiKeysIntent:
      required:
        - apiKeys
        - userId
      type: object
      properties:
        apiKeys:
          type: array
          description: A list of API Keys.
          items:
            $ref: '#/components/schemas/ApiKeyParams'
        userId:
          type: string
          description: Unique identifier for a given User.
    DeleteApiKeysIntent:
      required:
        - apiKeyIds
        - userId
      type: object
      properties:
        userId:
          type: string
          description: Unique identifier for a given User.
        apiKeyIds:
          type: array
          description: A list of API Key IDs.
          items:
            type: string
    ApproveActivityIntent:
      required:
        - fingerprint
      type: object
      properties:
        fingerprint:
          type: string
          description: An artifact verifying a User's action.
    RejectActivityIntent:
      required:
        - fingerprint
      type: object
      properties:
        fingerprint:
          type: string
          description: An artifact verifying a User's action.
    CreatePrivateKeyTagIntent:
      required:
        - privateKeyIds
        - privateKeyTagName
      type: object
      properties:
        privateKeyTagName:
          type: string
          description: Human-readable name for a Private Key Tag.
        privateKeyIds:
          type: array
          description: A list of Private Key IDs.
          items:
            type: string
    DeletePrivateKeyTagsIntent:
      required:
        - privateKeyTagIds
      type: object
      properties:
        privateKeyTagIds:
          type: array
          description: A list of Private Key Tag IDs.
          items:
            type: string
    CreatePolicyIntentV2:
      required:
        - effect
        - policyName
        - selectors
      type: object
      properties:
        policyName:
          type: string
          description: Human-readable name for a Policy.
        selectors:
          type: array
          description: >-
            A list of simple functions each including a subject, target and
            boolean. See Policy Engine Language section for additional details.
          items:
            $ref: '#/components/schemas/SelectorV2'
        effect:
          $ref: '#/components/schemas/Effect'
        notes:
          type: string
    SetPaymentMethodIntent:
      required:
        - cardHolderEmail
        - cardHolderName
        - cvv
        - expiryMonth
        - expiryYear
        - number
      type: object
      properties:
        number:
          type: string
          description: The account number of the customer's credit card.
        cvv:
          type: string
          description: The verification digits of the customer's credit card.
        expiryMonth:
          type: string
          description: The month that the credit card expires.
        expiryYear:
          type: string
          description: The year that the credit card expires.
        cardHolderEmail:
          type: string
          description: The email that will receive invoices for the credit card.
        cardHolderName:
          type: string
          description: The name associated with the credit card.
    ActivateBillingTierIntent:
      required:
        - productId
      type: object
      properties:
        productId:
          type: string
          description: The product that the customer wants to subscribe to.
    DeletePaymentMethodIntent:
      required:
        - paymentMethodId
      type: object
      properties:
        paymentMethodId:
          type: string
          description: The payment method that the customer wants to remove.
    CreatePolicyIntentV3:
      required:
        - effect
        - policyName
      type: object
      properties:
        policyName:
          type: string
          description: Human-readable name for a Policy.
        effect:
          $ref: '#/components/schemas/Effect'
        condition:
          type: string
          description: The condition expression that triggers the Effect
        consensus:
          type: string
          description: The consensus expression that triggers the Effect
        notes:
          type: string
    CreateApiOnlyUsersIntent:
      required:
        - apiOnlyUsers
      type: object
      properties:
        apiOnlyUsers:
          type: array
          description: A list of API-only Users to create.
          items:
            $ref: '#/components/schemas/ApiOnlyUserParams'
    UpdateRootQuorumIntent:
      required:
        - threshold
        - userIds
      type: object
      properties:
        threshold:
          type: integer
          description: The threshold of unique approvals to reach quorum.
          format: int32
        userIds:
          type: array
          description: The unique identifiers of users who comprise the quorum set.
          items:
            type: string
    UpdateUserTagIntent:
      required:
        - addUserIds
        - removeUserIds
        - userTagId
      type: object
      properties:
        userTagId:
          type: string
          description: Unique identifier for a given User Tag.
        newUserTagName:
          type: string
          description: The new, human-readable name for the tag with the given ID.
        addUserIds:
          type: array
          description: A list of User IDs to add this tag to.
          items:
            type: string
        removeUserIds:
          type: array
          description: A list of User IDs to remove this tag from.
          items:
            type: string
    UpdatePrivateKeyTagIntent:
      required:
        - addPrivateKeyIds
        - privateKeyTagId
        - removePrivateKeyIds
      type: object
      properties:
        privateKeyTagId:
          type: string
          description: Unique identifier for a given Private Key Tag.
        newPrivateKeyTagName:
          type: string
          description: The new, human-readable name for the tag with the given ID.
        addPrivateKeyIds:
          type: array
          description: A list of Private Keys IDs to add this tag to.
          items:
            type: string
        removePrivateKeyIds:
          type: array
          description: A list of Private Key IDs to remove this tag from.
          items:
            type: string
    CreateAuthenticatorsIntentV2:
      required:
        - authenticators
        - userId
      type: object
      properties:
        authenticators:
          type: array
          description: A list of Authenticators.
          items:
            $ref: '#/components/schemas/AuthenticatorParamsV2'
        userId:
          type: string
          description: Unique identifier for a given User.
    AcceptInvitationIntentV2:
      required:
        - authenticator
        - invitationId
        - userId
      type: object
      properties:
        invitationId:
          type: string
          description: Unique identifier for a given Invitation object.
        userId:
          type: string
          description: Unique identifier for a given User.
        authenticator:
          $ref: '#/components/schemas/AuthenticatorParamsV2'
    CreateOrganizationIntentV2:
      required:
        - organizationName
        - rootAuthenticator
        - rootEmail
      type: object
      properties:
        organizationName:
          type: string
          description: Human-readable name for an Organization.
        rootEmail:
          type: string
          description: The root user's email address.
        rootAuthenticator:
          $ref: '#/components/schemas/AuthenticatorParamsV2'
        rootUserId:
          type: string
          description: Unique identifier for the root user object.
    CreateUsersIntentV2:
      required:
        - users
      type: object
      properties:
        users:
          type: array
          description: A list of Users.
          items:
            $ref: '#/components/schemas/UserParamsV2'
    CreateSubOrganizationIntent:
      required:
        - name
        - rootAuthenticator
      type: object
      properties:
        name:
          type: string
          description: Name for this sub-organization
        rootAuthenticator:
          $ref: '#/components/schemas/AuthenticatorParamsV2'
    CreateSubOrganizationIntentV2:
      required:
        - rootQuorumThreshold
        - rootUsers
        - subOrganizationName
      type: object
      properties:
        subOrganizationName:
          type: string
          description: Name for this sub-organization
        rootUsers:
          type: array
          description: Root users to create within this sub-organization
          items:
            $ref: '#/components/schemas/RootUserParams'
        rootQuorumThreshold:
          type: integer
          description: >-
            The threshold of unique approvals to reach root quorum. This value
            must be less than or equal to the number of root users
          format: int32
    UpdateAllowedOriginsIntent:
      required:
        - allowedOrigins
      type: object
      properties:
        allowedOrigins:
          type: array
          description: Additional origins requests are allowed from besides Turnkey origins
          items:
            type: string
    CreatePrivateKeysIntentV2:
      required:
        - privateKeys
      type: object
      properties:
        privateKeys:
          type: array
          description: A list of Private Keys.
          items:
            $ref: '#/components/schemas/PrivateKeyParams'
    UpdateUserIntent:
      required:
        - userId
      type: object
      properties:
        userId:
          type: string
          description: Unique identifier for a given User.
        userName:
          type: string
          description: Human-readable name for a User.
        userEmail:
          type: string
          description: The user's email address.
        userTagIds:
          type: array
          description: >-
            An updated list of User Tags to apply to this User. This field, if
            not needed, should be an empty array in your request body.
          items:
            type: string
        userPhoneNumber:
          type: string
          description: The user's phone number in E.164 format e.g. +13214567890
    UpdatePolicyIntent:
      required:
        - policyId
      type: object
      properties:
        policyId:
          type: string
          description: Unique identifier for a given Policy.
        policyName:
          type: string
          description: Human-readable name for a Policy.
        policyEffect:
          $ref: '#/components/schemas/Effect'
        policyCondition:
          type: string
          description: The condition expression that triggers the Effect (optional).
        policyConsensus:
          type: string
          description: The consensus expression that triggers the Effect (optional).
        policyNotes:
          type: string
          description: Accompanying notes for a Policy (optional).
    SetPaymentMethodIntentV2:
      required:
        - cardHolderEmail
        - cardHolderName
        - paymentMethodId
      type: object
      properties:
        paymentMethodId:
          type: string
          description: The id of the payment method that was created clientside.
        cardHolderEmail:
          type: string
          description: The email that will receive invoices for the credit card.
        cardHolderName:
          type: string
          description: The name associated with the credit card.
    CreateSubOrganizationIntentV3:
      required:
        - privateKeys
        - rootQuorumThreshold
        - rootUsers
        - subOrganizationName
      type: object
      properties:
        subOrganizationName:
          type: string
          description: Name for this sub-organization
        rootUsers:
          type: array
          description: Root users to create within this sub-organization
          items:
            $ref: '#/components/schemas/RootUserParams'
        rootQuorumThreshold:
          type: integer
          description: >-
            The threshold of unique approvals to reach root quorum. This value
            must be less than or equal to the number of root users
          format: int32
        privateKeys:
          type: array
          description: A list of Private Keys.
          items:
            $ref: '#/components/schemas/PrivateKeyParams'
    CreateWalletIntent:
      required:
        - accounts
        - walletName
      type: object
      properties:
        walletName:
          type: string
          description: Human-readable name for a Wallet.
        accounts:
          type: array
          description: >-
            A list of wallet Accounts. This field, if not needed, should be an
            empty array in your request body.
          items:
            $ref: '#/components/schemas/WalletAccountParams'
        mnemonicLength:
          type: integer
          description: >-
            Length of mnemonic to generate the Wallet seed. Defaults to 12.
            Accepted values: 12, 15, 18, 21, 24.
          format: int32
    CreateWalletAccountsIntent:
      required:
        - accounts
        - walletId
      type: object
      properties:
        walletId:
          type: string
          description: Unique identifier for a given Wallet.
        accounts:
          type: array
          description: A list of wallet Accounts.
          items:
            $ref: '#/components/schemas/WalletAccountParams'
    InitUserEmailRecoveryIntent:
      required:
        - email
        - targetPublicKey
      type: object
      properties:
        email:
          type: string
          description: Email of the user starting recovery
        targetPublicKey:
          type: string
          description: >-
            Client-side public key generated by the user, to which the recovery
            bundle will be encrypted.
        expirationSeconds:
          type: string
          description: >-
            Expiration window (in seconds) indicating how long the recovery
            credential is valid. If not provided, a default of 15 minutes will
            be used.
        emailCustomization:
          $ref: '#/components/schemas/EmailCustomizationParams'
    RecoverUserIntent:
      required:
        - authenticator
        - userId
      type: object
      properties:
        authenticator:
          $ref: '#/components/schemas/AuthenticatorParamsV2'
        userId:
          type: string
          description: Unique identifier for the user performing recovery.
    SetOrganizationFeatureIntent:
      required:
        - name
        - value
      type: object
      properties:
        name:
          $ref: '#/components/schemas/FeatureName'
        value:
          type: string
          description: >-
            Optional value for the feature. Will override existing values if
            feature is already set.
    RemoveOrganizationFeatureIntent:
      required:
        - name
      type: object
      properties:
        name:
          $ref: '#/components/schemas/FeatureName'
    SignRawPayloadIntentV2:
      required:
        - encoding
        - hashFunction
        - payload
        - signWith
      type: object
      properties:
        signWith:
          type: string
          description: >-
            A Wallet account address, Private Key address, or Private Key
            identifier.
        payload:
          type: string
          description: Raw unsigned payload to be signed.
        encoding:
          $ref: '#/components/schemas/PayloadEncoding'
        hashFunction:
          $ref: '#/components/schemas/HashFunction'
    SignTransactionIntentV2:
      required:
        - signWith
        - type
        - unsignedTransaction
      type: object
      properties:
        signWith:
          type: string
          description: >-
            A Wallet account address, Private Key address, or Private Key
            identifier.
        unsignedTransaction:
          type: string
          description: Raw unsigned transaction to be signed
        type:
          $ref: '#/components/schemas/TransactionType'
    ExportPrivateKeyIntent:
      required:
        - privateKeyId
        - targetPublicKey
      type: object
      properties:
        privateKeyId:
          type: string
          description: Unique identifier for a given Private Key.
        targetPublicKey:
          type: string
          description: >-
            Client-side public key generated by the user, to which the export
            bundle will be encrypted.
    ExportWalletIntent:
      required:
        - targetPublicKey
        - walletId
      type: object
      properties:
        walletId:
          type: string
          description: Unique identifier for a given Wallet.
        targetPublicKey:
          type: string
          description: >-
            Client-side public key generated by the user, to which the export
            bundle will be encrypted.
        language:
          $ref: '#/components/schemas/MnemonicLanguage'
    CreateSubOrganizationIntentV4:
      required:
        - rootQuorumThreshold
        - rootUsers
        - subOrganizationName
      type: object
      properties:
        subOrganizationName:
          type: string
          description: Name for this sub-organization
        rootUsers:
          type: array
          description: Root users to create within this sub-organization
          items:
            $ref: '#/components/schemas/RootUserParams'
        rootQuorumThreshold:
          type: integer
          description: >-
            The threshold of unique approvals to reach root quorum. This value
            must be less than or equal to the number of root users
          format: int32
        wallet:
          $ref: '#/components/schemas/WalletParams'
        disableEmailRecovery:
          type: boolean
          description: Disable email recovery for the sub-organization
        disableEmailAuth:
          type: boolean
          description: Disable email auth for the sub-organization
    EmailAuthIntent:
      required:
        - email
        - targetPublicKey
      type: object
      properties:
        email:
          type: string
          description: Email of the authenticating user.
        targetPublicKey:
          type: string
          description: >-
            Client-side public key generated by the user, to which the email
            auth bundle (credentials) will be encrypted.
        apiKeyName:
          type: string
          description: >-
            Optional human-readable name for an API Key. If none provided,
            default to Email Auth - <Timestamp>
        expirationSeconds:
          type: string
          description: >-
            Expiration window (in seconds) indicating how long the API key is
            valid. If not provided, a default of 15 minutes will be used.
        emailCustomization:
          $ref: '#/components/schemas/EmailCustomizationParams'
        invalidateExisting:
          type: boolean
          description: Invalidate all other previously generated Email Auth API keys
        sendFromEmailAddress:
          type: string
          description: Optional custom email address from which to send the email
    InitImportWalletIntent:
      required:
        - userId
      type: object
      properties:
        userId:
          type: string
          description: The ID of the User importing a Wallet.
    ImportWalletIntent:
      required:
        - accounts
        - encryptedBundle
        - userId
        - walletName
      type: object
      properties:
        userId:
          type: string
          description: The ID of the User importing a Wallet.
        walletName:
          type: string
          description: Human-readable name for a Wallet.
        encryptedBundle:
          type: string
          description: >-
            Bundle containing a wallet mnemonic encrypted to the enclave's
            target public key.
        accounts:
          type: array
          description: A list of wallet Accounts.
          items:
            $ref: '#/components/schemas/WalletAccountParams'
    InitImportPrivateKeyIntent:
      required:
        - userId
      type: object
      properties:
        userId:
          type: string
          description: The ID of the User importing a Private Key.
    ImportPrivateKeyIntent:
      required:
        - addressFormats
        - curve
        - encryptedBundle
        - privateKeyName
        - userId
      type: object
      properties:
        userId:
          type: string
          description: The ID of the User importing a Private Key.
        privateKeyName:
          type: string
          description: Human-readable name for a Private Key.
        encryptedBundle:
          type: string
          description: >-
            Bundle containing a raw private key encrypted to the enclave's
            target public key.
        curve:
          $ref: '#/components/schemas/Curve'
        addressFormats:
          type: array
          description: >-
            Cryptocurrency-specific formats for a derived address (e.g.,
            Ethereum).
          items:
            $ref: '#/components/schemas/AddressFormat'
    CreatePoliciesIntent:
      required:
        - policies
      type: object
      properties:
        policies:
          type: array
          description: An array of policy intents to be created.
          items:
            $ref: '#/components/schemas/CreatePolicyIntentV3'
    SignRawPayloadsIntent:
      required:
        - encoding
        - hashFunction
        - payloads
        - signWith
      type: object
      properties:
        signWith:
          type: string
          description: >-
            A Wallet account address, Private Key address, or Private Key
            identifier.
        payloads:
          type: array
          description: An array of raw unsigned payloads to be signed.
          items:
            type: string
        encoding:
          $ref: '#/components/schemas/PayloadEncoding'
        hashFunction:
          $ref: '#/components/schemas/HashFunction'
    CreateReadOnlySessionIntent:
      type: object
    CreateOauthProvidersIntent:
      required:
        - oauthProviders
        - userId
      type: object
      properties:
        userId:
          type: string
          description: The ID of the User to add an Oauth provider to
        oauthProviders:
          type: array
          description: A list of Oauth providers.
          items:
            $ref: '#/components/schemas/OauthProviderParams'
    DeleteOauthProvidersIntent:
      required:
        - providerIds
        - userId
      type: object
      properties:
        userId:
          type: string
          description: The ID of the User to remove an Oauth provider from
        providerIds:
          type: array
          description: Unique identifier for a given Provider.
          items:
            type: string
    CreateSubOrganizationIntentV5:
      required:
        - rootQuorumThreshold
        - rootUsers
        - subOrganizationName
      type: object
      properties:
        subOrganizationName:
          type: string
          description: Name for this sub-organization
        rootUsers:
          type: array
          description: Root users to create within this sub-organization
          items:
            $ref: '#/components/schemas/RootUserParamsV2'
        rootQuorumThreshold:
          type: integer
          description: >-
            The threshold of unique approvals to reach root quorum. This value
            must be less than or equal to the number of root users
          format: int32
        wallet:
          $ref: '#/components/schemas/WalletParams'
        disableEmailRecovery:
          type: boolean
          description: Disable email recovery for the sub-organization
        disableEmailAuth:
          type: boolean
          description: Disable email auth for the sub-organization
    OauthIntent:
      required:
        - oidcToken
        - targetPublicKey
      type: object
      properties:
        oidcToken:
          type: string
          description: Base64 encoded OIDC token
        targetPublicKey:
          type: string
          description: >-
            Client-side public key generated by the user, to which the oauth
            bundle (credentials) will be encrypted.
        apiKeyName:
          type: string
          description: >-
            Optional human-readable name for an API Key. If none provided,
            default to Oauth - <Timestamp>
        expirationSeconds:
          type: string
          description: >-
            Expiration window (in seconds) indicating how long the API key is
            valid. If not provided, a default of 15 minutes will be used.
    CreateApiKeysIntentV2:
      required:
        - apiKeys
        - userId
      type: object
      properties:
        apiKeys:
          type: array
          description: A list of API Keys.
          items:
            $ref: '#/components/schemas/ApiKeyParamsV2'
        userId:
          type: string
          description: Unique identifier for a given User.
    CreateReadWriteSessionIntent:
      required:
        - email
        - targetPublicKey
      type: object
      properties:
        targetPublicKey:
          type: string
          description: >-
            Client-side public key generated by the user, to which the read
            write session bundle (credentials) will be encrypted.
        email:
          type: string
          description: Email of the user to create a read write session for
        apiKeyName:
          type: string
          description: >-
            Optional human-readable name for an API Key. If none provided,
            default to Read Write Session - <Timestamp>
        expirationSeconds:
          type: string
          description: >-
            Expiration window (in seconds) indicating how long the API key is
            valid. If not provided, a default of 15 minutes will be used.
    EmailAuthIntentV2:
      required:
        - email
        - targetPublicKey
      type: object
      properties:
        email:
          type: string
          description: Email of the authenticating user.
        targetPublicKey:
          type: string
          description: >-
            Client-side public key generated by the user, to which the email
            auth bundle (credentials) will be encrypted.
        apiKeyName:
          type: string
          description: >-
            Optional human-readable name for an API Key. If none provided,
            default to Email Auth - <Timestamp>
        expirationSeconds:
          type: string
          description: >-
            Expiration window (in seconds) indicating how long the API key is
            valid. If not provided, a default of 15 minutes will be used.
        emailCustomization:
          $ref: '#/components/schemas/EmailCustomizationParams'
        invalidateExisting:
          type: boolean
          description: Invalidate all other previously generated Email Auth API keys
        sendFromEmailAddress:
          type: string
          description: Optional custom email address from which to send the email
    CreateSubOrganizationIntentV6:
      required:
        - rootQuorumThreshold
        - rootUsers
        - subOrganizationName
      type: object
      properties:
        subOrganizationName:
          type: string
          description: Name for this sub-organization
        rootUsers:
          type: array
          description: Root users to create within this sub-organization
          items:
            $ref: '#/components/schemas/RootUserParamsV3'
        rootQuorumThreshold:
          type: integer
          description: >-
            The threshold of unique approvals to reach root quorum. This value
            must be less than or equal to the number of root users
          format: int32
        wallet:
          $ref: '#/components/schemas/WalletParams'
        disableEmailRecovery:
          type: boolean
          description: Disable email recovery for the sub-organization
        disableEmailAuth:
          type: boolean
          description: Disable email auth for the sub-organization
    DeletePrivateKeysIntent:
      required:
        - privateKeyIds
      type: object
      properties:
        privateKeyIds:
          type: array
          description: List of unique identifiers for private keys within an organization
          items:
            type: string
        deleteWithoutExport:
          type: boolean
          description: >-
            Optional parameter for deleting the private keys, even if any have
            not been previously exported. If they have been exported, this field
            is ignored.
    DeleteWalletsIntent:
      required:
        - walletIds
      type: object
      properties:
        walletIds:
          type: array
          description: List of unique identifiers for wallets within an organization
          items:
            type: string
        deleteWithoutExport:
          type: boolean
          description: >-
            Optional parameter for deleting the wallets, even if any have not
            been previously exported. If they have been exported, this field is
            ignored.
    CreateReadWriteSessionIntentV2:
      required:
        - targetPublicKey
      type: object
      properties:
        targetPublicKey:
          type: string
          description: >-
            Client-side public key generated by the user, to which the read
            write session bundle (credentials) will be encrypted.
        userId:
          type: string
          description: Unique identifier for a given User.
        apiKeyName:
          type: string
          description: >-
            Optional human-readable name for an API Key. If none provided,
            default to Read Write Session - <Timestamp>
        expirationSeconds:
          type: string
          description: >-
            Expiration window (in seconds) indicating how long the API key is
            valid. If not provided, a default of 15 minutes will be used.
    DeleteSubOrganizationIntent:
      type: object
      properties:
        deleteWithoutExport:
          type: boolean
          description: >-
            Sub-organization deletion, by default, requires associated wallets
            and private keys to be exported for security reasons. Set this
            boolean to true to force sub-organization deletion even if some
            wallets or private keys within it have not been exported yet.
            Default: false.
    InitOtpAuthIntent:
      required:
        - contact
        - otpType
      type: object
      properties:
        otpType:
          type: string
          description: Enum to specifiy whether to send OTP via SMS or email
        contact:
          type: string
          description: Email or phone number to send the OTP code to
        emailCustomization:
          $ref: '#/components/schemas/EmailCustomizationParams'
        smsCustomization:
          $ref: '#/components/schemas/SmsCustomizationParams'
        userIdentifier:
          type: string
          description: >-
            Optional client-generated user identifier to enable per-user rate
            limiting for SMS auth. We recommend using a hash of the client-side
            IP address.
        sendFromEmailAddress:
          type: string
          description: Optional custom email address from which to send the OTP email
    OtpAuthIntent:
      required:
        - otpCode
        - otpId
      type: object
      properties:
        otpId:
          type: string
          description: ID representing the result of an init OTP activity.
        otpCode:
          type: string
          description: 6 digit OTP code sent out to a user's contact (email or SMS)
        targetPublicKey:
          type: string
          description: >-
            Client-side public key generated by the user, to which the OTP
            bundle (credentials) will be encrypted.
        apiKeyName:
          type: string
          description: >-
            Optional human-readable name for an API Key. If none provided,
            default to OTP Auth - <Timestamp>
        expirationSeconds:
          type: string
          description: >-
            Expiration window (in seconds) indicating how long the API key is
            valid. If not provided, a default of 15 minutes will be used.
        invalidateExisting:
          type: boolean
          description: Invalidate all other previously generated OTP Auth API keys
    CreateSubOrganizationIntentV7:
      required:
        - rootQuorumThreshold
        - rootUsers
        - subOrganizationName
      type: object
      properties:
        subOrganizationName:
          type: string
          description: Name for this sub-organization
        rootUsers:
          type: array
          description: Root users to create within this sub-organization
          items:
            $ref: '#/components/schemas/RootUserParamsV4'
        rootQuorumThreshold:
          type: integer
          description: >-
            The threshold of unique approvals to reach root quorum. This value
            must be less than or equal to the number of root users
          format: int32
        wallet:
          $ref: '#/components/schemas/WalletParams'
        disableEmailRecovery:
          type: boolean
          description: Disable email recovery for the sub-organization
        disableEmailAuth:
          type: boolean
          description: Disable email auth for the sub-organization
        disableSmsAuth:
          type: boolean
          description: Disable OTP SMS auth for the sub-organization
        disableOtpEmailAuth:
          type: boolean
          description: Disable OTP email auth for the sub-organization
    UpdateWalletIntent:
      required:
        - walletId
      type: object
      properties:
        walletId:
          type: string
          description: Unique identifier for a given Wallet.
        walletName:
          type: string
          description: Human-readable name for a Wallet.
    CreateOrganizationResult:
      required:
        - organizationId
      type: object
      properties:
        organizationId:
          type: string
          description: Unique identifier for a given Organization.
    CreateAuthenticatorsResult:
      required:
        - authenticatorIds
      type: object
      properties:
        authenticatorIds:
          type: array
          description: A list of Authenticator IDs.
          items:
            type: string
    CreateUsersResult:
      required:
        - userIds
      type: object
      properties:
        userIds:
          type: array
          description: A list of User IDs.
          items:
            type: string
    CreatePrivateKeysResult:
      required:
        - privateKeyIds
      type: object
      properties:
        privateKeyIds:
          type: array
          description: A list of Private Key IDs.
          items:
            type: string
    CreateInvitationsResult:
      required:
        - invitationIds
      type: object
      properties:
        invitationIds:
          type: array
          description: A list of Invitation IDs
          items:
            type: string
    AcceptInvitationResult:
      required:
        - invitationId
        - userId
      type: object
      properties:
        invitationId:
          type: string
          description: Unique identifier for a given Invitation.
        userId:
          type: string
          description: Unique identifier for a given User.
    SignRawPayloadResult:
      required:
        - r
        - s
        - v
      type: object
      properties:
        r:
          type: string
          description: Component of an ECSDA signature.
        s:
          type: string
          description: Component of an ECSDA signature.
        v:
          type: string
          description: Component of an ECSDA signature.
    CreatePolicyResult:
      required:
        - policyId
      type: object
      properties:
        policyId:
          type: string
          description: Unique identifier for a given Policy.
    DisablePrivateKeyResult:
      required:
        - privateKeyId
      type: object
      properties:
        privateKeyId:
          type: string
          description: Unique identifier for a given Private Key.
    DeleteUsersResult:
      required:
        - userIds
      type: object
      properties:
        userIds:
          type: array
          description: A list of User IDs.
          items:
            type: string
    DeleteAuthenticatorsResult:
      required:
        - authenticatorIds
      type: object
      properties:
        authenticatorIds:
          type: array
          description: Unique identifier for a given Authenticator.
          items:
            type: string
    DeleteInvitationResult:
      required:
        - invitationId
      type: object
      properties:
        invitationId:
          type: string
          description: Unique identifier for a given Invitation.
    DeleteOrganizationResult:
      required:
        - organizationId
      type: object
      properties:
        organizationId:
          type: string
          description: Unique identifier for a given Organization.
    DeletePolicyResult:
      required:
        - policyId
      type: object
      properties:
        policyId:
          type: string
          description: Unique identifier for a given Policy.
    CreateUserTagResult:
      required:
        - userIds
        - userTagId
      type: object
      properties:
        userTagId:
          type: string
          description: Unique identifier for a given User Tag.
        userIds:
          type: array
          description: A list of User IDs.
          items:
            type: string
    DeleteUserTagsResult:
      required:
        - userIds
        - userTagIds
      type: object
      properties:
        userTagIds:
          type: array
          description: A list of User Tag IDs.
          items:
            type: string
        userIds:
          type: array
          description: A list of User IDs.
          items:
            type: string
    SignTransactionResult:
      required:
        - signedTransaction
      type: object
      properties:
        signedTransaction:
          type: string
    DeleteApiKeysResult:
      required:
        - apiKeyIds
      type: object
      properties:
        apiKeyIds:
          type: array
          description: A list of API Key IDs.
          items:
            type: string
    CreateApiKeysResult:
      required:
        - apiKeyIds
      type: object
      properties:
        apiKeyIds:
          type: array
          description: A list of API Key IDs.
          items:
            type: string
    CreatePrivateKeyTagResult:
      required:
        - privateKeyIds
        - privateKeyTagId
      type: object
      properties:
        privateKeyTagId:
          type: string
          description: Unique identifier for a given Private Key Tag.
        privateKeyIds:
          type: array
          description: A list of Private Key IDs.
          items:
            type: string
    DeletePrivateKeyTagsResult:
      required:
        - privateKeyIds
        - privateKeyTagIds
      type: object
      properties:
        privateKeyTagIds:
          type: array
          description: A list of Private Key Tag IDs.
          items:
            type: string
        privateKeyIds:
          type: array
          description: A list of Private Key IDs.
          items:
            type: string
    SetPaymentMethodResult:
      required:
        - cardHolderEmail
        - cardHolderName
        - lastFour
      type: object
      properties:
        lastFour:
          type: string
          description: The last four digits of the credit card added.
        cardHolderName:
          type: string
          description: The name associated with the payment method.
        cardHolderEmail:
          type: string
          description: The email address associated with the payment method.
    ActivateBillingTierResult:
      required:
        - productId
      type: object
      properties:
        productId:
          type: string
          description: The id of the product being subscribed to.
    DeletePaymentMethodResult:
      required:
        - paymentMethodId
      type: object
      properties:
        paymentMethodId:
          type: string
          description: The payment method that was removed.
    CreateApiOnlyUsersResult:
      required:
        - userIds
      type: object
      properties:
        userIds:
          type: array
          description: A list of API-only User IDs.
          items:
            type: string
    UpdateRootQuorumResult:
      type: object
    UpdateUserTagResult:
      required:
        - userTagId
      type: object
      properties:
        userTagId:
          type: string
          description: Unique identifier for a given User Tag.
    UpdatePrivateKeyTagResult:
      required:
        - privateKeyTagId
      type: object
      properties:
        privateKeyTagId:
          type: string
          description: Unique identifier for a given Private Key Tag.
    CreateSubOrganizationResult:
      required:
        - subOrganizationId
      type: object
      properties:
        subOrganizationId:
          type: string
        rootUserIds:
          type: array
          items:
            type: string
    UpdateAllowedOriginsResult:
      type: object
    CreatePrivateKeysResultV2:
      required:
        - privateKeys
      type: object
      properties:
        privateKeys:
          type: array
          description: A list of Private Key IDs and addresses.
          items:
            $ref: '#/components/schemas/PrivateKeyResult'
    UpdateUserResult:
      required:
        - userId
      type: object
      properties:
        userId:
          type: string
          description: A User ID.
    UpdatePolicyResult:
      required:
        - policyId
      type: object
      properties:
        policyId:
          type: string
          description: Unique identifier for a given Policy.
    CreateSubOrganizationResultV3:
      required:
        - privateKeys
        - subOrganizationId
      type: object
      properties:
        subOrganizationId:
          type: string
        privateKeys:
          type: array
          description: A list of Private Key IDs and addresses.
          items:
            $ref: '#/components/schemas/PrivateKeyResult'
        rootUserIds:
          type: array
          items:
            type: string
    CreateWalletResult:
      required:
        - addresses
        - walletId
      type: object
      properties:
        walletId:
          type: string
          description: Unique identifier for a Wallet.
        addresses:
          type: array
          description: A list of account addresses.
          items:
            type: string
    CreateWalletAccountsResult:
      required:
        - addresses
      type: object
      properties:
        addresses:
          type: array
          description: A list of derived addresses.
          items:
            type: string
    InitUserEmailRecoveryResult:
      required:
        - userId
      type: object
      properties:
        userId:
          type: string
          description: Unique identifier for the user being recovered.
    RecoverUserResult:
      required:
        - authenticatorId
      type: object
      properties:
        authenticatorId:
          type: array
          description: ID of the authenticator created.
          items:
            type: string
    SetOrganizationFeatureResult:
      required:
        - features
      type: object
      properties:
        features:
          type: array
          description: Resulting list of organization features.
          items:
            $ref: '#/components/schemas/Feature'
    RemoveOrganizationFeatureResult:
      required:
        - features
      type: object
      properties:
        features:
          type: array
          description: Resulting list of organization features.
          items:
            $ref: '#/components/schemas/Feature'
    ExportPrivateKeyResult:
      required:
        - exportBundle
        - privateKeyId
      type: object
      properties:
        privateKeyId:
          type: string
          description: Unique identifier for a given Private Key.
        exportBundle:
          type: string
          description: >-
            Export bundle containing a private key encrypted to the client's
            target public key.
    ExportWalletResult:
      required:
        - exportBundle
        - walletId
      type: object
      properties:
        walletId:
          type: string
          description: Unique identifier for a given Wallet.
        exportBundle:
          type: string
          description: >-
            Export bundle containing a wallet mnemonic + optional newline
            passphrase encrypted by the client's target public key.
    CreateSubOrganizationResultV4:
      required:
        - subOrganizationId
      type: object
      properties:
        subOrganizationId:
          type: string
        wallet:
          $ref: '#/components/schemas/WalletResult'
        rootUserIds:
          type: array
          items:
            type: string
    EmailAuthResult:
      required:
        - apiKeyId
        - userId
      type: object
      properties:
        userId:
          type: string
          description: Unique identifier for the authenticating User.
        apiKeyId:
          type: string
          description: Unique identifier for the created API key.
    ExportWalletAccountResult:
      required:
        - address
        - exportBundle
      type: object
      properties:
        address:
          type: string
          description: Address to identify Wallet Account.
        exportBundle:
          type: string
          description: >-
            Export bundle containing a private key encrypted by the client's
            target public key.
    InitImportWalletResult:
      required:
        - importBundle
      type: object
      properties:
        importBundle:
          type: string
          description: >-
            Import bundle containing a public key and signature to use for
            importing client data.
    ImportWalletResult:
      required:
        - addresses
        - walletId
      type: object
      properties:
        walletId:
          type: string
          description: Unique identifier for a Wallet.
        addresses:
          type: array
          description: A list of account addresses.
          items:
            type: string
    InitImportPrivateKeyResult:
      required:
        - importBundle
      type: object
      properties:
        importBundle:
          type: string
          description: >-
            Import bundle containing a public key and signature to use for
            importing client data.
    ImportPrivateKeyResult:
      required:
        - addresses
        - privateKeyId
      type: object
      properties:
        privateKeyId:
          type: string
          description: Unique identifier for a Private Key.
        addresses:
          type: array
          description: A list of addresses.
          items:
            $ref: '#/components/schemas/activity.v1.Address'
    CreatePoliciesResult:
      required:
        - policyIds
      type: object
      properties:
        policyIds:
          type: array
          description: A list of unique identifiers for the created policies.
          items:
            type: string
    SignRawPayloadsResult:
      type: object
      properties:
        signatures:
          type: array
          items:
            $ref: '#/components/schemas/SignRawPayloadResult'
    CreateReadOnlySessionResult:
      required:
        - organizationId
        - organizationName
        - session
        - sessionExpiry
        - userId
        - username
      type: object
      properties:
        organizationId:
          type: string
          description: >-
            Unique identifier for a given Organization. If the request is being
            made by a user and their Sub-Organization ID is unknown, this can be
            the Parent Organization ID. However, using the Sub-Organization ID
            is preferred due to performance reasons.
        organizationName:
          type: string
          description: Human-readable name for an Organization.
        userId:
          type: string
          description: Unique identifier for a given User.
        username:
          type: string
          description: Human-readable name for a User.
        session:
          type: string
          description: String representing a read only session
        sessionExpiry:
          type: string
          description: >-
            UTC timestamp in seconds representing the expiry time for the read
            only session.
          format: uint64
    CreateOauthProvidersResult:
      required:
        - providerIds
      type: object
      properties:
        providerIds:
          type: array
          description: A list of unique identifiers for Oauth Providers
          items:
            type: string
    DeleteOauthProvidersResult:
      required:
        - providerIds
      type: object
      properties:
        providerIds:
          type: array
          description: A list of unique identifiers for Oauth Providers
          items:
            type: string
    CreateSubOrganizationResultV5:
      required:
        - subOrganizationId
      type: object
      properties:
        subOrganizationId:
          type: string
        wallet:
          $ref: '#/components/schemas/WalletResult'
        rootUserIds:
          type: array
          items:
            type: string
    OauthResult:
      required:
        - apiKeyId
        - credentialBundle
        - userId
      type: object
      properties:
        userId:
          type: string
          description: Unique identifier for the authenticating User.
        apiKeyId:
          type: string
          description: Unique identifier for the created API key.
        credentialBundle:
          type: string
          description: HPKE encrypted credential bundle
    CreateReadWriteSessionResult:
      required:
        - apiKeyId
        - credentialBundle
        - organizationId
        - organizationName
        - userId
        - username
      type: object
      properties:
        organizationId:
          type: string
          description: >-
            Unique identifier for a given Organization. If the request is being
            made by a user and their Sub-Organization ID is unknown, this can be
            the Parent Organization ID. However, using the Sub-Organization ID
            is preferred due to performance reasons.
        organizationName:
          type: string
          description: Human-readable name for an Organization.
        userId:
          type: string
          description: Unique identifier for a given User.
        username:
          type: string
          description: Human-readable name for a User.
        apiKeyId:
          type: string
          description: Unique identifier for the created API key.
        credentialBundle:
          type: string
          description: HPKE encrypted credential bundle
    CreateSubOrganizationResultV6:
      required:
        - subOrganizationId
      type: object
      properties:
        subOrganizationId:
          type: string
        wallet:
          $ref: '#/components/schemas/WalletResult'
        rootUserIds:
          type: array
          items:
            type: string
    DeletePrivateKeysResult:
      required:
        - privateKeyIds
      type: object
      properties:
        privateKeyIds:
          type: array
          description: A list of private key unique identifiers that were removed
          items:
            type: string
    DeleteWalletsResult:
      required:
        - walletIds
      type: object
      properties:
        walletIds:
          type: array
          description: A list of wallet unique identifiers that were removed
          items:
            type: string
    CreateReadWriteSessionResultV2:
      required:
        - apiKeyId
        - credentialBundle
        - organizationId
        - organizationName
        - userId
        - username
      type: object
      properties:
        organizationId:
          type: string
          description: >-
            Unique identifier for a given Organization. If the request is being
            made by a user and their Sub-Organization ID is unknown, this can be
            the Parent Organization ID. However, using the Sub-Organization ID
            is preferred due to performance reasons.
        organizationName:
          type: string
          description: Human-readable name for an Organization.
        userId:
          type: string
          description: Unique identifier for a given User.
        username:
          type: string
          description: Human-readable name for a User.
        apiKeyId:
          type: string
          description: Unique identifier for the created API key.
        credentialBundle:
          type: string
          description: HPKE encrypted credential bundle
    DeleteSubOrganizationResult:
      required:
        - subOrganizationUuid
      type: object
      properties:
        subOrganizationUuid:
          type: string
          description: Unique identifier of the sub organization that was removed
    InitOtpAuthResult:
      required:
        - otpId
      type: object
      properties:
        otpId:
          type: string
          description: Unique identifier for an OTP authentication
    OtpAuthResult:
      required:
        - userId
      type: object
      properties:
        userId:
          type: string
          description: Unique identifier for the authenticating User.
        apiKeyId:
          type: string
          description: Unique identifier for the created API key.
        credentialBundle:
          type: string
          description: HPKE encrypted credential bundle
    CreateSubOrganizationResultV7:
      required:
        - subOrganizationId
      type: object
      properties:
        subOrganizationId:
          type: string
        wallet:
          $ref: '#/components/schemas/WalletResult'
        rootUserIds:
          type: array
          items:
            type: string
    UpdateWalletResult:
      required:
        - walletId
      type: object
      properties:
        walletId:
          type: string
          description: A Wallet ID.
    User:
      required:
        - apiKeys
        - authenticators
        - createdAt
        - oauthProviders
        - updatedAt
        - userId
        - userName
        - userTags
      type: object
      properties:
        userId:
          type: string
          description: Unique identifier for a given User.
        userName:
          type: string
          description: Human-readable name for a User.
        userEmail:
          type: string
          description: The user's email address.
        userPhoneNumber:
          type: string
          description: The user's phone number in E.164 format e.g. +13214567890
        authenticators:
          type: array
          description: A list of Authenticator parameters.
          items:
            $ref: '#/components/schemas/Authenticator'
        apiKeys:
          type: array
          description: >-
            A list of API Key parameters. This field, if not needed, should be
            an empty array in your request body.
          items:
            $ref: '#/components/schemas/ApiKey'
        userTags:
          type: array
          description: A list of User Tag IDs.
          items:
            type: string
        oauthProviders:
          type: array
          description: A list of Oauth Providers.
          items:
            $ref: '#/components/schemas/OauthProvider'
        createdAt:
          $ref: '#/components/schemas/external.data.v1.Timestamp'
        updatedAt:
          $ref: '#/components/schemas/external.data.v1.Timestamp'
    Any:
      type: object
      properties:
        '@type':
          type: string
      additionalProperties:
        type: object
    AuthenticatorParams:
      required:
        - attestation
        - authenticatorName
        - challenge
        - userId
      type: object
      properties:
        authenticatorName:
          type: string
          description: Human-readable name for an Authenticator.
        userId:
          type: string
          description: Unique identifier for a given User.
        attestation:
          $ref: '#/components/schemas/PublicKeyCredentialWithAttestation'
        challenge:
          type: string
          description: Challenge presented for authentication purposes.
    UserParams:
      required:
        - accessType
        - apiKeys
        - authenticators
        - userName
        - userTags
      type: object
      properties:
        userName:
          type: string
          description: Human-readable name for a User.
        userEmail:
          type: string
          description: The user's email address.
        accessType:
          $ref: '#/components/schemas/AccessType'
        apiKeys:
          type: array
          description: >-
            A list of API Key parameters. This field, if not needed, should be
            an empty array in your request body.
          items:
            $ref: '#/components/schemas/ApiKeyParams'
        authenticators:
          type: array
          description: >-
            A list of Authenticator parameters. This field, if not needed,
            should be an empty array in your request body.
          items:
            $ref: '#/components/schemas/AuthenticatorParams'
        userTags:
          type: array
          description: >-
            A list of User Tag IDs. This field, if not needed, should be an
            empty array in your request body.
          items:
            type: string
    PrivateKeyParams:
      required:
        - addressFormats
        - curve
        - privateKeyName
        - privateKeyTags
      type: object
      properties:
        privateKeyName:
          type: string
          description: Human-readable name for a Private Key.
        curve:
          $ref: '#/components/schemas/Curve'
        privateKeyTags:
          type: array
          description: >-
            A list of Private Key Tag IDs. This field, if not needed, should be
            an empty array in your request body.
          items:
            type: string
        addressFormats:
          type: array
          description: >-
            Cryptocurrency-specific formats for a derived address (e.g.,
            Ethereum).
          items:
            $ref: '#/components/schemas/AddressFormat'
    PayloadEncoding:
      type: string
      enum:
        - PAYLOAD_ENCODING_HEXADECIMAL
        - PAYLOAD_ENCODING_TEXT_UTF8
    HashFunction:
      type: string
      enum:
        - HASH_FUNCTION_NO_OP
        - HASH_FUNCTION_SHA256
        - HASH_FUNCTION_KECCAK256
        - HASH_FUNCTION_NOT_APPLICABLE
    InvitationParams:
      required:
        - accessType
        - receiverUserEmail
        - receiverUserName
        - receiverUserTags
        - senderUserId
      type: object
      properties:
        receiverUserName:
          type: string
          description: The name of the intended Invitation recipient.
        receiverUserEmail:
          type: string
          description: The email address of the intended Invitation recipient.
        receiverUserTags:
          type: array
          description: >-
            A list of tags assigned to the Invitation recipient. This field, if
            not needed, should be an empty array in your request body.
          items:
            type: string
        accessType:
          $ref: '#/components/schemas/AccessType'
        senderUserId:
          type: string
          description: Unique identifier for the Sender of an Invitation.
    Selector:
      type: object
      properties:
        subject:
          type: string
        operator:
          $ref: '#/components/schemas/Operator'
        target:
          type: string
    Effect:
      type: string
      enum:
        - EFFECT_ALLOW
        - EFFECT_DENY
    TransactionType:
      type: string
      enum:
        - TRANSACTION_TYPE_ETHEREUM
        - TRANSACTION_TYPE_SOLANA
    ApiKeyParams:
      required:
        - apiKeyName
        - publicKey
      type: object
      properties:
        apiKeyName:
          type: string
          description: Human-readable name for an API Key.
        publicKey:
          type: string
          description: >-
            The public component of a cryptographic key pair used to sign
            messages and transactions.
        expirationSeconds:
          type: string
          description: >-
            Optional window (in seconds) indicating how long the API Key should
            last.
    SelectorV2:
      type: object
      properties:
        subject:
          type: string
        operator:
          $ref: '#/components/schemas/Operator'
        targets:
          type: array
          items:
            type: string
    ApiOnlyUserParams:
      required:
        - apiKeys
        - userName
        - userTags
      type: object
      properties:
        userName:
          type: string
          description: The name of the new API-only User.
        userEmail:
          type: string
          description: The email address for this API-only User (optional).
        userTags:
          type: array
          description: >-
            A list of tags assigned to the new API-only User. This field, if not
            needed, should be an empty array in your request body.
          items:
            type: string
        apiKeys:
          type: array
          description: >-
            A list of API Key parameters. This field, if not needed, should be
            an empty array in your request body.
          items:
            $ref: '#/components/schemas/ApiKeyParams'
    AuthenticatorParamsV2:
      required:
        - attestation
        - authenticatorName
        - challenge
      type: object
      properties:
        authenticatorName:
          type: string
          description: Human-readable name for an Authenticator.
        challenge:
          type: string
          description: Challenge presented for authentication purposes.
        attestation:
          $ref: '#/components/schemas/Attestation'
    UserParamsV2:
      required:
        - apiKeys
        - authenticators
        - userName
        - userTags
      type: object
      properties:
        userName:
          type: string
          description: Human-readable name for a User.
        userEmail:
          type: string
          description: The user's email address.
        apiKeys:
          type: array
          description: >-
            A list of API Key parameters. This field, if not needed, should be
            an empty array in your request body.
          items:
            $ref: '#/components/schemas/ApiKeyParams'
        authenticators:
          type: array
          description: >-
            A list of Authenticator parameters. This field, if not needed,
            should be an empty array in your request body.
          items:
            $ref: '#/components/schemas/AuthenticatorParamsV2'
        userTags:
          type: array
          description: >-
            A list of User Tag IDs. This field, if not needed, should be an
            empty array in your request body.
          items:
            type: string
    RootUserParams:
      required:
        - apiKeys
        - authenticators
        - userName
      type: object
      properties:
        userName:
          type: string
          description: Human-readable name for a User.
        userEmail:
          type: string
          description: The user's email address.
        apiKeys:
          type: array
          description: >-
            A list of API Key parameters. This field, if not needed, should be
            an empty array in your request body.
          items:
            $ref: '#/components/schemas/ApiKeyParams'
        authenticators:
          type: array
          description: >-
            A list of Authenticator parameters. This field, if not needed,
            should be an empty array in your request body.
          items:
            $ref: '#/components/schemas/AuthenticatorParamsV2'
    WalletAccountParams:
      required:
        - addressFormat
        - curve
        - path
        - pathFormat
      type: object
      properties:
        curve:
          $ref: '#/components/schemas/Curve'
        pathFormat:
          $ref: '#/components/schemas/PathFormat'
        path:
          type: string
          description: Path used to generate a wallet Account.
        addressFormat:
          $ref: '#/components/schemas/AddressFormat'
    EmailCustomizationParams:
      type: object
      properties:
        appName:
          type: string
          description: The name of the application.
        logoUrl:
          type: string
          description: >-
            A URL pointing to a logo in PNG format. Note this logo will be
            resized to fit into 340px x 124px.
        magicLinkTemplate:
          type: string
          description: >-
            A template for the URL to be used in a magic link button, e.g.
            `https://dapp.xyz/%s`. The auth bundle will be interpolated into the
            `%s`.
        templateVariables:
          type: string
          description: >-
            JSON object containing key/value pairs to be used with custom
            templates.
        templateId:
          type: string
          description: >-
            Unique identifier for a given Email Template. If not specified, the
            default is the most recent Email Template.
    FeatureName:
      type: string
      enum:
        - FEATURE_NAME_ROOT_USER_EMAIL_RECOVERY
        - FEATURE_NAME_WEBAUTHN_ORIGINS
        - FEATURE_NAME_EMAIL_AUTH
        - FEATURE_NAME_EMAIL_RECOVERY
        - FEATURE_NAME_WEBHOOK
        - FEATURE_NAME_SMS_AUTH
        - FEATURE_NAME_OTP_EMAIL_AUTH
    MnemonicLanguage:
      type: string
      enum:
        - MNEMONIC_LANGUAGE_ENGLISH
        - MNEMONIC_LANGUAGE_SIMPLIFIED_CHINESE
        - MNEMONIC_LANGUAGE_TRADITIONAL_CHINESE
        - MNEMONIC_LANGUAGE_CZECH
        - MNEMONIC_LANGUAGE_FRENCH
        - MNEMONIC_LANGUAGE_ITALIAN
        - MNEMONIC_LANGUAGE_JAPANESE
        - MNEMONIC_LANGUAGE_KOREAN
        - MNEMONIC_LANGUAGE_SPANISH
    WalletParams:
      required:
        - accounts
        - walletName
      type: object
      properties:
        walletName:
          type: string
          description: Human-readable name for a Wallet.
        accounts:
          type: array
          description: >-
            A list of wallet Accounts. This field, if not needed, should be an
            empty array in your request body.
          items:
            $ref: '#/components/schemas/WalletAccountParams'
        mnemonicLength:
          type: integer
          description: >-
            Length of mnemonic to generate the Wallet seed. Defaults to 12.
            Accepted values: 12, 15, 18, 21, 24.
          format: int32
    Curve:
      type: string
      enum:
        - CURVE_SECP256K1
        - CURVE_ED25519
    AddressFormat:
      type: string
      enum:
        - ADDRESS_FORMAT_UNCOMPRESSED
        - ADDRESS_FORMAT_COMPRESSED
        - ADDRESS_FORMAT_ETHEREUM
        - ADDRESS_FORMAT_SOLANA
        - ADDRESS_FORMAT_COSMOS
        - ADDRESS_FORMAT_TRON
        - ADDRESS_FORMAT_SUI
        - ADDRESS_FORMAT_APTOS
        - ADDRESS_FORMAT_BITCOIN_MAINNET_P2PKH
        - ADDRESS_FORMAT_BITCOIN_MAINNET_P2SH
        - ADDRESS_FORMAT_BITCOIN_MAINNET_P2WPKH
        - ADDRESS_FORMAT_BITCOIN_MAINNET_P2WSH
        - ADDRESS_FORMAT_BITCOIN_MAINNET_P2TR
        - ADDRESS_FORMAT_BITCOIN_TESTNET_P2PKH
        - ADDRESS_FORMAT_BITCOIN_TESTNET_P2SH
        - ADDRESS_FORMAT_BITCOIN_TESTNET_P2WPKH
        - ADDRESS_FORMAT_BITCOIN_TESTNET_P2WSH
        - ADDRESS_FORMAT_BITCOIN_TESTNET_P2TR
        - ADDRESS_FORMAT_BITCOIN_SIGNET_P2PKH
        - ADDRESS_FORMAT_BITCOIN_SIGNET_P2SH
        - ADDRESS_FORMAT_BITCOIN_SIGNET_P2WPKH
        - ADDRESS_FORMAT_BITCOIN_SIGNET_P2WSH
        - ADDRESS_FORMAT_BITCOIN_SIGNET_P2TR
        - ADDRESS_FORMAT_BITCOIN_REGTEST_P2PKH
        - ADDRESS_FORMAT_BITCOIN_REGTEST_P2SH
        - ADDRESS_FORMAT_BITCOIN_REGTEST_P2WPKH
        - ADDRESS_FORMAT_BITCOIN_REGTEST_P2WSH
        - ADDRESS_FORMAT_BITCOIN_REGTEST_P2TR
        - ADDRESS_FORMAT_SEI
        - ADDRESS_FORMAT_XLM
        - ADDRESS_FORMAT_DOGE_MAINNET
        - ADDRESS_FORMAT_DOGE_TESTNET
        - ADDRESS_FORMAT_TON_V3R2
        - ADDRESS_FORMAT_TON_V4R2
        - ADDRESS_FORMAT_XRP
    OauthProviderParams:
      required:
        - oidcToken
        - providerName
      type: object
      properties:
        providerName:
          type: string
          description: Human-readable name to identify a Provider.
        oidcToken:
          type: string
          description: Base64 encoded OIDC token
    RootUserParamsV2:
      required:
        - apiKeys
        - authenticators
        - oauthProviders
        - userName
      type: object
      properties:
        userName:
          type: string
          description: Human-readable name for a User.
        userEmail:
          type: string
          description: The user's email address.
        apiKeys:
          type: array
          description: >-
            A list of API Key parameters. This field, if not needed, should be
            an empty array in your request body.
          items:
            $ref: '#/components/schemas/ApiKeyParams'
        authenticators:
          type: array
          description: >-
            A list of Authenticator parameters. This field, if not needed,
            should be an empty array in your request body.
          items:
            $ref: '#/components/schemas/AuthenticatorParamsV2'
        oauthProviders:
          type: array
          description: >-
            A list of Oauth providers. This field, if not needed, should be an
            empty array in your request body.
          items:
            $ref: '#/components/schemas/OauthProviderParams'
    ApiKeyParamsV2:
      required:
        - apiKeyName
        - curveType
        - publicKey
      type: object
      properties:
        apiKeyName:
          type: string
          description: Human-readable name for an API Key.
        publicKey:
          type: string
          description: >-
            The public component of a cryptographic key pair used to sign
            messages and transactions.
        curveType:
          $ref: '#/components/schemas/ApiKeyCurve'
        expirationSeconds:
          type: string
          description: >-
            Optional window (in seconds) indicating how long the API Key should
            last.
    RootUserParamsV3:
      required:
        - apiKeys
        - authenticators
        - oauthProviders
        - userName
      type: object
      properties:
        userName:
          type: string
          description: Human-readable name for a User.
        userEmail:
          type: string
          description: The user's email address.
        apiKeys:
          type: array
          description: >-
            A list of API Key parameters. This field, if not needed, should be
            an empty array in your request body.
          items:
            $ref: '#/components/schemas/ApiKeyParamsV2'
        authenticators:
          type: array
          description: >-
            A list of Authenticator parameters. This field, if not needed,
            should be an empty array in your request body.
          items:
            $ref: '#/components/schemas/AuthenticatorParamsV2'
        oauthProviders:
          type: array
          description: >-
            A list of Oauth providers. This field, if not needed, should be an
            empty array in your request body.
          items:
            $ref: '#/components/schemas/OauthProviderParams'
    SmsCustomizationParams:
      type: object
      properties:
        template:
          type: string
          description: >-
            Template containing references to .OtpCode i.e Your OTP is
            {{.OtpCode}}
    RootUserParamsV4:
      required:
        - apiKeys
        - authenticators
        - oauthProviders
        - userName
      type: object
      properties:
        userName:
          type: string
          description: Human-readable name for a User.
        userEmail:
          type: string
          description: The user's email address.
        userPhoneNumber:
          type: string
          description: The user's phone number in E.164 format e.g. +13214567890
        apiKeys:
          type: array
          description: >-
            A list of API Key parameters. This field, if not needed, should be
            an empty array in your request body.
          items:
            $ref: '#/components/schemas/ApiKeyParamsV2'
        authenticators:
          type: array
          description: >-
            A list of Authenticator parameters. This field, if not needed,
            should be an empty array in your request body.
          items:
            $ref: '#/components/schemas/AuthenticatorParamsV2'
        oauthProviders:
          type: array
          description: >-
            A list of Oauth providers. This field, if not needed, should be an
            empty array in your request body.
          items:
            $ref: '#/components/schemas/OauthProviderParams'
    PrivateKeyResult:
      type: object
      properties:
        privateKeyId:
          type: string
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/activity.v1.Address'
    Feature:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/FeatureName'
        value:
          type: string
    WalletResult:
      required:
        - addresses
        - walletId
      type: object
      properties:
        walletId:
          type: string
        addresses:
          type: array
          description: A list of account addresses.
          items:
            type: string
    activity.v1.Address:
      type: object
      properties:
        format:
          $ref: '#/components/schemas/AddressFormat'
        address:
          type: string
    Authenticator:
      required:
        - aaguid
        - attestationType
        - authenticatorId
        - authenticatorName
        - createdAt
        - credential
        - credentialId
        - model
        - transports
        - updatedAt
      type: object
      properties:
        transports:
          type: array
          description: >-
            Types of transports that may be used by an Authenticator (e.g., USB,
            NFC, BLE).
          items:
            $ref: '#/components/schemas/AuthenticatorTransport'
        attestationType:
          type: string
        aaguid:
          type: string
          description: Identifier indicating the type of the Security Key.
        credentialId:
          type: string
          description: Unique identifier for a WebAuthn credential.
        model:
          type: string
          description: The type of Authenticator device.
        credential:
          $ref: '#/components/schemas/external.data.v1.Credential'
        authenticatorId:
          type: string
          description: Unique identifier for a given Authenticator.
        authenticatorName:
          type: string
          description: Human-readable name for an Authenticator.
        createdAt:
          $ref: '#/components/schemas/external.data.v1.Timestamp'
        updatedAt:
          $ref: '#/components/schemas/external.data.v1.Timestamp'
    ApiKey:
      required:
        - apiKeyId
        - apiKeyName
        - createdAt
        - credential
        - updatedAt
      type: object
      properties:
        credential:
          $ref: '#/components/schemas/external.data.v1.Credential'
        apiKeyId:
          type: string
          description: Unique identifier for a given API Key.
        apiKeyName:
          type: string
          description: Human-readable name for an API Key.
        createdAt:
          $ref: '#/components/schemas/external.data.v1.Timestamp'
        updatedAt:
          $ref: '#/components/schemas/external.data.v1.Timestamp'
        expirationSeconds:
          type: string
          description: >-
            Optional window (in seconds) indicating how long the API Key should
            last.
          format: uint64
    OauthProvider:
      required:
        - audience
        - createdAt
        - issuer
        - providerId
        - providerName
        - subject
        - updatedAt
      type: object
      properties:
        providerId:
          type: string
          description: Unique identifier for an OAuth Provider
        providerName:
          type: string
          description: Human-readable name to identify a Provider.
        issuer:
          type: string
          description: >-
            The issuer of the token, typically a URL indicating the
            authentication server, e.g https://accounts.google.com
        audience:
          type: string
          description: >-
            Expected audience ('aud' attribute of the signed token) which
            represents the app ID
        subject:
          type: string
          description: >-
            Expected subject ('sub' attribute of the signed token) which
            represents the user ID
        createdAt:
          $ref: '#/components/schemas/external.data.v1.Timestamp'
        updatedAt:
          $ref: '#/components/schemas/external.data.v1.Timestamp'
    PublicKeyCredentialWithAttestation:
      required:
        - clientExtensionResults
        - id
        - rawId
        - response
        - type
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - public-key
        rawId:
          type: string
        authenticatorAttachment:
          type: string
          nullable: true
          enum:
            - cross-platform
            - platform
        response:
          $ref: '#/components/schemas/AuthenticatorAttestationResponse'
        clientExtensionResults:
          $ref: '#/components/schemas/SimpleClientExtensionResults'
    AccessType:
      type: string
      enum:
        - ACCESS_TYPE_WEB
        - ACCESS_TYPE_API
        - ACCESS_TYPE_ALL
    Operator:
      type: string
      enum:
        - OPERATOR_EQUAL
        - OPERATOR_MORE_THAN
        - OPERATOR_MORE_THAN_OR_EQUAL
        - OPERATOR_LESS_THAN
        - OPERATOR_LESS_THAN_OR_EQUAL
        - OPERATOR_CONTAINS
        - OPERATOR_NOT_EQUAL
        - OPERATOR_IN
        - OPERATOR_NOT_IN
        - OPERATOR_CONTAINS_ONE
        - OPERATOR_CONTAINS_ALL
    Attestation:
      required:
        - attestationObject
        - clientDataJson
        - credentialId
        - transports
      type: object
      properties:
        credentialId:
          type: string
          description: The cbor encoded then base64 url encoded id of the credential.
        clientDataJson:
          type: string
          description: >-
            A base64 url encoded payload containing metadata about the signing
            context and the challenge.
        attestationObject:
          type: string
          description: >-
            A base64 url encoded payload containing authenticator data and any
            attestation the webauthn provider chooses.
        transports:
          type: array
          description: The type of authenticator transports.
          items:
            $ref: '#/components/schemas/AuthenticatorTransport'
    PathFormat:
      type: string
      enum:
        - PATH_FORMAT_BIP32
    ApiKeyCurve:
      type: string
      enum:
        - API_KEY_CURVE_P256
        - API_KEY_CURVE_SECP256K1
        - API_KEY_CURVE_ED25519
    AuthenticatorTransport:
      type: string
      enum:
        - AUTHENTICATOR_TRANSPORT_BLE
        - AUTHENTICATOR_TRANSPORT_INTERNAL
        - AUTHENTICATOR_TRANSPORT_NFC
        - AUTHENTICATOR_TRANSPORT_USB
        - AUTHENTICATOR_TRANSPORT_HYBRID
    external.data.v1.Credential:
      required:
        - publicKey
        - type
      type: object
      properties:
        publicKey:
          type: string
          description: >-
            The public component of a cryptographic key pair used to sign
            messages and transactions.
        type:
          $ref: '#/components/schemas/CredentialType'
    AuthenticatorAttestationResponse:
      required:
        - attestationObject
        - clientDataJson
      type: object
      properties:
        clientDataJson:
          type: string
        attestationObject:
          type: string
        transports:
          type: array
          items:
            $ref: '#/components/schemas/AuthenticatorTransport'
        authenticatorAttachment:
          type: string
          nullable: true
          enum:
            - cross-platform
            - platform
    SimpleClientExtensionResults:
      type: object
      properties:
        appid:
          type: boolean
        appidExclude:
          type: boolean
        credProps:
          $ref: '#/components/schemas/CredPropsAuthenticationExtensionsClientOutputs'
    CredentialType:
      type: string
      enum:
        - CREDENTIAL_TYPE_WEBAUTHN_AUTHENTICATOR
        - CREDENTIAL_TYPE_API_KEY_P256
        - CREDENTIAL_TYPE_RECOVER_USER_KEY_P256
        - CREDENTIAL_TYPE_API_KEY_SECP256K1
        - CREDENTIAL_TYPE_EMAIL_AUTH_KEY_P256
        - CREDENTIAL_TYPE_API_KEY_ED25519
        - CREDENTIAL_TYPE_OTP_AUTH_KEY_P256
    CredPropsAuthenticationExtensionsClientOutputs:
      required:
        - rk
      type: object
      properties:
        rk:
          type: boolean
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: X-Stamp
      in: header
    AuthenticatorAuth:
      type: apiKey
      name: X-Stamp-WebAuthn
      in: header

````