openapi: 3.2.0 info: title: Dashboard Allowlists Waas API description: Dashboard API documentation version: 1.0.0 servers: - url: https://app.dynamicauth.com/api/v0 - url: https://app.dynamic.xyz/api/v0 - url: http://localhost:3333/api/v0 tags: - name: Waas paths: /environments/{environmentId}/waas/create: post: operationId: createWaasWallet description: Creates a new WAAS wallet for a user given an email or userId. If an email is provided and it is not associated with an existing user this call will also create a new user. summary: Create a new WAAS for a user given an identifier tags: - Waas security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/environmentId' requestBody: description: Pregenerate WAAS wallet for a user given an identifier required: true content: application/json: schema: $ref: '#/components/schemas/CreateUserWaasWalletsRequest' responses: '200': description: Wallet already exists for the user content: application/json: schema: $ref: '#/components/schemas/UserResponse' '201': description: Successfully created new wallet for the user content: application/json: schema: $ref: '#/components/schemas/UserResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/UnprocessableEntity' '500': $ref: '#/components/responses/InternalServerError' /environments/{environmentId}/waas/authenticate: post: operationId: authenticateWaas tags: - Waas summary: Authenticate for WAAS using api key security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/environmentId' responses: '200': description: Successfully authenticated content: application/json: schema: $ref: '#/components/schemas/WaasAuthenticateResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/UnprocessableEntity' '500': $ref: '#/components/responses/InternalServerError' /environments/{environmentId}/waas/verifyApiKey: post: operationId: verifyApiKey tags: - Waas summary: Verify if an API key is valid for a specific environment description: Simple endpoint to verify if the provided API key (DYN_API_TOKEN) is valid and has access to the specified environment. Returns true if the token is verified, false otherwise. security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/environmentId' responses: '200': description: API key verification result content: application/json: schema: $ref: '#/components/schemas/WaasVerifyApiKeyResponse' '400': description: Bad request - token is required content: application/json: schema: $ref: '#/components/schemas/WaasVerifyApiKeyErrorResponse' '401': description: Unauthorized - invalid or expired token content: application/json: schema: $ref: '#/components/schemas/WaasVerifyApiKeyErrorResponse' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' /environments/{environmentId}/waas/{walletId}/delegatedAccess/signMessage: post: operationId: delegatedSignMessage tags: - Waas summary: Sign a message with a delegated waas account parameters: - $ref: '#/components/parameters/environmentId' - $ref: '#/components/parameters/walletId' requestBody: description: Delegate Sign Message Request required: true content: application/json: schema: $ref: '#/components/schemas/WaasDelegateSignMessageRequest' responses: '200': description: Successfully created a room for delegated signing message ceremony content: application/json: schema: $ref: '#/components/schemas/OpenRoomResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServerError' /environments/{environmentId}/waas/{walletId}/delegatedAccess: delete: operationId: deleteDelegatedAccess tags: - Waas summary: Revoke delegated access for a single wallet description: Allows developers to revoke their own delegated access for a specific wallet parameters: - $ref: '#/components/parameters/environmentId' - $ref: '#/components/parameters/walletId' responses: '204': description: Delegated access successfully revoked '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /environments/{environmentId}/waas/delegatedAccess/revoke: post: operationId: revokeDelegatedAccess tags: - Waas summary: Revoke delegated access for one or more wallets description: Allows developers to revoke their own delegated access parameters: - $ref: '#/components/parameters/environmentId' requestBody: description: Revoke Delegated Access Request required: true content: application/json: schema: $ref: '#/components/schemas/RevokeDelegatedAccessRequest' responses: '200': description: Delegated access revocation processed content: application/json: schema: $ref: '#/components/schemas/RevokeDelegatedAccessResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' /environments/{environmentId}/waas/delegatedAccess/encryptionPublicKeys: get: operationId: getDelegatedAccessEncryptionPublicKeys tags: - Waas summary: Get delegated access encryption public keys for an environment description: 'Fetches the encryption public keys used for delegated access in a WAAS environment. By default, returns only the latest active key. Use the includeAll query parameter to get all keys.' parameters: - $ref: '#/components/parameters/environmentId' - name: includeAll in: query description: If true, returns all encryption public keys. Otherwise, returns only the latest active key. required: false schema: type: boolean default: false responses: '200': description: Encryption public keys fetched successfully content: application/json: schema: $ref: '#/components/schemas/DelegatedAccessEncryptionPublicKeysUnifiedResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' post: operationId: createDelegatedCredentials tags: - Waas summary: Create credentials for waas wallet delegation parameters: - $ref: '#/components/parameters/environmentId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WaasDelegationCredentialsRequest' responses: '201': description: Credentials for waas wallet delegation created successfully content: application/json: schema: $ref: '#/components/schemas/WaasDelegationCredentialsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/UnprocessableEntity' '500': $ref: '#/components/responses/InternalServerError' /environments/{environmentId}/waas/delegatedAccess/encryptionPublicKeys/{keyId}: get: operationId: getDelegatedAccessEncryptionPublicKeyById tags: - Waas summary: Get a specific delegated access encryption public key by ID parameters: - $ref: '#/components/parameters/environmentId' - name: keyId in: path description: The ID of the encryption public key required: true schema: type: string format: uuid responses: '200': description: Encryption public key fetched successfully content: application/json: schema: $ref: '#/components/schemas/DelegatedAccessEncryptionPublicKeyResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /environments/{environmentId}/waas/{walletId}: get: operationId: getWaasWalletByWalletId tags: - Waas summary: Get a specific WAAS wallet by walletId parameters: - $ref: '#/components/parameters/environmentId' - name: walletId in: path description: The ID of the WAAS wallet required: true schema: type: string format: uuid responses: '200': description: WAAS wallet fetched successfully content: application/json: schema: $ref: '#/components/schemas/WaasWalletResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /environments/{environmentId}/waas/{walletId}/keyShares/backup/locations: post: operationId: backupKeySharesToLocationsForPregen tags: - Waas summary: Create backup action for key shares using API token authentication description: Creates backup locations for wallet key shares. Requires API token authentication. Validates that the user belongs to the environment and that no client key shares exist for the wallet. This endpoint is intended for server-side integrations that need to backup key shares on behalf of users. parameters: - $ref: '#/components/parameters/environmentId' - $ref: '#/components/parameters/walletId' requestBody: description: Backup locations request with userId required: true content: application/json: schema: $ref: '#/components/schemas/BackupKeySharesToLocationsWithUserIdRequest' responses: '201': description: Backup action and event created successfully content: application/json: schema: $ref: '#/components/schemas/BackupKeySharesToLocationsResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' security: - bearerAuth: [] /environments/{environmentId}/waas/policies: post: operationId: createWaasPolicy tags: - Waas summary: Create a new WAAS policy for an environment or add new rules to an existing… parameters: - $ref: '#/components/parameters/environmentId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WaasPolicyCreateRequest' responses: '201': description: WAAS policy created successfully content: application/json: schema: $ref: '#/components/schemas/WaasPolicyResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/UnprocessableEntity' '500': $ref: '#/components/responses/InternalServerError' get: operationId: getWaasPolicy tags: - Waas summary: Get the WAAS policy for an environment parameters: - $ref: '#/components/parameters/environmentId' responses: '200': description: WAAS policy fetched successfully content: application/json: schema: $ref: '#/components/schemas/WaasPolicyResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' put: operationId: updateWaasPolicy tags: - Waas summary: Update the WAAS policy for an environment by ruleId parameters: - $ref: '#/components/parameters/environmentId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WaasPolicyUpdateRequest' responses: '200': description: WAAS policy updated successfully content: application/json: schema: $ref: '#/components/schemas/WaasPolicyResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/UnprocessableEntity' '500': $ref: '#/components/responses/InternalServerError' delete: operationId: deleteWaasPolicy tags: - Waas summary: Delete a WAAS policy rule by ruleId parameters: - $ref: '#/components/parameters/environmentId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WaasPolicyDeleteRequest' responses: '200': description: WAAS policy rules deleted successfully content: application/json: schema: $ref: '#/components/schemas/WaasPolicyResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/UnprocessableEntity' '500': $ref: '#/components/responses/InternalServerError' /environments/{environmentId}/waas/{walletId}/signaturePolicy: post: operationId: createWaasSignaturePolicy tags: - Waas summary: Create a new WAAS signature policy for a wallet parameters: - $ref: '#/components/parameters/environmentId' - $ref: '#/components/parameters/walletId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WaasWalletSignaturePolicyTmpCreateRequest' responses: '201': description: WAAS signature policy created successfully content: application/json: schema: $ref: '#/components/schemas/WaasWalletSignaturePolicyTmpResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' get: operationId: getWaasSignaturePolicies tags: - Waas summary: Get all active WAAS signature policies for a wallet parameters: - $ref: '#/components/parameters/environmentId' - $ref: '#/components/parameters/walletId' responses: '200': description: WAAS signature policies fetched successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/WaasWalletSignaturePolicyTmpResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' /environments/{environmentId}/waas/{walletId}/signaturePolicy/{policyId}: get: operationId: getWaasSignaturePolicyByWalletIdAndPolicyId tags: - Waas summary: Get a WAAS signature policy by walletId and policyId parameters: - $ref: '#/components/parameters/environmentId' - $ref: '#/components/parameters/walletId' - name: policyId in: path description: The ID of the signature policy for the wallet required: true schema: type: string format: uuid responses: '200': description: WAAS signature policy fetched successfully content: application/json: schema: $ref: '#/components/schemas/WaasWalletSignaturePolicyTmpResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' put: operationId: updateWaasSignaturePolicyByWalletIdAndPolicyId tags: - Waas summary: Update a WAAS signature policy by walletId and policyId parameters: - $ref: '#/components/parameters/environmentId' - $ref: '#/components/parameters/walletId' - name: policyId in: path description: The ID of the signature policy for the wallet required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WaasWalletSignaturePolicyTmpCreateRequest' responses: '200': description: WAAS signature policy updated successfully content: application/json: schema: $ref: '#/components/schemas/WaasWalletSignaturePolicyTmpResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' delete: operationId: deleteWaasSignaturePolicyByWalletIdAndPolicyId tags: - Waas summary: Delete a WAAS signature policy by walletId and policyId parameters: - $ref: '#/components/parameters/environmentId' - $ref: '#/components/parameters/walletId' - name: policyId in: path description: The ID of the signature policy for the wallet required: true schema: type: string format: uuid responses: '200': description: WAAS signature policy deleted successfully content: application/json: schema: $ref: '#/components/schemas/WaasWalletSignaturePolicyTmpResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /sdk/{environmentId}/waas/delegatedAccess/encryptionPublicKey: get: operationId: getDelegatedAccessEncryptionPublicKey tags: - Waas summary: Get delegated access encryption public key for an environment description: 'Fetches the encryption public key used for delegated access in a WAAS environment. By default, returns only the latest active key.' parameters: - $ref: '#/components/parameters/environmentId' responses: '200': description: Encryption public key fetched successfully content: application/json: schema: $ref: '#/components/schemas/DelegatedAccessEncryptionPublicKeyResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' components: schemas: RevokeDelegatedAccessRequest: type: object required: - walletIds properties: walletIds: type: array items: $ref: '#/components/schemas/uuid' description: Array of wallet IDs to revoke delegated access for minItems: 1 maxItems: 100 MergeConflicts: type: object description: Contains information needed for the SDK to surface merge conflicts when attempting to merge information from one user to another required: - fromUser - conflicts properties: fromUser: $ref: '#/components/schemas/SdkUser' conflicts: type: array items: $ref: '#/components/schemas/MergeUserConflict' RevokeDelegatedAccessWalletResult: type: object required: - walletId - success properties: walletId: $ref: '#/components/schemas/uuid' success: type: boolean description: Whether the revocation was successful for this wallet error: type: string description: Error message if the revocation failed SolanaPublicKey: type: string pattern: ^[1-9A-HJ-NP-Za-km-z]{43,44}$ description: Valid Solana wallet address, must be a 44-character string using base58 characters example: vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg WalletProviderEnum: type: string enum: - browserExtension - custodialService - walletConnect - qrCode - deepLink - embeddedWallet - smartContractWallet CoinbaseMpcWalletProperties: type: object properties: claimed: type: boolean description: Dynamic pregenerated this wallet and stored the passcode source: $ref: '#/components/schemas/PasswordSourceTypeEnum' OpenRoomResponse: type: object required: - roomId properties: roomId: type: string serverKeygenIds: type: array items: $ref: '#/components/schemas/NonEmptyBase58StringWith100MaxLength' newServerKeygenIds: type: array items: $ref: '#/components/schemas/NonEmptyBase58StringWith100MaxLength' walletId: $ref: '#/components/schemas/uuid' Unauthorized: type: object properties: error: type: string example: No jwt provided! WaasPolicyArgumentConstraint: type: object required: - operator - value - index properties: operator: $ref: '#/components/schemas/WaasPolicyConstraintCondition' value: description: Reference value for comparison index: type: integer minimum: 0 description: Index of the function argument to validate WaasDelegateSignMessageRequest: type: object required: - message properties: message: $ref: '#/components/schemas/NonEmptyStringWith16384MaxLength' isFormatted: type: boolean roomId: type: string EmbeddedWalletVersionEnum: type: string enum: - V1 - V2 - V3 UserIdentifierTypeEnum: type: string enum: - email - id - externalUserId - phoneNumber - socialUsername - socialAccountId WaasWalletSettings: type: object properties: hasDeniedDelegatedAccess: type: boolean shouldRefreshOnNextSignOn: type: boolean reshareOnNextSignOn: $ref: '#/components/schemas/ThresholdSignatureScheme' revokeOnNextSignOn: type: boolean WaasAuthenticateResponse: type: object required: - message - encodedJwts properties: message: type: string encodedJwts: type: object properties: jwt: type: string minifiedJwt: type: string Forbidden: type: object properties: error: type: string example: Access Forbidden MFADevice: type: object properties: type: $ref: '#/components/schemas/MFADeviceType' verified: type: boolean description: Whether or not the user has a verified this MFA Device id: $ref: '#/components/schemas/uuid' createdAt: type: string format: date-time description: The date and time the MFA device was created verifiedAt: type: - string - 'null' format: date-time description: The date and time the MFA device was verified default: type: boolean description: Whether or not this is the default MFA device for the user alias: type: string description: The optional alias for the MFA device RevokeDelegatedAccessResponse: type: object required: - results - total - succeeded - failed properties: results: type: array items: $ref: '#/components/schemas/RevokeDelegatedAccessWalletResult' description: Results for each wallet total: type: integer description: Total number of wallets processed succeeded: type: integer description: Number of wallets successfully revoked failed: type: integer description: Number of wallets that failed to revoke ChainalysisCheck: type: object properties: id: $ref: '#/components/schemas/uuid' createdAt: type: string format: date-time result: $ref: '#/components/schemas/ChainalysisCheckResultEnum' walletPublicKey: $ref: '#/components/schemas/WalletPublicKey' response: type: string required: - id - createdAt - result - walletPublicKey - response MFADeviceType: type: string enum: - totp - passkey - email ProviderKernelVersionEnum: type: string enum: - v2_4 - v3_0 - v3_1 - v3_2 - v3_3 ChainalysisCheckResultEnum: type: string enum: - OK - BLOCKED - FAILED TurnkeyWalletProperties: deprecated: true type: object properties: turnkeySubOrganizationId: allOf: - $ref: '#/components/schemas/uuid' deprecated: true turnkeyPrivateKeyId: allOf: - $ref: '#/components/schemas/uuid' deprecated: true turnkeyHDWalletId: allOf: - $ref: '#/components/schemas/uuid' deprecated: true isAuthenticatorAttached: type: boolean description: Whether or not the wallet has an authenticator (passkey, api key, etc) attached to it. turnkeyUserId: allOf: - $ref: '#/components/schemas/uuid' deprecated: true isSessionKeyCompatible: type: boolean version: $ref: '#/components/schemas/EmbeddedWalletVersionEnum' ecdsaProviderType: $ref: '#/components/schemas/ecdsaValidatorOptions' entryPointVersion: $ref: '#/components/schemas/ProviderEntryPointVersionEnum' kernelVersion: $ref: '#/components/schemas/ProviderKernelVersionEnum' JwtVerifiedCredentialFormatEnum: type: string enum: - blockchain - email - oauth - passkey - phoneNumber - externalUser NonEmptyIsoCountryCode: type: string pattern: ^[a-zA-Z]{2,4}\d?$ maxLength: 4 example: US WaasDelegationCredentialsRequest: type: object required: - publicKey properties: publicKey: $ref: '#/components/schemas/NonEmptyStringWith4096MaxLength' alg: $ref: '#/components/schemas/NonEmptyStringWith50MaxLength' type: $ref: '#/components/schemas/WaasDelegatedAccessEncryptionPublicKeyType' NonEmptyStringWith16384MaxLength: type: string maxLength: 16384 description: A string with a max length of 16384 characters WaasWalletSignaturePolicyTmpTimeLimit: type: integer description: Time limit in seconds until the policy expires. Must be greater than 0 seconds. minimum: 1 WaasPolicyRule: type: object required: - name - ruleType - chain properties: ruleId: $ref: '#/components/schemas/uuid' name: type: string description: Human-readable name for the rule ruleType: $ref: '#/components/schemas/WaasPolicyRuleType' address: description: Target address EVM or SVM (legacy field) anyOf: - $ref: '#/components/schemas/WalletPublicKey' - $ref: '#/components/schemas/SolanaPublicKey' deprecated: true addresses: description: Target address(es) EVM or SVM type: array items: anyOf: - $ref: '#/components/schemas/WalletPublicKey' - $ref: '#/components/schemas/SolanaPublicKey' chain: $ref: '#/components/schemas/WaasChainEnum' chainId: type: number description: Chain ID for the policy rule (legacy field) chainIds: description: Chain IDs for the policy rule type: array items: type: number contractAbi: type: array description: Contract ABI interface items: type: object functionName: type: string description: Specific function name to permit/deny argumentConstraints: type: array items: $ref: '#/components/schemas/WaasPolicyArgumentConstraint' description: Validation rules for function arguments valueLimit: type: object description: Value limits for the policy rule properties: asset: description: Target asset address. If undefined, refers to native token (e.g., ETH) anyOf: - $ref: '#/components/schemas/WalletPublicKey' - $ref: '#/components/schemas/SolanaPublicKey' maxPerCall: type: string description: Maximum value per function call (as string to handle bigint) pattern: ^[0-9]+$ totalLimit: type: string description: Cumulative value limit (as string to handle bigint) pattern: ^[0-9]+$ operationRestrictions: type: object description: Operation-level restrictions for the wallet properties: blockExport: type: boolean description: Block private key export blockRevocation: type: boolean description: Block end-user revocation of delegated access blockClientSigning: type: boolean description: Block all end-user signing (not delegated) NonEmptyStringWith4096MaxLength: type: string maxLength: 4096 description: A string with a max length of 4096 characters OptionalNullableNonEmptyStringWith255MaxLength: type: - string - 'null' pattern: ^$|^(?=\S)[\p{L}\p{N} _.,:!?&%@\/+-]+(?<=\S)$ example: An example name maxLength: 255 InternalServerError: type: object properties: error: type: string example: Internal Server Error ThresholdSignatureScheme: type: string enum: - TWO_OF_TWO - TWO_OF_THREE - THREE_OF_FIVE SmartWalletProperties: type: object properties: entryPointVersion: $ref: '#/components/schemas/ProviderEntryPointVersionEnum' kernelVersion: $ref: '#/components/schemas/ProviderKernelVersionEnum' ecdsaProviderType: $ref: '#/components/schemas/ecdsaValidatorOptions' UserResponse: type: object properties: user: $ref: '#/components/schemas/User' CustomFieldValidationRules: type: object properties: unique: type: boolean description: If this field must be unique for every user in the environment regex: type: string maxLength: 255 description: The regex pattern that the text field must match example: ^0x validOptions: type: array items: $ref: '#/components/schemas/CustomFieldValidValue' description: The dropdown options for the select field example: - label: small - label: medium - label: large checkboxText: type: string maxLength: 255 description: The text that will be displayed for the checkbox field example: Agree to the terms and conditions description: Optional validation rules for the custom field WaasPolicyRuleType: type: string enum: - allow - deny description: Whether the rule permits or denies the specified action UnprocessableEntityErrorCode: type: string enum: - email_cannot_be_null - exchange_cannot_be_enabled - transfer_amount_too_small - transfer_address_not_whitelisted - invalid_scopes - unknown_transfer_error - transfer_mfa_required - transfer_mfa_failed - invalid_transfer_funds - invalid_transfer_currency - invalid_exchange_provider - invalid_transfer_network - invalid_email - email_already_exists - allowlist_already_exists - allowlist_entry_already_exists - reassign_wallet_error - reassign_wallet_confirm - members_cannot_delete_themself - username_already_exists - wrong_email_verification_token - wrong_sms_verification_token - invalid_email_verification - invalid_sms_verification - invalid_verification - invalid_position - too_many_sms_verification_attempts - too_many_email_verification_attempts - too_many_verification_attempts - organization_name_already_exists - project_name_already_exists - wallet_not_deployed - email_verification_required - phone_verification_required - invite_address_required - provider_not_available - forbidden_unlink_request - invalid_unlink_request - too_many_api_tokens - lock_timeout - lock_too_many_attempts - nft_token_gating_not_supported_for_chain - empty_chain_name - no_enabled_email_provider - no_enabled_sms_provider - invalid_key_export_url - invalid_dynamic_props - too_many_requests - too_many_organizations_for_user - too_many_projects_for_organization - email_associated_with_different_provider - user_has_already_account_with_email - user_has_already_account_with_phone_number - other_verify_failure - email_tied_to_embedded_wallet - invalid_invite - social_account_already_exists - invalid_email_address - invalid_gate - conflicting_embedded_wallet_providers - invalid_user - invalid_cors_origins - invalid_mobile_deeplink_urls - unauthorized_mobile_deeplink_url - invalid_private_key_format - invalid_embedded_wallet_settings - wallet_not_support_passkey - recovery_email_unavailable_or_invalid - connect_error - invalid_wallet_name - invalid_wallet_address - email_recovery_disabled - no_compatible_wallet_service_enabled - missing_aa_project_id - linked_embedded_wallet - invalid_mpc_environment - invalid_regex - repeated_options - missing_phone_number_or_email - duplicate_exists - mfa_device_not_found - mfa_invalid_code - mfa_invalid_request - invalid_phone - gate_exists - invalid_embedded_wallet_chains_configuration - merge_accounts_confirmation - merge_accounts_invalid - invalid_wallet_id - unable_to_fetch_balances - cannot_switch_to_unique - custom_field_data_not_unique - metadata_size_exceeded - invalid_custom_hostname - blocked_user_cannot_transfer_wallet - feature_not_enabled_in_suborg - invalid_username - invalid_external_auth - invalid_chain_address_match - invalid_update - cannot_delete_last_project - no_hd_wallet_found - wallet_account_exists_for_chain - too_many_embedded_wallets_for_user - too_many_embedded_wallets_per_chain_for_user - invalid_session_public_key - custom_field_not_unique - invalid_aa_project_configuration - no_v1_embedded_wallet_found - embedded_wallet_address_already_linked - key_share_already_backed_up - invalid_key_shares_length - wallet_service_connection_error - no_global_wallet_found - invalid_metadata_value - max_passkeys_per_user - passkey_not_found - cannot_delete_passkey_linked_to_embedded_wallet - cannot_delete_last_sign_in_verified_credential WaasPolicyCreateRequest: type: object required: - rulesToAdd properties: rulesToAdd: type: array items: $ref: '#/components/schemas/WaasPolicyRule' description: Array of rules to add to the policy, will create policy if it doesn't exist CountryCode: type: - string - 'null' description: Standard ISO 3166-1 alpha-2 two-letter country code pattern: ^[A-Z]{2}$ example: US maxLength: 255 WalletAdditionalAddress: type: object description: An additional address associated with a wallet. required: - address - type properties: address: type: string description: An address associated with a wallet. publicKey: type: string description: The public key associated with the address. type: $ref: '#/components/schemas/WalletAddressType' MergeUserConflict: type: object description: Contains a merge conflict between two users with different values for the same user field data required: - field - fromUser - currentUser properties: field: $ref: '#/components/schemas/ProjectSettingsKyc' fromUser: $ref: '#/components/schemas/MergeUser' currentUser: $ref: '#/components/schemas/MergeUser' WaasPolicyDeleteRequest: type: object required: - ruleIdsToDelete properties: ruleIdsToDelete: type: array items: $ref: '#/components/schemas/uuid' description: Array of rule IDs to delete from the policy NotFound: type: object required: - error - code properties: error: type: string example: Not Found code: type: string example: not_found ChainEnum: type: string enum: - ETH - EVM - FLOW - SOL - ALGO - STARK - COSMOS - BTC - ECLIPSE - SUI - SPARK - TRON - APTOS - TON - STELLAR JwtVerifiedCredential: type: object required: - id - format - signInEnabled properties: address: $ref: '#/components/schemas/WalletPublicKey' chain: type: string refId: $ref: '#/components/schemas/uuid' signerRefId: $ref: '#/components/schemas/uuid' email: type: string format: email id: $ref: '#/components/schemas/uuid' name_service: $ref: '#/components/schemas/NameServiceData' public_identifier: description: This is used to publicly identify a verified credential in a human-friendly way. For example, this will be the email address if credential format=email. type: string wallet_name: type: string wallet_provider: $ref: '#/components/schemas/WalletProviderEnum' wallet_properties: $ref: '#/components/schemas/WalletProperties' format: $ref: '#/components/schemas/JwtVerifiedCredentialFormatEnum' oauth_provider: $ref: '#/components/schemas/ProviderEnum' oauth_username: type: string oauth_display_name: type: - string - 'null' oauth_account_id: type: - string - 'null' phoneNumber: description: This field contains the phone number in the country. This could also contain the area code within a country. example: '9171113333' type: string phoneCountryCode: description: This field contains the phone international country code. See https://countrycode.org/ example: '1' type: string isoCountryCode: description: ISO-3166 two-character country code. See https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes example: US type: string oauth_account_photos: type: array items: type: string oauth_emails: type: array items: type: string oauth_metadata: type: object description: This object contains JSON metadata for a social-based verified credential. It may contain data about the user that does not fit into the other structured fields, and could include arbitrary fields about the user from the oauth provider's API. previous_users: description: This will only be provided in the responses for GET /users/{userId}.Previous user IDs that owned this verified credential and was tranfered to the current user ID. type: array items: $ref: '#/components/schemas/uuid' embedded_wallet_id: type: - string - 'null' wallet_additional_addresses: type: array items: $ref: '#/components/schemas/WalletAdditionalAddress' lastSelectedAt: description: This timestamp indicates the last time this verified wallet was either connected to the user account or selected to become the primary wallet on the account. type: string format: date-time signInEnabled: type: boolean description: This indicates if the user can sign in with this credential verifiedAt: type: string format: date-time description: This timestamp indicates the last time this verified credential was verified. WaasBackupOptionsEnum: type: string enum: - googleDrive - iCloud - dynamic - external - delegated WalletProperties: anyOf: - $ref: '#/components/schemas/TurnkeyWalletProperties' - $ref: '#/components/schemas/HardwareWalletProperties' - $ref: '#/components/schemas/CoinbaseMpcWalletProperties' - $ref: '#/components/schemas/SmartWalletProperties' - $ref: '#/components/schemas/WaasWalletProperties' UnprocessableEntityErrorPayload: type: object description: Contains information which the integrating client of this API can use to tailor an experience to a customer to fix the underlying issue that triggered this error. properties: email: type: string format: email example: joe@email.com loginProvider: $ref: '#/components/schemas/ProviderEnum' embeddedWalletName: type: string embeddedSocialSigninProvider: $ref: '#/components/schemas/ProviderEnum' mergeConflicts: $ref: '#/components/schemas/MergeConflicts' additionalMessages: type: array items: type: string ProviderEnum: type: string description: The 'turnkey' value is deprecated and will be removed in a future version. enum: - emailOnly - magicLink - apple - bitbucket - coinbasesocial - discord - epicgames - facebook - farcaster - github - gitlab - google - instagram - linkedin - microsoft - twitch - twitter - blocto - banxa - coinbaseOnramp - cryptoDotCom - dynamic - alchemy - zerodev - telegram - turnkey - coinbaseWaas - sms - spotify - tiktok - line - steam - shopify - zksync - kraken - blockaid - passkey - okta - sendgrid - resend WaasChainEnum: type: string enum: - EVM - SVM - SUI - BTC - TON WaasVerifyApiKeyErrorResponse: type: object required: - message - verified properties: message: type: string description: Error message describing why verification failed verified: type: boolean description: Always false for error responses CreateUserWaasWalletsRequest: required: - identifier - type - chains type: object properties: identifier: type: string description: Identifier for the user. Must be either an email, phone number, user id, external user id, or username from a supported social provider type: $ref: '#/components/schemas/UserIdentifierTypeEnum' chains: type: array description: The chains to create the wallet for items: $ref: '#/components/schemas/WaasChainEnum' smsCountryCode: $ref: '#/components/schemas/SmsCountryCode' socialProvider: $ref: '#/components/schemas/ProviderEnum' BackupKeySharesToLocationsResponse: type: object required: - message - walletId - locationsWithKeyShares properties: message: type: string walletId: $ref: '#/components/schemas/uuid' locationsWithKeyShares: type: array items: type: object required: - location - keyShareId - externalKeyShareId properties: location: $ref: '#/components/schemas/WaasBackupOptionsEnum' keyShareId: $ref: '#/components/schemas/uuid' externalKeyShareId: $ref: '#/components/schemas/uuid' MergeUser: type: object description: Contains the current field value for the user. required: - userId - value properties: userId: $ref: '#/components/schemas/uuid' value: $ref: '#/components/schemas/NonEmptyStringWith255MaxLength' BackupKeySharesToLocationsWithUserIdRequest: type: object required: - userId - locations properties: userId: type: string format: uuid description: The ID of the user who owns the wallet locations: type: array items: type: object required: - location properties: location: $ref: '#/components/schemas/WaasBackupOptionsEnum' keygenId: $ref: '#/components/schemas/NonEmptyStringWith255MaxLength' thresholdSignatureScheme: $ref: '#/components/schemas/ThresholdSignatureScheme' externalKeyShareId: $ref: '#/components/schemas/NonEmptyString' uuid: type: string pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ minLength: 36 maxLength: 36 example: 95b11417-f18f-457f-8804-68e361f9164f WalletKeyShareInfo: type: object required: - id - backupLocation - passwordEncrypted properties: id: $ref: '#/components/schemas/uuid' backupLocation: type: string passwordEncrypted: type: boolean externalKeyShareId: $ref: '#/components/schemas/uuid' WaasPolicyConstraintCondition: type: string enum: - equal - greater - less - greaterEqual - lessEqual - notEqual description: Comparison operator for argument validation WalletAddressType: type: string enum: - ordinals - payment - cosmos - evm - ton NonEmptyStringWith255MaxLengthAndSpecialChars: type: string pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'()\[\]*]+(?<=\S)$ maxLength: 255 example: An example name NonEmptyString: type: string pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$ example: An example name WaasWallet: type: object required: - accountAddress - chainName - derivationPath - thresholdSignatureScheme - walletId properties: accountAddress: type: string description: The account address of the wallet chainName: $ref: '#/components/schemas/WaasChainEnum' walletId: $ref: '#/components/schemas/uuid' thresholdSignatureScheme: $ref: '#/components/schemas/ThresholdSignatureScheme' derivationPath: type: string description: The derivation path used for the wallet keyShares: type: array items: $ref: '#/components/schemas/WalletKeyShareInfo' ecdsaValidatorOptions: type: string enum: - zerodev_signer_to_ecdsa - zerodev_multi_chain ProviderEntryPointVersionEnum: type: string enum: - v6 - v7 HardwareWalletEnum: type: string enum: - ledger WaasDelegatedAccessEncryptionPublicKeyType: type: string enum: - dynamic - external NonEmptyStringWith50MaxLength: type: string pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$ example: An example name maxLength: 50 WaasWalletResponse: type: object required: - wallet properties: wallet: $ref: '#/components/schemas/WaasWallet' NameServiceData: type: object properties: avatar: type: string name: type: string WaasDelegationCredentialsResponse: type: object required: - publicKey - kid - alg - createdAt - updatedAt properties: publicKey: $ref: '#/components/schemas/NonEmptyStringWith4096MaxLength' kid: type: string description: Short identifier referenced in webhook envelopes so the developer knows which private key to use maxLength: 64 alg: type: string enum: - RSA-OAEP-256 - HYBRID-RSA-AES-256 description: Algorithm for how this key is used type: $ref: '#/components/schemas/WaasDelegatedAccessEncryptionPublicKeyType' createdAt: type: string format: date-time updatedAt: type: string format: date-time NonEmptyStringWith255MaxLength: type: string pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$ maxLength: 255 example: An example name Wallet: type: object properties: id: $ref: '#/components/schemas/uuid' name: $ref: '#/components/schemas/NonEmptyString' chain: $ref: '#/components/schemas/ChainEnum' publicKey: $ref: '#/components/schemas/WalletPublicKey' provider: $ref: '#/components/schemas/WalletProviderEnum' properties: $ref: '#/components/schemas/WalletProperties' lastSelectedAt: type: - string - 'null' required: - id - name - chain - publicKey - provider ProjectSettingsKyc: type: object properties: name: type: string required: type: boolean enabled: type: boolean unique: type: boolean verify: type: boolean type: $ref: '#/components/schemas/KycFieldType' validationRules: $ref: '#/components/schemas/CustomFieldValidationRules' validationType: $ref: '#/components/schemas/CustomFieldType' label: type: string position: type: number required: - name - required - enabled - unique - verify DelegatedAccessEncryptionPublicKeyResponse: type: object required: - key - message properties: key: $ref: '#/components/schemas/DelegatedAccessEncryptionPublicKey' message: type: string description: Message describing the operation result Session: type: object properties: id: $ref: '#/components/schemas/uuid' createdAt: type: string format: date-time ipAddress: type: - string - 'null' userAgent: type: - string - 'null' revokedAt: type: - string - 'null' format: date-time WaasVerifyApiKeyResponse: type: object required: - environmentId - verified properties: environmentId: type: string format: uuid description: The environment ID for which the API key was verified verified: type: boolean description: Indicates whether the API key is valid and has access to the environment CustomFieldType: type: string enum: - text - checkbox - select WaasPolicyUpdateRequest: type: object required: - rulesToUpdate properties: rulesToUpdate: type: array items: $ref: '#/components/schemas/WaasPolicyRule' description: Array of rules to update in the policy NonEmptyBase58StringWith100MaxLength: type: string pattern: ^[1-9A-HJ-NP-Za-km-z]+$ maxLength: 100 description: A base58 string with a max length of 100 characters WaasWalletProperties: type: object properties: keyShares: type: array items: $ref: '#/components/schemas/WalletKeyShareInfo' thresholdSignatureScheme: $ref: '#/components/schemas/ThresholdSignatureScheme' derivationPath: type: string description: The derivation path for the wallet settings: $ref: '#/components/schemas/WaasWalletSettings' version: $ref: '#/components/schemas/EmbeddedWalletVersionEnum' DelegatedAccessEncryptionPublicKey: type: object required: - id - projectEnvironmentId - kid - alg - publicKeyPemB64 - status - type - createdAt - updatedAt properties: id: $ref: '#/components/schemas/uuid' projectEnvironmentId: $ref: '#/components/schemas/uuid' kid: type: string description: Short identifier referenced in webhook envelopes so the developer knows which private key to use maxLength: 64 alg: type: string enum: - RSA-OAEP-256 - HYBRID-RSA-AES-256 description: Algorithm for how this key is used publicKeyPemB64: type: string description: Developer's public key material, PEM encoded then base64'd maxLength: 4096 status: type: string enum: - pending - active - revoked description: Lifecycle status of this key type: $ref: '#/components/schemas/WaasDelegatedAccessEncryptionPublicKeyType' expiresAt: type: - string - 'null' format: date-time description: Optional expiry for planned rotations revokedAt: type: - string - 'null' format: date-time description: Timestamp when the key was revoked createdAt: type: string format: date-time updatedAt: type: string format: date-time User: allOf: - $ref: '#/components/schemas/BaseUser' - type: object properties: walletPublicKey: type: string wallet: type: string chain: $ref: '#/components/schemas/ChainEnum' createdAt: type: string format: date-time updatedAt: type: string format: date-time sessions: type: array items: $ref: '#/components/schemas/Session' wallets: type: array items: $ref: '#/components/schemas/Wallet' chainalysisChecks: type: array items: $ref: '#/components/schemas/ChainalysisCheck' oauthAccounts: type: array items: $ref: '#/components/schemas/oAuthAccount' mfaDevices: type: array items: $ref: '#/components/schemas/MFADevice' UnprocessableEntity: type: object properties: error: type: string example: Resources already exists for this Object code: $ref: '#/components/schemas/UnprocessableEntityErrorCode' payload: $ref: '#/components/schemas/UnprocessableEntityErrorPayload' required: - error WaasPolicyResponse: type: object required: - policyId - projectEnvironmentId - createdAt - updatedAt - policyContent properties: message: type: string description: Message describing the operation result policyId: type: string projectEnvironmentId: $ref: '#/components/schemas/uuid' createdAt: type: string format: date-time updatedAt: type: string format: date-time policyContent: type: array items: $ref: '#/components/schemas/WaasPolicyRule' WaasWalletSignaturePolicyTmpCreateRequest: type: object required: - policyContent - timeLimit properties: policyContent: type: array minItems: 1 description: Array of policy rules, each defining allowed addresses, chain, and value limits for different assets items: type: object required: - chain - toAddresses - valueLimits properties: chain: $ref: '#/components/schemas/WaasChainEnum' toAddresses: type: array minItems: 1 description: Array of allowed recipient addresses (vault addresses) for this chain items: anyOf: - $ref: '#/components/schemas/WalletPublicKey' - $ref: '#/components/schemas/SolanaPublicKey' valueLimits: type: array minItems: 1 description: Array of value limits for different assets on this chain items: type: object required: - asset - maxPerCall properties: asset: description: Target asset address anyOf: - $ref: '#/components/schemas/WalletPublicKey' - $ref: '#/components/schemas/SolanaPublicKey' maxPerCall: type: string description: Maximum value per transaction (as string to handle bigint) pattern: ^[0-9]+$ timeLimit: $ref: '#/components/schemas/WaasWalletSignaturePolicyTmpTimeLimit' KycFieldType: type: string enum: - standard - custom SdkUser: allOf: - $ref: '#/components/schemas/BaseUser' - type: object required: - verifiedCredentials PasswordSourceTypeEnum: type: string enum: - dynamic - user CustomFieldValidValue: type: object required: - label properties: label: $ref: '#/components/schemas/NonEmptyStringWith255MaxLengthAndSpecialChars' key: $ref: '#/components/schemas/NonEmptyStringWith255MaxLengthAndSpecialChars' BadRequest: type: object properties: error: type: string WalletPublicKey: type: string pattern: ^[A-Za-z0-9]{18,100}$ description: Valid blockchain wallet address, must be an alphanumeric string without any special characters example: '0xbF394748301603f18d953C90F0b087CBEC0E1834' maxLength: 255 WaasWalletSignaturePolicyTmpResponse: type: object required: - id - walletId - expiresAt - policyContent properties: id: $ref: '#/components/schemas/uuid' walletId: $ref: '#/components/schemas/uuid' expiresAt: type: string format: date-time description: Timestamp when the policy expires policyContent: type: array minItems: 1 description: Array of policy rules, each defining allowed addresses, chain, and value limits for different assets items: type: object required: - chain - toAddresses - valueLimits properties: chain: $ref: '#/components/schemas/WaasChainEnum' toAddresses: type: array minItems: 1 description: Array of allowed recipient addresses (vault addresses) for this chain items: anyOf: - $ref: '#/components/schemas/WalletPublicKey' - $ref: '#/components/schemas/SolanaPublicKey' valueLimits: type: array minItems: 1 description: Array of value limits for different assets on this chain items: type: object required: - asset - maxPerCall properties: asset: description: Target asset address anyOf: - $ref: '#/components/schemas/WalletPublicKey' - $ref: '#/components/schemas/SolanaPublicKey' maxPerCall: type: string description: Maximum value per transaction (as string to handle bigint) pattern: ^[0-9]+$ HardwareWalletProperties: type: object properties: hardwareWallet: $ref: '#/components/schemas/HardwareWalletEnum' SmsCountryCode: type: object required: - isoCountryCode - phoneCountryCode properties: isoCountryCode: $ref: '#/components/schemas/NonEmptyIsoCountryCode' phoneCountryCode: $ref: '#/components/schemas/NonEmptyStringWith255MaxLength' DelegatedAccessEncryptionPublicKeysUnifiedResponse: type: object required: - message properties: key: allOf: - $ref: '#/components/schemas/DelegatedAccessEncryptionPublicKey' description: Single key when includeAll is false keys: type: array items: $ref: '#/components/schemas/DelegatedAccessEncryptionPublicKey' description: Array of keys when includeAll is true message: type: string description: Message describing the operation result MfaBackupCodeAcknowledgement: type: - string - 'null' enum: - pending - complete oAuthAccount: type: object properties: id: $ref: '#/components/schemas/uuid' provider: $ref: '#/components/schemas/ProviderEnum' accountUsername: type: string BaseUser: type: object required: - id - projectEnvironmentId properties: id: $ref: '#/components/schemas/uuid' projectEnvironmentId: $ref: '#/components/schemas/uuid' verifiedCredentials: type: array items: $ref: '#/components/schemas/JwtVerifiedCredential' lastVerifiedCredentialId: $ref: '#/components/schemas/uuid' sessionId: $ref: '#/components/schemas/uuid' alias: $ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength' country: $ref: '#/components/schemas/CountryCode' email: type: - string - 'null' format: email maxLength: 255 firstName: $ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength' jobTitle: $ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength' lastName: $ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength' phoneNumber: type: - string - 'null' maxLength: 255 policiesConsent: type: - boolean - 'null' tShirtSize: $ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength' team: $ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength' username: $ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength' firstVisit: type: string format: date-time lastVisit: type: string format: date-time newUser: type: boolean metadata: type: object mfaBackupCodeAcknowledgement: $ref: '#/components/schemas/MfaBackupCodeAcknowledgement' btcWallet: type: - string - 'null' kdaWallet: type: - string - 'null' ltcWallet: type: - string - 'null' ckbWallet: type: - string - 'null' kasWallet: type: - string - 'null' dogeWallet: type: - string - 'null' emailNotification: type: - boolean - 'null' discordNotification: type: - boolean - 'null' newsletterNotification: type: - boolean - 'null' lists: type: array description: Access lists evaluated by Dynamic when considering access for the user. items: type: string scope: type: string description: 'A whitespace-separate list of permissions associated with the JWT token issued. This conforms to the JWT standard for scope claims: https://datatracker.ietf.org/doc/html/rfc8693#section-4.2' example: superuser marketing operations missingFields: type: array items: $ref: '#/components/schemas/ProjectSettingsKyc' responses: Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Forbidden' BadRequest: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequest' NotFound: description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFound' InternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/InternalServerError' Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Unauthorized' UnprocessableEntity: description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/UnprocessableEntity' parameters: walletId: in: path name: walletId schema: $ref: '#/components/schemas/uuid' required: true description: UUID of the wallet environmentId: in: path name: environmentId required: true description: ID of the environment schema: $ref: '#/components/schemas/uuid' securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT