{
  "swagger": "2.0",
  "info": {
    "title": "API Reference",
    "description": "Review our [API Introduction](../api-introduction) to get started.",
    "version": "1.0",
    "contact": {}
  },
  "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.\n\nSee [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.\n\nSee [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.\n\nSee [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.\n\nDerived 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.\n\nThe 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 Authenticator 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\n\nSee 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.\n\nActivities 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.\n\nActivities that have been proposed, but don't yet meet the Consensus 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."
    },
    {
      "name": "IP Allowlist",
      "description": "IP Allowlists restrict API access to specific CIDR blocks. They can be configured at the organization level (applying to all API keys) or at the individual API key level (overriding organization-level allowlists).\n\nWhen no IP allowlist is configured, all IP addresses are allowed. Organization-level allowlists can be enabled or disabled, while API key-level allowlists are always enforced when present."
    }
  ],
  "host": "api.turnkey.com",
  "schemes": ["https"],
  "consumes": ["application/json"],
  "produces": ["application/json"],
  "paths": {
    "/public/v1/query/get_active_policies": {
      "post": {
        "summary": "Get active policies",
        "description": "For each policy in an organization, report whether it is currently active based on the enclave's trusted timestamp and the policy's time window (if any). Policies without a time field are always active.",
        "operationId": "GetActivePolicies",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetActivePoliciesResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetActivePoliciesRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/query/get_activity": {
      "post": {
        "summary": "Get activity",
        "description": "Get details about an activity.",
        "operationId": "GetActivity",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetActivityRequest"
            }
          }
        ],
        "tags": ["Activities"]
      }
    },
    "/public/v1/query/get_api_key": {
      "post": {
        "summary": "Get API key",
        "description": "Get details about an API key.",
        "operationId": "GetApiKey",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetApiKeyResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetApiKeyRequest"
            }
          }
        ],
        "tags": ["API keys"]
      }
    },
    "/public/v1/query/get_api_keys": {
      "post": {
        "summary": "Get API keys",
        "description": "Get details about API keys for a user.",
        "operationId": "GetApiKeys",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetApiKeysResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetApiKeysRequest"
            }
          }
        ],
        "tags": ["API keys"]
      }
    },
    "/public/v1/query/get_app_status": {
      "post": {
        "summary": "Get TVC App status",
        "description": "Get live runtime status for a TVC App from the cluster.",
        "operationId": "GetAppStatus",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetAppStatusResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetAppStatusRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/query/get_authenticator": {
      "post": {
        "summary": "Get authenticator",
        "description": "Get details about an authenticator.",
        "operationId": "GetAuthenticator",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetAuthenticatorResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetAuthenticatorRequest"
            }
          }
        ],
        "tags": ["Authenticators"]
      }
    },
    "/public/v1/query/get_authenticators": {
      "post": {
        "summary": "Get authenticators",
        "description": "Get details about authenticators for a user.",
        "operationId": "GetAuthenticators",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetAuthenticatorsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetAuthenticatorsRequest"
            }
          }
        ],
        "tags": ["Authenticators"]
      }
    },
    "/public/v1/query/get_boot_proof": {
      "post": {
        "summary": "Get a specific boot proof",
        "description": "Get the boot proof for a given ephemeral key.",
        "operationId": "GetBootProof",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/BootProofResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetBootProofRequest"
            }
          }
        ],
        "tags": ["Boot Proof"]
      }
    },
    "/public/v1/query/get_claim_earn_fees_status": {
      "post": {
        "summary": "Get Earn claim fees status",
        "description": "Poll the status of a fee claim by its claim_request_id.",
        "operationId": "GetClaimEarnFeesStatus",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetClaimEarnFeesStatusResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetClaimEarnFeesStatusRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/query/get_earn_deploy_status": {
      "post": {
        "summary": "Get Earn deploy status",
        "description": "Poll the status of a wrapper deployment by its deploy_request_id.",
        "operationId": "GetEarnDeployStatus",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetEarnDeployStatusResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetEarnDeployStatusRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/query/get_earn_deposit_status": {
      "post": {
        "summary": "Get Earn deposit status",
        "description": "Poll the status of a deposit by its deposit_request_id (for the async/sponsored deposit path).",
        "operationId": "GetEarnDepositStatus",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetEarnDepositStatusResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetEarnDepositStatusRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/query/get_earn_withdraw_status": {
      "post": {
        "summary": "Get Earn withdraw status",
        "description": "Poll the status of a withdrawal by its withdraw_request_id.",
        "operationId": "GetEarnWithdrawStatus",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetEarnWithdrawStatusResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetEarnWithdrawStatusRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/query/get_gas_usage": {
      "post": {
        "summary": "Get gas usage",
        "description": "Get gas usage and gas limits for either the parent organization or a sub-organization.",
        "operationId": "GetGasUsage",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetGasUsageResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetGasUsageRequest"
            }
          }
        ],
        "tags": ["Broadcasting"]
      }
    },
    "/public/v1/query/get_ip_allowlist": {
      "post": {
        "summary": "Get IP Allowlist",
        "description": "Get IP allowlist and rules for an organization.",
        "operationId": "GetIpAllowlist",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetIpAllowlistResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetIpAllowlistRequest"
            }
          }
        ],
        "tags": ["IP Allowlist"]
      }
    },
    "/public/v1/query/get_latest_boot_proof": {
      "post": {
        "summary": "Get the latest boot proof for an app",
        "description": "Get the latest boot proof for a given enclave app name.",
        "operationId": "GetLatestBootProof",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/BootProofResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetLatestBootProofRequest"
            }
          }
        ],
        "tags": ["Boot Proof"]
      }
    },
    "/public/v1/query/get_mfa_policies": {
      "post": {
        "summary": "Get MFA policies",
        "description": "Get all MFA policies for a user.",
        "operationId": "GetMfaPolicies",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetMfaPoliciesResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetMfaPoliciesRequest"
            }
          }
        ],
        "tags": ["MFA Policies"]
      }
    },
    "/public/v1/query/get_mfa_policy": {
      "post": {
        "summary": "Get MFA policy",
        "description": "Get a single MFA policy for a user.",
        "operationId": "GetMfaPolicy",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetMfaPolicyResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetMfaPolicyRequest"
            }
          }
        ],
        "tags": ["MFA Policies"]
      }
    },
    "/public/v1/query/get_mfa_status": {
      "post": {
        "summary": "Get MFA status",
        "description": "Get the MFA status of an activity for a specific user or all voting users.",
        "operationId": "GetMfaStatus",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetMfaStatusResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetMfaStatusRequest"
            }
          }
        ],
        "tags": ["MFA Policies"]
      }
    },
    "/public/v1/query/get_nonces": {
      "post": {
        "summary": "Get nonces",
        "description": "Get nonce values for an address on a given network. Can fetch the standard on-chain nonce and/or the gas station nonce used for sponsored transactions.",
        "operationId": "GetNonces",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetNoncesResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetNoncesRequest"
            }
          }
        ],
        "tags": ["Broadcasting"]
      }
    },
    "/public/v1/query/get_oauth2_credential": {
      "post": {
        "summary": "Get OAuth 2.0 credential",
        "description": "Get details about an OAuth 2.0 credential.",
        "operationId": "GetOauth2Credential",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetOauth2CredentialResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetOauth2CredentialRequest"
            }
          }
        ]
      }
    },
    "/public/v1/query/get_oauth_providers": {
      "post": {
        "summary": "Get Oauth providers",
        "description": "Get details about Oauth providers for a user.",
        "operationId": "GetOauthProviders",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetOauthProvidersResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetOauthProvidersRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/query/get_onramp_transaction_status": {
      "post": {
        "summary": "Get On Ramp transaction status",
        "description": "Get the status of an on ramp transaction.",
        "operationId": "GetOnRampTransactionStatus",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetOnRampTransactionStatusResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetOnRampTransactionStatusRequest"
            }
          }
        ],
        "tags": ["On Ramp"]
      }
    },
    "/public/v1/query/get_organization_configs": {
      "post": {
        "summary": "Get configs",
        "description": "Get quorum settings and features for an organization.",
        "operationId": "GetOrganizationConfigs",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetOrganizationConfigsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetOrganizationConfigsRequest"
            }
          }
        ],
        "tags": ["Organizations"]
      }
    },
    "/public/v1/query/get_policy": {
      "post": {
        "summary": "Get policy",
        "description": "Get details about a policy.",
        "operationId": "GetPolicy",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetPolicyResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetPolicyRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/query/get_policy_evaluations": {
      "post": {
        "summary": "Get policy evaluations",
        "description": "Get the policy evaluations for an activity.",
        "operationId": "GetPolicyEvaluations",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetPolicyEvaluationsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetPolicyEvaluationsRequest"
            }
          }
        ],
        "tags": ["Activities"]
      }
    },
    "/public/v1/query/get_private_key": {
      "post": {
        "summary": "Get private key",
        "description": "Get details about a private key.",
        "operationId": "GetPrivateKey",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetPrivateKeyResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetPrivateKeyRequest"
            }
          }
        ],
        "tags": ["Private Keys"]
      }
    },
    "/public/v1/query/get_send_transaction_status": {
      "post": {
        "summary": "Get send transaction status",
        "description": "Get the status of a send transaction request.",
        "operationId": "GetSendTransactionStatus",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetSendTransactionStatusResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetSendTransactionStatusRequest"
            }
          }
        ],
        "tags": ["Send Transactions"]
      }
    },
    "/public/v1/query/get_session_profile": {
      "post": {
        "summary": "Get session profile",
        "description": "Get a single session profile for an organization.",
        "operationId": "GetSessionProfile",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetSessionProfileResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetSessionProfileRequest"
            }
          }
        ],
        "tags": ["Session Profiles"]
      }
    },
    "/public/v1/query/get_session_profiles": {
      "post": {
        "summary": "Get session profiles",
        "description": "Get all session profiles for an organization.",
        "operationId": "GetSessionProfiles",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetSessionProfilesResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetSessionProfilesRequest"
            }
          }
        ],
        "tags": ["Session Profiles"]
      }
    },
    "/public/v1/query/get_smart_contract_interface": {
      "post": {
        "summary": "Get smart contract interface",
        "description": "Get details about a smart contract interface.",
        "operationId": "GetSmartContractInterface",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetSmartContractInterfaceResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetSmartContractInterfaceRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/query/get_swap_status": {
      "post": {
        "summary": "Get swap status",
        "description": "Poll the status of a swap by its swap_request_id. Covers same-chain and cross-chain swaps.",
        "operationId": "GetSwapStatus",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetSwapStatusResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetSwapStatusRequest"
            }
          }
        ],
        "tags": ["Swaps"]
      }
    },
    "/public/v1/query/get_tvc_app": {
      "post": {
        "summary": "Get TVC App",
        "description": "Get details about a single TVC App",
        "operationId": "GetTvcApp",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetTvcAppResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetTvcAppRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/query/get_tvc_deployment": {
      "post": {
        "summary": "Get TVC Deployment",
        "description": "Get details about a single TVC Deployment",
        "operationId": "GetTvcDeployment",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetTvcDeploymentResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetTvcDeploymentRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/query/get_tvc_deployment_debug_logs": {
      "post": {
        "summary": "Get TVC Deployment debug logs",
        "description": "Get a bounded window of application logs from a debug-mode TVC deployment. Returned lines are collected from every running replica and sorted by platform timestamp.",
        "operationId": "GetTvcDeploymentDebugLogs",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetTvcDeploymentDebugLogsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetTvcDeploymentDebugLogsRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/query/get_tvc_qos_versions": {
      "post": {
        "summary": "Get TVC QOS versions",
        "description": "List QOS versions supported for new TVC deployments and the latest recommended QOS version.",
        "operationId": "GetTvcQosVersions",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetTvcQosVersionsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetTvcQosVersionsRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/query/get_user": {
      "post": {
        "summary": "Get user",
        "description": "Get details about a user.",
        "operationId": "GetUser",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetUserResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetUserRequest"
            }
          }
        ],
        "tags": ["Users"]
      }
    },
    "/public/v1/query/get_wallet": {
      "post": {
        "summary": "Get wallet",
        "description": "Get details about a wallet.",
        "operationId": "GetWallet",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetWalletResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetWalletRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/query/get_wallet_account": {
      "post": {
        "summary": "Get wallet account",
        "description": "Get a single wallet account.",
        "operationId": "GetWalletAccount",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetWalletAccountResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetWalletAccountRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/query/get_wallet_address_balances": {
      "post": {
        "summary": "Get balances",
        "description": "Get balances of supported assets for an address on the specified network. Only non-zero balances are returned.",
        "operationId": "GetWalletAddressBalances",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetWalletAddressBalancesResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetWalletAddressBalancesRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/query/list_activities": {
      "post": {
        "summary": "List activities",
        "description": "List all activities within an organization.",
        "operationId": "GetActivities",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetActivitiesResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetActivitiesRequest"
            }
          }
        ],
        "tags": ["Activities"]
      }
    },
    "/public/v1/query/list_app_proofs": {
      "post": {
        "summary": "List App Proofs for an activity",
        "description": "List the App Proofs for the given activity.",
        "operationId": "GetAppProofs",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetAppProofsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetAppProofsRequest"
            }
          }
        ],
        "tags": ["App Proof"]
      }
    },
    "/public/v1/query/list_earn_enabled_vaults": {
      "post": {
        "summary": "Get Earn enabled vaults",
        "description": "Get the organization's deployed wrappers with on-chain total deposited and live APY. The management view, distinct from per-wallet positions.",
        "operationId": "ListEarnEnabledVaults",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListEarnEnabledVaultsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListEarnEnabledVaultsRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/query/list_earn_positions": {
      "post": {
        "summary": "Get Earn positions",
        "description": "Get the active Earn positions for a specific wallet, including current value, cost basis, yield, and projected fees.",
        "operationId": "ListEarnPositions",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListEarnPositionsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListEarnPositionsRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/query/list_earn_vaults": {
      "post": {
        "summary": "Get Earn vault catalog",
        "description": "Get the catalog of all wrappable yield vaults across supported chains, enriched with live TVL and APY. Annotates which vaults the organization has already enabled.",
        "operationId": "ListEarnVaults",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListEarnVaultsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListEarnVaultsRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/query/list_email_events": {
      "post": {
        "summary": "List email events",
        "description": "List email events for the organization.",
        "operationId": "ListEmailEvents",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListEmailEventsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListEmailEventsRequest"
            }
          }
        ],
        "tags": ["Email"]
      }
    },
    "/public/v1/query/list_eth_transaction_history": {
      "post": {
        "summary": "List Eth transaction history",
        "description": "List Ethereum transaction history for a wallet address on the specified network.",
        "operationId": "ListEthTransactionHistory",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListEthTransactionHistoryResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListEthTransactionHistoryRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/query/list_fiat_on_ramp_credentials": {
      "post": {
        "summary": "List Fiat On Ramp Credentials",
        "description": "List all fiat on ramp provider credentials within an organization.",
        "operationId": "ListFiatOnRampCredentials",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListFiatOnRampCredentialsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListFiatOnRampCredentialsRequest"
            }
          }
        ],
        "tags": ["On Ramp"]
      }
    },
    "/public/v1/query/list_oauth2_credentials": {
      "post": {
        "summary": "List OAuth 2.0 Credentials",
        "description": "List all OAuth 2.0 credentials within an organization.",
        "operationId": "ListOauth2Credentials",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListOauth2CredentialsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListOauth2CredentialsRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/query/list_policies": {
      "post": {
        "summary": "List policies",
        "description": "List all policies within an organization.",
        "operationId": "GetPolicies",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetPoliciesResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetPoliciesRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/query/list_private_key_tags": {
      "post": {
        "summary": "List private key tags",
        "description": "List all private key tags within an organization.",
        "operationId": "ListPrivateKeyTags",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListPrivateKeyTagsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListPrivateKeyTagsRequest"
            }
          }
        ],
        "tags": ["Private Key Tags"]
      }
    },
    "/public/v1/query/list_private_keys": {
      "post": {
        "summary": "List private keys",
        "description": "List all private keys within an organization.",
        "operationId": "GetPrivateKeys",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetPrivateKeysResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetPrivateKeysRequest"
            }
          }
        ],
        "tags": ["Private Keys"]
      }
    },
    "/public/v1/query/list_secrets": {
      "post": {
        "summary": "List secrets",
        "description": "List secret metadata for an organization.",
        "operationId": "ListSecrets",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListSecretsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListSecretsRequest"
            }
          }
        ],
        "tags": ["Secrets"]
      }
    },
    "/public/v1/query/list_smart_contract_interfaces": {
      "post": {
        "summary": "List smart contract interfaces",
        "description": "List all smart contract interfaces within an organization.",
        "operationId": "GetSmartContractInterfaces",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetSmartContractInterfacesResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetSmartContractInterfacesRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/query/list_sol_transaction_history": {
      "post": {
        "summary": "List Sol transaction history",
        "description": "List Solana transaction history for a wallet address on the specified network.",
        "operationId": "ListSolTransactionHistory",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListSolTransactionHistoryResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListSolTransactionHistoryRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/query/list_suborgs": {
      "post": {
        "summary": "Get sub-organizations",
        "description": "Get all suborg IDs associated given a parent org ID and an optional filter.",
        "operationId": "GetSubOrgIds",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetSubOrgIdsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetSubOrgIdsRequest"
            }
          }
        ],
        "tags": ["Organizations"]
      }
    },
    "/public/v1/query/list_supported_assets": {
      "post": {
        "summary": "List supported assets",
        "description": "List supported assets for the specified network.",
        "operationId": "ListSupportedAssets",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListSupportedAssetsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListSupportedAssetsRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/query/list_tvc_app_deployments": {
      "post": {
        "summary": "List TVC Deployments",
        "description": "List all deployments for a given TVC App",
        "operationId": "GetTvcAppDeployments",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetTvcAppDeploymentsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetTvcAppDeploymentsRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/query/list_tvc_apps": {
      "post": {
        "summary": "List TVC Apps",
        "description": "List all TVC Apps within an organization.",
        "operationId": "GetTvcApps",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetTvcAppsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetTvcAppsRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/query/list_user_tags": {
      "post": {
        "summary": "List user tags",
        "description": "List all user tags within an organization.",
        "operationId": "ListUserTags",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListUserTagsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListUserTagsRequest"
            }
          }
        ],
        "tags": ["User Tags"]
      }
    },
    "/public/v1/query/list_users": {
      "post": {
        "summary": "List users",
        "description": "List all users within an organization.",
        "operationId": "GetUsers",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetUsersResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetUsersRequest"
            }
          }
        ],
        "tags": ["Users"]
      }
    },
    "/public/v1/query/list_verified_suborgs": {
      "post": {
        "summary": "Get verified sub-organizations",
        "description": "Get all email or phone verified suborg IDs associated given a parent org ID.",
        "operationId": "GetVerifiedSubOrgIds",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetVerifiedSubOrgIdsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetVerifiedSubOrgIdsRequest"
            }
          }
        ],
        "tags": ["Organizations"]
      }
    },
    "/public/v1/query/list_wallet_accounts": {
      "post": {
        "summary": "List wallet accounts",
        "description": "List all accounts within a wallet.",
        "operationId": "GetWalletAccounts",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetWalletAccountsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetWalletAccountsRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/query/list_wallets": {
      "post": {
        "summary": "List wallets",
        "description": "List all wallets within an organization.",
        "operationId": "GetWallets",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetWalletsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetWalletsRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/query/list_webhook_endpoints": {
      "post": {
        "summary": "List webhook endpoints",
        "description": "List webhook endpoints within an organization.",
        "operationId": "ListWebhookEndpoints",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ListWebhookEndpointsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ListWebhookEndpointsRequest"
            }
          }
        ],
        "tags": ["Organizations"]
      }
    },
    "/public/v1/query/validate_tvc_image": {
      "post": {
        "summary": "Validate Container Image for TVC",
        "description": "Validate a container image URL and pull secret for TVC deployment",
        "operationId": "ValidateTvcImage",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ValidateTvcImageResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ValidateTvcImageRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/query/whoami": {
      "post": {
        "summary": "Who am I?",
        "description": "Get basic information about your current API or WebAuthN user and their organization. Affords sub-organization look ups via parent organization for WebAuthN or API key users.",
        "operationId": "GetWhoami",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/GetWhoamiResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GetWhoamiRequest"
            }
          }
        ],
        "tags": ["Sessions"]
      }
    },
    "/public/v1/submit/approve_activity": {
      "post": {
        "summary": "Approve activity",
        "description": "Approve an activity.",
        "operationId": "ApproveActivity",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApproveActivityRequest"
            }
          }
        ],
        "tags": ["Consensus"]
      }
    },
    "/public/v1/submit/claim_earn_fees": {
      "post": {
        "summary": "Claim earn fees",
        "description": "Claim earn fees through the activity pipeline.",
        "operationId": "ClaimEarnFees",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ClaimEarnFeesRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/submit/claim_swap_fees": {
      "post": {
        "summary": "Claim swap fees",
        "description": "Claim swap fees through the activity pipeline.",
        "operationId": "ClaimSwapFees",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ClaimSwapFeesRequest"
            }
          }
        ],
        "tags": ["Swaps"]
      }
    },
    "/public/v1/submit/create_api_keys": {
      "post": {
        "summary": "Create API keys",
        "description": "Add API keys to an existing user.",
        "operationId": "CreateApiKeys",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateApiKeysRequest"
            }
          }
        ],
        "tags": ["API Keys"]
      }
    },
    "/public/v1/submit/create_authenticators": {
      "post": {
        "summary": "Create authenticators",
        "description": "Create authenticators to authenticate requests to Turnkey.",
        "operationId": "CreateAuthenticators",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateAuthenticatorsRequest"
            }
          }
        ],
        "tags": ["Authenticators"]
      }
    },
    "/public/v1/submit/create_fiat_on_ramp_credential": {
      "post": {
        "summary": "Create a Fiat On Ramp Credential",
        "description": "Create a fiat on ramp provider credential",
        "operationId": "CreateFiatOnRampCredential",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateFiatOnRampCredentialRequest"
            }
          }
        ],
        "tags": ["On Ramp"]
      }
    },
    "/public/v1/submit/create_invitations": {
      "post": {
        "summary": "Create invitations",
        "description": "Create invitations to join an existing organization.",
        "operationId": "CreateInvitations",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateInvitationsRequest"
            }
          }
        ],
        "tags": ["Invitations"]
      }
    },
    "/public/v1/submit/create_mfa_policy": {
      "post": {
        "summary": "Create MFA policy",
        "description": "Create a new MFA policy for a user.",
        "operationId": "CreateMfaPolicy",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateMfaPolicyRequest"
            }
          }
        ],
        "tags": ["MFA Policies"]
      }
    },
    "/public/v1/submit/create_oauth2_credential": {
      "post": {
        "summary": "Create an OAuth 2.0 Credential",
        "description": "Enable authentication for end users with an OAuth 2.0 provider",
        "operationId": "CreateOauth2Credential",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateOauth2CredentialRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/submit/create_oauth_providers": {
      "post": {
        "summary": "Create Oauth providers",
        "description": "Create Oauth providers for a specified user.",
        "operationId": "CreateOauthProviders",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateOauthProvidersRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/submit/create_policies": {
      "post": {
        "summary": "Create policies",
        "description": "Create new policies.",
        "operationId": "CreatePolicies",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreatePoliciesRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/submit/create_policy": {
      "post": {
        "summary": "Create policy",
        "description": "Create a new policy.",
        "operationId": "CreatePolicy",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreatePolicyRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/submit/create_private_key_tag": {
      "post": {
        "summary": "Create private key tag",
        "description": "Create a private key tag and add it to private keys.",
        "operationId": "CreatePrivateKeyTag",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreatePrivateKeyTagRequest"
            }
          }
        ],
        "tags": ["Private Key Tags"]
      }
    },
    "/public/v1/submit/create_private_keys": {
      "post": {
        "summary": "Create private keys",
        "description": "Create new private keys.",
        "operationId": "CreatePrivateKeys",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreatePrivateKeysRequest"
            }
          }
        ],
        "tags": ["Private Keys"]
      }
    },
    "/public/v1/submit/create_read_only_session": {
      "post": {
        "summary": "Create read only session",
        "description": "Create a read only session for a user (valid for 1 hour).",
        "operationId": "CreateReadOnlySession",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateReadOnlySessionRequest"
            }
          }
        ],
        "tags": ["Sessions"]
      }
    },
    "/public/v1/submit/create_read_write_session": {
      "post": {
        "summary": "Create read write session",
        "description": "Create a read write session for a user.",
        "operationId": "CreateReadWriteSession",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateReadWriteSessionRequest"
            }
          }
        ],
        "tags": ["Sessions"]
      }
    },
    "/public/v1/submit/create_session_profile": {
      "post": {
        "summary": "Create session profile",
        "description": "Create a new session profile for an organization.",
        "operationId": "CreateSessionProfile",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateSessionProfileRequest"
            }
          }
        ],
        "tags": ["Session Profiles"]
      }
    },
    "/public/v1/submit/create_smart_contract_interface": {
      "post": {
        "summary": "Create smart contract interface",
        "description": "Create an ABI/IDL in JSON.",
        "operationId": "CreateSmartContractInterface",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateSmartContractInterfaceRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/submit/create_sub_organization": {
      "post": {
        "summary": "Create sub-organization",
        "description": "Create a new sub-organization. Each root user must have at least one valid credential: an API key, an authenticator, an OAuth provider, or an email or phone number with a login method enabled on the sub-organization (email, email OTP, or SMS).",
        "operationId": "CreateSubOrganization",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateSubOrganizationRequest"
            }
          }
        ],
        "tags": ["Organizations"]
      }
    },
    "/public/v1/submit/create_swap_quote": {
      "post": {
        "summary": "Get swap quote",
        "description": "Get a swap quote. Asset chains are derived from CAIP-19 asset IDs; cross-chain quotes are supported.",
        "operationId": "CreateSwapQuote",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateSwapQuoteRequest"
            }
          }
        ],
        "tags": ["Swaps"]
      }
    },
    "/public/v1/submit/create_tvc_app": {
      "post": {
        "summary": "Create a TVC App",
        "description": "Create a new TVC application",
        "operationId": "CreateTvcApp",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateTvcAppRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/submit/create_tvc_deployment": {
      "post": {
        "summary": "Create a TVC Deployment",
        "description": "Create a new TVC Deployment",
        "operationId": "CreateTvcDeployment",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateTvcDeploymentRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/submit/create_tvc_manifest_approvals": {
      "post": {
        "summary": "Create TVC Manifest Approvals",
        "description": "Post one or more manifest approvals for a TVC Manifest",
        "operationId": "CreateTvcManifestApprovals",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateTvcManifestApprovalsRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/submit/create_user_tag": {
      "post": {
        "summary": "Create user tag",
        "description": "Create a user tag and add it to users.",
        "operationId": "CreateUserTag",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateUserTagRequest"
            }
          }
        ],
        "tags": ["User Tags"]
      }
    },
    "/public/v1/submit/create_users": {
      "post": {
        "summary": "Create users",
        "description": "Create users in an existing organization. Each user must have at least one valid credential: an API key, an authenticator, an OAuth provider, or an email or phone number with a login method enabled on the organization (email, email OTP, or SMS).",
        "operationId": "CreateUsers",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateUsersRequest"
            }
          }
        ],
        "tags": ["Users"]
      }
    },
    "/public/v1/submit/create_wallet": {
      "post": {
        "summary": "Create wallet",
        "description": "Create a wallet and derive addresses.",
        "operationId": "CreateWallet",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateWalletRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/submit/create_wallet_accounts": {
      "post": {
        "summary": "Create wallet accounts",
        "description": "Derive additional addresses using an existing wallet.",
        "operationId": "CreateWalletAccounts",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateWalletAccountsRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/submit/create_webhook_endpoint": {
      "post": {
        "summary": "Create webhook endpoint",
        "description": "Create a webhook endpoint for an organization.",
        "operationId": "CreateWebhookEndpoint",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateWebhookEndpointRequest"
            }
          }
        ],
        "tags": ["Organizations"]
      }
    },
    "/public/v1/submit/delete_api_keys": {
      "post": {
        "summary": "Delete API keys",
        "description": "Remove api keys from a user.",
        "operationId": "DeleteApiKeys",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteApiKeysRequest"
            }
          }
        ],
        "tags": ["API Keys"]
      }
    },
    "/public/v1/submit/delete_authenticators": {
      "post": {
        "summary": "Delete authenticators",
        "description": "Remove authenticators from a user.",
        "operationId": "DeleteAuthenticators",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteAuthenticatorsRequest"
            }
          }
        ],
        "tags": ["Authenticators"]
      }
    },
    "/public/v1/submit/delete_fiat_on_ramp_credential": {
      "post": {
        "summary": "Delete a Fiat On Ramp Credential",
        "description": "Delete a fiat on ramp provider credential",
        "operationId": "DeleteFiatOnRampCredential",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteFiatOnRampCredentialRequest"
            }
          }
        ],
        "tags": ["On Ramp"]
      }
    },
    "/public/v1/submit/delete_invitation": {
      "post": {
        "summary": "Delete invitation",
        "description": "Delete an existing invitation.",
        "operationId": "DeleteInvitation",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteInvitationRequest"
            }
          }
        ],
        "tags": ["Invitations"]
      }
    },
    "/public/v1/submit/delete_mfa_policy": {
      "post": {
        "summary": "Delete MFA policy",
        "description": "Delete an MFA policy for a user.",
        "operationId": "DeleteMfaPolicy",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteMfaPolicyRequest"
            }
          }
        ],
        "tags": ["MFA Policies"]
      }
    },
    "/public/v1/submit/delete_oauth2_credential": {
      "post": {
        "summary": "Delete an OAuth 2.0 Credential",
        "description": "Disable authentication for end users with an OAuth 2.0 provider",
        "operationId": "DeleteOauth2Credential",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteOauth2CredentialRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/submit/delete_oauth_providers": {
      "post": {
        "summary": "Delete Oauth providers",
        "description": "Remove Oauth providers for a specified user.",
        "operationId": "DeleteOauthProviders",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteOauthProvidersRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/submit/delete_policies": {
      "post": {
        "summary": "Delete policies",
        "description": "Delete existing policies.",
        "operationId": "DeletePolicies",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeletePoliciesRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/submit/delete_policy": {
      "post": {
        "summary": "Delete policy",
        "description": "Delete an existing policy.",
        "operationId": "DeletePolicy",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeletePolicyRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/submit/delete_private_key_tags": {
      "post": {
        "summary": "Delete private key tags",
        "description": "Delete private key tags within an organization.",
        "operationId": "DeletePrivateKeyTags",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeletePrivateKeyTagsRequest"
            }
          }
        ],
        "tags": ["Private Key Tags"]
      }
    },
    "/public/v1/submit/delete_private_keys": {
      "post": {
        "summary": "Delete private keys",
        "description": "Delete private keys for an organization.",
        "operationId": "DeletePrivateKeys",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeletePrivateKeysRequest"
            }
          }
        ],
        "tags": ["Private Keys"]
      }
    },
    "/public/v1/submit/delete_smart_contract_interface": {
      "post": {
        "summary": "Delete smart contract interface",
        "description": "Delete a smart contract interface.",
        "operationId": "DeleteSmartContractInterface",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteSmartContractInterfaceRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/submit/delete_sub_organization": {
      "post": {
        "summary": "Delete sub-organization",
        "description": "Delete a sub-organization.",
        "operationId": "DeleteSubOrganization",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteSubOrganizationRequest"
            }
          }
        ],
        "tags": ["Organizations"]
      }
    },
    "/public/v1/submit/delete_tvc_app_and_deployments": {
      "post": {
        "summary": "Delete a TVC App and all of its deployments",
        "description": "Delete a TVC App and all of its deployments",
        "operationId": "DeleteTvcAppAndDeployments",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteTvcAppAndDeploymentsRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/submit/delete_tvc_deployment": {
      "post": {
        "summary": "Delete a TVC Deployment",
        "description": "Delete a TVC Deployment",
        "operationId": "DeleteTvcDeployment",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteTvcDeploymentRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/submit/delete_user_tags": {
      "post": {
        "summary": "Delete user tags",
        "description": "Delete user tags within an organization.",
        "operationId": "DeleteUserTags",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteUserTagsRequest"
            }
          }
        ],
        "tags": ["User Tags"]
      }
    },
    "/public/v1/submit/delete_users": {
      "post": {
        "summary": "Delete users",
        "description": "Delete users within an organization.",
        "operationId": "DeleteUsers",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteUsersRequest"
            }
          }
        ],
        "tags": ["Users"]
      }
    },
    "/public/v1/submit/delete_wallet_accounts": {
      "post": {
        "summary": "Delete wallet accounts",
        "description": "Delete wallet accounts for an organization.",
        "operationId": "DeleteWalletAccounts",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteWalletAccountsRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/submit/delete_wallets": {
      "post": {
        "summary": "Delete wallets",
        "description": "Delete wallets for an organization.",
        "operationId": "DeleteWallets",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteWalletsRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/submit/delete_webhook_endpoint": {
      "post": {
        "summary": "Delete webhook endpoint",
        "description": "Delete a webhook endpoint for an organization.",
        "operationId": "DeleteWebhookEndpoint",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeleteWebhookEndpointRequest"
            }
          }
        ],
        "tags": ["Organizations"]
      }
    },
    "/public/v1/submit/earn_deploy_wrapper": {
      "post": {
        "summary": "Deploy Earn wrapper",
        "description": "Enable a yield vault for an organization by deploying its fee wrapper. Must be called before any deposits into the vault.",
        "operationId": "EarnDeployWrapper",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/EarnDeployWrapperRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/submit/earn_deposit": {
      "post": {
        "summary": "Deposit into Earn vault",
        "description": "Deposit assets from a wallet into an enabled yield vault.",
        "operationId": "EarnDeposit",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/EarnDepositRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/submit/earn_set_wrapper_state": {
      "post": {
        "summary": "Set Earn wrapper state",
        "description": "Enable or disable deposits to a deployed Earn wrapper. Withdrawals are always allowed.",
        "operationId": "EarnSetWrapperState",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/EarnSetWrapperStateRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/submit/earn_withdraw": {
      "post": {
        "summary": "Withdraw from Earn vault",
        "description": "Withdraw assets or redeem shares from an enabled yield vault.",
        "operationId": "EarnWithdraw",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/EarnWithdrawRequest"
            }
          }
        ],
        "tags": ["Earn"]
      }
    },
    "/public/v1/submit/email_auth": {
      "post": {
        "summary": "Perform email auth",
        "description": "Authenticate a user via email.",
        "operationId": "EmailAuth",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/EmailAuthRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/submit/eth_send_transaction": {
      "post": {
        "summary": "Broadcast EVM transaction",
        "description": "Submit a transaction intent describing an EVM transaction you would like to broadcast.",
        "operationId": "EthSendTransaction",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/EthSendTransactionRequest"
            }
          }
        ],
        "tags": ["Broadcasting"]
      }
    },
    "/public/v1/submit/eth_undelegate_7702": {
      "post": {
        "summary": "Undelegate an EVM account",
        "description": "Submit an EIP-7702 undelegation transaction.",
        "operationId": "EthUndelegate7702",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/EthUndelegate7702Request"
            }
          }
        ],
        "tags": ["Broadcasting"]
      }
    },
    "/public/v1/submit/execute_swap": {
      "post": {
        "summary": "Execute swap",
        "description": "Execute the exact provider quote identified by quote_id through the activity pipeline and Turnkey broadcasting. Requests must use ACTIVITY_TYPE_EXECUTE_SWAP_V2.",
        "operationId": "ExecuteSwap",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ExecuteSwapRequest"
            }
          }
        ],
        "tags": ["Swaps"]
      }
    },
    "/public/v1/submit/export_private_key": {
      "post": {
        "summary": "Export private key",
        "description": "Export a private key.",
        "operationId": "ExportPrivateKey",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ExportPrivateKeyRequest"
            }
          }
        ],
        "tags": ["Private Keys"]
      }
    },
    "/public/v1/submit/export_secrets": {
      "post": {
        "summary": "Export secrets",
        "description": "Export secrets encrypted to client-provided target public keys.",
        "operationId": "ExportSecrets",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ExportSecretsRequest"
            }
          }
        ],
        "tags": ["Secrets"]
      }
    },
    "/public/v1/submit/export_wallet": {
      "post": {
        "summary": "Export wallet",
        "description": "Export a wallet.",
        "operationId": "ExportWallet",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ExportWalletRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/submit/export_wallet_account": {
      "post": {
        "summary": "Export wallet account",
        "description": "Export a wallet account.",
        "operationId": "ExportWalletAccount",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ExportWalletAccountRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/submit/import_private_key": {
      "post": {
        "summary": "Import private key",
        "description": "Import a private key.",
        "operationId": "ImportPrivateKey",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ImportPrivateKeyRequest"
            }
          }
        ],
        "tags": ["Private Keys"]
      }
    },
    "/public/v1/submit/import_secrets": {
      "post": {
        "summary": "Import secrets",
        "description": "Import secrets encrypted to target keys returned from InitImportSecrets.",
        "operationId": "ImportSecrets",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ImportSecretsRequest"
            }
          }
        ],
        "tags": ["Secrets"]
      }
    },
    "/public/v1/submit/import_wallet": {
      "post": {
        "summary": "Import wallet",
        "description": "Import a wallet.",
        "operationId": "ImportWallet",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ImportWalletRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/submit/init_fiat_on_ramp": {
      "post": {
        "summary": "Init fiat on ramp",
        "description": "Initiate a fiat on ramp flow.",
        "operationId": "InitFiatOnRamp",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InitFiatOnRampRequest"
            }
          }
        ],
        "tags": ["On Ramp"]
      }
    },
    "/public/v1/submit/init_import_private_key": {
      "post": {
        "summary": "Init import private key",
        "description": "Initialize a new private key import.",
        "operationId": "InitImportPrivateKey",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InitImportPrivateKeyRequest"
            }
          }
        ],
        "tags": ["Private Keys"]
      }
    },
    "/public/v1/submit/init_import_secrets": {
      "post": {
        "summary": "Init import secrets",
        "description": "Initialize secret imports by generating Ingress Encryption Target Keys.",
        "operationId": "InitImportSecrets",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InitImportSecretsRequest"
            }
          }
        ],
        "tags": ["Secrets"]
      }
    },
    "/public/v1/submit/init_import_wallet": {
      "post": {
        "summary": "Init import wallet",
        "description": "Initialize a new wallet import.",
        "operationId": "InitImportWallet",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InitImportWalletRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/submit/init_otp": {
      "post": {
        "summary": "Init generic OTP",
        "description": "Initiate a generic OTP activity.",
        "operationId": "InitOtp",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InitOtpRequest"
            }
          }
        ],
        "tags": ["User Verification"]
      }
    },
    "/public/v1/submit/init_otp_auth": {
      "post": {
        "summary": "Init OTP auth",
        "description": "Initiate an OTP auth activity.",
        "operationId": "InitOtpAuth",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InitOtpAuthRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/submit/init_user_email_recovery": {
      "post": {
        "summary": "Init email recovery",
        "description": "Initialize a new email recovery.",
        "operationId": "InitUserEmailRecovery",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InitUserEmailRecoveryRequest"
            }
          }
        ],
        "tags": ["User Recovery"]
      }
    },
    "/public/v1/submit/oauth": {
      "post": {
        "summary": "Oauth",
        "description": "Authenticate a user with an OIDC token (Oauth).",
        "operationId": "Oauth",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OauthRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/submit/oauth2_authenticate": {
      "post": {
        "summary": "OAuth 2.0 authentication",
        "description": "Authenticate a user with an OAuth 2.0 provider and receive an OIDC token to use with the LoginWithOAuth or CreateSubOrganization activities",
        "operationId": "Oauth2Authenticate",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Oauth2AuthenticateRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/submit/oauth_login": {
      "post": {
        "summary": "Login with Oauth",
        "description": "Create an Oauth session for a user.",
        "operationId": "OauthLogin",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OauthLoginRequest"
            }
          }
        ],
        "tags": ["Sessions"]
      }
    },
    "/public/v1/submit/otp_auth": {
      "post": {
        "summary": "OTP auth",
        "description": "Authenticate a user with an OTP code sent via email or SMS.",
        "operationId": "OtpAuth",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OtpAuthRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/submit/otp_login": {
      "post": {
        "summary": "Login with OTP",
        "description": "Create an OTP session for a user.",
        "operationId": "OtpLogin",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OtpLoginRequest"
            }
          }
        ],
        "tags": ["Sessions"]
      }
    },
    "/public/v1/submit/recover_user": {
      "post": {
        "summary": "Recover a user",
        "description": "Complete the process of recovering a user by adding an authenticator.",
        "operationId": "RecoverUser",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RecoverUserRequest"
            }
          }
        ],
        "tags": ["User Recovery"]
      }
    },
    "/public/v1/submit/reject_activity": {
      "post": {
        "summary": "Reject activity",
        "description": "Reject an activity.",
        "operationId": "RejectActivity",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RejectActivityRequest"
            }
          }
        ],
        "tags": ["Consensus"]
      }
    },
    "/public/v1/submit/remove_ip_allowlist": {
      "post": {
        "summary": "Remove IP Allowlist",
        "description": "Delete IP allowlist and all associated rules for organization or API key. After removal, access will be determined by organization-level allowlist (for API keys) or allowed from all IPs (for organizations).",
        "operationId": "RemoveIpAllowlist",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RemoveIpAllowlistRequest"
            }
          }
        ],
        "tags": ["IP Allowlist"]
      }
    },
    "/public/v1/submit/remove_organization_feature": {
      "post": {
        "summary": "Remove organization feature",
        "description": "Remove an organization feature. This activity must be approved by the current root quorum.",
        "operationId": "RemoveOrganizationFeature",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RemoveOrganizationFeatureRequest"
            }
          }
        ],
        "tags": ["Features"]
      }
    },
    "/public/v1/submit/restore_tvc_deployment": {
      "post": {
        "summary": "Restore a TVC Deployment",
        "description": "Restore a deleted TVC Deployment",
        "operationId": "RestoreTvcDeployment",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RestoreTvcDeploymentRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/submit/set_ip_allowlist": {
      "post": {
        "summary": "Set IP Allowlist",
        "description": "Create or update IP allowlist and rules for organization or API key. The IP allowlist restricts API access to specific CIDR blocks. Organization-level allowlists apply to all API keys unless overridden by a key-specific allowlist.",
        "operationId": "SetIpAllowlist",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SetIpAllowlistRequest"
            }
          }
        ],
        "tags": ["IP Allowlist"]
      }
    },
    "/public/v1/submit/set_organization_feature": {
      "post": {
        "summary": "Set organization feature",
        "description": "Set an organization feature. This activity must be approved by the current root quorum.",
        "operationId": "SetOrganizationFeature",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SetOrganizationFeatureRequest"
            }
          }
        ],
        "tags": ["Features"]
      }
    },
    "/public/v1/submit/set_tvc_app_live_deployment": {
      "post": {
        "summary": "Set TVC App live deployment",
        "description": "Set the live deployment for a TVC App",
        "operationId": "UpdateTvcAppLiveDeployment",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateTvcAppLiveDeploymentRequest"
            }
          }
        ],
        "tags": ["TVC"]
      }
    },
    "/public/v1/submit/sign_raw_payload": {
      "post": {
        "summary": "Sign raw payload",
        "description": "Sign a raw payload.",
        "operationId": "SignRawPayload",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SignRawPayloadRequest"
            }
          }
        ],
        "tags": ["Signing"]
      }
    },
    "/public/v1/submit/sign_raw_payloads": {
      "post": {
        "summary": "Sign raw payloads",
        "description": "Sign multiple raw payloads with the same signing parameters.",
        "operationId": "SignRawPayloads",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SignRawPayloadsRequest"
            }
          }
        ],
        "tags": ["Signing"]
      }
    },
    "/public/v1/submit/sign_transaction": {
      "post": {
        "summary": "Sign transaction",
        "description": "Sign a transaction.",
        "operationId": "SignTransaction",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SignTransactionRequest"
            }
          }
        ],
        "tags": ["Signing"]
      }
    },
    "/public/v1/submit/sol_send_transaction": {
      "post": {
        "summary": "Broadcast SVM transaction",
        "description": "Submit a transaction intent describing an SVM transaction you would like to broadcast. Supports single- and multi-signer intents via activity type versioning.",
        "operationId": "SolSendTransaction",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SolSendTransactionRequest"
            }
          }
        ],
        "tags": ["Broadcasting"]
      }
    },
    "/public/v1/submit/spark_claim_transfer": {
      "post": {
        "summary": "Claim Spark transfer",
        "description": "Construct receiver-side encrypted operator packages to claim a Spark transfer. Does not perform FROST signing.",
        "operationId": "SparkClaimTransfer",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SparkClaimTransferRequest"
            }
          }
        ],
        "tags": ["Signing"]
      }
    },
    "/public/v1/submit/spark_prepare_lightning_receive": {
      "post": {
        "summary": "Spark prepare Lightning receive",
        "description": "Generate a Lightning preimage and distribute Feldman shares to operators for a Spark Lightning receive. Does not perform FROST signing.",
        "operationId": "SparkPrepareLightningReceive",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SparkPrepareLightningReceiveRequest"
            }
          }
        ],
        "tags": ["Signing"]
      }
    },
    "/public/v1/submit/spark_prepare_transfer": {
      "post": {
        "summary": "Prepare Spark transfer",
        "description": "Construct sender-side encrypted operator packages for a Spark BTC transfer. Does not perform FROST signing.",
        "operationId": "SparkPrepareTransfer",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SparkPrepareTransferRequest"
            }
          }
        ],
        "tags": ["Signing"]
      }
    },
    "/public/v1/submit/spark_sign_frost": {
      "post": {
        "summary": "Sign Frost Spark",
        "description": "Perform pure FROST partial signing for a Spark wallet. Produces partial signatures without constructing operator packages.",
        "operationId": "SparkSignFrost",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SparkSignFrostRequest"
            }
          }
        ],
        "tags": ["Signing"]
      }
    },
    "/public/v1/submit/stamp_login": {
      "post": {
        "summary": "Login with a stamp",
        "description": "Create a session for a user through stamping client side (API key, wallet client, or passkey client).",
        "operationId": "StampLogin",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/StampLoginRequest"
            }
          }
        ],
        "tags": ["Sessions"]
      }
    },
    "/public/v1/submit/update_fiat_on_ramp_credential": {
      "post": {
        "summary": "Update a Fiat On Ramp Credential",
        "description": "Update a fiat on ramp provider credential",
        "operationId": "UpdateFiatOnRampCredential",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateFiatOnRampCredentialRequest"
            }
          }
        ],
        "tags": ["On Ramp"]
      }
    },
    "/public/v1/submit/update_mfa_policy": {
      "post": {
        "summary": "Update MFA policy",
        "description": "Update an MFA policy for a user.",
        "operationId": "UpdateMfaPolicy",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateMfaPolicyRequest"
            }
          }
        ],
        "tags": ["MFA Policies"]
      }
    },
    "/public/v1/submit/update_oauth2_credential": {
      "post": {
        "summary": "Update an OAuth 2.0 Credential",
        "description": "Update an OAuth 2.0 provider credential",
        "operationId": "UpdateOauth2Credential",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateOauth2CredentialRequest"
            }
          }
        ],
        "tags": ["User Auth"]
      }
    },
    "/public/v1/submit/update_organization_name": {
      "post": {
        "summary": "Update organization name",
        "description": "Update the name of an organization.",
        "operationId": "UpdateOrganizationName",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateOrganizationNameRequest"
            }
          }
        ],
        "tags": ["Organizations"]
      }
    },
    "/public/v1/submit/update_policy": {
      "post": {
        "summary": "Update policy",
        "description": "Update an existing policy.",
        "operationId": "UpdatePolicy",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdatePolicyRequest"
            }
          }
        ],
        "tags": ["Policies"]
      }
    },
    "/public/v1/submit/update_private_key_tag": {
      "post": {
        "summary": "Update private key tag",
        "description": "Update human-readable name or associated private keys. Note that this activity is atomic: all of the updates will succeed at once, or all of them will fail.",
        "operationId": "UpdatePrivateKeyTag",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdatePrivateKeyTagRequest"
            }
          }
        ],
        "tags": ["Private Key Tags"]
      }
    },
    "/public/v1/submit/update_root_quorum": {
      "post": {
        "summary": "Update root quorum",
        "description": "Set the threshold and members of the root quorum. This activity must be approved by the current root quorum.",
        "operationId": "UpdateRootQuorum",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateRootQuorumRequest"
            }
          }
        ],
        "tags": ["Organizations"]
      }
    },
    "/public/v1/submit/update_user": {
      "post": {
        "summary": "Update user",
        "description": "Update a user in an existing organization.",
        "operationId": "UpdateUser",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateUserRequest"
            }
          }
        ],
        "tags": ["Users"]
      }
    },
    "/public/v1/submit/update_user_email": {
      "post": {
        "summary": "Update user's email",
        "description": "Update a user's email in an existing organization.",
        "operationId": "UpdateUserEmail",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateUserEmailRequest"
            }
          }
        ],
        "tags": ["Users"]
      }
    },
    "/public/v1/submit/update_user_name": {
      "post": {
        "summary": "Update user's name",
        "description": "Update a user's name in an existing organization.",
        "operationId": "UpdateUserName",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateUserNameRequest"
            }
          }
        ],
        "tags": ["Users"]
      }
    },
    "/public/v1/submit/update_user_phone_number": {
      "post": {
        "summary": "Update user's phone number",
        "description": "Update a user's phone number in an existing organization.",
        "operationId": "UpdateUserPhoneNumber",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateUserPhoneNumberRequest"
            }
          }
        ],
        "tags": ["Users"]
      }
    },
    "/public/v1/submit/update_user_tag": {
      "post": {
        "summary": "Update user tag",
        "description": "Update human-readable name or associated users. Note that this activity is atomic: all of the updates will succeed at once, or all of them will fail.",
        "operationId": "UpdateUserTag",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateUserTagRequest"
            }
          }
        ],
        "tags": ["User Tags"]
      }
    },
    "/public/v1/submit/update_wallet": {
      "post": {
        "summary": "Update wallet",
        "description": "Update a wallet for an organization.",
        "operationId": "UpdateWallet",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateWalletRequest"
            }
          }
        ],
        "tags": ["Wallets"]
      }
    },
    "/public/v1/submit/update_webhook_endpoint": {
      "post": {
        "summary": "Update webhook endpoint",
        "description": "Update a webhook endpoint for an organization.",
        "operationId": "UpdateWebhookEndpoint",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateWebhookEndpointRequest"
            }
          }
        ],
        "tags": ["Organizations"]
      }
    },
    "/public/v1/submit/upsert_swap_config": {
      "post": {
        "summary": "Upsert swap config",
        "description": "Enable or disable swap configuration for an organization.",
        "operationId": "UpsertSwapConfig",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpsertSwapConfigRequest"
            }
          }
        ],
        "tags": ["Swaps"]
      }
    },
    "/public/v1/submit/verify_otp": {
      "post": {
        "summary": "Verify generic OTP",
        "description": "Verify a generic OTP.",
        "operationId": "VerifyOtp",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/ActivityResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/VerifyOtpRequest"
            }
          }
        ],
        "tags": ["User Verification"]
      }
    },
    "/tkhq/api/v1/noop-codegen-anchor": {
      "post": {
        "operationId": "NOOPCodegenAnchor",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/NOOPCodegenAnchorResponse"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "AcceptInvitationIntent": {
      "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": "#/definitions/AuthenticatorParams",
          "description": "WebAuthN hardware devices that can be used to log in to the Turnkey web app."
        }
      },
      "required": ["invitationId", "userId", "authenticator"]
    },
    "AcceptInvitationIntentV2": {
      "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": "#/definitions/AuthenticatorParamsV2",
          "description": "WebAuthN hardware devices that can be used to log in to the Turnkey web app."
        }
      },
      "required": ["invitationId", "userId", "authenticator"]
    },
    "AcceptInvitationResult": {
      "type": "object",
      "properties": {
        "invitationId": {
          "type": "string",
          "description": "Unique identifier for a given Invitation."
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        }
      },
      "required": ["invitationId", "userId"]
    },
    "AccessType": {
      "type": "string",
      "enum": ["ACCESS_TYPE_WEB", "ACCESS_TYPE_API", "ACCESS_TYPE_ALL"]
    },
    "ActivateBillingTierIntent": {
      "type": "object",
      "properties": {
        "productId": {
          "type": "string",
          "description": "The product that the customer wants to subscribe to."
        },
        "orbPlanId": {
          "type": "string",
          "x-nullable": true
        }
      },
      "required": ["productId"]
    },
    "ActivateBillingTierResult": {
      "type": "object",
      "properties": {
        "productId": {
          "type": "string",
          "description": "The id of the product being subscribed to."
        }
      },
      "required": ["productId"]
    },
    "ActivePolicyStatus": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for the organization the policy belongs to."
        },
        "policyId": {
          "type": "string",
          "description": "Unique identifier for a given policy."
        },
        "active": {
          "type": "boolean",
          "description": "Whether the policy is currently active. A policy without a time window is always active."
        },
        "timeExpr": {
          "type": "string",
          "x-nullable": true,
          "description": "The policy's time expression, absent when the policy has no time window."
        },
        "error": {
          "type": "string",
          "x-nullable": true,
          "description": "Set when the policy's time expression could not be evaluated; the policy is reported inactive."
        }
      },
      "required": ["organizationId", "policyId", "active"]
    },
    "Activity": {
      "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": "#/definitions/ActivityStatus",
          "description": "The current processing status of a specified Activity."
        },
        "type": {
          "$ref": "#/definitions/ActivityType",
          "description": "Type of Activity, such as Add User, or Sign Transaction."
        },
        "intent": {
          "$ref": "#/definitions/Intent",
          "description": "Intent object crafted by Turnkey based on the user request, used to assess the permissibility of an action."
        },
        "result": {
          "$ref": "#/definitions/Result",
          "description": "Result of the intended action."
        },
        "votes": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Vote"
          },
          "description": "A list of objects representing a particular User's approval or rejection of a Consensus request, including all relevant metadata."
        },
        "appProofs": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AppProof"
          },
          "description": "A list of App Proofs generated by enclaves during activity execution, providing verifiable attestations of performed operations."
        },
        "fingerprint": {
          "type": "string",
          "description": "An artifact verifying a User's action."
        },
        "canApprove": {
          "type": "boolean"
        },
        "canReject": {
          "type": "boolean"
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "failure": {
          "$ref": "#/definitions/Status",
          "description": "Failure reason of the intended action."
        }
      },
      "required": [
        "id",
        "organizationId",
        "status",
        "type",
        "intent",
        "result",
        "votes",
        "fingerprint",
        "canApprove",
        "canReject",
        "createdAt",
        "updatedAt"
      ]
    },
    "ActivityResponse": {
      "type": "object",
      "properties": {
        "activity": {
          "$ref": "#/definitions/Activity",
          "description": "An action that can be taken within the Turnkey infrastructure."
        }
      },
      "required": ["activity"]
    },
    "ActivityStatus": {
      "type": "string",
      "enum": [
        "ACTIVITY_STATUS_CREATED",
        "ACTIVITY_STATUS_PENDING",
        "ACTIVITY_STATUS_COMPLETED",
        "ACTIVITY_STATUS_FAILED",
        "ACTIVITY_STATUS_CONSENSUS_NEEDED",
        "ACTIVITY_STATUS_REJECTED",
        "ACTIVITY_STATUS_AUTHENTICATORS_NEEDED"
      ]
    },
    "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",
        "ACTIVITY_TYPE_UPDATE_POLICY_V2",
        "ACTIVITY_TYPE_CREATE_USERS_V3",
        "ACTIVITY_TYPE_INIT_OTP_AUTH_V2",
        "ACTIVITY_TYPE_INIT_OTP",
        "ACTIVITY_TYPE_VERIFY_OTP",
        "ACTIVITY_TYPE_OTP_LOGIN",
        "ACTIVITY_TYPE_STAMP_LOGIN",
        "ACTIVITY_TYPE_OAUTH_LOGIN",
        "ACTIVITY_TYPE_UPDATE_USER_NAME",
        "ACTIVITY_TYPE_UPDATE_USER_EMAIL",
        "ACTIVITY_TYPE_UPDATE_USER_PHONE_NUMBER",
        "ACTIVITY_TYPE_INIT_FIAT_ON_RAMP",
        "ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACE",
        "ACTIVITY_TYPE_DELETE_SMART_CONTRACT_INTERFACE",
        "ACTIVITY_TYPE_ENABLE_AUTH_PROXY",
        "ACTIVITY_TYPE_DISABLE_AUTH_PROXY",
        "ACTIVITY_TYPE_UPDATE_AUTH_PROXY_CONFIG",
        "ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL",
        "ACTIVITY_TYPE_UPDATE_OAUTH2_CREDENTIAL",
        "ACTIVITY_TYPE_DELETE_OAUTH2_CREDENTIAL",
        "ACTIVITY_TYPE_OAUTH2_AUTHENTICATE",
        "ACTIVITY_TYPE_DELETE_WALLET_ACCOUNTS",
        "ACTIVITY_TYPE_DELETE_POLICIES",
        "ACTIVITY_TYPE_ETH_SEND_RAW_TRANSACTION",
        "ACTIVITY_TYPE_ETH_SEND_TRANSACTION",
        "ACTIVITY_TYPE_CREATE_FIAT_ON_RAMP_CREDENTIAL",
        "ACTIVITY_TYPE_UPDATE_FIAT_ON_RAMP_CREDENTIAL",
        "ACTIVITY_TYPE_DELETE_FIAT_ON_RAMP_CREDENTIAL",
        "ACTIVITY_TYPE_EMAIL_AUTH_V3",
        "ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY_V2",
        "ACTIVITY_TYPE_INIT_OTP_AUTH_V3",
        "ACTIVITY_TYPE_INIT_OTP_V2",
        "ACTIVITY_TYPE_UPSERT_GAS_USAGE_CONFIG",
        "ACTIVITY_TYPE_CREATE_TVC_APP",
        "ACTIVITY_TYPE_CREATE_TVC_DEPLOYMENT",
        "ACTIVITY_TYPE_CREATE_TVC_MANIFEST_APPROVALS",
        "ACTIVITY_TYPE_SOL_SEND_TRANSACTION",
        "ACTIVITY_TYPE_INIT_OTP_V3",
        "ACTIVITY_TYPE_VERIFY_OTP_V2",
        "ACTIVITY_TYPE_OTP_LOGIN_V2",
        "ACTIVITY_TYPE_UPDATE_ORGANIZATION_NAME",
        "ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V8",
        "ACTIVITY_TYPE_CREATE_OAUTH_PROVIDERS_V2",
        "ACTIVITY_TYPE_CREATE_USERS_V4",
        "ACTIVITY_TYPE_CREATE_WEBHOOK_ENDPOINT",
        "ACTIVITY_TYPE_UPDATE_WEBHOOK_ENDPOINT",
        "ACTIVITY_TYPE_DELETE_WEBHOOK_ENDPOINT",
        "ACTIVITY_TYPE_SET_IP_ALLOWLIST",
        "ACTIVITY_TYPE_REMOVE_IP_ALLOWLIST",
        "ACTIVITY_TYPE_UPDATE_TVC_APP_LIVE_DEPLOYMENT",
        "ACTIVITY_TYPE_DELETE_TVC_DEPLOYMENT",
        "ACTIVITY_TYPE_DELETE_TVC_APP_AND_DEPLOYMENTS",
        "ACTIVITY_TYPE_RESTORE_TVC_DEPLOYMENT",
        "ACTIVITY_TYPE_SPARK_SIGN_FROST",
        "ACTIVITY_TYPE_SPARK_PREPARE_TRANSFER",
        "ACTIVITY_TYPE_SPARK_CLAIM_TRANSFER",
        "ACTIVITY_TYPE_SPARK_PREPARE_LIGHTNING_RECEIVE",
        "ACTIVITY_TYPE_POST_TVC_QUORUM_KEY_SHARE",
        "ACTIVITY_TYPE_ETH_SEND_TRANSACTION_V2",
        "ACTIVITY_TYPE_CREATE_MFA_POLICY",
        "ACTIVITY_TYPE_UPDATE_MFA_POLICY",
        "ACTIVITY_TYPE_DELETE_MFA_POLICY",
        "ACTIVITY_TYPE_CREATE_SESSION_PROFILE",
        "ACTIVITY_TYPE_EARN_DEPLOY_WRAPPER",
        "ACTIVITY_TYPE_EARN_DEPOSIT",
        "ACTIVITY_TYPE_EARN_WITHDRAW",
        "ACTIVITY_TYPE_EXECUTE_SWAP",
        "ACTIVITY_TYPE_UPSERT_SWAP_CONFIG",
        "ACTIVITY_TYPE_CREATE_TVC_OPERATOR",
        "ACTIVITY_TYPE_CREATE_TVC_QUORUM_KEY",
        "ACTIVITY_TYPE_RE_ENCRYPT_TVC_QUORUM_KEY_SHARE",
        "ACTIVITY_TYPE_INIT_IMPORT_SECRETS",
        "ACTIVITY_TYPE_SOL_SEND_TRANSACTION_V2",
        "ACTIVITY_TYPE_CLAIM_SWAP_FEES",
        "ACTIVITY_TYPE_EARN_SET_WRAPPER_STATE",
        "ACTIVITY_TYPE_CLAIM_EARN_FEES",
        "ACTIVITY_TYPE_UPDATE_WALLET_ACCOUNT_NAME",
        "ACTIVITY_TYPE_ETH_UNDELEGATE_7702",
        "ACTIVITY_TYPE_EXECUTE_SWAP_V2",
        "ACTIVITY_TYPE_CREATE_SWAP_QUOTE",
        "ACTIVITY_TYPE_IMPORT_SECRETS",
        "ACTIVITY_TYPE_EXPORT_SECRETS",
        "ACTIVITY_TYPE_CREATE_VELOCITY_CONTROL",
        "ACTIVITY_TYPE_DELETE_VELOCITY_CONTROL",
        "ACTIVITY_TYPE_UPDATE_PAYMENT_METHOD",
        "ACTIVITY_TYPE_CREATE_SWAP_QUOTE_V2",
        "ACTIVITY_TYPE_EXECUTE_SWAP_V3"
      ]
    },
    "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_TON_V5R1",
        "ADDRESS_FORMAT_XRP",
        "ADDRESS_FORMAT_SPARK_MAINNET",
        "ADDRESS_FORMAT_SPARK_REGTEST"
      ]
    },
    "Any": {
      "type": "object",
      "properties": {
        "@type": {
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "ApiKey": {
      "type": "object",
      "properties": {
        "credential": {
          "$ref": "#/definitions/external.data.v1.Credential",
          "description": "A User credential that can be used to authenticate to Turnkey."
        },
        "apiKeyId": {
          "type": "string",
          "description": "Unique identifier for a given API Key."
        },
        "apiKeyName": {
          "type": "string",
          "description": "Human-readable name for an API Key."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "expirationSeconds": {
          "type": "string",
          "format": "uint64",
          "x-nullable": true,
          "description": "Optional window (in seconds) indicating how long the API Key should last."
        }
      },
      "required": [
        "credential",
        "apiKeyId",
        "apiKeyName",
        "createdAt",
        "updatedAt"
      ]
    },
    "ApiKeyCurve": {
      "type": "string",
      "enum": [
        "API_KEY_CURVE_P256",
        "API_KEY_CURVE_SECP256K1",
        "API_KEY_CURVE_ED25519"
      ]
    },
    "ApiKeyParams": {
      "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",
          "x-nullable": true,
          "description": "Optional window (in seconds) indicating how long the API Key should last."
        }
      },
      "required": ["apiKeyName", "publicKey"]
    },
    "ApiKeyParamsV2": {
      "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": "#/definitions/ApiKeyCurve",
          "description": "The curve type to be used for processing API key signatures."
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional window (in seconds) indicating how long the API Key should last."
        }
      },
      "required": ["apiKeyName", "publicKey", "curveType"]
    },
    "ApiOnlyUserParams": {
      "type": "object",
      "properties": {
        "userName": {
          "type": "string",
          "description": "The name of the new API-only User."
        },
        "userEmail": {
          "type": "string",
          "x-nullable": true,
          "description": "The email address for this API-only User (optional)."
        },
        "userTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "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."
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParams"
          },
          "description": "A list of API Key parameters. This field, if not needed, should be an empty array in your request body."
        }
      },
      "required": ["userName", "userTags", "apiKeys"]
    },
    "AppProof": {
      "type": "object",
      "properties": {
        "scheme": {
          "$ref": "#/definitions/data.v1.SignatureScheme",
          "description": "Scheme of signing key."
        },
        "publicKey": {
          "type": "string",
          "description": "Ephemeral public key."
        },
        "proofPayload": {
          "type": "string",
          "description": "JSON serialized AppProofPayload."
        },
        "signature": {
          "type": "string",
          "description": "Signature over hashed proof_payload."
        }
      },
      "required": ["scheme", "publicKey", "proofPayload", "signature"]
    },
    "AppStatus": {
      "type": "object",
      "properties": {
        "appId": {
          "type": "string",
          "description": "Unique identifier for this TVC App"
        },
        "deployments": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/DeploymentStatus"
          },
          "description": "List of deployment statuses for this app"
        },
        "targetedDeploymentId": {
          "type": "string",
          "description": "The deployment ID currently serving traffic for this app"
        }
      },
      "required": ["appId", "deployments", "targetedDeploymentId"]
    },
    "ApproveActivityIntent": {
      "type": "object",
      "properties": {
        "fingerprint": {
          "type": "string",
          "description": "An artifact verifying a User's action."
        }
      },
      "required": ["fingerprint"]
    },
    "ApproveActivityRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_APPROVE_ACTIVITY"]
        },
        "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": "#/definitions/ApproveActivityIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "AssetBalance": {
      "type": "object",
      "properties": {
        "caip19": {
          "type": "string",
          "description": "The caip-19 asset identifier"
        },
        "symbol": {
          "type": "string",
          "description": "The asset symbol"
        },
        "balance": {
          "type": "string",
          "description": "The balance in atomic units"
        },
        "decimals": {
          "type": "integer",
          "format": "int32",
          "description": "The number of decimals this asset uses"
        },
        "display": {
          "$ref": "#/definitions/AssetBalanceDisplay",
          "description": "Normalized balance values for display purposes only. Do not do any arithmetic or calculations with these, as the results could be imprecise. Use the balance field instead."
        },
        "name": {
          "type": "string",
          "description": "The asset name"
        }
      }
    },
    "AssetBalanceDisplay": {
      "type": "object",
      "properties": {
        "usd": {
          "type": "string",
          "description": "USD value for display purposes only. Do not do any arithmetic or calculations with these, as the results could be imprecise."
        },
        "crypto": {
          "type": "string",
          "description": "Normalized crypto value for display purposes only. Do not do any arithmetic or calculations with these, as the results could be imprecise."
        }
      }
    },
    "AssetMetadata": {
      "type": "object",
      "properties": {
        "caip19": {
          "type": "string",
          "description": "The caip-19 asset identifier"
        },
        "symbol": {
          "type": "string",
          "description": "The asset symbol"
        },
        "decimals": {
          "type": "integer",
          "format": "int32",
          "description": "The number of decimals this asset uses"
        },
        "logoUrl": {
          "type": "string",
          "description": "The url of the asset logo"
        },
        "name": {
          "type": "string",
          "description": "The asset name"
        },
        "stable": {
          "type": "boolean",
          "description": "Whether this asset is on Turnkey's stablecoin list (used for stablepair swap fee pricing)."
        },
        "earnProviders": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/EarnProvider"
          },
          "description": "Earn yield providers with vaults denominated in this asset. Empty when the asset is not supported by Earn."
        }
      }
    },
    "Attestation": {
      "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",
          "items": {
            "$ref": "#/definitions/AuthenticatorTransport"
          },
          "description": "The type of authenticator transports."
        }
      },
      "required": [
        "credentialId",
        "clientDataJson",
        "attestationObject",
        "transports"
      ]
    },
    "AuthenticationMethod": {
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/AuthenticationType",
          "description": "The type of authenticator (e.g., AUTHENTICATION_TYPE_EMAIL, AUTHENTICATION_TYPE_SESSION) required for this MFA step."
        },
        "id": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional specific authenticator ID required (e.g., for requiring a specific session profile id)"
        }
      },
      "required": ["type"]
    },
    "AuthenticationMethodParams": {
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/AuthenticationType",
          "description": "The type of authenticator (e.g., AUTHENTICATION_TYPE_PASSKEY for passkey authentication)."
        },
        "id": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional specific authenticator ID required (e.g., UUID of a passkey authenticator). If not provided, any authenticator of the specified type can be used."
        }
      },
      "required": ["type"]
    },
    "AuthenticationType": {
      "type": "string",
      "enum": [
        "AUTHENTICATION_TYPE_EMAIL_OTP",
        "AUTHENTICATION_TYPE_SMS_OTP",
        "AUTHENTICATION_TYPE_PASSKEY",
        "AUTHENTICATION_TYPE_API_KEY",
        "AUTHENTICATION_TYPE_OAUTH",
        "AUTHENTICATION_TYPE_SESSION"
      ]
    },
    "Authenticator": {
      "type": "object",
      "properties": {
        "transports": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AuthenticatorTransport"
          },
          "description": "Types of transports that may be used by an Authenticator (e.g., USB, NFC, BLE)."
        },
        "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": "#/definitions/external.data.v1.Credential",
          "description": "A User credential that can be used to authenticate to Turnkey."
        },
        "authenticatorId": {
          "type": "string",
          "description": "Unique identifier for a given Authenticator."
        },
        "authenticatorName": {
          "type": "string",
          "description": "Human-readable name for an Authenticator."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": [
        "transports",
        "attestationType",
        "aaguid",
        "credentialId",
        "model",
        "credential",
        "authenticatorId",
        "authenticatorName",
        "createdAt",
        "updatedAt"
      ]
    },
    "AuthenticatorAttestationResponse": {
      "type": "object",
      "properties": {
        "clientDataJson": {
          "type": "string"
        },
        "attestationObject": {
          "type": "string"
        },
        "transports": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AuthenticatorTransport"
          }
        },
        "authenticatorAttachment": {
          "type": "string",
          "enum": ["cross-platform", "platform"],
          "x-nullable": true
        }
      },
      "required": ["clientDataJson", "attestationObject"]
    },
    "AuthenticatorParams": {
      "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": "#/definitions/PublicKeyCredentialWithAttestation"
        },
        "challenge": {
          "type": "string",
          "description": "Challenge presented for authentication purposes."
        }
      },
      "required": ["authenticatorName", "userId", "attestation", "challenge"]
    },
    "AuthenticatorParamsV2": {
      "type": "object",
      "properties": {
        "authenticatorName": {
          "type": "string",
          "description": "Human-readable name for an Authenticator."
        },
        "challenge": {
          "type": "string",
          "description": "Challenge presented for authentication purposes."
        },
        "attestation": {
          "$ref": "#/definitions/Attestation",
          "description": "The attestation that proves custody of the authenticator and provides metadata about it."
        }
      },
      "required": ["authenticatorName", "challenge", "attestation"]
    },
    "AuthenticatorTransport": {
      "type": "string",
      "enum": [
        "AUTHENTICATOR_TRANSPORT_BLE",
        "AUTHENTICATOR_TRANSPORT_INTERNAL",
        "AUTHENTICATOR_TRANSPORT_NFC",
        "AUTHENTICATOR_TRANSPORT_USB",
        "AUTHENTICATOR_TRANSPORT_HYBRID"
      ]
    },
    "BootProof": {
      "type": "object",
      "properties": {
        "ephemeralPublicKeyHex": {
          "type": "string",
          "description": "The hex encoded Ephemeral Public Key."
        },
        "awsAttestationDocB64": {
          "type": "string",
          "description": "The DER encoded COSE Sign1 struct Attestation doc."
        },
        "qosManifestB64": {
          "type": "string",
          "description": "The base64 encoded QOS manifest. Encoding depends on qos_manifest_version."
        },
        "qosManifestEnvelopeB64": {
          "type": "string",
          "description": "The base64 encoded QOS manifest envelope. Encoding depends on qos_manifest_version."
        },
        "deploymentLabel": {
          "type": "string",
          "description": "The label under which the enclave app was deployed."
        },
        "enclaveApp": {
          "type": "string",
          "description": "Name of the enclave app"
        },
        "owner": {
          "type": "string",
          "description": "Owner of the app i.e. 'tkhq'"
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "qosManifestVersion": {
          "type": "string",
          "x-nullable": true,
          "description": "QOS manifest schema version."
        }
      },
      "required": [
        "ephemeralPublicKeyHex",
        "awsAttestationDocB64",
        "qosManifestB64",
        "qosManifestEnvelopeB64",
        "deploymentLabel",
        "enclaveApp",
        "owner",
        "createdAt"
      ]
    },
    "BootProofResponse": {
      "type": "object",
      "properties": {
        "bootProof": {
          "$ref": "#/definitions/BootProof"
        }
      },
      "required": ["bootProof"]
    },
    "ClaimEarnFeesIntent": {
      "type": "object",
      "properties": {
        "wrapperAddress": {
          "type": "string",
          "description": "Address of the deployed Earn wrapper to claim fees for. Must be one of the org's deployed wrappers."
        }
      },
      "required": ["wrapperAddress"]
    },
    "ClaimEarnFeesRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CLAIM_EARN_FEES"]
        },
        "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": "#/definitions/ClaimEarnFeesIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "ClaimEarnFeesResult": {
      "type": "object",
      "properties": {
        "claimRequestId": {
          "type": "string",
          "description": "Identifier to poll claim status and tx hash via GetClaimEarnFeesStatus."
        }
      },
      "required": ["claimRequestId"]
    },
    "ClaimSwapFeesIntent": {
      "type": "object"
    },
    "ClaimSwapFeesRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CLAIM_SWAP_FEES"]
        },
        "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": "#/definitions/ClaimSwapFeesIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "ClaimSwapFeesResult": {
      "type": "object",
      "properties": {
        "requestId": {
          "type": "string",
          "description": "Relay claim request ID submitted through the permit endpoint."
        }
      },
      "required": ["requestId"]
    },
    "ClientSignature": {
      "type": "object",
      "properties": {
        "publicKey": {
          "type": "string",
          "description": "The public component of a cryptographic key pair used to create the signature."
        },
        "scheme": {
          "$ref": "#/definitions/ClientSignatureScheme",
          "description": "The signature scheme used to generate the client signature."
        },
        "message": {
          "type": "string",
          "description": "The message that was signed."
        },
        "signature": {
          "type": "string",
          "description": "The cryptographic signature over the message."
        }
      },
      "required": ["publicKey", "scheme", "message", "signature"]
    },
    "ClientSignatureScheme": {
      "type": "string",
      "enum": ["CLIENT_SIGNATURE_SCHEME_API_P256"]
    },
    "Config": {
      "type": "object",
      "properties": {
        "features": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Feature"
          }
        },
        "quorum": {
          "$ref": "#/definitions/external.data.v1.Quorum"
        }
      }
    },
    "CreateApiKeysIntent": {
      "type": "object",
      "properties": {
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParams"
          },
          "description": "A list of API Keys."
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        }
      },
      "required": ["apiKeys", "userId"]
    },
    "CreateApiKeysIntentV2": {
      "type": "object",
      "properties": {
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParamsV2"
          },
          "description": "A list of API Keys."
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        }
      },
      "required": ["apiKeys", "userId"]
    },
    "CreateApiKeysRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_API_KEYS_V2"]
        },
        "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": "#/definitions/CreateApiKeysIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateApiKeysResult": {
      "type": "object",
      "properties": {
        "apiKeyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of API Key IDs."
        }
      },
      "required": ["apiKeyIds"]
    },
    "CreateApiOnlyUsersIntent": {
      "type": "object",
      "properties": {
        "apiOnlyUsers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiOnlyUserParams"
          },
          "description": "A list of API-only Users to create."
        }
      },
      "required": ["apiOnlyUsers"]
    },
    "CreateApiOnlyUsersResult": {
      "type": "object",
      "properties": {
        "userIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of API-only User IDs."
        }
      },
      "required": ["userIds"]
    },
    "CreateAuthenticatorsIntent": {
      "type": "object",
      "properties": {
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParams"
          },
          "description": "A list of Authenticators."
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        }
      },
      "required": ["authenticators", "userId"]
    },
    "CreateAuthenticatorsIntentV2": {
      "type": "object",
      "properties": {
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParamsV2"
          },
          "description": "A list of Authenticators."
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        }
      },
      "required": ["authenticators", "userId"]
    },
    "CreateAuthenticatorsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2"]
        },
        "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": "#/definitions/CreateAuthenticatorsIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateAuthenticatorsResult": {
      "type": "object",
      "properties": {
        "authenticatorIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Authenticator IDs."
        }
      },
      "required": ["authenticatorIds"]
    },
    "CreateFiatOnRampCredentialIntent": {
      "type": "object",
      "properties": {
        "onrampProvider": {
          "$ref": "#/definitions/FiatOnRampProvider",
          "description": "The fiat on-ramp provider"
        },
        "projectId": {
          "type": "string",
          "x-nullable": true,
          "description": "Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier"
        },
        "publishableApiKey": {
          "type": "string",
          "description": "Publishable API key for the on-ramp provider"
        },
        "encryptedSecretApiKey": {
          "type": "string",
          "description": "Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key"
        },
        "encryptedPrivateApiKey": {
          "type": "string",
          "x-nullable": true,
          "description": "Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key."
        },
        "sandboxMode": {
          "type": "boolean",
          "description": "If the on-ramp credential is a sandbox credential"
        }
      },
      "required": [
        "onrampProvider",
        "publishableApiKey",
        "encryptedSecretApiKey"
      ]
    },
    "CreateFiatOnRampCredentialRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_FIAT_ON_RAMP_CREDENTIAL"]
        },
        "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": "#/definitions/CreateFiatOnRampCredentialIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateFiatOnRampCredentialResult": {
      "type": "object",
      "properties": {
        "fiatOnRampCredentialId": {
          "type": "string",
          "description": "Unique identifier of the Fiat On-Ramp credential that was created"
        }
      },
      "required": ["fiatOnRampCredentialId"]
    },
    "CreateInvitationsIntent": {
      "type": "object",
      "properties": {
        "invitations": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/InvitationParams"
          },
          "description": "A list of Invitations."
        }
      },
      "required": ["invitations"]
    },
    "CreateInvitationsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_INVITATIONS"]
        },
        "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": "#/definitions/CreateInvitationsIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateInvitationsResult": {
      "type": "object",
      "properties": {
        "invitationIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Invitation IDs"
        }
      },
      "required": ["invitationIds"]
    },
    "CreateMfaPolicyIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "The ID of the User to add the MFA Policy to."
        },
        "mfaPolicyName": {
          "type": "string",
          "description": "Human-readable name for a Policy."
        },
        "condition": {
          "type": "string",
          "description": "A condition expression that evaluates to true or false, determining when this MFA policy applies."
        },
        "requiredAuthenticationMethods": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RequiredAuthenticationMethodParams"
          },
          "description": "An ordered list of authentication requirements. Each requirement must be satisfied sequentially to complete MFA."
        },
        "order": {
          "type": "integer",
          "format": "int64",
          "description": "The order in which this MFA policy is evaluated, starting from 0, relative to other MFA policies. Lower order values are evaluated first."
        },
        "notes": {
          "type": "string",
          "x-nullable": true,
          "description": "Notes for an MFA Policy."
        }
      },
      "required": [
        "userId",
        "mfaPolicyName",
        "condition",
        "requiredAuthenticationMethods",
        "order"
      ]
    },
    "CreateMfaPolicyRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_MFA_POLICY"]
        },
        "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": "#/definitions/CreateMfaPolicyIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateMfaPolicyResult": {
      "type": "object",
      "properties": {
        "mfaPolicyId": {
          "type": "string",
          "description": "Unique identifier for a given MFA Policy."
        }
      },
      "required": ["mfaPolicyId"]
    },
    "CreateOauth2CredentialIntent": {
      "type": "object",
      "properties": {
        "provider": {
          "$ref": "#/definitions/Oauth2Provider",
          "description": "The OAuth 2.0 provider"
        },
        "clientId": {
          "type": "string",
          "description": "The Client ID issued by the OAuth 2.0 provider"
        },
        "encryptedClientSecret": {
          "type": "string",
          "description": "The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key"
        }
      },
      "required": ["provider", "clientId", "encryptedClientSecret"]
    },
    "CreateOauth2CredentialRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL"]
        },
        "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": "#/definitions/CreateOauth2CredentialIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateOauth2CredentialResult": {
      "type": "object",
      "properties": {
        "oauth2CredentialId": {
          "type": "string",
          "description": "Unique identifier of the OAuth 2.0 credential that was created"
        }
      },
      "required": ["oauth2CredentialId"]
    },
    "CreateOauthProvidersIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "The ID of the User to add an Oauth provider to"
        },
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProviderParams"
          },
          "description": "A list of Oauth providers."
        }
      },
      "required": ["userId", "oauthProviders"]
    },
    "CreateOauthProvidersIntentV2": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "The ID of the User to add an Oauth provider to"
        },
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProviderParamsV2"
          },
          "description": "A list of Oauth providers."
        }
      },
      "required": ["userId", "oauthProviders"]
    },
    "CreateOauthProvidersRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_OAUTH_PROVIDERS_V2"]
        },
        "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": "#/definitions/CreateOauthProvidersIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateOauthProvidersResult": {
      "type": "object",
      "properties": {
        "providerIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of unique identifiers for Oauth Providers"
        }
      },
      "required": ["providerIds"]
    },
    "CreateOauthProvidersResultV2": {
      "type": "object",
      "properties": {
        "providerIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of unique identifiers for Oauth Providers"
        }
      },
      "required": ["providerIds"]
    },
    "CreateOrganizationIntent": {
      "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": "#/definitions/AuthenticatorParams",
          "description": "The root user's Authenticator."
        },
        "rootUserId": {
          "type": "string",
          "x-nullable": true,
          "description": "Unique identifier for the root user object."
        }
      },
      "required": ["organizationName", "rootEmail", "rootAuthenticator"]
    },
    "CreateOrganizationIntentV2": {
      "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": "#/definitions/AuthenticatorParamsV2",
          "description": "The root user's Authenticator."
        },
        "rootUserId": {
          "type": "string",
          "x-nullable": true,
          "description": "Unique identifier for the root user object."
        }
      },
      "required": ["organizationName", "rootEmail", "rootAuthenticator"]
    },
    "CreateOrganizationResult": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        }
      },
      "required": ["organizationId"]
    },
    "CreatePoliciesIntent": {
      "type": "object",
      "properties": {
        "policies": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/CreatePolicyIntentV3"
          },
          "description": "An array of policy intents to be created."
        }
      },
      "required": ["policies"]
    },
    "CreatePoliciesRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_POLICIES"]
        },
        "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": "#/definitions/CreatePoliciesIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreatePoliciesResult": {
      "type": "object",
      "properties": {
        "policyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of unique identifiers for the created policies."
        }
      },
      "required": ["policyIds"]
    },
    "CreatePolicyIntent": {
      "type": "object",
      "properties": {
        "policyName": {
          "type": "string",
          "description": "Human-readable name for a Policy."
        },
        "selectors": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Selector"
          },
          "description": "A list of simple functions each including a subject, target and boolean. See Policy Engine Language section for additional details."
        },
        "effect": {
          "$ref": "#/definitions/Effect",
          "description": "The instruction to DENY or ALLOW a particular activity following policy selector(s)."
        },
        "notes": {
          "type": "string"
        }
      },
      "required": ["policyName", "selectors", "effect"]
    },
    "CreatePolicyIntentV2": {
      "type": "object",
      "properties": {
        "policyName": {
          "type": "string",
          "description": "Human-readable name for a Policy."
        },
        "selectors": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SelectorV2"
          },
          "description": "A list of simple functions each including a subject, target and boolean. See Policy Engine Language section for additional details."
        },
        "effect": {
          "$ref": "#/definitions/Effect",
          "description": "Whether to ALLOW or DENY requests that match the condition and consensus requirements."
        },
        "notes": {
          "type": "string"
        }
      },
      "required": ["policyName", "selectors", "effect"]
    },
    "CreatePolicyIntentV3": {
      "type": "object",
      "properties": {
        "policyName": {
          "type": "string",
          "description": "Human-readable name for a Policy."
        },
        "effect": {
          "$ref": "#/definitions/Effect",
          "description": "The instruction to DENY or ALLOW an activity."
        },
        "condition": {
          "type": "string",
          "x-nullable": true,
          "description": "The condition expression that triggers the Effect"
        },
        "consensus": {
          "type": "string",
          "x-nullable": true,
          "description": "The consensus expression that triggers the Effect"
        },
        "notes": {
          "type": "string",
          "description": "Notes for a Policy."
        },
        "time": {
          "type": "string",
          "x-nullable": true,
          "description": "The time expression that triggers the Effect"
        }
      },
      "required": ["policyName", "effect", "notes"]
    },
    "CreatePolicyRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_POLICY_V3"]
        },
        "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": "#/definitions/CreatePolicyIntentV3"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreatePolicyResult": {
      "type": "object",
      "properties": {
        "policyId": {
          "type": "string",
          "description": "Unique identifier for a given Policy."
        }
      },
      "required": ["policyId"]
    },
    "CreatePrivateKeyTagIntent": {
      "type": "object",
      "properties": {
        "privateKeyTagName": {
          "type": "string",
          "description": "Human-readable name for a Private Key Tag."
        },
        "privateKeyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Private Key IDs."
        }
      },
      "required": ["privateKeyTagName", "privateKeyIds"]
    },
    "CreatePrivateKeyTagRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_PRIVATE_KEY_TAG"]
        },
        "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": "#/definitions/CreatePrivateKeyTagIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreatePrivateKeyTagResult": {
      "type": "object",
      "properties": {
        "privateKeyTagId": {
          "type": "string",
          "description": "Unique identifier for a given Private Key Tag."
        },
        "privateKeyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Private Key IDs."
        }
      },
      "required": ["privateKeyTagId", "privateKeyIds"]
    },
    "CreatePrivateKeysIntent": {
      "type": "object",
      "properties": {
        "privateKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/PrivateKeyParams"
          },
          "description": "A list of Private Keys."
        }
      },
      "required": ["privateKeys"]
    },
    "CreatePrivateKeysIntentV2": {
      "type": "object",
      "properties": {
        "privateKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/PrivateKeyParams"
          },
          "description": "A list of Private Keys."
        }
      },
      "required": ["privateKeys"]
    },
    "CreatePrivateKeysRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_PRIVATE_KEYS_V2"]
        },
        "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": "#/definitions/CreatePrivateKeysIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreatePrivateKeysResult": {
      "type": "object",
      "properties": {
        "privateKeyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Private Key IDs."
        }
      },
      "required": ["privateKeyIds"]
    },
    "CreatePrivateKeysResultV2": {
      "type": "object",
      "properties": {
        "privateKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/PrivateKeyResult"
          },
          "description": "A list of Private Key IDs and addresses."
        }
      },
      "required": ["privateKeys"]
    },
    "CreateReadOnlySessionIntent": {
      "type": "object"
    },
    "CreateReadOnlySessionRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_READ_ONLY_SESSION"]
        },
        "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": "#/definitions/CreateReadOnlySessionIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateReadOnlySessionResult": {
      "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",
          "format": "uint64",
          "description": "UTC timestamp in seconds representing the expiry time for the read only session."
        }
      },
      "required": [
        "organizationId",
        "organizationName",
        "userId",
        "username",
        "session",
        "sessionExpiry"
      ]
    },
    "CreateReadWriteSessionIntent": {
      "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",
          "x-nullable": true,
          "description": "Optional human-readable name for an API Key. If none provided, default to Read Write Session - \u003cTimestamp\u003e"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used."
        }
      },
      "required": ["targetPublicKey", "email"]
    },
    "CreateReadWriteSessionIntentV2": {
      "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",
          "x-nullable": true,
          "description": "Optional unique identifier for a given User. If none provided, the read write session will be created for the user who is making the request."
        },
        "apiKeyName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional human-readable name for an API Key. If none provided, default to Read Write Session - \u003cTimestamp\u003e"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used."
        },
        "invalidateExisting": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Invalidate all other previously generated ReadWriteSession API keys"
        }
      },
      "required": ["targetPublicKey"]
    },
    "CreateReadWriteSessionRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_READ_WRITE_SESSION_V2"]
        },
        "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": "#/definitions/CreateReadWriteSessionIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateReadWriteSessionResult": {
      "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"
        }
      },
      "required": [
        "organizationId",
        "organizationName",
        "userId",
        "username",
        "apiKeyId",
        "credentialBundle"
      ]
    },
    "CreateReadWriteSessionResultV2": {
      "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"
        }
      },
      "required": [
        "organizationId",
        "organizationName",
        "userId",
        "username",
        "apiKeyId",
        "credentialBundle"
      ]
    },
    "CreateSessionProfileIntent": {
      "type": "object",
      "properties": {
        "sessionProfileName": {
          "type": "string",
          "description": "Human-readable name for a Session Profile."
        },
        "scope": {
          "type": "string",
          "description": "The scope string that defines the permissions for this Session Profile."
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "The duration in seconds for which sessions created with this Session Profile are valid. If not set, expiration will be determined by the value passed in to the intent of login activities."
        },
        "notes": {
          "type": "string",
          "x-nullable": true,
          "description": "Notes for a Session Profile."
        }
      },
      "required": ["sessionProfileName", "scope"]
    },
    "CreateSessionProfileRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_SESSION_PROFILE"]
        },
        "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": "#/definitions/CreateSessionProfileIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateSessionProfileResult": {
      "type": "object",
      "properties": {
        "sessionProfileId": {
          "type": "string",
          "description": "Unique identifier for a given Session Profile."
        }
      },
      "required": ["sessionProfileId"]
    },
    "CreateSmartContractInterfaceIntent": {
      "type": "object",
      "properties": {
        "smartContractAddress": {
          "type": "string",
          "description": "Corresponding contract address or program ID"
        },
        "smartContractInterface": {
          "type": "string",
          "description": "ABI/IDL as a JSON string. Limited to 400kb"
        },
        "type": {
          "$ref": "#/definitions/SmartContractInterfaceType"
        },
        "label": {
          "type": "string",
          "description": "Human-readable name for a Smart Contract Interface."
        },
        "notes": {
          "type": "string",
          "description": "Notes for a Smart Contract Interface."
        }
      },
      "required": [
        "smartContractAddress",
        "smartContractInterface",
        "type",
        "label"
      ]
    },
    "CreateSmartContractInterfaceRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACE"]
        },
        "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": "#/definitions/CreateSmartContractInterfaceIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateSmartContractInterfaceResult": {
      "type": "object",
      "properties": {
        "smartContractInterfaceId": {
          "type": "string",
          "description": "The ID of the created Smart Contract Interface."
        }
      },
      "required": ["smartContractInterfaceId"]
    },
    "CreateSubOrganizationIntent": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name for this sub-organization"
        },
        "rootAuthenticator": {
          "$ref": "#/definitions/AuthenticatorParamsV2",
          "description": "Root User authenticator for this new sub-organization"
        }
      },
      "required": ["name", "rootAuthenticator"]
    },
    "CreateSubOrganizationIntentV2": {
      "type": "object",
      "properties": {
        "subOrganizationName": {
          "type": "string",
          "description": "Name for this sub-organization"
        },
        "rootUsers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RootUserParams"
          },
          "description": "Root users to create within this sub-organization"
        },
        "rootQuorumThreshold": {
          "type": "integer",
          "format": "int32",
          "description": "The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users"
        }
      },
      "required": ["subOrganizationName", "rootUsers", "rootQuorumThreshold"]
    },
    "CreateSubOrganizationIntentV3": {
      "type": "object",
      "properties": {
        "subOrganizationName": {
          "type": "string",
          "description": "Name for this sub-organization"
        },
        "rootUsers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RootUserParams"
          },
          "description": "Root users to create within this sub-organization"
        },
        "rootQuorumThreshold": {
          "type": "integer",
          "format": "int32",
          "description": "The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users"
        },
        "privateKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/PrivateKeyParams"
          },
          "description": "A list of Private Keys."
        }
      },
      "required": [
        "subOrganizationName",
        "rootUsers",
        "rootQuorumThreshold",
        "privateKeys"
      ]
    },
    "CreateSubOrganizationIntentV4": {
      "type": "object",
      "properties": {
        "subOrganizationName": {
          "type": "string",
          "description": "Name for this sub-organization"
        },
        "rootUsers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RootUserParams"
          },
          "description": "Root users to create within this sub-organization"
        },
        "rootQuorumThreshold": {
          "type": "integer",
          "format": "int32",
          "description": "The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users"
        },
        "wallet": {
          "$ref": "#/definitions/WalletParams",
          "x-nullable": true,
          "description": "The wallet to create for the sub-organization"
        },
        "disableEmailRecovery": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable email recovery for the sub-organization"
        },
        "disableEmailAuth": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable email auth for the sub-organization"
        }
      },
      "required": ["subOrganizationName", "rootUsers", "rootQuorumThreshold"]
    },
    "CreateSubOrganizationIntentV5": {
      "type": "object",
      "properties": {
        "subOrganizationName": {
          "type": "string",
          "description": "Name for this sub-organization"
        },
        "rootUsers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RootUserParamsV2"
          },
          "description": "Root users to create within this sub-organization"
        },
        "rootQuorumThreshold": {
          "type": "integer",
          "format": "int32",
          "description": "The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users"
        },
        "wallet": {
          "$ref": "#/definitions/WalletParams",
          "x-nullable": true,
          "description": "The wallet to create for the sub-organization"
        },
        "disableEmailRecovery": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable email recovery for the sub-organization"
        },
        "disableEmailAuth": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable email auth for the sub-organization"
        }
      },
      "required": ["subOrganizationName", "rootUsers", "rootQuorumThreshold"]
    },
    "CreateSubOrganizationIntentV6": {
      "type": "object",
      "properties": {
        "subOrganizationName": {
          "type": "string",
          "description": "Name for this sub-organization"
        },
        "rootUsers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RootUserParamsV3"
          },
          "description": "Root users to create within this sub-organization"
        },
        "rootQuorumThreshold": {
          "type": "integer",
          "format": "int32",
          "description": "The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users"
        },
        "wallet": {
          "$ref": "#/definitions/WalletParams",
          "x-nullable": true,
          "description": "The wallet to create for the sub-organization"
        },
        "disableEmailRecovery": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable email recovery for the sub-organization"
        },
        "disableEmailAuth": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable email auth for the sub-organization"
        }
      },
      "required": ["subOrganizationName", "rootUsers", "rootQuorumThreshold"]
    },
    "CreateSubOrganizationIntentV7": {
      "type": "object",
      "properties": {
        "subOrganizationName": {
          "type": "string",
          "description": "Name for this sub-organization"
        },
        "rootUsers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RootUserParamsV4"
          },
          "description": "Root users to create within this sub-organization"
        },
        "rootQuorumThreshold": {
          "type": "integer",
          "format": "int32",
          "description": "The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users"
        },
        "wallet": {
          "$ref": "#/definitions/WalletParams",
          "x-nullable": true,
          "description": "The wallet to create for the sub-organization"
        },
        "disableEmailRecovery": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable email recovery for the sub-organization"
        },
        "disableEmailAuth": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable email auth for the sub-organization"
        },
        "disableSmsAuth": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable OTP SMS auth for the sub-organization"
        },
        "disableOtpEmailAuth": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable OTP email auth for the sub-organization"
        },
        "verificationToken": {
          "type": "string",
          "x-nullable": true,
          "description": "Signed JWT containing a unique id, expiry, verification type, contact"
        },
        "clientSignature": {
          "$ref": "#/definitions/ClientSignature",
          "x-nullable": true,
          "description": "Optional signature proving authorization for this sub-organization creation. The signature is over the verification token ID and the root user parameters for the root user associated with the verification token. Only required if a public key was provided during the verification step."
        }
      },
      "required": ["subOrganizationName", "rootUsers", "rootQuorumThreshold"]
    },
    "CreateSubOrganizationIntentV8": {
      "type": "object",
      "properties": {
        "subOrganizationName": {
          "type": "string",
          "description": "Name for this sub-organization"
        },
        "rootUsers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RootUserParamsV5"
          },
          "description": "Root users to create within this sub-organization"
        },
        "rootQuorumThreshold": {
          "type": "integer",
          "format": "int32",
          "description": "The threshold of unique approvals to reach root quorum. This value must be less than or equal to the number of root users"
        },
        "wallet": {
          "$ref": "#/definitions/WalletParams",
          "x-nullable": true,
          "description": "The wallet to create for the sub-organization"
        },
        "disableEmailRecovery": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable email recovery for the sub-organization"
        },
        "disableEmailAuth": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable email auth for the sub-organization"
        },
        "disableSmsAuth": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable OTP SMS auth for the sub-organization"
        },
        "disableOtpEmailAuth": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Disable OTP email auth for the sub-organization"
        },
        "verificationToken": {
          "type": "string",
          "x-nullable": true,
          "description": "Signed JWT containing a unique id, expiry, verification type, contact"
        },
        "clientSignature": {
          "$ref": "#/definitions/ClientSignature",
          "x-nullable": true,
          "description": "Optional signature proving authorization for this sub-organization creation. The signature is over the verification token ID and the root user parameters for the root user associated with the verification token. Only required if a public key was provided during the verification step."
        }
      },
      "required": ["subOrganizationName", "rootUsers", "rootQuorumThreshold"]
    },
    "CreateSubOrganizationRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_SUB_ORGANIZATION_V8"]
        },
        "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": "#/definitions/CreateSubOrganizationIntentV8"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateSubOrganizationResult": {
      "type": "object",
      "properties": {
        "subOrganizationId": {
          "type": "string"
        },
        "rootUserIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": ["subOrganizationId"]
    },
    "CreateSubOrganizationResultV3": {
      "type": "object",
      "properties": {
        "subOrganizationId": {
          "type": "string"
        },
        "privateKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/PrivateKeyResult"
          },
          "description": "A list of Private Key IDs and addresses."
        },
        "rootUserIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": ["subOrganizationId", "privateKeys"]
    },
    "CreateSubOrganizationResultV4": {
      "type": "object",
      "properties": {
        "subOrganizationId": {
          "type": "string"
        },
        "wallet": {
          "$ref": "#/definitions/WalletResult",
          "x-nullable": true
        },
        "rootUserIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": ["subOrganizationId"]
    },
    "CreateSubOrganizationResultV5": {
      "type": "object",
      "properties": {
        "subOrganizationId": {
          "type": "string"
        },
        "wallet": {
          "$ref": "#/definitions/WalletResult",
          "x-nullable": true
        },
        "rootUserIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": ["subOrganizationId"]
    },
    "CreateSubOrganizationResultV6": {
      "type": "object",
      "properties": {
        "subOrganizationId": {
          "type": "string"
        },
        "wallet": {
          "$ref": "#/definitions/WalletResult",
          "x-nullable": true
        },
        "rootUserIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": ["subOrganizationId"]
    },
    "CreateSubOrganizationResultV7": {
      "type": "object",
      "properties": {
        "subOrganizationId": {
          "type": "string"
        },
        "wallet": {
          "$ref": "#/definitions/WalletResult",
          "x-nullable": true
        },
        "rootUserIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": ["subOrganizationId"]
    },
    "CreateSubOrganizationResultV8": {
      "type": "object",
      "properties": {
        "subOrganizationId": {
          "type": "string"
        },
        "wallet": {
          "$ref": "#/definitions/WalletResult",
          "x-nullable": true
        },
        "rootUserIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": ["subOrganizationId"]
    },
    "CreateSwapQuoteIntent": {
      "type": "object",
      "properties": {
        "signWith": {
          "type": "string",
          "description": "Wallet account or Private Key address used to price the executable provider quote. Private Key identifiers are not supported."
        },
        "inputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the input asset. The chain is derived from this value."
        },
        "outputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the output asset."
        },
        "inputAmount": {
          "type": "string",
          "description": "Base-unit amount of the input asset."
        },
        "slippageBps": {
          "type": "string",
          "x-nullable": true,
          "description": "Provider-neutral maximum allowed slippage in basis points. Turnkey converts this value to each provider's request format. When omitted, each provider applies its default slippage behavior."
        }
      },
      "required": ["signWith", "inputToken", "outputToken", "inputAmount"]
    },
    "CreateSwapQuoteIntentV2": {
      "type": "object",
      "properties": {
        "signWith": {
          "type": "string",
          "description": "Wallet account address used to price the executable provider quote. Private Key identifiers are not supported."
        },
        "inputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the input asset. The chain is derived from this value."
        },
        "outputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the output asset."
        },
        "inputAmount": {
          "type": "string",
          "description": "Base-unit amount of the input asset."
        },
        "slippageBps": {
          "type": "string",
          "x-nullable": true,
          "description": "Provider-neutral maximum allowed slippage in basis points. Turnkey converts this value to each provider's request format. When omitted, each provider applies its default slippage behavior."
        },
        "destinationAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Raw public address that receives the output asset. Required for cross-protocol swaps. The address must match the output token protocol. Wallet account IDs, private key IDs, and CAIP account or asset identifiers are not supported."
        }
      },
      "required": ["signWith", "inputToken", "outputToken", "inputAmount"]
    },
    "CreateSwapQuoteRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_SWAP_QUOTE"]
        },
        "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": "#/definitions/CreateSwapQuoteIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateSwapQuoteResult": {
      "type": "object",
      "properties": {
        "quotes": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SwapQuote"
          },
          "description": "One or more provider quotes for this request. Today this contains a single Relay quote; pass quotes[i].quoteId to execute_swap_v2 to bind execution."
        }
      },
      "required": ["quotes"]
    },
    "CreateTvcAppIntent": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the new TVC application"
        },
        "quorumPublicKey": {
          "type": "string",
          "description": "Quorum public key to use for this application"
        },
        "manifestSetId": {
          "type": "string",
          "x-nullable": true,
          "description": "Unique identifier for an existing TVC operator set to use as the Manifest Set for this TVC application. If left empty, a new Manifest Set configuration is required"
        },
        "manifestSetParams": {
          "$ref": "#/definitions/TvcOperatorSetParams",
          "x-nullable": true,
          "description": "Configuration to create a new TVC operator set, used as the Manifest Set for this TVC application. If left empty, a Manifest Set ID is required"
        },
        "shareSetId": {
          "type": "string",
          "x-nullable": true,
          "description": "Unique identifier for an existing TVC operator set to use as the Share Set for this TVC application. If left empty, a new Share Set configuration is required"
        },
        "shareSetParams": {
          "$ref": "#/definitions/TvcOperatorSetParams",
          "x-nullable": true,
          "description": "Configuration to create a new TVC operator set, used as the Share Set for this TVC application. If left empty, a Share Set ID is required"
        },
        "enableEgress": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Enables network egress for this TVC app. Default if not provided: false."
        },
        "enableDebugModeDeployments": {
          "type": "boolean",
          "x-nullable": true,
          "description": "When true, this app may create deployments in debug-mode. Debug-mode deployments expose logs and emit zero'd attestation PCRs, so remote attestation cannot succeed. Cannot be changed after app creation. Setting this true means the app's quorum key is considered permanently insecure, and a new app with a fresh quorum key must be created. Default if not provided: false."
        }
      },
      "required": ["name", "quorumPublicKey"]
    },
    "CreateTvcAppRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_TVC_APP"]
        },
        "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": "#/definitions/CreateTvcAppIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateTvcAppResult": {
      "type": "object",
      "properties": {
        "appId": {
          "type": "string",
          "description": "The unique identifier for the TVC application"
        },
        "manifestSetId": {
          "type": "string",
          "description": "The unique identifier for the TVC manifest set"
        },
        "manifestSetOperatorIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The unique identifier(s) of the manifest set operators"
        },
        "manifestSetThreshold": {
          "type": "integer",
          "format": "int64",
          "description": "The required number of approvals for the manifest set"
        },
        "shareSetId": {
          "type": "string",
          "description": "The unique identifier for the TVC share set"
        },
        "shareSetOperatorIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The unique identifiers of the share set operators"
        },
        "shareSetThreshold": {
          "type": "integer",
          "format": "int64",
          "description": "The required number of approvals for the share set"
        }
      },
      "required": [
        "appId",
        "manifestSetId",
        "manifestSetOperatorIds",
        "manifestSetThreshold",
        "shareSetId",
        "shareSetOperatorIds",
        "shareSetThreshold"
      ]
    },
    "CreateTvcDeploymentIntent": {
      "type": "object",
      "properties": {
        "appId": {
          "type": "string",
          "description": "The unique identifier of the to-be-deployed TVC application"
        },
        "qosVersion": {
          "type": "string",
          "description": "The QuorumOS version to use to deploy this application"
        },
        "pivotContainerImageUrl": {
          "type": "string",
          "description": "URL of the container containing the pivot binary"
        },
        "pivotPath": {
          "type": "string",
          "description": "Location of the binary in the pivot container"
        },
        "pivotArgs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Arguments to pass to the pivot binary at startup. Encoded as a list of strings, for example [\"--foo\", \"bar\"]"
        },
        "expectedPivotDigest": {
          "type": "string",
          "description": "Digest of the pivot binary in the pivot container. This value will be inserted in the QOS manifest to ensure application integrity."
        },
        "nonce": {
          "type": "integer",
          "format": "int64",
          "x-nullable": true,
          "description": "Optional nonce to ensure uniqueness of the deployment manifest. If not provided, it defaults to the current Unix timestamp in seconds."
        },
        "pivotContainerEncryptedPullSecret": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional encrypted pull secret to authorize Turnkey to pull the pivot container image. If your image is public, leave this empty."
        },
        "debugMode": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Optional flag to indicate whether to deploy the TVC app in debug mode, which includes additional logging and debugging tools. Default is false."
        },
        "healthCheckType": {
          "$ref": "#/definitions/TvcHealthCheckType",
          "description": "Health check type (TVC_HEALTH_CHECK_TYPE_HTTP or TVC_HEALTH_CHECK_TYPE_GRPC). HTTP health checks are made with a GET request on /health, and gRPC health checks follow the standard gRPC health checking protocol."
        },
        "healthCheckPort": {
          "type": "integer",
          "format": "int64",
          "description": "Port to use for health checks."
        },
        "publicIngressPort": {
          "type": "integer",
          "format": "int64",
          "description": "Port to use for public ingress."
        },
        "replicas": {
          "type": "integer",
          "format": "int64",
          "x-nullable": true,
          "description": "Optional desired replica count for this deployment."
        }
      },
      "required": [
        "appId",
        "qosVersion",
        "pivotContainerImageUrl",
        "pivotPath",
        "pivotArgs",
        "expectedPivotDigest",
        "healthCheckType",
        "healthCheckPort",
        "publicIngressPort"
      ]
    },
    "CreateTvcDeploymentRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_TVC_DEPLOYMENT"]
        },
        "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": "#/definitions/CreateTvcDeploymentIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateTvcDeploymentResult": {
      "type": "object",
      "properties": {
        "deploymentId": {
          "type": "string",
          "description": "The unique identifier for the TVC deployment"
        },
        "manifestId": {
          "type": "string",
          "description": "The unique identifier for the TVC manifest"
        }
      },
      "required": ["deploymentId", "manifestId"]
    },
    "CreateTvcManifestApprovalsIntent": {
      "type": "object",
      "properties": {
        "manifestId": {
          "type": "string",
          "description": "Unique identifier of the TVC deployment to approve"
        },
        "approvals": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/TvcManifestApproval"
          },
          "description": "List of manifest approvals"
        }
      },
      "required": ["manifestId", "approvals"]
    },
    "CreateTvcManifestApprovalsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_TVC_MANIFEST_APPROVALS"]
        },
        "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": "#/definitions/CreateTvcManifestApprovalsIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateTvcManifestApprovalsResult": {
      "type": "object",
      "properties": {
        "approvalIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The unique identifier(s) for the manifest approvals"
        }
      },
      "required": ["approvalIds"]
    },
    "CreateTvcOperatorIntent": {
      "type": "object",
      "properties": {
        "walletName": {
          "type": "string",
          "x-nullable": true,
          "description": "Human-readable name for a new wallet created for this TVC operator"
        },
        "walletId": {
          "type": "string",
          "x-nullable": true,
          "description": "Unique identifier for an existing wallet to reuse for this TVC operator"
        },
        "path": {
          "type": "string",
          "description": "Base derivation path for creating TVC operator wallet accounts"
        },
        "operatorName": {
          "type": "string",
          "description": "Human-readable name for this new TVC operator"
        }
      },
      "required": ["path", "operatorName"]
    },
    "CreateTvcOperatorResult": {
      "type": "object",
      "properties": {
        "walletId": {
          "type": "string",
          "description": "The unique identifier for the wallet containing TVC operator accounts"
        },
        "operatorId": {
          "type": "string",
          "description": "The unique identifier for the TVC operator"
        },
        "encryptPublicKey": {
          "type": "string",
          "description": "Public encryption key for this TVC operator"
        },
        "signPublicKey": {
          "type": "string",
          "description": "Public signing key for this TVC operator"
        }
      },
      "required": [
        "walletId",
        "operatorId",
        "encryptPublicKey",
        "signPublicKey"
      ]
    },
    "CreateTvcQuorumKeyIntent": {
      "type": "object",
      "properties": {
        "threshold": {
          "type": "integer",
          "format": "int64",
          "description": "The threshold of operators needed to reassemble this TVC quorum key"
        },
        "operatorEncryptKeys": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Operator public keys used to encrypt and later approve the generated TVC quorum key shares"
        }
      },
      "required": ["threshold", "operatorEncryptKeys"]
    },
    "CreateTvcQuorumKeyResult": {
      "type": "object",
      "properties": {
        "quorumKeyId": {
          "type": "string",
          "description": "The unique identifier for the TVC quorum key"
        },
        "quorumPublicKey": {
          "type": "string",
          "description": "Public key for the generated TVC quorum key"
        },
        "shareIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The unique identifier(s) for the generated TVC quorum key shares"
        }
      },
      "required": ["quorumKeyId", "quorumPublicKey", "shareIds"]
    },
    "CreateUserTagIntent": {
      "type": "object",
      "properties": {
        "userTagName": {
          "type": "string",
          "description": "Human-readable name for a User Tag."
        },
        "userIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User IDs."
        }
      },
      "required": ["userTagName", "userIds"]
    },
    "CreateUserTagRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_USER_TAG"]
        },
        "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": "#/definitions/CreateUserTagIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateUserTagResult": {
      "type": "object",
      "properties": {
        "userTagId": {
          "type": "string",
          "description": "Unique identifier for a given User Tag."
        },
        "userIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User IDs."
        }
      },
      "required": ["userTagId", "userIds"]
    },
    "CreateUsersIntent": {
      "type": "object",
      "properties": {
        "users": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/UserParams"
          },
          "description": "A list of Users."
        }
      },
      "required": ["users"]
    },
    "CreateUsersIntentV2": {
      "type": "object",
      "properties": {
        "users": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/UserParamsV2"
          },
          "description": "A list of Users."
        }
      },
      "required": ["users"]
    },
    "CreateUsersIntentV3": {
      "type": "object",
      "properties": {
        "users": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/UserParamsV3"
          },
          "description": "A list of Users."
        }
      },
      "required": ["users"]
    },
    "CreateUsersIntentV4": {
      "type": "object",
      "properties": {
        "users": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/UserParamsV4"
          },
          "description": "A list of Users."
        }
      },
      "required": ["users"]
    },
    "CreateUsersRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_USERS_V4"]
        },
        "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": "#/definitions/CreateUsersIntentV4"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateUsersResult": {
      "type": "object",
      "properties": {
        "userIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User IDs."
        }
      },
      "required": ["userIds"]
    },
    "CreateVelocityControlIntent": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Human-readable name for the Velocity Control."
        },
        "dataSource": {
          "$ref": "#/definitions/VelocityControlDataSource",
          "description": "Data source for the Velocity Control."
        },
        "aggregation": {
          "$ref": "#/definitions/VelocityControlAggregation",
          "description": "Aggregation expression that the Velocity Control evaluates."
        },
        "identifier": {
          "type": "string",
          "description": "Identifier for the Velocity Control. Policies reference it as `controls.\u003cidentifier\u003e`. It must be unique within the Organization."
        }
      },
      "required": ["name", "dataSource", "aggregation", "identifier"]
    },
    "CreateVelocityControlResult": {
      "type": "object",
      "properties": {
        "velocityControlId": {
          "type": "string"
        }
      },
      "required": ["velocityControlId"]
    },
    "CreateWalletAccountsIntent": {
      "type": "object",
      "properties": {
        "walletId": {
          "type": "string",
          "description": "Unique identifier for a given Wallet."
        },
        "accounts": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/WalletAccountParams"
          },
          "description": "A list of wallet Accounts."
        },
        "persist": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Indicates if the wallet accounts should be persisted. This is helpful if you'd like to see the addresses of different derivation paths without actually creating the accounts. Defaults to true."
        }
      },
      "required": ["walletId", "accounts"]
    },
    "CreateWalletAccountsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS"]
        },
        "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": "#/definitions/CreateWalletAccountsIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateWalletAccountsResult": {
      "type": "object",
      "properties": {
        "addresses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of derived addresses."
        }
      },
      "required": ["addresses"]
    },
    "CreateWalletIntent": {
      "type": "object",
      "properties": {
        "walletName": {
          "type": "string",
          "description": "Human-readable name for a Wallet."
        },
        "accounts": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/WalletAccountParams"
          },
          "description": "A list of wallet Accounts. This field, if not needed, should be an empty array in your request body."
        },
        "mnemonicLength": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24."
        }
      },
      "required": ["walletName", "accounts"]
    },
    "CreateWalletRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_WALLET"]
        },
        "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": "#/definitions/CreateWalletIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateWalletResult": {
      "type": "object",
      "properties": {
        "walletId": {
          "type": "string",
          "description": "Unique identifier for a Wallet."
        },
        "addresses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of account addresses."
        }
      },
      "required": ["walletId", "addresses"]
    },
    "CreateWebhookEndpointIntent": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "The destination URL for webhook delivery."
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for this webhook endpoint."
        },
        "subscriptions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/WebhookSubscriptionParams"
          },
          "description": "Event subscriptions to create for this endpoint."
        }
      },
      "required": ["url", "name"]
    },
    "CreateWebhookEndpointRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_CREATE_WEBHOOK_ENDPOINT"]
        },
        "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": "#/definitions/CreateWebhookEndpointIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "CreateWebhookEndpointResult": {
      "type": "object",
      "properties": {
        "endpointId": {
          "type": "string",
          "description": "Unique identifier of the created webhook endpoint."
        },
        "webhookEndpoint": {
          "$ref": "#/definitions/WebhookEndpointData",
          "description": "The created webhook endpoint data."
        }
      },
      "required": ["endpointId", "webhookEndpoint"]
    },
    "CredPropsAuthenticationExtensionsClientOutputs": {
      "type": "object",
      "properties": {
        "rk": {
          "type": "boolean"
        }
      },
      "required": ["rk"]
    },
    "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",
        "CREDENTIAL_TYPE_READ_WRITE_SESSION_KEY_P256",
        "CREDENTIAL_TYPE_OAUTH_KEY_P256",
        "CREDENTIAL_TYPE_LOGIN"
      ]
    },
    "Curve": {
      "type": "string",
      "enum": ["CURVE_SECP256K1", "CURVE_ED25519", "CURVE_P256"]
    },
    "CustomRevertError": {
      "type": "object",
      "properties": {
        "errorName": {
          "type": "string",
          "x-nullable": true,
          "description": "The name of the custom error."
        },
        "paramsJson": {
          "type": "string",
          "x-nullable": true,
          "description": "The decoded parameters as a JSON object."
        }
      }
    },
    "DeleteApiKeysIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        },
        "apiKeyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of API Key IDs."
        }
      },
      "required": ["userId", "apiKeyIds"]
    },
    "DeleteApiKeysRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_API_KEYS"]
        },
        "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": "#/definitions/DeleteApiKeysIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteApiKeysResult": {
      "type": "object",
      "properties": {
        "apiKeyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of API Key IDs."
        }
      },
      "required": ["apiKeyIds"]
    },
    "DeleteAuthenticatorsIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        },
        "authenticatorIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Authenticator IDs."
        }
      },
      "required": ["userId", "authenticatorIds"]
    },
    "DeleteAuthenticatorsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_AUTHENTICATORS"]
        },
        "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": "#/definitions/DeleteAuthenticatorsIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteAuthenticatorsResult": {
      "type": "object",
      "properties": {
        "authenticatorIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Unique identifier for a given Authenticator."
        }
      },
      "required": ["authenticatorIds"]
    },
    "DeleteFiatOnRampCredentialIntent": {
      "type": "object",
      "properties": {
        "fiatOnrampCredentialId": {
          "type": "string",
          "description": "The ID of the fiat on-ramp credential to delete"
        }
      },
      "required": ["fiatOnrampCredentialId"]
    },
    "DeleteFiatOnRampCredentialRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_FIAT_ON_RAMP_CREDENTIAL"]
        },
        "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": "#/definitions/DeleteFiatOnRampCredentialIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteFiatOnRampCredentialResult": {
      "type": "object",
      "properties": {
        "fiatOnRampCredentialId": {
          "type": "string",
          "description": "Unique identifier of the Fiat On-Ramp credential that was deleted"
        }
      },
      "required": ["fiatOnRampCredentialId"]
    },
    "DeleteInvitationIntent": {
      "type": "object",
      "properties": {
        "invitationId": {
          "type": "string",
          "description": "Unique identifier for a given Invitation object."
        }
      },
      "required": ["invitationId"]
    },
    "DeleteInvitationRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_INVITATION"]
        },
        "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": "#/definitions/DeleteInvitationIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteInvitationResult": {
      "type": "object",
      "properties": {
        "invitationId": {
          "type": "string",
          "description": "Unique identifier for a given Invitation."
        }
      },
      "required": ["invitationId"]
    },
    "DeleteMfaPolicyIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "The ID of the User to delete the MFA Policy from."
        },
        "mfaPolicyId": {
          "type": "string",
          "description": "Unique identifier for a given MFA Policy."
        }
      },
      "required": ["userId", "mfaPolicyId"]
    },
    "DeleteMfaPolicyRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_MFA_POLICY"]
        },
        "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": "#/definitions/DeleteMfaPolicyIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteMfaPolicyResult": {
      "type": "object",
      "properties": {
        "mfaPolicyId": {
          "type": "string",
          "description": "Unique identifier for a given MFA Policy."
        }
      },
      "required": ["mfaPolicyId"]
    },
    "DeleteOauth2CredentialIntent": {
      "type": "object",
      "properties": {
        "oauth2CredentialId": {
          "type": "string",
          "description": "The ID of the OAuth 2.0 credential to delete"
        }
      },
      "required": ["oauth2CredentialId"]
    },
    "DeleteOauth2CredentialRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_OAUTH2_CREDENTIAL"]
        },
        "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": "#/definitions/DeleteOauth2CredentialIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteOauth2CredentialResult": {
      "type": "object",
      "properties": {
        "oauth2CredentialId": {
          "type": "string",
          "description": "Unique identifier of the OAuth 2.0 credential that was deleted"
        }
      },
      "required": ["oauth2CredentialId"]
    },
    "DeleteOauthProvidersIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "The ID of the User to remove an Oauth provider from"
        },
        "providerIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Unique identifier for a given Provider."
        }
      },
      "required": ["userId", "providerIds"]
    },
    "DeleteOauthProvidersRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_OAUTH_PROVIDERS"]
        },
        "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": "#/definitions/DeleteOauthProvidersIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteOauthProvidersResult": {
      "type": "object",
      "properties": {
        "providerIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of unique identifiers for Oauth Providers"
        }
      },
      "required": ["providerIds"]
    },
    "DeleteOrganizationIntent": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        }
      },
      "required": ["organizationId"]
    },
    "DeleteOrganizationResult": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        }
      },
      "required": ["organizationId"]
    },
    "DeletePaymentMethodIntent": {
      "type": "object",
      "properties": {
        "paymentMethodId": {
          "type": "string",
          "x-nullable": true,
          "description": "The payment method that the customer wants to remove."
        }
      },
      "required": ["paymentMethodId"]
    },
    "DeletePaymentMethodResult": {
      "type": "object",
      "properties": {
        "paymentMethodId": {
          "type": "string",
          "description": "The payment method that was removed."
        }
      },
      "required": ["paymentMethodId"]
    },
    "DeletePoliciesIntent": {
      "type": "object",
      "properties": {
        "policyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of unique identifiers for policies within an organization"
        }
      },
      "required": ["policyIds"]
    },
    "DeletePoliciesRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_POLICIES"]
        },
        "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": "#/definitions/DeletePoliciesIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeletePoliciesResult": {
      "type": "object",
      "properties": {
        "policyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of unique identifiers for the deleted policies."
        }
      },
      "required": ["policyIds"]
    },
    "DeletePolicyIntent": {
      "type": "object",
      "properties": {
        "policyId": {
          "type": "string",
          "description": "Unique identifier for a given Policy."
        }
      },
      "required": ["policyId"]
    },
    "DeletePolicyRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_POLICY"]
        },
        "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": "#/definitions/DeletePolicyIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeletePolicyResult": {
      "type": "object",
      "properties": {
        "policyId": {
          "type": "string",
          "description": "Unique identifier for a given Policy."
        }
      },
      "required": ["policyId"]
    },
    "DeletePrivateKeyTagsIntent": {
      "type": "object",
      "properties": {
        "privateKeyTagIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Private Key Tag IDs."
        }
      },
      "required": ["privateKeyTagIds"]
    },
    "DeletePrivateKeyTagsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_PRIVATE_KEY_TAGS"]
        },
        "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": "#/definitions/DeletePrivateKeyTagsIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeletePrivateKeyTagsResult": {
      "type": "object",
      "properties": {
        "privateKeyTagIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Private Key Tag IDs."
        },
        "privateKeyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Private Key IDs."
        }
      },
      "required": ["privateKeyTagIds", "privateKeyIds"]
    },
    "DeletePrivateKeysIntent": {
      "type": "object",
      "properties": {
        "privateKeyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of unique identifiers for private keys within an organization"
        },
        "deleteWithoutExport": {
          "type": "boolean",
          "x-nullable": true,
          "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."
        }
      },
      "required": ["privateKeyIds"]
    },
    "DeletePrivateKeysRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_PRIVATE_KEYS"]
        },
        "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": "#/definitions/DeletePrivateKeysIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeletePrivateKeysResult": {
      "type": "object",
      "properties": {
        "privateKeyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of private key unique identifiers that were removed"
        }
      },
      "required": ["privateKeyIds"]
    },
    "DeleteSmartContractInterfaceIntent": {
      "type": "object",
      "properties": {
        "smartContractInterfaceId": {
          "type": "string",
          "description": "The ID of a Smart Contract Interface intended for deletion."
        }
      },
      "required": ["smartContractInterfaceId"]
    },
    "DeleteSmartContractInterfaceRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_SMART_CONTRACT_INTERFACE"]
        },
        "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": "#/definitions/DeleteSmartContractInterfaceIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteSmartContractInterfaceResult": {
      "type": "object",
      "properties": {
        "smartContractInterfaceId": {
          "type": "string",
          "description": "The ID of the deleted Smart Contract Interface."
        }
      },
      "required": ["smartContractInterfaceId"]
    },
    "DeleteSubOrganizationIntent": {
      "type": "object",
      "properties": {
        "deleteWithoutExport": {
          "type": "boolean",
          "x-nullable": true,
          "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."
        }
      }
    },
    "DeleteSubOrganizationRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_SUB_ORGANIZATION"]
        },
        "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": "#/definitions/DeleteSubOrganizationIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteSubOrganizationResult": {
      "type": "object",
      "properties": {
        "subOrganizationUuid": {
          "type": "string",
          "description": "Unique identifier of the sub organization that was removed"
        }
      },
      "required": ["subOrganizationUuid"]
    },
    "DeleteTvcAppAndDeploymentsIntent": {
      "type": "object",
      "properties": {
        "appId": {
          "type": "string",
          "description": "The unique identifier of the TVC app to delete. The app and all associated deployments will be removed."
        }
      },
      "required": ["appId"]
    },
    "DeleteTvcAppAndDeploymentsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_TVC_APP_AND_DEPLOYMENTS"]
        },
        "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": "#/definitions/DeleteTvcAppAndDeploymentsIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteTvcAppAndDeploymentsResult": {
      "type": "object",
      "properties": {
        "appId": {
          "type": "string",
          "description": "The unique identifier of the deleted TVC app."
        }
      },
      "required": ["appId"]
    },
    "DeleteTvcDeploymentIntent": {
      "type": "object",
      "properties": {
        "deploymentId": {
          "type": "string",
          "description": "The unique identifier of the TVC deployment to delete."
        }
      },
      "required": ["deploymentId"]
    },
    "DeleteTvcDeploymentRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_TVC_DEPLOYMENT"]
        },
        "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": "#/definitions/DeleteTvcDeploymentIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteTvcDeploymentResult": {
      "type": "object",
      "properties": {
        "deploymentId": {
          "type": "string",
          "description": "The unique identifier of the deleted TVC deployment."
        }
      },
      "required": ["deploymentId"]
    },
    "DeleteUserTagsIntent": {
      "type": "object",
      "properties": {
        "userTagIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User Tag IDs."
        }
      },
      "required": ["userTagIds"]
    },
    "DeleteUserTagsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_USER_TAGS"]
        },
        "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": "#/definitions/DeleteUserTagsIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteUserTagsResult": {
      "type": "object",
      "properties": {
        "userTagIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User Tag IDs."
        },
        "userIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User IDs."
        }
      },
      "required": ["userTagIds", "userIds"]
    },
    "DeleteUsersIntent": {
      "type": "object",
      "properties": {
        "userIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User IDs."
        }
      },
      "required": ["userIds"]
    },
    "DeleteUsersRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_USERS"]
        },
        "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": "#/definitions/DeleteUsersIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteUsersResult": {
      "type": "object",
      "properties": {
        "userIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User IDs."
        }
      },
      "required": ["userIds"]
    },
    "DeleteVelocityControlIntent": {
      "type": "object",
      "properties": {
        "velocityControlId": {
          "type": "string"
        }
      },
      "required": ["velocityControlId"]
    },
    "DeleteVelocityControlResult": {
      "type": "object",
      "properties": {
        "velocityControlId": {
          "type": "string"
        }
      },
      "required": ["velocityControlId"]
    },
    "DeleteWalletAccountsIntent": {
      "type": "object",
      "properties": {
        "walletAccountIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of unique identifiers for wallet accounts within an organization"
        },
        "deleteWithoutExport": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Optional parameter for deleting the wallet accounts, even if any have not been previously exported. If they have been exported, this field is ignored."
        }
      },
      "required": ["walletAccountIds"]
    },
    "DeleteWalletAccountsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_WALLET_ACCOUNTS"]
        },
        "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": "#/definitions/DeleteWalletAccountsIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteWalletAccountsResult": {
      "type": "object",
      "properties": {
        "walletAccountIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of wallet account unique identifiers that were removed"
        }
      },
      "required": ["walletAccountIds"]
    },
    "DeleteWalletsIntent": {
      "type": "object",
      "properties": {
        "walletIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of unique identifiers for wallets within an organization"
        },
        "deleteWithoutExport": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Optional parameter for deleting the wallets, even if any have not been previously exported. If they have been exported, this field is ignored."
        }
      },
      "required": ["walletIds"]
    },
    "DeleteWalletsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_WALLETS"]
        },
        "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": "#/definitions/DeleteWalletsIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteWalletsResult": {
      "type": "object",
      "properties": {
        "walletIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of wallet unique identifiers that were removed"
        }
      },
      "required": ["walletIds"]
    },
    "DeleteWebhookEndpointIntent": {
      "type": "object",
      "properties": {
        "endpointId": {
          "type": "string",
          "description": "Unique identifier of the webhook endpoint to delete."
        }
      },
      "required": ["endpointId"]
    },
    "DeleteWebhookEndpointRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_DELETE_WEBHOOK_ENDPOINT"]
        },
        "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": "#/definitions/DeleteWebhookEndpointIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "DeleteWebhookEndpointResult": {
      "type": "object",
      "properties": {
        "endpointId": {
          "type": "string",
          "description": "Unique identifier of the deleted webhook endpoint."
        }
      },
      "required": ["endpointId"]
    },
    "DeploymentStatus": {
      "type": "object",
      "properties": {
        "deploymentId": {
          "type": "string",
          "description": "Unique identifier for this deployment (corresponds to k8s deployment label)"
        },
        "readyReplicas": {
          "type": "integer",
          "format": "int32",
          "description": "Number of ready replicas"
        },
        "desiredReplicas": {
          "type": "integer",
          "format": "int32",
          "description": "Desired number of replicas"
        },
        "lastUpdatedTime": {
          "$ref": "#/definitions/external.data.v1.Timestamp",
          "description": "Last time this deployment was updated"
        },
        "provisioningState": {
          "$ref": "#/definitions/ProvisioningState",
          "x-nullable": true,
          "description": "Current quorum-key provisioning state for this deployment"
        }
      },
      "required": [
        "deploymentId",
        "readyReplicas",
        "desiredReplicas",
        "lastUpdatedTime"
      ]
    },
    "DisableAuthProxyIntent": {
      "type": "object"
    },
    "DisableAuthProxyResult": {
      "type": "object"
    },
    "DisablePrivateKeyIntent": {
      "type": "object",
      "properties": {
        "privateKeyId": {
          "type": "string",
          "description": "Unique identifier for a given Private Key."
        }
      },
      "required": ["privateKeyId"]
    },
    "DisablePrivateKeyResult": {
      "type": "object",
      "properties": {
        "privateKeyId": {
          "type": "string",
          "description": "Unique identifier for a given Private Key."
        }
      },
      "required": ["privateKeyId"]
    },
    "EarnDeployWrapperIntent": {
      "type": "object",
      "properties": {
        "vaultAddress": {
          "type": "string",
          "description": "Address of the underlying yield vault to wrap (from the ListEarnVaults catalog)."
        },
        "chainCaip2": {
          "type": "string",
          "enum": [
            "eip155:1",
            "eip155:8453",
            "eip155:42161",
            "eip155:137",
            "eip155:56",
            "eip155:4217"
          ],
          "description": "CAIP-2 chain ID the vault lives on (e.g., 'eip155:8453' for Base)."
        },
        "clientFeeBps": {
          "type": "string",
          "description": "Your fee on gross yield, in basis points (e.g., '2000' for 20%). Maximum is 4000 (40%)."
        },
        "clientFeeWallet": {
          "type": "string",
          "description": "The wallet address that receives the client's fee payouts on-chain. Must be a Turnkey-managed wallet address."
        }
      },
      "required": [
        "vaultAddress",
        "chainCaip2",
        "clientFeeBps",
        "clientFeeWallet"
      ]
    },
    "EarnDeployWrapperRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_EARN_DEPLOY_WRAPPER"]
        },
        "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": "#/definitions/EarnDeployWrapperIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "EarnDeployWrapperResult": {
      "type": "object",
      "properties": {
        "wrapperAddress": {
          "type": "string",
          "description": "Address of the deployed fee wrapper (the deposit target)."
        },
        "splitterAddress": {
          "type": "string",
          "description": "Address of the deployed fee splitter (PaymentSplitter for Morpho, RevenueSplitterOwner for Aave)."
        },
        "deployRequestId": {
          "type": "string",
          "description": "Identifier to poll deploy status."
        }
      },
      "required": ["wrapperAddress", "splitterAddress", "deployRequestId"]
    },
    "EarnDepositIntent": {
      "type": "object",
      "properties": {
        "wrapperAddress": {
          "type": "string",
          "description": "Address of the deployed Earn wrapper to deposit into, from ListEarnVaults/ListEarnPositions. Must be one of the org's deployed wrappers."
        },
        "signWith": {
          "type": "string",
          "description": "A Wallet account address or Private Key address to deposit from and sign with. Must be an on-chain address; Private Key identifiers are not supported."
        },
        "assets": {
          "type": "string",
          "description": "Amount of the underlying asset to deposit, in raw on-chain units (e.g., '1000000' for 1 USDC at 6 decimals)."
        },
        "chainCaip2": {
          "type": "string",
          "enum": [
            "eip155:1",
            "eip155:8453",
            "eip155:42161",
            "eip155:137",
            "eip155:56",
            "eip155:4217"
          ],
          "description": "CAIP-2 chain ID the vault lives on (e.g., 'eip155:8453' for Base)."
        },
        "sponsor": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether to sponsor this transaction via Gas Station."
        }
      },
      "required": ["wrapperAddress", "signWith", "assets", "chainCaip2"]
    },
    "EarnDepositRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_EARN_DEPOSIT"]
        },
        "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": "#/definitions/EarnDepositIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "EarnDepositResult": {
      "type": "object",
      "properties": {
        "depositRequestId": {
          "type": "string",
          "description": "Identifier to poll deposit status and tx hash via GetEarnDepositStatus."
        }
      },
      "required": ["depositRequestId"]
    },
    "EarnEnabledVault": {
      "type": "object",
      "properties": {
        "vaultAddress": {
          "type": "string",
          "description": "Address of the underlying yield vault."
        },
        "wrapperAddress": {
          "type": "string",
          "description": "Address of the deployed fee wrapper (the deposit target)."
        },
        "provider": {
          "$ref": "#/definitions/EarnProvider",
          "description": "Yield provider for the vault."
        },
        "caip19": {
          "type": "string",
          "description": "CAIP-19 asset ID of the vault's underlying asset (e.g. 'eip155:8453/erc20:0x833589...'); the chain is encoded in the identifier."
        },
        "apyPct": {
          "type": "string",
          "description": "Gross annual percentage yield, expressed as a decimal fraction (before fees)."
        },
        "totalDeposited": {
          "type": "string",
          "description": "Total deposited through this wrapper (wrapper TVL), in raw on-chain units of the underlying asset."
        },
        "display": {
          "$ref": "#/definitions/EarnValueDisplay",
          "description": "Normalized total-deposited values for display only (usd + crypto). Do not do arithmetic with these; use total_deposited instead."
        },
        "netApyPct": {
          "type": "string",
          "description": "Annual percentage yield net of fees, expressed as a decimal fraction."
        },
        "clientFeeBps": {
          "type": "string",
          "description": "Client fee taken on yield, in basis points."
        },
        "depositsDisabled": {
          "type": "boolean",
          "description": "When true, deposits to this wrapper are rejected; withdrawals are unaffected. Toggled via EarnSetWrapperState."
        },
        "name": {
          "type": "string",
          "description": "Human-readable vault name from the provider (e.g. 'Steakhouse Prime USDC' for Morpho; the reserve symbol for Aave)."
        },
        "curator": {
          "type": "string",
          "description": "Vault curator name(s), comma-separated when a vault has multiple. Empty for providers without curators (e.g. Aave)."
        },
        "claimableClientFee": {
          "type": "string",
          "x-nullable": true,
          "description": "The client's claimable fee (releasable now), in raw on-chain units of the underlying asset (the caip19 asset). Turnkey's fee is excluded. Only returned to the parent org; unset when a sub-org queries."
        },
        "claimableClientFeeDisplay": {
          "$ref": "#/definitions/EarnValueDisplay",
          "description": "Normalized claimable_client_fee for display only (usd + crypto). Do not do arithmetic with these; use claimable_client_fee. Unset when a sub-org queries."
        },
        "clientFeeWallet": {
          "type": "string",
          "x-nullable": true,
          "description": "The wallet address that receives the client's fee payouts on-chain. Unset when a sub-org queries."
        },
        "liquidity": {
          "type": "string",
          "description": "Assets currently withdrawable from the underlying vault without a reallocation, in raw on-chain units of the underlying asset. This is the vault's liquidity, not the wrapper's balance. Empty when the provider does not report it."
        },
        "liquidityDisplay": {
          "$ref": "#/definitions/EarnValueDisplay",
          "description": "Normalized liquidity values for display purposes only (usd + crypto). Do not do arithmetic with these; use liquidity instead."
        },
        "exposures": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/EarnVaultExposure"
          },
          "description": "The underlying markets the vault allocates into, ranked by supplied amount descending. Only populated when the request sets include_exposure, and only for providers that expose an allocation breakdown (Morpho)."
        },
        "forceDeallocatableLiquidity": {
          "type": "string",
          "description": "Additional assets withdrawable from the underlying vault by force-deallocating its non-liquidity adapters at zero penalty, in raw on-chain units of the underlying asset. Additive to liquidity. Empty when the provider does not report it."
        },
        "forceDeallocatableLiquidityDisplay": {
          "$ref": "#/definitions/EarnValueDisplay",
          "description": "Normalized force-deallocatable liquidity values for display purposes only (usd + crypto). Do not do arithmetic with these; use force_deallocatable_liquidity instead."
        }
      }
    },
    "EarnPosition": {
      "type": "object",
      "properties": {
        "vaultAddress": {
          "type": "string",
          "description": "Address of the underlying yield vault."
        },
        "wrapperAddress": {
          "type": "string",
          "description": "Address of the fee wrapper holding the position."
        },
        "provider": {
          "$ref": "#/definitions/EarnProvider",
          "description": "Yield provider for the vault."
        },
        "caip19": {
          "type": "string",
          "description": "CAIP-19 asset ID of the vault's underlying asset (e.g. 'eip155:8453/erc20:0x833589...'); the chain is encoded in the identifier."
        },
        "currentValue": {
          "type": "string",
          "description": "Current value of the position in the underlying asset, in raw on-chain units (already net of the wrapper fee)."
        },
        "totalDeposited": {
          "type": "string",
          "description": "Lifetime total deposited into this position, in raw on-chain units."
        },
        "totalWithdrawn": {
          "type": "string",
          "description": "Lifetime total withdrawn from this position, in raw on-chain units."
        },
        "display": {
          "$ref": "#/definitions/EarnPositionDisplay",
          "description": "USD + crypto renderings for display only. Do not do arithmetic with these."
        },
        "depositsDisabled": {
          "type": "boolean",
          "description": "When true, deposits to this wrapper are rejected; withdrawals are unaffected. Toggled via EarnSetWrapperState."
        }
      }
    },
    "EarnPositionDisplay": {
      "type": "object",
      "properties": {
        "currentValueUsd": {
          "type": "string",
          "description": "Current value in USD, for display only."
        },
        "totalDepositedUsd": {
          "type": "string",
          "description": "Total deposited in USD, for display only."
        },
        "totalWithdrawnUsd": {
          "type": "string",
          "description": "Total withdrawn in USD, for display only."
        },
        "currentValueCrypto": {
          "type": "string",
          "description": "Current value in the asset's own units, for display only."
        },
        "totalDepositedCrypto": {
          "type": "string",
          "description": "Total deposited in the asset's own units, for display only."
        },
        "totalWithdrawnCrypto": {
          "type": "string",
          "description": "Total withdrawn in the asset's own units, for display only."
        }
      }
    },
    "EarnProvider": {
      "type": "string",
      "enum": ["EARN_PROVIDER_MORPHO", "EARN_PROVIDER_AAVE"]
    },
    "EarnSetWrapperStateIntent": {
      "type": "object",
      "properties": {
        "wrapperAddress": {
          "type": "string",
          "description": "Address of the deployed Earn wrapper to update, from ListEarnVaults/ListEarnPositions. Must be one of the org's deployed wrappers."
        },
        "depositsDisabled": {
          "type": "boolean",
          "x-nullable": true,
          "description": "When true, deposits to this wrapper are rejected; withdrawals are unaffected. Set to false to re-enable deposits."
        }
      },
      "required": ["wrapperAddress", "depositsDisabled"]
    },
    "EarnSetWrapperStateRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_EARN_SET_WRAPPER_STATE"]
        },
        "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": "#/definitions/EarnSetWrapperStateIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "EarnSetWrapperStateResult": {
      "type": "object",
      "properties": {
        "wrapperAddress": {
          "type": "string",
          "description": "Address of the updated Earn wrapper."
        },
        "depositsDisabled": {
          "type": "boolean",
          "description": "The wrapper's deposit state after this activity."
        }
      },
      "required": ["wrapperAddress", "depositsDisabled"]
    },
    "EarnValueDisplay": {
      "type": "object",
      "properties": {
        "usd": {
          "type": "string",
          "description": "USD value, for display only."
        },
        "crypto": {
          "type": "string",
          "description": "Normalized amount in the asset's own units, for display only."
        }
      }
    },
    "EarnVault": {
      "type": "object",
      "properties": {
        "vaultAddress": {
          "type": "string",
          "description": "Address of the underlying yield vault."
        },
        "provider": {
          "$ref": "#/definitions/EarnProvider",
          "description": "Yield provider for the vault."
        },
        "caip19": {
          "type": "string",
          "description": "CAIP-19 asset ID of the vault's underlying asset (e.g. 'eip155:8453/erc20:0x833589...'); the chain is encoded in the identifier."
        },
        "tvl": {
          "type": "string",
          "description": "Total value locked in the vault, in raw on-chain units of the underlying asset. The catalog is sorted by the USD value of this."
        },
        "apyPct": {
          "type": "string",
          "description": "Current annual percentage yield, expressed as a decimal fraction (e.g., '0.0812' for 8.12%)."
        },
        "enabled": {
          "type": "boolean",
          "description": "Whether the organization has enabled this vault."
        },
        "display": {
          "$ref": "#/definitions/EarnValueDisplay",
          "description": "Normalized TVL values for display purposes only (usd + crypto). Do not do arithmetic with these; use tvl instead."
        },
        "name": {
          "type": "string",
          "description": "Human-readable vault name from the provider (e.g. 'Steakhouse Prime USDC' for Morpho; the reserve symbol for Aave)."
        },
        "curator": {
          "type": "string",
          "description": "Vault curator name(s), comma-separated when a vault has multiple. Empty for providers without curators (e.g. Aave)."
        },
        "liquidity": {
          "type": "string",
          "description": "Assets currently withdrawable from the vault without a reallocation, in raw on-chain units of the underlying asset. Empty when the provider does not report it."
        },
        "liquidityDisplay": {
          "$ref": "#/definitions/EarnValueDisplay",
          "description": "Normalized liquidity values for display purposes only (usd + crypto). Do not do arithmetic with these; use liquidity instead."
        },
        "forceDeallocatableLiquidity": {
          "type": "string",
          "description": "Additional assets withdrawable from the vault by force-deallocating its non-liquidity adapters at zero penalty, in raw on-chain units of the underlying asset. Additive to liquidity. Empty when the provider does not report it."
        },
        "forceDeallocatableLiquidityDisplay": {
          "$ref": "#/definitions/EarnValueDisplay",
          "description": "Normalized force-deallocatable liquidity values for display purposes only (usd + crypto). Do not do arithmetic with these; use force_deallocatable_liquidity instead."
        }
      }
    },
    "EarnVaultExposure": {
      "type": "object",
      "properties": {
        "marketId": {
          "type": "string",
          "description": "Provider-specific identifier for the market (the Morpho Blue market id)."
        },
        "collateralSymbol": {
          "type": "string",
          "description": "Symbol of the market's collateral asset (e.g. 'cbBTC'). Empty for an idle/uncollateralized market."
        },
        "collateralCaip19": {
          "type": "string",
          "description": "CAIP-19 asset ID of the market's collateral asset. Empty for an idle/uncollateralized market."
        },
        "lltvPct": {
          "type": "string",
          "description": "The market's liquidation loan-to-value, expressed as a decimal fraction (e.g. '0.86' for 86%)."
        },
        "supplied": {
          "type": "string",
          "description": "Assets the vault supplies to this market, in raw on-chain units of the underlying asset."
        },
        "display": {
          "$ref": "#/definitions/EarnValueDisplay",
          "description": "Normalized supplied values for display purposes only (usd + crypto). Do not do arithmetic with these; use supplied instead."
        },
        "sharePct": {
          "type": "string",
          "description": "This market's share of the vault's supplied assets, as a decimal fraction (e.g. '0.997' for 99.7%)."
        }
      }
    },
    "EarnWithdrawIntent": {
      "type": "object",
      "properties": {
        "wrapperAddress": {
          "type": "string",
          "description": "Address of the deployed Earn wrapper holding the position to withdraw from, from ListEarnPositions. Must be one of the org's deployed wrappers."
        },
        "signWith": {
          "type": "string",
          "description": "A Wallet account address or Private Key address to withdraw to and sign with. Must be an on-chain address; Private Key identifiers are not supported."
        },
        "chainCaip2": {
          "type": "string",
          "enum": [
            "eip155:1",
            "eip155:8453",
            "eip155:42161",
            "eip155:137",
            "eip155:56",
            "eip155:4217"
          ],
          "description": "CAIP-2 chain ID the vault lives on (e.g., 'eip155:8453' for Base)."
        },
        "sponsor": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether to sponsor this transaction via Gas Station."
        },
        "amountValue": {
          "type": "string",
          "description": "The amount of the underlying asset to withdraw, in raw on-chain units. Pass 'MAX' to withdraw the entire position."
        }
      },
      "required": ["wrapperAddress", "signWith", "chainCaip2", "amountValue"]
    },
    "EarnWithdrawRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_EARN_WITHDRAW"]
        },
        "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": "#/definitions/EarnWithdrawIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "EarnWithdrawResult": {
      "type": "object",
      "properties": {
        "withdrawRequestId": {
          "type": "string",
          "description": "Identifier to poll withdrawal status and tx hash via GetEarnWithdrawStatus."
        }
      },
      "required": ["withdrawRequestId"]
    },
    "Effect": {
      "type": "string",
      "enum": ["EFFECT_ALLOW", "EFFECT_DENY"]
    },
    "EmailAuthCustomizationParams": {
      "type": "object",
      "properties": {
        "appName": {
          "type": "string",
          "description": "The name of the application. This field is required and will be used in email notifications if an email template is not provided."
        },
        "logoUrl": {
          "type": "string",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "description": "JSON object containing key/value pairs to be used with custom templates."
        },
        "templateId": {
          "type": "string",
          "x-nullable": true,
          "description": "Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template."
        }
      },
      "required": ["appName"]
    },
    "EmailAuthIntent": {
      "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",
          "x-nullable": true,
          "description": "Optional human-readable name for an API Key. If none provided, default to Email Auth - \u003cTimestamp\u003e"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used."
        },
        "emailCustomization": {
          "$ref": "#/definitions/EmailCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing emails. If not provided, the default email will be used."
        },
        "invalidateExisting": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Invalidate all other previously generated Email Auth API keys"
        },
        "sendFromEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address from which to send the email"
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'"
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address to use as reply-to"
        }
      },
      "required": ["email", "targetPublicKey"]
    },
    "EmailAuthIntentV2": {
      "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",
          "x-nullable": true,
          "description": "Optional human-readable name for an API Key. If none provided, default to Email Auth - \u003cTimestamp\u003e"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used."
        },
        "emailCustomization": {
          "$ref": "#/definitions/EmailCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing emails. If not provided, the default email will be used."
        },
        "invalidateExisting": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Invalidate all other previously generated Email Auth API keys"
        },
        "sendFromEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address from which to send the email"
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'"
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address to use as reply-to"
        }
      },
      "required": ["email", "targetPublicKey"]
    },
    "EmailAuthIntentV3": {
      "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",
          "x-nullable": true,
          "description": "Optional human-readable name for an API Key. If none provided, default to Email Auth - \u003cTimestamp\u003e"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used."
        },
        "emailCustomization": {
          "$ref": "#/definitions/EmailAuthCustomizationParams",
          "description": "Parameters for customizing emails. If not provided, the default email will be used. Note that app_name is required."
        },
        "invalidateExisting": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Invalidate all other previously generated Email Auth API keys"
        },
        "sendFromEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address from which to send the email"
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'"
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address to use as reply-to"
        }
      },
      "required": ["email", "targetPublicKey", "emailCustomization"]
    },
    "EmailAuthRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_EMAIL_AUTH_V3"]
        },
        "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": "#/definitions/EmailAuthIntentV3"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "EmailAuthResult": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "Unique identifier for the authenticating User."
        },
        "apiKeyId": {
          "type": "string",
          "description": "Unique identifier for the created API key."
        }
      },
      "required": ["userId", "apiKeyId"]
    },
    "EmailCustomizationParams": {
      "type": "object",
      "properties": {
        "appName": {
          "type": "string",
          "x-nullable": true,
          "description": "The name of the application."
        },
        "logoUrl": {
          "type": "string",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "description": "JSON object containing key/value pairs to be used with custom templates."
        },
        "templateId": {
          "type": "string",
          "x-nullable": true,
          "description": "Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template."
        }
      }
    },
    "EmailCustomizationParamsV2": {
      "type": "object",
      "properties": {
        "logoUrl": {
          "type": "string",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "description": "JSON object containing key/value pairs to be used with custom templates."
        },
        "templateId": {
          "type": "string",
          "x-nullable": true,
          "description": "Unique identifier for a given Email Template. If not specified, the default is the most recent Email Template."
        }
      }
    },
    "EmailEvent": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for the email event"
        },
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for the organization associated with the email event"
        },
        "messageId": {
          "type": "string",
          "description": "Provider message identifier. Multiple events can share the same message ID"
        },
        "eventType": {
          "type": "string",
          "description": "Email event type, such as Send, Delivery, Bounce, or DeliveryDelay"
        },
        "fromAddress": {
          "type": "string",
          "description": "Sender email address"
        },
        "toAddress": {
          "type": "string",
          "description": "Recipient email address"
        },
        "senderTenant": {
          "type": "string",
          "description": "SES tenant that sent the email, when available"
        },
        "timestamp": {
          "type": "string",
          "description": "Event timestamp as millisecond epoch string"
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp as millisecond epoch string"
        },
        "details": {
          "$ref": "#/definitions/EmailEventDetails",
          "description": "Parsed email event details. Fields are populated based on event type and available provider metadata"
        }
      },
      "required": [
        "id",
        "organizationId",
        "messageId",
        "eventType",
        "fromAddress",
        "toAddress",
        "timestamp",
        "createdAt",
        "details"
      ]
    },
    "EmailEventDetails": {
      "type": "object",
      "properties": {
        "bounceType": {
          "type": "string",
          "description": "Bounce type for Bounce events"
        },
        "bounceSubType": {
          "type": "string",
          "description": "Bounce subtype for Bounce events"
        },
        "diagnosticCode": {
          "type": "string",
          "description": "Diagnostic text for Bounce or DeliveryDelay events"
        },
        "deliverySmtpResponse": {
          "type": "string",
          "description": "SMTP response for Delivery events"
        },
        "deliveryProcessingTimeMillis": {
          "type": "string",
          "format": "uint64",
          "description": "Processing time in milliseconds for Delivery events"
        },
        "deliveryDelayType": {
          "type": "string",
          "description": "Delay type for DeliveryDelay events"
        },
        "complaintFeedbackType": {
          "type": "string",
          "description": "Feedback type for Complaint events"
        }
      }
    },
    "EnableAuthProxyIntent": {
      "type": "object"
    },
    "EnableAuthProxyResult": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "A User ID with permission to initiate authentication."
        }
      },
      "required": ["userId"]
    },
    "EthCallParams": {
      "type": "object",
      "properties": {
        "to": {
          "type": "string",
          "description": "Recipient address as a hex string with 0x prefix."
        },
        "value": {
          "type": "string",
          "x-nullable": true,
          "description": "Amount of native asset to send in wei."
        },
        "data": {
          "type": "string",
          "x-nullable": true,
          "description": "Hex-encoded call data for contract interactions."
        }
      },
      "required": ["to"]
    },
    "EthFailureDetails": {
      "type": "object",
      "properties": {
        "revertChain": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RevertChainEntry"
          },
          "description": "Ethereum revert chain, ordered from outermost to innermost."
        }
      }
    },
    "EthSendRawTransactionIntent": {
      "type": "object",
      "properties": {
        "signedTransaction": {
          "type": "string",
          "description": "The raw, signed transaction to be sent."
        },
        "caip2": {
          "type": "string",
          "enum": [
            "eip155:1",
            "eip155:11155111",
            "eip155:8453",
            "eip155:84532",
            "eip155:137",
            "eip155:80002",
            "eip155:56",
            "eip155:97",
            "eip155:10",
            "eip155:11155420",
            "eip155:143",
            "eip155:10143",
            "eip155:42161",
            "eip155:4217",
            "eip155:42431",
            "eip155:421614",
            "eip155:4663",
            "eip155:46630"
          ],
          "description": "CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet)."
        }
      },
      "required": ["signedTransaction", "caip2"]
    },
    "EthSendRawTransactionResult": {
      "type": "object",
      "properties": {
        "transactionHash": {
          "type": "string",
          "description": "The transaction hash of the sent transaction"
        }
      },
      "required": ["transactionHash"]
    },
    "EthSendTransactionIntent": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "description": "A wallet or private key address to sign with. This does not support private key IDs."
        },
        "sponsor": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether to sponsor this transaction via Gas Station."
        },
        "caip2": {
          "type": "string",
          "enum": [
            "eip155:1",
            "eip155:11155111",
            "eip155:8453",
            "eip155:84532",
            "eip155:137",
            "eip155:80002",
            "eip155:56",
            "eip155:97",
            "eip155:10",
            "eip155:11155420",
            "eip155:143",
            "eip155:10143",
            "eip155:42161",
            "eip155:4217",
            "eip155:42431",
            "eip155:421614",
            "eip155:4663",
            "eip155:46630"
          ],
          "description": "CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet)."
        },
        "to": {
          "type": "string",
          "description": "Recipient address as a hex string with 0x prefix."
        },
        "value": {
          "type": "string",
          "x-nullable": true,
          "description": "Amount of native asset to send in wei."
        },
        "data": {
          "type": "string",
          "x-nullable": true,
          "description": "Hex-encoded call data for contract interactions."
        },
        "nonce": {
          "type": "string",
          "x-nullable": true,
          "description": "Transaction nonce, for EIP-1559 and Turnkey Gas Station authorizations."
        },
        "gasLimit": {
          "type": "string",
          "x-nullable": true,
          "description": "Maximum amount of gas to use for this transaction, for EIP-1559 transactions."
        },
        "maxFeePerGas": {
          "type": "string",
          "x-nullable": true,
          "description": "Maximum total fee per gas unit (base fee + priority fee) in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions."
        },
        "maxPriorityFeePerGas": {
          "type": "string",
          "x-nullable": true,
          "description": "Maximum priority fee (tip) per gas unit in wei. Required for non-sponsored (EIP-1559) transactions. Not used for sponsored transactions."
        },
        "deadline": {
          "type": "string",
          "x-nullable": true,
          "description": "Unix timestamp in seconds for EIP-712 execution deadline. Only used when sponsor=true."
        },
        "gasStationNonce": {
          "type": "string",
          "x-nullable": true,
          "description": "The gas station delegate contract nonce. Only used when sponsor=true. Include this if you want maximal security posture."
        }
      },
      "required": ["from", "caip2", "to"]
    },
    "EthSendTransactionIntentV2": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "description": "A wallet or private key address to sign with. This does not support private key IDs."
        },
        "caip2": {
          "type": "string",
          "enum": [
            "eip155:1",
            "eip155:11155111",
            "eip155:8453",
            "eip155:84532",
            "eip155:137",
            "eip155:80002",
            "eip155:56",
            "eip155:97",
            "eip155:10",
            "eip155:11155420",
            "eip155:143",
            "eip155:10143",
            "eip155:42161",
            "eip155:4217",
            "eip155:42431",
            "eip155:421614",
            "eip155:4663",
            "eip155:46630"
          ],
          "description": "CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet)."
        },
        "sponsor": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether to sponsor this transaction via Gas Station. If false or unset, the EOA pays gas. A single call uses EIP-1559; multiple calls use EIP-7702 batch execution via Gas Station."
        },
        "nonce": {
          "type": "string",
          "x-nullable": true,
          "description": "Outer transaction nonce. Omit to auto-fetch."
        },
        "gasLimit": {
          "type": "string",
          "x-nullable": true,
          "description": "Maximum amount of gas for the outer transaction. Omit to auto-estimate."
        },
        "maxFeePerGas": {
          "type": "string",
          "x-nullable": true,
          "description": "Maximum total fee per gas unit (base fee + priority fee) in wei. Omit to auto-estimate."
        },
        "maxPriorityFeePerGas": {
          "type": "string",
          "x-nullable": true,
          "description": "Maximum priority fee (tip) per gas unit in wei. Omit to auto-estimate."
        },
        "deadline": {
          "type": "string",
          "x-nullable": true,
          "description": "Unix timestamp in seconds for EIP-712 execution deadline. Only used when sponsor=true."
        },
        "gasStationNonce": {
          "type": "string",
          "x-nullable": true,
          "description": "The gas station delegate contract nonce used in the BatchExecution EIP-712 message. Valid for sponsored transactions and non-sponsored multi-call batches. Omit to auto-fetch. Use the nonces endpoint for replay protection."
        },
        "calls": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/EthCallParams"
          },
          "description": "Ordered list of calls to execute. Must contain between 1 and 50 entries. A single entry with sponsor=false uses EIP-1559; multiple entries use EIP-7702 batch execution via Gas Station."
        }
      },
      "required": ["from", "caip2", "calls"]
    },
    "EthSendTransactionRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_ETH_SEND_TRANSACTION_V2"]
        },
        "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": "#/definitions/EthSendTransactionIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "EthSendTransactionResult": {
      "type": "object",
      "properties": {
        "sendTransactionStatusId": {
          "type": "string",
          "description": "The send_transaction_status ID associated with the transaction submission"
        }
      },
      "required": ["sendTransactionStatusId"]
    },
    "EthSendTransactionResultV2": {
      "type": "object",
      "properties": {
        "sendTransactionStatusId": {
          "type": "string",
          "description": "The send_transaction_status ID associated with the transaction submission"
        }
      },
      "required": ["sendTransactionStatusId"]
    },
    "EthSendTransactionStatus": {
      "type": "object",
      "properties": {
        "txHash": {
          "type": "string",
          "x-nullable": true,
          "description": "The Ethereum transaction hash, if available."
        }
      }
    },
    "EthTransactionHistoryItem": {
      "type": "object",
      "properties": {
        "transactionHash": {
          "type": "string",
          "description": "EVM transaction hash."
        },
        "block": {
          "$ref": "#/definitions/TransactionHistoryBlock",
          "description": "Block metadata for the transaction."
        },
        "status": {
          "type": "string",
          "enum": ["CONFIRMED", "FINALIZED"],
          "description": "Transaction confirmation status."
        },
        "origin": {
          "type": "string",
          "description": "Origin of the transaction. Examples include TURNKEY."
        },
        "from": {
          "type": "string",
          "description": "EVM sender address for the transaction."
        },
        "to": {
          "type": "string",
          "x-nullable": true,
          "description": "EVM transaction destination address, such as the called contract or EVM tx.to. Omitted for contract-creation transactions with no destination. Recipients and payers of value transfers are reflected in transfers[].counterparty."
        },
        "fee": {
          "$ref": "#/definitions/TransactionHistoryFee",
          "description": "Transaction fee information."
        },
        "transfers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/TransactionHistoryTransfer"
          },
          "description": "Asset transfers associated with the transaction."
        },
        "turnkey": {
          "$ref": "#/definitions/TransactionHistoryTurnkey",
          "description": "Turnkey-specific metadata for transactions originated by Turnkey."
        }
      },
      "required": [
        "transactionHash",
        "block",
        "status",
        "origin",
        "from",
        "fee",
        "transfers"
      ]
    },
    "EthUndelegate7702Intent": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "description": "A wallet or private key address to undelegate. This does not support private key IDs."
        },
        "caip2": {
          "type": "string",
          "enum": [
            "eip155:1",
            "eip155:11155111",
            "eip155:8453",
            "eip155:84532",
            "eip155:137",
            "eip155:80002",
            "eip155:56",
            "eip155:97",
            "eip155:10",
            "eip155:11155420",
            "eip155:143",
            "eip155:10143",
            "eip155:42161",
            "eip155:421614",
            "eip155:4663",
            "eip155:46630"
          ],
          "description": "CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet)."
        },
        "nonce": {
          "type": "string",
          "x-nullable": true,
          "description": "Outer transaction nonce. Omit to auto-fetch."
        },
        "gasLimit": {
          "type": "string",
          "x-nullable": true,
          "description": "Maximum amount of gas for the undelegation transaction. Omit to use the fixed undelegation gas limit."
        },
        "maxFeePerGas": {
          "type": "string",
          "x-nullable": true,
          "description": "Maximum total fee per gas unit (base fee + priority fee) in wei. Omit to auto-estimate."
        },
        "maxPriorityFeePerGas": {
          "type": "string",
          "x-nullable": true,
          "description": "Maximum priority fee (tip) per gas unit in wei. Omit to auto-estimate."
        }
      },
      "required": ["from", "caip2"]
    },
    "EthUndelegate7702Request": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_ETH_UNDELEGATE_7702"]
        },
        "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": "#/definitions/EthUndelegate7702Intent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "EthUndelegate7702Result": {
      "type": "object",
      "properties": {
        "sendTransactionStatusId": {
          "type": "string",
          "description": "The send_transaction_status ID associated with the undelegation transaction submission"
        }
      },
      "required": ["sendTransactionStatusId"]
    },
    "ExecuteSwapIntent": {
      "type": "object",
      "properties": {
        "inputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the input asset. The chain is derived from this value."
        },
        "outputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the output asset. May be on a different chain than `input_token` for cross-chain swaps."
        },
        "inputAmount": {
          "type": "string",
          "description": "Base-unit amount of the input asset."
        },
        "walletAccount": {
          "type": "string",
          "description": "Wallet account address to sign and submit the swap transaction from. Cross-wallet swaps are not supported."
        },
        "sponsor": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether to sponsor the resulting swap transaction via Gas Station when supported by the chain."
        },
        "slippage": {
          "type": "string",
          "x-nullable": true,
          "description": "Maximum allowed slippage in basis points."
        },
        "provider": {
          "type": "string",
          "x-nullable": true,
          "description": "Swap provider to execute with, as returned by create_swap_quote. When omitted, execution uses the default provider."
        },
        "minOutputAmount": {
          "type": "string",
          "description": "Minimum acceptable base-unit amount of the output asset. Execution fails if the swap provider's quoted minimum output falls below this floor at execution time."
        }
      },
      "required": [
        "inputToken",
        "outputToken",
        "inputAmount",
        "walletAccount",
        "minOutputAmount"
      ]
    },
    "ExecuteSwapIntentV2": {
      "type": "object",
      "properties": {
        "quoteId": {
          "type": "string",
          "description": "Quote identifier returned by create_swap_quote. Execution is bound to this quote; the signer is derived from the quote and must not be resupplied."
        },
        "inputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the input asset."
        },
        "inputAmount": {
          "type": "string",
          "description": "Exact base-unit amount of the input asset committed by the quote."
        },
        "outputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the output asset."
        },
        "quotedOutputAmount": {
          "type": "string",
          "description": "Exact quoted base-unit output amount committed by the quote."
        },
        "minOutputAmount": {
          "type": "string",
          "description": "Exact minimum base-unit output committed by the quote."
        },
        "sponsor": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether the quoted transaction is sponsored."
        },
        "evmNonce": {
          "type": "string",
          "x-nullable": true,
          "description": "Exact EVM sender (EOA account) nonce. Valid only for a non-sponsored EVM swap. Honored for already-delegated (Type-2) batch swaps and single-call swaps; ignored for not-yet-delegated EIP-7702 (Type-4) batches where the outer nonce is derived from the authorization. Prefer gas_station_nonce for batch replay protection and use the nonces endpoint to fetch it. Omit to auto-fetch."
        },
        "recentBlockhash": {
          "type": "string",
          "x-nullable": true,
          "description": "Exact Solana recent blockhash. Valid only for a Solana swap, including sponsored swaps. Omit to auto-fetch."
        },
        "gasStationNonce": {
          "type": "string",
          "x-nullable": true,
          "description": "Exact gas station delegate contract nonce used in the BatchExecution EIP-712 message. Valid for sponsored EVM swaps and non-sponsored EVM swaps that execute as a multi-call batch (for example ERC-20 approve + swap). This is the replay-protection nonce for gas-station batches; use the nonces endpoint to fetch it. Omit to auto-fetch."
        }
      },
      "required": [
        "quoteId",
        "inputToken",
        "inputAmount",
        "outputToken",
        "quotedOutputAmount",
        "minOutputAmount",
        "sponsor"
      ]
    },
    "ExecuteSwapIntentV3": {
      "type": "object",
      "properties": {
        "quoteId": {
          "type": "string",
          "description": "Quote identifier returned by create_swap_quote. Execution is bound to this quote; the signer is derived from the quote and must not be resupplied."
        },
        "inputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the input asset."
        },
        "inputAmount": {
          "type": "string",
          "description": "Exact base-unit amount of the input asset committed by the quote."
        },
        "outputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the output asset."
        },
        "quotedOutputAmount": {
          "type": "string",
          "description": "Exact quoted base-unit output amount committed by the quote."
        },
        "minOutputAmount": {
          "type": "string",
          "description": "Exact minimum base-unit output committed by the quote."
        },
        "sponsor": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether the quoted transaction is sponsored."
        },
        "evmNonce": {
          "type": "string",
          "x-nullable": true,
          "description": "Exact EVM sender (EOA account) nonce. Valid only for a non-sponsored EVM swap. Honored for already-delegated (Type-2) batch swaps and single-call swaps; ignored for not-yet-delegated EIP-7702 (Type-4) batches where the outer nonce is derived from the authorization. Prefer gas_station_nonce for batch replay protection and use the nonces endpoint to fetch it. Omit to auto-fetch."
        },
        "recentBlockhash": {
          "type": "string",
          "x-nullable": true,
          "description": "Exact Solana recent blockhash. Valid only for a Solana swap, including sponsored swaps. Omit to auto-fetch."
        },
        "gasStationNonce": {
          "type": "string",
          "x-nullable": true,
          "description": "Exact gas station delegate contract nonce used in the BatchExecution EIP-712 message. Valid for sponsored EVM swaps and non-sponsored EVM swaps that execute as a multi-call batch (for example ERC-20 approve + swap). This is the replay-protection nonce for gas-station batches; use the nonces endpoint to fetch it. Omit to auto-fetch."
        },
        "destinationAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Raw public address that receives the output asset. Required for cross-protocol swaps. The address must match the output token protocol. Wallet account IDs, private key IDs, and CAIP account or asset identifiers are not supported."
        }
      },
      "required": [
        "quoteId",
        "inputToken",
        "inputAmount",
        "outputToken",
        "quotedOutputAmount",
        "minOutputAmount",
        "sponsor"
      ]
    },
    "ExecuteSwapRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_EXECUTE_SWAP_V2"]
        },
        "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": "#/definitions/ExecuteSwapIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "ExecuteSwapResult": {
      "type": "object",
      "properties": {
        "swapRequestId": {
          "type": "string",
          "description": "Identifier to poll swap status via GetSwapStatus."
        },
        "provider": {
          "type": "string",
          "x-nullable": true,
          "description": "Swap provider used to build the transaction."
        },
        "quoteId": {
          "type": "string",
          "x-nullable": true,
          "description": "Quote identifier used for execution, if any."
        }
      },
      "required": ["swapRequestId"]
    },
    "ExportPrivateKeyIntent": {
      "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."
        }
      },
      "required": ["privateKeyId", "targetPublicKey"]
    },
    "ExportPrivateKeyRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_EXPORT_PRIVATE_KEY"]
        },
        "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": "#/definitions/ExportPrivateKeyIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "ExportPrivateKeyResult": {
      "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."
        }
      },
      "required": ["privateKeyId", "exportBundle"]
    },
    "ExportSecretParams": {
      "type": "object",
      "properties": {
        "secretId": {
          "type": "string",
          "description": "Unique identifier for the secret to export."
        },
        "targetPublicKey": {
          "type": "string",
          "description": "Client-side public key generated by the user, to which the exported secret will be encrypted."
        },
        "encryptionSuite": {
          "$ref": "#/definitions/TransportEncryptionSuite",
          "description": "Transport encryption suite used for the exported secret."
        }
      },
      "required": ["secretId", "targetPublicKey", "encryptionSuite"]
    },
    "ExportSecretsIntent": {
      "type": "object",
      "properties": {
        "secrets": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ExportSecretParams"
          },
          "description": "A list of secrets to export."
        }
      },
      "required": ["secrets"]
    },
    "ExportSecretsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_EXPORT_SECRETS"]
        },
        "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": "#/definitions/ExportSecretsIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "ExportSecretsResult": {
      "type": "object",
      "properties": {
        "secretPayloads": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Encryption suite specific payload containing each secret ciphertext, in the order the params were specified. For enclave encrypt v1 each entry is a JSON-encoded ServerSendMsg."
        }
      },
      "required": ["secretPayloads"]
    },
    "ExportWalletAccountIntent": {
      "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."
        }
      },
      "required": ["address", "targetPublicKey"]
    },
    "ExportWalletAccountRequest": {
      "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": "#/definitions/ExportWalletAccountIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "ExportWalletAccountResult": {
      "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."
        }
      },
      "required": ["address", "exportBundle"]
    },
    "ExportWalletIntent": {
      "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": "#/definitions/MnemonicLanguage",
          "x-nullable": true,
          "description": "The language of the mnemonic to export. Defaults to English."
        }
      },
      "required": ["walletId", "targetPublicKey"]
    },
    "ExportWalletRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_EXPORT_WALLET"]
        },
        "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": "#/definitions/ExportWalletIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "ExportWalletResult": {
      "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."
        }
      },
      "required": ["walletId", "exportBundle"]
    },
    "Feature": {
      "type": "object",
      "properties": {
        "name": {
          "$ref": "#/definitions/FeatureName"
        },
        "value": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "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",
        "FEATURE_NAME_AUTH_PROXY",
        "FEATURE_NAME_SOLANA_RENT_PREFUND_ENABLED",
        "FEATURE_NAME_SWAP_CONFIG",
        "FEATURE_NAME_EARN_CONFIG"
      ]
    },
    "FiatOnRampBlockchainNetwork": {
      "type": "string",
      "enum": [
        "FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BITCOIN",
        "FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_ETHEREUM",
        "FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_SOLANA",
        "FIAT_ON_RAMP_BLOCKCHAIN_NETWORK_BASE"
      ]
    },
    "FiatOnRampCredential": {
      "type": "object",
      "properties": {
        "fiatOnrampCredentialId": {
          "type": "string",
          "description": "Unique identifier for a given Fiat On-Ramp Credential."
        },
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for an Organization."
        },
        "onrampProvider": {
          "$ref": "#/definitions/FiatOnRampProvider",
          "description": "The fiat on-ramp provider."
        },
        "projectId": {
          "type": "string",
          "x-nullable": true,
          "description": "Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier."
        },
        "publishableApiKey": {
          "type": "string",
          "description": "Publishable API key for the on-ramp provider."
        },
        "encryptedSecretApiKey": {
          "type": "string",
          "description": "Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key."
        },
        "encryptedPrivateApiKey": {
          "type": "string",
          "x-nullable": true,
          "description": "Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key."
        },
        "sandboxMode": {
          "type": "boolean",
          "description": "If the on-ramp credential is a sandbox credential."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": [
        "fiatOnrampCredentialId",
        "organizationId",
        "onrampProvider",
        "publishableApiKey",
        "encryptedSecretApiKey",
        "createdAt",
        "updatedAt"
      ]
    },
    "FiatOnRampCryptoCurrency": {
      "type": "string",
      "enum": [
        "FIAT_ON_RAMP_CRYPTO_CURRENCY_BTC",
        "FIAT_ON_RAMP_CRYPTO_CURRENCY_ETH",
        "FIAT_ON_RAMP_CRYPTO_CURRENCY_SOL",
        "FIAT_ON_RAMP_CRYPTO_CURRENCY_USDC"
      ]
    },
    "FiatOnRampCurrency": {
      "type": "string",
      "enum": [
        "FIAT_ON_RAMP_CURRENCY_AUD",
        "FIAT_ON_RAMP_CURRENCY_BGN",
        "FIAT_ON_RAMP_CURRENCY_BRL",
        "FIAT_ON_RAMP_CURRENCY_CAD",
        "FIAT_ON_RAMP_CURRENCY_CHF",
        "FIAT_ON_RAMP_CURRENCY_COP",
        "FIAT_ON_RAMP_CURRENCY_CZK",
        "FIAT_ON_RAMP_CURRENCY_DKK",
        "FIAT_ON_RAMP_CURRENCY_DOP",
        "FIAT_ON_RAMP_CURRENCY_EGP",
        "FIAT_ON_RAMP_CURRENCY_EUR",
        "FIAT_ON_RAMP_CURRENCY_GBP",
        "FIAT_ON_RAMP_CURRENCY_HKD",
        "FIAT_ON_RAMP_CURRENCY_IDR",
        "FIAT_ON_RAMP_CURRENCY_ILS",
        "FIAT_ON_RAMP_CURRENCY_JOD",
        "FIAT_ON_RAMP_CURRENCY_KES",
        "FIAT_ON_RAMP_CURRENCY_KWD",
        "FIAT_ON_RAMP_CURRENCY_LKR",
        "FIAT_ON_RAMP_CURRENCY_MXN",
        "FIAT_ON_RAMP_CURRENCY_NGN",
        "FIAT_ON_RAMP_CURRENCY_NOK",
        "FIAT_ON_RAMP_CURRENCY_NZD",
        "FIAT_ON_RAMP_CURRENCY_OMR",
        "FIAT_ON_RAMP_CURRENCY_PEN",
        "FIAT_ON_RAMP_CURRENCY_PLN",
        "FIAT_ON_RAMP_CURRENCY_RON",
        "FIAT_ON_RAMP_CURRENCY_SEK",
        "FIAT_ON_RAMP_CURRENCY_THB",
        "FIAT_ON_RAMP_CURRENCY_TRY",
        "FIAT_ON_RAMP_CURRENCY_TWD",
        "FIAT_ON_RAMP_CURRENCY_USD",
        "FIAT_ON_RAMP_CURRENCY_VND",
        "FIAT_ON_RAMP_CURRENCY_ZAR"
      ]
    },
    "FiatOnRampPaymentMethod": {
      "type": "string",
      "enum": [
        "FIAT_ON_RAMP_PAYMENT_METHOD_CREDIT_DEBIT_CARD",
        "FIAT_ON_RAMP_PAYMENT_METHOD_APPLE_PAY",
        "FIAT_ON_RAMP_PAYMENT_METHOD_GBP_BANK_TRANSFER",
        "FIAT_ON_RAMP_PAYMENT_METHOD_GBP_OPEN_BANKING_PAYMENT",
        "FIAT_ON_RAMP_PAYMENT_METHOD_GOOGLE_PAY",
        "FIAT_ON_RAMP_PAYMENT_METHOD_SEPA_BANK_TRANSFER",
        "FIAT_ON_RAMP_PAYMENT_METHOD_PIX_INSTANT_PAYMENT",
        "FIAT_ON_RAMP_PAYMENT_METHOD_PAYPAL",
        "FIAT_ON_RAMP_PAYMENT_METHOD_VENMO",
        "FIAT_ON_RAMP_PAYMENT_METHOD_MOONPAY_BALANCE",
        "FIAT_ON_RAMP_PAYMENT_METHOD_CRYPTO_ACCOUNT",
        "FIAT_ON_RAMP_PAYMENT_METHOD_FIAT_WALLET",
        "FIAT_ON_RAMP_PAYMENT_METHOD_ACH_BANK_ACCOUNT"
      ]
    },
    "FiatOnRampProvider": {
      "type": "string",
      "enum": [
        "FIAT_ON_RAMP_PROVIDER_COINBASE",
        "FIAT_ON_RAMP_PROVIDER_MOONPAY"
      ]
    },
    "GetActivePoliciesRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        }
      },
      "required": ["organizationId"]
    },
    "GetActivePoliciesResponse": {
      "type": "object",
      "properties": {
        "statuses": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ActivePolicyStatus"
          },
          "description": "The active/inactive status of every policy in the organization."
        },
        "evaluatedAtMs": {
          "type": "string",
          "format": "uint64",
          "description": "The enclave's trusted timestamp (Unix epoch milliseconds) used to evaluate every policy."
        }
      },
      "required": ["statuses", "evaluatedAtMs"]
    },
    "GetActivitiesRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "filterByStatus": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ActivityStatus"
          },
          "description": "Array of activity statuses filtering which activities will be listed in the response."
        },
        "paginationOptions": {
          "$ref": "#/definitions/Pagination",
          "description": "Parameters used for cursor-based pagination."
        },
        "filterByType": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ActivityType"
          },
          "description": "Array of activity types filtering which activities will be listed in the response."
        }
      },
      "required": ["organizationId"]
    },
    "GetActivitiesResponse": {
      "type": "object",
      "properties": {
        "activities": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Activity"
          },
          "description": "A list of activities."
        }
      },
      "required": ["activities"]
    },
    "GetActivityRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "activityId": {
          "type": "string",
          "description": "Unique identifier for a given activity object."
        }
      },
      "required": ["organizationId", "activityId"]
    },
    "GetApiKeyRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "apiKeyId": {
          "type": "string",
          "description": "Unique identifier for a given API key."
        }
      },
      "required": ["organizationId", "apiKeyId"]
    },
    "GetApiKeyResponse": {
      "type": "object",
      "properties": {
        "apiKey": {
          "$ref": "#/definitions/ApiKey",
          "description": "An API key."
        }
      },
      "required": ["apiKey"]
    },
    "GetApiKeysRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "userId": {
          "type": "string",
          "x-nullable": true,
          "description": "Unique identifier for a given user."
        }
      },
      "required": ["organizationId"]
    },
    "GetApiKeysResponse": {
      "type": "object",
      "properties": {
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKey"
          },
          "description": "A list of API keys."
        }
      },
      "required": ["apiKeys"]
    },
    "GetAppProofsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "activityId": {
          "type": "string",
          "description": "Unique identifier for a given activity."
        }
      },
      "required": ["organizationId", "activityId"]
    },
    "GetAppProofsResponse": {
      "type": "object",
      "properties": {
        "appProofs": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AppProof"
          }
        }
      },
      "required": ["appProofs"]
    },
    "GetAppStatusRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "appId": {
          "type": "string",
          "description": "Unique identifier for a given TVC App."
        }
      },
      "required": ["organizationId", "appId"]
    },
    "GetAppStatusResponse": {
      "type": "object",
      "properties": {
        "appStatus": {
          "$ref": "#/definitions/AppStatus",
          "description": "Live runtime status for the TVC App"
        }
      },
      "required": ["appStatus"]
    },
    "GetAuthenticatorRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "authenticatorId": {
          "type": "string",
          "description": "Unique identifier for a given authenticator."
        }
      },
      "required": ["organizationId", "authenticatorId"]
    },
    "GetAuthenticatorResponse": {
      "type": "object",
      "properties": {
        "authenticator": {
          "$ref": "#/definitions/Authenticator",
          "description": "An authenticator."
        }
      },
      "required": ["authenticator"]
    },
    "GetAuthenticatorsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given user."
        }
      },
      "required": ["organizationId", "userId"]
    },
    "GetAuthenticatorsResponse": {
      "type": "object",
      "properties": {
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Authenticator"
          },
          "description": "A list of authenticators."
        }
      },
      "required": ["authenticators"]
    },
    "GetBootProofRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "ephemeralKey": {
          "type": "string",
          "description": "Hex encoded ephemeral public key."
        }
      },
      "required": ["organizationId", "ephemeralKey"]
    },
    "GetClaimEarnFeesStatusRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "claimRequestId": {
          "type": "string",
          "description": "The claim_request_id returned by ClaimEarnFees."
        }
      },
      "required": ["organizationId", "claimRequestId"]
    },
    "GetClaimEarnFeesStatusResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": ["PENDING", "COMPLETED", "FAILED"],
          "description": "Status of the fee claim."
        },
        "claimTxHash": {
          "type": "string",
          "x-nullable": true,
          "description": "Transaction hash of the fee claim, once available."
        },
        "error": {
          "type": "string",
          "x-nullable": true,
          "description": "Reason the fee claim transaction failed, when status is FAILED."
        }
      },
      "required": ["status"]
    },
    "GetEarnDeployStatusRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "deployRequestId": {
          "type": "string",
          "description": "The deploy_request_id returned by EarnDeployWrapper."
        }
      },
      "required": ["organizationId", "deployRequestId"]
    },
    "GetEarnDeployStatusResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": ["PENDING", "COMPLETED", "FAILED"],
          "description": "Status of the wrapper deployment."
        },
        "deployTxHash": {
          "type": "string",
          "x-nullable": true,
          "description": "Transaction hash of the deployment, once available."
        },
        "error": {
          "type": "string",
          "x-nullable": true,
          "description": "Reason the deployment transaction failed, when status is FAILED."
        }
      },
      "required": ["status"]
    },
    "GetEarnDepositStatusRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "depositRequestId": {
          "type": "string",
          "description": "The deposit_request_id returned by EarnDeposit."
        }
      },
      "required": ["organizationId", "depositRequestId"]
    },
    "GetEarnDepositStatusResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": ["PENDING", "COMPLETED", "FAILED"],
          "description": "Status of the deposit."
        },
        "depositTxHash": {
          "type": "string",
          "x-nullable": true,
          "description": "Transaction hash of the deposit, once available."
        },
        "error": {
          "type": "string",
          "x-nullable": true,
          "description": "Reason the deposit transaction failed, when status is FAILED."
        }
      },
      "required": ["status"]
    },
    "GetEarnWithdrawStatusRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "withdrawRequestId": {
          "type": "string",
          "description": "The withdraw_request_id returned by EarnWithdraw."
        }
      },
      "required": ["organizationId", "withdrawRequestId"]
    },
    "GetEarnWithdrawStatusResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": ["PENDING", "COMPLETED", "FAILED"],
          "description": "Status of the withdrawal."
        },
        "withdrawTxHash": {
          "type": "string",
          "x-nullable": true,
          "description": "Transaction hash of the withdrawal, once available."
        },
        "error": {
          "type": "string",
          "x-nullable": true,
          "description": "Reason the withdrawal transaction failed, when status is FAILED."
        }
      },
      "required": ["status"]
    },
    "GetGasUsageRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        }
      },
      "required": ["organizationId"]
    },
    "GetGasUsageResponse": {
      "type": "object",
      "properties": {
        "windowDurationMinutes": {
          "type": "integer",
          "format": "int32",
          "description": "The window duration (in minutes) for the organization or sub-organization."
        },
        "windowLimitUsd": {
          "type": "string",
          "description": "The window limit (in USD) for the organization or sub-organization."
        },
        "usageUsd": {
          "type": "string",
          "description": "The total gas usage (in USD) of all sponsored transactions processed over the last `window_duration_minutes`"
        }
      },
      "required": ["windowDurationMinutes", "windowLimitUsd", "usageUsd"]
    },
    "GetIpAllowlistRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "publicKey": {
          "type": "string",
          "x-nullable": true,
          "description": "If provided, return only the allowlist for this specific API key."
        }
      },
      "required": ["organizationId"]
    },
    "GetIpAllowlistResponse": {
      "type": "object",
      "properties": {
        "allowlist": {
          "$ref": "#/definitions/IpAllowlist"
        }
      },
      "required": ["allowlist"]
    },
    "GetLatestBootProofRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "appName": {
          "type": "string",
          "description": "Unique identifier (UUID) of the enclave app."
        }
      },
      "required": ["organizationId", "appName"]
    },
    "GetMfaPoliciesRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given user."
        }
      },
      "required": ["organizationId", "userId"]
    },
    "GetMfaPoliciesResponse": {
      "type": "object",
      "properties": {
        "mfaPolicies": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/MfaPolicy"
          },
          "description": "A list of multi-factor authentication policies for a user."
        }
      },
      "required": ["mfaPolicies"]
    },
    "GetMfaPolicyRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given user."
        },
        "mfaPolicyId": {
          "type": "string",
          "description": "Unique identifier for a given MFA policy."
        }
      },
      "required": ["organizationId", "userId", "mfaPolicyId"]
    },
    "GetMfaPolicyResponse": {
      "type": "object",
      "properties": {
        "mfaPolicy": {
          "$ref": "#/definitions/MfaPolicy",
          "description": "Multi-factor authentication policy for a user."
        }
      },
      "required": ["mfaPolicy"]
    },
    "GetMfaStatusRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "activityId": {
          "type": "string",
          "description": "The unique identifier of the activity to get MFA status for."
        },
        "userId": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional user ID to filter MFA status for a specific user."
        }
      },
      "required": ["organizationId", "activityId"]
    },
    "GetMfaStatusResponse": {
      "type": "object",
      "properties": {
        "mfaStatuses": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/MfaStatus"
          },
          "description": "A list of MFA statuses for the activity's votes."
        }
      },
      "required": ["mfaStatuses"]
    },
    "GetNoncesRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "address": {
          "type": "string",
          "description": "The Ethereum address to query nonces for."
        },
        "caip2": {
          "type": "string",
          "enum": [
            "eip155:1",
            "eip155:11155111",
            "eip155:8453",
            "eip155:84532",
            "eip155:137",
            "eip155:80002",
            "eip155:56",
            "eip155:97",
            "eip155:10",
            "eip155:11155420",
            "eip155:143",
            "eip155:10143",
            "eip155:42161",
            "eip155:4217",
            "eip155:42431",
            "eip155:421614",
            "eip155:4663",
            "eip155:46630"
          ],
          "description": "CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet)."
        },
        "nonce": {
          "type": "boolean",
          "description": "Whether to fetch the standard on-chain nonce."
        },
        "gasStationNonce": {
          "type": "boolean",
          "description": "Whether to fetch the gas station nonce used for sponsored transactions."
        }
      },
      "required": ["organizationId", "address", "caip2"]
    },
    "GetNoncesResponse": {
      "type": "object",
      "properties": {
        "nonce": {
          "type": "string",
          "format": "uint64",
          "x-nullable": true,
          "description": "The standard on-chain nonce for the address, if requested."
        },
        "gasStationNonce": {
          "type": "string",
          "format": "uint64",
          "x-nullable": true,
          "description": "The gas station nonce for sponsored transactions, if requested."
        }
      }
    },
    "GetOauth2CredentialRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "oauth2CredentialId": {
          "type": "string",
          "description": "Unique identifier for a given OAuth 2.0 Credential."
        }
      },
      "required": ["organizationId", "oauth2CredentialId"]
    },
    "GetOauth2CredentialResponse": {
      "type": "object",
      "properties": {
        "oauth2Credential": {
          "$ref": "#/definitions/Oauth2Credential"
        }
      },
      "required": ["oauth2Credential"]
    },
    "GetOauthProvidersRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "userId": {
          "type": "string",
          "x-nullable": true,
          "description": "Unique identifier for a given user."
        }
      },
      "required": ["organizationId"]
    },
    "GetOauthProvidersResponse": {
      "type": "object",
      "properties": {
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProvider"
          },
          "description": "A list of Oauth providers."
        }
      },
      "required": ["oauthProviders"]
    },
    "GetOnRampTransactionStatusRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "transactionId": {
          "type": "string",
          "description": "The unique identifier for the fiat on ramp transaction."
        },
        "refresh": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Optional flag to specify if the transaction status should be refreshed from the fiat on ramp provider. Default = false."
        }
      },
      "required": ["organizationId", "transactionId"]
    },
    "GetOnRampTransactionStatusResponse": {
      "type": "object",
      "properties": {
        "transactionStatus": {
          "type": "string",
          "description": "The status of the fiat on ramp transaction."
        }
      },
      "required": ["transactionStatus"]
    },
    "GetOrganizationConfigsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        }
      },
      "required": ["organizationId"]
    },
    "GetOrganizationConfigsResponse": {
      "type": "object",
      "properties": {
        "configs": {
          "$ref": "#/definitions/Config",
          "description": "Organization configs including quorum settings and organization features."
        }
      },
      "required": ["configs"]
    },
    "GetPoliciesRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        }
      },
      "required": ["organizationId"]
    },
    "GetPoliciesResponse": {
      "type": "object",
      "properties": {
        "policies": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Policy"
          },
          "description": "A list of policies."
        }
      },
      "required": ["policies"]
    },
    "GetPolicyEvaluationsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "activityId": {
          "type": "string",
          "description": "Unique identifier for a given activity."
        }
      },
      "required": ["organizationId", "activityId"]
    },
    "GetPolicyEvaluationsResponse": {
      "type": "object",
      "properties": {
        "policyEvaluations": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/activity.v1.PolicyEvaluation"
          }
        }
      },
      "required": ["policyEvaluations"]
    },
    "GetPolicyRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "policyId": {
          "type": "string",
          "description": "Unique identifier for a given policy."
        }
      },
      "required": ["organizationId", "policyId"]
    },
    "GetPolicyResponse": {
      "type": "object",
      "properties": {
        "policy": {
          "$ref": "#/definitions/Policy",
          "description": "Object that codifies rules defining the actions that are permissible within an organization."
        }
      },
      "required": ["policy"]
    },
    "GetPrivateKeyRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "privateKeyId": {
          "type": "string",
          "description": "Unique identifier for a given private key."
        }
      },
      "required": ["organizationId", "privateKeyId"]
    },
    "GetPrivateKeyResponse": {
      "type": "object",
      "properties": {
        "privateKey": {
          "$ref": "#/definitions/PrivateKey",
          "description": "Cryptographic public/private key pair that can be used for cryptocurrency needs or more generalized encryption."
        }
      },
      "required": ["privateKey"]
    },
    "GetPrivateKeysRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        }
      },
      "required": ["organizationId"]
    },
    "GetPrivateKeysResponse": {
      "type": "object",
      "properties": {
        "privateKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/PrivateKey"
          },
          "description": "A list of private keys."
        }
      },
      "required": ["privateKeys"]
    },
    "GetSendTransactionStatusRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "sendTransactionStatusId": {
          "type": "string",
          "description": "The unique identifier of a send transaction request."
        }
      },
      "required": ["organizationId", "sendTransactionStatusId"]
    },
    "GetSendTransactionStatusResponse": {
      "type": "object",
      "properties": {
        "txStatus": {
          "type": "string",
          "description": "The current status of the send transaction."
        },
        "eth": {
          "$ref": "#/definitions/EthSendTransactionStatus",
          "description": "Ethereum-specific transaction status."
        },
        "solana": {
          "$ref": "#/definitions/SolanaSendTransactionStatus",
          "description": "Solana-specific transaction status."
        },
        "txError": {
          "type": "string",
          "x-nullable": true,
          "description": "The error encountered when broadcasting or confirming the transaction, if any."
        },
        "error": {
          "$ref": "#/definitions/TxError",
          "x-nullable": true,
          "description": "Structured error information including revert details, if available."
        }
      },
      "required": ["txStatus"]
    },
    "GetSessionProfileRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "sessionProfileId": {
          "type": "string",
          "description": "Unique identifier for a session profile."
        }
      },
      "required": ["organizationId", "sessionProfileId"]
    },
    "GetSessionProfileResponse": {
      "type": "object",
      "properties": {
        "sessionProfile": {
          "$ref": "#/definitions/SessionProfile",
          "description": "Session profile for a user, including details about the user's authenticators, Oauth providers, API keys, and MFA policies."
        }
      },
      "required": ["sessionProfile"]
    },
    "GetSessionProfilesRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        }
      },
      "required": ["organizationId"]
    },
    "GetSessionProfilesResponse": {
      "type": "object",
      "properties": {
        "sessionProfiles": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SessionProfile"
          },
          "description": "A list of session profiles for users in the organization."
        }
      },
      "required": ["sessionProfiles"]
    },
    "GetSmartContractInterfaceRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "smartContractInterfaceId": {
          "type": "string",
          "description": "Unique identifier for a given smart contract interface."
        }
      },
      "required": ["organizationId", "smartContractInterfaceId"]
    },
    "GetSmartContractInterfaceResponse": {
      "type": "object",
      "properties": {
        "smartContractInterface": {
          "$ref": "#/definitions/data.v1.SmartContractInterface",
          "description": "Object to be used in conjunction with policies to guard transaction signing."
        }
      },
      "required": ["smartContractInterface"]
    },
    "GetSmartContractInterfacesRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        }
      },
      "required": ["organizationId"]
    },
    "GetSmartContractInterfacesResponse": {
      "type": "object",
      "properties": {
        "smartContractInterfaces": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/data.v1.SmartContractInterface"
          },
          "description": "A list of smart contract interfaces."
        }
      },
      "required": ["smartContractInterfaces"]
    },
    "GetSubOrgIdsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for the parent organization. This is used to find sub-organizations within it."
        },
        "filterType": {
          "type": "string",
          "description": "Specifies the type of filter to apply, i.e 'CREDENTIAL_ID', 'NAME', 'USERNAME', 'EMAIL', 'PHONE_NUMBER', 'OIDC_TOKEN', 'WALLET_ACCOUNT_ADDRESS' or 'PUBLIC_KEY'"
        },
        "filterValue": {
          "type": "string",
          "description": "The value of the filter to apply for the specified type. For example, a specific email or name string."
        },
        "paginationOptions": {
          "$ref": "#/definitions/Pagination",
          "description": "Parameters used for cursor-based pagination."
        }
      },
      "required": ["organizationId"]
    },
    "GetSubOrgIdsResponse": {
      "type": "object",
      "properties": {
        "organizationIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of unique identifiers for the matching sub-organizations."
        }
      },
      "required": ["organizationIds"]
    },
    "GetSwapStatusRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "swapRequestId": {
          "type": "string",
          "description": "The swap_request_id returned by ExecuteSwap."
        }
      },
      "required": ["organizationId", "swapRequestId"]
    },
    "GetSwapStatusResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "description": "Normalized swap status. One of PENDING, COMPLETED, FAILED."
        },
        "swapKind": {
          "type": "string",
          "description": "SAME_CHAIN or CROSS_CHAIN."
        },
        "provider": {
          "type": "string",
          "description": "Swap provider that executed the swap."
        },
        "inputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the input asset."
        },
        "outputToken": {
          "type": "string",
          "description": "CAIP-19 asset ID for the output asset."
        },
        "inputAmount": {
          "type": "string",
          "description": "Base-unit amount of the input asset."
        },
        "originTxHash": {
          "type": "string",
          "x-nullable": true,
          "description": "Final included origin-chain transaction hash, when known."
        },
        "destinationTxHashes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Provider-reported destination-chain transaction hashes; cross-chain COMPLETED only."
        },
        "outputAmount": {
          "type": "string",
          "x-nullable": true,
          "description": "Actual base-unit output amount on COMPLETED, when known. Unset on FAILED."
        },
        "refund": {
          "$ref": "#/definitions/SwapRefund",
          "x-nullable": true,
          "description": "Funds returned by the provider after a successful origin transfer and failed cross-chain fill. Omitted for origin transaction failures and same-chain swaps."
        },
        "updatedAt": {
          "type": "string",
          "description": "Timestamp of the last swap status change, as millisecond epoch string."
        },
        "error": {
          "$ref": "#/definitions/SwapError",
          "x-nullable": true,
          "description": "Normalized failure details, present whenever status is FAILED."
        },
        "destinationAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Address that receives the output asset."
        }
      },
      "required": [
        "status",
        "swapKind",
        "provider",
        "inputToken",
        "outputToken",
        "inputAmount",
        "updatedAt"
      ]
    },
    "GetTvcAppDeploymentsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "appId": {
          "type": "string",
          "description": "Unique identifier for a given TVC App."
        }
      },
      "required": ["organizationId", "appId"]
    },
    "GetTvcAppDeploymentsResponse": {
      "type": "object",
      "properties": {
        "tvcDeployments": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/TvcDeployment"
          },
          "description": "List of deployments for this TVC App"
        }
      },
      "required": ["tvcDeployments"]
    },
    "GetTvcAppRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "tvcAppId": {
          "type": "string",
          "description": "Unique identifier for a given TVC App."
        }
      },
      "required": ["organizationId", "tvcAppId"]
    },
    "GetTvcAppResponse": {
      "type": "object",
      "properties": {
        "tvcApp": {
          "$ref": "#/definitions/TvcApp",
          "description": "Details about a single TVC App"
        }
      },
      "required": ["tvcApp"]
    },
    "GetTvcAppsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        }
      },
      "required": ["organizationId"]
    },
    "GetTvcAppsResponse": {
      "type": "object",
      "properties": {
        "tvcApps": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/TvcApp"
          },
          "description": "A list of TVC Apps."
        }
      },
      "required": ["tvcApps"]
    },
    "GetTvcDeploymentDebugLogsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "deploymentId": {
          "type": "string",
          "description": "Unique identifier for a given TVC Deployment. The deployment must be running in debug mode."
        },
        "tailLines": {
          "type": "integer",
          "format": "int32",
          "description": "Limit returned history to the last N lines per replica. If unset or zero, no tail-line limit is applied."
        },
        "sinceSeconds": {
          "type": "string",
          "format": "int64",
          "description": "Return logs newer than this many seconds ago. If unset or zero, no since-time limit is applied. Useful for clients that poll to follow logs."
        }
      },
      "required": ["organizationId", "deploymentId"]
    },
    "GetTvcDeploymentDebugLogsResponse": {
      "type": "object",
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/TvcDeploymentDebugLogEntry"
          },
          "description": "Application log entries sorted by platform timestamp."
        }
      },
      "required": ["entries"]
    },
    "GetTvcDeploymentRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "deploymentId": {
          "type": "string",
          "description": "Unique identifier for a given TVC Deployment."
        }
      },
      "required": ["organizationId", "deploymentId"]
    },
    "GetTvcDeploymentResponse": {
      "type": "object",
      "properties": {
        "tvcDeployment": {
          "$ref": "#/definitions/TvcDeployment",
          "description": "Details about a single TVC Deployment"
        }
      },
      "required": ["tvcDeployment"]
    },
    "GetTvcQosVersionsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        }
      },
      "required": ["organizationId"]
    },
    "GetTvcQosVersionsResponse": {
      "type": "object",
      "properties": {
        "availableVersions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "QOS versions supported for new TVC deployments."
        },
        "latestVersion": {
          "type": "string",
          "description": "Latest recommended QOS version for new TVC deployments."
        }
      },
      "required": ["availableVersions", "latestVersion"]
    },
    "GetUserRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given user."
        }
      },
      "required": ["organizationId", "userId"]
    },
    "GetUserResponse": {
      "type": "object",
      "properties": {
        "user": {
          "$ref": "#/definitions/User",
          "description": "Web and/or API user within your organization."
        }
      },
      "required": ["user"]
    },
    "GetUsersRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        }
      },
      "required": ["organizationId"]
    },
    "GetUsersResponse": {
      "type": "object",
      "properties": {
        "users": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/User"
          },
          "description": "A list of users."
        }
      },
      "required": ["users"]
    },
    "GetVerifiedSubOrgIdsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for the parent organization. This is used to find sub-organizations within it."
        },
        "filterType": {
          "type": "string",
          "description": "Specifies the type of filter to apply, i.e 'EMAIL', 'PHONE_NUMBER'."
        },
        "filterValue": {
          "type": "string",
          "description": "The value of the filter to apply for the specified type. For example, a specific email or phone number string."
        },
        "paginationOptions": {
          "$ref": "#/definitions/Pagination",
          "description": "Parameters used for cursor-based pagination."
        }
      },
      "required": ["organizationId"]
    },
    "GetVerifiedSubOrgIdsResponse": {
      "type": "object",
      "properties": {
        "organizationIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of unique identifiers for the matching sub-organizations."
        }
      },
      "required": ["organizationIds"]
    },
    "GetWalletAccountRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "walletId": {
          "type": "string",
          "description": "Unique identifier for a given wallet."
        },
        "address": {
          "type": "string",
          "x-nullable": true,
          "description": "Address corresponding to a wallet account."
        },
        "path": {
          "type": "string",
          "x-nullable": true,
          "description": "Path corresponding to a wallet account."
        }
      },
      "required": ["organizationId", "walletId"]
    },
    "GetWalletAccountResponse": {
      "type": "object",
      "properties": {
        "account": {
          "$ref": "#/definitions/WalletAccount",
          "description": "The resulting wallet account."
        }
      },
      "required": ["account"]
    },
    "GetWalletAccountsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "walletId": {
          "type": "string",
          "x-nullable": true,
          "description": "Unique identifier for a given wallet. If not provided, all accounts for the organization will be returned."
        },
        "includeWalletDetails": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Optional flag to specify if the wallet details should be included in the response. Default = false."
        },
        "paginationOptions": {
          "$ref": "#/definitions/Pagination",
          "description": "Parameters used for cursor-based pagination."
        }
      },
      "required": ["organizationId"]
    },
    "GetWalletAccountsResponse": {
      "type": "object",
      "properties": {
        "accounts": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/WalletAccount"
          },
          "description": "A list of accounts generated from a wallet that share a common seed."
        }
      },
      "required": ["accounts"]
    },
    "GetWalletAddressBalancesRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "address": {
          "type": "string",
          "description": "Address corresponding to a wallet account. Private key addresses are not supported."
        },
        "caip2": {
          "type": "string",
          "enum": [
            "eip155:1",
            "eip155:11155111",
            "eip155:8453",
            "eip155:84532",
            "eip155:137",
            "eip155:80002",
            "eip155:56",
            "eip155:97",
            "eip155:10",
            "eip155:11155420",
            "eip155:143",
            "eip155:10143",
            "eip155:42161",
            "eip155:4217",
            "eip155:42431",
            "eip155:421614",
            "eip155:4663",
            "eip155:46630",
            "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
            "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1"
          ],
          "description": "CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet or 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet). Human-readable Solana aliases ('solana:mainnet', 'solana:devnet') are also accepted and normalized to canonical CAIP-2 values."
        }
      },
      "required": ["organizationId", "address", "caip2"]
    },
    "GetWalletAddressBalancesResponse": {
      "type": "object",
      "properties": {
        "balances": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AssetBalance"
          },
          "description": "List of asset balances"
        }
      }
    },
    "GetWalletRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "walletId": {
          "type": "string",
          "description": "Unique identifier for a given wallet."
        }
      },
      "required": ["organizationId", "walletId"]
    },
    "GetWalletResponse": {
      "type": "object",
      "properties": {
        "wallet": {
          "$ref": "#/definitions/Wallet",
          "description": "A collection of deterministically generated cryptographic public / private key pairs that share a common seed."
        }
      },
      "required": ["wallet"]
    },
    "GetWalletsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        }
      },
      "required": ["organizationId"]
    },
    "GetWalletsResponse": {
      "type": "object",
      "properties": {
        "wallets": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Wallet"
          },
          "description": "A list of wallets."
        }
      },
      "required": ["wallets"]
    },
    "GetWhoamiRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization. If the request is being made by a WebAuthN user and their sub-organization ID is unknown, this can be the parent organization ID; using the sub-organization ID when possible is preferred due to performance reasons."
        }
      },
      "required": ["organizationId"]
    },
    "GetWhoamiResponse": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "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."
        }
      },
      "required": ["organizationId", "organizationName", "userId", "username"]
    },
    "HashFunction": {
      "type": "string",
      "enum": [
        "HASH_FUNCTION_NO_OP",
        "HASH_FUNCTION_SHA256",
        "HASH_FUNCTION_KECCAK256",
        "HASH_FUNCTION_NOT_APPLICABLE"
      ]
    },
    "ImportPrivateKeyIntent": {
      "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": "#/definitions/Curve",
          "description": "Cryptographic Curve used to generate a given Private Key."
        },
        "addressFormats": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AddressFormat"
          },
          "description": "Cryptocurrency-specific formats for a derived address (e.g., Ethereum)."
        }
      },
      "required": [
        "userId",
        "privateKeyName",
        "encryptedBundle",
        "curve",
        "addressFormats"
      ]
    },
    "ImportPrivateKeyRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_IMPORT_PRIVATE_KEY"]
        },
        "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": "#/definitions/ImportPrivateKeyIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "ImportPrivateKeyResult": {
      "type": "object",
      "properties": {
        "privateKeyId": {
          "type": "string",
          "description": "Unique identifier for a Private Key."
        },
        "addresses": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/activity.v1.Address"
          },
          "description": "A list of addresses."
        }
      },
      "required": ["privateKeyId", "addresses"]
    },
    "ImportSecretParams": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional human-readable name for the secret. Names must be unique within an organization when provided."
        },
        "secretPayload": {
          "type": "string",
          "description": "Encryption suite specific payload containing the secret ciphertext. For enclave encrypt v1 this is a JSON-encoded ClientSendMsg."
        },
        "targetPublicKey": {
          "type": "string",
          "description": "Targeted transport encryption public key, as returned by InitImportSecrets."
        },
        "encryptionSuite": {
          "$ref": "#/definitions/TransportEncryptionSuite",
          "description": "Transport encryption suite used for the ingress secret."
        },
        "staticProperties": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/KeyValue"
          },
          "description": "Policy-visible, static properties to permanently bind to the secret."
        }
      },
      "required": ["secretPayload", "targetPublicKey", "encryptionSuite"]
    },
    "ImportSecretsIntent": {
      "type": "object",
      "properties": {
        "secrets": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ImportSecretParams"
          },
          "description": "A list of secrets to import."
        }
      },
      "required": ["secrets"]
    },
    "ImportSecretsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_IMPORT_SECRETS"]
        },
        "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": "#/definitions/ImportSecretsIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "ImportSecretsResult": {
      "type": "object",
      "properties": {
        "secretIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Unique identifier for each imported secret, in the order the params were specified."
        }
      },
      "required": ["secretIds"]
    },
    "ImportWalletIntent": {
      "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",
          "items": {
            "type": "object",
            "$ref": "#/definitions/WalletAccountParams"
          },
          "description": "A list of wallet Accounts."
        }
      },
      "required": ["userId", "walletName", "encryptedBundle", "accounts"]
    },
    "ImportWalletRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_IMPORT_WALLET"]
        },
        "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": "#/definitions/ImportWalletIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "ImportWalletResult": {
      "type": "object",
      "properties": {
        "walletId": {
          "type": "string",
          "description": "Unique identifier for a Wallet."
        },
        "addresses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of account addresses."
        }
      },
      "required": ["walletId", "addresses"]
    },
    "InitFiatOnRampIntent": {
      "type": "object",
      "properties": {
        "onrampProvider": {
          "$ref": "#/definitions/FiatOnRampProvider",
          "description": "Enum to specify which on-ramp provider to use"
        },
        "walletAddress": {
          "type": "string",
          "description": "Destination wallet address for the buy transaction."
        },
        "network": {
          "$ref": "#/definitions/FiatOnRampBlockchainNetwork",
          "description": "Blockchain network to be used for the transaction, e.g., bitcoin, ethereum. Maps to MoonPay's network or Coinbase's defaultNetwork."
        },
        "cryptoCurrencyCode": {
          "$ref": "#/definitions/FiatOnRampCryptoCurrency",
          "description": "Code for the cryptocurrency to be purchased, e.g., btc, eth. Maps to MoonPay's currencyCode or Coinbase's defaultAsset."
        },
        "fiatCurrencyCode": {
          "$ref": "#/definitions/FiatOnRampCurrency",
          "x-nullable": true,
          "description": "Code for the fiat currency to be used in the transaction, e.g., USD, EUR."
        },
        "fiatCurrencyAmount": {
          "type": "string",
          "x-nullable": true,
          "description": "Specifies a preset fiat amount for the transaction, e.g., '100'. Must be greater than '20'. If not provided, the user will be prompted to enter an amount."
        },
        "paymentMethod": {
          "$ref": "#/definitions/FiatOnRampPaymentMethod",
          "x-nullable": true,
          "description": "Pre-selected payment method, e.g., CREDIT_DEBIT_CARD, APPLE_PAY. Validated against the chosen provider."
        },
        "countryCode": {
          "type": "string",
          "x-nullable": true,
          "description": "ISO 3166-1 two-digit country code for Coinbase representing the purchasing user’s country of residence, e.g., US, GB."
        },
        "countrySubdivisionCode": {
          "type": "string",
          "x-nullable": true,
          "description": "ISO 3166-2 two-digit country subdivision code for Coinbase representing the purchasing user’s subdivision of residence within their country, e.g. NY. Required if country_code=US."
        },
        "sandboxMode": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Optional flag to indicate whether to use the sandbox mode to simulate transactions for the on-ramp provider. Default is false."
        },
        "urlForSignature": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional MoonPay Widget URL to sign when using MoonPay client SDKs with URL Signing enabled."
        }
      },
      "required": [
        "onrampProvider",
        "walletAddress",
        "network",
        "cryptoCurrencyCode"
      ]
    },
    "InitFiatOnRampRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_INIT_FIAT_ON_RAMP"]
        },
        "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": "#/definitions/InitFiatOnRampIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "InitFiatOnRampResult": {
      "type": "object",
      "properties": {
        "onRampUrl": {
          "type": "string",
          "description": "Unique URL for a given fiat on-ramp flow."
        },
        "onRampTransactionId": {
          "type": "string",
          "description": "Unique identifier used to retrieve transaction statuses for a given fiat on-ramp flow."
        },
        "onRampUrlSignature": {
          "type": "string",
          "description": "Optional signature of the MoonPay Widget URL. The signature is generated if the Init Fiat On Ramp intent includes the urlForSignature field. The signature can be used to initialize the MoonPay SDKs when URL signing is enabled for your project."
        }
      },
      "required": ["onRampUrl", "onRampTransactionId"]
    },
    "InitImportPrivateKeyIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "The ID of the User importing a Private Key."
        }
      },
      "required": ["userId"]
    },
    "InitImportPrivateKeyRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_INIT_IMPORT_PRIVATE_KEY"]
        },
        "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": "#/definitions/InitImportPrivateKeyIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "InitImportPrivateKeyResult": {
      "type": "object",
      "properties": {
        "importBundle": {
          "type": "string",
          "description": "Import bundle containing a public key and signature to use for importing client data."
        }
      },
      "required": ["importBundle"]
    },
    "InitImportSecretsIntent": {
      "type": "object",
      "properties": {
        "encryptionSuite": {
          "$ref": "#/definitions/TransportEncryptionSuite",
          "description": "Transport encryption suite used for ingress secrets."
        },
        "numSecrets": {
          "type": "integer",
          "format": "int32",
          "description": "The number of secrets the user intends to import."
        }
      },
      "required": ["encryptionSuite", "numSecrets"]
    },
    "InitImportSecretsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_INIT_IMPORT_SECRETS"]
        },
        "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": "#/definitions/InitImportSecretsIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "InitImportSecretsResult": {
      "type": "object",
      "properties": {
        "enclaveTargetMessages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Enclave ingress target keys along with metadata specific to the encryption suite. For enclave encrypt v1 this will be ServerTargetMsgV1."
        }
      },
      "required": ["enclaveTargetMessages"]
    },
    "InitImportWalletIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "The ID of the User importing a Wallet."
        }
      },
      "required": ["userId"]
    },
    "InitImportWalletRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_INIT_IMPORT_WALLET"]
        },
        "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": "#/definitions/InitImportWalletIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "InitImportWalletResult": {
      "type": "object",
      "properties": {
        "importBundle": {
          "type": "string",
          "description": "Import bundle containing a public key and signature to use for importing client data."
        }
      },
      "required": ["importBundle"]
    },
    "InitOtpAuthIntent": {
      "type": "object",
      "properties": {
        "otpType": {
          "type": "string",
          "description": "Enum to specify whether to send OTP via SMS, email, or WhatsApp"
        },
        "contact": {
          "type": "string",
          "description": "Email or phone number to send the OTP code to"
        },
        "emailCustomization": {
          "$ref": "#/definitions/EmailCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing emails. If not provided, the default email will be used."
        },
        "smsCustomization": {
          "$ref": "#/definitions/SmsCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing SMS message. If not provided, the default sms message will be used."
        },
        "userIdentifier": {
          "type": "string",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "description": "Optional custom email address from which to send the OTP email"
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'"
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address to use as reply-to"
        }
      },
      "required": ["otpType", "contact"]
    },
    "InitOtpAuthIntentV2": {
      "type": "object",
      "properties": {
        "otpType": {
          "type": "string",
          "description": "Enum to specify whether to send OTP via SMS, email, or WhatsApp"
        },
        "contact": {
          "type": "string",
          "description": "Email or phone number to send the OTP code to"
        },
        "otpLength": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "Optional length of the OTP code. Default = 9"
        },
        "emailCustomization": {
          "$ref": "#/definitions/EmailCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing emails. If not provided, the default email will be used."
        },
        "smsCustomization": {
          "$ref": "#/definitions/SmsCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing SMS message. If not provided, the default SMS message will be used."
        },
        "userIdentifier": {
          "type": "string",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "description": "Optional custom email address from which to send the OTP email"
        },
        "alphanumeric": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true"
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'"
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address to use as reply-to"
        }
      },
      "required": ["otpType", "contact"]
    },
    "InitOtpAuthIntentV3": {
      "type": "object",
      "properties": {
        "otpType": {
          "type": "string",
          "description": "Whether to send OTP via SMS, email, or WhatsApp. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL, OTP_TYPE_WHATSAPP"
        },
        "contact": {
          "type": "string",
          "description": "Email or phone number to send the OTP code to"
        },
        "otpLength": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "Optional length of the OTP code. Default = 9"
        },
        "appName": {
          "type": "string",
          "description": "The name of the application. This field is required and will be used in email notifications if an email template is not provided."
        },
        "emailCustomization": {
          "$ref": "#/definitions/EmailCustomizationParamsV2",
          "x-nullable": true,
          "description": "Optional parameters for customizing emails. If not provided, the default email will be used."
        },
        "smsCustomization": {
          "$ref": "#/definitions/SmsCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing SMS message. If not provided, the default SMS message will be used."
        },
        "userIdentifier": {
          "type": "string",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "description": "Optional custom email address from which to send the OTP email"
        },
        "alphanumeric": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true"
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)"
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address to use as reply-to"
        }
      },
      "required": ["otpType", "contact", "appName"]
    },
    "InitOtpAuthRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_INIT_OTP_AUTH_V3"]
        },
        "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": "#/definitions/InitOtpAuthIntentV3"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "InitOtpAuthResult": {
      "type": "object",
      "properties": {
        "otpId": {
          "type": "string",
          "description": "Unique identifier for an OTP authentication"
        }
      },
      "required": ["otpId"]
    },
    "InitOtpAuthResultV2": {
      "type": "object",
      "properties": {
        "otpId": {
          "type": "string",
          "description": "Unique identifier for an OTP authentication"
        }
      },
      "required": ["otpId"]
    },
    "InitOtpIntent": {
      "type": "object",
      "properties": {
        "otpType": {
          "type": "string",
          "description": "Whether to send OTP via SMS, email, or WhatsApp. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL, OTP_TYPE_WHATSAPP"
        },
        "contact": {
          "type": "string",
          "description": "Email or phone number to send the OTP code to"
        },
        "otpLength": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "Optional length of the OTP code. Default = 9"
        },
        "emailCustomization": {
          "$ref": "#/definitions/EmailCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing emails. If not provided, the default email will be used."
        },
        "smsCustomization": {
          "$ref": "#/definitions/SmsCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing SMS message. If not provided, the default sms message will be used."
        },
        "userIdentifier": {
          "type": "string",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "description": "Optional custom email address from which to send the OTP email"
        },
        "alphanumeric": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true"
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)"
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address to use as reply-to"
        }
      },
      "required": ["otpType", "contact"]
    },
    "InitOtpIntentV2": {
      "type": "object",
      "properties": {
        "otpType": {
          "type": "string",
          "description": "Whether to send OTP via SMS, email, or WhatsApp. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL, OTP_TYPE_WHATSAPP"
        },
        "contact": {
          "type": "string",
          "description": "Email or phone number to send the OTP code to"
        },
        "otpLength": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "Optional length of the OTP code. Default = 9"
        },
        "appName": {
          "type": "string",
          "description": "The name of the application. This field is required and will be used in email notifications if an email template is not provided."
        },
        "emailCustomization": {
          "$ref": "#/definitions/EmailCustomizationParamsV2",
          "x-nullable": true,
          "description": "Optional parameters for customizing emails. If not provided, the default email will be used."
        },
        "smsCustomization": {
          "$ref": "#/definitions/SmsCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing SMS message. If not provided, the default SMS message will be used."
        },
        "userIdentifier": {
          "type": "string",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "description": "Optional custom email address from which to send the OTP email"
        },
        "alphanumeric": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). Default = true"
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)"
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address to use as reply-to"
        }
      },
      "required": ["otpType", "contact", "appName"]
    },
    "InitOtpIntentV3": {
      "type": "object",
      "properties": {
        "otpType": {
          "type": "string",
          "description": "Whether to send OTP via SMS, email, or WhatsApp. Possible values: OTP_TYPE_SMS, OTP_TYPE_EMAIL, OTP_TYPE_WHATSAPP"
        },
        "contact": {
          "type": "string",
          "description": "Email or phone number to send the OTP code to"
        },
        "appName": {
          "type": "string",
          "description": "The name of the application."
        },
        "otpLength": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "Optional length of the OTP code. Default = 9"
        },
        "emailCustomization": {
          "$ref": "#/definitions/EmailCustomizationParamsV2",
          "x-nullable": true,
          "description": "Optional parameters for customizing emails. If not provided, the default email will be used."
        },
        "smsCustomization": {
          "$ref": "#/definitions/SmsCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing SMS message. If not provided, the default sms message will be used."
        },
        "userIdentifier": {
          "type": "string",
          "x-nullable": true,
          "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",
          "x-nullable": true,
          "description": "Optional custom email address from which to send the OTP email"
        },
        "alphanumeric": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Optional flag to specify if the OTP code should be alphanumeric (Crockford’s Base32). If set to false, OTP code will only be numeric. Default = true"
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the OTP is valid for. If not provided, a default of 5 minutes will be used. Maximum value is 600 seconds (10 minutes)"
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address to use as reply-to"
        }
      },
      "required": ["otpType", "contact", "appName"]
    },
    "InitOtpRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_INIT_OTP_V3"]
        },
        "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": "#/definitions/InitOtpIntentV3"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "InitOtpResult": {
      "type": "object",
      "properties": {
        "otpId": {
          "type": "string",
          "description": "Unique identifier for an OTP authentication"
        }
      },
      "required": ["otpId"]
    },
    "InitOtpResultV2": {
      "type": "object",
      "properties": {
        "otpId": {
          "type": "string",
          "description": "Unique identifier for an OTP flow"
        },
        "otpEncryptionTargetBundle": {
          "type": "string",
          "description": "Signed bundle containing a target encryption key to use when submitting OTP codes."
        }
      },
      "required": ["otpId", "otpEncryptionTargetBundle"]
    },
    "InitUserEmailRecoveryIntent": {
      "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",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used."
        },
        "emailCustomization": {
          "$ref": "#/definitions/EmailCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing emails. If not provided, the default email will be used."
        },
        "sendFromEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address from which to send the OTP email"
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'"
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address to use as reply-to"
        }
      },
      "required": ["email", "targetPublicKey"]
    },
    "InitUserEmailRecoveryIntentV2": {
      "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",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the recovery credential is valid for. If not provided, a default of 15 minutes will be used."
        },
        "emailCustomization": {
          "$ref": "#/definitions/EmailAuthCustomizationParams",
          "description": "Parameters for customizing emails. If not provided, the default email will be used. Note that `app_name` is required."
        },
        "sendFromEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address from which to send the OTP email"
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom sender name for use with sendFromEmailAddress; if left empty, will default to 'Notifications'"
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional custom email address to use as reply-to"
        }
      },
      "required": ["email", "targetPublicKey", "emailCustomization"]
    },
    "InitUserEmailRecoveryRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY_V2"]
        },
        "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": "#/definitions/InitUserEmailRecoveryIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "InitUserEmailRecoveryResult": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "Unique identifier for the user being recovered."
        }
      },
      "required": ["userId"]
    },
    "Intent": {
      "type": "object",
      "properties": {
        "createOrganizationIntent": {
          "$ref": "#/definitions/CreateOrganizationIntent"
        },
        "createAuthenticatorsIntent": {
          "$ref": "#/definitions/CreateAuthenticatorsIntent"
        },
        "createUsersIntent": {
          "$ref": "#/definitions/CreateUsersIntent"
        },
        "createPrivateKeysIntent": {
          "$ref": "#/definitions/CreatePrivateKeysIntent"
        },
        "signRawPayloadIntent": {
          "$ref": "#/definitions/SignRawPayloadIntent"
        },
        "createInvitationsIntent": {
          "$ref": "#/definitions/CreateInvitationsIntent"
        },
        "acceptInvitationIntent": {
          "$ref": "#/definitions/AcceptInvitationIntent"
        },
        "createPolicyIntent": {
          "$ref": "#/definitions/CreatePolicyIntent"
        },
        "disablePrivateKeyIntent": {
          "$ref": "#/definitions/DisablePrivateKeyIntent"
        },
        "deleteUsersIntent": {
          "$ref": "#/definitions/DeleteUsersIntent"
        },
        "deleteAuthenticatorsIntent": {
          "$ref": "#/definitions/DeleteAuthenticatorsIntent"
        },
        "deleteInvitationIntent": {
          "$ref": "#/definitions/DeleteInvitationIntent"
        },
        "deleteOrganizationIntent": {
          "$ref": "#/definitions/DeleteOrganizationIntent"
        },
        "deletePolicyIntent": {
          "$ref": "#/definitions/DeletePolicyIntent"
        },
        "createUserTagIntent": {
          "$ref": "#/definitions/CreateUserTagIntent"
        },
        "deleteUserTagsIntent": {
          "$ref": "#/definitions/DeleteUserTagsIntent"
        },
        "signTransactionIntent": {
          "$ref": "#/definitions/SignTransactionIntent"
        },
        "createApiKeysIntent": {
          "$ref": "#/definitions/CreateApiKeysIntent"
        },
        "deleteApiKeysIntent": {
          "$ref": "#/definitions/DeleteApiKeysIntent"
        },
        "approveActivityIntent": {
          "$ref": "#/definitions/ApproveActivityIntent"
        },
        "rejectActivityIntent": {
          "$ref": "#/definitions/RejectActivityIntent"
        },
        "createPrivateKeyTagIntent": {
          "$ref": "#/definitions/CreatePrivateKeyTagIntent"
        },
        "deletePrivateKeyTagsIntent": {
          "$ref": "#/definitions/DeletePrivateKeyTagsIntent"
        },
        "createPolicyIntentV2": {
          "$ref": "#/definitions/CreatePolicyIntentV2"
        },
        "setPaymentMethodIntent": {
          "$ref": "#/definitions/SetPaymentMethodIntent"
        },
        "activateBillingTierIntent": {
          "$ref": "#/definitions/ActivateBillingTierIntent"
        },
        "deletePaymentMethodIntent": {
          "$ref": "#/definitions/DeletePaymentMethodIntent"
        },
        "createPolicyIntentV3": {
          "$ref": "#/definitions/CreatePolicyIntentV3"
        },
        "createApiOnlyUsersIntent": {
          "$ref": "#/definitions/CreateApiOnlyUsersIntent"
        },
        "updateRootQuorumIntent": {
          "$ref": "#/definitions/UpdateRootQuorumIntent"
        },
        "updateUserTagIntent": {
          "$ref": "#/definitions/UpdateUserTagIntent"
        },
        "updatePrivateKeyTagIntent": {
          "$ref": "#/definitions/UpdatePrivateKeyTagIntent"
        },
        "createAuthenticatorsIntentV2": {
          "$ref": "#/definitions/CreateAuthenticatorsIntentV2"
        },
        "acceptInvitationIntentV2": {
          "$ref": "#/definitions/AcceptInvitationIntentV2"
        },
        "createOrganizationIntentV2": {
          "$ref": "#/definitions/CreateOrganizationIntentV2"
        },
        "createUsersIntentV2": {
          "$ref": "#/definitions/CreateUsersIntentV2"
        },
        "createSubOrganizationIntent": {
          "$ref": "#/definitions/CreateSubOrganizationIntent"
        },
        "createSubOrganizationIntentV2": {
          "$ref": "#/definitions/CreateSubOrganizationIntentV2"
        },
        "updateAllowedOriginsIntent": {
          "$ref": "#/definitions/UpdateAllowedOriginsIntent"
        },
        "createPrivateKeysIntentV2": {
          "$ref": "#/definitions/CreatePrivateKeysIntentV2"
        },
        "updateUserIntent": {
          "$ref": "#/definitions/UpdateUserIntent"
        },
        "updatePolicyIntent": {
          "$ref": "#/definitions/UpdatePolicyIntent"
        },
        "setPaymentMethodIntentV2": {
          "$ref": "#/definitions/SetPaymentMethodIntentV2"
        },
        "createSubOrganizationIntentV3": {
          "$ref": "#/definitions/CreateSubOrganizationIntentV3"
        },
        "createWalletIntent": {
          "$ref": "#/definitions/CreateWalletIntent"
        },
        "createWalletAccountsIntent": {
          "$ref": "#/definitions/CreateWalletAccountsIntent"
        },
        "initUserEmailRecoveryIntent": {
          "$ref": "#/definitions/InitUserEmailRecoveryIntent"
        },
        "recoverUserIntent": {
          "$ref": "#/definitions/RecoverUserIntent"
        },
        "setOrganizationFeatureIntent": {
          "$ref": "#/definitions/SetOrganizationFeatureIntent"
        },
        "removeOrganizationFeatureIntent": {
          "$ref": "#/definitions/RemoveOrganizationFeatureIntent"
        },
        "signRawPayloadIntentV2": {
          "$ref": "#/definitions/SignRawPayloadIntentV2"
        },
        "signTransactionIntentV2": {
          "$ref": "#/definitions/SignTransactionIntentV2"
        },
        "exportPrivateKeyIntent": {
          "$ref": "#/definitions/ExportPrivateKeyIntent"
        },
        "exportWalletIntent": {
          "$ref": "#/definitions/ExportWalletIntent"
        },
        "createSubOrganizationIntentV4": {
          "$ref": "#/definitions/CreateSubOrganizationIntentV4"
        },
        "emailAuthIntent": {
          "$ref": "#/definitions/EmailAuthIntent"
        },
        "exportWalletAccountIntent": {
          "$ref": "#/definitions/ExportWalletAccountIntent"
        },
        "initImportWalletIntent": {
          "$ref": "#/definitions/InitImportWalletIntent"
        },
        "importWalletIntent": {
          "$ref": "#/definitions/ImportWalletIntent"
        },
        "initImportPrivateKeyIntent": {
          "$ref": "#/definitions/InitImportPrivateKeyIntent"
        },
        "importPrivateKeyIntent": {
          "$ref": "#/definitions/ImportPrivateKeyIntent"
        },
        "createPoliciesIntent": {
          "$ref": "#/definitions/CreatePoliciesIntent"
        },
        "signRawPayloadsIntent": {
          "$ref": "#/definitions/SignRawPayloadsIntent"
        },
        "createReadOnlySessionIntent": {
          "$ref": "#/definitions/CreateReadOnlySessionIntent"
        },
        "createOauthProvidersIntent": {
          "$ref": "#/definitions/CreateOauthProvidersIntent"
        },
        "deleteOauthProvidersIntent": {
          "$ref": "#/definitions/DeleteOauthProvidersIntent"
        },
        "createSubOrganizationIntentV5": {
          "$ref": "#/definitions/CreateSubOrganizationIntentV5"
        },
        "oauthIntent": {
          "$ref": "#/definitions/OauthIntent"
        },
        "createApiKeysIntentV2": {
          "$ref": "#/definitions/CreateApiKeysIntentV2"
        },
        "createReadWriteSessionIntent": {
          "$ref": "#/definitions/CreateReadWriteSessionIntent"
        },
        "emailAuthIntentV2": {
          "$ref": "#/definitions/EmailAuthIntentV2"
        },
        "createSubOrganizationIntentV6": {
          "$ref": "#/definitions/CreateSubOrganizationIntentV6"
        },
        "deletePrivateKeysIntent": {
          "$ref": "#/definitions/DeletePrivateKeysIntent"
        },
        "deleteWalletsIntent": {
          "$ref": "#/definitions/DeleteWalletsIntent"
        },
        "createReadWriteSessionIntentV2": {
          "$ref": "#/definitions/CreateReadWriteSessionIntentV2"
        },
        "deleteSubOrganizationIntent": {
          "$ref": "#/definitions/DeleteSubOrganizationIntent"
        },
        "initOtpAuthIntent": {
          "$ref": "#/definitions/InitOtpAuthIntent"
        },
        "otpAuthIntent": {
          "$ref": "#/definitions/OtpAuthIntent"
        },
        "createSubOrganizationIntentV7": {
          "$ref": "#/definitions/CreateSubOrganizationIntentV7"
        },
        "updateWalletIntent": {
          "$ref": "#/definitions/UpdateWalletIntent"
        },
        "updatePolicyIntentV2": {
          "$ref": "#/definitions/UpdatePolicyIntentV2"
        },
        "createUsersIntentV3": {
          "$ref": "#/definitions/CreateUsersIntentV3"
        },
        "initOtpAuthIntentV2": {
          "$ref": "#/definitions/InitOtpAuthIntentV2"
        },
        "initOtpIntent": {
          "$ref": "#/definitions/InitOtpIntent"
        },
        "verifyOtpIntent": {
          "$ref": "#/definitions/VerifyOtpIntent"
        },
        "otpLoginIntent": {
          "$ref": "#/definitions/OtpLoginIntent"
        },
        "stampLoginIntent": {
          "$ref": "#/definitions/StampLoginIntent"
        },
        "oauthLoginIntent": {
          "$ref": "#/definitions/OauthLoginIntent"
        },
        "updateUserNameIntent": {
          "$ref": "#/definitions/UpdateUserNameIntent"
        },
        "updateUserEmailIntent": {
          "$ref": "#/definitions/UpdateUserEmailIntent"
        },
        "updateUserPhoneNumberIntent": {
          "$ref": "#/definitions/UpdateUserPhoneNumberIntent"
        },
        "initFiatOnRampIntent": {
          "$ref": "#/definitions/InitFiatOnRampIntent"
        },
        "createSmartContractInterfaceIntent": {
          "$ref": "#/definitions/CreateSmartContractInterfaceIntent"
        },
        "deleteSmartContractInterfaceIntent": {
          "$ref": "#/definitions/DeleteSmartContractInterfaceIntent"
        },
        "enableAuthProxyIntent": {
          "$ref": "#/definitions/EnableAuthProxyIntent"
        },
        "disableAuthProxyIntent": {
          "$ref": "#/definitions/DisableAuthProxyIntent"
        },
        "updateAuthProxyConfigIntent": {
          "$ref": "#/definitions/UpdateAuthProxyConfigIntent"
        },
        "createOauth2CredentialIntent": {
          "$ref": "#/definitions/CreateOauth2CredentialIntent"
        },
        "updateOauth2CredentialIntent": {
          "$ref": "#/definitions/UpdateOauth2CredentialIntent"
        },
        "deleteOauth2CredentialIntent": {
          "$ref": "#/definitions/DeleteOauth2CredentialIntent"
        },
        "oauth2AuthenticateIntent": {
          "$ref": "#/definitions/Oauth2AuthenticateIntent"
        },
        "deleteWalletAccountsIntent": {
          "$ref": "#/definitions/DeleteWalletAccountsIntent"
        },
        "deletePoliciesIntent": {
          "$ref": "#/definitions/DeletePoliciesIntent"
        },
        "ethSendRawTransactionIntent": {
          "$ref": "#/definitions/EthSendRawTransactionIntent"
        },
        "ethSendTransactionIntent": {
          "$ref": "#/definitions/EthSendTransactionIntent"
        },
        "createFiatOnRampCredentialIntent": {
          "$ref": "#/definitions/CreateFiatOnRampCredentialIntent"
        },
        "updateFiatOnRampCredentialIntent": {
          "$ref": "#/definitions/UpdateFiatOnRampCredentialIntent"
        },
        "deleteFiatOnRampCredentialIntent": {
          "$ref": "#/definitions/DeleteFiatOnRampCredentialIntent"
        },
        "emailAuthIntentV3": {
          "$ref": "#/definitions/EmailAuthIntentV3"
        },
        "initUserEmailRecoveryIntentV2": {
          "$ref": "#/definitions/InitUserEmailRecoveryIntentV2"
        },
        "initOtpIntentV2": {
          "$ref": "#/definitions/InitOtpIntentV2"
        },
        "initOtpAuthIntentV3": {
          "$ref": "#/definitions/InitOtpAuthIntentV3"
        },
        "upsertGasUsageConfigIntent": {
          "$ref": "#/definitions/UpsertGasUsageConfigIntent"
        },
        "createTvcAppIntent": {
          "$ref": "#/definitions/CreateTvcAppIntent"
        },
        "createTvcDeploymentIntent": {
          "$ref": "#/definitions/CreateTvcDeploymentIntent"
        },
        "createTvcManifestApprovalsIntent": {
          "$ref": "#/definitions/CreateTvcManifestApprovalsIntent"
        },
        "solSendTransactionIntent": {
          "$ref": "#/definitions/SolSendTransactionIntent"
        },
        "initOtpIntentV3": {
          "$ref": "#/definitions/InitOtpIntentV3"
        },
        "verifyOtpIntentV2": {
          "$ref": "#/definitions/VerifyOtpIntentV2"
        },
        "otpLoginIntentV2": {
          "$ref": "#/definitions/OtpLoginIntentV2"
        },
        "updateOrganizationNameIntent": {
          "$ref": "#/definitions/UpdateOrganizationNameIntent"
        },
        "createSubOrganizationIntentV8": {
          "$ref": "#/definitions/CreateSubOrganizationIntentV8"
        },
        "createOauthProvidersIntentV2": {
          "$ref": "#/definitions/CreateOauthProvidersIntentV2"
        },
        "createUsersIntentV4": {
          "$ref": "#/definitions/CreateUsersIntentV4"
        },
        "createWebhookEndpointIntent": {
          "$ref": "#/definitions/CreateWebhookEndpointIntent"
        },
        "updateWebhookEndpointIntent": {
          "$ref": "#/definitions/UpdateWebhookEndpointIntent"
        },
        "deleteWebhookEndpointIntent": {
          "$ref": "#/definitions/DeleteWebhookEndpointIntent"
        },
        "setIpAllowlistIntent": {
          "$ref": "#/definitions/SetIpAllowlistIntent"
        },
        "removeIpAllowlistIntent": {
          "$ref": "#/definitions/RemoveIpAllowlistIntent"
        },
        "updateTvcAppLiveDeploymentIntent": {
          "$ref": "#/definitions/UpdateTvcAppLiveDeploymentIntent"
        },
        "deleteTvcDeploymentIntent": {
          "$ref": "#/definitions/DeleteTvcDeploymentIntent"
        },
        "deleteTvcAppAndDeploymentsIntent": {
          "$ref": "#/definitions/DeleteTvcAppAndDeploymentsIntent"
        },
        "restoreTvcDeploymentIntent": {
          "$ref": "#/definitions/RestoreTvcDeploymentIntent"
        },
        "sparkSignFrostIntent": {
          "$ref": "#/definitions/SparkSignFrostIntent"
        },
        "sparkPrepareTransferIntent": {
          "$ref": "#/definitions/SparkPrepareTransferIntent"
        },
        "sparkClaimTransferIntent": {
          "$ref": "#/definitions/SparkClaimTransferIntent"
        },
        "sparkPrepareLightningReceiveIntent": {
          "$ref": "#/definitions/SparkPrepareLightningReceiveIntent"
        },
        "postTvcQuorumKeyShareIntent": {
          "$ref": "#/definitions/PostTvcQuorumKeyShareIntent"
        },
        "ethSendTransactionIntentV2": {
          "$ref": "#/definitions/EthSendTransactionIntentV2"
        },
        "createMfaPolicyIntent": {
          "$ref": "#/definitions/CreateMfaPolicyIntent"
        },
        "updateMfaPolicyIntent": {
          "$ref": "#/definitions/UpdateMfaPolicyIntent"
        },
        "deleteMfaPolicyIntent": {
          "$ref": "#/definitions/DeleteMfaPolicyIntent"
        },
        "createSessionProfileIntent": {
          "$ref": "#/definitions/CreateSessionProfileIntent"
        },
        "earnDeployWrapperIntent": {
          "$ref": "#/definitions/EarnDeployWrapperIntent"
        },
        "earnDepositIntent": {
          "$ref": "#/definitions/EarnDepositIntent"
        },
        "earnWithdrawIntent": {
          "$ref": "#/definitions/EarnWithdrawIntent"
        },
        "executeSwapIntent": {
          "$ref": "#/definitions/ExecuteSwapIntent"
        },
        "upsertSwapConfigIntent": {
          "$ref": "#/definitions/UpsertSwapConfigIntent"
        },
        "createTvcOperatorIntent": {
          "$ref": "#/definitions/CreateTvcOperatorIntent"
        },
        "createTvcQuorumKeyIntent": {
          "$ref": "#/definitions/CreateTvcQuorumKeyIntent"
        },
        "reEncryptTvcQuorumKeyShareIntent": {
          "$ref": "#/definitions/ReEncryptTvcQuorumKeyShareIntent"
        },
        "initImportSecretsIntent": {
          "$ref": "#/definitions/InitImportSecretsIntent"
        },
        "solSendTransactionIntentV2": {
          "$ref": "#/definitions/SolSendTransactionIntentV2"
        },
        "claimSwapFeesIntent": {
          "$ref": "#/definitions/ClaimSwapFeesIntent"
        },
        "earnSetWrapperStateIntent": {
          "$ref": "#/definitions/EarnSetWrapperStateIntent"
        },
        "claimEarnFeesIntent": {
          "$ref": "#/definitions/ClaimEarnFeesIntent"
        },
        "updateWalletAccountNameIntent": {
          "$ref": "#/definitions/UpdateWalletAccountNameIntent"
        },
        "ethUndelegate7702Intent": {
          "$ref": "#/definitions/EthUndelegate7702Intent"
        },
        "executeSwapIntentV2": {
          "$ref": "#/definitions/ExecuteSwapIntentV2"
        },
        "createSwapQuoteIntent": {
          "$ref": "#/definitions/CreateSwapQuoteIntent"
        },
        "importSecretsIntent": {
          "$ref": "#/definitions/ImportSecretsIntent"
        },
        "exportSecretsIntent": {
          "$ref": "#/definitions/ExportSecretsIntent"
        },
        "createVelocityControlIntent": {
          "$ref": "#/definitions/CreateVelocityControlIntent"
        },
        "deleteVelocityControlIntent": {
          "$ref": "#/definitions/DeleteVelocityControlIntent"
        },
        "updatePaymentMethodIntent": {
          "$ref": "#/definitions/UpdatePaymentMethodIntent"
        },
        "createSwapQuoteIntentV2": {
          "$ref": "#/definitions/CreateSwapQuoteIntentV2"
        },
        "executeSwapIntentV3": {
          "$ref": "#/definitions/ExecuteSwapIntentV3"
        }
      }
    },
    "InvitationParams": {
      "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",
          "items": {
            "type": "string"
          },
          "description": "A list of tags assigned to the Invitation recipient. This field, if not needed, should be an empty array in your request body."
        },
        "accessType": {
          "$ref": "#/definitions/AccessType",
          "description": "The User's permissible access method(s)."
        },
        "senderUserId": {
          "type": "string",
          "description": "Unique identifier for the Sender of an Invitation."
        }
      },
      "required": [
        "receiverUserName",
        "receiverUserEmail",
        "receiverUserTags",
        "accessType",
        "senderUserId"
      ]
    },
    "IpAllowlist": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for the organization this allowlist belongs to."
        },
        "rules": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/IpAllowlistRule"
          },
          "description": "List of IP allowlist rules with their metadata."
        },
        "publicKey": {
          "type": "string",
          "x-nullable": true,
          "description": "Public key of the API key this allowlist applies to. Null means the allowlist applies to the entire organization."
        },
        "enabled": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether the IP allowlist is enabled. Only present for organization-level allowlists. Null for API key-level allowlists (presence of the allowlist implies enablement)."
        },
        "onEvaluationError": {
          "type": "string",
          "x-nullable": true,
          "description": "Behavior when an error occurs during IP allowlist evaluation. Valid values: ALLOW, DENY. Defaults to DENY."
        }
      },
      "required": ["organizationId", "rules"]
    },
    "IpAllowlistIntentRule": {
      "type": "object",
      "properties": {
        "cidr": {
          "type": "string",
          "description": "CIDR block (e.g., '192.168.1.0/24', '2001:db8::/32')."
        },
        "label": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional human-readable label for this rule (e.g., 'Office VPN')."
        }
      },
      "required": ["cidr"]
    },
    "IpAllowlistRule": {
      "type": "object",
      "properties": {
        "cidr": {
          "type": "string",
          "description": "CIDR block (e.g., '192.168.1.0/24')."
        },
        "label": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional human-readable label for this rule."
        },
        "createdAt": {
          "type": "string",
          "description": "Creation timestamp as millisecond epoch string."
        }
      },
      "required": ["cidr"]
    },
    "KeyValue": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "ListEarnEnabledVaultsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "provider": {
          "$ref": "#/definitions/EarnProvider",
          "description": "Optional filter: only return enabled vaults from this provider. Leave EARN_PROVIDER_UNSPECIFIED to return all providers."
        },
        "caip19": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional filter: only return enabled vaults whose underlying asset matches this CAIP-19 asset ID (e.g. 'eip155:8453/erc20:0x833589...'). The chain is taken from the CAIP-19 identifier."
        },
        "includeExposure": {
          "type": "boolean",
          "description": "When true, populate each vault's exposures (the underlying markets it allocates into). This costs an extra provider query per vault, so leave it off for list views."
        }
      },
      "required": ["organizationId"]
    },
    "ListEarnEnabledVaultsResponse": {
      "type": "object",
      "properties": {
        "enabledVaults": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/EarnEnabledVault"
          },
          "description": "The organization's deployed wrappers."
        }
      }
    },
    "ListEarnPositionsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "walletAddress": {
          "type": "string",
          "description": "The wallet address to return positions for."
        }
      },
      "required": ["organizationId", "walletAddress"]
    },
    "ListEarnPositionsResponse": {
      "type": "object",
      "properties": {
        "positions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/EarnPosition"
          },
          "description": "The wallet's active Earn positions."
        }
      }
    },
    "ListEarnVaultsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization. Annotates which vaults the organization has already enabled."
        },
        "provider": {
          "$ref": "#/definitions/EarnProvider",
          "description": "Optional filter: only return vaults from this provider. Leave EARN_PROVIDER_UNSPECIFIED to return all providers."
        },
        "caip19": {
          "type": "string",
          "description": "CAIP-19 asset ID (e.g. 'eip155:8453/erc20:0x833589...') to return vaults for. Only vaults whose underlying asset matches are returned; the chain is taken from the CAIP-19 identifier."
        },
        "paginationOptions": {
          "$ref": "#/definitions/Pagination",
          "description": "Pagination over the TVL-sorted catalog. before/after cursors are a vault_address from a prior page."
        }
      },
      "required": ["organizationId", "caip19"]
    },
    "ListEarnVaultsResponse": {
      "type": "object",
      "properties": {
        "vaults": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/EarnVault"
          },
          "description": "The catalog of wrappable vaults, sorted by TVL (USD) descending. To page, pass page_info.end_cursor as the pagination after cursor."
        },
        "pageInfo": {
          "$ref": "#/definitions/PageInfo",
          "description": "Pagination metadata for the returned page. Pass end_cursor as the next request's after cursor (or start_cursor as the before cursor) to page through the catalog. Cursors are opaque; do not parse them."
        }
      }
    },
    "ListEmailEventsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization"
        },
        "email": {
          "type": "string",
          "description": "Recipient email address to list email events for"
        },
        "eventType": {
          "type": "string",
          "description": "Optional email event type to filter by. Examples include Send, Delivery, Bounce, and DeliveryDelay"
        },
        "paginationOptions": {
          "$ref": "#/definitions/Pagination",
          "description": "Parameters used for cursor-based pagination"
        }
      },
      "required": ["organizationId", "email"]
    },
    "ListEmailEventsResponse": {
      "type": "object",
      "properties": {
        "emailEvents": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/EmailEvent"
          },
          "description": "Email events matching the requested filters, ordered by most recent event first."
        }
      },
      "required": ["emailEvents"]
    },
    "ListEthTransactionHistoryRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "address": {
          "type": "string",
          "description": "Address corresponding to a wallet account. Private key addresses are not supported."
        },
        "caip2": {
          "type": "string",
          "enum": [
            "eip155:1",
            "eip155:11155111",
            "eip155:8453",
            "eip155:84532",
            "eip155:137",
            "eip155:80002",
            "eip155:42161",
            "eip155:4217",
            "eip155:42431",
            "eip155:421614",
            "eip155:56",
            "eip155:97",
            "eip155:4663",
            "eip155:46630"
          ],
          "description": "EVM CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet)."
        },
        "paginationOptions": {
          "$ref": "#/definitions/Pagination",
          "description": "Cursor-based pagination options. Cursors are opaque and valid only for the same address and CAIP-2 query."
        }
      },
      "required": ["organizationId", "address", "caip2"]
    },
    "ListEthTransactionHistoryResponse": {
      "type": "object",
      "properties": {
        "transactions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/EthTransactionHistoryItem"
          },
          "description": "EVM transactions for the requested address, ordered by most recent first."
        },
        "pageInfo": {
          "$ref": "#/definitions/PageInfo"
        }
      },
      "required": ["transactions"]
    },
    "ListFiatOnRampCredentialsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        }
      },
      "required": ["organizationId"]
    },
    "ListFiatOnRampCredentialsResponse": {
      "type": "object",
      "properties": {
        "fiatOnRampCredentials": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/FiatOnRampCredential"
          }
        }
      },
      "required": ["fiatOnRampCredentials"]
    },
    "ListOauth2CredentialsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        }
      },
      "required": ["organizationId"]
    },
    "ListOauth2CredentialsResponse": {
      "type": "object",
      "properties": {
        "oauth2Credentials": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Oauth2Credential"
          }
        }
      },
      "required": ["oauth2Credentials"]
    },
    "ListPrivateKeyTagsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        }
      },
      "required": ["organizationId"]
    },
    "ListPrivateKeyTagsResponse": {
      "type": "object",
      "properties": {
        "privateKeyTags": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1.Tag"
          },
          "description": "A list of private key tags."
        }
      },
      "required": ["privateKeyTags"]
    },
    "ListSecretsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for the organization or sub-organization whose secrets are listed."
        },
        "paginationOptions": {
          "$ref": "#/definitions/Pagination",
          "description": "Parameters used for cursor-based pagination."
        }
      },
      "required": ["organizationId"]
    },
    "ListSecretsResponse": {
      "type": "object",
      "properties": {
        "secrets": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SecretMetadata"
          },
          "description": "Metadata for each secret in the organization, ordered by most recently created first."
        }
      },
      "required": ["secrets"]
    },
    "ListSolTransactionHistoryRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "address": {
          "type": "string",
          "description": "Address corresponding to a wallet account. Private key addresses are not supported."
        },
        "caip2": {
          "type": "string",
          "enum": [
            "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
            "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
            "solana:mainnet",
            "solana:devnet"
          ],
          "description": "Solana CAIP-2 chain ID (e.g., 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet). Human-readable Solana aliases ('solana:mainnet', 'solana:devnet') are also accepted and normalized to canonical CAIP-2 values."
        },
        "paginationOptions": {
          "$ref": "#/definitions/Pagination",
          "description": "Cursor-based pagination options. Cursors are opaque and valid only for the same address and CAIP-2 query."
        }
      },
      "required": ["organizationId", "address", "caip2"]
    },
    "ListSolTransactionHistoryResponse": {
      "type": "object",
      "properties": {
        "transactions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SolTransactionHistoryItem"
          },
          "description": "Solana transactions for the requested address, ordered by most recent first."
        },
        "pageInfo": {
          "$ref": "#/definitions/PageInfo"
        }
      },
      "required": ["transactions"]
    },
    "ListSupportedAssetsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        },
        "caip2": {
          "type": "string",
          "enum": [
            "eip155:1",
            "eip155:11155111",
            "eip155:8453",
            "eip155:84532",
            "eip155:137",
            "eip155:80002",
            "eip155:56",
            "eip155:97",
            "eip155:10",
            "eip155:11155420",
            "eip155:143",
            "eip155:10143",
            "eip155:42161",
            "eip155:4217",
            "eip155:42431",
            "eip155:421614",
            "eip155:4663",
            "eip155:46630",
            "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
            "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1"
          ],
          "description": "CAIP-2 chain ID (e.g., 'eip155:1' for Ethereum mainnet or 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet). Human-readable Solana aliases ('solana:mainnet', 'solana:devnet') are also accepted and normalized to canonical CAIP-2 values."
        }
      },
      "required": ["organizationId", "caip2"]
    },
    "ListSupportedAssetsResponse": {
      "type": "object",
      "properties": {
        "assets": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AssetMetadata"
          },
          "description": "List of asset metadata"
        }
      }
    },
    "ListUserTagsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given organization."
        }
      },
      "required": ["organizationId"]
    },
    "ListUserTagsResponse": {
      "type": "object",
      "properties": {
        "userTags": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1.Tag"
          },
          "description": "A list of user tags."
        }
      },
      "required": ["userTags"]
    },
    "ListWebhookEndpointsRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        }
      },
      "required": ["organizationId"]
    },
    "ListWebhookEndpointsResponse": {
      "type": "object",
      "properties": {
        "webhookEndpoints": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/WebhookEndpointData"
          }
        }
      },
      "required": ["webhookEndpoints"]
    },
    "LogLine": {
      "type": "object",
      "properties": {
        "content": {
          "type": "string",
          "description": "One log line, exactly as the application printed it (without the trailing newline)"
        },
        "ts": {
          "$ref": "#/definitions/external.data.v1.Timestamp",
          "description": "When the line was logged. Stable across replays, so lines can be chronologically merged across pods"
        }
      },
      "required": ["content"]
    },
    "LoginUsage": {
      "type": "object",
      "properties": {
        "publicKey": {
          "type": "string",
          "description": "Public key for authentication"
        }
      },
      "required": ["publicKey"]
    },
    "MfaPolicy": {
      "type": "object",
      "properties": {
        "mfaPolicyId": {
          "type": "string",
          "description": "Unique identifier for a given MFA Policy."
        },
        "mfaPolicyName": {
          "type": "string",
          "description": "Human-readable name for an MFA Policy."
        },
        "condition": {
          "type": "string",
          "description": "A condition expression that evaluates to true or false, determining when this MFA policy applies."
        },
        "requiredAuthenticationMethods": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RequiredAuthenticationMethod"
          },
          "description": "An ordered list of authentication requirements. Each requirement must be satisfied sequentially to complete MFA."
        },
        "order": {
          "type": "integer",
          "format": "int64",
          "description": "The order in which this policy is evaluated relative to other MFA policies."
        },
        "notes": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional human-readable notes added by a User to describe a particular MFA policy."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": [
        "mfaPolicyId",
        "mfaPolicyName",
        "condition",
        "requiredAuthenticationMethods",
        "order",
        "createdAt",
        "updatedAt"
      ]
    },
    "MfaStatus": {
      "type": "object",
      "properties": {
        "mfaPolicyId": {
          "type": "string",
          "description": "Unique identifier for a given MFA Policy."
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        },
        "satisfied": {
          "type": "boolean",
          "description": "Whether the MFA policy requirements are currently satisfied."
        },
        "satisfiedMethods": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticationMethod"
          },
          "description": "A list of authentication methods already satisfied for this MFA policy."
        },
        "requiredMethods": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RequiredAuthenticationMethod"
          },
          "description": "An ordered list of authentication requirements needed to satisfy this MFA policy."
        }
      },
      "required": [
        "mfaPolicyId",
        "userId",
        "satisfied",
        "satisfiedMethods",
        "requiredMethods"
      ]
    },
    "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"
      ]
    },
    "NOOPCodegenAnchorResponse": {
      "type": "object",
      "properties": {
        "stamp": {
          "$ref": "#/definitions/WebAuthnStamp"
        },
        "tokenUsage": {
          "$ref": "#/definitions/TokenUsage"
        }
      },
      "required": ["stamp"]
    },
    "NativeRevertError": {
      "type": "object",
      "properties": {
        "nativeType": {
          "type": "string",
          "x-nullable": true,
          "description": "The type of native error: 'error_string', 'panic', or 'execution_reverted'."
        },
        "message": {
          "type": "string",
          "x-nullable": true,
          "description": "The error message for Error(string) reverts."
        },
        "panicCode": {
          "type": "string",
          "format": "uint64",
          "x-nullable": true,
          "description": "The panic code for Panic(uint256) reverts."
        }
      }
    },
    "Oauth2AuthenticateIntent": {
      "type": "object",
      "properties": {
        "oauth2CredentialId": {
          "type": "string",
          "description": "The OAuth 2.0 credential id whose client_id and client_secret will be used in the OAuth 2.0 flow"
        },
        "authCode": {
          "type": "string",
          "description": "The auth_code provided by the OAuth 2.0 provider to the end user to be exchanged for a Bearer token in the OAuth 2.0 flow"
        },
        "redirectUri": {
          "type": "string",
          "description": "The URI the user is redirected to after they have authenticated with the OAuth 2.0 provider"
        },
        "codeVerifier": {
          "type": "string",
          "description": "The code verifier used by OAuth 2.0 PKCE providers"
        },
        "nonce": {
          "type": "string",
          "description": "A nonce value set to sha256(publicKey), used to bind the OIDC token to a specific public key"
        },
        "bearerTokenTargetPublicKey": {
          "type": "string",
          "x-nullable": true,
          "description": "An optional P256 public key to which, if provided, the bearer token will be encrypted and returned via the `encrypted_bearer_token` claim of the OIDC Token"
        }
      },
      "required": [
        "oauth2CredentialId",
        "authCode",
        "redirectUri",
        "codeVerifier",
        "nonce"
      ]
    },
    "Oauth2AuthenticateRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_OAUTH2_AUTHENTICATE"]
        },
        "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": "#/definitions/Oauth2AuthenticateIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "Oauth2AuthenticateResult": {
      "type": "object",
      "properties": {
        "oidcToken": {
          "type": "string",
          "description": "Base64 encoded OIDC token issued by Turnkey to be used with the LoginWithOAuth activity"
        }
      },
      "required": ["oidcToken"]
    },
    "Oauth2Credential": {
      "type": "object",
      "properties": {
        "oauth2CredentialId": {
          "type": "string",
          "description": "Unique identifier for a given OAuth 2.0 Credential."
        },
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for an Organization."
        },
        "provider": {
          "$ref": "#/definitions/Oauth2Provider",
          "description": "The provider for a given OAuth 2.0 Credential."
        },
        "clientId": {
          "type": "string",
          "description": "The client id for a given OAuth 2.0 Credential."
        },
        "encryptedClientSecret": {
          "type": "string",
          "description": "The encrypted client secret for a given OAuth 2.0 Credential encrypted to the TLS Fetcher quorum key."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": [
        "oauth2CredentialId",
        "organizationId",
        "provider",
        "clientId",
        "encryptedClientSecret",
        "createdAt",
        "updatedAt"
      ]
    },
    "Oauth2Provider": {
      "type": "string",
      "enum": ["OAUTH2_PROVIDER_X", "OAUTH2_PROVIDER_DISCORD"]
    },
    "OauthIntent": {
      "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",
          "x-nullable": true,
          "description": "Optional human-readable name for an API Key. If none provided, default to Oauth - \u003cTimestamp\u003e"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used."
        },
        "invalidateExisting": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Invalidate all other previously generated Oauth API keys"
        }
      },
      "required": ["oidcToken", "targetPublicKey"]
    },
    "OauthLoginIntent": {
      "type": "object",
      "properties": {
        "oidcToken": {
          "type": "string",
          "description": "Base64 encoded OIDC token"
        },
        "publicKey": {
          "type": "string",
          "description": "Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the oidc token associated with this request"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used."
        },
        "invalidateExisting": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Invalidate all other previously generated Login API keys"
        },
        "sessionProfileId": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional session profile ID to specify which Session Profile to use for this login. If not provided, the default read/write session will be used."
        }
      },
      "required": ["oidcToken", "publicKey"]
    },
    "OauthLoginRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_OAUTH_LOGIN"]
        },
        "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": "#/definitions/OauthLoginIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "OauthLoginResult": {
      "type": "object",
      "properties": {
        "session": {
          "type": "string",
          "description": "Signed JWT containing an expiry, public key, session type, user id, and organization id"
        }
      },
      "required": ["session"]
    },
    "OauthProvider": {
      "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": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": [
        "providerId",
        "providerName",
        "issuer",
        "audience",
        "subject",
        "createdAt",
        "updatedAt"
      ]
    },
    "OauthProviderParams": {
      "type": "object",
      "properties": {
        "providerName": {
          "type": "string",
          "description": "Human-readable name to identify a Provider."
        },
        "oidcToken": {
          "type": "string",
          "description": "Base64 encoded OIDC token"
        }
      },
      "required": ["providerName", "oidcToken"]
    },
    "OauthProviderParamsV2": {
      "type": "object",
      "properties": {
        "providerName": {
          "type": "string",
          "description": "Human-readable name to identify a Provider."
        },
        "oidcToken": {
          "type": "string",
          "description": "Base64 encoded OIDC token"
        },
        "oidcClaims": {
          "$ref": "#/definitions/OidcClaims",
          "description": "OIDC claims (iss, sub, aud) to uniquely identify the user"
        }
      },
      "required": ["providerName"]
    },
    "OauthRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_OAUTH"]
        },
        "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": "#/definitions/OauthIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "OauthResult": {
      "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"
        }
      },
      "required": ["userId", "apiKeyId", "credentialBundle"]
    },
    "OidcClaims": {
      "type": "object",
      "properties": {
        "iss": {
          "type": "string",
          "description": "The issuer identifier from the OIDC token (iss claim)"
        },
        "sub": {
          "type": "string",
          "description": "The subject identifier from the OIDC token (sub claim)"
        },
        "aud": {
          "type": "string",
          "description": "The audience from the OIDC token (aud claim)"
        }
      },
      "required": ["iss", "sub", "aud"]
    },
    "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"
      ]
    },
    "OtpAuthIntent": {
      "type": "object",
      "properties": {
        "otpId": {
          "type": "string",
          "description": "ID representing the result of an init OTP activity."
        },
        "otpCode": {
          "type": "string",
          "description": "OTP 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",
          "x-nullable": true,
          "description": "Optional human-readable name for an API Key. If none provided, default to OTP Auth - \u003cTimestamp\u003e"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the API key is valid for. If not provided, a default of 15 minutes will be used."
        },
        "invalidateExisting": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Invalidate all other previously generated OTP Auth API keys"
        }
      },
      "required": ["otpId", "otpCode", "targetPublicKey"]
    },
    "OtpAuthRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_OTP_AUTH"]
        },
        "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": "#/definitions/OtpAuthIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "OtpAuthResult": {
      "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"
        }
      },
      "required": ["userId"]
    },
    "OtpLoginIntent": {
      "type": "object",
      "properties": {
        "verificationToken": {
          "type": "string",
          "description": "Signed JWT containing a unique id, expiry, verification type, contact"
        },
        "publicKey": {
          "type": "string",
          "description": "Client-side public key generated by the user, which will be conditionally added to org data based on the validity of the verification token"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used."
        },
        "invalidateExisting": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Invalidate all other previously generated Login API keys"
        },
        "clientSignature": {
          "$ref": "#/definitions/ClientSignature",
          "x-nullable": true,
          "description": "Optional signature proving authorization for this login. The signature is over the verification token ID and the public key. Only required if a public key was provided during the verification step."
        },
        "sessionProfileId": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional session profile ID to specify which Session Profile to use for this login. If not provided, the default read/write session will be used."
        }
      },
      "required": ["verificationToken", "publicKey"]
    },
    "OtpLoginIntentV2": {
      "type": "object",
      "properties": {
        "verificationToken": {
          "type": "string",
          "description": "Signed Verification Token containing a unique id, expiry, verification type, contact"
        },
        "publicKey": {
          "type": "string",
          "description": "Client-side public key generated by the user, used as the session public key upon successful login"
        },
        "clientSignature": {
          "$ref": "#/definitions/ClientSignature",
          "description": "Required signature proving authorization for this login. The signature is over the verification token ID and the public key. Required for secure OTP login process."
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used."
        },
        "invalidateExisting": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Invalidate all other previously generated Login sessions"
        },
        "sessionProfileId": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional session profile ID to specify which Session Profile to use for this login. If not provided, the default read/write session will be used."
        }
      },
      "required": ["verificationToken", "publicKey", "clientSignature"]
    },
    "OtpLoginRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_OTP_LOGIN_V2"]
        },
        "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": "#/definitions/OtpLoginIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "OtpLoginResult": {
      "type": "object",
      "properties": {
        "session": {
          "type": "string",
          "description": "Signed JWT containing an expiry, public key, session type, user id, and organization id"
        }
      },
      "required": ["session"]
    },
    "Outcome": {
      "type": "string",
      "enum": [
        "OUTCOME_ALLOW",
        "OUTCOME_DENY_EXPLICIT",
        "OUTCOME_DENY_IMPLICIT",
        "OUTCOME_REQUIRES_CONSENSUS",
        "OUTCOME_REJECTED",
        "OUTCOME_ERROR",
        "OUTCOME_REQUIRES_AUTHENTICATORS",
        "OUTCOME_TIME_INACTIVE"
      ]
    },
    "PageInfo": {
      "type": "object",
      "properties": {
        "hasNextPage": {
          "type": "boolean"
        },
        "hasPreviousPage": {
          "type": "boolean"
        },
        "startCursor": {
          "type": "string",
          "x-nullable": true
        },
        "endCursor": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "Pagination": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "string",
          "description": "A limit of the number of object to be returned, between 1 and 100. Defaults to 10."
        },
        "before": {
          "type": "string",
          "description": "A pagination cursor. This is an object ID that enables you to fetch all objects before this ID."
        },
        "after": {
          "type": "string",
          "description": "A pagination cursor. This is an object ID that enables you to fetch all objects after this ID."
        }
      }
    },
    "PathFormat": {
      "type": "string",
      "enum": ["PATH_FORMAT_BIP32"]
    },
    "PayloadEncoding": {
      "type": "string",
      "enum": [
        "PAYLOAD_ENCODING_HEXADECIMAL",
        "PAYLOAD_ENCODING_TEXT_UTF8",
        "PAYLOAD_ENCODING_EIP712",
        "PAYLOAD_ENCODING_EIP7702_AUTHORIZATION"
      ]
    },
    "Policy": {
      "type": "object",
      "properties": {
        "policyId": {
          "type": "string",
          "description": "Unique identifier for a given Policy."
        },
        "policyName": {
          "type": "string",
          "description": "Human-readable name for a Policy."
        },
        "effect": {
          "$ref": "#/definitions/Effect",
          "description": "The instruction to DENY or ALLOW a particular activity following policy selector(s)."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "notes": {
          "type": "string",
          "description": "Human-readable notes added by a User to describe a particular policy."
        },
        "consensus": {
          "type": "string",
          "x-nullable": true,
          "description": "A consensus expression that evalutes to true or false."
        },
        "condition": {
          "type": "string",
          "x-nullable": true,
          "description": "A condition expression that evalutes to true or false."
        },
        "time": {
          "type": "string",
          "x-nullable": true,
          "description": "A time expression that evalutes to true or false."
        }
      },
      "required": [
        "policyId",
        "policyName",
        "effect",
        "createdAt",
        "updatedAt",
        "notes",
        "consensus",
        "condition"
      ]
    },
    "PostTvcQuorumKeyShareIntent": {
      "type": "object",
      "properties": {
        "deploymentId": {
          "type": "string",
          "description": "Unique identifier of the TVC deployment receiving quorum key share"
        },
        "ephemeralPublicKeyHex": {
          "type": "string",
          "description": "Hex-encoded ephemeral public key used to encrypt the quorum key share"
        },
        "shareApprovalBundle": {
          "$ref": "#/definitions/QuorumKeyShareApprovalBundle",
          "description": "Re-encrypted quorum key share and approval"
        }
      },
      "required": [
        "deploymentId",
        "ephemeralPublicKeyHex",
        "shareApprovalBundle"
      ]
    },
    "PostTvcQuorumKeyShareResult": {
      "type": "object",
      "properties": {
        "provisioningShareId": {
          "type": "string",
          "description": "The unique identifier for the provisioning quorum key share"
        }
      },
      "required": ["provisioningShareId"]
    },
    "PrivateKey": {
      "type": "object",
      "properties": {
        "privateKeyId": {
          "type": "string",
          "description": "Unique identifier for a given Private Key."
        },
        "publicKey": {
          "type": "string",
          "description": "The public component of a cryptographic key pair used to sign messages and transactions."
        },
        "privateKeyName": {
          "type": "string",
          "description": "Human-readable name for a Private Key."
        },
        "curve": {
          "$ref": "#/definitions/Curve",
          "description": "Cryptographic Curve used to generate a given Private Key."
        },
        "addresses": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/data.v1.Address"
          },
          "description": "Derived cryptocurrency addresses for a given Private Key."
        },
        "privateKeyTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Private Key Tag IDs."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "exported": {
          "type": "boolean",
          "description": "True when a given Private Key is exported, false otherwise."
        },
        "imported": {
          "type": "boolean",
          "description": "True when a given Private Key is imported, false otherwise."
        }
      },
      "required": [
        "privateKeyId",
        "publicKey",
        "privateKeyName",
        "curve",
        "addresses",
        "privateKeyTags",
        "createdAt",
        "updatedAt",
        "exported",
        "imported"
      ]
    },
    "PrivateKeyParams": {
      "type": "object",
      "properties": {
        "privateKeyName": {
          "type": "string",
          "description": "Human-readable name for a Private Key."
        },
        "curve": {
          "$ref": "#/definitions/Curve",
          "description": "Cryptographic Curve used to generate a given Private Key."
        },
        "privateKeyTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Private Key Tag IDs. This field, if not needed, should be an empty array in your request body."
        },
        "addressFormats": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AddressFormat"
          },
          "description": "Cryptocurrency-specific formats for a derived address (e.g., Ethereum)."
        }
      },
      "required": [
        "privateKeyName",
        "curve",
        "privateKeyTags",
        "addressFormats"
      ]
    },
    "PrivateKeyResult": {
      "type": "object",
      "properties": {
        "privateKeyId": {
          "type": "string"
        },
        "addresses": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/activity.v1.Address"
          }
        }
      }
    },
    "ProvisioningState": {
      "type": "string",
      "enum": [
        "PROVISIONING_STATE_PENDING",
        "PROVISIONING_STATE_AWAITING_PROVISION",
        "PROVISIONING_STATE_PROVISIONED"
      ]
    },
    "PublicKeyCredentialWithAttestation": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": ["public-key"]
        },
        "rawId": {
          "type": "string"
        },
        "authenticatorAttachment": {
          "type": "string",
          "enum": ["cross-platform", "platform"],
          "x-nullable": true
        },
        "response": {
          "$ref": "#/definitions/AuthenticatorAttestationResponse"
        },
        "clientExtensionResults": {
          "$ref": "#/definitions/SimpleClientExtensionResults"
        }
      },
      "required": ["id", "type", "rawId", "response", "clientExtensionResults"]
    },
    "QuorumKeyShareApprovalBundle": {
      "type": "object",
      "properties": {
        "operatorId": {
          "type": "string",
          "description": "Unique identifier of the operator providing this quorum key share"
        },
        "reEncryptedShareHex": {
          "type": "string",
          "description": "Hex-encoded re-encrypted quorum key share"
        },
        "signature": {
          "type": "string",
          "description": "Signature from the share set operator approving the manifest"
        }
      },
      "required": ["operatorId", "reEncryptedShareHex", "signature"]
    },
    "ReEncryptTvcQuorumKeyShareIntent": {
      "type": "object",
      "properties": {
        "attestationDocB64": {
          "type": "string",
          "description": "Base64-encoded attestation document for the TVC deployment provisioning enclave"
        },
        "manifestB64": {
          "type": "string",
          "description": "Base64-encoded manifest for the TVC deployment"
        },
        "operatorEncryptKey": {
          "type": "string",
          "description": "Operator encryption public key used to encrypt the hosted TVC quorum key share"
        },
        "operatorSignKey": {
          "type": "string",
          "description": "Operator signing public key used to approve the TVC manifest"
        },
        "deploymentId": {
          "type": "string",
          "description": "Unique identifier of the TVC deployment receiving the re-encrypted quorum key share"
        },
        "appQuorumKey": {
          "type": "string",
          "description": "Quorum key for the TVC application"
        }
      },
      "required": [
        "attestationDocB64",
        "manifestB64",
        "operatorEncryptKey",
        "operatorSignKey",
        "deploymentId",
        "appQuorumKey"
      ]
    },
    "ReEncryptTvcQuorumKeyShareResult": {
      "type": "object",
      "properties": {
        "provisioningShareId": {
          "type": "string",
          "description": "The unique identifier for the provisioning quorum key share"
        }
      },
      "required": ["provisioningShareId"]
    },
    "RecoverUserIntent": {
      "type": "object",
      "properties": {
        "authenticator": {
          "$ref": "#/definitions/AuthenticatorParamsV2",
          "description": "The new authenticator to register."
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier for the user performing recovery."
        }
      },
      "required": ["authenticator", "userId"]
    },
    "RecoverUserRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_RECOVER_USER"]
        },
        "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": "#/definitions/RecoverUserIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "RecoverUserResult": {
      "type": "object",
      "properties": {
        "authenticatorId": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "ID of the authenticator created."
        }
      },
      "required": ["authenticatorId"]
    },
    "RejectActivityIntent": {
      "type": "object",
      "properties": {
        "fingerprint": {
          "type": "string",
          "description": "An artifact verifying a User's action."
        }
      },
      "required": ["fingerprint"]
    },
    "RejectActivityRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_REJECT_ACTIVITY"]
        },
        "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": "#/definitions/RejectActivityIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "RemoveIpAllowlistIntent": {
      "type": "object",
      "properties": {
        "publicKey": {
          "type": "string",
          "x-nullable": true,
          "description": "The public component of an API key. If null, removes the organization-level IP allowlist. If set, removes the IP allowlist for this specific API key."
        }
      }
    },
    "RemoveIpAllowlistRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_REMOVE_IP_ALLOWLIST"]
        },
        "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": "#/definitions/RemoveIpAllowlistIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "RemoveIpAllowlistResult": {
      "type": "object"
    },
    "RemoveOrganizationFeatureIntent": {
      "type": "object",
      "properties": {
        "name": {
          "$ref": "#/definitions/FeatureName",
          "description": "Name of the feature to remove"
        }
      },
      "required": ["name"]
    },
    "RemoveOrganizationFeatureRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_REMOVE_ORGANIZATION_FEATURE"]
        },
        "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": "#/definitions/RemoveOrganizationFeatureIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "RemoveOrganizationFeatureResult": {
      "type": "object",
      "properties": {
        "features": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Feature"
          },
          "description": "Resulting list of organization features."
        }
      },
      "required": ["features"]
    },
    "RequiredAuthenticationMethod": {
      "type": "object",
      "properties": {
        "any": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticationMethod"
          },
          "description": "A list of authentication methods for this MFA step. If only one method is provided, it is required. If multiple are provided, the user must satisfy ANY one of them."
        }
      },
      "required": ["any"]
    },
    "RequiredAuthenticationMethodParams": {
      "type": "object",
      "properties": {
        "any": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticationMethodParams"
          },
          "description": "A list of authentication methods for this MFA step. If only one method is provided, it is required. If multiple are provided, the user must satisfy ANY one of them."
        }
      },
      "required": ["any"]
    },
    "RestoreTvcDeploymentIntent": {
      "type": "object",
      "properties": {
        "deploymentId": {
          "type": "string",
          "description": "The unique identifier of the TVC deployment to restore."
        }
      },
      "required": ["deploymentId"]
    },
    "RestoreTvcDeploymentRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_RESTORE_TVC_DEPLOYMENT"]
        },
        "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": "#/definitions/RestoreTvcDeploymentIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "RestoreTvcDeploymentResult": {
      "type": "object",
      "properties": {
        "deploymentId": {
          "type": "string",
          "description": "The unique identifier of the restored TVC deployment."
        }
      },
      "required": ["deploymentId"]
    },
    "Result": {
      "type": "object",
      "properties": {
        "createOrganizationResult": {
          "$ref": "#/definitions/CreateOrganizationResult"
        },
        "createAuthenticatorsResult": {
          "$ref": "#/definitions/CreateAuthenticatorsResult"
        },
        "createUsersResult": {
          "$ref": "#/definitions/CreateUsersResult"
        },
        "createPrivateKeysResult": {
          "$ref": "#/definitions/CreatePrivateKeysResult"
        },
        "createInvitationsResult": {
          "$ref": "#/definitions/CreateInvitationsResult"
        },
        "acceptInvitationResult": {
          "$ref": "#/definitions/AcceptInvitationResult"
        },
        "signRawPayloadResult": {
          "$ref": "#/definitions/SignRawPayloadResult"
        },
        "createPolicyResult": {
          "$ref": "#/definitions/CreatePolicyResult"
        },
        "disablePrivateKeyResult": {
          "$ref": "#/definitions/DisablePrivateKeyResult"
        },
        "deleteUsersResult": {
          "$ref": "#/definitions/DeleteUsersResult"
        },
        "deleteAuthenticatorsResult": {
          "$ref": "#/definitions/DeleteAuthenticatorsResult"
        },
        "deleteInvitationResult": {
          "$ref": "#/definitions/DeleteInvitationResult"
        },
        "deleteOrganizationResult": {
          "$ref": "#/definitions/DeleteOrganizationResult"
        },
        "deletePolicyResult": {
          "$ref": "#/definitions/DeletePolicyResult"
        },
        "createUserTagResult": {
          "$ref": "#/definitions/CreateUserTagResult"
        },
        "deleteUserTagsResult": {
          "$ref": "#/definitions/DeleteUserTagsResult"
        },
        "signTransactionResult": {
          "$ref": "#/definitions/SignTransactionResult"
        },
        "deleteApiKeysResult": {
          "$ref": "#/definitions/DeleteApiKeysResult"
        },
        "createApiKeysResult": {
          "$ref": "#/definitions/CreateApiKeysResult"
        },
        "createPrivateKeyTagResult": {
          "$ref": "#/definitions/CreatePrivateKeyTagResult"
        },
        "deletePrivateKeyTagsResult": {
          "$ref": "#/definitions/DeletePrivateKeyTagsResult"
        },
        "setPaymentMethodResult": {
          "$ref": "#/definitions/SetPaymentMethodResult"
        },
        "activateBillingTierResult": {
          "$ref": "#/definitions/ActivateBillingTierResult"
        },
        "deletePaymentMethodResult": {
          "$ref": "#/definitions/DeletePaymentMethodResult"
        },
        "createApiOnlyUsersResult": {
          "$ref": "#/definitions/CreateApiOnlyUsersResult"
        },
        "updateRootQuorumResult": {
          "$ref": "#/definitions/UpdateRootQuorumResult"
        },
        "updateUserTagResult": {
          "$ref": "#/definitions/UpdateUserTagResult"
        },
        "updatePrivateKeyTagResult": {
          "$ref": "#/definitions/UpdatePrivateKeyTagResult"
        },
        "createSubOrganizationResult": {
          "$ref": "#/definitions/CreateSubOrganizationResult"
        },
        "updateAllowedOriginsResult": {
          "$ref": "#/definitions/UpdateAllowedOriginsResult"
        },
        "createPrivateKeysResultV2": {
          "$ref": "#/definitions/CreatePrivateKeysResultV2"
        },
        "updateUserResult": {
          "$ref": "#/definitions/UpdateUserResult"
        },
        "updatePolicyResult": {
          "$ref": "#/definitions/UpdatePolicyResult"
        },
        "createSubOrganizationResultV3": {
          "$ref": "#/definitions/CreateSubOrganizationResultV3"
        },
        "createWalletResult": {
          "$ref": "#/definitions/CreateWalletResult"
        },
        "createWalletAccountsResult": {
          "$ref": "#/definitions/CreateWalletAccountsResult"
        },
        "initUserEmailRecoveryResult": {
          "$ref": "#/definitions/InitUserEmailRecoveryResult"
        },
        "recoverUserResult": {
          "$ref": "#/definitions/RecoverUserResult"
        },
        "setOrganizationFeatureResult": {
          "$ref": "#/definitions/SetOrganizationFeatureResult"
        },
        "removeOrganizationFeatureResult": {
          "$ref": "#/definitions/RemoveOrganizationFeatureResult"
        },
        "exportPrivateKeyResult": {
          "$ref": "#/definitions/ExportPrivateKeyResult"
        },
        "exportWalletResult": {
          "$ref": "#/definitions/ExportWalletResult"
        },
        "createSubOrganizationResultV4": {
          "$ref": "#/definitions/CreateSubOrganizationResultV4"
        },
        "emailAuthResult": {
          "$ref": "#/definitions/EmailAuthResult"
        },
        "exportWalletAccountResult": {
          "$ref": "#/definitions/ExportWalletAccountResult"
        },
        "initImportWalletResult": {
          "$ref": "#/definitions/InitImportWalletResult"
        },
        "importWalletResult": {
          "$ref": "#/definitions/ImportWalletResult"
        },
        "initImportPrivateKeyResult": {
          "$ref": "#/definitions/InitImportPrivateKeyResult"
        },
        "importPrivateKeyResult": {
          "$ref": "#/definitions/ImportPrivateKeyResult"
        },
        "createPoliciesResult": {
          "$ref": "#/definitions/CreatePoliciesResult"
        },
        "signRawPayloadsResult": {
          "$ref": "#/definitions/SignRawPayloadsResult"
        },
        "createReadOnlySessionResult": {
          "$ref": "#/definitions/CreateReadOnlySessionResult"
        },
        "createOauthProvidersResult": {
          "$ref": "#/definitions/CreateOauthProvidersResult"
        },
        "deleteOauthProvidersResult": {
          "$ref": "#/definitions/DeleteOauthProvidersResult"
        },
        "createSubOrganizationResultV5": {
          "$ref": "#/definitions/CreateSubOrganizationResultV5"
        },
        "oauthResult": {
          "$ref": "#/definitions/OauthResult"
        },
        "createReadWriteSessionResult": {
          "$ref": "#/definitions/CreateReadWriteSessionResult"
        },
        "createSubOrganizationResultV6": {
          "$ref": "#/definitions/CreateSubOrganizationResultV6"
        },
        "deletePrivateKeysResult": {
          "$ref": "#/definitions/DeletePrivateKeysResult"
        },
        "deleteWalletsResult": {
          "$ref": "#/definitions/DeleteWalletsResult"
        },
        "createReadWriteSessionResultV2": {
          "$ref": "#/definitions/CreateReadWriteSessionResultV2"
        },
        "deleteSubOrganizationResult": {
          "$ref": "#/definitions/DeleteSubOrganizationResult"
        },
        "initOtpAuthResult": {
          "$ref": "#/definitions/InitOtpAuthResult"
        },
        "otpAuthResult": {
          "$ref": "#/definitions/OtpAuthResult"
        },
        "createSubOrganizationResultV7": {
          "$ref": "#/definitions/CreateSubOrganizationResultV7"
        },
        "updateWalletResult": {
          "$ref": "#/definitions/UpdateWalletResult"
        },
        "updatePolicyResultV2": {
          "$ref": "#/definitions/UpdatePolicyResultV2"
        },
        "initOtpAuthResultV2": {
          "$ref": "#/definitions/InitOtpAuthResultV2"
        },
        "initOtpResult": {
          "$ref": "#/definitions/InitOtpResult"
        },
        "verifyOtpResult": {
          "$ref": "#/definitions/VerifyOtpResult"
        },
        "otpLoginResult": {
          "$ref": "#/definitions/OtpLoginResult"
        },
        "stampLoginResult": {
          "$ref": "#/definitions/StampLoginResult"
        },
        "oauthLoginResult": {
          "$ref": "#/definitions/OauthLoginResult"
        },
        "updateUserNameResult": {
          "$ref": "#/definitions/UpdateUserNameResult"
        },
        "updateUserEmailResult": {
          "$ref": "#/definitions/UpdateUserEmailResult"
        },
        "updateUserPhoneNumberResult": {
          "$ref": "#/definitions/UpdateUserPhoneNumberResult"
        },
        "initFiatOnRampResult": {
          "$ref": "#/definitions/InitFiatOnRampResult"
        },
        "createSmartContractInterfaceResult": {
          "$ref": "#/definitions/CreateSmartContractInterfaceResult"
        },
        "deleteSmartContractInterfaceResult": {
          "$ref": "#/definitions/DeleteSmartContractInterfaceResult"
        },
        "enableAuthProxyResult": {
          "$ref": "#/definitions/EnableAuthProxyResult"
        },
        "disableAuthProxyResult": {
          "$ref": "#/definitions/DisableAuthProxyResult"
        },
        "updateAuthProxyConfigResult": {
          "$ref": "#/definitions/UpdateAuthProxyConfigResult"
        },
        "createOauth2CredentialResult": {
          "$ref": "#/definitions/CreateOauth2CredentialResult"
        },
        "updateOauth2CredentialResult": {
          "$ref": "#/definitions/UpdateOauth2CredentialResult"
        },
        "deleteOauth2CredentialResult": {
          "$ref": "#/definitions/DeleteOauth2CredentialResult"
        },
        "oauth2AuthenticateResult": {
          "$ref": "#/definitions/Oauth2AuthenticateResult"
        },
        "deleteWalletAccountsResult": {
          "$ref": "#/definitions/DeleteWalletAccountsResult"
        },
        "deletePoliciesResult": {
          "$ref": "#/definitions/DeletePoliciesResult"
        },
        "ethSendRawTransactionResult": {
          "$ref": "#/definitions/EthSendRawTransactionResult"
        },
        "createFiatOnRampCredentialResult": {
          "$ref": "#/definitions/CreateFiatOnRampCredentialResult"
        },
        "updateFiatOnRampCredentialResult": {
          "$ref": "#/definitions/UpdateFiatOnRampCredentialResult"
        },
        "deleteFiatOnRampCredentialResult": {
          "$ref": "#/definitions/DeleteFiatOnRampCredentialResult"
        },
        "ethSendTransactionResult": {
          "$ref": "#/definitions/EthSendTransactionResult"
        },
        "upsertGasUsageConfigResult": {
          "$ref": "#/definitions/UpsertGasUsageConfigResult"
        },
        "createTvcAppResult": {
          "$ref": "#/definitions/CreateTvcAppResult"
        },
        "createTvcDeploymentResult": {
          "$ref": "#/definitions/CreateTvcDeploymentResult"
        },
        "createTvcManifestApprovalsResult": {
          "$ref": "#/definitions/CreateTvcManifestApprovalsResult"
        },
        "solSendTransactionResult": {
          "$ref": "#/definitions/SolSendTransactionResult"
        },
        "initOtpResultV2": {
          "$ref": "#/definitions/InitOtpResultV2"
        },
        "updateOrganizationNameResult": {
          "$ref": "#/definitions/UpdateOrganizationNameResult"
        },
        "createSubOrganizationResultV8": {
          "$ref": "#/definitions/CreateSubOrganizationResultV8"
        },
        "createOauthProvidersResultV2": {
          "$ref": "#/definitions/CreateOauthProvidersResultV2"
        },
        "createWebhookEndpointResult": {
          "$ref": "#/definitions/CreateWebhookEndpointResult"
        },
        "updateWebhookEndpointResult": {
          "$ref": "#/definitions/UpdateWebhookEndpointResult"
        },
        "deleteWebhookEndpointResult": {
          "$ref": "#/definitions/DeleteWebhookEndpointResult"
        },
        "setIpAllowlistResult": {
          "$ref": "#/definitions/SetIpAllowlistResult"
        },
        "removeIpAllowlistResult": {
          "$ref": "#/definitions/RemoveIpAllowlistResult"
        },
        "updateTvcAppLiveDeploymentResult": {
          "$ref": "#/definitions/UpdateTvcAppLiveDeploymentResult"
        },
        "deleteTvcDeploymentResult": {
          "$ref": "#/definitions/DeleteTvcDeploymentResult"
        },
        "deleteTvcAppAndDeploymentsResult": {
          "$ref": "#/definitions/DeleteTvcAppAndDeploymentsResult"
        },
        "restoreTvcDeploymentResult": {
          "$ref": "#/definitions/RestoreTvcDeploymentResult"
        },
        "sparkSignFrostResult": {
          "$ref": "#/definitions/SparkSignFrostResult"
        },
        "sparkPrepareTransferResult": {
          "$ref": "#/definitions/SparkPrepareTransferResult"
        },
        "sparkClaimTransferResult": {
          "$ref": "#/definitions/SparkClaimTransferResult"
        },
        "sparkPrepareLightningReceiveResult": {
          "$ref": "#/definitions/SparkPrepareLightningReceiveResult"
        },
        "postTvcQuorumKeyShareResult": {
          "$ref": "#/definitions/PostTvcQuorumKeyShareResult"
        },
        "ethSendTransactionResultV2": {
          "$ref": "#/definitions/EthSendTransactionResultV2"
        },
        "createMfaPolicyResult": {
          "$ref": "#/definitions/CreateMfaPolicyResult"
        },
        "updateMfaPolicyResult": {
          "$ref": "#/definitions/UpdateMfaPolicyResult"
        },
        "deleteMfaPolicyResult": {
          "$ref": "#/definitions/DeleteMfaPolicyResult"
        },
        "createSessionProfileResult": {
          "$ref": "#/definitions/CreateSessionProfileResult"
        },
        "earnDeployWrapperResult": {
          "$ref": "#/definitions/EarnDeployWrapperResult"
        },
        "earnDepositResult": {
          "$ref": "#/definitions/EarnDepositResult"
        },
        "earnWithdrawResult": {
          "$ref": "#/definitions/EarnWithdrawResult"
        },
        "executeSwapResult": {
          "$ref": "#/definitions/ExecuteSwapResult"
        },
        "upsertSwapConfigResult": {
          "$ref": "#/definitions/UpsertSwapConfigResult"
        },
        "createTvcOperatorResult": {
          "$ref": "#/definitions/CreateTvcOperatorResult"
        },
        "createTvcQuorumKeyResult": {
          "$ref": "#/definitions/CreateTvcQuorumKeyResult"
        },
        "reEncryptTvcQuorumKeyShareResult": {
          "$ref": "#/definitions/ReEncryptTvcQuorumKeyShareResult"
        },
        "initImportSecretsResult": {
          "$ref": "#/definitions/InitImportSecretsResult"
        },
        "solSendTransactionResultV2": {
          "$ref": "#/definitions/SolSendTransactionResultV2"
        },
        "claimSwapFeesResult": {
          "$ref": "#/definitions/ClaimSwapFeesResult"
        },
        "earnSetWrapperStateResult": {
          "$ref": "#/definitions/EarnSetWrapperStateResult"
        },
        "claimEarnFeesResult": {
          "$ref": "#/definitions/ClaimEarnFeesResult"
        },
        "updateWalletAccountNameResult": {
          "$ref": "#/definitions/UpdateWalletAccountNameResult"
        },
        "ethUndelegate7702Result": {
          "$ref": "#/definitions/EthUndelegate7702Result"
        },
        "createSwapQuoteResult": {
          "$ref": "#/definitions/CreateSwapQuoteResult"
        },
        "importSecretsResult": {
          "$ref": "#/definitions/ImportSecretsResult"
        },
        "exportSecretsResult": {
          "$ref": "#/definitions/ExportSecretsResult"
        },
        "createVelocityControlResult": {
          "$ref": "#/definitions/CreateVelocityControlResult"
        },
        "deleteVelocityControlResult": {
          "$ref": "#/definitions/DeleteVelocityControlResult"
        },
        "updatePaymentMethodResult": {
          "$ref": "#/definitions/UpdatePaymentMethodResult"
        }
      }
    },
    "RevertChainEntry": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "description": "The contract address where the revert occurred."
        },
        "errorType": {
          "type": "string",
          "description": "Type of error: 'unknown', 'native', or 'custom'."
        },
        "displayMessage": {
          "type": "string",
          "description": "Human-readable message describing this revert."
        },
        "unknown": {
          "$ref": "#/definitions/UnknownRevertError",
          "description": "Details for unknown error types."
        },
        "native": {
          "$ref": "#/definitions/NativeRevertError",
          "description": "Details for native Solidity errors (Error, Panic, execution reverted)."
        },
        "custom": {
          "$ref": "#/definitions/CustomRevertError",
          "description": "Details for custom contract errors."
        }
      }
    },
    "RootUserParams": {
      "type": "object",
      "properties": {
        "userName": {
          "type": "string",
          "description": "Human-readable name for a User."
        },
        "userEmail": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's email address."
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParams"
          },
          "description": "A list of API Key parameters. This field, if not needed, should be an empty array in your request body."
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParamsV2"
          },
          "description": "A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body."
        }
      },
      "required": ["userName", "apiKeys", "authenticators"]
    },
    "RootUserParamsV2": {
      "type": "object",
      "properties": {
        "userName": {
          "type": "string",
          "description": "Human-readable name for a User."
        },
        "userEmail": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's email address."
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParams"
          },
          "description": "A list of API Key parameters. This field, if not needed, should be an empty array in your request body."
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParamsV2"
          },
          "description": "A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body."
        },
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProviderParams"
          },
          "description": "A list of Oauth providers. This field, if not needed, should be an empty array in your request body."
        }
      },
      "required": ["userName", "apiKeys", "authenticators", "oauthProviders"]
    },
    "RootUserParamsV3": {
      "type": "object",
      "properties": {
        "userName": {
          "type": "string",
          "description": "Human-readable name for a User."
        },
        "userEmail": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's email address."
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParamsV2"
          },
          "description": "A list of API Key parameters. This field, if not needed, should be an empty array in your request body."
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParamsV2"
          },
          "description": "A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body."
        },
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProviderParams"
          },
          "description": "A list of Oauth providers. This field, if not needed, should be an empty array in your request body."
        }
      },
      "required": ["userName", "apiKeys", "authenticators", "oauthProviders"]
    },
    "RootUserParamsV4": {
      "type": "object",
      "properties": {
        "userName": {
          "type": "string",
          "description": "Human-readable name for a User."
        },
        "userEmail": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's email address."
        },
        "userPhoneNumber": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's phone number in E.164 format e.g. +13214567890"
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParamsV2"
          },
          "description": "A list of API Key parameters. This field, if not needed, should be an empty array in your request body."
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParamsV2"
          },
          "description": "A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body."
        },
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProviderParams"
          },
          "description": "A list of Oauth providers. This field, if not needed, should be an empty array in your request body."
        }
      },
      "required": ["userName", "apiKeys", "authenticators", "oauthProviders"]
    },
    "RootUserParamsV5": {
      "type": "object",
      "properties": {
        "userName": {
          "type": "string",
          "description": "Human-readable name for a User."
        },
        "userEmail": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's email address."
        },
        "userPhoneNumber": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's phone number in E.164 format e.g. +13214567890"
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParamsV2"
          },
          "description": "A list of API Key parameters. This field, if not needed, should be an empty array in your request body."
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParamsV2"
          },
          "description": "A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body."
        },
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProviderParamsV2"
          },
          "description": "A list of Oauth providers. This field, if not needed, should be an empty array in your request body."
        }
      },
      "required": ["userName", "apiKeys", "authenticators", "oauthProviders"]
    },
    "SecretMetadata": {
      "type": "object",
      "properties": {
        "secretId": {
          "type": "string",
          "description": "Unique identifier for the secret."
        },
        "name": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional human-readable name for the secret."
        },
        "staticProperties": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/KeyValue"
          },
          "description": "Policy visible static properties bound to the secret at creation time."
        },
        "createdAtUnixMs": {
          "type": "string",
          "format": "uint64",
          "description": "Unix timestamp in milliseconds for when the secret was created."
        }
      },
      "required": ["secretId", "staticProperties", "createdAtUnixMs"]
    },
    "Selector": {
      "type": "object",
      "properties": {
        "subject": {
          "type": "string"
        },
        "operator": {
          "$ref": "#/definitions/Operator"
        },
        "target": {
          "type": "string"
        }
      }
    },
    "SelectorV2": {
      "type": "object",
      "properties": {
        "subject": {
          "type": "string"
        },
        "operator": {
          "$ref": "#/definitions/Operator"
        },
        "targets": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "SessionProfile": {
      "type": "object",
      "properties": {
        "sessionProfileId": {
          "type": "string",
          "description": "Unique identifier for a given Session Profile."
        },
        "sessionProfileName": {
          "type": "string",
          "description": "Human-readable name for a Session Profile."
        },
        "scope": {
          "type": "string",
          "description": "The specific scope that a session created with this profile is limited to."
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional window (in seconds) indicating how long sessions created with this profile should last."
        },
        "notes": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional human-readable notes added by a User to describe a particular Session Profile."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": [
        "sessionProfileId",
        "sessionProfileName",
        "scope",
        "createdAt",
        "updatedAt"
      ]
    },
    "SetIpAllowlistIntent": {
      "type": "object",
      "properties": {
        "publicKey": {
          "type": "string",
          "x-nullable": true,
          "description": "The public component of an API key. If null, the IP allowlist applies at the organization level. If set, it applies only to this specific API key."
        },
        "enabled": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether the IP allowlist is enabled. Only meaningful for organization-level allowlists. Omit for API key-level allowlists."
        },
        "rules": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/IpAllowlistIntentRule"
          },
          "description": "List of IP allowlist rules with CIDR blocks and optional labels."
        },
        "onEvaluationError": {
          "type": "string",
          "x-nullable": true,
          "description": "Behavior when an error occurs during IP allowlist evaluation. Valid values: ALLOW, DENY. Defaults to DENY."
        }
      }
    },
    "SetIpAllowlistRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_SET_IP_ALLOWLIST"]
        },
        "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": "#/definitions/SetIpAllowlistIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "SetIpAllowlistResult": {
      "type": "object"
    },
    "SetOrganizationFeatureIntent": {
      "type": "object",
      "properties": {
        "name": {
          "$ref": "#/definitions/FeatureName",
          "description": "Name of the feature to set"
        },
        "value": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional value for the feature. Will override existing values if feature is already set."
        }
      },
      "required": ["name", "value"]
    },
    "SetOrganizationFeatureRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_SET_ORGANIZATION_FEATURE"]
        },
        "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": "#/definitions/SetOrganizationFeatureIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "SetOrganizationFeatureResult": {
      "type": "object",
      "properties": {
        "features": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Feature"
          },
          "description": "Resulting list of organization features."
        }
      },
      "required": ["features"]
    },
    "SetPaymentMethodIntent": {
      "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."
        }
      },
      "required": [
        "number",
        "cvv",
        "expiryMonth",
        "expiryYear",
        "cardHolderEmail",
        "cardHolderName"
      ]
    },
    "SetPaymentMethodIntentV2": {
      "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."
        }
      },
      "required": ["paymentMethodId", "cardHolderEmail", "cardHolderName"]
    },
    "SetPaymentMethodResult": {
      "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."
        }
      },
      "required": ["lastFour", "cardHolderName", "cardHolderEmail"]
    },
    "SignRawPayloadIntent": {
      "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": "#/definitions/PayloadEncoding",
          "description": "Encoding of the `payload` string. Turnkey uses this information to convert `payload` into bytes with the correct decoder (e.g. hex, utf8)."
        },
        "hashFunction": {
          "$ref": "#/definitions/HashFunction",
          "description": "Hash function to apply to payload bytes before signing. This field must be set to HASH_FUNCTION_NOT_APPLICABLE for EdDSA/ed25519 signature requests; configurable payload hashing is not supported by RFC 8032."
        }
      },
      "required": ["privateKeyId", "payload", "encoding", "hashFunction"]
    },
    "SignRawPayloadIntentV2": {
      "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": "#/definitions/PayloadEncoding",
          "description": "Encoding of the `payload` string. Turnkey uses this information to convert `payload` into bytes with the correct decoder (e.g. hex, utf8)."
        },
        "hashFunction": {
          "$ref": "#/definitions/HashFunction",
          "description": "Hash function to apply to payload bytes before signing. This field must be set to HASH_FUNCTION_NOT_APPLICABLE for EdDSA/ed25519 signature requests; configurable payload hashing is not supported by RFC 8032."
        }
      },
      "required": ["signWith", "payload", "encoding", "hashFunction"]
    },
    "SignRawPayloadRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2"]
        },
        "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": "#/definitions/SignRawPayloadIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "SignRawPayloadResult": {
      "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."
        }
      },
      "required": ["r", "s", "v"]
    },
    "SignRawPayloadsIntent": {
      "type": "object",
      "properties": {
        "signWith": {
          "type": "string",
          "description": "A Wallet account address, Private Key address, or Private Key identifier."
        },
        "payloads": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of raw unsigned payloads to be signed."
        },
        "encoding": {
          "$ref": "#/definitions/PayloadEncoding",
          "description": "Encoding of the `payload` string. Turnkey uses this information to convert `payload` into bytes with the correct decoder (e.g. hex, utf8)."
        },
        "hashFunction": {
          "$ref": "#/definitions/HashFunction",
          "description": "Hash function to apply to payload bytes before signing. This field must be set to HASH_FUNCTION_NOT_APPLICABLE for EdDSA/ed25519 signature requests; configurable payload hashing is not supported by RFC 8032."
        }
      },
      "required": ["signWith", "payloads", "encoding", "hashFunction"]
    },
    "SignRawPayloadsRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_SIGN_RAW_PAYLOADS"]
        },
        "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": "#/definitions/SignRawPayloadsIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "SignRawPayloadsResult": {
      "type": "object",
      "properties": {
        "signatures": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SignRawPayloadResult"
          }
        }
      }
    },
    "SignTransactionIntent": {
      "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": "#/definitions/TransactionType"
        }
      },
      "required": ["privateKeyId", "unsignedTransaction", "type"]
    },
    "SignTransactionIntentV2": {
      "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": "#/definitions/TransactionType"
        }
      },
      "required": ["signWith", "unsignedTransaction", "type"]
    },
    "SignTransactionRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_SIGN_TRANSACTION_V2"]
        },
        "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": "#/definitions/SignTransactionIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "SignTransactionResult": {
      "type": "object",
      "properties": {
        "signedTransaction": {
          "type": "string"
        }
      },
      "required": ["signedTransaction"]
    },
    "SignupUsage": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "phoneNumber": {
          "type": "string",
          "x-nullable": true
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParamsV2"
          }
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParamsV2"
          }
        },
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProviderParams"
          }
        }
      }
    },
    "SignupUsageV2": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "phoneNumber": {
          "type": "string",
          "x-nullable": true
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParamsV2"
          }
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParamsV2"
          }
        },
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProviderParamsV2"
          }
        }
      }
    },
    "SimpleClientExtensionResults": {
      "type": "object",
      "properties": {
        "appid": {
          "type": "boolean",
          "x-nullable": true
        },
        "appidExclude": {
          "type": "boolean",
          "x-nullable": true
        },
        "credProps": {
          "$ref": "#/definitions/CredPropsAuthenticationExtensionsClientOutputs",
          "x-nullable": true
        }
      }
    },
    "SmartContractInterfaceType": {
      "type": "string",
      "enum": [
        "SMART_CONTRACT_INTERFACE_TYPE_ETHEREUM",
        "SMART_CONTRACT_INTERFACE_TYPE_SOLANA"
      ]
    },
    "SmsCustomizationParams": {
      "type": "object",
      "properties": {
        "template": {
          "type": "string",
          "x-nullable": true,
          "description": "Template containing references to .OtpCode i.e Your OTP is {{.OtpCode}}"
        }
      }
    },
    "SolSendTransactionIntent": {
      "type": "object",
      "properties": {
        "unsignedTransaction": {
          "type": "string",
          "description": "Base64-encoded serialized unsigned Solana transaction"
        },
        "signWith": {
          "type": "string",
          "description": "A wallet or private key address to sign with. This does not support private key IDs."
        },
        "sponsor": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether to sponsor this transaction via Gas Station."
        },
        "caip2": {
          "type": "string",
          "enum": [
            "solana:mainnet",
            "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
            "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d",
            "solana:devnet",
            "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
            "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG"
          ],
          "description": "CAIP-2 chain ID (e.g., 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet). Human-readable Solana aliases ('solana:mainnet', 'solana:devnet') are also accepted and normalized to canonical CAIP-2 values."
        },
        "recentBlockhash": {
          "type": "string",
          "x-nullable": true,
          "description": "user-provided blockhash for replay protection / deadline control. If omitted and sponsor=true, we fetch a fresh blockhash during execution"
        }
      },
      "required": ["unsignedTransaction", "signWith", "caip2"]
    },
    "SolSendTransactionIntentV2": {
      "type": "object",
      "properties": {
        "unsignedTransaction": {
          "type": "string",
          "description": "Hex-encoded serialized unsigned Solana transaction (full wire format with zeroed signature placeholders)"
        },
        "signWiths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Ordered Solana signer addresses Turnkey signs with. Between 1 and 16 signers. For sponsored transactions this must list every required signer of the transaction in transaction order."
        },
        "sponsor": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether to sponsor this transaction via Gas Station."
        },
        "caip2": {
          "type": "string",
          "enum": [
            "solana:mainnet",
            "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
            "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d",
            "solana:devnet",
            "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1",
            "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG"
          ],
          "description": "CAIP-2 chain ID (e.g., 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana mainnet). Human-readable Solana aliases ('solana:mainnet', 'solana:devnet') are also accepted and normalized to canonical CAIP-2 values."
        },
        "recentBlockhash": {
          "type": "string",
          "x-nullable": true,
          "description": "User-provided blockhash for replay protection / deadline control. If provided, it is used as-is, including for sponsored transactions (the transaction is only broadcastable while the blockhash is current). If omitted and sponsor=true, a fresh blockhash is fetched during execution."
        }
      },
      "required": ["unsignedTransaction", "signWiths", "caip2"]
    },
    "SolSendTransactionRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_SOL_SEND_TRANSACTION_V2"]
        },
        "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": "#/definitions/SolSendTransactionIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "SolSendTransactionResult": {
      "type": "object",
      "properties": {
        "sendTransactionStatusId": {
          "type": "string",
          "description": "The send_transaction_status ID associated with the transaction submission"
        }
      },
      "required": ["sendTransactionStatusId"]
    },
    "SolSendTransactionResultV2": {
      "type": "object",
      "properties": {
        "sendTransactionStatusId": {
          "type": "string",
          "description": "The send_transaction_status ID associated with the transaction submission"
        }
      },
      "required": ["sendTransactionStatusId"]
    },
    "SolTransactionHistoryItem": {
      "type": "object",
      "properties": {
        "signature": {
          "type": "string",
          "description": "Solana transaction signature."
        },
        "block": {
          "$ref": "#/definitions/TransactionHistoryBlock",
          "description": "Block metadata for the transaction."
        },
        "status": {
          "type": "string",
          "enum": ["CONFIRMED", "FINALIZED"],
          "description": "Transaction confirmation status."
        },
        "origin": {
          "type": "string",
          "description": "Origin of the transaction. Examples include TURNKEY."
        },
        "feePayer": {
          "type": "string",
          "description": "Address that paid the Solana transaction fee. This is the first signer in the transaction message."
        },
        "signers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SolTransactionHistorySigner"
          },
          "description": "Addresses that signed the Solana transaction, in message order."
        },
        "fee": {
          "$ref": "#/definitions/TransactionHistoryFee",
          "description": "Transaction fee information."
        },
        "transfers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/TransactionHistoryTransfer"
          },
          "description": "Asset transfers associated with the transaction."
        },
        "turnkey": {
          "$ref": "#/definitions/TransactionHistoryTurnkey",
          "description": "Turnkey-specific metadata for transactions originated by Turnkey."
        }
      },
      "required": [
        "signature",
        "block",
        "status",
        "origin",
        "feePayer",
        "signers",
        "fee",
        "transfers"
      ]
    },
    "SolTransactionHistorySigner": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "description": "Address of the Solana transaction signer."
        },
        "writable": {
          "type": "boolean",
          "description": "Whether the signer account was writable in the Solana transaction message."
        }
      },
      "required": ["address", "writable"]
    },
    "SolanaConfig": {
      "type": "object",
      "properties": {
        "rentPrefundEnabled": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether Solana rent prefunding is enabled for the organization. When omitted, the existing rent-prefund state is left unchanged."
        }
      }
    },
    "SolanaFailureDetails": {
      "type": "object",
      "properties": {
        "source": {
          "type": "string",
          "description": "Where the Solana failure occurred, such as simulation or preflight."
        },
        "rpcCode": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "The Solana JSON-RPC error code, if available."
        },
        "rpcMessage": {
          "type": "string",
          "x-nullable": true,
          "description": "The Solana JSON-RPC error message, if available."
        },
        "transactionErrorJson": {
          "type": "string",
          "x-nullable": true,
          "description": "The raw Solana transaction error object serialized as JSON, if available."
        },
        "logs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Program logs returned by Solana simulation or preflight, if available."
        },
        "unitsConsumed": {
          "type": "string",
          "format": "uint64",
          "x-nullable": true,
          "description": "Compute units consumed during simulation or preflight, if available."
        },
        "innerInstructionsJson": {
          "type": "string",
          "x-nullable": true,
          "description": "The raw Solana inner instructions payload serialized as JSON, if available."
        }
      }
    },
    "SolanaSendTransactionStatus": {
      "type": "object",
      "properties": {
        "signature": {
          "type": "string",
          "x-nullable": true,
          "description": "The Solana transaction signature, if available."
        }
      }
    },
    "SparkClaimLeaf": {
      "type": "object",
      "properties": {
        "leafId": {
          "type": "string",
          "description": "Leaf identifier (UUID)."
        },
        "ciphertext": {
          "type": "string",
          "description": "ECIES ciphertext (hex-encoded) containing the inbound transfer secret. Decrypted inside the enclave using the wallet's Identity key."
        },
        "senderSignature": {
          "type": "string",
          "description": "Hex-encoded 64-byte compact ECDSA signature binding (leaf_id, transfer_id, ciphertext) to the sender's identity key. Verified inside the enclave before decryption."
        }
      },
      "required": ["leafId", "ciphertext", "senderSignature"]
    },
    "SparkClaimPackage": {
      "type": "object",
      "properties": {
        "leaves": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkClaimLeaf"
          },
          "description": "Leaves being claimed."
        },
        "threshold": {
          "type": "integer",
          "format": "int64",
          "description": "Shamir threshold for reconstructing the per-leaf claim secret."
        },
        "operatorRecipients": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkOperatorRecipient"
          },
          "description": "Operators that will receive Shamir shares."
        },
        "transferId": {
          "type": "string",
          "description": "Spark transfer identifier (UUID). Used together with each leaf's sender_signature to verify the sender bound this ciphertext to this transfer."
        },
        "senderIdentityPublicKey": {
          "type": "string",
          "description": "Sender's compressed secp256k1 identity public key (hex-encoded, 33 bytes). Used to verify the per-leaf sender_signature fields."
        }
      },
      "required": [
        "leaves",
        "threshold",
        "operatorRecipients",
        "transferId",
        "senderIdentityPublicKey"
      ]
    },
    "SparkClaimTransferIntent": {
      "type": "object",
      "properties": {
        "signWith": {
          "type": "string",
          "description": "A Spark wallet account address identifying the wallet."
        },
        "claim": {
          "$ref": "#/definitions/SparkClaimPackage",
          "description": "Claim package parameters."
        }
      },
      "required": ["signWith", "claim"]
    },
    "SparkClaimTransferRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_SPARK_CLAIM_TRANSFER"]
        },
        "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": "#/definitions/SparkClaimTransferIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "SparkClaimTransferResult": {
      "type": "object",
      "properties": {
        "operatorPackages": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkEncryptedOperatorPackage"
          },
          "description": "Per-operator ECIES-encrypted packages."
        },
        "newLeafPublicKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkLeafPublicKey"
          },
          "description": "Newly-derived SigningLeaf public keys, one per leaf, in input order."
        }
      },
      "required": ["operatorPackages", "newLeafPublicKeys"]
    },
    "SparkDepositDerivation": {
      "type": "object"
    },
    "SparkEncryptedOperatorPackage": {
      "type": "object",
      "properties": {
        "operatorId": {
          "type": "string",
          "description": "Spark operator identifier (UUID)."
        },
        "encryptedPackage": {
          "type": "string",
          "description": "ECIES ciphertext (hex-encoded) opaque to Turnkey after emission."
        }
      },
      "required": ["operatorId", "encryptedPackage"]
    },
    "SparkFrostCommitment": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "FROST participant identifier, hex-encoded (32-byte scalar)."
        },
        "hiding": {
          "type": "string",
          "description": "Hiding commitment D, hex-encoded compressed secp256k1 point."
        },
        "binding": {
          "type": "string",
          "description": "Binding commitment E, hex-encoded compressed secp256k1 point."
        }
      },
      "required": ["id", "hiding", "binding"]
    },
    "SparkHtlcPreimageDerivation": {
      "type": "object"
    },
    "SparkIdentityDerivation": {
      "type": "object"
    },
    "SparkKeyDerivation": {
      "type": "object",
      "properties": {
        "identity": {
          "$ref": "#/definitions/SparkIdentityDerivation",
          "description": "Spark identity key derivation."
        },
        "signingLeaf": {
          "$ref": "#/definitions/SparkSigningLeafDerivation",
          "description": "Spark signing leaf key derivation, identified by leaf ID."
        },
        "deposit": {
          "$ref": "#/definitions/SparkDepositDerivation",
          "description": "Spark deposit key derivation."
        },
        "staticDeposit": {
          "$ref": "#/definitions/SparkStaticDepositDerivation",
          "description": "Spark static deposit key derivation, identified by index."
        },
        "htlcPreimage": {
          "$ref": "#/definitions/SparkHtlcPreimageDerivation",
          "description": "Spark HTLC preimage key derivation."
        }
      }
    },
    "SparkLeafPublicKey": {
      "type": "object",
      "properties": {
        "leafId": {
          "type": "string",
          "description": "The Spark leaf_id this public key was derived for."
        },
        "publicKey": {
          "type": "string",
          "description": "Hex-encoded compressed secp256k1 point (33 bytes) for the SigningLeaf derivation at leaf_id."
        }
      },
      "required": ["leafId", "publicKey"]
    },
    "SparkLightningReceivePackage": {
      "type": "object",
      "properties": {
        "threshold": {
          "type": "integer",
          "format": "int64",
          "description": "Feldman VSS threshold for reconstructing the preimage."
        },
        "operatorRecipients": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkOperatorRecipient"
          },
          "description": "Operators that will receive Feldman shares of the preimage. Order must match the operators' numeric IDs in the Spark operator config - share index is the 1-based position in this list."
        }
      },
      "required": ["threshold", "operatorRecipients"]
    },
    "SparkOperatorRecipient": {
      "type": "object",
      "properties": {
        "operatorId": {
          "type": "string",
          "description": "Spark operator identifier (UUID)."
        },
        "encryptionPublicKey": {
          "type": "string",
          "description": "Operator's ECIES encryption pubkey (hex-encoded compressed secp256k1 point)."
        }
      },
      "required": ["operatorId", "encryptionPublicKey"]
    },
    "SparkPartialSignature": {
      "type": "object",
      "properties": {
        "signatureShare": {
          "type": "string",
          "description": "Hex-encoded FROST partial signature."
        },
        "hiding": {
          "type": "string",
          "description": "Turnkey's hiding commitment D (hex-encoded compressed secp256k1 point). Forward to the Spark Operator."
        },
        "binding": {
          "type": "string",
          "description": "Turnkey's binding commitment E (hex-encoded compressed secp256k1 point). Forward to the Spark Operator."
        }
      },
      "required": ["signatureShare", "hiding", "binding"]
    },
    "SparkPrepareLightningReceiveIntent": {
      "type": "object",
      "properties": {
        "signWith": {
          "type": "string",
          "description": "A Spark wallet account address identifying the wallet."
        },
        "lightningReceive": {
          "$ref": "#/definitions/SparkLightningReceivePackage",
          "description": "Lightning receive package parameters: threshold and operator recipients."
        }
      },
      "required": ["signWith", "lightningReceive"]
    },
    "SparkPrepareLightningReceiveRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_SPARK_PREPARE_LIGHTNING_RECEIVE"]
        },
        "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": "#/definitions/SparkPrepareLightningReceiveIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "SparkPrepareLightningReceiveResult": {
      "type": "object",
      "properties": {
        "operatorPackages": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkEncryptedOperatorPackage"
          },
          "description": "Per-operator ECIES-encrypted Feldman share packages."
        },
        "paymentHash": {
          "type": "string",
          "description": "Hex-encoded SHA256(preimage). Forward to the Lightning node."
        }
      },
      "required": ["operatorPackages", "paymentHash"]
    },
    "SparkPrepareTransferIntent": {
      "type": "object",
      "properties": {
        "signWith": {
          "type": "string",
          "description": "A Spark wallet account address identifying the wallet."
        },
        "transfer": {
          "$ref": "#/definitions/SparkTransferPackage",
          "description": "Transfer package parameters for HD key tweak splitting."
        }
      },
      "required": ["signWith", "transfer"]
    },
    "SparkPrepareTransferRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_SPARK_PREPARE_TRANSFER"]
        },
        "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": "#/definitions/SparkPrepareTransferIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "SparkPrepareTransferResult": {
      "type": "object",
      "properties": {
        "operatorPackages": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkEncryptedOperatorPackage"
          },
          "description": "Per-operator ECIES-encrypted packages."
        },
        "transferUserSignature": {
          "type": "string",
          "description": "Hex-encoded ECDSA-DER signature of the TransferPackage signing payload, signed with the wallet's IDENTITY key."
        },
        "newLeafPublicKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkLeafPublicKey"
          },
          "description": "Newly-derived SigningLeaf public keys, one per leaf, in input order."
        }
      },
      "required": [
        "operatorPackages",
        "transferUserSignature",
        "newLeafPublicKeys"
      ]
    },
    "SparkSignFrostIntent": {
      "type": "object",
      "properties": {
        "signWith": {
          "type": "string",
          "description": "A Spark wallet account address identifying the wallet to sign with."
        },
        "signatures": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkSignatureRequest"
          },
          "description": "Batched sign requests. Each produces a partial signature plus Turnkey's public commitments."
        }
      },
      "required": ["signWith", "signatures"]
    },
    "SparkSignFrostRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_SPARK_SIGN_FROST"]
        },
        "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": "#/definitions/SparkSignFrostIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "SparkSignFrostResult": {
      "type": "object",
      "properties": {
        "signatures": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkPartialSignature"
          },
          "description": "Partial signatures plus Turnkey commitments, one per request, in order."
        }
      },
      "required": ["signatures"]
    },
    "SparkSignatureRequest": {
      "type": "object",
      "properties": {
        "derivation": {
          "$ref": "#/definitions/SparkKeyDerivation",
          "description": "Which key to sign with."
        },
        "message": {
          "type": "string",
          "description": "Hex-encoded 32-byte sighash to sign."
        },
        "verifyingKey": {
          "type": "string",
          "description": "Aggregate group verifying key (hex-encoded compressed secp256k1 point), computed as P_ops + P_user. Bound into the nonce HMAC."
        },
        "operatorCommitments": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkFrostCommitment"
          },
          "description": "Commitments for every non-Turnkey participant. MUST NOT include an entry under Turnkey's identifier. Bound into the nonce HMAC."
        },
        "adaptorPublicKey": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional adaptor point T (hex-encoded 33-byte compressed secp256k1 pubkey). When set, Turnkey produces a Schnorr adaptor pre-signature with the FROST challenge bound to `R+T` (where `R` is the aggregate group nonce commitment from FROST). The party holding the discrete log `t` completes the pre-sig to a valid BIP-340 signature by adding `t` (or `-t`, for parity) to the signature scalar `s`. This is primarily used by Spark leaves-swap and other adaptor-bound flows; absent or empty leads to plain FROST signing (the typical case)."
        }
      },
      "required": [
        "derivation",
        "message",
        "verifyingKey",
        "operatorCommitments"
      ]
    },
    "SparkSigningLeafDerivation": {
      "type": "object",
      "properties": {
        "leafId": {
          "type": "string",
          "description": "Unique identifier for the Spark signing leaf."
        }
      },
      "required": ["leafId"]
    },
    "SparkStaticDepositDerivation": {
      "type": "object",
      "properties": {
        "index": {
          "type": "integer",
          "format": "int64",
          "description": "Index used to derive the static deposit key."
        }
      },
      "required": ["index"]
    },
    "SparkTransferLeaf": {
      "type": "object",
      "properties": {
        "leafId": {
          "type": "string",
          "description": "Leaf identifier (UUID)."
        },
        "oldLeafDerivation": {
          "$ref": "#/definitions/SparkKeyDerivation",
          "description": "Derivation for the existing (pre-transfer) leaf key. Always a SigningLeaf derivation."
        },
        "newLeafDerivation": {
          "$ref": "#/definitions/SparkKeyDerivation",
          "description": "Derivation for the new (post-transfer) leaf key. Always a SigningLeaf derivation. The enclave ECIES-encrypts this private key to receiver_public_key as the per-leaf secret_cipher; HD-derived rather than random so the sender can re-derive on retry (Turnkey's enclave is stateless)."
        },
        "refundSignature": {
          "type": "string",
          "x-nullable": true,
          "description": "Client-produced CPFP refund signature (hex-encoded), passed through verbatim into the per-operator SendLeafKeyTweak. Empty omits the field from the operator package."
        },
        "directRefundSignature": {
          "type": "string",
          "x-nullable": true,
          "description": "Client-produced direct refund signature (hex-encoded). Passed through verbatim."
        },
        "directFromCpfpRefundSignature": {
          "type": "string",
          "x-nullable": true,
          "description": "Client-produced direct-from-CPFP refund signature (hex-encoded). Passed through verbatim."
        }
      },
      "required": ["leafId", "oldLeafDerivation", "newLeafDerivation"]
    },
    "SparkTransferPackage": {
      "type": "object",
      "properties": {
        "transferId": {
          "type": "string",
          "description": "Spark transfer identifier (UUID)."
        },
        "leaves": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkTransferLeaf"
          },
          "description": "Leaves being transferred."
        },
        "threshold": {
          "type": "integer",
          "format": "int64",
          "description": "Feldman VSS threshold for reconstructing the per-leaf tweak scalar."
        },
        "operatorRecipients": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/SparkOperatorRecipient"
          },
          "description": "Operators that will receive Feldman shares of the per-leaf tweak. Order must match the operators' numeric IDs in the Spark operator config - share index is the 1-based position in this list."
        },
        "receiverPublicKey": {
          "type": "string",
          "description": "Recipient's identity pubkey (hex-encoded compressed secp256k1 point). Each leaf's new_priv is ECIES-encrypted to this key and embedded in the per-operator package for claim-time delivery."
        }
      },
      "required": [
        "transferId",
        "leaves",
        "threshold",
        "operatorRecipients",
        "receiverPublicKey"
      ]
    },
    "StampLoginIntent": {
      "type": "object",
      "properties": {
        "publicKey": {
          "type": "string",
          "description": "Client-side public key generated by the user, which will be conditionally added to org data based on the passkey stamp associated with this request"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used."
        },
        "invalidateExisting": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Invalidate all other previously generated Login API keys"
        },
        "sessionProfileId": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional session profile ID to specify which Session Profile to use for this login. If not provided, the default read/write session will be used."
        }
      },
      "required": ["publicKey"]
    },
    "StampLoginRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_STAMP_LOGIN"]
        },
        "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": "#/definitions/StampLoginIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "StampLoginResult": {
      "type": "object",
      "properties": {
        "session": {
          "type": "string",
          "description": "Signed JWT containing an expiry, public key, session type, user id, and organization id"
        }
      },
      "required": ["session"]
    },
    "Status": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Any"
          }
        }
      }
    },
    "SwapError": {
      "type": "object",
      "properties": {
        "reason": {
          "type": "string",
          "description": "Stable machine-readable failure reason. One of ORIGIN_TRANSACTION_FAILED or PROVIDER_FILL_FAILED."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description of the swap failure."
        },
        "originTxError": {
          "$ref": "#/definitions/TxError",
          "x-nullable": true,
          "description": "Origin-chain transaction failure details, present when reason is ORIGIN_TRANSACTION_FAILED and details are available."
        },
        "providerReason": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional detail from the swap provider about why the fill did not complete, when available."
        }
      },
      "required": ["reason", "message"]
    },
    "SwapQuote": {
      "type": "object",
      "properties": {
        "quoteId": {
          "type": "string",
          "description": "Identifier for this provider quote. Pass this value to execute_swap_v2 to bind execution to this exact quote. The signer is derived from the quote; clients do not resupply sign_with on execute."
        },
        "provider": {
          "type": "string",
          "description": "Swap provider that produced this quote."
        },
        "outputAmount": {
          "type": "string",
          "description": "Estimated base-unit amount of the output asset."
        },
        "minOutputAmount": {
          "type": "string",
          "description": "Minimum acceptable base-unit amount of the output asset after slippage."
        },
        "expiresAt": {
          "type": "string",
          "description": "Quote expiration as a millisecond epoch string."
        },
        "slippageBps": {
          "type": "string",
          "x-nullable": true,
          "description": "Effective total slippage tolerance in basis points for this quote, taken from the provider response when present. When the request omits input slippage_bps, the provider may calculate this value."
        },
        "clientFeeBps": {
          "type": "string",
          "description": "Client fee in basis points applied for this pair. Informational only; already reflected in output_amount and min_output_amount."
        },
        "estimatedTimeSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Provider-estimated completion time in seconds, when available."
        }
      },
      "required": [
        "quoteId",
        "provider",
        "outputAmount",
        "minOutputAmount",
        "expiresAt",
        "clientFeeBps"
      ]
    },
    "SwapRefund": {
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "description": "CAIP-19 asset returned by the swap provider after a failed cross-chain fill."
        },
        "amount": {
          "type": "string",
          "description": "Base-unit amount returned by the swap provider."
        },
        "txHash": {
          "type": "string",
          "x-nullable": true,
          "description": "Transaction that delivered the provider refund, when applicable."
        }
      },
      "required": ["asset", "amount"]
    },
    "TagType": {
      "type": "string",
      "enum": ["TAG_TYPE_USER", "TAG_TYPE_PRIVATE_KEY"]
    },
    "TokenUsage": {
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/UsageType",
          "description": "Type of token usage"
        },
        "tokenId": {
          "type": "string",
          "description": "Unique identifier for the verification token"
        },
        "signup": {
          "$ref": "#/definitions/SignupUsage"
        },
        "login": {
          "$ref": "#/definitions/LoginUsage"
        },
        "signupV2": {
          "$ref": "#/definitions/SignupUsageV2"
        }
      },
      "required": ["type", "tokenId"]
    },
    "TransactionHistoryAsset": {
      "type": "object",
      "properties": {
        "caip19": {
          "type": "string",
          "description": "The CAIP-19 asset identifier."
        },
        "symbol": {
          "type": "string",
          "description": "The asset symbol."
        },
        "name": {
          "type": "string",
          "description": "The asset name."
        },
        "decimals": {
          "type": "integer",
          "format": "int32",
          "description": "The number of decimals this asset uses."
        }
      },
      "required": ["caip19", "symbol", "name", "decimals"]
    },
    "TransactionHistoryBlock": {
      "type": "object",
      "properties": {
        "number": {
          "type": "string",
          "format": "int64",
          "description": "Block number containing the transaction."
        },
        "hash": {
          "type": "string",
          "description": "Block hash containing the transaction."
        },
        "timestamp": {
          "type": "string",
          "description": "Block timestamp in RFC 3339 format."
        }
      },
      "required": ["number", "hash", "timestamp"]
    },
    "TransactionHistoryDisplay": {
      "type": "object",
      "properties": {
        "crypto": {
          "type": "string",
          "description": "Normalized crypto value for display purposes only. Do not do any arithmetic or calculations with these, as the results could be imprecise."
        },
        "usd": {
          "type": "string",
          "description": "USD value for display purposes only. Do not do any arithmetic or calculations with these, as the results could be imprecise."
        }
      }
    },
    "TransactionHistoryFee": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "string",
          "description": "Fee amount in atomic units."
        },
        "caip19": {
          "type": "string",
          "description": "The CAIP-19 asset identifier."
        }
      },
      "required": ["amount", "caip19"]
    },
    "TransactionHistoryTransfer": {
      "type": "object",
      "properties": {
        "direction": {
          "type": "string",
          "enum": ["IN", "OUT"],
          "description": "Transfer direction relative to the queried address."
        },
        "asset": {
          "$ref": "#/definitions/TransactionHistoryAsset",
          "description": "Asset metadata for the transfer. Omitted when the asset cannot be determined."
        },
        "amount": {
          "type": "string",
          "description": "Transfer amount in atomic units."
        },
        "counterparty": {
          "type": "string",
          "description": "Counterparty address for the transfer."
        },
        "display": {
          "$ref": "#/definitions/TransactionHistoryDisplay",
          "description": "Normalized transfer values for display purposes only. Do not do any arithmetic or calculations with these, as the results could be imprecise. Use the amount field instead."
        }
      },
      "required": ["direction", "amount", "counterparty"]
    },
    "TransactionHistoryTurnkey": {
      "type": "object",
      "properties": {
        "sponsored": {
          "type": "boolean",
          "description": "Whether the transaction fee was sponsored by Turnkey."
        },
        "activityFingerprint": {
          "type": "string",
          "description": "Fingerprint of the Turnkey activity that submitted the transaction."
        },
        "submittedAt": {
          "type": "string",
          "description": "Timestamp when Turnkey submitted the transaction, in RFC 3339 format."
        }
      },
      "required": ["sponsored"]
    },
    "TransactionType": {
      "type": "string",
      "enum": [
        "TRANSACTION_TYPE_ETHEREUM",
        "TRANSACTION_TYPE_SOLANA",
        "TRANSACTION_TYPE_TRON",
        "TRANSACTION_TYPE_BITCOIN",
        "TRANSACTION_TYPE_TEMPO"
      ]
    },
    "TransportEncryptionSuite": {
      "type": "string",
      "enum": ["TRANSPORT_ENCRYPTION_SUITE_ENCLAVE_ENCRYPT_V1"]
    },
    "TvcApp": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique Identifier for this TVC App."
        },
        "organizationId": {
          "type": "string",
          "description": "Unique Identifier of the Organization for this TVC App"
        },
        "name": {
          "type": "string",
          "description": "Name for this TVC App."
        },
        "quorumPublicKey": {
          "type": "string",
          "description": "Public key for the Quorum Key associated with this TVC App"
        },
        "manifestSet": {
          "$ref": "#/definitions/TvcOperatorSet",
          "description": "Manifest Set (people who can approve manifests)"
        },
        "shareSet": {
          "$ref": "#/definitions/TvcOperatorSet",
          "description": "Share Set (people who have a share of the Quorum Key)"
        },
        "enableEgress": {
          "type": "boolean",
          "description": "Whether or not this TVC App has network egress enabled."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "liveDeploymentId": {
          "type": "string",
          "x-nullable": true,
          "description": "The deployment currently designated to receive traffic. Null if no deployment for this app is deployed."
        },
        "publicDomain": {
          "type": "string",
          "description": "The public domain for ingress to this TVC App (in the format \"app-\u003cID\u003e.turnkey.cloud\")."
        },
        "enableDebugModeDeployments": {
          "type": "boolean",
          "description": "Whether this app permits debug-mode deployments. Set at app creation via CreateTvcAppIntent.enable_debug_mode_deployments and never updated thereafter. Debug-mode deployments expose logs and emit zero'd attestation PCRs, so remote attestation cannot succeed. The app's quorum key is therefore considered permanently insecure once enabled — a new app with a fresh quorum key must be created to return to a secure posture."
        }
      },
      "required": [
        "id",
        "organizationId",
        "name",
        "quorumPublicKey",
        "manifestSet",
        "shareSet",
        "enableEgress",
        "createdAt",
        "updatedAt",
        "publicDomain",
        "enableDebugModeDeployments"
      ]
    },
    "TvcContainerSpec": {
      "type": "object",
      "properties": {
        "containerUrl": {
          "type": "string",
          "description": "The URL for this container image."
        },
        "path": {
          "type": "string",
          "description": "The path (in-container) to the executable binary."
        },
        "args": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The arguments to pass to the executable."
        },
        "hasPullSecret": {
          "type": "boolean",
          "description": "Whether or not this container requires a pull secret to access."
        },
        "healthCheckType": {
          "$ref": "#/definitions/TvcHealthCheckType",
          "description": "The type of health check to perform against this executable."
        },
        "healthCheckPort": {
          "type": "integer",
          "format": "int64",
          "description": "The port to use for health checks against this executable."
        },
        "publicIngressPort": {
          "type": "integer",
          "format": "int64",
          "description": "The port to use for public ingress to this executable."
        }
      },
      "required": [
        "containerUrl",
        "path",
        "args",
        "hasPullSecret",
        "healthCheckType",
        "healthCheckPort",
        "publicIngressPort"
      ]
    },
    "TvcDeployment": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique Identifier for this TVC Deployment."
        },
        "organizationId": {
          "type": "string",
          "description": "Unique Identifier of the Organization for this TVC Deployment"
        },
        "appId": {
          "type": "string",
          "description": "Unique Identifier of the TVC App for this deployment"
        },
        "manifestSet": {
          "$ref": "#/definitions/TvcOperatorSet",
          "description": "Set of TVC operators who can approve this deployment"
        },
        "shareSet": {
          "$ref": "#/definitions/TvcOperatorSet",
          "description": "Set of TVC operators who have a share of the Quorum Key"
        },
        "manifest": {
          "$ref": "#/definitions/TvcManifest",
          "description": "The manifest used for this deployment"
        },
        "manifestApprovals": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/TvcOperatorApproval"
          },
          "description": "List of operator approvals for this manifest"
        },
        "qosVersion": {
          "type": "string",
          "description": "QOS Version used for this deployment"
        },
        "pivotContainer": {
          "$ref": "#/definitions/TvcContainerSpec",
          "description": "The pivot container spec for this deployment"
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "delete": {
          "type": "boolean",
          "description": "Whether or not the user wants this deployment deleted from the cluster."
        },
        "debugMode": {
          "type": "boolean",
          "description": "Whether this deployment is running in debug mode. Debug-mode deployments expose enclave logs and cannot be remotely attested."
        }
      },
      "required": [
        "id",
        "organizationId",
        "appId",
        "manifestSet",
        "shareSet",
        "manifest",
        "manifestApprovals",
        "qosVersion",
        "pivotContainer",
        "createdAt",
        "updatedAt",
        "delete",
        "debugMode"
      ]
    },
    "TvcDeploymentDebugLogEntry": {
      "type": "object",
      "properties": {
        "line": {
          "$ref": "#/definitions/LogLine",
          "description": "Application log line with its platform timestamp."
        },
        "replicaLabel": {
          "type": "string",
          "description": "Public replica label that produced this log line, for example 'replica 2/3'."
        }
      },
      "required": ["line", "replicaLabel"]
    },
    "TvcHealthCheckType": {
      "type": "string",
      "enum": ["TVC_HEALTH_CHECK_TYPE_HTTP", "TVC_HEALTH_CHECK_TYPE_GRPC"]
    },
    "TvcManifest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique Identifier for this TVC Manifest."
        },
        "manifest": {
          "type": "string",
          "format": "byte",
          "description": "The manifest content (raw UTF-8 JSON bytes)"
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": ["id", "manifest", "createdAt", "updatedAt"]
    },
    "TvcManifestApproval": {
      "type": "object",
      "properties": {
        "operatorId": {
          "type": "string",
          "description": "Unique identifier of the operator providing this approval"
        },
        "signature": {
          "type": "string",
          "description": "Signature from the operator approving the manifest"
        }
      },
      "required": ["operatorId", "signature"]
    },
    "TvcOperator": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique Identifier for this TVC Operator."
        },
        "name": {
          "type": "string",
          "description": "Name of this TVC Operator."
        },
        "publicKey": {
          "type": "string",
          "description": "Public key for this TVC Operator."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": ["id", "name", "publicKey", "createdAt", "updatedAt"]
    },
    "TvcOperatorApproval": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique ID for this approval"
        },
        "manifestId": {
          "type": "string",
          "description": "Unique Identifier of the TVC Manifest being approved"
        },
        "operator": {
          "$ref": "#/definitions/TvcOperator",
          "description": "The TVC Operator who made this approval"
        },
        "approval": {
          "type": "string",
          "format": "byte",
          "description": "Signature of the operator over the deployment manifest"
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": [
        "id",
        "manifestId",
        "operator",
        "approval",
        "createdAt",
        "updatedAt"
      ]
    },
    "TvcOperatorParams": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name for this new operator"
        },
        "publicKey": {
          "type": "string",
          "description": "Public key for this operator"
        }
      },
      "required": ["name", "publicKey"]
    },
    "TvcOperatorSet": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique Identifier for this TVC Operator Set."
        },
        "name": {
          "type": "string",
          "description": "Name of this TVC Operator Set."
        },
        "organizationId": {
          "type": "string",
          "description": "Unique Identifier of the Organization for this TVC Operator Set"
        },
        "operators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/TvcOperator"
          },
          "description": "List of TVC Operators in this set"
        },
        "threshold": {
          "type": "integer",
          "format": "int64",
          "description": "Threshold number of operators required for quorum."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": [
        "id",
        "name",
        "organizationId",
        "operators",
        "threshold",
        "createdAt",
        "updatedAt"
      ]
    },
    "TvcOperatorSetParams": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Short description for this new operator set"
        },
        "newOperators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/TvcOperatorParams"
          },
          "description": "Operators to create as part of this new operator set"
        },
        "existingOperatorIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Existing operators to use as part of this new operator set"
        },
        "threshold": {
          "type": "integer",
          "format": "int64",
          "description": "The threshold of operators needed to reach consensus in this new Operator Set"
        }
      },
      "required": ["name", "threshold"]
    },
    "TxError": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string",
          "description": "Human-readable error message describing what went wrong."
        },
        "revertChain": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RevertChainEntry"
          },
          "description": "Chain of revert errors from nested contract calls, ordered from outermost to innermost."
        },
        "solana": {
          "$ref": "#/definitions/SolanaFailureDetails",
          "x-nullable": true,
          "description": "Solana-specific failure details for simulation or preflight errors, if available."
        },
        "eth": {
          "$ref": "#/definitions/EthFailureDetails",
          "x-nullable": true,
          "description": "Ethereum-specific failure details, if available."
        }
      }
    },
    "UnknownRevertError": {
      "type": "object",
      "properties": {
        "selector": {
          "type": "string",
          "x-nullable": true,
          "description": "The 4-byte error selector, if available."
        },
        "data": {
          "type": "string",
          "x-nullable": true,
          "description": "The raw error data, hex-encoded."
        }
      }
    },
    "UpdateAllowedOriginsIntent": {
      "type": "object",
      "properties": {
        "allowedOrigins": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Additional origins requests are allowed from besides Turnkey origins"
        }
      },
      "required": ["allowedOrigins"]
    },
    "UpdateAllowedOriginsResult": {
      "type": "object"
    },
    "UpdateAuthProxyConfigIntent": {
      "type": "object",
      "properties": {
        "allowedOrigins": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Updated list of allowed origins for CORS."
        },
        "allowedAuthMethods": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Updated list of allowed proxy authentication methods."
        },
        "sendFromEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Custom 'from' address for auth-related emails."
        },
        "replyToEmailAddress": {
          "type": "string",
          "x-nullable": true,
          "description": "Custom reply-to address for auth-related emails."
        },
        "emailAuthTemplateId": {
          "type": "string",
          "x-nullable": true,
          "description": "Template ID for email-auth messages."
        },
        "otpTemplateId": {
          "type": "string",
          "x-nullable": true,
          "description": "Template ID for OTP SMS messages."
        },
        "emailCustomizationParams": {
          "$ref": "#/definitions/EmailCustomizationParams",
          "x-nullable": true,
          "description": "Optional parameters for customizing emails. If not provided, the default email will be used."
        },
        "smsCustomizationParams": {
          "$ref": "#/definitions/SmsCustomizationParams",
          "x-nullable": true,
          "description": "Overrides for auth-related SMS content."
        },
        "walletKitSettings": {
          "$ref": "#/definitions/WalletKitSettingsParams",
          "x-nullable": true,
          "description": "Overrides for react wallet kit related settings."
        },
        "otpExpirationSeconds": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "OTP code lifetime in seconds."
        },
        "verificationTokenExpirationSeconds": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "Verification-token lifetime in seconds."
        },
        "sessionExpirationSeconds": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "Session lifetime in seconds."
        },
        "otpAlphanumeric": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Enable alphanumeric OTP codes."
        },
        "otpLength": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "Desired OTP code length (6–9)."
        },
        "sendFromEmailSenderName": {
          "type": "string",
          "x-nullable": true,
          "description": "Custom 'from' email sender for auth-related emails."
        },
        "verificationTokenRequiredForGetAccountPii": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Verification token required for get account with PII (email/phone number). Default false."
        },
        "socialLinkingClientIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Whitelisted OAuth client IDs for social account linking. When a user authenticates via a social provider with an email matching an existing account, the accounts will be linked if the client ID is in this list and the issuer is considered a trusted provider."
        },
        "captchaEnabled": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether captcha verification is required on sign up \u0026 otp init."
        }
      }
    },
    "UpdateAuthProxyConfigResult": {
      "type": "object",
      "properties": {
        "configId": {
          "type": "string",
          "description": "Unique identifier for a given User. (representing the turnkey signer user id)"
        }
      }
    },
    "UpdateFiatOnRampCredentialIntent": {
      "type": "object",
      "properties": {
        "fiatOnrampCredentialId": {
          "type": "string",
          "description": "The ID of the fiat on-ramp credential to update"
        },
        "onrampProvider": {
          "$ref": "#/definitions/FiatOnRampProvider",
          "description": "The fiat on-ramp provider"
        },
        "projectId": {
          "type": "string",
          "x-nullable": true,
          "description": "Project ID for the on-ramp provider. Some providers, like Coinbase, require this additional identifier."
        },
        "publishableApiKey": {
          "type": "string",
          "description": "Publishable API key for the on-ramp provider"
        },
        "encryptedSecretApiKey": {
          "type": "string",
          "description": "Secret API key for the on-ramp provider encrypted to our on-ramp encryption public key"
        },
        "encryptedPrivateApiKey": {
          "type": "string",
          "x-nullable": true,
          "description": "Private API key for the on-ramp provider encrypted to our on-ramp encryption public key. Some providers, like Coinbase, require this additional key."
        }
      },
      "required": [
        "fiatOnrampCredentialId",
        "onrampProvider",
        "publishableApiKey",
        "encryptedSecretApiKey"
      ]
    },
    "UpdateFiatOnRampCredentialRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_FIAT_ON_RAMP_CREDENTIAL"]
        },
        "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": "#/definitions/UpdateFiatOnRampCredentialIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateFiatOnRampCredentialResult": {
      "type": "object",
      "properties": {
        "fiatOnRampCredentialId": {
          "type": "string",
          "description": "Unique identifier of the Fiat On-Ramp credential that was updated"
        }
      },
      "required": ["fiatOnRampCredentialId"]
    },
    "UpdateMfaPolicyIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "The ID of the User to update the MFA Policy for."
        },
        "mfaPolicyId": {
          "type": "string",
          "description": "Unique identifier for a given MFA Policy."
        },
        "mfaPolicyName": {
          "type": "string",
          "x-nullable": true,
          "description": "Human-readable name for a Policy."
        },
        "condition": {
          "type": "string",
          "x-nullable": true,
          "description": "A condition expression that evaluates to true or false, determining when this MFA policy applies."
        },
        "requiredAuthenticationMethods": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/RequiredAuthenticationMethodParams"
          },
          "description": "An ordered list of authentication requirements. Each requirement must be satisfied sequentially to complete MFA."
        },
        "order": {
          "type": "integer",
          "format": "int64",
          "x-nullable": true,
          "description": "The order in which this MFA policy is evaluated, starting from 0, relative to other MFA policies. Lower order values are evaluated first."
        },
        "notes": {
          "type": "string",
          "x-nullable": true,
          "description": "Notes for an MFA Policy."
        }
      },
      "required": ["userId", "mfaPolicyId"]
    },
    "UpdateMfaPolicyRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_MFA_POLICY"]
        },
        "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": "#/definitions/UpdateMfaPolicyIntent"
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateMfaPolicyResult": {
      "type": "object",
      "properties": {
        "mfaPolicyId": {
          "type": "string",
          "description": "Unique identifier for a given MFA Policy."
        }
      },
      "required": ["mfaPolicyId"]
    },
    "UpdateOauth2CredentialIntent": {
      "type": "object",
      "properties": {
        "oauth2CredentialId": {
          "type": "string",
          "description": "The ID of the OAuth 2.0 credential to update"
        },
        "provider": {
          "$ref": "#/definitions/Oauth2Provider",
          "description": "The OAuth 2.0 provider"
        },
        "clientId": {
          "type": "string",
          "description": "The Client ID issued by the OAuth 2.0 provider"
        },
        "encryptedClientSecret": {
          "type": "string",
          "description": "The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key"
        }
      },
      "required": [
        "oauth2CredentialId",
        "provider",
        "clientId",
        "encryptedClientSecret"
      ]
    },
    "UpdateOauth2CredentialRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_OAUTH2_CREDENTIAL"]
        },
        "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": "#/definitions/UpdateOauth2CredentialIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateOauth2CredentialResult": {
      "type": "object",
      "properties": {
        "oauth2CredentialId": {
          "type": "string",
          "description": "Unique identifier of the OAuth 2.0 credential that was updated"
        }
      },
      "required": ["oauth2CredentialId"]
    },
    "UpdateOrganizationNameIntent": {
      "type": "object",
      "properties": {
        "organizationName": {
          "type": "string",
          "description": "New name for the Organization."
        }
      },
      "required": ["organizationName"]
    },
    "UpdateOrganizationNameRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_ORGANIZATION_NAME"]
        },
        "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": "#/definitions/UpdateOrganizationNameIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateOrganizationNameResult": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for the Organization."
        },
        "organizationName": {
          "type": "string",
          "description": "The updated organization name."
        }
      },
      "required": ["organizationId", "organizationName"]
    },
    "UpdatePaymentMethodIntent": {
      "type": "object",
      "properties": {
        "paymentEmail": {
          "type": "string",
          "description": "The email that will receive invoices for the payment method."
        }
      },
      "required": ["paymentEmail"]
    },
    "UpdatePaymentMethodResult": {
      "type": "object",
      "properties": {
        "paymentEmail": {
          "type": "string",
          "description": "The email address associated with the payment method."
        }
      },
      "required": ["paymentEmail"]
    },
    "UpdatePolicyIntent": {
      "type": "object",
      "properties": {
        "policyId": {
          "type": "string",
          "description": "Unique identifier for a given Policy."
        },
        "policyName": {
          "type": "string",
          "x-nullable": true,
          "description": "Human-readable name for a Policy."
        },
        "policyEffect": {
          "$ref": "#/definitions/Effect",
          "x-nullable": true,
          "description": "The instruction to DENY or ALLOW an activity (optional)."
        },
        "policyCondition": {
          "type": "string",
          "x-nullable": true,
          "description": "The condition expression that triggers the Effect (optional)."
        },
        "policyConsensus": {
          "type": "string",
          "x-nullable": true,
          "description": "The consensus expression that triggers the Effect (optional)."
        },
        "policyNotes": {
          "type": "string",
          "x-nullable": true,
          "description": "Accompanying notes for a Policy (optional)."
        }
      },
      "required": ["policyId"]
    },
    "UpdatePolicyIntentV2": {
      "type": "object",
      "properties": {
        "policyId": {
          "type": "string",
          "description": "Unique identifier for a given Policy."
        },
        "policyName": {
          "type": "string",
          "x-nullable": true,
          "description": "Human-readable name for a Policy."
        },
        "policyEffect": {
          "$ref": "#/definitions/Effect",
          "x-nullable": true,
          "description": "The instruction to DENY or ALLOW an activity (optional)."
        },
        "policyCondition": {
          "type": "string",
          "x-nullable": true,
          "description": "The condition expression that triggers the Effect (optional)."
        },
        "policyConsensus": {
          "type": "string",
          "x-nullable": true,
          "description": "The consensus expression that triggers the Effect (optional)."
        },
        "policyNotes": {
          "type": "string",
          "x-nullable": true,
          "description": "Accompanying notes for a Policy (optional)."
        },
        "time": {
          "type": "string",
          "x-nullable": true,
          "description": "The time expression that triggers the Effect (optional)."
        }
      },
      "required": ["policyId"]
    },
    "UpdatePolicyRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_POLICY_V2"]
        },
        "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": "#/definitions/UpdatePolicyIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdatePolicyResult": {
      "type": "object",
      "properties": {
        "policyId": {
          "type": "string",
          "description": "Unique identifier for a given Policy."
        }
      },
      "required": ["policyId"]
    },
    "UpdatePolicyResultV2": {
      "type": "object",
      "properties": {
        "policyId": {
          "type": "string",
          "description": "Unique identifier for a given Policy."
        }
      },
      "required": ["policyId"]
    },
    "UpdatePrivateKeyTagIntent": {
      "type": "object",
      "properties": {
        "privateKeyTagId": {
          "type": "string",
          "description": "Unique identifier for a given Private Key Tag."
        },
        "newPrivateKeyTagName": {
          "type": "string",
          "x-nullable": true,
          "description": "The new, human-readable name for the tag with the given ID."
        },
        "addPrivateKeyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Private Keys IDs to add this tag to."
        },
        "removePrivateKeyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Private Key IDs to remove this tag from."
        }
      },
      "required": ["privateKeyTagId", "addPrivateKeyIds", "removePrivateKeyIds"]
    },
    "UpdatePrivateKeyTagRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG"]
        },
        "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": "#/definitions/UpdatePrivateKeyTagIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdatePrivateKeyTagResult": {
      "type": "object",
      "properties": {
        "privateKeyTagId": {
          "type": "string",
          "description": "Unique identifier for a given Private Key Tag."
        }
      },
      "required": ["privateKeyTagId"]
    },
    "UpdateRootQuorumIntent": {
      "type": "object",
      "properties": {
        "threshold": {
          "type": "integer",
          "format": "int32",
          "description": "The threshold of unique approvals to reach quorum."
        },
        "userIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The unique identifiers of users who comprise the quorum set."
        }
      },
      "required": ["threshold", "userIds"]
    },
    "UpdateRootQuorumRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_ROOT_QUORUM"]
        },
        "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": "#/definitions/UpdateRootQuorumIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateRootQuorumResult": {
      "type": "object"
    },
    "UpdateTvcAppLiveDeploymentIntent": {
      "type": "object",
      "properties": {
        "deploymentId": {
          "type": "string",
          "description": "The unique identifier of the TVC deployment to set as live for the app."
        }
      },
      "required": ["deploymentId"]
    },
    "UpdateTvcAppLiveDeploymentRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_TVC_APP_LIVE_DEPLOYMENT"]
        },
        "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": "#/definitions/UpdateTvcAppLiveDeploymentIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateTvcAppLiveDeploymentResult": {
      "type": "object"
    },
    "UpdateUserEmailIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        },
        "userEmail": {
          "type": "string",
          "description": "The user's email address. Setting this to an empty string will remove the user's email."
        },
        "verificationToken": {
          "type": "string",
          "x-nullable": true,
          "description": "Signed JWT containing a unique id, expiry, verification type, contact"
        }
      },
      "required": ["userId", "userEmail"]
    },
    "UpdateUserEmailRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_USER_EMAIL"]
        },
        "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": "#/definitions/UpdateUserEmailIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateUserEmailResult": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "Unique identifier of the User whose email was updated."
        }
      },
      "required": ["userId"]
    },
    "UpdateUserIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        },
        "userName": {
          "type": "string",
          "x-nullable": true,
          "description": "Human-readable name for a User."
        },
        "userEmail": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's email address."
        },
        "userTagIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "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."
        },
        "userPhoneNumber": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's phone number in E.164 format e.g. +13214567890"
        }
      },
      "required": ["userId"]
    },
    "UpdateUserNameIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        },
        "userName": {
          "type": "string",
          "description": "Human-readable name for a User."
        }
      },
      "required": ["userId", "userName"]
    },
    "UpdateUserNameRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_USER_NAME"]
        },
        "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": "#/definitions/UpdateUserNameIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateUserNameResult": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "Unique identifier of the User whose name was updated."
        }
      },
      "required": ["userId"]
    },
    "UpdateUserPhoneNumberIntent": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "Unique identifier for a given User."
        },
        "userPhoneNumber": {
          "type": "string",
          "description": "The user's phone number in E.164 format e.g. +13214567890. Setting this to an empty string will remove the user's phone number."
        },
        "verificationToken": {
          "type": "string",
          "x-nullable": true,
          "description": "Signed JWT containing a unique id, expiry, verification type, contact"
        }
      },
      "required": ["userId", "userPhoneNumber"]
    },
    "UpdateUserPhoneNumberRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_USER_PHONE_NUMBER"]
        },
        "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": "#/definitions/UpdateUserPhoneNumberIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateUserPhoneNumberResult": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "Unique identifier of the User whose phone number was updated."
        }
      },
      "required": ["userId"]
    },
    "UpdateUserRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_USER"]
        },
        "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": "#/definitions/UpdateUserIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateUserResult": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string",
          "description": "A User ID."
        }
      },
      "required": ["userId"]
    },
    "UpdateUserTagIntent": {
      "type": "object",
      "properties": {
        "userTagId": {
          "type": "string",
          "description": "Unique identifier for a given User Tag."
        },
        "newUserTagName": {
          "type": "string",
          "x-nullable": true,
          "description": "The new, human-readable name for the tag with the given ID."
        },
        "addUserIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User IDs to add this tag to."
        },
        "removeUserIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User IDs to remove this tag from."
        }
      },
      "required": ["userTagId", "addUserIds", "removeUserIds"]
    },
    "UpdateUserTagRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_USER_TAG"]
        },
        "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": "#/definitions/UpdateUserTagIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateUserTagResult": {
      "type": "object",
      "properties": {
        "userTagId": {
          "type": "string",
          "description": "Unique identifier for a given User Tag."
        }
      },
      "required": ["userTagId"]
    },
    "UpdateWalletAccountNameIntent": {
      "type": "object",
      "properties": {
        "walletAccountId": {
          "type": "string",
          "description": "Unique identifier for a given Wallet Account."
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for this Wallet Account."
        }
      },
      "required": ["walletAccountId", "name"]
    },
    "UpdateWalletAccountNameResult": {
      "type": "object",
      "properties": {
        "walletAccountId": {
          "type": "string",
          "description": "Unique identifier for a given Wallet Account."
        }
      },
      "required": ["walletAccountId"]
    },
    "UpdateWalletIntent": {
      "type": "object",
      "properties": {
        "walletId": {
          "type": "string",
          "description": "Unique identifier for a given Wallet."
        },
        "walletName": {
          "type": "string",
          "description": "Human-readable name for a Wallet."
        }
      },
      "required": ["walletId"]
    },
    "UpdateWalletRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_WALLET"]
        },
        "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": "#/definitions/UpdateWalletIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateWalletResult": {
      "type": "object",
      "properties": {
        "walletId": {
          "type": "string",
          "description": "A Wallet ID."
        }
      },
      "required": ["walletId"]
    },
    "UpdateWebhookEndpointIntent": {
      "type": "object",
      "properties": {
        "endpointId": {
          "type": "string",
          "description": "Unique identifier of the webhook endpoint to update."
        },
        "url": {
          "type": "string",
          "x-nullable": true,
          "description": "Updated destination URL for webhook delivery."
        },
        "name": {
          "type": "string",
          "x-nullable": true,
          "description": "Updated human-readable name for this webhook endpoint."
        },
        "isActive": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether this webhook endpoint is active."
        }
      },
      "required": ["endpointId"]
    },
    "UpdateWebhookEndpointRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPDATE_WEBHOOK_ENDPOINT"]
        },
        "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": "#/definitions/UpdateWebhookEndpointIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpdateWebhookEndpointResult": {
      "type": "object",
      "properties": {
        "endpointId": {
          "type": "string",
          "description": "Unique identifier of the updated webhook endpoint."
        },
        "webhookEndpoint": {
          "$ref": "#/definitions/WebhookEndpointData",
          "description": "The updated webhook endpoint data."
        }
      },
      "required": ["endpointId", "webhookEndpoint"]
    },
    "UpsertGasUsageConfigIntent": {
      "type": "object",
      "properties": {
        "orgWindowLimitUsd": {
          "type": "string",
          "description": "Gas sponsorship USD limit for the billing organization window."
        },
        "subOrgWindowLimitUsd": {
          "type": "string",
          "description": "Gas sponsorship USD limit for sub-organizations under the billing organization."
        },
        "windowDurationMinutes": {
          "type": "string",
          "description": "Rolling sponsorship window duration, expressed in minutes. This value can't exceed 30 days (43200 minutes)."
        },
        "enabled": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether gas sponsorship is enabled for the organization."
        },
        "solanaConfig": {
          "$ref": "#/definitions/SolanaConfig",
          "description": "Optional Solana sponsorship settings. If omitted, the existing Solana sponsorship state is left unchanged."
        }
      },
      "required": [
        "orgWindowLimitUsd",
        "subOrgWindowLimitUsd",
        "windowDurationMinutes"
      ]
    },
    "UpsertGasUsageConfigResult": {
      "type": "object",
      "properties": {
        "gasUsageConfigId": {
          "type": "string",
          "description": "Unique identifier for the gas usage configuration that was created or updated."
        }
      },
      "required": ["gasUsageConfigId"]
    },
    "UpsertSwapConfigIntent": {
      "type": "object",
      "properties": {
        "feeReceiverWalletAddress": {
          "type": "string",
          "x-nullable": true
        },
        "feeBps": {
          "type": "string",
          "x-nullable": true,
          "description": "Client fee in basis points applied to swaps; used for all pairs unless stable_fee_bps is set."
        },
        "stableFeeBps": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional Enterprise-only override applied when both swap assets are stablecoins; falls back to fee_bps when unset. Non-Enterprise orgs may only set fee_bps."
        }
      }
    },
    "UpsertSwapConfigRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_UPSERT_SWAP_CONFIG"]
        },
        "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": "#/definitions/UpsertSwapConfigIntent"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "UpsertSwapConfigResult": {
      "type": "object",
      "properties": {
        "feeReceiverWalletAddress": {
          "type": "string",
          "x-nullable": true
        },
        "feeBps": {
          "type": "string",
          "x-nullable": true
        },
        "stableFeeBps": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "UsageType": {
      "type": "string",
      "enum": ["USAGE_TYPE_SIGNUP", "USAGE_TYPE_LOGIN"]
    },
    "User": {
      "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",
          "x-nullable": true,
          "description": "The user's email address."
        },
        "userPhoneNumber": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's phone number in E.164 format e.g. +13214567890"
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/Authenticator"
          },
          "description": "A list of Authenticator parameters."
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKey"
          },
          "description": "A list of API Key parameters. This field, if not needed, should be an empty array in your request body."
        },
        "userTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User Tag IDs."
        },
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProvider"
          },
          "description": "A list of Oauth Providers."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "mfaPolicies": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/MfaPolicy"
          },
          "description": "A list of MFA Policies that define multi-factor authentication requirements for this user."
        }
      },
      "required": [
        "userId",
        "userName",
        "authenticators",
        "apiKeys",
        "userTags",
        "oauthProviders",
        "createdAt",
        "updatedAt",
        "mfaPolicies"
      ]
    },
    "UserParams": {
      "type": "object",
      "properties": {
        "userName": {
          "type": "string",
          "description": "Human-readable name for a User."
        },
        "userEmail": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's email address."
        },
        "accessType": {
          "$ref": "#/definitions/AccessType",
          "description": "The User's permissible access method(s)."
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParams"
          },
          "description": "A list of API Key parameters. This field, if not needed, should be an empty array in your request body."
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParams"
          },
          "description": "A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body."
        },
        "userTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User Tag IDs. This field, if not needed, should be an empty array in your request body."
        }
      },
      "required": [
        "userName",
        "accessType",
        "apiKeys",
        "authenticators",
        "userTags"
      ]
    },
    "UserParamsV2": {
      "type": "object",
      "properties": {
        "userName": {
          "type": "string",
          "description": "Human-readable name for a User."
        },
        "userEmail": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's email address."
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParams"
          },
          "description": "A list of API Key parameters. This field, if not needed, should be an empty array in your request body."
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParamsV2"
          },
          "description": "A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body."
        },
        "userTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User Tag IDs. This field, if not needed, should be an empty array in your request body."
        }
      },
      "required": ["userName", "apiKeys", "authenticators", "userTags"]
    },
    "UserParamsV3": {
      "type": "object",
      "properties": {
        "userName": {
          "type": "string",
          "description": "Human-readable name for a User."
        },
        "userEmail": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's email address."
        },
        "userPhoneNumber": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's phone number in E.164 format e.g. +13214567890"
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParamsV2"
          },
          "description": "A list of API Key parameters. This field, if not needed, should be an empty array in your request body."
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParamsV2"
          },
          "description": "A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body."
        },
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProviderParams"
          },
          "description": "A list of Oauth providers. This field, if not needed, should be an empty array in your request body."
        },
        "userTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User Tag IDs. This field, if not needed, should be an empty array in your request body."
        }
      },
      "required": [
        "userName",
        "apiKeys",
        "authenticators",
        "oauthProviders",
        "userTags"
      ]
    },
    "UserParamsV4": {
      "type": "object",
      "properties": {
        "userName": {
          "type": "string",
          "description": "Human-readable name for a User."
        },
        "userEmail": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's email address."
        },
        "userPhoneNumber": {
          "type": "string",
          "x-nullable": true,
          "description": "The user's phone number in E.164 format e.g. +13214567890"
        },
        "apiKeys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/ApiKeyParamsV2"
          },
          "description": "A list of API Key parameters. This field, if not needed, should be an empty array in your request body."
        },
        "authenticators": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/AuthenticatorParamsV2"
          },
          "description": "A list of Authenticator parameters. This field, if not needed, should be an empty array in your request body."
        },
        "oauthProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/OauthProviderParamsV2"
          },
          "description": "A list of Oauth providers. This field, if not needed, should be an empty array in your request body."
        },
        "userTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of User Tag IDs. This field, if not needed, should be an empty array in your request body."
        }
      },
      "required": [
        "userName",
        "apiKeys",
        "authenticators",
        "oauthProviders",
        "userTags"
      ]
    },
    "ValidateTvcImageRequest": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "pivotContainerImageUrl": {
          "type": "string",
          "description": "URL of the container image."
        },
        "pivotContainerEncryptedPullSecret": {
          "type": "string",
          "x-nullable": true,
          "description": "HPKE-encrypted pull secret for private images."
        }
      },
      "required": ["organizationId", "pivotContainerImageUrl"]
    },
    "ValidateTvcImageResponse": {
      "type": "object",
      "properties": {
        "resolvedImageDigest": {
          "type": "string"
        }
      }
    },
    "VelocityControlAggregation": {
      "type": "object",
      "properties": {
        "method": {
          "$ref": "#/definitions/VelocityControlAggregationMethod",
          "description": "Method that aggregates matching data points."
        },
        "operator": {
          "$ref": "#/definitions/VelocityControlAggregationOperator",
          "description": "Comparison between the aggregate and the threshold."
        },
        "threshold": {
          "type": "string",
          "description": "Non-negative base-10 decimal string with at most 38 total digits and 18 fractional digits."
        },
        "window": {
          "$ref": "#/definitions/VelocityControlAggregationWindow",
          "description": "Time window for the aggregation."
        },
        "groupBy": {
          "$ref": "#/definitions/VelocityControlAggregationGroupBy",
          "description": "Scope that partitions matching data before aggregation."
        }
      },
      "required": ["method", "operator", "threshold", "window", "groupBy"]
    },
    "VelocityControlAggregationGroupBy": {
      "type": "object",
      "properties": {
        "organization": {
          "$ref": "#/definitions/VelocityControlAggregationGroupByOrganization",
          "description": "Uses one shared bucket for the Organization."
        },
        "user": {
          "$ref": "#/definitions/VelocityControlAggregationGroupByUser",
          "description": "Uses one bucket for each User."
        },
        "wallet": {
          "$ref": "#/definitions/VelocityControlAggregationGroupByWallet",
          "description": "Uses one bucket for each Wallet."
        }
      }
    },
    "VelocityControlAggregationGroupByOrganization": {
      "type": "object"
    },
    "VelocityControlAggregationGroupByUser": {
      "type": "object"
    },
    "VelocityControlAggregationGroupByWallet": {
      "type": "object"
    },
    "VelocityControlAggregationMethod": {
      "type": "string",
      "enum": [
        "VELOCITY_CONTROL_AGGREGATION_METHOD_SUM",
        "VELOCITY_CONTROL_AGGREGATION_METHOD_COUNT"
      ]
    },
    "VelocityControlAggregationOperator": {
      "type": "string",
      "enum": [
        "VELOCITY_CONTROL_AGGREGATION_OPERATOR_LESS_THAN",
        "VELOCITY_CONTROL_AGGREGATION_OPERATOR_LESS_THAN_OR_EQUAL",
        "VELOCITY_CONTROL_AGGREGATION_OPERATOR_EQUAL",
        "VELOCITY_CONTROL_AGGREGATION_OPERATOR_GREATER_THAN_OR_EQUAL",
        "VELOCITY_CONTROL_AGGREGATION_OPERATOR_GREATER_THAN"
      ]
    },
    "VelocityControlAggregationWindow": {
      "type": "object",
      "properties": {
        "rolling": {
          "$ref": "#/definitions/VelocityControlAggregationWindowRolling",
          "description": "Uses a rolling time window."
        },
        "infinite": {
          "$ref": "#/definitions/VelocityControlAggregationWindowInfinite",
          "description": "Uses all matching data without a time limit."
        }
      }
    },
    "VelocityControlAggregationWindowInfinite": {
      "type": "object"
    },
    "VelocityControlAggregationWindowRolling": {
      "type": "object",
      "properties": {
        "duration": {
          "type": "string",
          "description": "Duration of the rolling window, in seconds, as a base-10 integer string."
        }
      },
      "required": ["duration"]
    },
    "VelocityControlDataSource": {
      "type": "object",
      "properties": {
        "chainAssetTransfer": {
          "$ref": "#/definitions/VelocityControlDataSourceChainAssetTransfer",
          "description": "Uses transfers of the listed on-chain assets as input data."
        },
        "activityExecution": {
          "$ref": "#/definitions/VelocityControlDataSourceActivityExecution",
          "description": "Uses executed Turnkey activities as input data."
        }
      }
    },
    "VelocityControlDataSourceActivityExecution": {
      "type": "object",
      "properties": {
        "filter": {
          "$ref": "#/definitions/VelocityControlDataSourceActivityExecutionFilter",
          "x-nullable": true,
          "description": "Filters activity executions by type."
        }
      }
    },
    "VelocityControlDataSourceActivityExecutionFilter": {
      "type": "object",
      "properties": {
        "activity": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/VelocityControlDataSourceFilterActivity"
          },
          "description": "Activity types whose executions are included."
        }
      }
    },
    "VelocityControlDataSourceChainAssetTransfer": {
      "type": "object",
      "properties": {
        "definition": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/VelocityControlDataSourceChainAssetTransferDefinition"
          },
          "description": "Assets whose transfers are included in the data source."
        },
        "filter": {
          "$ref": "#/definitions/VelocityControlDataSourceChainAssetTransferFilter",
          "x-nullable": true,
          "description": "Filters asset transfers by activity type."
        },
        "phase": {
          "$ref": "#/definitions/VelocityControlDataSourcePhase",
          "x-nullable": true,
          "description": "Selects when to measure an asset transfer."
        }
      },
      "required": ["definition"]
    },
    "VelocityControlDataSourceChainAssetTransferDefinition": {
      "type": "object",
      "properties": {
        "caip19": {
          "type": "string",
          "description": "CAIP-19 identifier for the asset."
        },
        "decimals": {
          "type": "string",
          "description": "Base-10 integer string from 0 through 255 that specifies the number of decimal places for the asset."
        }
      },
      "required": ["caip19", "decimals"]
    },
    "VelocityControlDataSourceChainAssetTransferFilter": {
      "type": "object",
      "properties": {
        "activity": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/VelocityControlDataSourceFilterActivity"
          },
          "description": "Activity types whose asset transfers are included."
        }
      }
    },
    "VelocityControlDataSourceFilterActivity": {
      "type": "object",
      "properties": {
        "activityType": {
          "type": "string",
          "description": "Name of an activity type to include, such as `ACTIVITY_TYPE_SOL_SEND_TRANSACTION`."
        }
      },
      "required": ["activityType"]
    },
    "VelocityControlDataSourcePhase": {
      "type": "object",
      "properties": {
        "signature": {
          "$ref": "#/definitions/VelocityControlDataSourcePhaseSignature",
          "description": "Measures the transfer when Turnkey signs the transaction and returns it to the user."
        },
        "submission": {
          "$ref": "#/definitions/VelocityControlDataSourcePhaseSubmission",
          "description": "Reserved for future use. Measures the transfer after the transaction lands on chain."
        }
      }
    },
    "VelocityControlDataSourcePhaseSignature": {
      "type": "object"
    },
    "VelocityControlDataSourcePhaseSubmission": {
      "type": "object"
    },
    "VerifyOtpIntent": {
      "type": "object",
      "properties": {
        "otpId": {
          "type": "string",
          "description": "ID representing the result of an init OTP activity."
        },
        "otpCode": {
          "type": "string",
          "description": "OTP sent out to a user's contact (email or SMS)"
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the verification token is valid for. If not provided, a default of 1 hour will be used. Maximum value is 86400 seconds (24 hours)"
        },
        "publicKey": {
          "type": "string",
          "x-nullable": true,
          "description": "Client-side public key generated by the user, which will be added to the JWT response and verified in subsequent requests via a client proof signature"
        }
      },
      "required": ["otpId", "otpCode"]
    },
    "VerifyOtpIntentV2": {
      "type": "object",
      "properties": {
        "otpId": {
          "type": "string",
          "description": "UUID representing an OTP flow. A new UUID is created for each init OTP activity."
        },
        "encryptedOtpBundle": {
          "type": "string",
          "description": "Encrypted bundle containing the OTP code and a client-generated public key. Turnkey's secure enclaves will decrypt this bundle, verify the OTP code, and issue a new Verification Token. Encrypted using the target encryption key provided in the INIT_OTP activity result."
        },
        "expirationSeconds": {
          "type": "string",
          "x-nullable": true,
          "description": "Expiration window (in seconds) indicating how long the verification token is valid for. If not provided, a default of 1 hour will be used. Maximum value is 86400 seconds (24 hours)"
        }
      },
      "required": ["otpId", "encryptedOtpBundle"]
    },
    "VerifyOtpRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["ACTIVITY_TYPE_VERIFY_OTP_V2"]
        },
        "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": "#/definitions/VerifyOtpIntentV2"
        },
        "generateAppProofs": {
          "type": "boolean",
          "x-nullable": true
        }
      },
      "required": ["type", "timestampMs", "organizationId", "parameters"]
    },
    "VerifyOtpResult": {
      "type": "object",
      "properties": {
        "verificationToken": {
          "type": "string",
          "description": "Signed JWT containing a unique id, expiry, verification type, contact. Verification status of a user is updated when the token is consumed (in OTP_LOGIN requests)"
        }
      },
      "required": ["verificationToken"]
    },
    "Vote": {
      "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": "#/definitions/User",
          "description": "Web and/or API user within your Organization."
        },
        "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": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": [
        "id",
        "userId",
        "user",
        "activityId",
        "selection",
        "message",
        "publicKey",
        "signature",
        "scheme",
        "createdAt"
      ]
    },
    "Wallet": {
      "type": "object",
      "properties": {
        "walletId": {
          "type": "string",
          "description": "Unique identifier for a given Wallet."
        },
        "walletName": {
          "type": "string",
          "description": "Human-readable name for a Wallet."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "exported": {
          "type": "boolean",
          "description": "True when a given Wallet is exported, false otherwise."
        },
        "imported": {
          "type": "boolean",
          "description": "True when a given Wallet is imported, false otherwise."
        }
      },
      "required": [
        "walletId",
        "walletName",
        "createdAt",
        "updatedAt",
        "exported",
        "imported"
      ]
    },
    "WalletAccount": {
      "type": "object",
      "properties": {
        "walletAccountId": {
          "type": "string",
          "description": "Unique identifier for a given Wallet Account."
        },
        "organizationId": {
          "type": "string",
          "description": "The Organization the Account belongs to."
        },
        "walletId": {
          "type": "string",
          "description": "The Wallet the Account was derived from."
        },
        "curve": {
          "$ref": "#/definitions/Curve",
          "description": "Cryptographic curve used to generate the Account."
        },
        "pathFormat": {
          "$ref": "#/definitions/PathFormat",
          "description": "Path format used to generate the Account."
        },
        "path": {
          "type": "string",
          "description": "Path used to generate the Account."
        },
        "addressFormat": {
          "$ref": "#/definitions/AddressFormat",
          "description": "Address format used to generate the Account."
        },
        "address": {
          "type": "string",
          "description": "Address generated using the Wallet seed and Account parameters."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "publicKey": {
          "type": "string",
          "x-nullable": true,
          "description": "The public component of this wallet account's underlying cryptographic key pair."
        },
        "walletDetails": {
          "$ref": "#/definitions/Wallet",
          "x-nullable": true,
          "description": "Wallet details for this account. This is only present when include_wallet_details=true."
        },
        "name": {
          "type": "string",
          "x-nullable": true,
          "description": "Human-readable name for this Wallet Account, unique within the organization."
        },
        "caip2Prefix": {
          "type": "string",
          "x-nullable": true,
          "description": "The CAIP-2 namespace shared by the chains supported by this account (for example, 'eip155' or 'solana')."
        }
      },
      "required": [
        "walletAccountId",
        "organizationId",
        "walletId",
        "curve",
        "pathFormat",
        "path",
        "addressFormat",
        "address",
        "createdAt",
        "updatedAt"
      ]
    },
    "WalletAccountParams": {
      "type": "object",
      "properties": {
        "curve": {
          "$ref": "#/definitions/Curve",
          "description": "Cryptographic curve used to generate a wallet Account."
        },
        "pathFormat": {
          "$ref": "#/definitions/PathFormat",
          "description": "Path format used to generate a wallet Account."
        },
        "path": {
          "type": "string",
          "description": "Path used to generate a wallet Account."
        },
        "addressFormat": {
          "$ref": "#/definitions/AddressFormat",
          "description": "Address format used to generate a wallet Acccount."
        },
        "name": {
          "type": "string",
          "x-nullable": true,
          "description": "Optional human-readable name for the account."
        }
      },
      "required": ["curve", "pathFormat", "path", "addressFormat"]
    },
    "WalletKitSettingsParams": {
      "type": "object",
      "properties": {
        "enabledSocialProviders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of enabled social login providers (e.g., 'apple', 'google', 'facebook')",
          "title": "Enabled Social Providers"
        },
        "oauthClientIds": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Mapping of social login providers to their Oauth client IDs.",
          "title": "Oauth Client IDs"
        },
        "oauthRedirectUrl": {
          "type": "string",
          "description": "Oauth redirect URL to be used for social login flows.",
          "title": "Oauth Redirect URL"
        }
      }
    },
    "WalletParams": {
      "type": "object",
      "properties": {
        "walletName": {
          "type": "string",
          "description": "Human-readable name for a Wallet."
        },
        "accounts": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/WalletAccountParams"
          },
          "description": "A list of wallet Accounts. This field, if not needed, should be an empty array in your request body."
        },
        "mnemonicLength": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true,
          "description": "Length of mnemonic to generate the Wallet seed. Defaults to 12. Accepted values: 12, 15, 18, 21, 24."
        }
      },
      "required": ["walletName", "accounts"]
    },
    "WalletResult": {
      "type": "object",
      "properties": {
        "walletId": {
          "type": "string"
        },
        "addresses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of account addresses."
        }
      },
      "required": ["walletId", "addresses"]
    },
    "WebAuthnStamp": {
      "type": "object",
      "properties": {
        "credentialId": {
          "type": "string",
          "description": "A base64 url encoded Unique identifier for a given credential."
        },
        "clientDataJson": {
          "type": "string",
          "description": "A base64 encoded payload containing metadata about the signing context and the challenge."
        },
        "authenticatorData": {
          "type": "string",
          "description": "A base64 encoded payload containing metadata about the authenticator."
        },
        "signature": {
          "type": "string",
          "description": "The base64 url encoded signature bytes contained within the WebAuthn assertion response."
        }
      },
      "required": [
        "credentialId",
        "clientDataJson",
        "authenticatorData",
        "signature"
      ]
    },
    "WebhookEndpointData": {
      "type": "object",
      "properties": {
        "endpointId": {
          "type": "string",
          "description": "Unique identifier of the webhook endpoint."
        },
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for a given Organization."
        },
        "url": {
          "type": "string",
          "description": "The destination URL for webhook delivery."
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for this webhook endpoint."
        },
        "isActive": {
          "type": "boolean",
          "description": "Whether this webhook endpoint is active."
        },
        "subscriptions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/WebhookSubscriptionParams"
          },
          "description": "Current subscriptions attached to this endpoint."
        }
      },
      "required": ["endpointId", "organizationId", "url", "name", "isActive"]
    },
    "WebhookSubscriptionParams": {
      "type": "object",
      "properties": {
        "eventType": {
          "type": "string",
          "description": "The event type to subscribe to (for example, ACTIVITY_UPDATES, BALANCE_CONFIRMED_UPDATES, or BALANCE_FINALIZED_UPDATES)."
        },
        "filtersJson": {
          "type": "string",
          "x-nullable": true,
          "description": "JSON-encoded filter criteria for this subscription."
        },
        "isActive": {
          "type": "boolean",
          "x-nullable": true,
          "description": "Whether this subscription is active."
        }
      },
      "required": ["eventType"]
    },
    "activity.v1.Address": {
      "type": "object",
      "properties": {
        "format": {
          "$ref": "#/definitions/AddressFormat"
        },
        "address": {
          "type": "string"
        }
      }
    },
    "activity.v1.PolicyEvaluation": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for a given policy evaluation."
        },
        "activityId": {
          "type": "string",
          "description": "Unique identifier for a given Activity."
        },
        "organizationId": {
          "type": "string",
          "description": "Unique identifier for the Organization the Activity belongs to."
        },
        "voteId": {
          "type": "string",
          "description": "Unique identifier for the Vote associated with this policy evaluation."
        },
        "policyEvaluations": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/common.v1.PolicyEvaluation"
          },
          "description": "Detailed evaluation result for each Policy that was run."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": [
        "id",
        "activityId",
        "organizationId",
        "voteId",
        "policyEvaluations",
        "createdAt"
      ]
    },
    "common.v1.PolicyEvaluation": {
      "type": "object",
      "properties": {
        "policyId": {
          "type": "string"
        },
        "outcome": {
          "$ref": "#/definitions/Outcome"
        }
      }
    },
    "data.v1.Address": {
      "type": "object",
      "properties": {
        "format": {
          "$ref": "#/definitions/AddressFormat"
        },
        "address": {
          "type": "string"
        }
      }
    },
    "data.v1.SignatureScheme": {
      "type": "string",
      "enum": ["SIGNATURE_SCHEME_EPHEMERAL_KEY_P256"]
    },
    "data.v1.SmartContractInterface": {
      "type": "object",
      "properties": {
        "organizationId": {
          "type": "string",
          "description": "The Organization the Smart Contract Interface belongs to."
        },
        "smartContractInterfaceId": {
          "type": "string",
          "description": "Unique identifier for a given Smart Contract Interface (ABI or IDL)."
        },
        "smartContractAddress": {
          "type": "string",
          "description": "The address corresponding to the Smart Contract or Program."
        },
        "smartContractInterface": {
          "type": "string",
          "description": "The JSON corresponding to the Smart Contract Interface (ABI or IDL)."
        },
        "type": {
          "type": "string",
          "description": "The type corresponding to the Smart Contract Interface (either ETHEREUM or SOLANA)."
        },
        "label": {
          "type": "string",
          "description": "The label corresponding to the Smart Contract Interface (either ETHEREUM or SOLANA)."
        },
        "notes": {
          "type": "string",
          "description": "The notes corresponding to the Smart Contract Interface (either ETHEREUM or SOLANA)."
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": [
        "organizationId",
        "smartContractInterfaceId",
        "smartContractAddress",
        "smartContractInterface",
        "type",
        "label",
        "notes",
        "createdAt",
        "updatedAt"
      ]
    },
    "external.data.v1.Credential": {
      "type": "object",
      "properties": {
        "publicKey": {
          "type": "string",
          "description": "The public component of a cryptographic key pair used to sign messages and transactions."
        },
        "type": {
          "$ref": "#/definitions/CredentialType"
        },
        "sessionProfileId": {
          "type": "string",
          "x-nullable": true,
          "description": "The session profile associated with this credential, if any. This field is only applicable for credentials of type CREDENTIAL_TYPE_LOGIN."
        }
      },
      "required": ["publicKey", "type"]
    },
    "external.data.v1.Quorum": {
      "type": "object",
      "properties": {
        "threshold": {
          "type": "integer",
          "format": "int32",
          "description": "Count of unique approvals required to meet quorum."
        },
        "userIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Unique identifiers of quorum set members."
        }
      },
      "required": ["threshold", "userIds"]
    },
    "external.data.v1.Timestamp": {
      "type": "object",
      "properties": {
        "seconds": {
          "type": "string"
        },
        "nanos": {
          "type": "string"
        }
      },
      "required": ["seconds", "nanos"]
    },
    "v1.Tag": {
      "type": "object",
      "properties": {
        "tagId": {
          "type": "string",
          "description": "Unique identifier for a given Tag."
        },
        "tagName": {
          "type": "string",
          "description": "Human-readable name for a Tag."
        },
        "tagType": {
          "$ref": "#/definitions/TagType"
        },
        "createdAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        },
        "updatedAt": {
          "$ref": "#/definitions/external.data.v1.Timestamp"
        }
      },
      "required": ["tagId", "tagName", "tagType", "createdAt", "updatedAt"]
    }
  },
  "securityDefinitions": {
    "ApiKeyAuth": {
      "type": "apiKey",
      "name": "X-Stamp",
      "in": "header"
    },
    "AttestedAuth": {
      "type": "apiKey",
      "name": "X-Stamp-Attested",
      "in": "header"
    },
    "AuthenticatorAuth": {
      "type": "apiKey",
      "name": "X-Stamp-WebAuthn",
      "in": "header"
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    },
    {
      "AuthenticatorAuth": []
    }
  ],
  "x-tagGroups": [
    {
      "name": "ORGANIZATIONS",
      "tags": [
        "Organizations",
        "Invitations",
        "Policies",
        "Features",
        "IP Allowlist"
      ]
    },
    {
      "name": "WALLETS AND PRIVATE KEYS",
      "tags": ["Wallets", "Signing", "Private Keys", "Private Key Tags"]
    },
    {
      "name": "USERS",
      "tags": ["Users", "User Tags", "User Recovery", "User Auth"]
    },
    {
      "name": "CREDENTIALS",
      "tags": ["Authenticators", "API Keys", "Sessions"]
    },
    {
      "name": "ACTIVITIES",
      "tags": ["Activities", "Consensus"]
    }
  ]
}
