diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 20d520d2..bf883168 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -20,7 +20,6 @@ docs/AccountAccess.md
docs/AccountBase.md
docs/AccountBasedAccessProvider.md
docs/AccountBasedAccessProviderInfo.md
-docs/AccountBasedProviderDetails.md
docs/AccountConfig.md
docs/AccountHolderDetails.md
docs/AccountIdentifier.md
@@ -31,6 +30,7 @@ docs/AchAccountType.md
docs/AchAddress.md
docs/AchDestination.md
docs/AchPaymentInfo.md
+docs/ActionRecord.md
docs/AdapterProcessingResult.md
docs/AddAbiRequestDto.md
docs/AddAssetToExternalWalletRequest.md
@@ -52,7 +52,6 @@ docs/AddressRegistryAddVaultOptOutsResponse.md
docs/AddressRegistryError.md
docs/AddressRegistryGetVaultOptOutResponse.md
docs/AddressRegistryLegalEntity.md
-docs/AddressRegistryLegalEntityLegacy.md
docs/AddressRegistryListVaultOptOutsResponse.md
docs/AddressRegistryRemoveAllVaultOptOutsResponse.md
docs/AddressRegistryRemoveVaultOptOutResponse.md
@@ -85,6 +84,7 @@ docs/ApiUserApi.md
docs/ApprovalRequest.md
docs/ApproversConfig.md
docs/ApproversConfigApprovalGroupsInner.md
+docs/Apy.md
docs/Asset.md
docs/AssetAlreadyExistHttpError.md
docs/AssetAmount.md
@@ -116,6 +116,8 @@ docs/AssetTypesConfigInner.md
docs/AssetWallet.md
docs/AssignVaultsToLegalEntityRequest.md
docs/AssignVaultsToLegalEntityResponse.md
+docs/AttachDetachUtxoLabelsRequest.md
+docs/AttachDetachUtxoLabelsResponse.md
docs/AuditLogData.md
docs/AuditLogsApi.md
docs/AuditorData.md
@@ -140,6 +142,14 @@ docs/BlockchainsAssetsApi.md
docs/BpsFee.md
docs/BusinessEntityTypeEnum.md
docs/BusinessIdentification.md
+docs/ByorkConfigResponse.md
+docs/ByorkSetTimeoutsRequest.md
+docs/ByorkSetVerdictEnum.md
+docs/ByorkTimeoutRange.md
+docs/ByorkVerdictEnum.md
+docs/ByorkVerdictRequest.md
+docs/ByorkVerdictResponse.md
+docs/ByorkVerdictResponseStatusEnum.md
docs/CallbackHandler.md
docs/CallbackHandlerRequest.md
docs/CancelTransactionResponse.md
@@ -246,6 +256,8 @@ docs/CreateConsoleUser.md
docs/CreateContractRequest.md
docs/CreateConversionConfigOperationRequest.md
docs/CreateDisbursementConfigOperationRequest.md
+docs/CreateEarnActionRequest.md
+docs/CreateEarnActionResponse.md
docs/CreateInternalTransferRequest.md
docs/CreateInternalWalletAssetRequest.md
docs/CreateMultichainTokenRequest.md
@@ -302,7 +314,6 @@ docs/DestinationTransferPeerPathResponse.md
docs/DirectAccess.md
docs/DirectAccessProvider.md
docs/DirectAccessProviderInfo.md
-docs/DirectProviderDetails.md
docs/DisbursementAmountInstruction.md
docs/DisbursementConfigOperation.md
docs/DisbursementInstruction.md
@@ -327,6 +338,9 @@ docs/DropTransactionResponse.md
docs/DvnConfig.md
docs/DvnConfigWithConfirmations.md
docs/EVMTokenCreateParamsDto.md
+docs/EarnAsset.md
+docs/EarnBetaApi.md
+docs/EarnProvider.md
docs/EditGasStationConfigurationResponse.md
docs/EmbeddedWallet.md
docs/EmbeddedWalletAccount.md
@@ -378,6 +392,7 @@ docs/ExecutionStepError.md
docs/ExecutionStepStatusEnum.md
docs/ExecutionStepType.md
docs/ExecutionTransferOperation.md
+docs/Exposure.md
docs/ExternalAccount.md
docs/ExternalAccountLocalBankAfrica.md
docs/ExternalAccountMobileMoney.md
@@ -407,6 +422,7 @@ docs/FiatPaymentMetadata.md
docs/FiatTransfer.md
docs/FixedAmountTypeEnum.md
docs/FixedFee.md
+docs/FlowDirection.md
docs/FreezeTransactionResponse.md
docs/FunctionDoc.md
docs/Funds.md
@@ -417,7 +433,10 @@ docs/GasStationsApi.md
docs/GasslessStandardConfigurations.md
docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md
docs/GetAPIUsersResponse.md
+docs/GetActionResponse.md
+docs/GetActionsResponse.md
docs/GetAuditLogsResponse.md
+docs/GetByorkVerdictResponse.md
docs/GetConnectionsResponse.md
docs/GetConsoleUsersResponse.md
docs/GetDeployableAddressRequest.md
@@ -430,22 +449,27 @@ docs/GetMaxBipIndexUsedResponse.md
docs/GetMaxSpendableAmountResponse.md
docs/GetMpcKeysResponse.md
docs/GetNFTsResponse.md
+docs/GetOpportunitiesResponse.md
docs/GetOrdersResponse.md
docs/GetOtaStatusResponse.md
docs/GetOwnershipTokensResponse.md
docs/GetPagedExchangeAccountsResponse.md
docs/GetPagedExchangeAccountsResponsePaging.md
+docs/GetPositionsResponse.md
+docs/GetProvidersResponse.md
docs/GetSigningKeyResponseDto.md
docs/GetTransactionOperation.md
docs/GetValidationKeyResponseDto.md
docs/GetWhitelistIpAddressesResponse.md
docs/GetWorkspaceStatusResponse.md
docs/GleifData.md
+docs/GleifOtherLegalEntityName.md
docs/HttpContractDoesNotExistError.md
docs/IbanAddress.md
docs/IbanDestination.md
docs/IbanPaymentInfo.md
docs/Identification.md
+docs/IdentificationPolicyOverride.md
docs/IdlType.md
docs/IndicativeQuoteEnum.md
docs/IndicativeQuoteType.md
@@ -505,6 +529,7 @@ docs/ListBlockchainsResponse.md
docs/ListLegalEntitiesResponse.md
docs/ListOwnedCollectionsResponse.md
docs/ListOwnedTokensResponse.md
+docs/ListUtxosResponse.md
docs/ListVaultsForRegistrationResponse.md
docs/LocalBankTransferAfricaAddress.md
docs/LocalBankTransferAfricaDestination.md
@@ -561,6 +586,7 @@ docs/OneTimeAddressAccount.md
docs/OneTimeAddressPeerType.md
docs/OneTimeAddressReference.md
docs/OperationExecutionFailure.md
+docs/Opportunity.md
docs/OrderDetails.md
docs/OrderExecutionStep.md
docs/OrderSide.md
@@ -579,6 +605,8 @@ docs/Parameter.md
docs/ParameterWithValue.md
docs/ParticipantRelationshipType.md
docs/ParticipantsIdentification.md
+docs/ParticipantsIdentificationPolicy.md
+docs/ParticipantsIdentificationSupportedEndpoint.md
docs/PayeeAccount.md
docs/PayeeAccountResponse.md
docs/PayeeAccountType.md
@@ -629,6 +657,7 @@ docs/PolicyValidation.md
docs/PolicyVerdictActionEnum.md
docs/PolicyVerdictActionEnum2.md
docs/Position.md
+docs/Position2.md
docs/PostalAddress.md
docs/PreScreening.md
docs/PrefundedSettlement.md
@@ -671,6 +700,8 @@ docs/RenameConnectedAccountRequest.md
docs/RenameConnectedAccountResponse.md
docs/RenameCosigner.md
docs/RenameVaultAccountResponse.md
+docs/ResendByQueryRequest.md
+docs/ResendByQueryResponse.md
docs/ResendFailedNotificationsJobStatusResponse.md
docs/ResendFailedNotificationsRequest.md
docs/ResendFailedNotificationsResponse.md
@@ -701,6 +732,9 @@ docs/ScreeningOperationExecution.md
docs/ScreeningOperationExecutionOutput.md
docs/ScreeningOperationFailure.md
docs/ScreeningOperationType.md
+docs/ScreeningPolicyAmount.md
+docs/ScreeningPolicyAmountRange.md
+docs/ScreeningPolicyCurrency.md
docs/ScreeningPolicyResponse.md
docs/ScreeningProviderRulesConfigurationResponse.md
docs/ScreeningTRLinkAmount.md
@@ -810,8 +844,6 @@ docs/SwiftDestination.md
docs/SystemMessageInfo.md
docs/TRLinkAPIPagedResponse.md
docs/TRLinkAmount.md
-docs/TRLinkAmount2.md
-docs/TRLinkAmountRange.md
docs/TRLinkAssessTravelRuleRequest.md
docs/TRLinkAssessTravelRuleResponse.md
docs/TRLinkAssessmentDecision.md
@@ -824,7 +856,6 @@ docs/TRLinkConnectIntegrationRequest.md
docs/TRLinkCreateCustomerRequest.md
docs/TRLinkCreateIntegrationRequest.md
docs/TRLinkCreateTrmRequest.md
-docs/TRLinkCurrency.md
docs/TRLinkCustomerIntegrationResponse.md
docs/TRLinkCustomerResponse.md
docs/TRLinkDestinationTransferPeerPath.md
@@ -920,7 +951,6 @@ docs/TradingAccountType.md
docs/TradingBetaApi.md
docs/TradingErrorSchema.md
docs/TradingProvider.md
-docs/TradingProviderDetails.md
docs/Transaction.md
docs/TransactionDirection.md
docs/TransactionFee.md
@@ -1034,6 +1064,14 @@ docs/UserRole.md
docs/UserStatus.md
docs/UserType.md
docs/UsersApi.md
+docs/UtxoIdentifier.md
+docs/UtxoInput.md
+docs/UtxoInput2.md
+docs/UtxoInputSelection.md
+docs/UtxoManagementBetaApi.md
+docs/UtxoOutput.md
+docs/UtxoSelectionFilters.md
+docs/UtxoSelectionParams.md
docs/ValidateAddressResponse.md
docs/ValidateLayerZeroChannelResponse.md
docs/ValidationKeyDto.md
@@ -1114,6 +1152,7 @@ src/main/java/com/fireblocks/sdk/api/ContractTemplatesApi.java
src/main/java/com/fireblocks/sdk/api/ContractsApi.java
src/main/java/com/fireblocks/sdk/api/CosignersBetaApi.java
src/main/java/com/fireblocks/sdk/api/DeployedContractsApi.java
+src/main/java/com/fireblocks/sdk/api/EarnBetaApi.java
src/main/java/com/fireblocks/sdk/api/EmbeddedWalletsApi.java
src/main/java/com/fireblocks/sdk/api/ExchangeAccountsApi.java
src/main/java/com/fireblocks/sdk/api/ExternalWalletsApi.java
@@ -1141,6 +1180,7 @@ src/main/java/com/fireblocks/sdk/api/TransactionsApi.java
src/main/java/com/fireblocks/sdk/api/TravelRuleApi.java
src/main/java/com/fireblocks/sdk/api/UserGroupsBetaApi.java
src/main/java/com/fireblocks/sdk/api/UsersApi.java
+src/main/java/com/fireblocks/sdk/api/UtxoManagementBetaApi.java
src/main/java/com/fireblocks/sdk/api/VaultsApi.java
src/main/java/com/fireblocks/sdk/api/Web3ConnectionsApi.java
src/main/java/com/fireblocks/sdk/api/WebhooksApi.java
@@ -1161,7 +1201,6 @@ src/main/java/com/fireblocks/sdk/model/AccountAccess.java
src/main/java/com/fireblocks/sdk/model/AccountBase.java
src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java
src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfo.java
-src/main/java/com/fireblocks/sdk/model/AccountBasedProviderDetails.java
src/main/java/com/fireblocks/sdk/model/AccountConfig.java
src/main/java/com/fireblocks/sdk/model/AccountHolderDetails.java
src/main/java/com/fireblocks/sdk/model/AccountIdentifier.java
@@ -1172,6 +1211,7 @@ src/main/java/com/fireblocks/sdk/model/AchAccountType.java
src/main/java/com/fireblocks/sdk/model/AchAddress.java
src/main/java/com/fireblocks/sdk/model/AchDestination.java
src/main/java/com/fireblocks/sdk/model/AchPaymentInfo.java
+src/main/java/com/fireblocks/sdk/model/ActionRecord.java
src/main/java/com/fireblocks/sdk/model/AdapterProcessingResult.java
src/main/java/com/fireblocks/sdk/model/AddAbiRequestDto.java
src/main/java/com/fireblocks/sdk/model/AddAssetToExternalWalletRequest.java
@@ -1193,7 +1233,6 @@ src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponse.ja
src/main/java/com/fireblocks/sdk/model/AddressRegistryError.java
src/main/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponse.java
src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntity.java
-src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacy.java
src/main/java/com/fireblocks/sdk/model/AddressRegistryListVaultOptOutsResponse.java
src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponse.java
src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveVaultOptOutResponse.java
@@ -1225,6 +1264,7 @@ src/main/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponse.java
src/main/java/com/fireblocks/sdk/model/ApprovalRequest.java
src/main/java/com/fireblocks/sdk/model/ApproversConfig.java
src/main/java/com/fireblocks/sdk/model/ApproversConfigApprovalGroupsInner.java
+src/main/java/com/fireblocks/sdk/model/Apy.java
src/main/java/com/fireblocks/sdk/model/Asset.java
src/main/java/com/fireblocks/sdk/model/AssetAlreadyExistHttpError.java
src/main/java/com/fireblocks/sdk/model/AssetAmount.java
@@ -1256,6 +1296,8 @@ src/main/java/com/fireblocks/sdk/model/AssetTypesConfigInner.java
src/main/java/com/fireblocks/sdk/model/AssetWallet.java
src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequest.java
src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponse.java
+src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequest.java
+src/main/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponse.java
src/main/java/com/fireblocks/sdk/model/AuditLogData.java
src/main/java/com/fireblocks/sdk/model/AuditorData.java
src/main/java/com/fireblocks/sdk/model/AuthorizationGroups.java
@@ -1278,6 +1320,14 @@ src/main/java/com/fireblocks/sdk/model/BlockchainTransfer.java
src/main/java/com/fireblocks/sdk/model/BpsFee.java
src/main/java/com/fireblocks/sdk/model/BusinessEntityTypeEnum.java
src/main/java/com/fireblocks/sdk/model/BusinessIdentification.java
+src/main/java/com/fireblocks/sdk/model/ByorkConfigResponse.java
+src/main/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequest.java
+src/main/java/com/fireblocks/sdk/model/ByorkSetVerdictEnum.java
+src/main/java/com/fireblocks/sdk/model/ByorkTimeoutRange.java
+src/main/java/com/fireblocks/sdk/model/ByorkVerdictEnum.java
+src/main/java/com/fireblocks/sdk/model/ByorkVerdictRequest.java
+src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponse.java
+src/main/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnum.java
src/main/java/com/fireblocks/sdk/model/CallbackHandler.java
src/main/java/com/fireblocks/sdk/model/CallbackHandlerRequest.java
src/main/java/com/fireblocks/sdk/model/CancelTransactionResponse.java
@@ -1376,6 +1426,8 @@ src/main/java/com/fireblocks/sdk/model/CreateConsoleUser.java
src/main/java/com/fireblocks/sdk/model/CreateContractRequest.java
src/main/java/com/fireblocks/sdk/model/CreateConversionConfigOperationRequest.java
src/main/java/com/fireblocks/sdk/model/CreateDisbursementConfigOperationRequest.java
+src/main/java/com/fireblocks/sdk/model/CreateEarnActionRequest.java
+src/main/java/com/fireblocks/sdk/model/CreateEarnActionResponse.java
src/main/java/com/fireblocks/sdk/model/CreateInternalTransferRequest.java
src/main/java/com/fireblocks/sdk/model/CreateInternalWalletAssetRequest.java
src/main/java/com/fireblocks/sdk/model/CreateMultichainTokenRequest.java
@@ -1431,7 +1483,6 @@ src/main/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponse.java
src/main/java/com/fireblocks/sdk/model/DirectAccess.java
src/main/java/com/fireblocks/sdk/model/DirectAccessProvider.java
src/main/java/com/fireblocks/sdk/model/DirectAccessProviderInfo.java
-src/main/java/com/fireblocks/sdk/model/DirectProviderDetails.java
src/main/java/com/fireblocks/sdk/model/DisbursementAmountInstruction.java
src/main/java/com/fireblocks/sdk/model/DisbursementConfigOperation.java
src/main/java/com/fireblocks/sdk/model/DisbursementInstruction.java
@@ -1456,6 +1507,8 @@ src/main/java/com/fireblocks/sdk/model/DropTransactionResponse.java
src/main/java/com/fireblocks/sdk/model/DvnConfig.java
src/main/java/com/fireblocks/sdk/model/DvnConfigWithConfirmations.java
src/main/java/com/fireblocks/sdk/model/EVMTokenCreateParamsDto.java
+src/main/java/com/fireblocks/sdk/model/EarnAsset.java
+src/main/java/com/fireblocks/sdk/model/EarnProvider.java
src/main/java/com/fireblocks/sdk/model/EditGasStationConfigurationResponse.java
src/main/java/com/fireblocks/sdk/model/EmbeddedWallet.java
src/main/java/com/fireblocks/sdk/model/EmbeddedWalletAccount.java
@@ -1505,6 +1558,7 @@ src/main/java/com/fireblocks/sdk/model/ExecutionStepError.java
src/main/java/com/fireblocks/sdk/model/ExecutionStepStatusEnum.java
src/main/java/com/fireblocks/sdk/model/ExecutionStepType.java
src/main/java/com/fireblocks/sdk/model/ExecutionTransferOperation.java
+src/main/java/com/fireblocks/sdk/model/Exposure.java
src/main/java/com/fireblocks/sdk/model/ExternalAccount.java
src/main/java/com/fireblocks/sdk/model/ExternalAccountLocalBankAfrica.java
src/main/java/com/fireblocks/sdk/model/ExternalAccountMobileMoney.java
@@ -1532,6 +1586,7 @@ src/main/java/com/fireblocks/sdk/model/FiatPaymentMetadata.java
src/main/java/com/fireblocks/sdk/model/FiatTransfer.java
src/main/java/com/fireblocks/sdk/model/FixedAmountTypeEnum.java
src/main/java/com/fireblocks/sdk/model/FixedFee.java
+src/main/java/com/fireblocks/sdk/model/FlowDirection.java
src/main/java/com/fireblocks/sdk/model/FreezeTransactionResponse.java
src/main/java/com/fireblocks/sdk/model/FunctionDoc.java
src/main/java/com/fireblocks/sdk/model/Funds.java
@@ -1541,7 +1596,10 @@ src/main/java/com/fireblocks/sdk/model/GasStationPropertiesResponse.java
src/main/java/com/fireblocks/sdk/model/GasslessStandardConfigurations.java
src/main/java/com/fireblocks/sdk/model/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.java
src/main/java/com/fireblocks/sdk/model/GetAPIUsersResponse.java
+src/main/java/com/fireblocks/sdk/model/GetActionResponse.java
+src/main/java/com/fireblocks/sdk/model/GetActionsResponse.java
src/main/java/com/fireblocks/sdk/model/GetAuditLogsResponse.java
+src/main/java/com/fireblocks/sdk/model/GetByorkVerdictResponse.java
src/main/java/com/fireblocks/sdk/model/GetConnectionsResponse.java
src/main/java/com/fireblocks/sdk/model/GetConsoleUsersResponse.java
src/main/java/com/fireblocks/sdk/model/GetDeployableAddressRequest.java
@@ -1554,22 +1612,27 @@ src/main/java/com/fireblocks/sdk/model/GetMaxBipIndexUsedResponse.java
src/main/java/com/fireblocks/sdk/model/GetMaxSpendableAmountResponse.java
src/main/java/com/fireblocks/sdk/model/GetMpcKeysResponse.java
src/main/java/com/fireblocks/sdk/model/GetNFTsResponse.java
+src/main/java/com/fireblocks/sdk/model/GetOpportunitiesResponse.java
src/main/java/com/fireblocks/sdk/model/GetOrdersResponse.java
src/main/java/com/fireblocks/sdk/model/GetOtaStatusResponse.java
src/main/java/com/fireblocks/sdk/model/GetOwnershipTokensResponse.java
src/main/java/com/fireblocks/sdk/model/GetPagedExchangeAccountsResponse.java
src/main/java/com/fireblocks/sdk/model/GetPagedExchangeAccountsResponsePaging.java
+src/main/java/com/fireblocks/sdk/model/GetPositionsResponse.java
+src/main/java/com/fireblocks/sdk/model/GetProvidersResponse.java
src/main/java/com/fireblocks/sdk/model/GetSigningKeyResponseDto.java
src/main/java/com/fireblocks/sdk/model/GetTransactionOperation.java
src/main/java/com/fireblocks/sdk/model/GetValidationKeyResponseDto.java
src/main/java/com/fireblocks/sdk/model/GetWhitelistIpAddressesResponse.java
src/main/java/com/fireblocks/sdk/model/GetWorkspaceStatusResponse.java
src/main/java/com/fireblocks/sdk/model/GleifData.java
+src/main/java/com/fireblocks/sdk/model/GleifOtherLegalEntityName.java
src/main/java/com/fireblocks/sdk/model/HttpContractDoesNotExistError.java
src/main/java/com/fireblocks/sdk/model/IbanAddress.java
src/main/java/com/fireblocks/sdk/model/IbanDestination.java
src/main/java/com/fireblocks/sdk/model/IbanPaymentInfo.java
src/main/java/com/fireblocks/sdk/model/Identification.java
+src/main/java/com/fireblocks/sdk/model/IdentificationPolicyOverride.java
src/main/java/com/fireblocks/sdk/model/IdlType.java
src/main/java/com/fireblocks/sdk/model/IndicativeQuoteEnum.java
src/main/java/com/fireblocks/sdk/model/IndicativeQuoteType.java
@@ -1626,6 +1689,7 @@ src/main/java/com/fireblocks/sdk/model/ListBlockchainsResponse.java
src/main/java/com/fireblocks/sdk/model/ListLegalEntitiesResponse.java
src/main/java/com/fireblocks/sdk/model/ListOwnedCollectionsResponse.java
src/main/java/com/fireblocks/sdk/model/ListOwnedTokensResponse.java
+src/main/java/com/fireblocks/sdk/model/ListUtxosResponse.java
src/main/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponse.java
src/main/java/com/fireblocks/sdk/model/LocalBankTransferAfricaAddress.java
src/main/java/com/fireblocks/sdk/model/LocalBankTransferAfricaDestination.java
@@ -1678,6 +1742,7 @@ src/main/java/com/fireblocks/sdk/model/OneTimeAddressAccount.java
src/main/java/com/fireblocks/sdk/model/OneTimeAddressPeerType.java
src/main/java/com/fireblocks/sdk/model/OneTimeAddressReference.java
src/main/java/com/fireblocks/sdk/model/OperationExecutionFailure.java
+src/main/java/com/fireblocks/sdk/model/Opportunity.java
src/main/java/com/fireblocks/sdk/model/OrderDetails.java
src/main/java/com/fireblocks/sdk/model/OrderExecutionStep.java
src/main/java/com/fireblocks/sdk/model/OrderSide.java
@@ -1695,6 +1760,8 @@ src/main/java/com/fireblocks/sdk/model/Parameter.java
src/main/java/com/fireblocks/sdk/model/ParameterWithValue.java
src/main/java/com/fireblocks/sdk/model/ParticipantRelationshipType.java
src/main/java/com/fireblocks/sdk/model/ParticipantsIdentification.java
+src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicy.java
+src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpoint.java
src/main/java/com/fireblocks/sdk/model/PayeeAccount.java
src/main/java/com/fireblocks/sdk/model/PayeeAccountResponse.java
src/main/java/com/fireblocks/sdk/model/PayeeAccountType.java
@@ -1742,6 +1809,7 @@ src/main/java/com/fireblocks/sdk/model/PolicyValidation.java
src/main/java/com/fireblocks/sdk/model/PolicyVerdictActionEnum.java
src/main/java/com/fireblocks/sdk/model/PolicyVerdictActionEnum2.java
src/main/java/com/fireblocks/sdk/model/Position.java
+src/main/java/com/fireblocks/sdk/model/Position2.java
src/main/java/com/fireblocks/sdk/model/PostalAddress.java
src/main/java/com/fireblocks/sdk/model/PreScreening.java
src/main/java/com/fireblocks/sdk/model/PrefundedSettlement.java
@@ -1784,6 +1852,8 @@ src/main/java/com/fireblocks/sdk/model/RenameConnectedAccountRequest.java
src/main/java/com/fireblocks/sdk/model/RenameConnectedAccountResponse.java
src/main/java/com/fireblocks/sdk/model/RenameCosigner.java
src/main/java/com/fireblocks/sdk/model/RenameVaultAccountResponse.java
+src/main/java/com/fireblocks/sdk/model/ResendByQueryRequest.java
+src/main/java/com/fireblocks/sdk/model/ResendByQueryResponse.java
src/main/java/com/fireblocks/sdk/model/ResendFailedNotificationsJobStatusResponse.java
src/main/java/com/fireblocks/sdk/model/ResendFailedNotificationsRequest.java
src/main/java/com/fireblocks/sdk/model/ResendFailedNotificationsResponse.java
@@ -1813,6 +1883,9 @@ src/main/java/com/fireblocks/sdk/model/ScreeningOperationExecution.java
src/main/java/com/fireblocks/sdk/model/ScreeningOperationExecutionOutput.java
src/main/java/com/fireblocks/sdk/model/ScreeningOperationFailure.java
src/main/java/com/fireblocks/sdk/model/ScreeningOperationType.java
+src/main/java/com/fireblocks/sdk/model/ScreeningPolicyAmount.java
+src/main/java/com/fireblocks/sdk/model/ScreeningPolicyAmountRange.java
+src/main/java/com/fireblocks/sdk/model/ScreeningPolicyCurrency.java
src/main/java/com/fireblocks/sdk/model/ScreeningPolicyResponse.java
src/main/java/com/fireblocks/sdk/model/ScreeningProviderRulesConfigurationResponse.java
src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkAmount.java
@@ -1920,8 +1993,6 @@ src/main/java/com/fireblocks/sdk/model/SwiftDestination.java
src/main/java/com/fireblocks/sdk/model/SystemMessageInfo.java
src/main/java/com/fireblocks/sdk/model/TRLinkAPIPagedResponse.java
src/main/java/com/fireblocks/sdk/model/TRLinkAmount.java
-src/main/java/com/fireblocks/sdk/model/TRLinkAmount2.java
-src/main/java/com/fireblocks/sdk/model/TRLinkAmountRange.java
src/main/java/com/fireblocks/sdk/model/TRLinkAssessTravelRuleRequest.java
src/main/java/com/fireblocks/sdk/model/TRLinkAssessTravelRuleResponse.java
src/main/java/com/fireblocks/sdk/model/TRLinkAssessmentDecision.java
@@ -1934,7 +2005,6 @@ src/main/java/com/fireblocks/sdk/model/TRLinkConnectIntegrationRequest.java
src/main/java/com/fireblocks/sdk/model/TRLinkCreateCustomerRequest.java
src/main/java/com/fireblocks/sdk/model/TRLinkCreateIntegrationRequest.java
src/main/java/com/fireblocks/sdk/model/TRLinkCreateTrmRequest.java
-src/main/java/com/fireblocks/sdk/model/TRLinkCurrency.java
src/main/java/com/fireblocks/sdk/model/TRLinkCustomerIntegrationResponse.java
src/main/java/com/fireblocks/sdk/model/TRLinkCustomerResponse.java
src/main/java/com/fireblocks/sdk/model/TRLinkDestinationTransferPeerPath.java
@@ -2026,7 +2096,6 @@ src/main/java/com/fireblocks/sdk/model/TotalSupplyPagedResponse.java
src/main/java/com/fireblocks/sdk/model/TradingAccountType.java
src/main/java/com/fireblocks/sdk/model/TradingErrorSchema.java
src/main/java/com/fireblocks/sdk/model/TradingProvider.java
-src/main/java/com/fireblocks/sdk/model/TradingProviderDetails.java
src/main/java/com/fireblocks/sdk/model/Transaction.java
src/main/java/com/fireblocks/sdk/model/TransactionDirection.java
src/main/java/com/fireblocks/sdk/model/TransactionFee.java
@@ -2136,6 +2205,13 @@ src/main/java/com/fireblocks/sdk/model/UserResponse.java
src/main/java/com/fireblocks/sdk/model/UserRole.java
src/main/java/com/fireblocks/sdk/model/UserStatus.java
src/main/java/com/fireblocks/sdk/model/UserType.java
+src/main/java/com/fireblocks/sdk/model/UtxoIdentifier.java
+src/main/java/com/fireblocks/sdk/model/UtxoInput.java
+src/main/java/com/fireblocks/sdk/model/UtxoInput2.java
+src/main/java/com/fireblocks/sdk/model/UtxoInputSelection.java
+src/main/java/com/fireblocks/sdk/model/UtxoOutput.java
+src/main/java/com/fireblocks/sdk/model/UtxoSelectionFilters.java
+src/main/java/com/fireblocks/sdk/model/UtxoSelectionParams.java
src/main/java/com/fireblocks/sdk/model/ValidateAddressResponse.java
src/main/java/com/fireblocks/sdk/model/ValidateLayerZeroChannelResponse.java
src/main/java/com/fireblocks/sdk/model/ValidationKeyDto.java
@@ -2188,6 +2264,7 @@ src/test/java/com/fireblocks/sdk/api/ContractTemplatesApiTest.java
src/test/java/com/fireblocks/sdk/api/ContractsApiTest.java
src/test/java/com/fireblocks/sdk/api/CosignersBetaApiTest.java
src/test/java/com/fireblocks/sdk/api/DeployedContractsApiTest.java
+src/test/java/com/fireblocks/sdk/api/EarnBetaApiTest.java
src/test/java/com/fireblocks/sdk/api/EmbeddedWalletsApiTest.java
src/test/java/com/fireblocks/sdk/api/ExchangeAccountsApiTest.java
src/test/java/com/fireblocks/sdk/api/ExternalWalletsApiTest.java
@@ -2215,6 +2292,7 @@ src/test/java/com/fireblocks/sdk/api/TransactionsApiTest.java
src/test/java/com/fireblocks/sdk/api/TravelRuleApiTest.java
src/test/java/com/fireblocks/sdk/api/UserGroupsBetaApiTest.java
src/test/java/com/fireblocks/sdk/api/UsersApiTest.java
+src/test/java/com/fireblocks/sdk/api/UtxoManagementBetaApiTest.java
src/test/java/com/fireblocks/sdk/api/VaultsApiTest.java
src/test/java/com/fireblocks/sdk/api/Web3ConnectionsApiTest.java
src/test/java/com/fireblocks/sdk/api/WebhooksApiTest.java
@@ -2233,7 +2311,6 @@ src/test/java/com/fireblocks/sdk/model/AccountAccessTest.java
src/test/java/com/fireblocks/sdk/model/AccountBaseTest.java
src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfoTest.java
src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderTest.java
-src/test/java/com/fireblocks/sdk/model/AccountBasedProviderDetailsTest.java
src/test/java/com/fireblocks/sdk/model/AccountConfigTest.java
src/test/java/com/fireblocks/sdk/model/AccountHolderDetailsTest.java
src/test/java/com/fireblocks/sdk/model/AccountIdentifierTest.java
@@ -2245,6 +2322,7 @@ src/test/java/com/fireblocks/sdk/model/AchAccountTypeTest.java
src/test/java/com/fireblocks/sdk/model/AchAddressTest.java
src/test/java/com/fireblocks/sdk/model/AchDestinationTest.java
src/test/java/com/fireblocks/sdk/model/AchPaymentInfoTest.java
+src/test/java/com/fireblocks/sdk/model/ActionRecordTest.java
src/test/java/com/fireblocks/sdk/model/AdapterProcessingResultTest.java
src/test/java/com/fireblocks/sdk/model/AddAbiRequestDtoTest.java
src/test/java/com/fireblocks/sdk/model/AddAssetToExternalWalletRequestTest.java
@@ -2265,7 +2343,6 @@ src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestVaul
src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponseTest.java
src/test/java/com/fireblocks/sdk/model/AddressRegistryErrorTest.java
src/test/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponseTest.java
-src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacyTest.java
src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityTest.java
src/test/java/com/fireblocks/sdk/model/AddressRegistryListVaultOptOutsResponseTest.java
src/test/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponseTest.java
@@ -2298,6 +2375,7 @@ src/test/java/com/fireblocks/sdk/model/ApiKeysPaginatedResponseTest.java
src/test/java/com/fireblocks/sdk/model/ApprovalRequestTest.java
src/test/java/com/fireblocks/sdk/model/ApproversConfigApprovalGroupsInnerTest.java
src/test/java/com/fireblocks/sdk/model/ApproversConfigTest.java
+src/test/java/com/fireblocks/sdk/model/ApyTest.java
src/test/java/com/fireblocks/sdk/model/AssetAlreadyExistHttpErrorTest.java
src/test/java/com/fireblocks/sdk/model/AssetAmountTest.java
src/test/java/com/fireblocks/sdk/model/AssetBadRequestErrorResponseTest.java
@@ -2329,6 +2407,8 @@ src/test/java/com/fireblocks/sdk/model/AssetTypesConfigInnerTest.java
src/test/java/com/fireblocks/sdk/model/AssetWalletTest.java
src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequestTest.java
src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponseTest.java
+src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsRequestTest.java
+src/test/java/com/fireblocks/sdk/model/AttachDetachUtxoLabelsResponseTest.java
src/test/java/com/fireblocks/sdk/model/AuditLogDataTest.java
src/test/java/com/fireblocks/sdk/model/AuditorDataTest.java
src/test/java/com/fireblocks/sdk/model/AuthorizationGroupsTest.java
@@ -2351,6 +2431,14 @@ src/test/java/com/fireblocks/sdk/model/BlockchainTransferTest.java
src/test/java/com/fireblocks/sdk/model/BpsFeeTest.java
src/test/java/com/fireblocks/sdk/model/BusinessEntityTypeEnumTest.java
src/test/java/com/fireblocks/sdk/model/BusinessIdentificationTest.java
+src/test/java/com/fireblocks/sdk/model/ByorkConfigResponseTest.java
+src/test/java/com/fireblocks/sdk/model/ByorkSetTimeoutsRequestTest.java
+src/test/java/com/fireblocks/sdk/model/ByorkSetVerdictEnumTest.java
+src/test/java/com/fireblocks/sdk/model/ByorkTimeoutRangeTest.java
+src/test/java/com/fireblocks/sdk/model/ByorkVerdictEnumTest.java
+src/test/java/com/fireblocks/sdk/model/ByorkVerdictRequestTest.java
+src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseStatusEnumTest.java
+src/test/java/com/fireblocks/sdk/model/ByorkVerdictResponseTest.java
src/test/java/com/fireblocks/sdk/model/CallbackHandlerRequestTest.java
src/test/java/com/fireblocks/sdk/model/CallbackHandlerTest.java
src/test/java/com/fireblocks/sdk/model/CancelTransactionResponseTest.java
@@ -2449,6 +2537,8 @@ src/test/java/com/fireblocks/sdk/model/CreateConsoleUserTest.java
src/test/java/com/fireblocks/sdk/model/CreateContractRequestTest.java
src/test/java/com/fireblocks/sdk/model/CreateConversionConfigOperationRequestTest.java
src/test/java/com/fireblocks/sdk/model/CreateDisbursementConfigOperationRequestTest.java
+src/test/java/com/fireblocks/sdk/model/CreateEarnActionRequestTest.java
+src/test/java/com/fireblocks/sdk/model/CreateEarnActionResponseTest.java
src/test/java/com/fireblocks/sdk/model/CreateInternalTransferRequestTest.java
src/test/java/com/fireblocks/sdk/model/CreateInternalWalletAssetRequestTest.java
src/test/java/com/fireblocks/sdk/model/CreateMultichainTokenRequestTest.java
@@ -2504,7 +2594,6 @@ src/test/java/com/fireblocks/sdk/model/DestinationTransferPeerPathTest.java
src/test/java/com/fireblocks/sdk/model/DirectAccessProviderInfoTest.java
src/test/java/com/fireblocks/sdk/model/DirectAccessProviderTest.java
src/test/java/com/fireblocks/sdk/model/DirectAccessTest.java
-src/test/java/com/fireblocks/sdk/model/DirectProviderDetailsTest.java
src/test/java/com/fireblocks/sdk/model/DisbursementAmountInstructionTest.java
src/test/java/com/fireblocks/sdk/model/DisbursementConfigOperationTest.java
src/test/java/com/fireblocks/sdk/model/DisbursementInstructionOutputTest.java
@@ -2529,6 +2618,8 @@ src/test/java/com/fireblocks/sdk/model/DropTransactionResponseTest.java
src/test/java/com/fireblocks/sdk/model/DvnConfigTest.java
src/test/java/com/fireblocks/sdk/model/DvnConfigWithConfirmationsTest.java
src/test/java/com/fireblocks/sdk/model/EVMTokenCreateParamsDtoTest.java
+src/test/java/com/fireblocks/sdk/model/EarnAssetTest.java
+src/test/java/com/fireblocks/sdk/model/EarnProviderTest.java
src/test/java/com/fireblocks/sdk/model/EditGasStationConfigurationResponseTest.java
src/test/java/com/fireblocks/sdk/model/EmbeddedWalletAccountTest.java
src/test/java/com/fireblocks/sdk/model/EmbeddedWalletAddressDetailsTest.java
@@ -2578,6 +2669,7 @@ src/test/java/com/fireblocks/sdk/model/ExecutionStepErrorTest.java
src/test/java/com/fireblocks/sdk/model/ExecutionStepStatusEnumTest.java
src/test/java/com/fireblocks/sdk/model/ExecutionStepTypeTest.java
src/test/java/com/fireblocks/sdk/model/ExecutionTransferOperationTest.java
+src/test/java/com/fireblocks/sdk/model/ExposureTest.java
src/test/java/com/fireblocks/sdk/model/ExternalAccountLocalBankAfricaTest.java
src/test/java/com/fireblocks/sdk/model/ExternalAccountMobileMoneyProviderTest.java
src/test/java/com/fireblocks/sdk/model/ExternalAccountMobileMoneyTest.java
@@ -2605,6 +2697,7 @@ src/test/java/com/fireblocks/sdk/model/FiatPaymentMetadataTest.java
src/test/java/com/fireblocks/sdk/model/FiatTransferTest.java
src/test/java/com/fireblocks/sdk/model/FixedAmountTypeEnumTest.java
src/test/java/com/fireblocks/sdk/model/FixedFeeTest.java
+src/test/java/com/fireblocks/sdk/model/FlowDirectionTest.java
src/test/java/com/fireblocks/sdk/model/FreezeTransactionResponseTest.java
src/test/java/com/fireblocks/sdk/model/FunctionDocTest.java
src/test/java/com/fireblocks/sdk/model/FundsTest.java
@@ -2614,7 +2707,10 @@ src/test/java/com/fireblocks/sdk/model/GasStationPropertiesResponseTest.java
src/test/java/com/fireblocks/sdk/model/GasslessStandardConfigurationsGaslessStandardConfigurationsValueTest.java
src/test/java/com/fireblocks/sdk/model/GasslessStandardConfigurationsTest.java
src/test/java/com/fireblocks/sdk/model/GetAPIUsersResponseTest.java
+src/test/java/com/fireblocks/sdk/model/GetActionResponseTest.java
+src/test/java/com/fireblocks/sdk/model/GetActionsResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetAuditLogsResponseTest.java
+src/test/java/com/fireblocks/sdk/model/GetByorkVerdictResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetConnectionsResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetConsoleUsersResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetDeployableAddressRequestTest.java
@@ -2627,21 +2723,26 @@ src/test/java/com/fireblocks/sdk/model/GetMaxBipIndexUsedResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetMaxSpendableAmountResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetMpcKeysResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetNFTsResponseTest.java
+src/test/java/com/fireblocks/sdk/model/GetOpportunitiesResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetOrdersResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetOtaStatusResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetOwnershipTokensResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetPagedExchangeAccountsResponsePagingTest.java
src/test/java/com/fireblocks/sdk/model/GetPagedExchangeAccountsResponseTest.java
+src/test/java/com/fireblocks/sdk/model/GetPositionsResponseTest.java
+src/test/java/com/fireblocks/sdk/model/GetProvidersResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetSigningKeyResponseDtoTest.java
src/test/java/com/fireblocks/sdk/model/GetTransactionOperationTest.java
src/test/java/com/fireblocks/sdk/model/GetValidationKeyResponseDtoTest.java
src/test/java/com/fireblocks/sdk/model/GetWhitelistIpAddressesResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetWorkspaceStatusResponseTest.java
src/test/java/com/fireblocks/sdk/model/GleifDataTest.java
+src/test/java/com/fireblocks/sdk/model/GleifOtherLegalEntityNameTest.java
src/test/java/com/fireblocks/sdk/model/HttpContractDoesNotExistErrorTest.java
src/test/java/com/fireblocks/sdk/model/IbanAddressTest.java
src/test/java/com/fireblocks/sdk/model/IbanDestinationTest.java
src/test/java/com/fireblocks/sdk/model/IbanPaymentInfoTest.java
+src/test/java/com/fireblocks/sdk/model/IdentificationPolicyOverrideTest.java
src/test/java/com/fireblocks/sdk/model/IdentificationTest.java
src/test/java/com/fireblocks/sdk/model/IdlTypeTest.java
src/test/java/com/fireblocks/sdk/model/IndicativeQuoteEnumTest.java
@@ -2699,6 +2800,7 @@ src/test/java/com/fireblocks/sdk/model/ListBlockchainsResponseTest.java
src/test/java/com/fireblocks/sdk/model/ListLegalEntitiesResponseTest.java
src/test/java/com/fireblocks/sdk/model/ListOwnedCollectionsResponseTest.java
src/test/java/com/fireblocks/sdk/model/ListOwnedTokensResponseTest.java
+src/test/java/com/fireblocks/sdk/model/ListUtxosResponseTest.java
src/test/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponseTest.java
src/test/java/com/fireblocks/sdk/model/LocalBankTransferAfricaAddressTest.java
src/test/java/com/fireblocks/sdk/model/LocalBankTransferAfricaDestinationTest.java
@@ -2751,6 +2853,7 @@ src/test/java/com/fireblocks/sdk/model/OneTimeAddressPeerTypeTest.java
src/test/java/com/fireblocks/sdk/model/OneTimeAddressReferenceTest.java
src/test/java/com/fireblocks/sdk/model/OneTimeAddressTest.java
src/test/java/com/fireblocks/sdk/model/OperationExecutionFailureTest.java
+src/test/java/com/fireblocks/sdk/model/OpportunityTest.java
src/test/java/com/fireblocks/sdk/model/OrderDetailsTest.java
src/test/java/com/fireblocks/sdk/model/OrderExecutionStepTest.java
src/test/java/com/fireblocks/sdk/model/OrderSideTest.java
@@ -2767,6 +2870,8 @@ src/test/java/com/fireblocks/sdk/model/PairApiKeyResponseTest.java
src/test/java/com/fireblocks/sdk/model/ParameterTest.java
src/test/java/com/fireblocks/sdk/model/ParameterWithValueTest.java
src/test/java/com/fireblocks/sdk/model/ParticipantRelationshipTypeTest.java
+src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicyTest.java
+src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpointTest.java
src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationTest.java
src/test/java/com/fireblocks/sdk/model/PayeeAccountResponseTest.java
src/test/java/com/fireblocks/sdk/model/PayeeAccountTest.java
@@ -2814,6 +2919,7 @@ src/test/java/com/fireblocks/sdk/model/PolicyTypeTest.java
src/test/java/com/fireblocks/sdk/model/PolicyValidationTest.java
src/test/java/com/fireblocks/sdk/model/PolicyVerdictActionEnum2Test.java
src/test/java/com/fireblocks/sdk/model/PolicyVerdictActionEnumTest.java
+src/test/java/com/fireblocks/sdk/model/Position2Test.java
src/test/java/com/fireblocks/sdk/model/PositionTest.java
src/test/java/com/fireblocks/sdk/model/PostalAddressTest.java
src/test/java/com/fireblocks/sdk/model/PreScreeningTest.java
@@ -2857,6 +2963,8 @@ src/test/java/com/fireblocks/sdk/model/RenameConnectedAccountRequestTest.java
src/test/java/com/fireblocks/sdk/model/RenameConnectedAccountResponseTest.java
src/test/java/com/fireblocks/sdk/model/RenameCosignerTest.java
src/test/java/com/fireblocks/sdk/model/RenameVaultAccountResponseTest.java
+src/test/java/com/fireblocks/sdk/model/ResendByQueryRequestTest.java
+src/test/java/com/fireblocks/sdk/model/ResendByQueryResponseTest.java
src/test/java/com/fireblocks/sdk/model/ResendFailedNotificationsJobStatusResponseTest.java
src/test/java/com/fireblocks/sdk/model/ResendFailedNotificationsRequestTest.java
src/test/java/com/fireblocks/sdk/model/ResendFailedNotificationsResponseTest.java
@@ -2886,6 +2994,9 @@ src/test/java/com/fireblocks/sdk/model/ScreeningOperationExecutionOutputTest.jav
src/test/java/com/fireblocks/sdk/model/ScreeningOperationExecutionTest.java
src/test/java/com/fireblocks/sdk/model/ScreeningOperationFailureTest.java
src/test/java/com/fireblocks/sdk/model/ScreeningOperationTypeTest.java
+src/test/java/com/fireblocks/sdk/model/ScreeningPolicyAmountRangeTest.java
+src/test/java/com/fireblocks/sdk/model/ScreeningPolicyAmountTest.java
+src/test/java/com/fireblocks/sdk/model/ScreeningPolicyCurrencyTest.java
src/test/java/com/fireblocks/sdk/model/ScreeningPolicyResponseTest.java
src/test/java/com/fireblocks/sdk/model/ScreeningProviderRulesConfigurationResponseTest.java
src/test/java/com/fireblocks/sdk/model/ScreeningTRLinkAmountTest.java
@@ -2992,8 +3103,6 @@ src/test/java/com/fireblocks/sdk/model/SwiftAddressTest.java
src/test/java/com/fireblocks/sdk/model/SwiftDestinationTest.java
src/test/java/com/fireblocks/sdk/model/SystemMessageInfoTest.java
src/test/java/com/fireblocks/sdk/model/TRLinkAPIPagedResponseTest.java
-src/test/java/com/fireblocks/sdk/model/TRLinkAmount2Test.java
-src/test/java/com/fireblocks/sdk/model/TRLinkAmountRangeTest.java
src/test/java/com/fireblocks/sdk/model/TRLinkAmountTest.java
src/test/java/com/fireblocks/sdk/model/TRLinkAssessTravelRuleRequestTest.java
src/test/java/com/fireblocks/sdk/model/TRLinkAssessTravelRuleResponseTest.java
@@ -3007,7 +3116,6 @@ src/test/java/com/fireblocks/sdk/model/TRLinkConnectIntegrationRequestTest.java
src/test/java/com/fireblocks/sdk/model/TRLinkCreateCustomerRequestTest.java
src/test/java/com/fireblocks/sdk/model/TRLinkCreateIntegrationRequestTest.java
src/test/java/com/fireblocks/sdk/model/TRLinkCreateTrmRequestTest.java
-src/test/java/com/fireblocks/sdk/model/TRLinkCurrencyTest.java
src/test/java/com/fireblocks/sdk/model/TRLinkCustomerIntegrationResponseTest.java
src/test/java/com/fireblocks/sdk/model/TRLinkCustomerResponseTest.java
src/test/java/com/fireblocks/sdk/model/TRLinkDestinationTransferPeerPathTest.java
@@ -3098,7 +3206,6 @@ src/test/java/com/fireblocks/sdk/model/TotalSupplyItemDtoTest.java
src/test/java/com/fireblocks/sdk/model/TotalSupplyPagedResponseTest.java
src/test/java/com/fireblocks/sdk/model/TradingAccountTypeTest.java
src/test/java/com/fireblocks/sdk/model/TradingErrorSchemaTest.java
-src/test/java/com/fireblocks/sdk/model/TradingProviderDetailsTest.java
src/test/java/com/fireblocks/sdk/model/TradingProviderTest.java
src/test/java/com/fireblocks/sdk/model/TransactionDirectionTest.java
src/test/java/com/fireblocks/sdk/model/TransactionFeeTest.java
@@ -3209,6 +3316,13 @@ src/test/java/com/fireblocks/sdk/model/UserResponseTest.java
src/test/java/com/fireblocks/sdk/model/UserRoleTest.java
src/test/java/com/fireblocks/sdk/model/UserStatusTest.java
src/test/java/com/fireblocks/sdk/model/UserTypeTest.java
+src/test/java/com/fireblocks/sdk/model/UtxoIdentifierTest.java
+src/test/java/com/fireblocks/sdk/model/UtxoInput2Test.java
+src/test/java/com/fireblocks/sdk/model/UtxoInputSelectionTest.java
+src/test/java/com/fireblocks/sdk/model/UtxoInputTest.java
+src/test/java/com/fireblocks/sdk/model/UtxoOutputTest.java
+src/test/java/com/fireblocks/sdk/model/UtxoSelectionFiltersTest.java
+src/test/java/com/fireblocks/sdk/model/UtxoSelectionParamsTest.java
src/test/java/com/fireblocks/sdk/model/ValidateAddressResponseTest.java
src/test/java/com/fireblocks/sdk/model/ValidateLayerZeroChannelResponseTest.java
src/test/java/com/fireblocks/sdk/model/ValidationKeyDtoTest.java
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 1fc41251..00000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,239 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v16.0.0](https://github.com/fireblocks/java-sdk/compare/v15.0.0...v16.0.0) - 2026-04-06
-
-### Merged
-
-- Generated SDK #3331 [`#131`](https://github.com/fireblocks/java-sdk/pull/131)
-
-## [v15.0.0](https://github.com/fireblocks/java-sdk/compare/v14.1.0...v15.0.0) - 2026-03-15
-
-### Merged
-
-- Generated SDK #3733 (major) [`#128`](https://github.com/fireblocks/java-sdk/pull/128)
-
-## [v14.1.0](https://github.com/fireblocks/java-sdk/compare/v14.0.0...v14.1.0) - 2026-02-26
-
-### Merged
-
-- Generated SDK #2167 [`#126`](https://github.com/fireblocks/java-sdk/pull/126)
-
-## [v14.0.0](https://github.com/fireblocks/java-sdk/compare/v13.0.0...v14.0.0) - 2026-02-03
-
-### Merged
-
-- Generated SDK #4746 [`#121`](https://github.com/fireblocks/java-sdk/pull/121)
-
-## [v13.0.0](https://github.com/fireblocks/java-sdk/compare/v12.1.3...v13.0.0) - 2025-11-13
-
-### Merged
-
-- Generated SDK #5834 [`#116`](https://github.com/fireblocks/java-sdk/pull/116)
-
-## [v12.1.3](https://github.com/fireblocks/java-sdk/compare/v12.1.2...v12.1.3) - 2025-10-22
-
-### Merged
-
-- Generated SDK #8293 [`#115`](https://github.com/fireblocks/java-sdk/pull/115)
-
-## [v12.1.2](https://github.com/fireblocks/java-sdk/compare/v12.1.1...v12.1.2) - 2025-09-29
-
-### Merged
-
-- Generated SDK #6061 [`#113`](https://github.com/fireblocks/java-sdk/pull/113)
-
-## [v12.1.1](https://github.com/fireblocks/java-sdk/compare/v12.1.0...v12.1.1) - 2025-09-10
-
-### Merged
-
-- Generated SDK #1410 [`#111`](https://github.com/fireblocks/java-sdk/pull/111)
-
-## [v12.1.0](https://github.com/fireblocks/java-sdk/compare/v12.0.0...v12.1.0) - 2025-09-09
-
-### Merged
-
-- Generated SDK #4521 [`#109`](https://github.com/fireblocks/java-sdk/pull/109)
-
-## [v12.0.0](https://github.com/fireblocks/java-sdk/compare/v11.2.0...v12.0.0) - 2025-09-01
-
-### Merged
-
-- Generated SDK #7741 [`#108`](https://github.com/fireblocks/java-sdk/pull/108)
-
-## [v11.2.0](https://github.com/fireblocks/java-sdk/compare/v11.1.0...v11.2.0) - 2025-08-21
-
-### Merged
-
-- Generated SDK #3302 [`#107`](https://github.com/fireblocks/java-sdk/pull/107)
-
-## [v11.1.0](https://github.com/fireblocks/java-sdk/compare/v11.0.0...v11.1.0) - 2025-08-11
-
-### Merged
-
-- Generated SDK #1782 [`#105`](https://github.com/fireblocks/java-sdk/pull/105)
-
-## [v11.0.0](https://github.com/fireblocks/java-sdk/compare/v10.4.0...v11.0.0) - 2025-07-15
-
-### Merged
-
-- Generated SDK #5610 [`#103`](https://github.com/fireblocks/java-sdk/pull/103)
-
-## [v10.4.0](https://github.com/fireblocks/java-sdk/compare/v10.3.0...v10.4.0) - 2025-06-29
-
-### Merged
-
-- Generated SDK #1492 [`#101`](https://github.com/fireblocks/java-sdk/pull/101)
-
-## [v10.3.0](https://github.com/fireblocks/java-sdk/compare/v10.2.0...v10.3.0) - 2025-06-18
-
-### Merged
-
-- Generated SDK #4009 [`#99`](https://github.com/fireblocks/java-sdk/pull/99)
-
-## [v10.2.0](https://github.com/fireblocks/java-sdk/compare/v10.1.1...v10.2.0) - 2025-06-04
-
-### Merged
-
-- Generated SDK #8912 [`#98`](https://github.com/fireblocks/java-sdk/pull/98)
-
-## [v10.1.1](https://github.com/fireblocks/java-sdk/compare/v10.1.0...v10.1.1) - 2025-05-18
-
-### Merged
-
-- Generated SDK #5019 [`#97`](https://github.com/fireblocks/java-sdk/pull/97)
-
-## [v10.1.0](https://github.com/fireblocks/java-sdk/compare/v10.0.2...v10.1.0) - 2025-05-07
-
-### Merged
-
-- Generated SDK #7076 [`#95`](https://github.com/fireblocks/java-sdk/pull/95)
-
-## [v10.0.2](https://github.com/fireblocks/java-sdk/compare/v10.0.1...v10.0.2) - 2025-04-20
-
-### Merged
-
-- Generated SDK #4794 [`#94`](https://github.com/fireblocks/java-sdk/pull/94)
-
-## [v10.0.1](https://github.com/fireblocks/java-sdk/compare/v10.0.0...v10.0.1) - 2025-04-07
-
-### Merged
-
-- Generated SDK #3065 [`#93`](https://github.com/fireblocks/java-sdk/pull/93)
-
-## [v10.0.0](https://github.com/fireblocks/java-sdk/compare/v9.0.0...v10.0.0) - 2025-03-30
-
-### Merged
-
-- Generated SDK #619 [`#90`](https://github.com/fireblocks/java-sdk/pull/90)
-
-## [v9.0.0](https://github.com/fireblocks/java-sdk/compare/v8.1.0...v9.0.0) - 2025-03-17
-
-### Merged
-
-- Generated SDK #645 [`#89`](https://github.com/fireblocks/java-sdk/pull/89)
-
-## [v8.1.0](https://github.com/fireblocks/java-sdk/compare/v8.0.1...v8.1.0) - 2025-02-24
-
-### Merged
-
-- Generated SDK #9833 [`#84`](https://github.com/fireblocks/java-sdk/pull/84)
-
-## [v8.0.1](https://github.com/fireblocks/java-sdk/compare/v8.0.0...v8.0.1) - 2025-02-12
-
-### Merged
-
-- Generated SDK #4262 [`#82`](https://github.com/fireblocks/java-sdk/pull/82)
-
-## [v8.0.0](https://github.com/fireblocks/java-sdk/compare/v7.0.0...v8.0.0) - 2025-02-02
-
-### Merged
-
-- Generated SDK #538 [`#80`](https://github.com/fireblocks/java-sdk/pull/80)
-
-## [v7.0.0](https://github.com/fireblocks/java-sdk/compare/v6.0.0...v7.0.0) - 2025-01-08
-
-### Merged
-
-- Generated SDK #8699 [`#77`](https://github.com/fireblocks/java-sdk/pull/77)
-
-## [v6.0.0](https://github.com/fireblocks/java-sdk/compare/v5.0.0...v6.0.0) - 2024-12-05
-
-### Merged
-
-- Generated SDK #1430 [`#73`](https://github.com/fireblocks/java-sdk/pull/73)
-
-## [v5.0.0](https://github.com/fireblocks/java-sdk/compare/v4.0.0...v5.0.0) - 2024-10-31
-
-### Merged
-
-- Generated SDK #5184 [`#71`](https://github.com/fireblocks/java-sdk/pull/71)
-
-## [v4.0.0](https://github.com/fireblocks/java-sdk/compare/v3.1.0...v4.0.0) - 2024-09-17
-
-### Merged
-
-- Generated SDK #237 [`#70`](https://github.com/fireblocks/java-sdk/pull/70)
-
-## [v3.1.0](https://github.com/fireblocks/java-sdk/compare/v3.0.0...v3.1.0) - 2024-07-25
-
-### Merged
-
-- Generated SDK #6749 [`#67`](https://github.com/fireblocks/java-sdk/pull/67)
-
-## [v3.0.0](https://github.com/fireblocks/java-sdk/compare/v2.1.0...v3.0.0) - 2024-07-17
-
-### Merged
-
-- Generated SDK #6152 [`#65`](https://github.com/fireblocks/java-sdk/pull/65)
-- Generated SDK #7984 [`#62`](https://github.com/fireblocks/java-sdk/pull/62)
-- Generated SDK #2873 [`#61`](https://github.com/fireblocks/java-sdk/pull/61)
-
-## [v2.1.0](https://github.com/fireblocks/java-sdk/compare/v2.0.1...v2.1.0) - 2024-06-04
-
-### Merged
-
-- Generated SDK for version COR-46191/fix_pipelines [`#24`](https://github.com/fireblocks/java-sdk/pull/24)
-- Generated SDK for version COR-46191/fix_pipelines [`#23`](https://github.com/fireblocks/java-sdk/pull/23)
-- Generated SDK for version COR-46191/fix_pipelines [`#22`](https://github.com/fireblocks/java-sdk/pull/22)
-- Generated SDK for version COR-46191/fix_pipelines [`#21`](https://github.com/fireblocks/java-sdk/pull/21)
-
-## [v2.0.1](https://github.com/fireblocks/java-sdk/compare/v2.0.0...v2.0.1) - 2024-06-04
-
-### Merged
-
-- Generated SDK for version COR-46191/fix_pipelines [`#20`](https://github.com/fireblocks/java-sdk/pull/20)
-
-## [v2.0.0](https://github.com/fireblocks/java-sdk/compare/v1.1.0...v2.0.0) - 2024-05-08
-
-### Merged
-
-- feat: add tokenization api [`#12`](https://github.com/fireblocks/java-sdk/pull/12)
-
-## [v1.1.0](https://github.com/fireblocks/java-sdk/compare/v1.0.1...v1.1.0) - 2024-04-17
-
-### Merged
-
-- feat: add cosigners beta api [`#11`](https://github.com/fireblocks/java-sdk/pull/11)
-- fix: fix readme doc headline [`#10`](https://github.com/fireblocks/java-sdk/pull/10)
-
-## [v1.0.1](https://github.com/fireblocks/java-sdk/compare/v1.0.0...v1.0.1) - 2024-04-07
-
-### Merged
-
-- Generated SDK for version v1.0.1 [`#9`](https://github.com/fireblocks/java-sdk/pull/9)
-
-## v1.0.0 - 2024-04-07
-
-### Merged
-
-- Generated SDK for version v1.0.0 GA [`#8`](https://github.com/fireblocks/java-sdk/pull/8)
-- v0.0.1-beta [`#6`](https://github.com/fireblocks/java-sdk/pull/6)
-- Update GitHub Actions workflows [`#5`](https://github.com/fireblocks/java-sdk/pull/5)
-- Generated #1189972817 [`#3`](https://github.com/fireblocks/java-sdk/pull/3)
-- Add installation instructions [`#2`](https://github.com/fireblocks/java-sdk/pull/2)
-- Added Idempotency & NCW headers support #6 [`#1`](https://github.com/fireblocks/java-sdk/pull/1)
diff --git a/README.md b/README.md
index 74733eae..42737239 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,7 @@ Add this dependency to your project's POM:
com.fireblocks.sdk
fireblocks-sdk
- 16.0.0
+ 0.0.0
compile
```
@@ -42,7 +42,7 @@ Add this dependency to your project's POM:
Add this dependency to your project's build file:
```groovy
-compile "com.fireblocks.sdk:fireblocks-sdk:16.0.0"
+compile "com.fireblocks.sdk:fireblocks-sdk:0.0.0"
```
### Others
@@ -55,7 +55,7 @@ mvn clean package
Then manually install the following JARs:
-- `target/fireblocks-sdk-16.0.0.jar`
+- `target/fireblocks-sdk-0.0.0.jar`
- `target/lib/*.jar`
@@ -152,14 +152,17 @@ Class | Method | HTTP request | Description
*BlockchainsAssetsApi* | [**registerNewAsset**](docs/BlockchainsAssetsApi.md#registerNewAsset) | **POST** /assets | Register an asset
*BlockchainsAssetsApi* | [**setAssetPrice**](docs/BlockchainsAssetsApi.md#setAssetPrice) | **POST** /assets/prices/{id} | Set asset price
*BlockchainsAssetsApi* | [**updateAssetUserMetadata**](docs/BlockchainsAssetsApi.md#updateAssetUserMetadata) | **PATCH** /assets/{id} | Update the user’s metadata for an asset
+*ComplianceApi* | [**activateByorkConfig**](docs/ComplianceApi.md#activateByorkConfig) | **POST** /screening/byork/config/activate | Activate BYORK Light
*ComplianceApi* | [**addAddressRegistryVaultOptOuts**](docs/ComplianceApi.md#addAddressRegistryVaultOptOuts) | **POST** /address_registry/vaults | Add vault accounts to the address registry opt-out list
*ComplianceApi* | [**assignVaultsToLegalEntity**](docs/ComplianceApi.md#assignVaultsToLegalEntity) | **POST** /legal_entities/{legalEntityId}/vaults | Assign vault accounts to a legal entity
+*ComplianceApi* | [**deactivateByorkConfig**](docs/ComplianceApi.md#deactivateByorkConfig) | **POST** /screening/byork/config/deactivate | Deactivate BYORK Light
*ComplianceApi* | [**getAddressRegistryTenantParticipationStatus**](docs/ComplianceApi.md#getAddressRegistryTenantParticipationStatus) | **GET** /address_registry/tenant | Get address registry participation status for the authenticated workspace
*ComplianceApi* | [**getAddressRegistryVaultOptOut**](docs/ComplianceApi.md#getAddressRegistryVaultOptOut) | **GET** /address_registry/vaults/{vaultAccountId} | Get whether a vault account is opted out of the address registry
*ComplianceApi* | [**getAmlPostScreeningPolicy**](docs/ComplianceApi.md#getAmlPostScreeningPolicy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy
*ComplianceApi* | [**getAmlScreeningPolicy**](docs/ComplianceApi.md#getAmlScreeningPolicy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy
+*ComplianceApi* | [**getByorkConfig**](docs/ComplianceApi.md#getByorkConfig) | **GET** /screening/byork/config | Get BYORK Light configuration
+*ComplianceApi* | [**getByorkVerdict**](docs/ComplianceApi.md#getByorkVerdict) | **GET** /screening/byork/verdict | Get BYORK Light verdict
*ComplianceApi* | [**getLegalEntity**](docs/ComplianceApi.md#getLegalEntity) | **GET** /legal_entities/{legalEntityId} | Get a legal entity
-*ComplianceApi* | [**getLegalEntityByAddress**](docs/ComplianceApi.md#getLegalEntityByAddress) | **GET** /address_registry/legal_entity | [Deprecated] Look up legal entity by address (query parameter)
*ComplianceApi* | [**getLegalEntityForAddress**](docs/ComplianceApi.md#getLegalEntityForAddress) | **GET** /address_registry/legal_entities/{address} | Look up legal entity by blockchain address
*ComplianceApi* | [**getPostScreeningPolicy**](docs/ComplianceApi.md#getPostScreeningPolicy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy
*ComplianceApi* | [**getScreeningFullDetails**](docs/ComplianceApi.md#getScreeningFullDetails) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction.
@@ -173,7 +176,9 @@ Class | Method | HTTP request | Description
*ComplianceApi* | [**removeAddressRegistryVaultOptOut**](docs/ComplianceApi.md#removeAddressRegistryVaultOptOut) | **DELETE** /address_registry/vaults/{vaultAccountId} | Remove a single vault account from the address registry opt-out list
*ComplianceApi* | [**removeAllAddressRegistryVaultOptOuts**](docs/ComplianceApi.md#removeAllAddressRegistryVaultOptOuts) | **DELETE** /address_registry/vaults | Remove all vault-level address registry opt-outs for the workspace
*ComplianceApi* | [**retryRejectedTransactionBypassScreeningChecks**](docs/ComplianceApi.md#retryRejectedTransactionBypassScreeningChecks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check
-*ComplianceApi* | [**setAmlVerdict**](docs/ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict for Manual Screening Verdict.
+*ComplianceApi* | [**setAmlVerdict**](docs/ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict (BYORK Super Light)
+*ComplianceApi* | [**setByorkTimeouts**](docs/ComplianceApi.md#setByorkTimeouts) | **PUT** /screening/byork/config/timeouts | Set BYORK Light timeouts
+*ComplianceApi* | [**setByorkVerdict**](docs/ComplianceApi.md#setByorkVerdict) | **POST** /screening/byork/verdict | Set BYORK Light verdict
*ComplianceApi* | [**updateAmlScreeningConfiguration**](docs/ComplianceApi.md#updateAmlScreeningConfiguration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration
*ComplianceApi* | [**updateLegalEntity**](docs/ComplianceApi.md#updateLegalEntity) | **PUT** /legal_entities/{legalEntityId} | Update legal entity
*ComplianceApi* | [**updateScreeningConfiguration**](docs/ComplianceApi.md#updateScreeningConfiguration) | **PUT** /screening/configurations | Tenant - Screening Configuration
@@ -225,6 +230,13 @@ Class | Method | HTTP request | Description
*DeployedContractsApi* | [**getDeployedContractByAddress**](docs/DeployedContractsApi.md#getDeployedContractByAddress) | **GET** /tokenization/contracts/{assetId}/{contractAddress} | Return deployed contract data
*DeployedContractsApi* | [**getDeployedContractById**](docs/DeployedContractsApi.md#getDeployedContractById) | **GET** /tokenization/contracts/{id} | Return deployed contract data by id
*DeployedContractsApi* | [**getDeployedContracts**](docs/DeployedContractsApi.md#getDeployedContracts) | **GET** /tokenization/contracts | List deployed contracts data
+*EarnBetaApi* | [**approveTermsOfService**](docs/EarnBetaApi.md#approveTermsOfService) | **POST** /earn/providers/{providerId}/approve_terms_of_service | Approve earn provider terms of service
+*EarnBetaApi* | [**createEarnAction**](docs/EarnBetaApi.md#createEarnAction) | **POST** /earn/actions | Create and execute a lending action (deposit or withdraw)
+*EarnBetaApi* | [**getEarnAction**](docs/EarnBetaApi.md#getEarnAction) | **GET** /earn/actions/{id} | Get a single earn lending action
+*EarnBetaApi* | [**getEarnActions**](docs/EarnBetaApi.md#getEarnActions) | **GET** /earn/actions | List earn lending actions
+*EarnBetaApi* | [**getEarnOpportunities**](docs/EarnBetaApi.md#getEarnOpportunities) | **GET** /earn/opportunities | Get list of earn opportunities
+*EarnBetaApi* | [**getEarnPositions**](docs/EarnBetaApi.md#getEarnPositions) | **GET** /earn/positions | Get list of earn positions
+*EarnBetaApi* | [**getEarnProviders**](docs/EarnBetaApi.md#getEarnProviders) | **GET** /earn/providers | Get list of earn providers
*EmbeddedWalletsApi* | [**addEmbeddedWalletAsset**](docs/EmbeddedWalletsApi.md#addEmbeddedWalletAsset) | **POST** /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId} | Add asset to account
*EmbeddedWalletsApi* | [**assignEmbeddedWallet**](docs/EmbeddedWalletsApi.md#assignEmbeddedWallet) | **POST** /ncw/wallets/{walletId}/assign | Assign a wallet
*EmbeddedWalletsApi* | [**createEmbeddedWallet**](docs/EmbeddedWalletsApi.md#createEmbeddedWallet) | **POST** /ncw/wallets | Create a new wallet
@@ -467,6 +479,8 @@ Class | Method | HTTP request | Description
*UserGroupsBetaApi* | [**getUserGroups**](docs/UserGroupsBetaApi.md#getUserGroups) | **GET** /management/user_groups | List user groups
*UserGroupsBetaApi* | [**updateUserGroup**](docs/UserGroupsBetaApi.md#updateUserGroup) | **PUT** /management/user_groups/{groupId} | Update user group
*UsersApi* | [**getUsers**](docs/UsersApi.md#getUsers) | **GET** /users | List users
+*UtxoManagementBetaApi* | [**getUtxos**](docs/UtxoManagementBetaApi.md#getUtxos) | **GET** /utxo_management/{vaultAccountId}/{assetId}/unspent_outputs | List unspent outputs (UTXOs)
+*UtxoManagementBetaApi* | [**updateUtxoLabels**](docs/UtxoManagementBetaApi.md#updateUtxoLabels) | **PATCH** /utxo_management/{vaultAccountId}/{assetId}/labels | Attach or detach labels to/from UTXOs
*VaultsApi* | [**activateAssetForVaultAccount**](docs/VaultsApi.md#activateAssetForVaultAccount) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/activate | Activate a wallet in a vault account
*VaultsApi* | [**attachOrDetachTagsFromVaultAccounts**](docs/VaultsApi.md#attachOrDetachTagsFromVaultAccounts) | **POST** /vault/accounts/attached_tags | Attach or detach tags from vault accounts
*VaultsApi* | [**createLegacyAddress**](docs/VaultsApi.md#createLegacyAddress) | **POST** /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy | Convert a segwit address to legacy format
@@ -509,11 +523,13 @@ Class | Method | HTTP request | Description
*WebhooksV2Api* | [**getNotification**](docs/WebhooksV2Api.md#getNotification) | **GET** /webhooks/{webhookId}/notifications/{notificationId} | Get notification by id
*WebhooksV2Api* | [**getNotificationAttempts**](docs/WebhooksV2Api.md#getNotificationAttempts) | **GET** /webhooks/{webhookId}/notifications/{notificationId}/attempts | Get notification attempts
*WebhooksV2Api* | [**getNotifications**](docs/WebhooksV2Api.md#getNotifications) | **GET** /webhooks/{webhookId}/notifications | Get all notifications by webhook id
+*WebhooksV2Api* | [**getResendByQueryJobStatus**](docs/WebhooksV2Api.md#getResendByQueryJobStatus) | **GET** /webhooks/{webhookId}/notifications/resend_by_query/jobs/{jobId} | Get resend by query job status
*WebhooksV2Api* | [**getResendJobStatus**](docs/WebhooksV2Api.md#getResendJobStatus) | **GET** /webhooks/{webhookId}/notifications/resend_failed/jobs/{jobId} | Get resend job status
*WebhooksV2Api* | [**getWebhook**](docs/WebhooksV2Api.md#getWebhook) | **GET** /webhooks/{webhookId} | Get webhook by id
*WebhooksV2Api* | [**getWebhooks**](docs/WebhooksV2Api.md#getWebhooks) | **GET** /webhooks | Get all webhooks
*WebhooksV2Api* | [**resendFailedNotifications**](docs/WebhooksV2Api.md#resendFailedNotifications) | **POST** /webhooks/{webhookId}/notifications/resend_failed | Resend failed notifications
*WebhooksV2Api* | [**resendNotificationById**](docs/WebhooksV2Api.md#resendNotificationById) | **POST** /webhooks/{webhookId}/notifications/{notificationId}/resend | Resend notification by id
+*WebhooksV2Api* | [**resendNotificationsByQuery**](docs/WebhooksV2Api.md#resendNotificationsByQuery) | **POST** /webhooks/{webhookId}/notifications/resend_by_query | Resend notifications by query
*WebhooksV2Api* | [**resendNotificationsByResourceId**](docs/WebhooksV2Api.md#resendNotificationsByResourceId) | **POST** /webhooks/{webhookId}/notifications/resend_by_resource | Resend notifications by resource Id
*WebhooksV2Api* | [**updateWebhook**](docs/WebhooksV2Api.md#updateWebhook) | **PATCH** /webhooks/{webhookId} | Update webhook
*WhitelistIpAddressesApi* | [**getWhitelistIpAddresses**](docs/WhitelistIpAddressesApi.md#getWhitelistIpAddresses) | **GET** /management/api_users/{userId}/whitelist_ip_addresses | Get whitelisted ip addresses for an API Key
@@ -535,7 +551,6 @@ Class | Method | HTTP request | Description
- [AccountBase](docs/AccountBase.md)
- [AccountBasedAccessProvider](docs/AccountBasedAccessProvider.md)
- [AccountBasedAccessProviderInfo](docs/AccountBasedAccessProviderInfo.md)
- - [AccountBasedProviderDetails](docs/AccountBasedProviderDetails.md)
- [AccountConfig](docs/AccountConfig.md)
- [AccountHolderDetails](docs/AccountHolderDetails.md)
- [AccountIdentifier](docs/AccountIdentifier.md)
@@ -546,6 +561,7 @@ Class | Method | HTTP request | Description
- [AchAddress](docs/AchAddress.md)
- [AchDestination](docs/AchDestination.md)
- [AchPaymentInfo](docs/AchPaymentInfo.md)
+ - [ActionRecord](docs/ActionRecord.md)
- [AdapterProcessingResult](docs/AdapterProcessingResult.md)
- [AddAbiRequestDto](docs/AddAbiRequestDto.md)
- [AddAssetToExternalWalletRequest](docs/AddAssetToExternalWalletRequest.md)
@@ -567,7 +583,6 @@ Class | Method | HTTP request | Description
- [AddressRegistryError](docs/AddressRegistryError.md)
- [AddressRegistryGetVaultOptOutResponse](docs/AddressRegistryGetVaultOptOutResponse.md)
- [AddressRegistryLegalEntity](docs/AddressRegistryLegalEntity.md)
- - [AddressRegistryLegalEntityLegacy](docs/AddressRegistryLegalEntityLegacy.md)
- [AddressRegistryListVaultOptOutsResponse](docs/AddressRegistryListVaultOptOutsResponse.md)
- [AddressRegistryRemoveAllVaultOptOutsResponse](docs/AddressRegistryRemoveAllVaultOptOutsResponse.md)
- [AddressRegistryRemoveVaultOptOutResponse](docs/AddressRegistryRemoveVaultOptOutResponse.md)
@@ -599,6 +614,7 @@ Class | Method | HTTP request | Description
- [ApprovalRequest](docs/ApprovalRequest.md)
- [ApproversConfig](docs/ApproversConfig.md)
- [ApproversConfigApprovalGroupsInner](docs/ApproversConfigApprovalGroupsInner.md)
+ - [Apy](docs/Apy.md)
- [Asset](docs/Asset.md)
- [AssetAlreadyExistHttpError](docs/AssetAlreadyExistHttpError.md)
- [AssetAmount](docs/AssetAmount.md)
@@ -630,6 +646,8 @@ Class | Method | HTTP request | Description
- [AssetWallet](docs/AssetWallet.md)
- [AssignVaultsToLegalEntityRequest](docs/AssignVaultsToLegalEntityRequest.md)
- [AssignVaultsToLegalEntityResponse](docs/AssignVaultsToLegalEntityResponse.md)
+ - [AttachDetachUtxoLabelsRequest](docs/AttachDetachUtxoLabelsRequest.md)
+ - [AttachDetachUtxoLabelsResponse](docs/AttachDetachUtxoLabelsResponse.md)
- [AuditLogData](docs/AuditLogData.md)
- [AuditorData](docs/AuditorData.md)
- [AuthorizationGroups](docs/AuthorizationGroups.md)
@@ -652,6 +670,14 @@ Class | Method | HTTP request | Description
- [BpsFee](docs/BpsFee.md)
- [BusinessEntityTypeEnum](docs/BusinessEntityTypeEnum.md)
- [BusinessIdentification](docs/BusinessIdentification.md)
+ - [ByorkConfigResponse](docs/ByorkConfigResponse.md)
+ - [ByorkSetTimeoutsRequest](docs/ByorkSetTimeoutsRequest.md)
+ - [ByorkSetVerdictEnum](docs/ByorkSetVerdictEnum.md)
+ - [ByorkTimeoutRange](docs/ByorkTimeoutRange.md)
+ - [ByorkVerdictEnum](docs/ByorkVerdictEnum.md)
+ - [ByorkVerdictRequest](docs/ByorkVerdictRequest.md)
+ - [ByorkVerdictResponse](docs/ByorkVerdictResponse.md)
+ - [ByorkVerdictResponseStatusEnum](docs/ByorkVerdictResponseStatusEnum.md)
- [CallbackHandler](docs/CallbackHandler.md)
- [CallbackHandlerRequest](docs/CallbackHandlerRequest.md)
- [CancelTransactionResponse](docs/CancelTransactionResponse.md)
@@ -750,6 +776,8 @@ Class | Method | HTTP request | Description
- [CreateContractRequest](docs/CreateContractRequest.md)
- [CreateConversionConfigOperationRequest](docs/CreateConversionConfigOperationRequest.md)
- [CreateDisbursementConfigOperationRequest](docs/CreateDisbursementConfigOperationRequest.md)
+ - [CreateEarnActionRequest](docs/CreateEarnActionRequest.md)
+ - [CreateEarnActionResponse](docs/CreateEarnActionResponse.md)
- [CreateInternalTransferRequest](docs/CreateInternalTransferRequest.md)
- [CreateInternalWalletAssetRequest](docs/CreateInternalWalletAssetRequest.md)
- [CreateMultichainTokenRequest](docs/CreateMultichainTokenRequest.md)
@@ -805,7 +833,6 @@ Class | Method | HTTP request | Description
- [DirectAccess](docs/DirectAccess.md)
- [DirectAccessProvider](docs/DirectAccessProvider.md)
- [DirectAccessProviderInfo](docs/DirectAccessProviderInfo.md)
- - [DirectProviderDetails](docs/DirectProviderDetails.md)
- [DisbursementAmountInstruction](docs/DisbursementAmountInstruction.md)
- [DisbursementConfigOperation](docs/DisbursementConfigOperation.md)
- [DisbursementInstruction](docs/DisbursementInstruction.md)
@@ -830,6 +857,8 @@ Class | Method | HTTP request | Description
- [DvnConfig](docs/DvnConfig.md)
- [DvnConfigWithConfirmations](docs/DvnConfigWithConfirmations.md)
- [EVMTokenCreateParamsDto](docs/EVMTokenCreateParamsDto.md)
+ - [EarnAsset](docs/EarnAsset.md)
+ - [EarnProvider](docs/EarnProvider.md)
- [EditGasStationConfigurationResponse](docs/EditGasStationConfigurationResponse.md)
- [EmbeddedWallet](docs/EmbeddedWallet.md)
- [EmbeddedWalletAccount](docs/EmbeddedWalletAccount.md)
@@ -879,6 +908,7 @@ Class | Method | HTTP request | Description
- [ExecutionStepStatusEnum](docs/ExecutionStepStatusEnum.md)
- [ExecutionStepType](docs/ExecutionStepType.md)
- [ExecutionTransferOperation](docs/ExecutionTransferOperation.md)
+ - [Exposure](docs/Exposure.md)
- [ExternalAccount](docs/ExternalAccount.md)
- [ExternalAccountLocalBankAfrica](docs/ExternalAccountLocalBankAfrica.md)
- [ExternalAccountMobileMoney](docs/ExternalAccountMobileMoney.md)
@@ -906,6 +936,7 @@ Class | Method | HTTP request | Description
- [FiatTransfer](docs/FiatTransfer.md)
- [FixedAmountTypeEnum](docs/FixedAmountTypeEnum.md)
- [FixedFee](docs/FixedFee.md)
+ - [FlowDirection](docs/FlowDirection.md)
- [FreezeTransactionResponse](docs/FreezeTransactionResponse.md)
- [FunctionDoc](docs/FunctionDoc.md)
- [Funds](docs/Funds.md)
@@ -915,7 +946,10 @@ Class | Method | HTTP request | Description
- [GasslessStandardConfigurations](docs/GasslessStandardConfigurations.md)
- [GasslessStandardConfigurationsGaslessStandardConfigurationsValue](docs/GasslessStandardConfigurationsGaslessStandardConfigurationsValue.md)
- [GetAPIUsersResponse](docs/GetAPIUsersResponse.md)
+ - [GetActionResponse](docs/GetActionResponse.md)
+ - [GetActionsResponse](docs/GetActionsResponse.md)
- [GetAuditLogsResponse](docs/GetAuditLogsResponse.md)
+ - [GetByorkVerdictResponse](docs/GetByorkVerdictResponse.md)
- [GetConnectionsResponse](docs/GetConnectionsResponse.md)
- [GetConsoleUsersResponse](docs/GetConsoleUsersResponse.md)
- [GetDeployableAddressRequest](docs/GetDeployableAddressRequest.md)
@@ -928,22 +962,27 @@ Class | Method | HTTP request | Description
- [GetMaxSpendableAmountResponse](docs/GetMaxSpendableAmountResponse.md)
- [GetMpcKeysResponse](docs/GetMpcKeysResponse.md)
- [GetNFTsResponse](docs/GetNFTsResponse.md)
+ - [GetOpportunitiesResponse](docs/GetOpportunitiesResponse.md)
- [GetOrdersResponse](docs/GetOrdersResponse.md)
- [GetOtaStatusResponse](docs/GetOtaStatusResponse.md)
- [GetOwnershipTokensResponse](docs/GetOwnershipTokensResponse.md)
- [GetPagedExchangeAccountsResponse](docs/GetPagedExchangeAccountsResponse.md)
- [GetPagedExchangeAccountsResponsePaging](docs/GetPagedExchangeAccountsResponsePaging.md)
+ - [GetPositionsResponse](docs/GetPositionsResponse.md)
+ - [GetProvidersResponse](docs/GetProvidersResponse.md)
- [GetSigningKeyResponseDto](docs/GetSigningKeyResponseDto.md)
- [GetTransactionOperation](docs/GetTransactionOperation.md)
- [GetValidationKeyResponseDto](docs/GetValidationKeyResponseDto.md)
- [GetWhitelistIpAddressesResponse](docs/GetWhitelistIpAddressesResponse.md)
- [GetWorkspaceStatusResponse](docs/GetWorkspaceStatusResponse.md)
- [GleifData](docs/GleifData.md)
+ - [GleifOtherLegalEntityName](docs/GleifOtherLegalEntityName.md)
- [HttpContractDoesNotExistError](docs/HttpContractDoesNotExistError.md)
- [IbanAddress](docs/IbanAddress.md)
- [IbanDestination](docs/IbanDestination.md)
- [IbanPaymentInfo](docs/IbanPaymentInfo.md)
- [Identification](docs/Identification.md)
+ - [IdentificationPolicyOverride](docs/IdentificationPolicyOverride.md)
- [IdlType](docs/IdlType.md)
- [IndicativeQuoteEnum](docs/IndicativeQuoteEnum.md)
- [IndicativeQuoteType](docs/IndicativeQuoteType.md)
@@ -1000,6 +1039,7 @@ Class | Method | HTTP request | Description
- [ListLegalEntitiesResponse](docs/ListLegalEntitiesResponse.md)
- [ListOwnedCollectionsResponse](docs/ListOwnedCollectionsResponse.md)
- [ListOwnedTokensResponse](docs/ListOwnedTokensResponse.md)
+ - [ListUtxosResponse](docs/ListUtxosResponse.md)
- [ListVaultsForRegistrationResponse](docs/ListVaultsForRegistrationResponse.md)
- [LocalBankTransferAfricaAddress](docs/LocalBankTransferAfricaAddress.md)
- [LocalBankTransferAfricaDestination](docs/LocalBankTransferAfricaDestination.md)
@@ -1052,6 +1092,7 @@ Class | Method | HTTP request | Description
- [OneTimeAddressPeerType](docs/OneTimeAddressPeerType.md)
- [OneTimeAddressReference](docs/OneTimeAddressReference.md)
- [OperationExecutionFailure](docs/OperationExecutionFailure.md)
+ - [Opportunity](docs/Opportunity.md)
- [OrderDetails](docs/OrderDetails.md)
- [OrderExecutionStep](docs/OrderExecutionStep.md)
- [OrderSide](docs/OrderSide.md)
@@ -1069,6 +1110,8 @@ Class | Method | HTTP request | Description
- [ParameterWithValue](docs/ParameterWithValue.md)
- [ParticipantRelationshipType](docs/ParticipantRelationshipType.md)
- [ParticipantsIdentification](docs/ParticipantsIdentification.md)
+ - [ParticipantsIdentificationPolicy](docs/ParticipantsIdentificationPolicy.md)
+ - [ParticipantsIdentificationSupportedEndpoint](docs/ParticipantsIdentificationSupportedEndpoint.md)
- [PayeeAccount](docs/PayeeAccount.md)
- [PayeeAccountResponse](docs/PayeeAccountResponse.md)
- [PayeeAccountType](docs/PayeeAccountType.md)
@@ -1116,6 +1159,7 @@ Class | Method | HTTP request | Description
- [PolicyVerdictActionEnum](docs/PolicyVerdictActionEnum.md)
- [PolicyVerdictActionEnum2](docs/PolicyVerdictActionEnum2.md)
- [Position](docs/Position.md)
+ - [Position2](docs/Position2.md)
- [PostalAddress](docs/PostalAddress.md)
- [PreScreening](docs/PreScreening.md)
- [PrefundedSettlement](docs/PrefundedSettlement.md)
@@ -1158,6 +1202,8 @@ Class | Method | HTTP request | Description
- [RenameConnectedAccountResponse](docs/RenameConnectedAccountResponse.md)
- [RenameCosigner](docs/RenameCosigner.md)
- [RenameVaultAccountResponse](docs/RenameVaultAccountResponse.md)
+ - [ResendByQueryRequest](docs/ResendByQueryRequest.md)
+ - [ResendByQueryResponse](docs/ResendByQueryResponse.md)
- [ResendFailedNotificationsJobStatusResponse](docs/ResendFailedNotificationsJobStatusResponse.md)
- [ResendFailedNotificationsRequest](docs/ResendFailedNotificationsRequest.md)
- [ResendFailedNotificationsResponse](docs/ResendFailedNotificationsResponse.md)
@@ -1187,6 +1233,9 @@ Class | Method | HTTP request | Description
- [ScreeningOperationExecutionOutput](docs/ScreeningOperationExecutionOutput.md)
- [ScreeningOperationFailure](docs/ScreeningOperationFailure.md)
- [ScreeningOperationType](docs/ScreeningOperationType.md)
+ - [ScreeningPolicyAmount](docs/ScreeningPolicyAmount.md)
+ - [ScreeningPolicyAmountRange](docs/ScreeningPolicyAmountRange.md)
+ - [ScreeningPolicyCurrency](docs/ScreeningPolicyCurrency.md)
- [ScreeningPolicyResponse](docs/ScreeningPolicyResponse.md)
- [ScreeningProviderRulesConfigurationResponse](docs/ScreeningProviderRulesConfigurationResponse.md)
- [ScreeningTRLinkAmount](docs/ScreeningTRLinkAmount.md)
@@ -1294,8 +1343,6 @@ Class | Method | HTTP request | Description
- [SystemMessageInfo](docs/SystemMessageInfo.md)
- [TRLinkAPIPagedResponse](docs/TRLinkAPIPagedResponse.md)
- [TRLinkAmount](docs/TRLinkAmount.md)
- - [TRLinkAmount2](docs/TRLinkAmount2.md)
- - [TRLinkAmountRange](docs/TRLinkAmountRange.md)
- [TRLinkAssessTravelRuleRequest](docs/TRLinkAssessTravelRuleRequest.md)
- [TRLinkAssessTravelRuleResponse](docs/TRLinkAssessTravelRuleResponse.md)
- [TRLinkAssessmentDecision](docs/TRLinkAssessmentDecision.md)
@@ -1308,7 +1355,6 @@ Class | Method | HTTP request | Description
- [TRLinkCreateCustomerRequest](docs/TRLinkCreateCustomerRequest.md)
- [TRLinkCreateIntegrationRequest](docs/TRLinkCreateIntegrationRequest.md)
- [TRLinkCreateTrmRequest](docs/TRLinkCreateTrmRequest.md)
- - [TRLinkCurrency](docs/TRLinkCurrency.md)
- [TRLinkCustomerIntegrationResponse](docs/TRLinkCustomerIntegrationResponse.md)
- [TRLinkCustomerResponse](docs/TRLinkCustomerResponse.md)
- [TRLinkDestinationTransferPeerPath](docs/TRLinkDestinationTransferPeerPath.md)
@@ -1400,7 +1446,6 @@ Class | Method | HTTP request | Description
- [TradingAccountType](docs/TradingAccountType.md)
- [TradingErrorSchema](docs/TradingErrorSchema.md)
- [TradingProvider](docs/TradingProvider.md)
- - [TradingProviderDetails](docs/TradingProviderDetails.md)
- [Transaction](docs/Transaction.md)
- [TransactionDirection](docs/TransactionDirection.md)
- [TransactionFee](docs/TransactionFee.md)
@@ -1510,6 +1555,13 @@ Class | Method | HTTP request | Description
- [UserRole](docs/UserRole.md)
- [UserStatus](docs/UserStatus.md)
- [UserType](docs/UserType.md)
+ - [UtxoIdentifier](docs/UtxoIdentifier.md)
+ - [UtxoInput](docs/UtxoInput.md)
+ - [UtxoInput2](docs/UtxoInput2.md)
+ - [UtxoInputSelection](docs/UtxoInputSelection.md)
+ - [UtxoOutput](docs/UtxoOutput.md)
+ - [UtxoSelectionFilters](docs/UtxoSelectionFilters.md)
+ - [UtxoSelectionParams](docs/UtxoSelectionParams.md)
- [ValidateAddressResponse](docs/ValidateAddressResponse.md)
- [ValidateLayerZeroChannelResponse](docs/ValidateLayerZeroChannelResponse.md)
- [ValidationKeyDto](docs/ValidationKeyDto.md)
diff --git a/api/openapi.yaml b/api/openapi.yaml
index 50e8db36..eaea9bb5 100644
--- a/api/openapi.yaml
+++ b/api/openapi.yaml
@@ -13937,6 +13937,161 @@ paths:
\ job_id);"
x-accepts:
- application/json
+ /webhooks/{webhookId}/notifications/resend_by_query:
+ post:
+ description: |
+ Resend notifications matching the given query filters (statuses, events, time range, resource ID)
+
+ Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer.
+ operationId: resendNotificationsByQuery
+ parameters:
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ - description: The ID of the webhook
+ explode: false
+ in: path
+ name: webhookId
+ required: true
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ResendByQueryRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ResendByQueryResponse"
+ description: No matching notifications to resend
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "202":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ResendByQueryResponse"
+ description: Resend notifications request was accepted and is being processed
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ Location:
+ $ref: "#/components/headers/Location"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Resend notifications by query
+ tags:
+ - Webhooks V2
+ x-rate-limit-category: high_compute
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.webhooksV2.resendNotificationsByQuery(webhooksV2ApiResendNotificationsByQueryRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture> response =\
+ \ fireblocks.webhooksV2().resendNotificationsByQuery(resendByQueryRequest,\
+ \ webhookId, idempotencyKey);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.webhooks_v2.resend_notifications_by_query(resend_by_query_request,\
+ \ webhook_id, idempotency_key);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.webhooksV2.resendNotificationsByQuery(webhooksV2ApiResendNotificationsByQueryRequest);"
+ - lang: Java
+ source: "CompletableFuture> response =\
+ \ fireblocks.webhooksV2().resendNotificationsByQuery(resendByQueryRequest,\
+ \ webhookId, idempotencyKey);"
+ - lang: Python
+ source: "response = fireblocks.webhooks_v2.resend_notifications_by_query(resend_by_query_request,\
+ \ webhook_id, idempotency_key);"
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /webhooks/{webhookId}/notifications/resend_by_query/jobs/{jobId}:
+ get:
+ description: |
+ Get the status of a resend by query job
+ operationId: getResendByQueryJobStatus
+ parameters:
+ - description: The ID of the webhook
+ explode: false
+ in: path
+ name: webhookId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: The ID of the resend job
+ explode: false
+ in: path
+ name: jobId
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ResendFailedNotificationsJobStatusResponse"
+ description: Job status
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Get resend by query job status
+ tags:
+ - Webhooks V2
+ x-rate-limit-category: read
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.webhooksV2.getResendByQueryJobStatus(webhooksV2ApiGetResendByQueryJobStatusRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture>\
+ \ response = fireblocks.webhooksV2().getResendByQueryJobStatus(webhookId,\
+ \ jobId);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.webhooks_v2.get_resend_by_query_job_status(webhook_id,\
+ \ job_id);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.webhooksV2.getResendByQueryJobStatus(webhooksV2ApiGetResendByQueryJobStatusRequest);"
+ - lang: Java
+ source: "CompletableFuture>\
+ \ response = fireblocks.webhooksV2().getResendByQueryJobStatus(webhookId,\
+ \ jobId);"
+ - lang: Python
+ source: "response = fireblocks.webhooks_v2.get_resend_by_query_job_status(webhook_id,\
+ \ job_id);"
+ x-accepts:
+ - application/json
/tokenization/templates:
get:
description: |-
@@ -19527,65 +19682,866 @@ paths:
$ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
- summary: Get positions summary by vault
+ summary: Get positions summary by vault
+ tags:
+ - Staking
+ x-rate-limit-category: query
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.staking.getSummaryByVault();"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture> response
+ = fireblocks.staking().getSummaryByVault();
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.staking.get_summary_by_vault();
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.staking.getSummaryByVault();"
+ - lang: Java
+ source: CompletableFuture> response
+ = fireblocks.staking().getSummaryByVault();
+ - lang: Python
+ source: response = fireblocks.staking.get_summary_by_vault();
+ x-accepts:
+ - application/json
+ /staking/positions/{id}:
+ get:
+ description: "Returns full details for a single staking position: amounts, rewards,\
+ \ status, chain, and vault."
+ operationId: getDelegationById
+ parameters:
+ - description: Unique identifier of the staking position.
+ explode: false
+ in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Delegation"
+ description: Position retrieved successfully.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Bad request: missing/invalid fields, unsupported amount, or\
+ \ malformed payload."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Forbidden: insufficient permissions, disabled feature, or\
+ \ restricted provider/validator."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Not found: requested resource does not exist (e.g., position,\
+ \ validator, provider, or wallet)."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Rate limit exceeded: slow down and retry later."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Internal error while processing the request.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Get position details
+ tags:
+ - Staking
+ x-rate-limit-category: query
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture> response = fireblocks.staking().getDelegationById(id);
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.staking.get_delegation_by_id(id);
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);"
+ - lang: Java
+ source: CompletableFuture> response = fireblocks.staking().getDelegationById(id);
+ - lang: Python
+ source: response = fireblocks.staking.get_delegation_by_id(id);
+ x-accepts:
+ - application/json
+ /staking/providers:
+ get:
+ description: |-
+ Returns all available staking providers with metadata such as name, ID, and supported chains.
+ Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
+ operationId: getProviders
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/StakingGetProvidersResponse"
+ description: Supported providers retrieved successfully.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Forbidden: insufficient permissions, disabled feature, or\
+ \ restricted provider/validator."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Not found: requested resource does not exist (e.g., position,\
+ \ validator, provider, or wallet)."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Rate limit exceeded: slow down and retry later."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Internal error while processing the request.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: List staking providers
+ tags:
+ - Staking
+ x-rate-limit-category: query
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.staking.getProviders();"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture>> response = fireblocks.staking().getProviders();
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.staking.get_providers();
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.staking.getProviders();"
+ - lang: Java
+ source: CompletableFuture>> response = fireblocks.staking().getProviders();
+ - lang: Python
+ source: response = fireblocks.staking.get_providers();
+ x-accepts:
+ - application/json
+ /staking/providers/{providerId}/approveTermsOfService:
+ post:
+ description: Approves the provider's terms of service. Must be called once before
+ performing any staking operation with this provider.
+ operationId: approveTermsOfServiceByProviderId
+ parameters:
+ - description: Unique identifier of the staking provider.
+ explode: false
+ in: path
+ name: providerId
+ required: true
+ schema:
+ $ref: "#/components/schemas/StakingProvider"
+ style: simple
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ responses:
+ "201":
+ description: Terms of service accepted.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Bad request: missing/invalid fields, unsupported amount, or\
+ \ malformed payload."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Forbidden: insufficient permissions, disabled feature, or\
+ \ restricted provider/validator."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Not found: requested resource does not exist (e.g., position,\
+ \ validator, provider, or wallet)."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Rate limit exceeded: slow down and retry later."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Internal error while processing the request.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Approve provider terms of service
+ tags:
+ - Staking
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise> = fireblocks.staking.approveTermsOfServiceByProviderId(stakingApiApproveTermsOfServiceByProviderIdRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture> response = fireblocks.staking().approveTermsOfServiceByProviderId(providerId,\
+ \ idempotencyKey);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.staking.approve_terms_of_service_by_provider_id(provider_id,\
+ \ idempotency_key);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise> = fireblocks.staking.approveTermsOfServiceByProviderId(stakingApiApproveTermsOfServiceByProviderIdRequest);"
+ - lang: Java
+ source: "CompletableFuture> response = fireblocks.staking().approveTermsOfServiceByProviderId(providerId,\
+ \ idempotencyKey);"
+ - lang: Python
+ source: "response = fireblocks.staking.approve_terms_of_service_by_provider_id(provider_id,\
+ \ idempotency_key);"
+ x-accepts:
+ - application/json
+ /earn/actions:
+ get:
+ description: |
+ Returns a paginated list of lending actions (deposits and withdrawals) for the authenticated tenant.
+
+ **Note:** This endpoint is currently in beta and might be subject to changes.
+ operationId: getEarnActions
+ parameters:
+ - description: Cursor for the next or previous page of results.
+ explode: true
+ in: query
+ name: pageCursor
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: "Number of items per page (default 100, max 100)."
+ explode: true
+ in: query
+ name: pageSize
+ required: false
+ schema:
+ default: 100
+ format: int32
+ maximum: 100
+ minimum: 1
+ type: integer
+ style: form
+ - description: Field to sort results by.
+ explode: true
+ in: query
+ name: sortBy
+ required: false
+ schema:
+ enum:
+ - createdAt
+ - updatedAt
+ type: string
+ style: form
+ - description: Sort order (ASC or DESC).
+ explode: true
+ in: query
+ name: order
+ required: false
+ schema:
+ default: DESC
+ enum:
+ - ASC
+ - DESC
+ example: ASC
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GetActionsResponse"
+ description: OK
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Forbidden: insufficient permissions, disabled feature, or\
+ \ restricted access."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Not found: requested resource does not exist."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Rate limit exceeded: slow down and retry later."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Internal error while processing the request.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: List earn lending actions
+ tags:
+ - Earn (Beta)
+ x-rate-limit-category: query
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise> =\
+ \ fireblocks.earnBeta.getEarnActions(earnBetaApiGetEarnActionsRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture> response = fireblocks.earnBeta().getEarnActions(pageCursor,\
+ \ pageSize, sortBy, order);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.earn_beta.get_earn_actions(page_cursor, page_size,\
+ \ sort_by, order);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise> =\
+ \ fireblocks.earnBeta.getEarnActions(earnBetaApiGetEarnActionsRequest);"
+ - lang: Java
+ source: "CompletableFuture> response = fireblocks.earnBeta().getEarnActions(pageCursor,\
+ \ pageSize, sortBy, order);"
+ - lang: Python
+ source: "response = fireblocks.earn_beta.get_earn_actions(page_cursor, page_size,\
+ \ sort_by, order);"
+ x-accepts:
+ - application/json
+ post:
+ description: |
+ Creates and runs a sequence of on-chain steps for either a deposit into or a withdrawal from an earn
+ vault/market. Specify the operation with `action` in the request body (`DEPOSIT` or `WITHDRAW`).
+
+ **Note:** This endpoint is currently in beta and might be subject to changes.
+ operationId: createEarnAction
+ parameters:
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CreateEarnActionRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CreateEarnActionResponse"
+ description: OK
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Bad request: missing/invalid fields, unsupported amount, or\
+ \ malformed payload."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Forbidden: insufficient permissions, disabled feature, or\
+ \ restricted provider."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Not found: requested resource does not exist (e.g., opportunity,\
+ \ provider, or wallet)."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Rate limit exceeded: slow down and retry later."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Internal error while processing the request.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Create and execute a lending action (deposit or withdraw)
+ tags:
+ - Earn (Beta)
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.earnBeta.createEarnAction(earnBetaApiCreateEarnActionRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture> response\
+ \ = fireblocks.earnBeta().createEarnAction(createEarnActionRequest, idempotencyKey);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.earn_beta.create_earn_action(create_earn_action_request,\
+ \ idempotency_key);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.earnBeta.createEarnAction(earnBetaApiCreateEarnActionRequest);"
+ - lang: Java
+ source: "CompletableFuture> response\
+ \ = fireblocks.earnBeta().createEarnAction(createEarnActionRequest, idempotencyKey);"
+ - lang: Python
+ source: "response = fireblocks.earn_beta.create_earn_action(create_earn_action_request,\
+ \ idempotency_key);"
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /earn/actions/{id}:
+ get:
+ description: |
+ Returns one lending action by its action sequence id (tenant-scoped).
+
+ **Note:** This endpoint is currently in beta and might be subject to changes.
+ operationId: getEarnAction
+ parameters:
+ - description: Action sequence id (UUID).
+ explode: false
+ in: path
+ name: id
+ required: true
+ schema:
+ minLength: 1
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GetActionResponse"
+ description: OK
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Forbidden: insufficient permissions, disabled feature, or\
+ \ restricted access."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Not found: action does not exist or is not visible for this\
+ \ tenant."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Rate limit exceeded: slow down and retry later."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Internal error while processing the request.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Get a single earn lending action
+ tags:
+ - Earn (Beta)
+ x-rate-limit-category: query
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise> =\
+ \ fireblocks.earnBeta.getEarnAction(earnBetaApiGetEarnActionRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture> response = fireblocks.earnBeta().getEarnAction(id);
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.earn_beta.get_earn_action(id);
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise> =\
+ \ fireblocks.earnBeta.getEarnAction(earnBetaApiGetEarnActionRequest);"
+ - lang: Java
+ source: CompletableFuture> response = fireblocks.earnBeta().getEarnAction(id);
+ - lang: Python
+ source: response = fireblocks.earn_beta.get_earn_action(id);
+ x-accepts:
+ - application/json
+ /earn/opportunities:
+ get:
+ description: |
+ Get list of earn opportunities (vaults).
+
+ **Note:** This endpoint is currently in beta and might be subject to changes.
+ operationId: getEarnOpportunities
+ parameters:
+ - description: Cursor for the next or previous page of results.
+ explode: true
+ in: query
+ name: pageCursor
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Number of items per page.
+ explode: true
+ in: query
+ name: pageSize
+ required: false
+ schema:
+ default: 100
+ format: int32
+ maximum: 100
+ minimum: 1
+ type: integer
+ style: form
+ - description: Field to sort results by.
+ explode: true
+ in: query
+ name: sortBy
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Sort order (ASC or DESC).
+ explode: true
+ in: query
+ name: order
+ required: false
+ schema:
+ default: DESC
+ enum:
+ - ASC
+ - DESC
+ example: ASC
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GetOpportunitiesResponse"
+ description: OK
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Forbidden: insufficient permissions, disabled feature, or\
+ \ restricted access."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Not found: requested resource does not exist."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Rate limit exceeded: slow down and retry later."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Internal error while processing the request.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Get list of earn opportunities
tags:
- - Staking
+ - Earn (Beta)
x-rate-limit-category: query
x-readme:
code-samples:
- language: typescript
- code: "const response: Promise>\
- \ = fireblocks.staking.getSummaryByVault();"
+ code: "const response: Promise>\
+ \ = fireblocks.earnBeta.getEarnOpportunities(earnBetaApiGetEarnOpportunitiesRequest);"
name: Fireblocks SDK TypeScript example
- language: java
- code: CompletableFuture> response
- = fireblocks.staking().getSummaryByVault();
+ code: "CompletableFuture> response\
+ \ = fireblocks.earnBeta().getEarnOpportunities(pageCursor, pageSize, sortBy,\
+ \ order);"
name: Fireblocks SDK Java example
- language: python
- code: response = fireblocks.staking.get_summary_by_vault();
+ code: "response = fireblocks.earn_beta.get_earn_opportunities(page_cursor,\
+ \ page_size, sort_by, order);"
name: Fireblocks SDK Python example
x-codeSamples:
- lang: TypeScript
- source: "const response: Promise>\
- \ = fireblocks.staking.getSummaryByVault();"
+ source: "const response: Promise>\
+ \ = fireblocks.earnBeta.getEarnOpportunities(earnBetaApiGetEarnOpportunitiesRequest);"
- lang: Java
- source: CompletableFuture> response
- = fireblocks.staking().getSummaryByVault();
+ source: "CompletableFuture> response\
+ \ = fireblocks.earnBeta().getEarnOpportunities(pageCursor, pageSize, sortBy,\
+ \ order);"
- lang: Python
- source: response = fireblocks.staking.get_summary_by_vault();
+ source: "response = fireblocks.earn_beta.get_earn_opportunities(page_cursor,\
+ \ page_size, sort_by, order);"
x-accepts:
- application/json
- /staking/positions/{id}:
+ /earn/positions:
get:
- description: "Returns full details for a single staking position: amounts, rewards,\
- \ status, chain, and vault."
- operationId: getDelegationById
+ description: "Get list of earn positions for accounts tracked for this workspace.\
+ \ \nOptional query parameters filter by chain, provider, and pagination.\n\
+ \n**Note:** This endpoint is currently in beta and might be subject to changes.\n"
+ operationId: getEarnPositions
parameters:
- - description: Unique identifier of the staking position.
- explode: false
- in: path
- name: id
- required: true
+ - explode: true
+ in: query
+ name: chainId
+ required: false
schema:
+ format: int32
+ type: integer
+ style: form
+ - explode: true
+ in: query
+ name: providerId
+ required: false
+ schema:
+ enum:
+ - MORPHO
+ - AAVE
type: string
- style: simple
+ style: form
+ - description: Cursor for the next or previous page of results.
+ explode: true
+ in: query
+ name: pageCursor
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Number of items per page.
+ explode: true
+ in: query
+ name: pageSize
+ required: false
+ schema:
+ default: 100
+ format: int32
+ maximum: 100
+ minimum: 1
+ type: integer
+ style: form
+ - description: Field to sort results by.
+ explode: true
+ in: query
+ name: sortBy
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Sort order (ASC or DESC).
+ explode: true
+ in: query
+ name: order
+ required: false
+ schema:
+ default: DESC
+ enum:
+ - ASC
+ - DESC
+ example: ASC
+ type: string
+ style: form
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/Delegation"
- description: Position retrieved successfully.
- headers:
- X-Request-ID:
- $ref: "#/components/headers/X-Request-ID"
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ErrorSchema"
- description: "Bad request: missing/invalid fields, unsupported amount, or\
- \ malformed payload."
+ $ref: "#/components/schemas/GetPositionsResponse"
+ description: OK
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
@@ -19595,7 +20551,7 @@ paths:
schema:
$ref: "#/components/schemas/ErrorSchema"
description: "Forbidden: insufficient permissions, disabled feature, or\
- \ restricted provider/validator."
+ \ restricted access."
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
@@ -19604,8 +20560,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/ErrorSchema"
- description: "Not found: requested resource does not exist (e.g., position,\
- \ validator, provider, or wallet)."
+ description: "Not found: requested resource does not exist."
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
@@ -19629,43 +20584,92 @@ paths:
$ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
- summary: Get position details
+ summary: Get list of earn positions
tags:
- - Staking
+ - Earn (Beta)
x-rate-limit-category: query
x-readme:
code-samples:
- language: typescript
- code: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);"
+ code: "const response: Promise>\
+ \ = fireblocks.earnBeta.getEarnPositions(earnBetaApiGetEarnPositionsRequest);"
name: Fireblocks SDK TypeScript example
- language: java
- code: CompletableFuture> response = fireblocks.staking().getDelegationById(id);
+ code: "CompletableFuture> response = fireblocks.earnBeta().getEarnPositions(chainId,\
+ \ providerId, pageCursor, pageSize, sortBy, order);"
name: Fireblocks SDK Java example
- language: python
- code: response = fireblocks.staking.get_delegation_by_id(id);
+ code: "response = fireblocks.earn_beta.get_earn_positions(chain_id, provider_id,\
+ \ page_cursor, page_size, sort_by, order);"
name: Fireblocks SDK Python example
x-codeSamples:
- lang: TypeScript
- source: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);"
+ source: "const response: Promise>\
+ \ = fireblocks.earnBeta.getEarnPositions(earnBetaApiGetEarnPositionsRequest);"
- lang: Java
- source: CompletableFuture> response = fireblocks.staking().getDelegationById(id);
+ source: "CompletableFuture> response = fireblocks.earnBeta().getEarnPositions(chainId,\
+ \ providerId, pageCursor, pageSize, sortBy, order);"
- lang: Python
- source: response = fireblocks.staking.get_delegation_by_id(id);
+ source: "response = fireblocks.earn_beta.get_earn_positions(chain_id, provider_id,\
+ \ page_cursor, page_size, sort_by, order);"
x-accepts:
- application/json
- /staking/providers:
+ /earn/providers:
get:
- description: |-
- Returns all available staking providers with metadata such as name, ID, and supported chains.
- Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
- operationId: getProviders
+ description: |
+ Get list of earn providers.
+
+ **Note:** This endpoint is currently in beta and might be subject to changes.
+ operationId: getEarnProviders
+ parameters:
+ - description: Cursor for the next or previous page of results.
+ explode: true
+ in: query
+ name: pageCursor
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Number of items per page.
+ explode: true
+ in: query
+ name: pageSize
+ required: false
+ schema:
+ default: 100
+ format: int32
+ maximum: 100
+ minimum: 1
+ type: integer
+ style: form
+ - description: Field to sort results by.
+ explode: true
+ in: query
+ name: sortBy
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Sort order (ASC or DESC).
+ explode: true
+ in: query
+ name: order
+ required: false
+ schema:
+ default: DESC
+ enum:
+ - ASC
+ - DESC
+ example: ASC
+ type: string
+ style: form
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/StakingGetProvidersResponse"
- description: Supported providers retrieved successfully.
+ $ref: "#/components/schemas/GetProvidersResponse"
+ description: OK
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
@@ -19675,7 +20679,7 @@ paths:
schema:
$ref: "#/components/schemas/ErrorSchema"
description: "Forbidden: insufficient permissions, disabled feature, or\
- \ restricted provider/validator."
+ \ restricted access."
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
@@ -19684,8 +20688,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/ErrorSchema"
- description: "Not found: requested resource does not exist (e.g., position,\
- \ validator, provider, or wallet)."
+ description: "Not found: requested resource does not exist."
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
@@ -19709,45 +20712,58 @@ paths:
$ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
- summary: List staking providers
+ summary: Get list of earn providers
tags:
- - Staking
+ - Earn (Beta)
x-rate-limit-category: query
x-readme:
code-samples:
- language: typescript
- code: "const response: Promise>\
- \ = fireblocks.staking.getProviders();"
+ code: "const response: Promise>\
+ \ = fireblocks.earnBeta.getEarnProviders(earnBetaApiGetEarnProvidersRequest);"
name: Fireblocks SDK TypeScript example
- language: java
- code: CompletableFuture>> response = fireblocks.staking().getProviders();
+ code: "CompletableFuture> response = fireblocks.earnBeta().getEarnProviders(pageCursor,\
+ \ pageSize, sortBy, order);"
name: Fireblocks SDK Java example
- language: python
- code: response = fireblocks.staking.get_providers();
+ code: "response = fireblocks.earn_beta.get_earn_providers(page_cursor, page_size,\
+ \ sort_by, order);"
name: Fireblocks SDK Python example
x-codeSamples:
- lang: TypeScript
- source: "const response: Promise>\
- \ = fireblocks.staking.getProviders();"
+ source: "const response: Promise>\
+ \ = fireblocks.earnBeta.getEarnProviders(earnBetaApiGetEarnProvidersRequest);"
- lang: Java
- source: CompletableFuture>> response = fireblocks.staking().getProviders();
+ source: "CompletableFuture> response = fireblocks.earnBeta().getEarnProviders(pageCursor,\
+ \ pageSize, sortBy, order);"
- lang: Python
- source: response = fireblocks.staking.get_providers();
+ source: "response = fireblocks.earn_beta.get_earn_providers(page_cursor, page_size,\
+ \ sort_by, order);"
x-accepts:
- application/json
- /staking/providers/{providerId}/approveTermsOfService:
+ /earn/providers/{providerId}/approve_terms_of_service:
post:
- description: Approves the provider's terms of service. Must be called once before
- performing any staking operation with this provider.
- operationId: approveTermsOfServiceByProviderId
+ description: |
+ Approves the lending provider's terms of service for this workspace. When
+ `isTermsApprovalRequired` is true on the provider (see list providers),
+ call this once before creating or executing earn actions with that provider.
+ After success, `GET /earn/providers` reflects `isTermsOfServiceApproved`.
+
+ **Note:** This endpoint is currently in beta and might be subject to changes.
+ operationId: approveTermsOfService
parameters:
- - description: Unique identifier of the staking provider.
+ - description: Stable protocol identifier for the earn provider (`MORPHO` or
+ `AAVE`).
explode: false
in: path
name: providerId
required: true
schema:
- $ref: "#/components/schemas/StakingProvider"
+ enum:
+ - MORPHO
+ - AAVE
+ type: string
style: simple
- description: "A unique identifier for the request. If the request is sent\
\ multiple times with the same idempotency key, the server will return the\
@@ -19761,7 +20777,7 @@ paths:
type: string
style: simple
responses:
- "201":
+ "204":
description: Terms of service accepted.
headers:
X-Request-ID:
@@ -19816,31 +20832,31 @@ paths:
$ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
- summary: Approve provider terms of service
+ summary: Approve earn provider terms of service
tags:
- - Staking
+ - Earn (Beta)
x-rate-limit-category: write
x-readme:
code-samples:
- language: typescript
- code: "const response: Promise> = fireblocks.staking.approveTermsOfServiceByProviderId(stakingApiApproveTermsOfServiceByProviderIdRequest);"
+ code: "const response: Promise> = fireblocks.earnBeta.approveTermsOfService(earnBetaApiApproveTermsOfServiceRequest);"
name: Fireblocks SDK TypeScript example
- language: java
- code: "CompletableFuture> response = fireblocks.staking().approveTermsOfServiceByProviderId(providerId,\
+ code: "CompletableFuture> response = fireblocks.earnBeta().approveTermsOfService(providerId,\
\ idempotencyKey);"
name: Fireblocks SDK Java example
- language: python
- code: "response = fireblocks.staking.approve_terms_of_service_by_provider_id(provider_id,\
+ code: "response = fireblocks.earn_beta.approve_terms_of_service(provider_id,\
\ idempotency_key);"
name: Fireblocks SDK Python example
x-codeSamples:
- lang: TypeScript
- source: "const response: Promise> = fireblocks.staking.approveTermsOfServiceByProviderId(stakingApiApproveTermsOfServiceByProviderIdRequest);"
+ source: "const response: Promise> = fireblocks.earnBeta.approveTermsOfService(earnBetaApiApproveTermsOfServiceRequest);"
- lang: Java
- source: "CompletableFuture> response = fireblocks.staking().approveTermsOfServiceByProviderId(providerId,\
+ source: "CompletableFuture> response = fireblocks.earnBeta().approveTermsOfService(providerId,\
\ idempotencyKey);"
- lang: Python
- source: "response = fireblocks.staking.approve_terms_of_service_by_provider_id(provider_id,\
+ source: "response = fireblocks.earn_beta.approve_terms_of_service(provider_id,\
\ idempotency_key);"
x-accepts:
- application/json
@@ -19958,7 +20974,7 @@ paths:
/trading/providers/{providerId}:
get:
description: |
- Retrieve detailed information about a specific provider including its full manifest with order/quote requirements.
+ Retrieve a single provider by ID.
**Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
@@ -19981,8 +20997,8 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/TradingProviderDetails"
- description: Provider details
+ $ref: "#/components/schemas/TradingProvider"
+ description: Single provider details.
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
@@ -20042,23 +21058,19 @@ paths:
x-readme:
code-samples:
- language: typescript
- code: "const response: Promise>\
- \ = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);"
+ code: "const response: Promise> = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);"
name: Fireblocks SDK TypeScript example
- language: java
- code: CompletableFuture> response =
- fireblocks.tradingBeta().getTradingProviderById(providerId);
+ code: CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId);
name: Fireblocks SDK Java example
- language: python
code: response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id);
name: Fireblocks SDK Python example
x-codeSamples:
- lang: TypeScript
- source: "const response: Promise>\
- \ = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);"
+ source: "const response: Promise> = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);"
- lang: Java
- source: CompletableFuture> response =
- fireblocks.tradingBeta().getTradingProviderById(providerId);
+ source: CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId);
- lang: Python
source: response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id);
x-accepts:
@@ -22077,112 +23089,11 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
- /address_registry/legal_entity:
- get:
- deprecated: true
- description: |-
- **Deprecated** — use `GET /v1/address_registry/legal_entities/{address}` instead.
- Here `address` is a **query** parameter; the replacement uses a path segment.
- The response includes only `companyName`, `countryCode`, and `companyId`. The replacement returns additional fields documented on that operation.
- Optional **`asset`** is supported here only (not on the replacement path).
- operationId: getLegalEntityByAddress
- parameters:
- - description: Blockchain address to look up
- explode: true
- in: query
- name: address
- required: true
- schema:
- example: 0x742d35cc6634c0532925a3b844bc9e7595f0beb0
- type: string
- style: form
- - description: Optional asset identifier (this deprecated operation only).
- explode: true
- in: query
- name: asset
- required: false
- schema:
- example: ETH
- type: string
- style: form
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/AddressRegistryLegalEntityLegacy"
- description: Legal entity found
- headers:
- X-Request-ID:
- $ref: "#/components/headers/X-Request-ID"
- "400":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/AddressRegistryError"
- description: Bad request – missing or invalid address
- headers:
- X-Request-ID:
- $ref: "#/components/headers/X-Request-ID"
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/AddressRegistryError"
- description: Forbidden – the authenticated workspace is not opted in to
- the address registry (error code 2140)
- headers:
- X-Request-ID:
- $ref: "#/components/headers/X-Request-ID"
- "404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/AddressRegistryError"
- description: "Not found (error code 2142) — unresolved address, no legal\
- \ entity for a resolved address, or the same not-found outcome in other\
- \ cases."
- headers:
- X-Request-ID:
- $ref: "#/components/headers/X-Request-ID"
- default:
- $ref: "#/components/responses/Error"
- summary: "[Deprecated] Look up legal entity by address (query parameter)"
- tags:
- - Compliance
- x-rate-limit-category: high_compute
- x-readme:
- code-samples:
- - language: typescript
- code: "const response: Promise>\
- \ = fireblocks.compliance.getLegalEntityByAddress(complianceApiGetLegalEntityByAddressRequest);"
- name: Fireblocks SDK TypeScript example
- - language: java
- code: "CompletableFuture>\
- \ response = fireblocks.compliance().getLegalEntityByAddress(address,\
- \ asset);"
- name: Fireblocks SDK Java example
- - language: python
- code: "response = fireblocks.compliance.get_legal_entity_by_address(address,\
- \ asset);"
- name: Fireblocks SDK Python example
- x-codeSamples:
- - lang: TypeScript
- source: "const response: Promise>\
- \ = fireblocks.compliance.getLegalEntityByAddress(complianceApiGetLegalEntityByAddressRequest);"
- - lang: Java
- source: "CompletableFuture>\
- \ response = fireblocks.compliance().getLegalEntityByAddress(address, asset);"
- - lang: Python
- source: "response = fireblocks.compliance.get_legal_entity_by_address(address,\
- \ asset);"
- x-accepts:
- - application/json
/address_registry/legal_entities/{address}:
get:
- description: |-
- Returns legal entity information for the given blockchain address. URL-encode `{address}` when required.
- Prefer this operation over the deprecated `GET /v1/address_registry/legal_entity?address=…`, which returns only `companyName`, `countryCode`, and `companyId`. This operation adds verification status, LEI, Travel Rule providers, and contact email (see response properties).
+ description: "Returns legal entity information for the given blockchain address\
+ \ (verification status, LEI, Travel Rule providers, contact email, and related\
+ \ fields — see response schema). URL-encode `{address}` when required."
operationId: getLegalEntityForAddress
parameters:
- description: Blockchain address to look up
@@ -22209,17 +23120,11 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/AddressRegistryError"
- description: Bad request – missing or invalid address
- headers:
- X-Request-ID:
- $ref: "#/components/headers/X-Request-ID"
- "403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/AddressRegistryError"
- description: Forbidden – the authenticated workspace is not opted in to
- the address registry (error code 2140)
+ description: "Bad request — either request validation (path `{address}`\
+ \ empty or whitespace-only after trim, e.g. encoded spaces only; numeric\
+ \ code 4100), or the authenticated workspace is not opted in to the address\
+ \ registry (numeric code 2140). The `message` field describes the failure;\
+ \ use `code` to distinguish."
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
@@ -23932,8 +24837,11 @@ paths:
- application/json
/screening/aml/verdict/manual:
post:
- description: Set AML verdict for incoming transactions when Manual Screening
- Verdict feature is enabled.
+ description: "Set AML verdict for incoming transactions when **BYORK Super Light**\
+ \ (Manual Screening Verdict) is enabled. This endpoint is for Super Light\
+ \ only. For **BYORK Light**, use POST /screening/byork/verdict instead. When\
+ \ Super Light is retired, this endpoint will be deprecated; use the BYORK\
+ \ Light verdict API for new integrations."
operationId: setAmlVerdict
parameters:
- description: "A unique identifier for the request. If the request is sent\
@@ -23989,7 +24897,7 @@ paths:
$ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
- summary: Set AML Verdict for Manual Screening Verdict.
+ summary: Set AML Verdict (BYORK Super Light)
tags:
- Compliance
x-rate-limit-category: write
@@ -24020,6 +24928,458 @@ paths:
x-content-type: application/json
x-accepts:
- application/json
+ /screening/byork/verdict:
+ get:
+ description: "Returns the current BYORK verdict and status for a transaction.\
+ \ Status can be PRE_ACCEPTED, PENDING, RECEIVED (verdict is final but processing\
+ \ not yet complete), or COMPLETED. Requires BYORK Light to be enabled for\
+ \ the tenant. Returns 404 if no BYORK verdict is found for the transaction."
+ operationId: getByorkVerdict
+ parameters:
+ - description: Transaction ID
+ explode: true
+ in: query
+ name: txId
+ required: true
+ schema:
+ example: 550e8400-e29b-41d4-a716-446655440000
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GetByorkVerdictResponse"
+ description: Current verdict and status.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: BYORK Light not enabled for tenant or txId missing.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: No BYORK verdict found for this transaction.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Internal server error.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Get BYORK Light verdict
+ tags:
+ - Compliance
+ x-rate-limit-category: read
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.getByorkVerdict(complianceApiGetByorkVerdictRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture> response =
+ fireblocks.compliance().getByorkVerdict(txId);
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.compliance.get_byork_verdict(tx_id);
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.getByorkVerdict(complianceApiGetByorkVerdictRequest);"
+ - lang: Java
+ source: CompletableFuture> response =
+ fireblocks.compliance().getByorkVerdict(txId);
+ - lang: Python
+ source: response = fireblocks.compliance.get_byork_verdict(tx_id);
+ x-accepts:
+ - application/json
+ post:
+ description: "Submit verdict (ACCEPT or REJECT) for a transaction in the BYORK\
+ \ Light flow. If the transaction is awaiting your decision, the verdict is\
+ \ applied immediately (response status COMPLETED). If processing has not yet\
+ \ reached that point, the verdict is stored and applied when it does (response\
+ \ status PRE_ACCEPTED). Requires BYORK Light to be enabled for the tenant."
+ operationId: setByorkVerdict
+ parameters:
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ByorkVerdictRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ByorkVerdictResponse"
+ description: Verdict applied (COMPLETED) or pre-accepted (PRE_ACCEPTED).
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: BYORK Light not enabled for tenant or invalid verdict.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "BYORK decision already final, screening already completed,\
+ \ or state inconsistent."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "425":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Too Early - transaction not found (screening not started yet).
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Internal server error.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Set BYORK Light verdict
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.setByorkVerdict(complianceApiSetByorkVerdictRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture> response = fireblocks.compliance().setByorkVerdict(byorkVerdictRequest,\
+ \ idempotencyKey);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.compliance.set_byork_verdict(byork_verdict_request,\
+ \ idempotency_key);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.setByorkVerdict(complianceApiSetByorkVerdictRequest);"
+ - lang: Java
+ source: "CompletableFuture> response = fireblocks.compliance().setByorkVerdict(byorkVerdictRequest,\
+ \ idempotencyKey);"
+ - lang: Python
+ source: "response = fireblocks.compliance.set_byork_verdict(byork_verdict_request,\
+ \ idempotency_key);"
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /screening/byork/config:
+ get:
+ description: "Retrieves BYORK Light configuration for the authenticated tenant\
+ \ (timeouts, active flag, allowed timeout ranges). Returns default config\
+ \ when none exists. Requires BYORK Light to be enabled for the tenant."
+ operationId: getByorkConfig
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ByorkConfigResponse"
+ description: BYORK configuration (or default).
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: BYORK Light not enabled for tenant.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Get BYORK Light configuration
+ tags:
+ - Compliance
+ x-rate-limit-category: read
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.getByorkConfig();"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture> response = fireblocks.compliance().getByorkConfig();
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.compliance.get_byork_config();
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.getByorkConfig();"
+ - lang: Java
+ source: CompletableFuture> response = fireblocks.compliance().getByorkConfig();
+ - lang: Python
+ source: response = fireblocks.compliance.get_byork_config();
+ x-accepts:
+ - application/json
+ /screening/byork/config/activate:
+ post:
+ description: "Activates BYORK Light for the authenticated tenant (sets config.active\
+ \ to true). Once activated, BYORK screening applies to matching transactions.\
+ \ Requires BYORK Light to be enabled for the tenant (contact your CSM to enable)."
+ operationId: activateByorkConfig
+ parameters:
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ByorkConfigResponse"
+ description: BYORK configuration activated.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: BYORK Light not enabled for tenant.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Activate BYORK Light
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.activateByorkConfig(complianceApiActivateByorkConfigRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture> response = fireblocks.compliance().activateByorkConfig(idempotencyKey);
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.compliance.activate_byork_config(idempotency_key);
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.activateByorkConfig(complianceApiActivateByorkConfigRequest);"
+ - lang: Java
+ source: CompletableFuture> response = fireblocks.compliance().activateByorkConfig(idempotencyKey);
+ - lang: Python
+ source: response = fireblocks.compliance.activate_byork_config(idempotency_key);
+ x-accepts:
+ - application/json
+ /screening/byork/config/deactivate:
+ post:
+ description: "Deactivates BYORK Light for the authenticated tenant (sets config.active\
+ \ to false). Once deactivated, BYORK screening no longer applies until activated\
+ \ again. Requires BYORK Light to be enabled for the tenant (contact your CSM\
+ \ to enable)."
+ operationId: deactivateByorkConfig
+ parameters:
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ByorkConfigResponse"
+ description: BYORK configuration deactivated.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: BYORK Light not enabled for tenant.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Deactivate BYORK Light
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.deactivateByorkConfig(complianceApiDeactivateByorkConfigRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture> response = fireblocks.compliance().deactivateByorkConfig(idempotencyKey);
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.compliance.deactivate_byork_config(idempotency_key);
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.deactivateByorkConfig(complianceApiDeactivateByorkConfigRequest);"
+ - lang: Java
+ source: CompletableFuture> response = fireblocks.compliance().deactivateByorkConfig(idempotencyKey);
+ - lang: Python
+ source: response = fireblocks.compliance.deactivate_byork_config(idempotency_key);
+ x-accepts:
+ - application/json
+ /screening/byork/config/timeouts:
+ put:
+ description: "Updates timeout values for BYORK wait-for-response (incoming and/or\
+ \ outgoing). At least one of incomingTimeoutSeconds or outgoingTimeoutSeconds\
+ \ is required. Values must be within the ranges returned in GET config (timeoutRangeIncoming\
+ \ for incomingTimeoutSeconds, timeoutRangeOutgoing for outgoingTimeoutSeconds).\
+ \ Requires BYORK Light to be enabled for the tenant (contact your CSM to enable)."
+ operationId: setByorkTimeouts
+ parameters:
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ByorkSetTimeoutsRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ByorkConfigResponse"
+ description: Timeouts updated.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "BYORK Light not enabled, or timeout value out of range, or\
+ \ missing both timeouts."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Set BYORK Light timeouts
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.setByorkTimeouts(complianceApiSetByorkTimeoutsRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture> response = fireblocks.compliance().setByorkTimeouts(byorkSetTimeoutsRequest,\
+ \ idempotencyKey);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.compliance.set_byork_timeouts(byork_set_timeouts_request,\
+ \ idempotency_key);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.setByorkTimeouts(complianceApiSetByorkTimeoutsRequest);"
+ - lang: Java
+ source: "CompletableFuture> response = fireblocks.compliance().setByorkTimeouts(byorkSetTimeoutsRequest,\
+ \ idempotencyKey);"
+ - lang: Python
+ source: "response = fireblocks.compliance.set_byork_timeouts(byork_set_timeouts_request,\
+ \ idempotency_key);"
+ x-content-type: application/json
+ x-accepts:
+ - application/json
/screening/trlink/partners:
get:
description: "Retrieves a list of all available Travel Rule Support integration\
@@ -29813,28 +31173,35 @@ paths:
\ api_key_id, request_id);"
x-accepts:
- application/json
- /legal_entities:
+ /utxo_management/{vaultAccountId}/{assetId}/unspent_outputs:
get:
description: |-
- Returns legal entity registrations for the workspace with cursor-based pagination.
- If query parameter vaultAccountId is used it returns the legal entity registration associated with a specific vault account. If no explicit mapping exists for the vault, the workspace default legal entity is returned. Returns an empty response if neither a vault mapping nor a default legal entity is configured.
+ Returns a paginated list of unspent transaction outputs (UTXOs) for a UTXO-based asset in a vault account, with optional filters for labels, statuses, amounts, and more.
+ **Note:** These endpoints are currently in beta and might be subject to changes.
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
- operationId: listLegalEntities
+ operationId: getUtxos
parameters:
- - description: "The ID of the vault account. When provided, returns the legal\
- \ entity associated with that vault account and pagination parameters are\
- \ ignored."
- explode: true
- in: query
+ - description: The ID of the vault account
+ explode: false
+ in: path
name: vaultAccountId
- required: false
+ required: true
schema:
format: numeric
type: string
x-fb-entity: vault_account
- style: form
- - description: Cursor string returned in `next` or `prev` of a previous response.
- Ignored when `vaultAccountId` is provided.
+ style: simple
+ - description: The ID of the asset
+ explode: false
+ in: path
+ name: assetId
+ required: true
+ schema:
+ type: string
+ x-fb-entity: asset
+ style: simple
+ - description: Cursor for the next page of results
+ example: MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA==
explode: true
in: query
name: pageCursor
@@ -29842,41 +31209,318 @@ paths:
schema:
type: string
style: form
- - description: Maximum number of registrations to return. Ignored when `vaultAccountId`
- is provided.
+ - description: "Number of results per page (max 250, default 50)"
+ example: 50
explode: true
in: query
name: pageSize
required: false
schema:
default: 50
- maximum: 100
+ maximum: 250
minimum: 1
type: integer
style: form
- - description: Field to sort results by. Ignored when `vaultAccountId` is provided.
+ - description: Field to sort by
+ example: AMOUNT
explode: true
in: query
- name: sortBy
+ name: sort
required: false
schema:
enum:
- - createdAt
- - updatedAt
+ - AMOUNT
+ - CONFIRMATIONS
type: string
style: form
- - description: Sort order. Ignored when `vaultAccountId` is provided.
+ - description: Sort order
+ example: ASC
explode: true
in: query
name: order
required: false
schema:
- default: DESC
enum:
- ASC
- DESC
type: string
style: form
+ - description: Only return UTXOs that have ALL of these labels (AND logic).
+ example:
+ - cold-storage
+ explode: true
+ in: query
+ name: includeAllLabels
+ required: false
+ schema:
+ items:
+ type: string
+ type: array
+ style: form
+ - description: Return UTXOs that have ANY of these labels (OR logic).
+ example:
+ - vip
+ - high-value
+ explode: true
+ in: query
+ name: includeAnyLabels
+ required: false
+ schema:
+ items:
+ type: string
+ type: array
+ style: form
+ - description: Exclude UTXOs that have ANY of these labels.
+ example:
+ - deprecated
+ explode: true
+ in: query
+ name: excludeAnyLabels
+ required: false
+ schema:
+ items:
+ type: string
+ type: array
+ style: form
+ - description: Filter by UTXO statuses to include.
+ example:
+ - AVAILABLE
+ - PENDING
+ explode: true
+ in: query
+ name: includeStatuses
+ required: false
+ schema:
+ items:
+ type: string
+ type: array
+ style: form
+ - description: Filter by address
+ example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ explode: true
+ in: query
+ name: address
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Minimum amount filter
+ example: "0.001"
+ explode: true
+ in: query
+ name: minAmount
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Maximum amount filter
+ example: "1.0"
+ explode: true
+ in: query
+ name: maxAmount
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Include change outputs
+ example: true
+ explode: true
+ in: query
+ name: useChange
+ required: false
+ schema:
+ type: boolean
+ style: form
+ - description: Include coinbase outputs
+ example: true
+ explode: true
+ in: query
+ name: useCoinbase
+ required: false
+ schema:
+ type: boolean
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ListUtxosResponse"
+ description: A paginated list of UTXOs
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: List unspent outputs (UTXOs)
+ tags:
+ - UTXO Management (Beta)
+ x-rate-limit-category: read
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise> =\
+ \ fireblocks.uTXOManagementBeta.getUtxos(uTXOManagementBetaApiGetUtxosRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture> response = fireblocks.uTXOManagementBeta().getUtxos(vaultAccountId,\
+ \ assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels,\
+ \ excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange,\
+ \ useCoinbase);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.u_t_x_o_management_beta.get_utxos(vault_account_id,\
+ \ asset_id, page_cursor, page_size, sort, order, include_all_labels, include_any_labels,\
+ \ exclude_any_labels, include_statuses, address, min_amount, max_amount,\
+ \ use_change, use_coinbase);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise> =\
+ \ fireblocks.uTXOManagementBeta.getUtxos(uTXOManagementBetaApiGetUtxosRequest);"
+ - lang: Java
+ source: "CompletableFuture> response = fireblocks.uTXOManagementBeta().getUtxos(vaultAccountId,\
+ \ assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels,\
+ \ excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange,\
+ \ useCoinbase);"
+ - lang: Python
+ source: "response = fireblocks.u_t_x_o_management_beta.get_utxos(vault_account_id,\
+ \ asset_id, page_cursor, page_size, sort, order, include_all_labels, include_any_labels,\
+ \ exclude_any_labels, include_statuses, address, min_amount, max_amount,\
+ \ use_change, use_coinbase);"
+ x-accepts:
+ - application/json
+ /utxo_management/{vaultAccountId}/{assetId}/labels:
+ patch:
+ description: |-
+ Attach or detach labels to/from UTXOs in a vault account. Labels can be used for organizing and filtering UTXOs.
+ Labels are applied additively — `labelsToAttach` adds to the existing label set and `labelsToDetach` removes from it. Neither operation replaces the full set.
+ **Note:** These endpoints are currently in beta and might be subject to changes.
+ Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
+ operationId: updateUtxoLabels
+ parameters:
+ - description: The ID of the vault account
+ explode: false
+ in: path
+ name: vaultAccountId
+ required: true
+ schema:
+ format: numeric
+ type: string
+ x-fb-entity: vault_account
+ style: simple
+ - description: The ID of the asset
+ explode: false
+ in: path
+ name: assetId
+ required: true
+ schema:
+ type: string
+ x-fb-entity: asset
+ style: simple
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachDetachUtxoLabelsRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachDetachUtxoLabelsResponse"
+ description: UTXOs with updated labels
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Attach or detach labels to/from UTXOs
+ tags:
+ - UTXO Management (Beta)
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.uTXOManagementBeta.updateUtxoLabels(uTXOManagementBetaApiUpdateUtxoLabelsRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture> response\
+ \ = fireblocks.uTXOManagementBeta().updateUtxoLabels(attachDetachUtxoLabelsRequest,\
+ \ vaultAccountId, assetId, idempotencyKey);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.u_t_x_o_management_beta.update_utxo_labels(attach_detach_utxo_labels_request,\
+ \ vault_account_id, asset_id, idempotency_key);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.uTXOManagementBeta.updateUtxoLabels(uTXOManagementBetaApiUpdateUtxoLabelsRequest);"
+ - lang: Java
+ source: "CompletableFuture> response\
+ \ = fireblocks.uTXOManagementBeta().updateUtxoLabels(attachDetachUtxoLabelsRequest,\
+ \ vaultAccountId, assetId, idempotencyKey);"
+ - lang: Python
+ source: "response = fireblocks.u_t_x_o_management_beta.update_utxo_labels(attach_detach_utxo_labels_request,\
+ \ vault_account_id, asset_id, idempotency_key);"
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /legal_entities:
+ get:
+ description: |-
+ Returns legal entity registrations for the workspace with cursor-based pagination.
+ If query parameter vaultAccountId is used it returns the legal entity registration associated with a specific vault account. If no explicit mapping exists for the vault, the workspace default legal entity is returned. Returns an empty response if neither a vault mapping nor a default legal entity is configured.
+ Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+ operationId: listLegalEntities
+ parameters:
+ - description: "The ID of the vault account. When provided, returns the legal\
+ \ entity associated with that vault account and pagination parameters are\
+ \ ignored."
+ explode: true
+ in: query
+ name: vaultAccountId
+ required: false
+ schema:
+ format: numeric
+ type: string
+ x-fb-entity: vault_account
+ style: form
+ - description: Cursor string returned in `next` or `prev` of a previous response.
+ Ignored when `vaultAccountId` is provided.
+ explode: true
+ in: query
+ name: pageCursor
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Maximum number of registrations to return. Ignored when `vaultAccountId`
+ is provided.
+ explode: true
+ in: query
+ name: pageSize
+ required: false
+ schema:
+ default: 50
+ maximum: 100
+ minimum: 1
+ type: integer
+ style: form
responses:
"200":
content:
@@ -29903,11 +31547,11 @@ paths:
- language: java
code: "CompletableFuture> response\
\ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\
- \ pageSize, sortBy, order);"
+ \ pageSize);"
name: Fireblocks SDK Java example
- language: python
code: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\
- \ page_cursor, page_size, sort_by, order);"
+ \ page_cursor, page_size);"
name: Fireblocks SDK Python example
x-codeSamples:
- lang: TypeScript
@@ -29916,10 +31560,10 @@ paths:
- lang: Java
source: "CompletableFuture> response\
\ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\
- \ pageSize, sortBy, order);"
+ \ pageSize);"
- lang: Python
source: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\
- \ page_cursor, page_size, sort_by, order);"
+ \ page_cursor, page_size);"
x-accepts:
- application/json
post:
@@ -36454,6 +38098,7 @@ components:
enum:
- VAULT_ACCOUNT
- EXCHANGE_ACCOUNT
+ - CONNECTED_ACCOUNT
- INTERNAL_WALLET
- EXTERNAL_WALLET
- CONTRACT
@@ -40093,6 +41738,7 @@ components:
- POLONIEX
- External
- Internal
+ - VIRTUAL_ACCOUNT
type: string
SourceTransferPeerPath:
description: The source of the transaction.
@@ -40199,6 +41845,148 @@ components:
example: abcdef
type: string
type: object
+ UtxoSelectionFilters:
+ description: |
+ Narrow the UTXO candidate pool. All specified filters are AND-ed together. This feature is currently in beta and might be subject to changes.
+ example:
+ minAmount: "0.001"
+ includeAnyLabels:
+ - vip
+ - high-value
+ address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ includeAllLabels:
+ - cold-storage
+ useCoinbase: true
+ useChange: true
+ excludeAnyLabels:
+ - deprecated
+ maxAmount: "9.999"
+ properties:
+ includeAllLabels:
+ description: Only include UTXOs that have ALL of these labels.
+ example:
+ - cold-storage
+ items:
+ type: string
+ type: array
+ includeAnyLabels:
+ description: Only include UTXOs that have at least one of these labels.
+ example:
+ - vip
+ - high-value
+ items:
+ type: string
+ type: array
+ excludeAnyLabels:
+ description: Exclude UTXOs that have any of these labels.
+ example:
+ - deprecated
+ items:
+ type: string
+ type: array
+ address:
+ description: Only include UTXOs from this specific address.
+ example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ type: string
+ minAmount:
+ description: "Minimum UTXO amount in the asset's base unit (e.g., BTC)."
+ example: "0.001"
+ type: string
+ maxAmount:
+ description: "Maximum UTXO amount in the asset's base unit (e.g., BTC)."
+ example: "9.999"
+ type: string
+ useChange:
+ description: Set to false to exclude change UTXOs. Default is true.
+ example: true
+ type: boolean
+ useCoinbase:
+ description: Set to false to exclude coinbase UTXOs. Default is true.
+ example: true
+ type: boolean
+ type: object
+ UtxoInput:
+ example:
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ properties:
+ txHash:
+ example: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ type: string
+ vout:
+ example: 0
+ type: integer
+ required:
+ - txHash
+ - vout
+ type: object
+ UtxoInputSelection:
+ description: |
+ Explicitly control which UTXOs to include or exclude. This feature is currently in beta and might be subject to changes.
+ example:
+ inputsToExclude:
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ fillFeeForSelectedInputs: true
+ inputsToSpend:
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ properties:
+ inputsToSpend:
+ description: Force-include specific UTXOs by txHash and vout.
+ items:
+ $ref: "#/components/schemas/UtxoInput"
+ type: array
+ inputsToExclude:
+ description: Exclude specific UTXOs from selection.
+ items:
+ $ref: "#/components/schemas/UtxoInput"
+ type: array
+ fillFeeForSelectedInputs:
+ description: |
+ When true and inputsToSpend is provided, automatically add more UTXOs to cover the transaction fee. Requires inputsToSpend.
+ example: true
+ type: boolean
+ type: object
+ UtxoSelectionParams:
+ description: |
+ For UTXO-based blockchains only. Controls which UTXOs are used for automatic selection. Cannot be used together with extraParameters.inputsSelection. This feature is currently in beta and might be subject to changes.
+ example:
+ inputSelection:
+ inputsToExclude:
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ fillFeeForSelectedInputs: true
+ inputsToSpend:
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ filters:
+ minAmount: "0.001"
+ includeAnyLabels:
+ - vip
+ - high-value
+ address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ includeAllLabels:
+ - cold-storage
+ useCoinbase: true
+ useChange: true
+ excludeAnyLabels:
+ - deprecated
+ maxAmount: "9.999"
+ properties:
+ filters:
+ $ref: "#/components/schemas/UtxoSelectionFilters"
+ inputSelection:
+ $ref: "#/components/schemas/UtxoInputSelection"
+ type: object
TravelRuleTransactionBlockchainInfo:
description: Information about the blockchain transaction.
example:
@@ -43907,6 +45695,32 @@ components:
autoStaking: true
operation: TRANSFER
replaceTxByHash: 00000000-0000-0000-0000-000000000000
+ utxoSelectionParams:
+ inputSelection:
+ inputsToExclude:
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ fillFeeForSelectedInputs: true
+ inputsToSpend:
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ filters:
+ minAmount: "0.001"
+ includeAnyLabels:
+ - vip
+ - high-value
+ address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ includeAllLabels:
+ - cold-storage
+ useCoinbase: true
+ useChange: true
+ excludeAnyLabels:
+ - deprecated
+ maxAmount: "9.999"
properties:
operation:
$ref: "#/components/schemas/TransactionOperation"
@@ -44000,6 +45814,8 @@ components:
type: string
extraParameters:
$ref: "#/components/schemas/ExtraParameters"
+ utxoSelectionParams:
+ $ref: "#/components/schemas/UtxoSelectionParams"
customerRefId:
description: The ID for AML providers to associate the owner of funds with
transactions.
@@ -47078,6 +48894,32 @@ components:
autoStaking: true
operation: TRANSFER
replaceTxByHash: 00000000-0000-0000-0000-000000000000
+ utxoSelectionParams:
+ inputSelection:
+ inputsToExclude:
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ fillFeeForSelectedInputs: true
+ inputsToSpend:
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ filters:
+ minAmount: "0.001"
+ includeAnyLabels:
+ - vip
+ - high-value
+ address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ includeAllLabels:
+ - cold-storage
+ useCoinbase: true
+ useChange: true
+ excludeAnyLabels:
+ - deprecated
+ maxAmount: "9.999"
properties:
transactionRequest:
$ref: "#/components/schemas/TransactionRequest"
@@ -48316,6 +50158,32 @@ components:
autoStaking: true
operation: TRANSFER
replaceTxByHash: 00000000-0000-0000-0000-000000000000
+ utxoSelectionParams:
+ inputSelection:
+ inputsToExclude:
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ fillFeeForSelectedInputs: true
+ inputsToSpend:
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ filters:
+ minAmount: "0.001"
+ includeAnyLabels:
+ - vip
+ - high-value
+ address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ includeAllLabels:
+ - cold-storage
+ useCoinbase: true
+ useChange: true
+ excludeAnyLabels:
+ - deprecated
+ maxAmount: "9.999"
isDstCollateral: true
properties:
transactionRequest:
@@ -48960,6 +50828,65 @@ components:
- status
- total
type: object
+ ResendByQueryRequest:
+ example:
+ resourceId: 123e4567-e89b-12d3-a456-426614174000
+ statuses:
+ - ON_HOLD
+ - IN_PROGRESS
+ startTime: 1625097600000
+ endTime: 1625184000000
+ events:
+ - transaction.created
+ - transaction.status.updated
+ properties:
+ statuses:
+ description: |
+ (optional) List of notification statuses to resend
+ - Default if missing: `["FAILED", "ON_HOLD"]`
+ example:
+ - ON_HOLD
+ - IN_PROGRESS
+ items:
+ $ref: "#/components/schemas/NotificationStatus"
+ type: array
+ startTime:
+ description: |
+ (optional) Start time for the resend window in milliseconds since epoch, within the last 72 hours - Default if missing means 24 hours before the current time in milliseconds since epoch - Maximum value is current time in milliseconds since epoch - Minimum value is 72 hours before the current time in milliseconds since epoch
+ example: 1625097600000
+ type: number
+ endTime:
+ description: |
+ (optional) End time for the resend window in milliseconds since epoch, within the last 72 hours - Default if missing means current time in milliseconds since epoch - Requires startTime to be provided - Must be after startTime - Time window between startTime and endTime must not exceed 24 hours
+ example: 1625184000000
+ type: number
+ events:
+ description: |
+ (optional) Event types to resend, default is all event types
+ - Default if missing means all events will be included
+ - Empty array means all events will be included
+ example:
+ - transaction.created
+ - transaction.status.updated
+ items:
+ $ref: "#/components/schemas/WebhookEvent"
+ type: array
+ resourceId:
+ description: |
+ (optional) Resource ID to filter notifications by
+ example: 123e4567-e89b-12d3-a456-426614174000
+ type: string
+ type: object
+ ResendByQueryResponse:
+ example:
+ total: 10
+ properties:
+ total:
+ description: The total number of notifications that are scheduled to be
+ resent.
+ example: 10
+ type: number
+ type: object
AuditorData:
properties:
name:
@@ -54383,6 +56310,738 @@ components:
items:
$ref: "#/components/schemas/Provider"
type: array
+ ActionRecord:
+ description: One row in the lending action execution sequence.
+ example:
+ actionType: APPROVE
+ errorMessage: errorMessage
+ txId: tx_abc123def456
+ txHash: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
+ status: COMPLETED
+ updatedAt: 2025-03-20T08:30:00Z
+ properties:
+ actionType:
+ description: Kind of step in the lending sequence.
+ enum:
+ - APPROVE
+ - DEPOSIT
+ - WITHDRAW
+ example: APPROVE
+ type: string
+ status:
+ description: Step lifecycle status.
+ enum:
+ - NOT_STARTED
+ - PROCESSING
+ - PENDING_SIGNATURE
+ - BROADCASTING
+ - CONFIRMING
+ - COMPLETED
+ - FAILED
+ - CANCELED
+ example: COMPLETED
+ type: string
+ txId:
+ description: Fireblocks transaction id when applicable (unset when NOT_STARTED).
+ example: tx_abc123def456
+ type: string
+ txHash:
+ description: On-chain transaction hash when applicable (unset when NOT_STARTED).
+ example: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
+ type: string
+ errorMessage:
+ description: Error detail when the step failed.
+ type: string
+ updatedAt:
+ description: Last update time (ISO-8601); may be empty when status is NOT_STARTED.
+ example: 2025-03-20T08:30:00Z
+ type: string
+ required:
+ - actionType
+ - status
+ - updatedAt
+ type: object
+ GetActionResponse:
+ description: Single lending action (intent plus per-step execution rows).
+ example:
+ actionType: DEPOSIT
+ createdAt: 2025-01-15T10:00:00Z
+ opportunityId: morpho-usdc-vault-1
+ amount: "1500.5"
+ positionId: 770e8400-e29b-41d4-a716-446655440002
+ records:
+ - actionType: APPROVE
+ errorMessage: errorMessage
+ txId: tx_abc123def456
+ txHash: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
+ status: COMPLETED
+ updatedAt: 2025-03-20T08:30:00Z
+ - actionType: APPROVE
+ errorMessage: errorMessage
+ txId: tx_abc123def456
+ txHash: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
+ status: COMPLETED
+ updatedAt: 2025-03-20T08:30:00Z
+ - actionType: APPROVE
+ errorMessage: errorMessage
+ txId: tx_abc123def456
+ txHash: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
+ status: COMPLETED
+ updatedAt: 2025-03-20T08:30:00Z
+ - actionType: APPROVE
+ errorMessage: errorMessage
+ txId: tx_abc123def456
+ txHash: 0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
+ status: COMPLETED
+ updatedAt: 2025-03-20T08:30:00Z
+ providerId: MORPHO
+ id: 660e8400-e29b-41d4-a716-446655440001
+ status: IN_PROGRESS
+ updatedAt: 2025-03-20T08:30:00Z
+ properties:
+ id:
+ description: Action sequence id (UUID).
+ example: 660e8400-e29b-41d4-a716-446655440001
+ type: string
+ status:
+ description: "Intent status (e.g. CREATED, IN_PROGRESS, COMPLETED)."
+ example: IN_PROGRESS
+ type: string
+ providerId:
+ description: Lending protocol identifier.
+ enum:
+ - MORPHO
+ - AAVE
+ example: MORPHO
+ type: string
+ actionType:
+ description: Whether this action is a deposit or withdraw flow.
+ enum:
+ - DEPOSIT
+ - WITHDRAW
+ example: DEPOSIT
+ type: string
+ opportunityId:
+ description: Target lending opportunity identifier.
+ example: morpho-usdc-vault-1
+ type: string
+ positionId:
+ description: Position id in the system when applicable.
+ example: 770e8400-e29b-41d4-a716-446655440002
+ type: string
+ amount:
+ description: Human-readable amount for the action.
+ example: "1500.5"
+ type: string
+ createdAt:
+ description: Creation time (ISO-8601).
+ example: 2025-01-15T10:00:00Z
+ type: string
+ updatedAt:
+ description: Last update time (ISO-8601).
+ example: 2025-03-20T08:30:00Z
+ type: string
+ records:
+ description: Ordered execution steps for this action.
+ items:
+ $ref: "#/components/schemas/ActionRecord"
+ maxItems: 4
+ minItems: 1
+ type: array
+ required:
+ - actionType
+ - amount
+ - createdAt
+ - id
+ - opportunityId
+ - providerId
+ - records
+ - status
+ - updatedAt
+ type: object
+ GetActionsResponse:
+ example:
+ next: ""
+ total: 1
+ data:
+ - id: 660e8400-e29b-41d4-a716-446655440001
+ status: IN_PROGRESS
+ providerId: MORPHO
+ actionType: DEPOSIT
+ opportunityId: morpho-usdc-vault-1
+ amount: "1500.5"
+ createdAt: 2025-01-15T10:00:00Z
+ updatedAt: 2025-03-20T08:30:00Z
+ records:
+ - actionType: APPROVE
+ status: COMPLETED
+ txId: tx_abc123
+ txHash: 0xabc...
+ updatedAt: 2025-03-20T08:29:00Z
+ prev: ""
+ properties:
+ data:
+ description: Page of lending actions for this query.
+ example:
+ - id: 660e8400-e29b-41d4-a716-446655440001
+ status: IN_PROGRESS
+ providerId: MORPHO
+ actionType: DEPOSIT
+ opportunityId: morpho-usdc-vault-1
+ amount: "1500.5"
+ createdAt: 2025-01-15T10:00:00Z
+ updatedAt: 2025-03-20T08:30:00Z
+ records:
+ - actionType: APPROVE
+ status: COMPLETED
+ txId: tx_abc123
+ txHash: 0xabc...
+ updatedAt: 2025-03-20T08:29:00Z
+ items:
+ $ref: "#/components/schemas/GetActionResponse"
+ type: array
+ next:
+ description: Opaque cursor for the next page; empty when there is no next
+ page.
+ example: ""
+ type: string
+ prev:
+ description: Opaque cursor for the previous page; empty when there is no
+ previous page.
+ example: ""
+ type: string
+ total:
+ description: Total number of items matching the query.
+ example: 1
+ format: int32
+ type: integer
+ required:
+ - data
+ - total
+ type: object
+ CreateEarnActionRequest:
+ example:
+ opportunityId: morpho-usdc-vault-1
+ amount: "1000.0"
+ action: DEPOSIT
+ vaultAccountId: "12345"
+ properties:
+ action:
+ description: Whether to deposit into or withdraw from the lending opportunity.
+ enum:
+ - DEPOSIT
+ - WITHDRAW
+ example: DEPOSIT
+ type: string
+ opportunityId:
+ description: Identifier of the vault or market (lending opportunity).
+ example: morpho-usdc-vault-1
+ type: string
+ vaultAccountId:
+ description: Fireblocks vault account that will execute the action.
+ example: "12345"
+ type: string
+ amount:
+ description: Human-readable token amount (e.g. "1.6") or the keyword "max"
+ for the full position or available balance.
+ example: "1000.0"
+ type: string
+ required:
+ - action
+ - amount
+ - opportunityId
+ - vaultAccountId
+ type: object
+ CreateEarnActionResponse:
+ example:
+ id: 550e8400-e29b-41d4-a716-446655440000
+ status: CREATED
+ properties:
+ id:
+ description: ActionIntent UUID for tracking the lending action workflow.
+ example: 550e8400-e29b-41d4-a716-446655440000
+ type: string
+ status:
+ description: "Lifecycle status (e.g. CREATED, IN_PROGRESS, COMPLETED)."
+ enum:
+ - CREATED
+ - IN_PROGRESS
+ - COMPLETED
+ - CANCELED
+ - FAILED
+ example: CREATED
+ type: string
+ required:
+ - id
+ - status
+ type: object
+ EarnAsset:
+ properties:
+ address:
+ description: Contract address of the token on-chain.
+ example: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
+ type: string
+ symbol:
+ description: Human-readable ticker (e.g. USDC).
+ example: USDC
+ type: string
+ decimals:
+ description: Token decimals used when interpreting on-chain amounts.
+ example: 6
+ format: int32
+ type: integer
+ assetId:
+ description: "Fireblocks legacy asset identifier (e.g. USDC_ETH, PYUSD)."
+ example: USDC_ETH
+ type: string
+ type: object
+ Apy:
+ properties:
+ native:
+ description: "APY in native format (before fees), as a percentage (e.g.\
+ \ 4.25 means 4.25%, not 0.0425)."
+ example: 4.25
+ format: double
+ type: number
+ gross:
+ description: "Gross APY before fees, as a percentage (e.g. 4.25 means 4.25%,\
+ \ not 0.0425)."
+ example: 4.4
+ format: double
+ type: number
+ net:
+ description: "Net APY after fees, as a percentage (e.g. 4.25 means 4.25%,\
+ \ not 0.0425)."
+ example: 4.05
+ format: double
+ type: number
+ type: object
+ Exposure:
+ properties:
+ assetAddress:
+ description: On-chain address of the exposure asset.
+ example: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
+ type: string
+ symbol:
+ description: Ticker for the exposure asset.
+ example: WETH
+ type: string
+ amount:
+ description: Human-readable decimal string (raw on-chain value scaled by
+ 10^decimals).
+ example: "125.5"
+ type: string
+ type: object
+ Opportunity:
+ properties:
+ id:
+ description: Unique opportunity identifier.
+ example: opp-usdc-eth-001
+ type: string
+ providerId:
+ description: Lending protocol (`MORPHO` or `AAVE`).
+ enum:
+ - MORPHO
+ - AAVE
+ example: MORPHO
+ type: string
+ type:
+ description: Opportunity kind — vault or market.
+ enum:
+ - VAULT
+ - MARKET
+ example: VAULT
+ type: string
+ chainId:
+ description: Chain identifier as a string (e.g. "1" for Ethereum mainnet).
+ example: "1"
+ type: string
+ address:
+ description: Primary contract address for the vault or market.
+ example: 0x1234567890123456789012345678901234567890
+ type: string
+ name:
+ description: Display name of the opportunity.
+ example: USDC Core
+ type: string
+ symbol:
+ description: Symbol or share token ticker for the position asset.
+ example: mUSDC
+ type: string
+ principalAsset:
+ allOf:
+ - $ref: "#/components/schemas/EarnAsset"
+ description: Underlying token the user deposits (principal).
+ positionAsset:
+ allOf:
+ - $ref: "#/components/schemas/EarnAsset"
+ description: Token representing the user’s position in the protocol (e.g.
+ vault share).
+ totalAssets:
+ description: Human-readable total value locked / assets in the opportunity.
+ example: "50000000.0"
+ type: string
+ liquidity:
+ description: Human-readable available liquidity.
+ example: "1200000.0"
+ type: string
+ apy:
+ allOf:
+ - $ref: "#/components/schemas/Apy"
+ description: APY breakdown; values are percentages (e.g. 4.25 means 4.25%).
+ performanceFee:
+ description: Performance fee as a human-readable decimal string.
+ example: "0.10"
+ type: string
+ managementFee:
+ description: Management fee as a human-readable decimal string.
+ example: "0.01"
+ type: string
+ exposure:
+ description: Optional per-asset exposure breakdown.
+ example: []
+ items:
+ $ref: "#/components/schemas/Exposure"
+ maxItems: 10
+ minItems: 0
+ type: array
+ type: object
+ GetOpportunitiesResponse:
+ example:
+ next: ""
+ total: 1
+ data:
+ - id: opp-usdc-eth-001
+ providerId: MORPHO
+ type: VAULT
+ chainId: "1"
+ address: 0x1234567890123456789012345678901234567890
+ name: USDC Core
+ symbol: mUSDC
+ principalAsset:
+ address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
+ symbol: USDC
+ decimals: 6
+ assetId: USDC_ETH
+ positionAsset:
+ address: 0xabcdefabcdefabcdefabcdefabcdefabcdefabcd
+ symbol: mUSDC
+ decimals: 18
+ assetId: MORPHO_USDC_VAULT_ETH
+ totalAssets: "50000000.0"
+ liquidity: "1200000.0"
+ apy:
+ native: 4.25
+ gross: 4.4
+ net: 4.05
+ performanceFee: "0.10"
+ exposure: []
+ managementFee: "0.01"
+ prev: ""
+ properties:
+ data:
+ description: Page of lending opportunities for this query.
+ example:
+ - id: opp-usdc-eth-001
+ providerId: MORPHO
+ type: VAULT
+ chainId: "1"
+ address: 0x1234567890123456789012345678901234567890
+ name: USDC Core
+ symbol: mUSDC
+ principalAsset:
+ address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
+ symbol: USDC
+ decimals: 6
+ assetId: USDC_ETH
+ positionAsset:
+ address: 0xabcdefabcdefabcdefabcdefabcdefabcdefabcd
+ symbol: mUSDC
+ decimals: 18
+ assetId: MORPHO_USDC_VAULT_ETH
+ totalAssets: "50000000.0"
+ liquidity: "1200000.0"
+ apy:
+ native: 4.25
+ gross: 4.4
+ net: 4.05
+ performanceFee: "0.10"
+ exposure: []
+ managementFee: "0.01"
+ items:
+ $ref: "#/components/schemas/Opportunity"
+ type: array
+ next:
+ description: Opaque cursor for the next page; empty when there is no next
+ page.
+ example: ""
+ type: string
+ prev:
+ description: Opaque cursor for the previous page; empty when there is no
+ previous page.
+ example: ""
+ type: string
+ total:
+ description: Total number of items matching the query.
+ example: 1
+ format: int32
+ type: integer
+ required:
+ - data
+ - total
+ type: object
+ Position-2:
+ properties:
+ id:
+ description: Position UUID.
+ example: 660e8400-e29b-41d4-a716-446655440001
+ type: string
+ status:
+ description: Lifecycle status of the position.
+ enum:
+ - ACTIVE
+ - INACTIVE
+ example: ACTIVE
+ type: string
+ inFlight:
+ description: True while an action is in progress for this position.
+ example: false
+ type: boolean
+ positionType:
+ description: Whether the position is lend- or borrow-side.
+ enum:
+ - LEND
+ - BORROW
+ example: LEND
+ type: string
+ vaultAccountId:
+ description: Fireblocks vault account holding the position.
+ example: "12345"
+ type: string
+ opportunityId:
+ description: Opportunity / vault or market identifier.
+ example: morpho-usdc-vault-1
+ type: string
+ chainId:
+ description: Chain identifier as a string (e.g. "1").
+ example: "1"
+ type: string
+ providerId:
+ description: Lending protocol.
+ enum:
+ - MORPHO
+ - AAVE
+ example: MORPHO
+ type: string
+ origin:
+ description: Whether the position was opened natively in Fireblocks or imported
+ externally.
+ enum:
+ - NATIVE
+ - EXTERNAL
+ example: NATIVE
+ type: string
+ principalAssetId:
+ description: Fireblocks asset id for the principal (underlying) asset.
+ example: USDC_ETH
+ type: string
+ positionAssetId:
+ description: Fireblocks asset id for the position / share token.
+ example: MORPHO_USDC_VAULT_ETH
+ type: string
+ principalBalance:
+ description: Human-readable principal balance.
+ example: "10000.00"
+ type: string
+ positionBalance:
+ description: Human-readable position token balance.
+ example: "9950.5"
+ type: string
+ createdAt:
+ description: Creation time (ISO-8601).
+ example: 2025-01-15T10:00:00Z
+ type: string
+ updatedAt:
+ description: Last update time (ISO-8601).
+ example: 2025-03-20T08:30:00Z
+ type: string
+ lastSyncedAt:
+ description: Last successful on-chain sync time (ISO-8601).
+ example: 2025-03-20T08:29:55Z
+ type: string
+ availableActions:
+ description: Actions the API allows next for this position.
+ example:
+ - DEPOSIT
+ - WITHDRAW
+ items:
+ enum:
+ - DEPOSIT
+ - WITHDRAW
+ type: string
+ type: array
+ type: object
+ GetPositionsResponse:
+ example:
+ next: ""
+ total: 1
+ data:
+ - id: 660e8400-e29b-41d4-a716-446655440001
+ status: ACTIVE
+ inFlight: false
+ positionType: LEND
+ vaultAccountId: "12345"
+ opportunityId: morpho-usdc-vault-1
+ chainId: "1"
+ providerId: MORPHO
+ origin: NATIVE
+ principalAssetId: USDC_ETH
+ positionAssetId: MORPHO_USDC_VAULT_ETH
+ principalBalance: "10000.00"
+ positionBalance: "9950.5"
+ createdAt: 2025-01-15T10:00:00Z
+ updatedAt: 2025-03-20T08:30:00Z
+ lastSyncedAt: 2025-03-20T08:29:55Z
+ availableActions:
+ - DEPOSIT
+ - WITHDRAW
+ prev: ""
+ properties:
+ data:
+ description: Page of user lending positions for this query.
+ example:
+ - id: 660e8400-e29b-41d4-a716-446655440001
+ status: ACTIVE
+ inFlight: false
+ positionType: LEND
+ vaultAccountId: "12345"
+ opportunityId: morpho-usdc-vault-1
+ chainId: "1"
+ providerId: MORPHO
+ origin: NATIVE
+ principalAssetId: USDC_ETH
+ positionAssetId: MORPHO_USDC_VAULT_ETH
+ principalBalance: "10000.00"
+ positionBalance: "9950.5"
+ createdAt: 2025-01-15T10:00:00Z
+ updatedAt: 2025-03-20T08:30:00Z
+ lastSyncedAt: 2025-03-20T08:29:55Z
+ availableActions:
+ - DEPOSIT
+ - WITHDRAW
+ items:
+ $ref: "#/components/schemas/Position-2"
+ type: array
+ next:
+ description: Opaque cursor for the next page; empty when there is no next
+ page.
+ example: ""
+ type: string
+ prev:
+ description: Opaque cursor for the previous page; empty when there is no
+ previous page.
+ example: ""
+ type: string
+ total:
+ description: Total number of items matching the query.
+ example: 1
+ format: int32
+ type: integer
+ required:
+ - data
+ - total
+ type: object
+ EarnProvider:
+ properties:
+ providerId:
+ description: Stable protocol identifier (`MORPHO` or `AAVE`).
+ enum:
+ - MORPHO
+ - AAVE
+ example: AAVE
+ type: string
+ displayName:
+ description: Human-readable protocol name for UI.
+ example: Aave
+ type: string
+ logoUrl:
+ description: URL for the provider logo asset.
+ example: https://cdn.example.com/aave.svg
+ type: string
+ supportedChainIds:
+ description: EVM chain IDs where this provider is supported.
+ example:
+ - 1
+ - 42161
+ items:
+ format: int32
+ type: integer
+ maxItems: 10
+ minItems: 0
+ type: array
+ isTermsApprovalRequired:
+ description: Whether the user must accept terms before using this provider.
+ example: false
+ type: boolean
+ termsOfServiceUrl:
+ description: "URL to the provider terms of service, when applicable."
+ example: https://aave.com/terms
+ type: string
+ isTermsOfServiceApproved:
+ description: Whether terms have been approved for this workspace / context.
+ example: true
+ type: boolean
+ type: object
+ GetProvidersResponse:
+ example:
+ next: ""
+ total: 1
+ data:
+ - providerId: MORPHO
+ displayName: Morpho
+ logoUrl: https://cdn.example.com/morpho.svg
+ supportedChainIds:
+ - 1
+ - 8453
+ isTermsApprovalRequired: true
+ termsOfServiceUrl: https://example.com/morpho/tos
+ isTermsOfServiceApproved: false
+ prev: ""
+ properties:
+ data:
+ description: Page of integrated lending providers.
+ example:
+ - providerId: MORPHO
+ displayName: Morpho
+ logoUrl: https://cdn.example.com/morpho.svg
+ supportedChainIds:
+ - 1
+ - 8453
+ isTermsApprovalRequired: true
+ termsOfServiceUrl: https://example.com/morpho/tos
+ isTermsOfServiceApproved: false
+ items:
+ $ref: "#/components/schemas/EarnProvider"
+ type: array
+ next:
+ description: Opaque cursor for the next page; empty when there is no next
+ page.
+ example: ""
+ type: string
+ prev:
+ description: Opaque cursor for the previous page; empty when there is no
+ previous page.
+ example: ""
+ type: string
+ total:
+ description: Total number of items matching the query.
+ example: 1
+ format: int32
+ type: integer
+ required:
+ - data
+ - total
+ type: object
ManifestBase:
description: Base manifest schema with common properties
properties:
@@ -54445,6 +57104,517 @@ components:
allOf:
- $ref: "#/components/schemas/ManifestBase"
- $ref: "#/components/schemas/ManifestQuoteInfo"
+ ParticipantsIdentificationSupportedEndpoint:
+ description: |
+ Trading API endpoint category where `participantsIdentification` may be required when this policy is present.
+ Corresponds to manifest `order`, `quote`, and `rate`: ORDER, QUOTE, and RATE respectively.
+ enum:
+ - ORDER
+ - QUOTE
+ - RATE
+ type: string
+ ParticipantsIdentificationJsonSchema:
+ description: "A JSON Schema (draft-07) in string format that validates the ParticipantsIdentification\
+ \ object on requests where\nthe provider manifest lists that endpoint in `participantsIdentificationPolicy.supportedEndpoints`\
+ \ (e.g. POST /orders).\nDefines which fields from originator and/or beneficiary\
+ \ are required.\n\nThe schema uses oneOf to discriminate between INDIVIDUAL\
+ \ (PersonalIdentification) \nand BUSINESS (BusinessIdentification) entity\
+ \ types for each participant.\n\nFor INDIVIDUAL: fullName, dateOfBirth, postalAddress,\
+ \ email, phone, idNumber, idType, etc.\nFor BUSINESS: businessName, registrationNumber,\
+ \ postalAddress, email, phone, etc.\n\nIf you constrain `idType` or `additionalIdType`\
+ \ with a JSON Schema `enum`, use the same values as\n`PersonalIdentificationType`\
+ \ (authoritative list in that schema). The example below mirrors that enum.\n\
+ \nThe string content is expected to be valid JSON (application/json).\n"
+ example: |
+ {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["originator"],
+ "properties": {
+ "originator": {
+ "type": "object",
+ "required": ["entityType"],
+ "oneOf": [
+ {
+ "properties": {
+ "entityType": { "const": "INDIVIDUAL" },
+ "fullName": {
+ "type": "object",
+ "required": ["firstName", "lastName"],
+ "properties": {
+ "firstName": { "type": "string" },
+ "lastName": { "type": "string" },
+ "middleName": { "type": "string" }
+ }
+ },
+ "dateOfBirth": { "type": "string", "format": "date" },
+ "email": { "type": "string", "format": "email" },
+ "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" },
+ "postalAddress": {
+ "type": "object",
+ "required": ["city", "country"],
+ "properties": {
+ "streetLine1": { "type": "string" },
+ "streetLine2": { "type": "string" },
+ "city": { "type": "string" },
+ "region": { "type": "string" },
+ "postalCode": { "type": "string" },
+ "country": { "type": "string" }
+ }
+ },
+ "idNumber": { "type": "string" },
+ "idType": { "type": "string", "enum": ["NIN_SLIP_CARD", "BVN", "ID_CARD", "ID_BOOK", "NATIONAL_ID", "ALIEN_CARD", "PASSPORT", "ECOWAS_CARD", "RWANDA_CARD", "DRIVERS_LICENSE", "RESIDENT_CARD", "VOTER_ID", "HEALTH_INSURANCE_ID", "GHANA_CARD", "REFUGEE_ID", "SSNIT", "NON_CITIZEN_ID", "NATIONAL_REGISTRATION_CARD"] }
+ },
+ "required": ["entityType", "fullName", "email", "postalAddress"]
+ },
+ {
+ "properties": {
+ "entityType": { "const": "BUSINESS" },
+ "businessName": { "type": "string" },
+ "registrationNumber": { "type": "string" },
+ "email": { "type": "string", "format": "email" },
+ "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" },
+ "postalAddress": {
+ "type": "object",
+ "required": ["city", "country"],
+ "properties": {
+ "streetLine1": { "type": "string" },
+ "streetLine2": { "type": "string" },
+ "city": { "type": "string" },
+ "region": { "type": "string" },
+ "postalCode": { "type": "string" },
+ "country": { "type": "string" }
+ }
+ }
+ },
+ "required": ["entityType", "businessName", "postalAddress"]
+ }
+ ]
+ },
+ "beneficiary": {
+ "type": "object",
+ "required": ["entityType"],
+ "oneOf": [
+ {
+ "properties": {
+ "entityType": { "const": "INDIVIDUAL" },
+ "fullName": {
+ "type": "object",
+ "required": ["firstName", "lastName"],
+ "properties": {
+ "firstName": { "type": "string" },
+ "lastName": { "type": "string" }
+ }
+ }
+ },
+ "required": ["entityType", "fullName"]
+ },
+ {
+ "properties": {
+ "entityType": { "const": "BUSINESS" },
+ "businessName": { "type": "string" }
+ },
+ "required": ["entityType", "businessName"]
+ }
+ ]
+ }
+ }
+ }
+ type: string
+ TransferRail:
+ description: "Transfer rail: \n* **BLOCKCHAIN** - Transfer over the public blockchain\n\
+ * **INTERNAL** - Internal transfer within the same account (e.g. sub-accounts\
+ \ or same api key)\n* **SWIFT** - International wire transfer\n* **IBAN**\
+ \ - International Bank Account Number transfer\n* **US_WIRE** - Domestic wire\
+ \ transfer within the United States (e.g. FedWire)\n* **ACH** - Automated\
+ \ Clearing House transfer, typically takes longer but not as expensive as\
+ \ wire transfers\n* **SEPA** - Euro transfers within the SEPA zone\n* **SPEI**\
+ \ - Mexican interbank electronic payment system\n* **PIX** - Brazilian instant\
+ \ payment system\n* **LBT** - Local bank transfers within Africa\n* **MOMO**\
+ \ - Mobile money transfers (e.g. M-Pesa)\n* **CHAPS** - The Clearing House\
+ \ Automated Payment System (CHAPS) is a real-time gross settlement payment\
+ \ system used for transactions in the United Kingdom\n* **PAYID** - PayID\
+ \ payment identifier system (Australia)\n* **INTERAC** - Interac electronic\
+ \ funds transfer (Canada)\n* **INTERNAL_TRANSFER** - Internal transfer between\
+ \ accounts\n"
+ enum:
+ - BLOCKCHAIN
+ - INTERNAL
+ - SWIFT
+ - IBAN
+ - US_WIRE
+ - ACH
+ - SEPA
+ - SPEI
+ - PIX
+ - LBT
+ - MOMO
+ - CHAPS
+ - PAYID
+ - INTERAC
+ - INTERNAL_TRANSFER
+ example: BLOCKCHAIN
+ type: string
+ FlowDirection:
+ description: The direction of asset conversion in an order.
+ enum:
+ - FIAT_TO_CRYPTO
+ - CRYPTO_TO_FIAT
+ - CRYPTO_TO_CRYPTO
+ - FIAT_TO_FIAT
+ type: string
+ IdentificationPolicyOverride:
+ description: |
+ Override scoped by one or more dimensions. More dimensions = higher priority.
+ Equal priority ties are broken by array order.
+
+ **Validation:** At least one of `asset`, `rail`, or `flowDirection` will be present.
+
+ Priority (highest to lowest):
+ 1. asset + rail + flowDirection
+ 2. asset + rail
+ 2. asset + flowDirection
+ 2. rail + flowDirection
+ 3. asset only
+ 3. rail only
+ 3. flowDirection only
+ 4. defaultSchema (no override matched)
+ properties:
+ asset:
+ description: Fireblocks asset ID (fiat or crypto).
+ type: string
+ rail:
+ $ref: "#/components/schemas/TransferRail"
+ flowDirection:
+ $ref: "#/components/schemas/FlowDirection"
+ schema:
+ description: "A JSON Schema (draft-07) in string format that validates the\
+ \ ParticipantsIdentification object on requests where\nthe provider manifest\
+ \ lists that endpoint in `participantsIdentificationPolicy.supportedEndpoints`\
+ \ (e.g. POST /orders).\nDefines which fields from originator and/or beneficiary\
+ \ are required.\n\nThe schema uses oneOf to discriminate between INDIVIDUAL\
+ \ (PersonalIdentification) \nand BUSINESS (BusinessIdentification) entity\
+ \ types for each participant.\n\nFor INDIVIDUAL: fullName, dateOfBirth,\
+ \ postalAddress, email, phone, idNumber, idType, etc.\nFor BUSINESS: businessName,\
+ \ registrationNumber, postalAddress, email, phone, etc.\n\nIf you constrain\
+ \ `idType` or `additionalIdType` with a JSON Schema `enum`, use the same\
+ \ values as\n`PersonalIdentificationType` (authoritative list in that\
+ \ schema). The example below mirrors that enum.\n\nThe string content\
+ \ is expected to be valid JSON (application/json).\n"
+ example: |
+ {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["originator"],
+ "properties": {
+ "originator": {
+ "type": "object",
+ "required": ["entityType"],
+ "oneOf": [
+ {
+ "properties": {
+ "entityType": { "const": "INDIVIDUAL" },
+ "fullName": {
+ "type": "object",
+ "required": ["firstName", "lastName"],
+ "properties": {
+ "firstName": { "type": "string" },
+ "lastName": { "type": "string" },
+ "middleName": { "type": "string" }
+ }
+ },
+ "dateOfBirth": { "type": "string", "format": "date" },
+ "email": { "type": "string", "format": "email" },
+ "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" },
+ "postalAddress": {
+ "type": "object",
+ "required": ["city", "country"],
+ "properties": {
+ "streetLine1": { "type": "string" },
+ "streetLine2": { "type": "string" },
+ "city": { "type": "string" },
+ "region": { "type": "string" },
+ "postalCode": { "type": "string" },
+ "country": { "type": "string" }
+ }
+ },
+ "idNumber": { "type": "string" },
+ "idType": { "type": "string", "enum": ["NIN_SLIP_CARD", "BVN", "ID_CARD", "ID_BOOK", "NATIONAL_ID", "ALIEN_CARD", "PASSPORT", "ECOWAS_CARD", "RWANDA_CARD", "DRIVERS_LICENSE", "RESIDENT_CARD", "VOTER_ID", "HEALTH_INSURANCE_ID", "GHANA_CARD", "REFUGEE_ID", "SSNIT", "NON_CITIZEN_ID", "NATIONAL_REGISTRATION_CARD"] }
+ },
+ "required": ["entityType", "fullName", "email", "postalAddress"]
+ },
+ {
+ "properties": {
+ "entityType": { "const": "BUSINESS" },
+ "businessName": { "type": "string" },
+ "registrationNumber": { "type": "string" },
+ "email": { "type": "string", "format": "email" },
+ "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" },
+ "postalAddress": {
+ "type": "object",
+ "required": ["city", "country"],
+ "properties": {
+ "streetLine1": { "type": "string" },
+ "streetLine2": { "type": "string" },
+ "city": { "type": "string" },
+ "region": { "type": "string" },
+ "postalCode": { "type": "string" },
+ "country": { "type": "string" }
+ }
+ }
+ },
+ "required": ["entityType", "businessName", "postalAddress"]
+ }
+ ]
+ },
+ "beneficiary": {
+ "type": "object",
+ "required": ["entityType"],
+ "oneOf": [
+ {
+ "properties": {
+ "entityType": { "const": "INDIVIDUAL" },
+ "fullName": {
+ "type": "object",
+ "required": ["firstName", "lastName"],
+ "properties": {
+ "firstName": { "type": "string" },
+ "lastName": { "type": "string" }
+ }
+ }
+ },
+ "required": ["entityType", "fullName"]
+ },
+ {
+ "properties": {
+ "entityType": { "const": "BUSINESS" },
+ "businessName": { "type": "string" }
+ },
+ "required": ["entityType", "businessName"]
+ }
+ ]
+ }
+ }
+ }
+ type: string
+ required:
+ - schema
+ type: object
+ ParticipantsIdentificationPolicy:
+ description: |
+ When present on a provider manifest, specifies KYC/AML identification requirements as JSON Schemas and which flows in
+ `supportedEndpoints` may require `participantsIdentification`.
+
+ Only endpoints listed in `supportedEndpoints` are in scope for this policy. `defaultSchema` is the baseline; `overrides`
+ refine it by `asset`, `rail`, and/or `flowDirection` (see priority below). The most specific matching override applies its
+ `schema` for that request context: it may fully replace `defaultSchema`, or partially override it—when the override
+ `schema` is not provided as a complete standalone definition, fields and rules omitted there continue to follow
+ `defaultSchema`. If this object is omitted from the manifest, the provider imposes no PII requirements through this policy.
+ FirstParty participants are always exempt.
+
+ Resolution: from overrides that match the request context, choose the most specific (most dimensions matched); break ties
+ by earlier position in the `overrides` array; if none match, use `defaultSchema`.
+
+ Priority (highest precedence first):
+ 1. asset + rail + flowDirection
+ 2. Any two dimensions: asset+rail, asset+flowDirection, rail+flowDirection
+ 3. Any single dimension: asset, rail, or flowDirection
+ 4. defaultSchema (no override matches)
+ example:
+ supportedEndpoints:
+ - ORDER
+ - QUOTE
+ defaultSchema: "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"\
+ type\":\"object\",\"required\":[\"originator\",\"beneficiary\"],\"properties\"\
+ :{\"originator\":{\"type\":\"object\",\"required\":[\"entityType\"],\"oneOf\"\
+ :[{\"properties\":{\"entityType\":{\"const\":\"INDIVIDUAL\"},\"fullName\"\
+ :{\"type\":\"object\",\"required\":[\"firstName\",\"lastName\"],\"properties\"\
+ :{\"firstName\":{\"type\":\"string\"},\"lastName\":{\"type\":\"string\"\
+ }}},\"email\":{\"type\":\"string\",\"format\":\"email\"}},\"required\":[\"\
+ entityType\",\"fullName\",\"email\"]},{\"properties\":{\"entityType\":{\"\
+ const\":\"BUSINESS\"},\"businessName\":{\"type\":\"string\"},\"email\":{\"\
+ type\":\"string\",\"format\":\"email\"}},\"required\":[\"entityType\",\"\
+ businessName\",\"email\"]}]},\"beneficiary\":{\"type\":\"object\",\"required\"\
+ :[\"entityType\"],\"oneOf\":[{\"properties\":{\"entityType\":{\"const\"\
+ :\"INDIVIDUAL\"},\"fullName\":{\"type\":\"object\",\"required\":[\"firstName\"\
+ ,\"lastName\"],\"properties\":{\"firstName\":{\"type\":\"string\"},\"lastName\"\
+ :{\"type\":\"string\"}}}},\"required\":[\"entityType\",\"fullName\"]},{\"\
+ properties\":{\"entityType\":{\"const\":\"BUSINESS\"},\"businessName\":{\"\
+ type\":\"string\"}},\"required\":[\"entityType\",\"businessName\"]}]}}}"
+ overrides:
+ - asset: NGN
+ schema: "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\"\
+ :\"object\",\"required\":[\"originator\",\"beneficiary\"],\"properties\"\
+ :{\"originator\":{\"type\":\"object\",\"required\":[\"entityType\"],\"\
+ oneOf\":[{\"properties\":{\"entityType\":{\"const\":\"INDIVIDUAL\"},\"\
+ fullName\":{\"type\":\"object\",\"required\":[\"firstName\",\"lastName\"\
+ ],\"properties\":{\"firstName\":{\"type\":\"string\"},\"lastName\":{\"\
+ type\":\"string\"}}},\"email\":{\"type\":\"string\",\"format\":\"email\"\
+ },\"idNumber\":{\"type\":\"string\"},\"idType\":{\"type\":\"string\",\"\
+ enum\":[\"NIN_SLIP_CARD\"]},\"additionalIdNumber\":{\"type\":\"string\"\
+ },\"additionalIdType\":{\"type\":\"string\",\"enum\":[\"BVN\"]}},\"required\"\
+ :[\"entityType\",\"fullName\",\"email\",\"idNumber\",\"additionalIdNumber\"\
+ ]},{\"properties\":{\"entityType\":{\"const\":\"BUSINESS\"},\"businessName\"\
+ :{\"type\":\"string\"},\"email\":{\"type\":\"string\",\"format\":\"email\"\
+ },\"registrationNumber\":{\"type\":\"string\"}},\"required\":[\"entityType\"\
+ ,\"businessName\",\"email\",\"registrationNumber\"]}]},\"beneficiary\"\
+ :{\"type\":\"object\",\"required\":[\"entityType\"],\"oneOf\":[{\"properties\"\
+ :{\"entityType\":{\"const\":\"INDIVIDUAL\"},\"fullName\":{\"type\":\"\
+ object\",\"required\":[\"firstName\",\"lastName\"],\"properties\":{\"\
+ firstName\":{\"type\":\"string\"},\"lastName\":{\"type\":\"string\"}}}},\"\
+ required\":[\"entityType\",\"fullName\"]},{\"properties\":{\"entityType\"\
+ :{\"const\":\"BUSINESS\"},\"businessName\":{\"type\":\"string\"}},\"required\"\
+ :[\"entityType\",\"businessName\"]}]}}}"
+ - rail: MOMO
+ schema: "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\"\
+ :\"object\",\"required\":[\"originator\"],\"properties\":{\"originator\"\
+ :{\"type\":\"object\",\"required\":[\"entityType\"],\"oneOf\":[{\"properties\"\
+ :{\"entityType\":{\"const\":\"INDIVIDUAL\"},\"fullName\":{\"type\":\"\
+ object\",\"required\":[\"firstName\"],\"properties\":{\"firstName\":{\"\
+ type\":\"string\"}}},\"phone\":{\"type\":\"string\"}},\"required\":[\"\
+ entityType\",\"fullName\",\"phone\"]}]}}}"
+ - asset: NGN
+ rail: MOMO
+ schema: "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\"\
+ :\"object\",\"required\":[\"originator\"],\"properties\":{\"originator\"\
+ :{\"type\":\"object\",\"required\":[\"entityType\"],\"oneOf\":[{\"properties\"\
+ :{\"entityType\":{\"const\":\"INDIVIDUAL\"},\"fullName\":{\"type\":\"\
+ object\",\"required\":[\"firstName\"],\"properties\":{\"firstName\":{\"\
+ type\":\"string\"}}},\"phone\":{\"type\":\"string\"},\"idNumber\":{\"\
+ type\":\"string\"},\"idType\":{\"type\":\"string\",\"enum\":[\"NIN_SLIP_CARD\"\
+ ]}},\"required\":[\"entityType\",\"fullName\",\"phone\",\"idNumber\"]}]}}}"
+ properties:
+ supportedEndpoints:
+ description: |
+ API endpoints in scope for this participants identification policy. Values `ORDER`, `QUOTE`, and `RATE` correspond to
+ manifest `order`, `quote`, and `rate` flows. Client requests to those endpoints may need to include
+ `participantsIdentification` when the resolved schema requires it.
+ items:
+ $ref: "#/components/schemas/ParticipantsIdentificationSupportedEndpoint"
+ minItems: 1
+ type: array
+ uniqueItems: true
+ defaultSchema:
+ description: "A JSON Schema (draft-07) in string format that validates the\
+ \ ParticipantsIdentification object on requests where\nthe provider manifest\
+ \ lists that endpoint in `participantsIdentificationPolicy.supportedEndpoints`\
+ \ (e.g. POST /orders).\nDefines which fields from originator and/or beneficiary\
+ \ are required.\n\nThe schema uses oneOf to discriminate between INDIVIDUAL\
+ \ (PersonalIdentification) \nand BUSINESS (BusinessIdentification) entity\
+ \ types for each participant.\n\nFor INDIVIDUAL: fullName, dateOfBirth,\
+ \ postalAddress, email, phone, idNumber, idType, etc.\nFor BUSINESS: businessName,\
+ \ registrationNumber, postalAddress, email, phone, etc.\n\nIf you constrain\
+ \ `idType` or `additionalIdType` with a JSON Schema `enum`, use the same\
+ \ values as\n`PersonalIdentificationType` (authoritative list in that\
+ \ schema). The example below mirrors that enum.\n\nThe string content\
+ \ is expected to be valid JSON (application/json).\n"
+ example: |
+ {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["originator"],
+ "properties": {
+ "originator": {
+ "type": "object",
+ "required": ["entityType"],
+ "oneOf": [
+ {
+ "properties": {
+ "entityType": { "const": "INDIVIDUAL" },
+ "fullName": {
+ "type": "object",
+ "required": ["firstName", "lastName"],
+ "properties": {
+ "firstName": { "type": "string" },
+ "lastName": { "type": "string" },
+ "middleName": { "type": "string" }
+ }
+ },
+ "dateOfBirth": { "type": "string", "format": "date" },
+ "email": { "type": "string", "format": "email" },
+ "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" },
+ "postalAddress": {
+ "type": "object",
+ "required": ["city", "country"],
+ "properties": {
+ "streetLine1": { "type": "string" },
+ "streetLine2": { "type": "string" },
+ "city": { "type": "string" },
+ "region": { "type": "string" },
+ "postalCode": { "type": "string" },
+ "country": { "type": "string" }
+ }
+ },
+ "idNumber": { "type": "string" },
+ "idType": { "type": "string", "enum": ["NIN_SLIP_CARD", "BVN", "ID_CARD", "ID_BOOK", "NATIONAL_ID", "ALIEN_CARD", "PASSPORT", "ECOWAS_CARD", "RWANDA_CARD", "DRIVERS_LICENSE", "RESIDENT_CARD", "VOTER_ID", "HEALTH_INSURANCE_ID", "GHANA_CARD", "REFUGEE_ID", "SSNIT", "NON_CITIZEN_ID", "NATIONAL_REGISTRATION_CARD"] }
+ },
+ "required": ["entityType", "fullName", "email", "postalAddress"]
+ },
+ {
+ "properties": {
+ "entityType": { "const": "BUSINESS" },
+ "businessName": { "type": "string" },
+ "registrationNumber": { "type": "string" },
+ "email": { "type": "string", "format": "email" },
+ "phone": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" },
+ "postalAddress": {
+ "type": "object",
+ "required": ["city", "country"],
+ "properties": {
+ "streetLine1": { "type": "string" },
+ "streetLine2": { "type": "string" },
+ "city": { "type": "string" },
+ "region": { "type": "string" },
+ "postalCode": { "type": "string" },
+ "country": { "type": "string" }
+ }
+ }
+ },
+ "required": ["entityType", "businessName", "postalAddress"]
+ }
+ ]
+ },
+ "beneficiary": {
+ "type": "object",
+ "required": ["entityType"],
+ "oneOf": [
+ {
+ "properties": {
+ "entityType": { "const": "INDIVIDUAL" },
+ "fullName": {
+ "type": "object",
+ "required": ["firstName", "lastName"],
+ "properties": {
+ "firstName": { "type": "string" },
+ "lastName": { "type": "string" }
+ }
+ }
+ },
+ "required": ["entityType", "fullName"]
+ },
+ {
+ "properties": {
+ "entityType": { "const": "BUSINESS" },
+ "businessName": { "type": "string" }
+ },
+ "required": ["entityType", "businessName"]
+ }
+ ]
+ }
+ }
+ }
+ type: string
+ overrides:
+ description: |
+ Contextual overrides scoped by asset, rail, and/or flowDirection. Most specific match wins; ties broken by array order. Replaces the default partially.
+ Each override MUST include at least one of `asset`, `rail`, or `flowDirection` (not `schema` alone); see IdentificationPolicyOverride.
+ items:
+ $ref: "#/components/schemas/IdentificationPolicyOverride"
+ type: array
+ required:
+ - defaultSchema
+ - supportedEndpoints
+ type: object
Manifest:
description: "The manifest of the provider, describing its supported order,\
\ quote, and rate requirements."
@@ -54462,6 +57632,28 @@ components:
- DVP
rate:
supported: true
+ participantsIdentificationPolicy:
+ supportedEndpoints:
+ - ORDER
+ - QUOTE
+ defaultSchema: "{\"$schema\":\"http://json-schema.org/draft-07/schema#\"\
+ ,\"type\":\"object\",\"required\":[\"originator\",\"beneficiary\"],\"\
+ properties\":{\"originator\":{\"type\":\"object\",\"required\":[\"entityType\"\
+ ],\"oneOf\":[{\"properties\":{\"entityType\":{\"const\":\"INDIVIDUAL\"\
+ },\"fullName\":{\"type\":\"object\",\"required\":[\"firstName\",\"lastName\"\
+ ],\"properties\":{\"firstName\":{\"type\":\"string\"},\"lastName\":{\"\
+ type\":\"string\"}}},\"email\":{\"type\":\"string\",\"format\":\"email\"\
+ }},\"required\":[\"entityType\",\"fullName\",\"email\"]},{\"properties\"\
+ :{\"entityType\":{\"const\":\"BUSINESS\"},\"businessName\":{\"type\":\"\
+ string\"},\"email\":{\"type\":\"string\",\"format\":\"email\"}},\"required\"\
+ :[\"entityType\",\"businessName\",\"email\"]}]},\"beneficiary\":{\"type\"\
+ :\"object\",\"required\":[\"entityType\"],\"oneOf\":[{\"properties\":{\"\
+ entityType\":{\"const\":\"INDIVIDUAL\"},\"fullName\":{\"type\":\"object\"\
+ ,\"required\":[\"firstName\",\"lastName\"],\"properties\":{\"firstName\"\
+ :{\"type\":\"string\"},\"lastName\":{\"type\":\"string\"}}}},\"required\"\
+ :[\"entityType\",\"fullName\"]},{\"properties\":{\"entityType\":{\"const\"\
+ :\"BUSINESS\"},\"businessName\":{\"type\":\"string\"}},\"required\":[\"\
+ entityType\",\"businessName\"]}]}}}"
properties:
order:
$ref: "#/components/schemas/ManifestOrder"
@@ -54469,6 +57661,8 @@ components:
$ref: "#/components/schemas/ManifestQuote"
rate:
$ref: "#/components/schemas/ManifestBase"
+ participantsIdentificationPolicy:
+ $ref: "#/components/schemas/ParticipantsIdentificationPolicy"
required:
- order
- quote
@@ -54515,7 +57709,7 @@ components:
AccountBasedAccessProviderInfo:
properties:
connected:
- description: Whether the provider is currently connected
+ description: Whether the provider is currently connected.
type: boolean
accounts:
items:
@@ -54529,6 +57723,8 @@ components:
allOf:
- $ref: "#/components/schemas/BaseProvider"
- $ref: "#/components/schemas/AccountBasedAccessProviderInfo"
+ description: Provider integrated via Fireblocks connected accounts (`accountBased`
+ is `true`).
example:
id: BRIDGE
name: Bridge
@@ -54570,6 +57766,7 @@ components:
allOf:
- $ref: "#/components/schemas/BaseProvider"
- $ref: "#/components/schemas/DirectAccessProviderInfo"
+ description: Provider used without per-account linking (`accountBased` is `false`).
example:
id: UNISWAP_CLASSIC
name: Uniswap Classic
@@ -54669,58 +57866,6 @@ components:
- code
- message
type: object
- AccountBasedProviderDetails:
- allOf:
- - $ref: "#/components/schemas/BaseProvider"
- - $ref: "#/components/schemas/AccountBasedAccessProviderInfo"
- example:
- id: BRIDGE
- name: Bridge
- logo: https://example.com/logos/bridge.png
- accountBased: true
- manifest:
- order:
- supported: true
- executionTypes:
- - MARKET
- settlementTypes:
- - DVP
- quote:
- supported: false
- rate:
- supported: true
- connected: true
- accounts:
- - id: acc_5e9a2d1c4b7f3e8a
- name: Main Trading Account
- DirectProviderDetails:
- allOf:
- - $ref: "#/components/schemas/BaseProvider"
- - $ref: "#/components/schemas/DirectAccessProviderInfo"
- example:
- id: UNISWAP_CLASSIC
- name: Uniswap Classic
- logo: https://example.com/logos/uniswap.png
- accountBased: false
- manifest:
- order:
- supported: true
- executionTypes:
- - MARKET
- settlementTypes:
- - PREFUNDED
- quote:
- supported: false
- rate:
- supported: true
- approved: true
- hasTermsOfService: true
- termsOfServiceUrl: https://uniswap.org/terms
- privacyPolicyUrl: https://uniswap.org/privacy
- TradingProviderDetails:
- oneOf:
- - $ref: "#/components/schemas/AccountBasedProviderDetails"
- - $ref: "#/components/schemas/DirectProviderDetails"
ScopeItem:
additionalProperties: false
example:
@@ -54736,41 +57881,6 @@ components:
required:
- providerId
type: object
- TransferRail:
- description: "Transfer rail: \n* **BLOCKCHAIN** - Transfer over the public blockchain\n\
- * **INTERNAL** - Internal transfer within the same account (e.g. sub-accounts\
- \ or same api key)\n* **PEER** - Peer transfer within the same provider network\n\
- * **SWIFT** - International wire transfer\n* **IBAN** - International Bank\
- \ Account Number transfer\n* **US_WIRE** - Domestic wire transfer within the\
- \ United States (e.g. FedWire)\n* **ACH** - Automated Clearing House transfer,\
- \ typically takes longer but not as expensive as wire transfers\n* **SEPA**\
- \ - Euro transfers within the SEPA zone\n* **SPEI** - Mexican interbank electronic\
- \ payment system\n* **PIX** - Brazilian instant payment system\n* **LOCAL_BANK_TRANSFER_AFRICA**\
- \ - Local bank transfers within Africa\n* **MOBILE_MONEY** - Mobile money\
- \ transfers (e.g. M-Pesa)\n* **INTERNAL_TRANSFER** - Internal transfer within\
- \ the same account\n* **INTERAC** - Canadian interbank transfer system\n*\
- \ **PAYID** - Australian PayID payment system\n* **CHAPS** - The Clearing\
- \ House Automated Payment System (CHAPS) is a real-time gross settlement payment\
- \ system used for transactions in the United Kingdom\n"
- enum:
- - BLOCKCHAIN
- - INTERNAL
- - PEER
- - SWIFT
- - IBAN
- - US_WIRE
- - ACH
- - SEPA
- - SPEI
- - PIX
- - LOCAL_BANK_TRANSFER_AFRICA
- - MOBILE_MONEY
- - INTERNAL_TRANSFER
- - INTERAC
- - PAYID
- - CHAPS
- example: BLOCKCHAIN
- type: string
PlatformPeerType:
enum:
- VAULT_ACCOUNT
@@ -57051,6 +60161,14 @@ components:
- TRANSACTION_CANCELLED
- TRANSACTION_REJECTED
- TRANSACTION_BLOCKED
+ - PROVIDER_INTERNAL_ERROR
+ - UNSUPPORTED_SOURCE_ASSET
+ - UNSUPPORTED_DESTINATION_ASSET
+ - AMOUNT_BELOW_MINIMUM
+ - PII_MISSING
+ - EXTERNAL_SOURCE_NOT_SUPPORTED
+ - UNSUPPORTED_REGION
+ - DESTINATION_NOT_WHITELISTED
type: string
Failure:
properties:
@@ -57968,51 +61086,6 @@ components:
required:
- approve
type: object
- AddressRegistryLegalEntityLegacy:
- description: "Narrow legacy response for deprecated `GET /v1/address_registry/legal_entity?address=…\
- `. Use `GET /v1/address_registry/legal_entities/{address}` for the full field\
- \ set."
- example:
- companyId: 550e8400-e29b-41d4-a716-446655440000
- countryCode: US
- companyName: ACME Corporation
- properties:
- companyName:
- description: Legal entity / company display name
- example: ACME Corporation
- type: string
- countryCode:
- description: Jurisdiction country code (e.g. ISO 3166-1 alpha-2)
- example: US
- type: string
- companyId:
- description: Company identifier for the resolved legal entity (UUID)
- example: 550e8400-e29b-41d4-a716-446655440000
- format: uuid
- type: string
- required:
- - companyId
- - companyName
- - countryCode
- type: object
- AddressRegistryError:
- description: Error body for address registry operations (4xx and 5xx).
- example:
- code: 2140
- message: Address registry opt-in required for this workspace.
- properties:
- code:
- description: |
- Application error code when present. Typical values include **2140** (403 — workspace not opted in to the address registry) and **2142** (404 — not found). Other codes may appear, including on server errors.
- example: 2140
- type: integer
- message:
- description: Human-readable error message
- example: Address registry opt-in required for this workspace.
- type: string
- required:
- - message
- type: object
AddressRegistryTravelRuleProvider:
description: Travel Rule provider identifier (string enum value).
enum:
@@ -58070,6 +61143,24 @@ components:
- travelRuleProviders
- verified
type: object
+ AddressRegistryError:
+ description: Error body for address registry operations (4xx and 5xx).
+ example:
+ code: 2140
+ message: Address registry opt-in required for this workspace.
+ properties:
+ code:
+ description: |
+ Application error code when present. For HTTP 400 on legal-entity lookup, distinguish: 4100 — request validation (e.g. missing, empty, or whitespace-only `address` after trim); 2140 — workspace not opted in to the address registry (`AR_OPT_IN_REQUIRED`). 2142 — not found (404). Other codes may appear, including on server errors.
+ example: 2140
+ type: integer
+ message:
+ description: Human-readable error message
+ example: Address registry opt-in required for this workspace.
+ type: string
+ required:
+ - message
+ type: object
AddressRegistryTenantRegistryResponse:
description: "Workspace participation in the address registry. Same shape for\
\ GET, POST (opt in), and DELETE (opt out)."
@@ -64167,6 +67258,152 @@ components:
- message
- success
type: object
+ ByorkVerdictResponseStatusEnum:
+ description: |
+ PRE_ACCEPTED - Verdict stored and will be applied when processing reaches the point where your decision is needed. COMPLETED - Verdict final and processing complete. PENDING - Transaction in BYORK flow; no final verdict yet (awaiting decision or processing). RECEIVED - Verdict final and stored; processing not yet complete.
+ enum:
+ - PRE_ACCEPTED
+ - COMPLETED
+ - PENDING
+ - RECEIVED
+ example: COMPLETED
+ type: string
+ ByorkVerdictEnum:
+ description: |
+ ACCEPT/REJECT - Final or pre-accepted verdict. WAIT - When status is PENDING (transaction awaiting decision).
+ enum:
+ - ACCEPT
+ - REJECT
+ - WAIT
+ example: ACCEPT
+ type: string
+ GetByorkVerdictResponse:
+ description: Response for GET BYORK verdict (current verdict/status for a transaction).
+ example:
+ verdict: ACCEPT
+ status: COMPLETED
+ properties:
+ status:
+ $ref: "#/components/schemas/ByorkVerdictResponseStatusEnum"
+ verdict:
+ $ref: "#/components/schemas/ByorkVerdictEnum"
+ required:
+ - status
+ - verdict
+ type: object
+ ByorkSetVerdictEnum:
+ description: Verdict to apply (ACCEPT or REJECT).
+ enum:
+ - ACCEPT
+ - REJECT
+ example: ACCEPT
+ type: string
+ ByorkVerdictRequest:
+ example:
+ verdict: ACCEPT
+ txId: 550e8400-e29b-41d4-a716-446655440000
+ properties:
+ txId:
+ description: Transaction ID to set the verdict for
+ example: 550e8400-e29b-41d4-a716-446655440000
+ type: string
+ verdict:
+ $ref: "#/components/schemas/ByorkSetVerdictEnum"
+ required:
+ - txId
+ - verdict
+ type: object
+ ByorkVerdictResponse:
+ example:
+ message: Verdict ACCEPT applied
+ status: COMPLETED
+ properties:
+ status:
+ $ref: "#/components/schemas/ByorkVerdictResponseStatusEnum"
+ message:
+ description: Human-readable message
+ example: Verdict ACCEPT applied
+ type: string
+ required:
+ - message
+ - status
+ type: object
+ ByorkTimeoutRange:
+ description: Allowed range for timeout values (seconds). Use when calling PUT
+ config/timeouts.
+ example:
+ minSeconds: 10
+ maxSeconds: 604800
+ properties:
+ minSeconds:
+ example: 10
+ type: integer
+ maxSeconds:
+ example: 604800
+ type: integer
+ type: object
+ ByorkConfigResponse:
+ description: "BYORK Light configuration for the tenant: wait-for-response timeouts,\
+ \ active flag, provider, last update time, and allowed timeout ranges for\
+ \ validation."
+ example:
+ incomingTimeoutSeconds: 86400
+ provider: BYORK_LITE
+ lastUpdate: 2026-01-29T12:00:00Z
+ timeoutRangeOutgoing:
+ minSeconds: 10
+ maxSeconds: 604800
+ timeoutRangeIncoming:
+ minSeconds: 10
+ maxSeconds: 604800
+ active: true
+ outgoingTimeoutSeconds: 3600
+ properties:
+ incomingTimeoutSeconds:
+ description: Timeout in seconds for incoming BYORK wait-for-response
+ example: 86400
+ type: integer
+ outgoingTimeoutSeconds:
+ description: Timeout in seconds for outgoing BYORK wait-for-response
+ example: 3600
+ type: integer
+ active:
+ description: Whether BYORK Light is active for the tenant
+ example: true
+ type: boolean
+ provider:
+ description: Provider identifier
+ example: BYORK_LITE
+ type: string
+ lastUpdate:
+ description: Last update timestamp of the configuration
+ example: 2026-01-29T12:00:00Z
+ format: date-time
+ type: string
+ timeoutRangeIncoming:
+ $ref: "#/components/schemas/ByorkTimeoutRange"
+ timeoutRangeOutgoing:
+ $ref: "#/components/schemas/ByorkTimeoutRange"
+ type: object
+ ByorkSetTimeoutsRequest:
+ description: "Request body for setting BYORK timeout values. At least one of\
+ \ incomingTimeoutSeconds or outgoingTimeoutSeconds is required. Allowed range\
+ \ per direction is returned in GET config (timeoutRangeIncoming, timeoutRangeOutgoing)."
+ example:
+ incomingTimeoutSeconds: 86400
+ outgoingTimeoutSeconds: 3600
+ properties:
+ incomingTimeoutSeconds:
+ description: Timeout in seconds for incoming BYORK wait-for-response. Allowed
+ range in GET config (timeoutRangeIncoming).
+ example: 86400
+ type: integer
+ outgoingTimeoutSeconds:
+ description: Timeout in seconds for outgoing BYORK wait-for-response. Allowed
+ range in GET config (timeoutRangeOutgoing).
+ example: 3600
+ type: integer
+ type: object
TRLinkPartnerResponse:
example:
baseUrl: https://api.notabene.id
@@ -65523,7 +68760,6 @@ components:
enum:
- fireblocks
- coinmarketcap
- - slip44
example: fireblocks
type: string
TRLinkAssetData:
@@ -65805,11 +69041,8 @@ components:
required:
- subsidiaryVaspId
type: object
- TRLinkAmountRange:
+ ScreeningPolicyAmountRange:
description: Minimum and maximum amount range specification
- example:
- min: "1000"
- max: "100000"
properties:
min:
description: Minimum amount (inclusive)
@@ -65822,13 +69055,15 @@ components:
nullable: true
type: string
type: object
- TRLinkCurrency:
+ ScreeningPolicyCurrency:
enum:
- USD
- NATIVE
+ example: USD
type: string
- TRLinkAmount-2:
- description: Amount specification with range and currency type
+ ScreeningPolicyAmount:
+ description: "Amount specification with range and currency type (screening policy\
+ \ rules – BYORK, TRLink, etc.)"
example:
range:
min: "1000"
@@ -65836,9 +69071,9 @@ components:
currency: USD
properties:
range:
- $ref: "#/components/schemas/TRLinkAmountRange"
+ $ref: "#/components/schemas/ScreeningPolicyAmountRange"
currency:
- $ref: "#/components/schemas/TRLinkCurrency"
+ $ref: "#/components/schemas/ScreeningPolicyCurrency"
required:
- currency
- range
@@ -65927,7 +69162,7 @@ components:
nullable: true
type: string
amount:
- $ref: "#/components/schemas/TRLinkAmount-2"
+ $ref: "#/components/schemas/ScreeningPolicyAmount"
networkProtocol:
description: Network protocol identifier
example: BITCOIN
@@ -66044,7 +69279,7 @@ components:
nullable: true
type: string
amount:
- $ref: "#/components/schemas/TRLinkAmount-2"
+ $ref: "#/components/schemas/ScreeningPolicyAmount"
networkProtocol:
description: Network protocol identifier
example: ETHEREUM
@@ -66177,7 +69412,7 @@ components:
nullable: true
type: string
amount:
- $ref: "#/components/schemas/TRLinkAmount-2"
+ $ref: "#/components/schemas/ScreeningPolicyAmount"
networkProtocol:
description: Network protocol identifier
example: BITCOIN
@@ -73523,6 +76758,311 @@ components:
- status
- type
type: object
+ UtxoInput-2:
+ example:
+ index: 0
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ properties:
+ txHash:
+ description: The transaction hash
+ example: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ type: string
+ index:
+ description: The output index (vout)
+ example: 0
+ type: integer
+ type: object
+ UtxoOutput:
+ example:
+ fbTxId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ amount: "0.00150000"
+ address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ isCoinbase: false
+ createdByHash: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d
+ confirmations: 6
+ labels:
+ - cold-storage
+ - vip
+ utxoId: "123456"
+ input:
+ index: 0
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ createdAt: 2025-01-16T15:45:00Z
+ createdByHeight: 800100
+ isChange: false
+ status: AVAILABLE
+ spentByFbTxId:
+ - b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ updatedAt: 2025-01-16T15:45:00Z
+ properties:
+ input:
+ $ref: "#/components/schemas/UtxoInput-2"
+ utxoId:
+ description: The unique UTXO identifier
+ example: "123456"
+ type: string
+ address:
+ description: The address holding this UTXO
+ example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ type: string
+ amount:
+ description: The UTXO amount in the asset's native unit
+ example: "0.00150000"
+ type: string
+ confirmations:
+ description: Number of confirmations
+ example: 6
+ type: integer
+ status:
+ description: The UTXO status
+ enum:
+ - PENDING
+ - AVAILABLE
+ - FROZEN
+ - SELECTED
+ example: AVAILABLE
+ type: string
+ isChange:
+ description: Whether this is a change output
+ example: false
+ type: boolean
+ isCoinbase:
+ description: Whether this is a coinbase output
+ example: false
+ type: boolean
+ fbTxId:
+ description: The Fireblocks transaction ID that created this UTXO
+ example: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ type: string
+ createdByHash:
+ description: The on-chain block hash where this UTXO was created
+ example: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d
+ type: string
+ spentByFbTxId:
+ description: Fireblocks transaction IDs that selected/spent this UTXO
+ example:
+ - b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ items:
+ type: string
+ type: array
+ createdByHeight:
+ description: The block height at which this UTXO was created
+ example: 800100
+ type: integer
+ createdAt:
+ description: The timestamp when this UTXO was created
+ example: 2025-01-16T15:45:00Z
+ format: date-time
+ type: string
+ updatedAt:
+ description: The timestamp when this UTXO was last updated
+ example: 2025-01-16T15:45:00Z
+ format: date-time
+ type: string
+ labels:
+ description: Labels attached to this UTXO
+ example:
+ - cold-storage
+ - vip
+ items:
+ type: string
+ type: array
+ required:
+ - address
+ - amount
+ - input
+ - status
+ - utxoId
+ type: object
+ ListUtxosResponse:
+ example:
+ next: MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA==
+ data:
+ - fbTxId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ amount: "0.00150000"
+ address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ isCoinbase: false
+ createdByHash: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d
+ confirmations: 6
+ labels:
+ - cold-storage
+ - vip
+ utxoId: "123456"
+ input:
+ index: 0
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ createdAt: 2025-01-16T15:45:00Z
+ createdByHeight: 800100
+ isChange: false
+ status: AVAILABLE
+ spentByFbTxId:
+ - b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ updatedAt: 2025-01-16T15:45:00Z
+ - fbTxId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ amount: "0.00150000"
+ address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ isCoinbase: false
+ createdByHash: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d
+ confirmations: 6
+ labels:
+ - cold-storage
+ - vip
+ utxoId: "123456"
+ input:
+ index: 0
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ createdAt: 2025-01-16T15:45:00Z
+ createdByHeight: 800100
+ isChange: false
+ status: AVAILABLE
+ spentByFbTxId:
+ - b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ updatedAt: 2025-01-16T15:45:00Z
+ properties:
+ data:
+ description: List of UTXOs
+ items:
+ $ref: "#/components/schemas/UtxoOutput"
+ type: array
+ next:
+ description: Cursor to the next page
+ example: MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA==
+ nullable: true
+ type: string
+ required:
+ - data
+ type: object
+ UtxoIdentifier:
+ description: |-
+ Identifies a UTXO by either a Fireblocks transaction ID (targets all outputs of that transaction)
+ or a specific on-chain UTXO (txHash + vout). Exactly one of these two forms must be provided.
+ example:
+ txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ properties:
+ txId:
+ description: Fireblocks transaction ID
+ example: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ type: string
+ txHash:
+ description: On-chain transaction hash
+ example: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ type: string
+ vout:
+ description: Output index
+ example: 0
+ type: integer
+ type: object
+ AttachDetachUtxoLabelsRequest:
+ example:
+ labelsToAttach:
+ - cold-storage
+ - vip
+ utxoIdentifiers:
+ - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ vout: 0
+ labelsToDetach:
+ - deprecated
+ properties:
+ utxoIdentifiers:
+ description: List of UTXO identifiers to apply label changes to
+ items:
+ $ref: "#/components/schemas/UtxoIdentifier"
+ maxItems: 200
+ minItems: 1
+ type: array
+ labelsToAttach:
+ description: Labels to attach to the specified UTXOs. At least one of labelsToAttach
+ or labelsToDetach must be provided.
+ example:
+ - cold-storage
+ - vip
+ items:
+ maxLength: 30
+ pattern: "^[a-z0-9][a-z0-9_-]*$"
+ type: string
+ maxItems: 5
+ minItems: 1
+ type: array
+ labelsToDetach:
+ description: Labels to detach from the specified UTXOs. At least one of
+ labelsToAttach or labelsToDetach must be provided.
+ example:
+ - deprecated
+ items:
+ maxLength: 30
+ pattern: "^[a-z0-9][a-z0-9_-]*$"
+ type: string
+ maxItems: 5
+ minItems: 1
+ type: array
+ required:
+ - utxoIdentifiers
+ type: object
+ AttachDetachUtxoLabelsResponse:
+ example:
+ utxos:
+ - fbTxId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ amount: "0.00150000"
+ address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ isCoinbase: false
+ createdByHash: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d
+ confirmations: 6
+ labels:
+ - cold-storage
+ - vip
+ utxoId: "123456"
+ input:
+ index: 0
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ createdAt: 2025-01-16T15:45:00Z
+ createdByHeight: 800100
+ isChange: false
+ status: AVAILABLE
+ spentByFbTxId:
+ - b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ updatedAt: 2025-01-16T15:45:00Z
+ - fbTxId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ amount: "0.00150000"
+ address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
+ isCoinbase: false
+ createdByHash: 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d
+ confirmations: 6
+ labels:
+ - cold-storage
+ - vip
+ utxoId: "123456"
+ input:
+ index: 0
+ txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c
+ createdAt: 2025-01-16T15:45:00Z
+ createdByHeight: 800100
+ isChange: false
+ status: AVAILABLE
+ spentByFbTxId:
+ - b70701f4-d7b1-4795-a8ee-b09cdb5b850e
+ updatedAt: 2025-01-16T15:45:00Z
+ properties:
+ utxos:
+ description: Modified UTXOs with updated labels
+ items:
+ $ref: "#/components/schemas/UtxoOutput"
+ type: array
+ type: object
LeiStatus:
description: Approval status of a legal entity registration
enum:
@@ -73545,6 +77085,20 @@ components:
- TWENTY_ONE_ANALYTICS
- VERIFY_VASP
type: string
+ GleifOtherLegalEntityName:
+ properties:
+ name:
+ description: Alternative name of the legal entity
+ example: ExCorp
+ type: string
+ language:
+ description: Two-letter ISO 639-1 language code
+ example: en
+ type: string
+ required:
+ - language
+ - name
+ type: object
GleifData:
description: GLEIF (Global Legal Entity Identifier Foundation) data for a legal
entity
@@ -73552,8 +77106,11 @@ components:
legalName: Example Corporation Ltd.
lei: 529900HNOAA1KXQJUQ27
otherNames:
- - ExCorp
- - Example Corp
+ - name: ExCorp
+ language: en
+ - name: Example Corp
+ language: en
+ legalNameLanguage: en
legalAddressRegion: NY
nextRenewalDate: 2025-12-31T00:00:00Z
legalAddressCountry: US
@@ -73566,13 +77123,21 @@ components:
description: Official legal name of the entity
example: Example Corporation Ltd.
type: string
+ legalNameLanguage:
+ description: Two-letter ISO 639-1 language code
+ example: en
+ maxLength: 2
+ minLength: 2
+ type: string
otherNames:
description: Alternative names for the entity
example:
- - ExCorp
- - Example Corp
+ - name: ExCorp
+ language: en
+ - name: Example Corp
+ language: en
items:
- type: string
+ $ref: "#/components/schemas/GleifOtherLegalEntityName"
maxItems: 20
minItems: 0
type: array
@@ -73601,8 +77166,11 @@ components:
legalName: Example Corporation Ltd.
lei: 529900HNOAA1KXQJUQ27
otherNames:
- - ExCorp
- - Example Corp
+ - name: ExCorp
+ language: en
+ - name: Example Corp
+ language: en
+ legalNameLanguage: en
legalAddressRegion: NY
nextRenewalDate: 2025-12-31T00:00:00Z
legalAddressCountry: US
@@ -73675,8 +77243,11 @@ components:
legalName: Example Corporation Ltd.
lei: 529900HNOAA1KXQJUQ27
otherNames:
- - ExCorp
- - Example Corp
+ - name: ExCorp
+ language: en
+ - name: Example Corp
+ language: en
+ legalNameLanguage: en
legalAddressRegion: NY
nextRenewalDate: 2025-12-31T00:00:00Z
legalAddressCountry: US
@@ -73693,8 +77264,11 @@ components:
legalName: Example Corporation Ltd.
lei: 529900HNOAA1KXQJUQ27
otherNames:
- - ExCorp
- - Example Corp
+ - name: ExCorp
+ language: en
+ - name: Example Corp
+ language: en
+ legalNameLanguage: en
legalAddressRegion: NY
nextRenewalDate: 2025-12-31T00:00:00Z
legalAddressCountry: US
@@ -73707,7 +77281,6 @@ components:
- MY_OWN
status: PENDING
updatedAt: "1700000000000"
- prev: eyJpZCI6IjEyMCJ9
properties:
total:
description: Total number of legal entity registrations (optional)
@@ -73722,10 +77295,6 @@ components:
description: Cursor to pass as `pageCursor` to retrieve the next page
example: eyJpZCI6IjEyMyJ9
type: string
- prev:
- description: Cursor to pass as `pageCursor` to retrieve the previous page
- example: eyJpZCI6IjEyMCJ9
- type: string
required:
- data
type: object
@@ -73777,7 +77346,6 @@ components:
- "23"
- "12"
- "1"
- prev: eyJpZCI6IjEyMCJ9
properties:
total:
description: Total number of legal entity registrations (optional)
@@ -73796,10 +77364,6 @@ components:
description: Cursor to pass as `pageCursor` to retrieve the next page
example: eyJpZCI6IjEyMyJ9
type: string
- prev:
- description: Cursor to pass as `pageCursor` to retrieve the previous page
- example: eyJpZCI6IjEyMCJ9
- type: string
required:
- data
type: object
diff --git a/build.gradle b/build.gradle
index 7a058a5d..62baedca 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@ apply plugin: 'eclipse'
apply plugin: 'com.diffplug.spotless'
group = 'com.fireblocks.sdk'
-version = '16.0.0'
+version = '0.0.0'
buildscript {
repositories {
diff --git a/docs/AccountBasedAccessProvider.md b/docs/AccountBasedAccessProvider.md
index 9b20a27b..9548bce6 100644
--- a/docs/AccountBasedAccessProvider.md
+++ b/docs/AccountBasedAccessProvider.md
@@ -2,6 +2,7 @@
# AccountBasedAccessProvider
+Provider integrated via Fireblocks connected accounts (`accountBased` is `true`).
## Properties
@@ -12,7 +13,7 @@
|**logo** | **String** | URL to the logo image of the provider | [optional] |
|**accountBased** | **Boolean** | Indicates whether the provider access model is through accounts or directly | |
|**manifest** | [**Manifest**](Manifest.md) | | |
-|**connected** | **Boolean** | Whether the provider is currently connected | |
+|**connected** | **Boolean** | Whether the provider is currently connected. | |
|**accounts** | [**List<AccountBase>**](AccountBase.md) | | |
diff --git a/docs/AccountBasedAccessProviderInfo.md b/docs/AccountBasedAccessProviderInfo.md
index 7afe8eb5..04d0b881 100644
--- a/docs/AccountBasedAccessProviderInfo.md
+++ b/docs/AccountBasedAccessProviderInfo.md
@@ -7,7 +7,7 @@
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**connected** | **Boolean** | Whether the provider is currently connected | |
+|**connected** | **Boolean** | Whether the provider is currently connected. | |
|**accounts** | [**List<AccountBase>**](AccountBase.md) | | |
diff --git a/docs/AccountBasedProviderDetails.md b/docs/AccountBasedProviderDetails.md
deleted file mode 100644
index 27ee28ca..00000000
--- a/docs/AccountBasedProviderDetails.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-# AccountBasedProviderDetails
-
-
-## Properties
-
-| Name | Type | Description | Notes |
-|------------ | ------------- | ------------- | -------------|
-|**id** | **String** | Unique identifier for the provider | |
-|**name** | **String** | Display name of the provider | |
-|**logo** | **String** | URL to the logo image of the provider | [optional] |
-|**accountBased** | **Boolean** | Indicates whether the provider access model is through accounts or directly | |
-|**manifest** | [**Manifest**](Manifest.md) | | |
-|**connected** | **Boolean** | Whether the provider is currently connected | |
-|**accounts** | [**List<AccountBase>**](AccountBase.md) | | |
-
-
-
diff --git a/docs/ActionRecord.md b/docs/ActionRecord.md
new file mode 100644
index 00000000..546cc7b4
--- /dev/null
+++ b/docs/ActionRecord.md
@@ -0,0 +1,44 @@
+
+
+# ActionRecord
+
+One row in the lending action execution sequence.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**actionType** | [**ActionTypeEnum**](#ActionTypeEnum) | Kind of step in the lending sequence. | |
+|**status** | [**StatusEnum**](#StatusEnum) | Step lifecycle status. | |
+|**txId** | **String** | Fireblocks transaction id when applicable (unset when NOT_STARTED). | [optional] |
+|**txHash** | **String** | On-chain transaction hash when applicable (unset when NOT_STARTED). | [optional] |
+|**errorMessage** | **String** | Error detail when the step failed. | [optional] |
+|**updatedAt** | **String** | Last update time (ISO-8601); may be empty when status is NOT_STARTED. | |
+
+
+
+## Enum: ActionTypeEnum
+
+| Name | Value |
+|---- | -----|
+| APPROVE | "APPROVE" |
+| DEPOSIT | "DEPOSIT" |
+| WITHDRAW | "WITHDRAW" |
+
+
+
+## Enum: StatusEnum
+
+| Name | Value |
+|---- | -----|
+| NOT_STARTED | "NOT_STARTED" |
+| PROCESSING | "PROCESSING" |
+| PENDING_SIGNATURE | "PENDING_SIGNATURE" |
+| BROADCASTING | "BROADCASTING" |
+| CONFIRMING | "CONFIRMING" |
+| COMPLETED | "COMPLETED" |
+| FAILED | "FAILED" |
+| CANCELED | "CANCELED" |
+
+
+
diff --git a/docs/AddressRegistryError.md b/docs/AddressRegistryError.md
index 8779cfeb..3b915c0a 100644
--- a/docs/AddressRegistryError.md
+++ b/docs/AddressRegistryError.md
@@ -8,7 +8,7 @@ Error body for address registry operations (4xx and 5xx).
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**code** | **Integer** | Application error code when present. Typical values include **2140** (403 — workspace not opted in to the address registry) and **2142** (404 — not found). Other codes may appear, including on server errors. | [optional] |
+|**code** | **Integer** | Application error code when present. For HTTP 400 on legal-entity lookup, distinguish: 4100 — request validation (e.g. missing, empty, or whitespace-only `address` after trim); 2140 — workspace not opted in to the address registry (`AR_OPT_IN_REQUIRED`). 2142 — not found (404). Other codes may appear, including on server errors. | [optional] |
|**message** | **String** | Human-readable error message | |
diff --git a/docs/AddressRegistryLegalEntityLegacy.md b/docs/AddressRegistryLegalEntityLegacy.md
deleted file mode 100644
index fc8a3152..00000000
--- a/docs/AddressRegistryLegalEntityLegacy.md
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-# AddressRegistryLegalEntityLegacy
-
-Narrow legacy response for deprecated `GET /v1/address_registry/legal_entity?address=…`. Use `GET /v1/address_registry/legal_entities/{address}` for the full field set.
-
-## Properties
-
-| Name | Type | Description | Notes |
-|------------ | ------------- | ------------- | -------------|
-|**companyName** | **String** | Legal entity / company display name | |
-|**countryCode** | **String** | Jurisdiction country code (e.g. ISO 3166-1 alpha-2) | |
-|**companyId** | **UUID** | Company identifier for the resolved legal entity (UUID) | |
-
-
-
diff --git a/docs/Apy.md b/docs/Apy.md
new file mode 100644
index 00000000..7a0141ce
--- /dev/null
+++ b/docs/Apy.md
@@ -0,0 +1,15 @@
+
+
+# Apy
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**_native** | **Double** | APY in native format (before fees), as a percentage (e.g. 4.25 means 4.25%, not 0.0425). | [optional] |
+|**gross** | **Double** | Gross APY before fees, as a percentage (e.g. 4.25 means 4.25%, not 0.0425). | [optional] |
+|**net** | **Double** | Net APY after fees, as a percentage (e.g. 4.25 means 4.25%, not 0.0425). | [optional] |
+
+
+
diff --git a/docs/AttachDetachUtxoLabelsRequest.md b/docs/AttachDetachUtxoLabelsRequest.md
new file mode 100644
index 00000000..fbd3246c
--- /dev/null
+++ b/docs/AttachDetachUtxoLabelsRequest.md
@@ -0,0 +1,15 @@
+
+
+# AttachDetachUtxoLabelsRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**utxoIdentifiers** | [**List<UtxoIdentifier>**](UtxoIdentifier.md) | List of UTXO identifiers to apply label changes to | |
+|**labelsToAttach** | **List<String>** | Labels to attach to the specified UTXOs. At least one of labelsToAttach or labelsToDetach must be provided. | [optional] |
+|**labelsToDetach** | **List<String>** | Labels to detach from the specified UTXOs. At least one of labelsToAttach or labelsToDetach must be provided. | [optional] |
+
+
+
diff --git a/docs/AttachDetachUtxoLabelsResponse.md b/docs/AttachDetachUtxoLabelsResponse.md
new file mode 100644
index 00000000..f924a5c8
--- /dev/null
+++ b/docs/AttachDetachUtxoLabelsResponse.md
@@ -0,0 +1,13 @@
+
+
+# AttachDetachUtxoLabelsResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**utxos** | [**List<UtxoOutput>**](UtxoOutput.md) | Modified UTXOs with updated labels | [optional] |
+
+
+
diff --git a/docs/ByorkConfigResponse.md b/docs/ByorkConfigResponse.md
new file mode 100644
index 00000000..dfe22b04
--- /dev/null
+++ b/docs/ByorkConfigResponse.md
@@ -0,0 +1,20 @@
+
+
+# ByorkConfigResponse
+
+BYORK Light configuration for the tenant: wait-for-response timeouts, active flag, provider, last update time, and allowed timeout ranges for validation.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**incomingTimeoutSeconds** | **Integer** | Timeout in seconds for incoming BYORK wait-for-response | [optional] |
+|**outgoingTimeoutSeconds** | **Integer** | Timeout in seconds for outgoing BYORK wait-for-response | [optional] |
+|**active** | **Boolean** | Whether BYORK Light is active for the tenant | [optional] |
+|**provider** | **String** | Provider identifier | [optional] |
+|**lastUpdate** | **OffsetDateTime** | Last update timestamp of the configuration | [optional] |
+|**timeoutRangeIncoming** | [**ByorkTimeoutRange**](ByorkTimeoutRange.md) | | [optional] |
+|**timeoutRangeOutgoing** | [**ByorkTimeoutRange**](ByorkTimeoutRange.md) | | [optional] |
+
+
+
diff --git a/docs/ByorkSetTimeoutsRequest.md b/docs/ByorkSetTimeoutsRequest.md
new file mode 100644
index 00000000..8e976370
--- /dev/null
+++ b/docs/ByorkSetTimeoutsRequest.md
@@ -0,0 +1,15 @@
+
+
+# ByorkSetTimeoutsRequest
+
+Request body for setting BYORK timeout values. At least one of incomingTimeoutSeconds or outgoingTimeoutSeconds is required. Allowed range per direction is returned in GET config (timeoutRangeIncoming, timeoutRangeOutgoing).
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**incomingTimeoutSeconds** | **Integer** | Timeout in seconds for incoming BYORK wait-for-response. Allowed range in GET config (timeoutRangeIncoming). | [optional] |
+|**outgoingTimeoutSeconds** | **Integer** | Timeout in seconds for outgoing BYORK wait-for-response. Allowed range in GET config (timeoutRangeOutgoing). | [optional] |
+
+
+
diff --git a/docs/ByorkSetVerdictEnum.md b/docs/ByorkSetVerdictEnum.md
new file mode 100644
index 00000000..4e6a7972
--- /dev/null
+++ b/docs/ByorkSetVerdictEnum.md
@@ -0,0 +1,13 @@
+
+
+# ByorkSetVerdictEnum
+
+## Enum
+
+
+* `ACCEPT` (value: `"ACCEPT"`)
+
+* `REJECT` (value: `"REJECT"`)
+
+
+
diff --git a/docs/ByorkTimeoutRange.md b/docs/ByorkTimeoutRange.md
new file mode 100644
index 00000000..b07768f5
--- /dev/null
+++ b/docs/ByorkTimeoutRange.md
@@ -0,0 +1,15 @@
+
+
+# ByorkTimeoutRange
+
+Allowed range for timeout values (seconds). Use when calling PUT config/timeouts.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**minSeconds** | **Integer** | | [optional] |
+|**maxSeconds** | **Integer** | | [optional] |
+
+
+
diff --git a/docs/ByorkVerdictEnum.md b/docs/ByorkVerdictEnum.md
new file mode 100644
index 00000000..db2246cf
--- /dev/null
+++ b/docs/ByorkVerdictEnum.md
@@ -0,0 +1,15 @@
+
+
+# ByorkVerdictEnum
+
+## Enum
+
+
+* `ACCEPT` (value: `"ACCEPT"`)
+
+* `REJECT` (value: `"REJECT"`)
+
+* `WAIT` (value: `"WAIT"`)
+
+
+
diff --git a/docs/ByorkVerdictRequest.md b/docs/ByorkVerdictRequest.md
new file mode 100644
index 00000000..89f06b27
--- /dev/null
+++ b/docs/ByorkVerdictRequest.md
@@ -0,0 +1,14 @@
+
+
+# ByorkVerdictRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**txId** | **String** | Transaction ID to set the verdict for | |
+|**verdict** | **ByorkSetVerdictEnum** | | |
+
+
+
diff --git a/docs/ByorkVerdictResponse.md b/docs/ByorkVerdictResponse.md
new file mode 100644
index 00000000..fd6823ec
--- /dev/null
+++ b/docs/ByorkVerdictResponse.md
@@ -0,0 +1,14 @@
+
+
+# ByorkVerdictResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**status** | **ByorkVerdictResponseStatusEnum** | | |
+|**message** | **String** | Human-readable message | |
+
+
+
diff --git a/docs/ByorkVerdictResponseStatusEnum.md b/docs/ByorkVerdictResponseStatusEnum.md
new file mode 100644
index 00000000..0f108d1d
--- /dev/null
+++ b/docs/ByorkVerdictResponseStatusEnum.md
@@ -0,0 +1,17 @@
+
+
+# ByorkVerdictResponseStatusEnum
+
+## Enum
+
+
+* `PRE_ACCEPTED` (value: `"PRE_ACCEPTED"`)
+
+* `COMPLETED` (value: `"COMPLETED"`)
+
+* `PENDING` (value: `"PENDING"`)
+
+* `RECEIVED` (value: `"RECEIVED"`)
+
+
+
diff --git a/docs/ComplianceApi.md b/docs/ComplianceApi.md
index 72a85e5f..16053222 100644
--- a/docs/ComplianceApi.md
+++ b/docs/ComplianceApi.md
@@ -4,14 +4,17 @@ All URIs are relative to https://developers.fireblocks.com/reference/
| Method | HTTP request | Description |
|------------- | ------------- | -------------|
+| [**activateByorkConfig**](ComplianceApi.md#activateByorkConfig) | **POST** /screening/byork/config/activate | Activate BYORK Light |
| [**addAddressRegistryVaultOptOuts**](ComplianceApi.md#addAddressRegistryVaultOptOuts) | **POST** /address_registry/vaults | Add vault accounts to the address registry opt-out list |
| [**assignVaultsToLegalEntity**](ComplianceApi.md#assignVaultsToLegalEntity) | **POST** /legal_entities/{legalEntityId}/vaults | Assign vault accounts to a legal entity |
+| [**deactivateByorkConfig**](ComplianceApi.md#deactivateByorkConfig) | **POST** /screening/byork/config/deactivate | Deactivate BYORK Light |
| [**getAddressRegistryTenantParticipationStatus**](ComplianceApi.md#getAddressRegistryTenantParticipationStatus) | **GET** /address_registry/tenant | Get address registry participation status for the authenticated workspace |
| [**getAddressRegistryVaultOptOut**](ComplianceApi.md#getAddressRegistryVaultOptOut) | **GET** /address_registry/vaults/{vaultAccountId} | Get whether a vault account is opted out of the address registry |
| [**getAmlPostScreeningPolicy**](ComplianceApi.md#getAmlPostScreeningPolicy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy |
| [**getAmlScreeningPolicy**](ComplianceApi.md#getAmlScreeningPolicy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy |
+| [**getByorkConfig**](ComplianceApi.md#getByorkConfig) | **GET** /screening/byork/config | Get BYORK Light configuration |
+| [**getByorkVerdict**](ComplianceApi.md#getByorkVerdict) | **GET** /screening/byork/verdict | Get BYORK Light verdict |
| [**getLegalEntity**](ComplianceApi.md#getLegalEntity) | **GET** /legal_entities/{legalEntityId} | Get a legal entity |
-| [**getLegalEntityByAddress**](ComplianceApi.md#getLegalEntityByAddress) | **GET** /address_registry/legal_entity | [Deprecated] Look up legal entity by address (query parameter) |
| [**getLegalEntityForAddress**](ComplianceApi.md#getLegalEntityForAddress) | **GET** /address_registry/legal_entities/{address} | Look up legal entity by blockchain address |
| [**getPostScreeningPolicy**](ComplianceApi.md#getPostScreeningPolicy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy |
| [**getScreeningFullDetails**](ComplianceApi.md#getScreeningFullDetails) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction. |
@@ -25,7 +28,9 @@ All URIs are relative to https://developers.fireblocks.com/reference/
| [**removeAddressRegistryVaultOptOut**](ComplianceApi.md#removeAddressRegistryVaultOptOut) | **DELETE** /address_registry/vaults/{vaultAccountId} | Remove a single vault account from the address registry opt-out list |
| [**removeAllAddressRegistryVaultOptOuts**](ComplianceApi.md#removeAllAddressRegistryVaultOptOuts) | **DELETE** /address_registry/vaults | Remove all vault-level address registry opt-outs for the workspace |
| [**retryRejectedTransactionBypassScreeningChecks**](ComplianceApi.md#retryRejectedTransactionBypassScreeningChecks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check |
-| [**setAmlVerdict**](ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict for Manual Screening Verdict. |
+| [**setAmlVerdict**](ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict (BYORK Super Light) |
+| [**setByorkTimeouts**](ComplianceApi.md#setByorkTimeouts) | **PUT** /screening/byork/config/timeouts | Set BYORK Light timeouts |
+| [**setByorkVerdict**](ComplianceApi.md#setByorkVerdict) | **POST** /screening/byork/verdict | Set BYORK Light verdict |
| [**updateAmlScreeningConfiguration**](ComplianceApi.md#updateAmlScreeningConfiguration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration |
| [**updateLegalEntity**](ComplianceApi.md#updateLegalEntity) | **PUT** /legal_entities/{legalEntityId} | Update legal entity |
| [**updateScreeningConfiguration**](ComplianceApi.md#updateScreeningConfiguration) | **PUT** /screening/configurations | Tenant - Screening Configuration |
@@ -33,6 +38,90 @@ All URIs are relative to https://developers.fireblocks.com/reference/
+## activateByorkConfig
+
+> CompletableFuture> activateByorkConfig activateByorkConfig(idempotencyKey)
+
+Activate BYORK Light
+
+Activates BYORK Light for the authenticated tenant (sets config.active to true). Once activated, BYORK screening applies to matching transactions. Requires BYORK Light to be enabled for the tenant (contact your CSM to enable).
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ try {
+ CompletableFuture> response = fireblocks.compliance().activateByorkConfig(idempotencyKey);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#activateByorkConfig");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#activateByorkConfig");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | BYORK configuration activated. | * X-Request-ID -
|
+| **400** | BYORK Light not enabled for tenant. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
## addAddressRegistryVaultOptOuts
> CompletableFuture> addAddressRegistryVaultOptOuts addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest, idempotencyKey)
@@ -207,6 +296,90 @@ No authorization required
| **0** | Error Response | * X-Request-ID -
|
+## deactivateByorkConfig
+
+> CompletableFuture> deactivateByorkConfig deactivateByorkConfig(idempotencyKey)
+
+Deactivate BYORK Light
+
+Deactivates BYORK Light for the authenticated tenant (sets config.active to false). Once deactivated, BYORK screening no longer applies until activated again. Requires BYORK Light to be enabled for the tenant (contact your CSM to enable).
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ try {
+ CompletableFuture> response = fireblocks.compliance().deactivateByorkConfig(idempotencyKey);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#deactivateByorkConfig");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#deactivateByorkConfig");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | BYORK configuration deactivated. | * X-Request-ID -
|
+| **400** | BYORK Light not enabled for tenant. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
## getAddressRegistryTenantParticipationStatus
> CompletableFuture> getAddressRegistryTenantParticipationStatus getAddressRegistryTenantParticipationStatus()
@@ -526,13 +699,13 @@ No authorization required
| **200** | Screening policy retrieved successfully. | - |
-## getLegalEntity
+## getByorkConfig
-> CompletableFuture> getLegalEntity getLegalEntity(legalEntityId)
+> CompletableFuture> getByorkConfig getByorkConfig()
-Get a legal entity
+Get BYORK Light configuration
-Returns details of a specific legal entity registration, including GLEIF data when available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+Retrieves BYORK Light configuration for the authenticated tenant (timeouts, active flag, allowed timeout ranges). Returns default config when none exists. Requires BYORK Light to be enabled for the tenant.
### Example
@@ -557,21 +730,101 @@ public class Example {
.secretKey("my-secret-key");
Fireblocks fireblocks = new Fireblocks(configurationOptions);
- UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration
try {
- CompletableFuture> response = fireblocks.compliance().getLegalEntity(legalEntityId);
+ CompletableFuture> response = fireblocks.compliance().getByorkConfig();
System.out.println("Status code: " + response.get().getStatusCode());
System.out.println("Response headers: " + response.get().getHeaders());
System.out.println("Response body: " + response.get().getData());
} catch (InterruptedException | ExecutionException e) {
ApiException apiException = (ApiException)e.getCause();
- System.err.println("Exception when calling ComplianceApi#getLegalEntity");
+ System.err.println("Exception when calling ComplianceApi#getByorkConfig");
System.err.println("Status code: " + apiException.getCode());
System.err.println("Response headers: " + apiException.getResponseHeaders());
System.err.println("Reason: " + apiException.getResponseBody());
e.printStackTrace();
} catch (ApiException e) {
- System.err.println("Exception when calling ComplianceApi#getLegalEntity");
+ System.err.println("Exception when calling ComplianceApi#getByorkConfig");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | BYORK configuration (or default). | * X-Request-ID -
|
+| **400** | BYORK Light not enabled for tenant. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getByorkVerdict
+
+> CompletableFuture> getByorkVerdict getByorkVerdict(txId)
+
+Get BYORK Light verdict
+
+Returns the current BYORK verdict and status for a transaction. Status can be PRE_ACCEPTED, PENDING, RECEIVED (verdict is final but processing not yet complete), or COMPLETED. Requires BYORK Light to be enabled for the tenant. Returns 404 if no BYORK verdict is found for the transaction.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String txId = "550e8400-e29b-41d4-a716-446655440000"; // String | Transaction ID
+ try {
+ CompletableFuture> response = fireblocks.compliance().getByorkVerdict(txId);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#getByorkVerdict");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#getByorkVerdict");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
@@ -586,11 +839,11 @@ public class Example {
| Name | Type | Description | Notes |
|------------- | ------------- | ------------- | -------------|
-| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | |
+| **txId** | **String**| Transaction ID | |
### Return type
-CompletableFuture>
+CompletableFuture>
### Authorization
@@ -605,18 +858,20 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Legal entity registration details | * X-Request-ID -
|
-| **404** | Legal entity registration not found | * X-Request-ID -
|
+| **200** | Current verdict and status. | * X-Request-ID -
|
+| **400** | BYORK Light not enabled for tenant or txId missing. | * X-Request-ID -
|
+| **404** | No BYORK verdict found for this transaction. | * X-Request-ID -
|
+| **500** | Internal server error. | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
-## getLegalEntityByAddress
+## getLegalEntity
-> CompletableFuture> getLegalEntityByAddress getLegalEntityByAddress(address, asset)
+> CompletableFuture> getLegalEntity getLegalEntity(legalEntityId)
-[Deprecated] Look up legal entity by address (query parameter)
+Get a legal entity
-**Deprecated** — use `GET /v1/address_registry/legal_entities/{address}` instead. Here `address` is a **query** parameter; the replacement uses a path segment. The response includes only `companyName`, `countryCode`, and `companyId`. The replacement returns additional fields documented on that operation. Optional **`asset`** is supported here only (not on the replacement path).
+Returns details of a specific legal entity registration, including GLEIF data when available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
### Example
@@ -641,22 +896,21 @@ public class Example {
.secretKey("my-secret-key");
Fireblocks fireblocks = new Fireblocks(configurationOptions);
- String address = "0x742d35cc6634c0532925a3b844bc9e7595f0beb0"; // String | Blockchain address to look up
- String asset = "ETH"; // String | Optional asset identifier (this deprecated operation only).
+ UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration
try {
- CompletableFuture> response = fireblocks.compliance().getLegalEntityByAddress(address, asset);
+ CompletableFuture> response = fireblocks.compliance().getLegalEntity(legalEntityId);
System.out.println("Status code: " + response.get().getStatusCode());
System.out.println("Response headers: " + response.get().getHeaders());
System.out.println("Response body: " + response.get().getData());
} catch (InterruptedException | ExecutionException e) {
ApiException apiException = (ApiException)e.getCause();
- System.err.println("Exception when calling ComplianceApi#getLegalEntityByAddress");
+ System.err.println("Exception when calling ComplianceApi#getLegalEntity");
System.err.println("Status code: " + apiException.getCode());
System.err.println("Response headers: " + apiException.getResponseHeaders());
System.err.println("Reason: " + apiException.getResponseBody());
e.printStackTrace();
} catch (ApiException e) {
- System.err.println("Exception when calling ComplianceApi#getLegalEntityByAddress");
+ System.err.println("Exception when calling ComplianceApi#getLegalEntity");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
@@ -671,12 +925,11 @@ public class Example {
| Name | Type | Description | Notes |
|------------- | ------------- | ------------- | -------------|
-| **address** | **String**| Blockchain address to look up | |
-| **asset** | **String**| Optional asset identifier (this deprecated operation only). | [optional] |
+| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | |
### Return type
-CompletableFuture>
+CompletableFuture>
### Authorization
@@ -691,10 +944,8 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Legal entity found | * X-Request-ID -
|
-| **400** | Bad request – missing or invalid address | * X-Request-ID -
|
-| **403** | Forbidden – the authenticated workspace is not opted in to the address registry (error code 2140) | * X-Request-ID -
|
-| **404** | Not found (error code 2142) — unresolved address, no legal entity for a resolved address, or the same not-found outcome in other cases. | * X-Request-ID -
|
+| **200** | Legal entity registration details | * X-Request-ID -
|
+| **404** | Legal entity registration not found | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -704,7 +955,7 @@ No authorization required
Look up legal entity by blockchain address
-Returns legal entity information for the given blockchain address. URL-encode `{address}` when required. Prefer this operation over the deprecated `GET /v1/address_registry/legal_entity?address=…`, which returns only `companyName`, `countryCode`, and `companyId`. This operation adds verification status, LEI, Travel Rule providers, and contact email (see response properties).
+Returns legal entity information for the given blockchain address (verification status, LEI, Travel Rule providers, contact email, and related fields — see response schema). URL-encode `{address}` when required.
### Example
@@ -778,8 +1029,7 @@ No authorization required
| Status code | Description | Response headers |
|-------------|-------------|------------------|
| **200** | Legal entity found | * X-Request-ID -
|
-| **400** | Bad request – missing or invalid address | * X-Request-ID -
|
-| **403** | Forbidden – the authenticated workspace is not opted in to the address registry (error code 2140) | * X-Request-ID -
|
+| **400** | Bad request — either request validation (path `{address}` empty or whitespace-only after trim, e.g. encoded spaces only; numeric code 4100), or the authenticated workspace is not opted in to the address registry (numeric code 2140). The `message` field describes the failure; use `code` to distinguish. | * X-Request-ID -
|
| **404** | Not found (error code 2142) — unresolved address, no legal entity for a resolved address, or the same not-found outcome in other cases. | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1113,7 +1363,7 @@ No authorization required
## listLegalEntities
-> CompletableFuture> listLegalEntities listLegalEntities(vaultAccountId, pageCursor, pageSize, sortBy, order)
+> CompletableFuture> listLegalEntities listLegalEntities(vaultAccountId, pageCursor, pageSize)
List legal entities (Paginated)
@@ -1145,10 +1395,8 @@ public class Example {
String vaultAccountId = "vaultAccountId_example"; // String | The ID of the vault account. When provided, returns the legal entity associated with that vault account and pagination parameters are ignored.
String pageCursor = "pageCursor_example"; // String | Cursor string returned in `next` or `prev` of a previous response. Ignored when `vaultAccountId` is provided.
Integer pageSize = 50; // Integer | Maximum number of registrations to return. Ignored when `vaultAccountId` is provided.
- String sortBy = "createdAt"; // String | Field to sort results by. Ignored when `vaultAccountId` is provided.
- String order = "ASC"; // String | Sort order. Ignored when `vaultAccountId` is provided.
try {
- CompletableFuture> response = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor, pageSize, sortBy, order);
+ CompletableFuture> response = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor, pageSize);
System.out.println("Status code: " + response.get().getStatusCode());
System.out.println("Response headers: " + response.get().getHeaders());
System.out.println("Response body: " + response.get().getData());
@@ -1178,8 +1426,6 @@ public class Example {
| **vaultAccountId** | **String**| The ID of the vault account. When provided, returns the legal entity associated with that vault account and pagination parameters are ignored. | [optional] |
| **pageCursor** | **String**| Cursor string returned in `next` or `prev` of a previous response. Ignored when `vaultAccountId` is provided. | [optional] |
| **pageSize** | **Integer**| Maximum number of registrations to return. Ignored when `vaultAccountId` is provided. | [optional] [default to 50] |
-| **sortBy** | **String**| Field to sort results by. Ignored when `vaultAccountId` is provided. | [optional] [enum: createdAt, updatedAt] |
-| **order** | **String**| Sort order. Ignored when `vaultAccountId` is provided. | [optional] [default to DESC] [enum: ASC, DESC] |
### Return type
@@ -1793,9 +2039,9 @@ No authorization required
> CompletableFuture> setAmlVerdict setAmlVerdict(amlVerdictManualRequest, idempotencyKey)
-Set AML Verdict for Manual Screening Verdict.
+Set AML Verdict (BYORK Super Light)
-Set AML verdict for incoming transactions when Manual Screening Verdict feature is enabled.
+Set AML verdict for incoming transactions when **BYORK Super Light** (Manual Screening Verdict) is enabled. This endpoint is for Super Light only. For **BYORK Light**, use POST /screening/byork/verdict instead. When Super Light is retired, this endpoint will be deprecated; use the BYORK Light verdict API for new integrations.
### Example
@@ -1877,6 +2123,181 @@ No authorization required
| **0** | Error Response | * X-Request-ID -
|
+## setByorkTimeouts
+
+> CompletableFuture> setByorkTimeouts setByorkTimeouts(byorkSetTimeoutsRequest, idempotencyKey)
+
+Set BYORK Light timeouts
+
+Updates timeout values for BYORK wait-for-response (incoming and/or outgoing). At least one of incomingTimeoutSeconds or outgoingTimeoutSeconds is required. Values must be within the ranges returned in GET config (timeoutRangeIncoming for incomingTimeoutSeconds, timeoutRangeOutgoing for outgoingTimeoutSeconds). Requires BYORK Light to be enabled for the tenant (contact your CSM to enable).
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ ByorkSetTimeoutsRequest byorkSetTimeoutsRequest = new ByorkSetTimeoutsRequest(); // ByorkSetTimeoutsRequest |
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ try {
+ CompletableFuture> response = fireblocks.compliance().setByorkTimeouts(byorkSetTimeoutsRequest, idempotencyKey);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#setByorkTimeouts");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#setByorkTimeouts");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **byorkSetTimeoutsRequest** | [**ByorkSetTimeoutsRequest**](ByorkSetTimeoutsRequest.md)| | |
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Timeouts updated. | * X-Request-ID -
|
+| **400** | BYORK Light not enabled, or timeout value out of range, or missing both timeouts. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## setByorkVerdict
+
+> CompletableFuture> setByorkVerdict setByorkVerdict(byorkVerdictRequest, idempotencyKey)
+
+Set BYORK Light verdict
+
+Submit verdict (ACCEPT or REJECT) for a transaction in the BYORK Light flow. If the transaction is awaiting your decision, the verdict is applied immediately (response status COMPLETED). If processing has not yet reached that point, the verdict is stored and applied when it does (response status PRE_ACCEPTED). Requires BYORK Light to be enabled for the tenant.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ ByorkVerdictRequest byorkVerdictRequest = new ByorkVerdictRequest(); // ByorkVerdictRequest |
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ try {
+ CompletableFuture> response = fireblocks.compliance().setByorkVerdict(byorkVerdictRequest, idempotencyKey);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#setByorkVerdict");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#setByorkVerdict");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **byorkVerdictRequest** | [**ByorkVerdictRequest**](ByorkVerdictRequest.md)| | |
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Verdict applied (COMPLETED) or pre-accepted (PRE_ACCEPTED). | * X-Request-ID -
|
+| **400** | BYORK Light not enabled for tenant or invalid verdict. | * X-Request-ID -
|
+| **409** | BYORK decision already final, screening already completed, or state inconsistent. | * X-Request-ID -
|
+| **425** | Too Early - transaction not found (screening not started yet). | * X-Request-ID -
|
+| **500** | Internal server error. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
## updateAmlScreeningConfiguration
> CompletableFuture> updateAmlScreeningConfiguration updateAmlScreeningConfiguration(idempotencyKey)
diff --git a/docs/CreateEarnActionRequest.md b/docs/CreateEarnActionRequest.md
new file mode 100644
index 00000000..6fcf6e49
--- /dev/null
+++ b/docs/CreateEarnActionRequest.md
@@ -0,0 +1,25 @@
+
+
+# CreateEarnActionRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**action** | [**ActionEnum**](#ActionEnum) | Whether to deposit into or withdraw from the lending opportunity. | |
+|**opportunityId** | **String** | Identifier of the vault or market (lending opportunity). | |
+|**vaultAccountId** | **String** | Fireblocks vault account that will execute the action. | |
+|**amount** | **String** | Human-readable token amount (e.g. \"1.6\") or the keyword \"max\" for the full position or available balance. | |
+
+
+
+## Enum: ActionEnum
+
+| Name | Value |
+|---- | -----|
+| DEPOSIT | "DEPOSIT" |
+| WITHDRAW | "WITHDRAW" |
+
+
+
diff --git a/docs/CreateEarnActionResponse.md b/docs/CreateEarnActionResponse.md
new file mode 100644
index 00000000..f6c02a30
--- /dev/null
+++ b/docs/CreateEarnActionResponse.md
@@ -0,0 +1,26 @@
+
+
+# CreateEarnActionResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | ActionIntent UUID for tracking the lending action workflow. | |
+|**status** | [**StatusEnum**](#StatusEnum) | Lifecycle status (e.g. CREATED, IN_PROGRESS, COMPLETED). | |
+
+
+
+## Enum: StatusEnum
+
+| Name | Value |
+|---- | -----|
+| CREATED | "CREATED" |
+| IN_PROGRESS | "IN_PROGRESS" |
+| COMPLETED | "COMPLETED" |
+| CANCELED | "CANCELED" |
+| FAILED | "FAILED" |
+
+
+
diff --git a/docs/DirectAccessProvider.md b/docs/DirectAccessProvider.md
index 8bcfbbca..97d3da27 100644
--- a/docs/DirectAccessProvider.md
+++ b/docs/DirectAccessProvider.md
@@ -2,6 +2,7 @@
# DirectAccessProvider
+Provider used without per-account linking (`accountBased` is `false`).
## Properties
diff --git a/docs/DirectProviderDetails.md b/docs/DirectProviderDetails.md
deleted file mode 100644
index fb668d9f..00000000
--- a/docs/DirectProviderDetails.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-# DirectProviderDetails
-
-
-## Properties
-
-| Name | Type | Description | Notes |
-|------------ | ------------- | ------------- | -------------|
-|**id** | **String** | Unique identifier for the provider | |
-|**name** | **String** | Display name of the provider | |
-|**logo** | **String** | URL to the logo image of the provider | [optional] |
-|**accountBased** | **Boolean** | Indicates whether the provider access model is through accounts or directly | |
-|**manifest** | [**Manifest**](Manifest.md) | | |
-|**approved** | **Boolean** | Whether the provider was approved for use | [optional] |
-|**hasTermsOfService** | **Boolean** | Whether the provider has terms of service | |
-|**termsOfServiceUrl** | **String** | URL to the terms of service document | [optional] |
-|**privacyPolicyUrl** | **String** | URL to the privacy policy document | [optional] |
-
-
-
diff --git a/docs/EarnAsset.md b/docs/EarnAsset.md
new file mode 100644
index 00000000..6dab860f
--- /dev/null
+++ b/docs/EarnAsset.md
@@ -0,0 +1,16 @@
+
+
+# EarnAsset
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**address** | **String** | Contract address of the token on-chain. | [optional] |
+|**symbol** | **String** | Human-readable ticker (e.g. USDC). | [optional] |
+|**decimals** | **Integer** | Token decimals used when interpreting on-chain amounts. | [optional] |
+|**assetId** | **String** | Fireblocks legacy asset identifier (e.g. USDC_ETH, PYUSD). | [optional] |
+
+
+
diff --git a/docs/EarnBetaApi.md b/docs/EarnBetaApi.md
new file mode 100644
index 00000000..af8c0884
--- /dev/null
+++ b/docs/EarnBetaApi.md
@@ -0,0 +1,657 @@
+# EarnBetaApi
+
+All URIs are relative to https://developers.fireblocks.com/reference/
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**approveTermsOfService**](EarnBetaApi.md#approveTermsOfService) | **POST** /earn/providers/{providerId}/approve_terms_of_service | Approve earn provider terms of service |
+| [**createEarnAction**](EarnBetaApi.md#createEarnAction) | **POST** /earn/actions | Create and execute a lending action (deposit or withdraw) |
+| [**getEarnAction**](EarnBetaApi.md#getEarnAction) | **GET** /earn/actions/{id} | Get a single earn lending action |
+| [**getEarnActions**](EarnBetaApi.md#getEarnActions) | **GET** /earn/actions | List earn lending actions |
+| [**getEarnOpportunities**](EarnBetaApi.md#getEarnOpportunities) | **GET** /earn/opportunities | Get list of earn opportunities |
+| [**getEarnPositions**](EarnBetaApi.md#getEarnPositions) | **GET** /earn/positions | Get list of earn positions |
+| [**getEarnProviders**](EarnBetaApi.md#getEarnProviders) | **GET** /earn/providers | Get list of earn providers |
+
+
+
+## approveTermsOfService
+
+> CompletableFuture> approveTermsOfService approveTermsOfService(providerId, idempotencyKey)
+
+Approve earn provider terms of service
+
+Approves the lending provider's terms of service for this workspace. When `isTermsApprovalRequired` is true on the provider (see list providers), call this once before creating or executing earn actions with that provider. After success, `GET /earn/providers` reflects `isTermsOfServiceApproved`. **Note:** This endpoint is currently in beta and might be subject to changes.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.EarnBetaApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String providerId = "MORPHO"; // String | Stable protocol identifier for the earn provider (`MORPHO` or `AAVE`).
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ try {
+ CompletableFuture> response = fireblocks.earnBeta().approveTermsOfService(providerId, idempotencyKey);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling EarnBetaApi#approveTermsOfService");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling EarnBetaApi#approveTermsOfService");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **providerId** | **String**| Stable protocol identifier for the earn provider (`MORPHO` or `AAVE`). | [enum: MORPHO, AAVE] |
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
+
+### Return type
+
+
+CompletableFuture>
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **204** | Terms of service accepted. | * X-Request-ID -
|
+| **400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
|
+| **403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
|
+| **404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
|
+| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+| **500** | Internal error while processing the request. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## createEarnAction
+
+> CompletableFuture> createEarnAction createEarnAction(createEarnActionRequest, idempotencyKey)
+
+Create and execute a lending action (deposit or withdraw)
+
+Creates and runs a sequence of on-chain steps for either a deposit into or a withdrawal from an earn vault/market. Specify the operation with `action` in the request body (`DEPOSIT` or `WITHDRAW`). **Note:** This endpoint is currently in beta and might be subject to changes.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.EarnBetaApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ CreateEarnActionRequest createEarnActionRequest = new CreateEarnActionRequest(); // CreateEarnActionRequest |
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ try {
+ CompletableFuture> response = fireblocks.earnBeta().createEarnAction(createEarnActionRequest, idempotencyKey);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling EarnBetaApi#createEarnAction");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling EarnBetaApi#createEarnAction");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **createEarnActionRequest** | [**CreateEarnActionRequest**](CreateEarnActionRequest.md)| | |
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | OK | * X-Request-ID -
|
+| **400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
|
+| **403** | Forbidden: insufficient permissions, disabled feature, or restricted provider. | * X-Request-ID -
|
+| **404** | Not found: requested resource does not exist (e.g., opportunity, provider, or wallet). | * X-Request-ID -
|
+| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+| **500** | Internal error while processing the request. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getEarnAction
+
+> CompletableFuture> getEarnAction getEarnAction(id)
+
+Get a single earn lending action
+
+Returns one lending action by its action sequence id (tenant-scoped). **Note:** This endpoint is currently in beta and might be subject to changes.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.EarnBetaApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String id = "id_example"; // String | Action sequence id (UUID).
+ try {
+ CompletableFuture> response = fireblocks.earnBeta().getEarnAction(id);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling EarnBetaApi#getEarnAction");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling EarnBetaApi#getEarnAction");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **id** | **String**| Action sequence id (UUID). | |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | OK | * X-Request-ID -
|
+| **403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
|
+| **404** | Not found: action does not exist or is not visible for this tenant. | * X-Request-ID -
|
+| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+| **500** | Internal error while processing the request. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getEarnActions
+
+> CompletableFuture> getEarnActions getEarnActions(pageCursor, pageSize, sortBy, order)
+
+List earn lending actions
+
+Returns a paginated list of lending actions (deposits and withdrawals) for the authenticated tenant. **Note:** This endpoint is currently in beta and might be subject to changes.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.EarnBetaApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String pageCursor = "pageCursor_example"; // String | Cursor for the next or previous page of results.
+ Integer pageSize = 100; // Integer | Number of items per page (default 100, max 100).
+ String sortBy = "createdAt"; // String | Field to sort results by.
+ String order = "ASC"; // String | Sort order (ASC or DESC).
+ try {
+ CompletableFuture> response = fireblocks.earnBeta().getEarnActions(pageCursor, pageSize, sortBy, order);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling EarnBetaApi#getEarnActions");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling EarnBetaApi#getEarnActions");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **pageCursor** | **String**| Cursor for the next or previous page of results. | [optional] |
+| **pageSize** | **Integer**| Number of items per page (default 100, max 100). | [optional] [default to 100] |
+| **sortBy** | **String**| Field to sort results by. | [optional] [enum: createdAt, updatedAt] |
+| **order** | **String**| Sort order (ASC or DESC). | [optional] [default to DESC] [enum: ASC, DESC] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | OK | * X-Request-ID -
|
+| **403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
|
+| **404** | Not found: requested resource does not exist. | * X-Request-ID -
|
+| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+| **500** | Internal error while processing the request. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getEarnOpportunities
+
+> CompletableFuture> getEarnOpportunities getEarnOpportunities(pageCursor, pageSize, sortBy, order)
+
+Get list of earn opportunities
+
+Get list of earn opportunities (vaults). **Note:** This endpoint is currently in beta and might be subject to changes.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.EarnBetaApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String pageCursor = "pageCursor_example"; // String | Cursor for the next or previous page of results.
+ Integer pageSize = 100; // Integer | Number of items per page.
+ String sortBy = "sortBy_example"; // String | Field to sort results by.
+ String order = "ASC"; // String | Sort order (ASC or DESC).
+ try {
+ CompletableFuture> response = fireblocks.earnBeta().getEarnOpportunities(pageCursor, pageSize, sortBy, order);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling EarnBetaApi#getEarnOpportunities");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling EarnBetaApi#getEarnOpportunities");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **pageCursor** | **String**| Cursor for the next or previous page of results. | [optional] |
+| **pageSize** | **Integer**| Number of items per page. | [optional] [default to 100] |
+| **sortBy** | **String**| Field to sort results by. | [optional] |
+| **order** | **String**| Sort order (ASC or DESC). | [optional] [default to DESC] [enum: ASC, DESC] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | OK | * X-Request-ID -
|
+| **403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
|
+| **404** | Not found: requested resource does not exist. | * X-Request-ID -
|
+| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+| **500** | Internal error while processing the request. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getEarnPositions
+
+> CompletableFuture> getEarnPositions getEarnPositions(chainId, providerId, pageCursor, pageSize, sortBy, order)
+
+Get list of earn positions
+
+Get list of earn positions for accounts tracked for this workspace. Optional query parameters filter by chain, provider, and pagination. **Note:** This endpoint is currently in beta and might be subject to changes.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.EarnBetaApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ Integer chainId = 56; // Integer |
+ String providerId = "MORPHO"; // String |
+ String pageCursor = "pageCursor_example"; // String | Cursor for the next or previous page of results.
+ Integer pageSize = 100; // Integer | Number of items per page.
+ String sortBy = "sortBy_example"; // String | Field to sort results by.
+ String order = "ASC"; // String | Sort order (ASC or DESC).
+ try {
+ CompletableFuture> response = fireblocks.earnBeta().getEarnPositions(chainId, providerId, pageCursor, pageSize, sortBy, order);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling EarnBetaApi#getEarnPositions");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling EarnBetaApi#getEarnPositions");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **chainId** | **Integer**| | [optional] |
+| **providerId** | **String**| | [optional] [enum: MORPHO, AAVE] |
+| **pageCursor** | **String**| Cursor for the next or previous page of results. | [optional] |
+| **pageSize** | **Integer**| Number of items per page. | [optional] [default to 100] |
+| **sortBy** | **String**| Field to sort results by. | [optional] |
+| **order** | **String**| Sort order (ASC or DESC). | [optional] [default to DESC] [enum: ASC, DESC] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | OK | * X-Request-ID -
|
+| **403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
|
+| **404** | Not found: requested resource does not exist. | * X-Request-ID -
|
+| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+| **500** | Internal error while processing the request. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getEarnProviders
+
+> CompletableFuture> getEarnProviders getEarnProviders(pageCursor, pageSize, sortBy, order)
+
+Get list of earn providers
+
+Get list of earn providers. **Note:** This endpoint is currently in beta and might be subject to changes.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.EarnBetaApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String pageCursor = "pageCursor_example"; // String | Cursor for the next or previous page of results.
+ Integer pageSize = 100; // Integer | Number of items per page.
+ String sortBy = "sortBy_example"; // String | Field to sort results by.
+ String order = "ASC"; // String | Sort order (ASC or DESC).
+ try {
+ CompletableFuture> response = fireblocks.earnBeta().getEarnProviders(pageCursor, pageSize, sortBy, order);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling EarnBetaApi#getEarnProviders");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling EarnBetaApi#getEarnProviders");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **pageCursor** | **String**| Cursor for the next or previous page of results. | [optional] |
+| **pageSize** | **Integer**| Number of items per page. | [optional] [default to 100] |
+| **sortBy** | **String**| Field to sort results by. | [optional] |
+| **order** | **String**| Sort order (ASC or DESC). | [optional] [default to DESC] [enum: ASC, DESC] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | OK | * X-Request-ID -
|
+| **403** | Forbidden: insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
|
+| **404** | Not found: requested resource does not exist. | * X-Request-ID -
|
+| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+| **500** | Internal error while processing the request. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
diff --git a/docs/EarnProvider.md b/docs/EarnProvider.md
new file mode 100644
index 00000000..47933754
--- /dev/null
+++ b/docs/EarnProvider.md
@@ -0,0 +1,28 @@
+
+
+# EarnProvider
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**providerId** | [**ProviderIdEnum**](#ProviderIdEnum) | Stable protocol identifier (`MORPHO` or `AAVE`). | [optional] |
+|**displayName** | **String** | Human-readable protocol name for UI. | [optional] |
+|**logoUrl** | **String** | URL for the provider logo asset. | [optional] |
+|**supportedChainIds** | **List<Integer>** | EVM chain IDs where this provider is supported. | [optional] |
+|**isTermsApprovalRequired** | **Boolean** | Whether the user must accept terms before using this provider. | [optional] |
+|**termsOfServiceUrl** | **String** | URL to the provider terms of service, when applicable. | [optional] |
+|**isTermsOfServiceApproved** | **Boolean** | Whether terms have been approved for this workspace / context. | [optional] |
+
+
+
+## Enum: ProviderIdEnum
+
+| Name | Value |
+|---- | -----|
+| MORPHO | "MORPHO" |
+| AAVE | "AAVE" |
+
+
+
diff --git a/docs/Exposure.md b/docs/Exposure.md
new file mode 100644
index 00000000..79703e9f
--- /dev/null
+++ b/docs/Exposure.md
@@ -0,0 +1,15 @@
+
+
+# Exposure
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**assetAddress** | **String** | On-chain address of the exposure asset. | [optional] |
+|**symbol** | **String** | Ticker for the exposure asset. | [optional] |
+|**amount** | **String** | Human-readable decimal string (raw on-chain value scaled by 10^decimals). | [optional] |
+
+
+
diff --git a/docs/FailureReason.md b/docs/FailureReason.md
index 44c00025..d39db1ea 100644
--- a/docs/FailureReason.md
+++ b/docs/FailureReason.md
@@ -41,5 +41,21 @@
* `TRANSACTION_BLOCKED` (value: `"TRANSACTION_BLOCKED"`)
+* `PROVIDER_INTERNAL_ERROR` (value: `"PROVIDER_INTERNAL_ERROR"`)
+
+* `UNSUPPORTED_SOURCE_ASSET` (value: `"UNSUPPORTED_SOURCE_ASSET"`)
+
+* `UNSUPPORTED_DESTINATION_ASSET` (value: `"UNSUPPORTED_DESTINATION_ASSET"`)
+
+* `AMOUNT_BELOW_MINIMUM` (value: `"AMOUNT_BELOW_MINIMUM"`)
+
+* `PII_MISSING` (value: `"PII_MISSING"`)
+
+* `EXTERNAL_SOURCE_NOT_SUPPORTED` (value: `"EXTERNAL_SOURCE_NOT_SUPPORTED"`)
+
+* `UNSUPPORTED_REGION` (value: `"UNSUPPORTED_REGION"`)
+
+* `DESTINATION_NOT_WHITELISTED` (value: `"DESTINATION_NOT_WHITELISTED"`)
+
diff --git a/docs/FlowDirection.md b/docs/FlowDirection.md
new file mode 100644
index 00000000..c02920a6
--- /dev/null
+++ b/docs/FlowDirection.md
@@ -0,0 +1,17 @@
+
+
+# FlowDirection
+
+## Enum
+
+
+* `FIAT_TO_CRYPTO` (value: `"FIAT_TO_CRYPTO"`)
+
+* `CRYPTO_TO_FIAT` (value: `"CRYPTO_TO_FIAT"`)
+
+* `CRYPTO_TO_CRYPTO` (value: `"CRYPTO_TO_CRYPTO"`)
+
+* `FIAT_TO_FIAT` (value: `"FIAT_TO_FIAT"`)
+
+
+
diff --git a/docs/GetActionResponse.md b/docs/GetActionResponse.md
new file mode 100644
index 00000000..1b57bde7
--- /dev/null
+++ b/docs/GetActionResponse.md
@@ -0,0 +1,41 @@
+
+
+# GetActionResponse
+
+Single lending action (intent plus per-step execution rows).
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Action sequence id (UUID). | |
+|**status** | **String** | Intent status (e.g. CREATED, IN_PROGRESS, COMPLETED). | |
+|**providerId** | [**ProviderIdEnum**](#ProviderIdEnum) | Lending protocol identifier. | |
+|**actionType** | [**ActionTypeEnum**](#ActionTypeEnum) | Whether this action is a deposit or withdraw flow. | |
+|**opportunityId** | **String** | Target lending opportunity identifier. | |
+|**positionId** | **String** | Position id in the system when applicable. | [optional] |
+|**amount** | **String** | Human-readable amount for the action. | |
+|**createdAt** | **String** | Creation time (ISO-8601). | |
+|**updatedAt** | **String** | Last update time (ISO-8601). | |
+|**records** | [**List<ActionRecord>**](ActionRecord.md) | Ordered execution steps for this action. | |
+
+
+
+## Enum: ProviderIdEnum
+
+| Name | Value |
+|---- | -----|
+| MORPHO | "MORPHO" |
+| AAVE | "AAVE" |
+
+
+
+## Enum: ActionTypeEnum
+
+| Name | Value |
+|---- | -----|
+| DEPOSIT | "DEPOSIT" |
+| WITHDRAW | "WITHDRAW" |
+
+
+
diff --git a/docs/GetActionsResponse.md b/docs/GetActionsResponse.md
new file mode 100644
index 00000000..c8d837f8
--- /dev/null
+++ b/docs/GetActionsResponse.md
@@ -0,0 +1,16 @@
+
+
+# GetActionsResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<GetActionResponse>**](GetActionResponse.md) | Page of lending actions for this query. | |
+|**next** | **String** | Opaque cursor for the next page; empty when there is no next page. | [optional] |
+|**prev** | **String** | Opaque cursor for the previous page; empty when there is no previous page. | [optional] |
+|**total** | **Integer** | Total number of items matching the query. | |
+
+
+
diff --git a/docs/GetByorkVerdictResponse.md b/docs/GetByorkVerdictResponse.md
new file mode 100644
index 00000000..7a0b21a0
--- /dev/null
+++ b/docs/GetByorkVerdictResponse.md
@@ -0,0 +1,15 @@
+
+
+# GetByorkVerdictResponse
+
+Response for GET BYORK verdict (current verdict/status for a transaction).
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**status** | **ByorkVerdictResponseStatusEnum** | | |
+|**verdict** | **ByorkVerdictEnum** | | |
+
+
+
diff --git a/docs/GetOpportunitiesResponse.md b/docs/GetOpportunitiesResponse.md
new file mode 100644
index 00000000..9007ab3b
--- /dev/null
+++ b/docs/GetOpportunitiesResponse.md
@@ -0,0 +1,16 @@
+
+
+# GetOpportunitiesResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<Opportunity>**](Opportunity.md) | Page of lending opportunities for this query. | |
+|**next** | **String** | Opaque cursor for the next page; empty when there is no next page. | [optional] |
+|**prev** | **String** | Opaque cursor for the previous page; empty when there is no previous page. | [optional] |
+|**total** | **Integer** | Total number of items matching the query. | |
+
+
+
diff --git a/docs/GetPositionsResponse.md b/docs/GetPositionsResponse.md
new file mode 100644
index 00000000..ad7229e9
--- /dev/null
+++ b/docs/GetPositionsResponse.md
@@ -0,0 +1,16 @@
+
+
+# GetPositionsResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<Position2>**](Position2.md) | Page of user lending positions for this query. | |
+|**next** | **String** | Opaque cursor for the next page; empty when there is no next page. | [optional] |
+|**prev** | **String** | Opaque cursor for the previous page; empty when there is no previous page. | [optional] |
+|**total** | **Integer** | Total number of items matching the query. | |
+
+
+
diff --git a/docs/GetProvidersResponse.md b/docs/GetProvidersResponse.md
new file mode 100644
index 00000000..01a06071
--- /dev/null
+++ b/docs/GetProvidersResponse.md
@@ -0,0 +1,16 @@
+
+
+# GetProvidersResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<EarnProvider>**](EarnProvider.md) | Page of integrated lending providers. | |
+|**next** | **String** | Opaque cursor for the next page; empty when there is no next page. | [optional] |
+|**prev** | **String** | Opaque cursor for the previous page; empty when there is no previous page. | [optional] |
+|**total** | **Integer** | Total number of items matching the query. | |
+
+
+
diff --git a/docs/GleifData.md b/docs/GleifData.md
index 19127290..c43f4774 100644
--- a/docs/GleifData.md
+++ b/docs/GleifData.md
@@ -10,7 +10,8 @@ GLEIF (Global Legal Entity Identifier Foundation) data for a legal entity
|------------ | ------------- | ------------- | -------------|
|**lei** | **String** | Legal Entity Identifier (LEI) code | |
|**legalName** | **String** | Official legal name of the entity | |
-|**otherNames** | **List<String>** | Alternative names for the entity | [optional] |
+|**legalNameLanguage** | **String** | Two-letter ISO 639-1 language code | [optional] |
+|**otherNames** | [**List<GleifOtherLegalEntityName>**](GleifOtherLegalEntityName.md) | Alternative names for the entity | [optional] |
|**legalAddressRegion** | **String** | Region or state of the legal address | [optional] |
|**legalAddressCountry** | **String** | Country code of the legal address (ISO 3166-1 alpha-2) | |
|**nextRenewalDate** | **OffsetDateTime** | Date when the LEI registration must be renewed | [optional] |
diff --git a/docs/GleifOtherLegalEntityName.md b/docs/GleifOtherLegalEntityName.md
new file mode 100644
index 00000000..7cbde8de
--- /dev/null
+++ b/docs/GleifOtherLegalEntityName.md
@@ -0,0 +1,14 @@
+
+
+# GleifOtherLegalEntityName
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**name** | **String** | Alternative name of the legal entity | |
+|**language** | **String** | Two-letter ISO 639-1 language code | |
+
+
+
diff --git a/docs/IdentificationPolicyOverride.md b/docs/IdentificationPolicyOverride.md
new file mode 100644
index 00000000..66d95b18
--- /dev/null
+++ b/docs/IdentificationPolicyOverride.md
@@ -0,0 +1,17 @@
+
+
+# IdentificationPolicyOverride
+
+Override scoped by one or more dimensions. More dimensions = higher priority. Equal priority ties are broken by array order. **Validation:** At least one of `asset`, `rail`, or `flowDirection` will be present. Priority (highest to lowest): 1. asset + rail + flowDirection 2. asset + rail 2. asset + flowDirection 2. rail + flowDirection 3. asset only 3. rail only 3. flowDirection only 4. defaultSchema (no override matched)
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**asset** | **String** | Fireblocks asset ID (fiat or crypto). | [optional] |
+|**rail** | **TransferRail** | | [optional] |
+|**flowDirection** | **FlowDirection** | | [optional] |
+|**schema** | **String** | A JSON Schema (draft-07) in string format that validates the ParticipantsIdentification object on requests where the provider manifest lists that endpoint in `participantsIdentificationPolicy.supportedEndpoints` (e.g. POST /orders). Defines which fields from originator and/or beneficiary are required. The schema uses oneOf to discriminate between INDIVIDUAL (PersonalIdentification) and BUSINESS (BusinessIdentification) entity types for each participant. For INDIVIDUAL: fullName, dateOfBirth, postalAddress, email, phone, idNumber, idType, etc. For BUSINESS: businessName, registrationNumber, postalAddress, email, phone, etc. If you constrain `idType` or `additionalIdType` with a JSON Schema `enum`, use the same values as `PersonalIdentificationType` (authoritative list in that schema). The example below mirrors that enum. The string content is expected to be valid JSON (application/json). | |
+
+
+
diff --git a/docs/ListLegalEntitiesResponse.md b/docs/ListLegalEntitiesResponse.md
index f854c655..7800614f 100644
--- a/docs/ListLegalEntitiesResponse.md
+++ b/docs/ListLegalEntitiesResponse.md
@@ -11,7 +11,6 @@ Paginated response containing a list of legal entity registrations
|**total** | **Integer** | Total number of legal entity registrations (optional) | [optional] |
|**data** | [**List<LegalEntityRegistration>**](LegalEntityRegistration.md) | Legal entity registrations for the current page | |
|**next** | **String** | Cursor to pass as `pageCursor` to retrieve the next page | [optional] |
-|**prev** | **String** | Cursor to pass as `pageCursor` to retrieve the previous page | [optional] |
diff --git a/docs/ListUtxosResponse.md b/docs/ListUtxosResponse.md
new file mode 100644
index 00000000..73c4d148
--- /dev/null
+++ b/docs/ListUtxosResponse.md
@@ -0,0 +1,14 @@
+
+
+# ListUtxosResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<UtxoOutput>**](UtxoOutput.md) | List of UTXOs | |
+|**next** | **String** | Cursor to the next page | [optional] |
+
+
+
diff --git a/docs/ListVaultsForRegistrationResponse.md b/docs/ListVaultsForRegistrationResponse.md
index 8f1a91d8..e68832d9 100644
--- a/docs/ListVaultsForRegistrationResponse.md
+++ b/docs/ListVaultsForRegistrationResponse.md
@@ -11,7 +11,6 @@ Response containing vault account IDs assigned to a legal entity registration
|**total** | **Integer** | Total number of legal entity registrations (optional) | [optional] |
|**data** | **List<String>** | List of vault account IDs assigned to the legal entity registration | |
|**next** | **String** | Cursor to pass as `pageCursor` to retrieve the next page | [optional] |
-|**prev** | **String** | Cursor to pass as `pageCursor` to retrieve the previous page | [optional] |
diff --git a/docs/Manifest.md b/docs/Manifest.md
index 769ea00c..b4248ab3 100644
--- a/docs/Manifest.md
+++ b/docs/Manifest.md
@@ -11,6 +11,7 @@ The manifest of the provider, describing its supported order, quote, and rate re
|**order** | [**ManifestOrder**](ManifestOrder.md) | | |
|**quote** | [**ManifestQuote**](ManifestQuote.md) | | |
|**rate** | [**ManifestBase**](ManifestBase.md) | | |
+|**participantsIdentificationPolicy** | [**ParticipantsIdentificationPolicy**](ParticipantsIdentificationPolicy.md) | | [optional] |
diff --git a/docs/Opportunity.md b/docs/Opportunity.md
new file mode 100644
index 00000000..91bf3b96
--- /dev/null
+++ b/docs/Opportunity.md
@@ -0,0 +1,45 @@
+
+
+# Opportunity
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique opportunity identifier. | [optional] |
+|**providerId** | [**ProviderIdEnum**](#ProviderIdEnum) | Lending protocol (`MORPHO` or `AAVE`). | [optional] |
+|**type** | [**TypeEnum**](#TypeEnum) | Opportunity kind — vault or market. | [optional] |
+|**chainId** | **String** | Chain identifier as a string (e.g. \"1\" for Ethereum mainnet). | [optional] |
+|**address** | **String** | Primary contract address for the vault or market. | [optional] |
+|**name** | **String** | Display name of the opportunity. | [optional] |
+|**symbol** | **String** | Symbol or share token ticker for the position asset. | [optional] |
+|**principalAsset** | [**EarnAsset**](EarnAsset.md) | Underlying token the user deposits (principal). | [optional] |
+|**positionAsset** | [**EarnAsset**](EarnAsset.md) | Token representing the user’s position in the protocol (e.g. vault share). | [optional] |
+|**totalAssets** | **String** | Human-readable total value locked / assets in the opportunity. | [optional] |
+|**liquidity** | **String** | Human-readable available liquidity. | [optional] |
+|**apy** | [**Apy**](Apy.md) | APY breakdown; values are percentages (e.g. 4.25 means 4.25%). | [optional] |
+|**performanceFee** | **String** | Performance fee as a human-readable decimal string. | [optional] |
+|**managementFee** | **String** | Management fee as a human-readable decimal string. | [optional] |
+|**exposure** | [**List<Exposure>**](Exposure.md) | Optional per-asset exposure breakdown. | [optional] |
+
+
+
+## Enum: ProviderIdEnum
+
+| Name | Value |
+|---- | -----|
+| MORPHO | "MORPHO" |
+| AAVE | "AAVE" |
+
+
+
+## Enum: TypeEnum
+
+| Name | Value |
+|---- | -----|
+| VAULT | "VAULT" |
+| MARKET | "MARKET" |
+
+
+
diff --git a/docs/ParticipantsIdentificationPolicy.md b/docs/ParticipantsIdentificationPolicy.md
new file mode 100644
index 00000000..affebffd
--- /dev/null
+++ b/docs/ParticipantsIdentificationPolicy.md
@@ -0,0 +1,16 @@
+
+
+# ParticipantsIdentificationPolicy
+
+When present on a provider manifest, specifies KYC/AML identification requirements as JSON Schemas and which flows in `supportedEndpoints` may require `participantsIdentification`. Only endpoints listed in `supportedEndpoints` are in scope for this policy. `defaultSchema` is the baseline; `overrides` refine it by `asset`, `rail`, and/or `flowDirection` (see priority below). The most specific matching override applies its `schema` for that request context: it may fully replace `defaultSchema`, or partially override it—when the override `schema` is not provided as a complete standalone definition, fields and rules omitted there continue to follow `defaultSchema`. If this object is omitted from the manifest, the provider imposes no PII requirements through this policy. FirstParty participants are always exempt. Resolution: from overrides that match the request context, choose the most specific (most dimensions matched); break ties by earlier position in the `overrides` array; if none match, use `defaultSchema`. Priority (highest precedence first): 1. asset + rail + flowDirection 2. Any two dimensions: asset+rail, asset+flowDirection, rail+flowDirection 3. Any single dimension: asset, rail, or flowDirection 4. defaultSchema (no override matches)
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**supportedEndpoints** | **Set<ParticipantsIdentificationSupportedEndpoint>** | API endpoints in scope for this participants identification policy. Values `ORDER`, `QUOTE`, and `RATE` correspond to manifest `order`, `quote`, and `rate` flows. Client requests to those endpoints may need to include `participantsIdentification` when the resolved schema requires it. | |
+|**defaultSchema** | **String** | A JSON Schema (draft-07) in string format that validates the ParticipantsIdentification object on requests where the provider manifest lists that endpoint in `participantsIdentificationPolicy.supportedEndpoints` (e.g. POST /orders). Defines which fields from originator and/or beneficiary are required. The schema uses oneOf to discriminate between INDIVIDUAL (PersonalIdentification) and BUSINESS (BusinessIdentification) entity types for each participant. For INDIVIDUAL: fullName, dateOfBirth, postalAddress, email, phone, idNumber, idType, etc. For BUSINESS: businessName, registrationNumber, postalAddress, email, phone, etc. If you constrain `idType` or `additionalIdType` with a JSON Schema `enum`, use the same values as `PersonalIdentificationType` (authoritative list in that schema). The example below mirrors that enum. The string content is expected to be valid JSON (application/json). | |
+|**overrides** | [**List<IdentificationPolicyOverride>**](IdentificationPolicyOverride.md) | Contextual overrides scoped by asset, rail, and/or flowDirection. Most specific match wins; ties broken by array order. Replaces the default partially. Each override MUST include at least one of `asset`, `rail`, or `flowDirection` (not `schema` alone); see IdentificationPolicyOverride. | [optional] |
+
+
+
diff --git a/docs/ParticipantsIdentificationSupportedEndpoint.md b/docs/ParticipantsIdentificationSupportedEndpoint.md
new file mode 100644
index 00000000..af275e01
--- /dev/null
+++ b/docs/ParticipantsIdentificationSupportedEndpoint.md
@@ -0,0 +1,15 @@
+
+
+# ParticipantsIdentificationSupportedEndpoint
+
+## Enum
+
+
+* `ORDER` (value: `"ORDER"`)
+
+* `QUOTE` (value: `"QUOTE"`)
+
+* `RATE` (value: `"RATE"`)
+
+
+
diff --git a/docs/Position2.md b/docs/Position2.md
new file mode 100644
index 00000000..be47bf13
--- /dev/null
+++ b/docs/Position2.md
@@ -0,0 +1,74 @@
+
+
+# Position2
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Position UUID. | [optional] |
+|**status** | [**StatusEnum**](#StatusEnum) | Lifecycle status of the position. | [optional] |
+|**inFlight** | **Boolean** | True while an action is in progress for this position. | [optional] |
+|**positionType** | [**PositionTypeEnum**](#PositionTypeEnum) | Whether the position is lend- or borrow-side. | [optional] |
+|**vaultAccountId** | **String** | Fireblocks vault account holding the position. | [optional] |
+|**opportunityId** | **String** | Opportunity / vault or market identifier. | [optional] |
+|**chainId** | **String** | Chain identifier as a string (e.g. \"1\"). | [optional] |
+|**providerId** | [**ProviderIdEnum**](#ProviderIdEnum) | Lending protocol. | [optional] |
+|**origin** | [**OriginEnum**](#OriginEnum) | Whether the position was opened natively in Fireblocks or imported externally. | [optional] |
+|**principalAssetId** | **String** | Fireblocks asset id for the principal (underlying) asset. | [optional] |
+|**positionAssetId** | **String** | Fireblocks asset id for the position / share token. | [optional] |
+|**principalBalance** | **String** | Human-readable principal balance. | [optional] |
+|**positionBalance** | **String** | Human-readable position token balance. | [optional] |
+|**createdAt** | **String** | Creation time (ISO-8601). | [optional] |
+|**updatedAt** | **String** | Last update time (ISO-8601). | [optional] |
+|**lastSyncedAt** | **String** | Last successful on-chain sync time (ISO-8601). | [optional] |
+|**availableActions** | [**List<AvailableActionsEnum>**](#List<AvailableActionsEnum>) | Actions the API allows next for this position. | [optional] |
+
+
+
+## Enum: StatusEnum
+
+| Name | Value |
+|---- | -----|
+| ACTIVE | "ACTIVE" |
+| INACTIVE | "INACTIVE" |
+
+
+
+## Enum: PositionTypeEnum
+
+| Name | Value |
+|---- | -----|
+| LEND | "LEND" |
+| BORROW | "BORROW" |
+
+
+
+## Enum: ProviderIdEnum
+
+| Name | Value |
+|---- | -----|
+| MORPHO | "MORPHO" |
+| AAVE | "AAVE" |
+
+
+
+## Enum: OriginEnum
+
+| Name | Value |
+|---- | -----|
+| NATIVE | "NATIVE" |
+| EXTERNAL | "EXTERNAL" |
+
+
+
+## Enum: List<AvailableActionsEnum>
+
+| Name | Value |
+|---- | -----|
+| DEPOSIT | "DEPOSIT" |
+| WITHDRAW | "WITHDRAW" |
+
+
+
diff --git a/docs/ResendByQueryRequest.md b/docs/ResendByQueryRequest.md
new file mode 100644
index 00000000..890cc3fe
--- /dev/null
+++ b/docs/ResendByQueryRequest.md
@@ -0,0 +1,17 @@
+
+
+# ResendByQueryRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**statuses** | **List<NotificationStatus>** | (optional) List of notification statuses to resend - Default if missing: `[\"FAILED\", \"ON_HOLD\"]` | [optional] |
+|**startTime** | **BigDecimal** | (optional) Start time for the resend window in milliseconds since epoch, within the last 72 hours - Default if missing means 24 hours before the current time in milliseconds since epoch - Maximum value is current time in milliseconds since epoch - Minimum value is 72 hours before the current time in milliseconds since epoch | [optional] |
+|**endTime** | **BigDecimal** | (optional) End time for the resend window in milliseconds since epoch, within the last 72 hours - Default if missing means current time in milliseconds since epoch - Requires startTime to be provided - Must be after startTime - Time window between startTime and endTime must not exceed 24 hours | [optional] |
+|**events** | **List<WebhookEvent>** | (optional) Event types to resend, default is all event types - Default if missing means all events will be included - Empty array means all events will be included | [optional] |
+|**resourceId** | **String** | (optional) Resource ID to filter notifications by | [optional] |
+
+
+
diff --git a/docs/ResendByQueryResponse.md b/docs/ResendByQueryResponse.md
new file mode 100644
index 00000000..f088107b
--- /dev/null
+++ b/docs/ResendByQueryResponse.md
@@ -0,0 +1,13 @@
+
+
+# ResendByQueryResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**total** | **BigDecimal** | The total number of notifications that are scheduled to be resent. | [optional] |
+
+
+
diff --git a/docs/ScreeningPolicyAmount.md b/docs/ScreeningPolicyAmount.md
new file mode 100644
index 00000000..22423f6c
--- /dev/null
+++ b/docs/ScreeningPolicyAmount.md
@@ -0,0 +1,15 @@
+
+
+# ScreeningPolicyAmount
+
+Amount specification with range and currency type (screening policy rules – BYORK, TRLink, etc.)
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**range** | [**ScreeningPolicyAmountRange**](ScreeningPolicyAmountRange.md) | | |
+|**currency** | **ScreeningPolicyCurrency** | | |
+
+
+
diff --git a/docs/TRLinkAmountRange.md b/docs/ScreeningPolicyAmountRange.md
similarity index 91%
rename from docs/TRLinkAmountRange.md
rename to docs/ScreeningPolicyAmountRange.md
index f141c175..40fc5fc2 100644
--- a/docs/TRLinkAmountRange.md
+++ b/docs/ScreeningPolicyAmountRange.md
@@ -1,6 +1,6 @@
-# TRLinkAmountRange
+# ScreeningPolicyAmountRange
Minimum and maximum amount range specification
diff --git a/docs/TRLinkCurrency.md b/docs/ScreeningPolicyCurrency.md
similarity index 73%
rename from docs/TRLinkCurrency.md
rename to docs/ScreeningPolicyCurrency.md
index 38a0b2b7..a5319f16 100644
--- a/docs/TRLinkCurrency.md
+++ b/docs/ScreeningPolicyCurrency.md
@@ -1,6 +1,6 @@
-# TRLinkCurrency
+# ScreeningPolicyCurrency
## Enum
diff --git a/docs/TRLinkAmount2.md b/docs/TRLinkAmount2.md
deleted file mode 100644
index 319d18f3..00000000
--- a/docs/TRLinkAmount2.md
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-# TRLinkAmount2
-
-Amount specification with range and currency type
-
-## Properties
-
-| Name | Type | Description | Notes |
-|------------ | ------------- | ------------- | -------------|
-|**range** | [**TRLinkAmountRange**](TRLinkAmountRange.md) | | |
-|**currency** | **TRLinkCurrency** | | |
-
-
-
diff --git a/docs/TRLinkAssetFormat.md b/docs/TRLinkAssetFormat.md
index 6fc537bb..92e623bd 100644
--- a/docs/TRLinkAssetFormat.md
+++ b/docs/TRLinkAssetFormat.md
@@ -9,7 +9,5 @@
* `COINMARKETCAP` (value: `"coinmarketcap"`)
-* `SLIP44` (value: `"slip44"`)
-
diff --git a/docs/TRLinkMissingTrmRule2.md b/docs/TRLinkMissingTrmRule2.md
index 7be00e3a..4b502d15 100644
--- a/docs/TRLinkMissingTrmRule2.md
+++ b/docs/TRLinkMissingTrmRule2.md
@@ -20,7 +20,7 @@ Rule for handling transactions when TRM screening data is missing or unavailable
|**destId** | **String** | Destination identifier | [optional] |
|**asset** | **String** | Asset or cryptocurrency type | [optional] |
|**baseAsset** | **String** | Base asset for derivatives | [optional] |
-|**amount** | [**TRLinkAmount2**](TRLinkAmount2.md) | | [optional] |
+|**amount** | [**ScreeningPolicyAmount**](ScreeningPolicyAmount.md) | | [optional] |
|**networkProtocol** | **String** | Network protocol identifier | [optional] |
|**operation** | **String** | Operation type | [optional] |
|**description** | **String** | Rule description | [optional] |
diff --git a/docs/TRLinkPostScreeningRule2.md b/docs/TRLinkPostScreeningRule2.md
index 3ed58cf4..37a6de8a 100644
--- a/docs/TRLinkPostScreeningRule2.md
+++ b/docs/TRLinkPostScreeningRule2.md
@@ -20,7 +20,7 @@ Post-screening rule that determines the verdict based on screening results
|**destId** | **String** | Destination identifier | [optional] |
|**asset** | **String** | Asset or cryptocurrency type | [optional] |
|**baseAsset** | **String** | Base asset for derivatives | [optional] |
-|**amount** | [**TRLinkAmount2**](TRLinkAmount2.md) | | [optional] |
+|**amount** | [**ScreeningPolicyAmount**](ScreeningPolicyAmount.md) | | [optional] |
|**networkProtocol** | **String** | Network protocol identifier | [optional] |
|**operation** | **String** | Operation type | [optional] |
|**description** | **String** | Rule description | [optional] |
diff --git a/docs/TRLinkPreScreeningRule2.md b/docs/TRLinkPreScreeningRule2.md
index 42c9e405..fae74137 100644
--- a/docs/TRLinkPreScreeningRule2.md
+++ b/docs/TRLinkPreScreeningRule2.md
@@ -20,7 +20,7 @@ Pre-screening rule that determines if a transaction should be screened
|**destId** | **String** | Destination identifier | [optional] |
|**asset** | **String** | Asset or cryptocurrency type | [optional] |
|**baseAsset** | **String** | Base asset for derivatives | [optional] |
-|**amount** | [**TRLinkAmount2**](TRLinkAmount2.md) | | [optional] |
+|**amount** | [**ScreeningPolicyAmount**](ScreeningPolicyAmount.md) | | [optional] |
|**networkProtocol** | **String** | Network protocol identifier | [optional] |
|**operation** | **String** | Operation type | [optional] |
|**description** | **String** | Rule description | [optional] |
diff --git a/docs/TradingBetaApi.md b/docs/TradingBetaApi.md
index 0a7a4f8b..0ba2c782 100644
--- a/docs/TradingBetaApi.md
+++ b/docs/TradingBetaApi.md
@@ -386,11 +386,11 @@ No authorization required
## getTradingProviderById
-> CompletableFuture> getTradingProviderById getTradingProviderById(providerId)
+> CompletableFuture> getTradingProviderById getTradingProviderById(providerId)
Get trading provider by ID
-Retrieve detailed information about a specific provider including its full manifest with order/quote requirements. **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).
+Retrieve a single provider by ID. **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).
### Example
@@ -417,7 +417,7 @@ public class Example {
String providerId = "providerId_example"; // String | The unique identifier of the provider.
try {
- CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId);
+ CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId);
System.out.println("Status code: " + response.get().getStatusCode());
System.out.println("Response headers: " + response.get().getHeaders());
System.out.println("Response body: " + response.get().getData());
@@ -448,7 +448,7 @@ public class Example {
### Return type
-CompletableFuture>
+CompletableFuture>
### Authorization
@@ -463,7 +463,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Provider details | * X-Request-ID -
|
+| **200** | Single provider details. | * X-Request-ID -
|
| **401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
|
| **403** | Forbidden - insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
|
| **404** | Provider not found. | * X-Request-ID -
|
diff --git a/docs/TradingProviderDetails.md b/docs/TradingProviderDetails.md
deleted file mode 100644
index e58ec265..00000000
--- a/docs/TradingProviderDetails.md
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-# TradingProviderDetails
-
-## oneOf schemas
-* [AccountBasedProviderDetails](AccountBasedProviderDetails.md)
-* [DirectProviderDetails](DirectProviderDetails.md)
-
-## Example
-```java
-// Import classes:
-import com.fireblocks.sdk.model.TradingProviderDetails;
-import com.fireblocks.sdk.model.AccountBasedProviderDetails;
-import com.fireblocks.sdk.model.DirectProviderDetails;
-
-public class Example {
- public static void main(String[] args) {
- TradingProviderDetails exampleTradingProviderDetails = new TradingProviderDetails();
-
- // create a new AccountBasedProviderDetails
- AccountBasedProviderDetails exampleAccountBasedProviderDetails = new AccountBasedProviderDetails();
- // set TradingProviderDetails to AccountBasedProviderDetails
- exampleTradingProviderDetails.setActualInstance(exampleAccountBasedProviderDetails);
- // to get back the AccountBasedProviderDetails set earlier
- AccountBasedProviderDetails testAccountBasedProviderDetails = (AccountBasedProviderDetails) exampleTradingProviderDetails.getActualInstance();
-
- // create a new DirectProviderDetails
- DirectProviderDetails exampleDirectProviderDetails = new DirectProviderDetails();
- // set TradingProviderDetails to DirectProviderDetails
- exampleTradingProviderDetails.setActualInstance(exampleDirectProviderDetails);
- // to get back the DirectProviderDetails set earlier
- DirectProviderDetails testDirectProviderDetails = (DirectProviderDetails) exampleTradingProviderDetails.getActualInstance();
- }
-}
-```
-
-
diff --git a/docs/TransactionRequest.md b/docs/TransactionRequest.md
index 8c1e8293..828c2373 100644
--- a/docs/TransactionRequest.md
+++ b/docs/TransactionRequest.md
@@ -28,6 +28,7 @@
|**networkFee** | [**TransactionRequestNetworkFee**](TransactionRequestNetworkFee.md) | | [optional] |
|**replaceTxByHash** | **String** | For EVM-based blockchains only. In case a transaction is stuck, specify the hash of the stuck transaction to replace it by this transaction with a higher fee, or to replace it with this transaction with a zero fee and drop it from the blockchain. | [optional] |
|**extraParameters** | **ExtraParameters** | | [optional] |
+|**utxoSelectionParams** | [**UtxoSelectionParams**](UtxoSelectionParams.md) | | [optional] |
|**customerRefId** | **String** | The ID for AML providers to associate the owner of funds with transactions. | [optional] |
|**travelRuleMessage** | [**TravelRuleCreateTransactionRequest**](TravelRuleCreateTransactionRequest.md) | | [optional] |
|**travelRuleMessageId** | **String** | The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages. | [optional] |
diff --git a/docs/TransferPeerPathSubType.md b/docs/TransferPeerPathSubType.md
index 092bf21c..072beb3b 100644
--- a/docs/TransferPeerPathSubType.md
+++ b/docs/TransferPeerPathSubType.md
@@ -69,5 +69,7 @@
* `INTERNAL` (value: `"Internal"`)
+* `VIRTUAL_ACCOUNT` (value: `"VIRTUAL_ACCOUNT"`)
+
diff --git a/docs/TransferPeerPathType.md b/docs/TransferPeerPathType.md
index 7d2ec76a..118c71d2 100644
--- a/docs/TransferPeerPathType.md
+++ b/docs/TransferPeerPathType.md
@@ -9,6 +9,8 @@
* `EXCHANGE_ACCOUNT` (value: `"EXCHANGE_ACCOUNT"`)
+* `CONNECTED_ACCOUNT` (value: `"CONNECTED_ACCOUNT"`)
+
* `INTERNAL_WALLET` (value: `"INTERNAL_WALLET"`)
* `EXTERNAL_WALLET` (value: `"EXTERNAL_WALLET"`)
diff --git a/docs/TransferRail.md b/docs/TransferRail.md
index b46f6fc2..7a2f3bc6 100644
--- a/docs/TransferRail.md
+++ b/docs/TransferRail.md
@@ -9,8 +9,6 @@
* `INTERNAL` (value: `"INTERNAL"`)
-* `PEER` (value: `"PEER"`)
-
* `SWIFT` (value: `"SWIFT"`)
* `IBAN` (value: `"IBAN"`)
@@ -25,17 +23,17 @@
* `PIX` (value: `"PIX"`)
-* `LOCAL_BANK_TRANSFER_AFRICA` (value: `"LOCAL_BANK_TRANSFER_AFRICA"`)
-
-* `MOBILE_MONEY` (value: `"MOBILE_MONEY"`)
+* `LBT` (value: `"LBT"`)
-* `INTERNAL_TRANSFER` (value: `"INTERNAL_TRANSFER"`)
+* `MOMO` (value: `"MOMO"`)
-* `INTERAC` (value: `"INTERAC"`)
+* `CHAPS` (value: `"CHAPS"`)
* `PAYID` (value: `"PAYID"`)
-* `CHAPS` (value: `"CHAPS"`)
+* `INTERAC` (value: `"INTERAC"`)
+
+* `INTERNAL_TRANSFER` (value: `"INTERNAL_TRANSFER"`)
diff --git a/docs/UtxoIdentifier.md b/docs/UtxoIdentifier.md
new file mode 100644
index 00000000..0348b1d3
--- /dev/null
+++ b/docs/UtxoIdentifier.md
@@ -0,0 +1,16 @@
+
+
+# UtxoIdentifier
+
+Identifies a UTXO by either a Fireblocks transaction ID (targets all outputs of that transaction) or a specific on-chain UTXO (txHash + vout). Exactly one of these two forms must be provided.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**txId** | **String** | Fireblocks transaction ID | [optional] |
+|**txHash** | **String** | On-chain transaction hash | [optional] |
+|**vout** | **Integer** | Output index | [optional] |
+
+
+
diff --git a/docs/UtxoInput.md b/docs/UtxoInput.md
new file mode 100644
index 00000000..52e11066
--- /dev/null
+++ b/docs/UtxoInput.md
@@ -0,0 +1,14 @@
+
+
+# UtxoInput
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**txHash** | **String** | | |
+|**vout** | **Integer** | | |
+
+
+
diff --git a/docs/UtxoInput2.md b/docs/UtxoInput2.md
new file mode 100644
index 00000000..0dacc7ab
--- /dev/null
+++ b/docs/UtxoInput2.md
@@ -0,0 +1,14 @@
+
+
+# UtxoInput2
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**txHash** | **String** | The transaction hash | [optional] |
+|**index** | **Integer** | The output index (vout) | [optional] |
+
+
+
diff --git a/docs/UtxoInputSelection.md b/docs/UtxoInputSelection.md
new file mode 100644
index 00000000..d93c6832
--- /dev/null
+++ b/docs/UtxoInputSelection.md
@@ -0,0 +1,16 @@
+
+
+# UtxoInputSelection
+
+Explicitly control which UTXOs to include or exclude. This feature is currently in beta and might be subject to changes.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**inputsToSpend** | [**List<UtxoInput>**](UtxoInput.md) | Force-include specific UTXOs by txHash and vout. | [optional] |
+|**inputsToExclude** | [**List<UtxoInput>**](UtxoInput.md) | Exclude specific UTXOs from selection. | [optional] |
+|**fillFeeForSelectedInputs** | **Boolean** | When true and inputsToSpend is provided, automatically add more UTXOs to cover the transaction fee. Requires inputsToSpend. | [optional] |
+
+
+
diff --git a/docs/UtxoManagementBetaApi.md b/docs/UtxoManagementBetaApi.md
new file mode 100644
index 00000000..4a3aeb8b
--- /dev/null
+++ b/docs/UtxoManagementBetaApi.md
@@ -0,0 +1,210 @@
+# UtxoManagementBetaApi
+
+All URIs are relative to https://developers.fireblocks.com/reference/
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**getUtxos**](UtxoManagementBetaApi.md#getUtxos) | **GET** /utxo_management/{vaultAccountId}/{assetId}/unspent_outputs | List unspent outputs (UTXOs) |
+| [**updateUtxoLabels**](UtxoManagementBetaApi.md#updateUtxoLabels) | **PATCH** /utxo_management/{vaultAccountId}/{assetId}/labels | Attach or detach labels to/from UTXOs |
+
+
+
+## getUtxos
+
+> CompletableFuture> getUtxos getUtxos(vaultAccountId, assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels, excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange, useCoinbase)
+
+List unspent outputs (UTXOs)
+
+Returns a paginated list of unspent transaction outputs (UTXOs) for a UTXO-based asset in a vault account, with optional filters for labels, statuses, amounts, and more. **Note:** These endpoints are currently in beta and might be subject to changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.UtxoManagementBetaApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String vaultAccountId = "vaultAccountId_example"; // String | The ID of the vault account
+ String assetId = "assetId_example"; // String | The ID of the asset
+ String pageCursor = "MjAyNS0wNy0wOSAxMDo1MzoxMy40NTI=:NA=="; // String | Cursor for the next page of results
+ Integer pageSize = 50; // Integer | Number of results per page (max 250, default 50)
+ String sort = "AMOUNT"; // String | Field to sort by
+ String order = "ASC"; // String | Sort order
+ List includeAllLabels = Arrays.asList(); // List | Only return UTXOs that have ALL of these labels (AND logic).
+ List includeAnyLabels = Arrays.asList(); // List | Return UTXOs that have ANY of these labels (OR logic).
+ List excludeAnyLabels = Arrays.asList(); // List | Exclude UTXOs that have ANY of these labels.
+ List includeStatuses = Arrays.asList(); // List | Filter by UTXO statuses to include.
+ String address = "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"; // String | Filter by address
+ String minAmount = "0.001"; // String | Minimum amount filter
+ String maxAmount = "1.0"; // String | Maximum amount filter
+ Boolean useChange = true; // Boolean | Include change outputs
+ Boolean useCoinbase = true; // Boolean | Include coinbase outputs
+ try {
+ CompletableFuture> response = fireblocks.utxoManagementBeta().getUtxos(vaultAccountId, assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels, excludeAnyLabels, includeStatuses, address, minAmount, maxAmount, useChange, useCoinbase);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling UtxoManagementBetaApi#getUtxos");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling UtxoManagementBetaApi#getUtxos");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **vaultAccountId** | **String**| The ID of the vault account | |
+| **assetId** | **String**| The ID of the asset | |
+| **pageCursor** | **String**| Cursor for the next page of results | [optional] |
+| **pageSize** | **Integer**| Number of results per page (max 250, default 50) | [optional] [default to 50] |
+| **sort** | **String**| Field to sort by | [optional] [enum: AMOUNT, CONFIRMATIONS] |
+| **order** | **String**| Sort order | [optional] [enum: ASC, DESC] |
+| **includeAllLabels** | [**List<String>**](String.md)| Only return UTXOs that have ALL of these labels (AND logic). | [optional] |
+| **includeAnyLabels** | [**List<String>**](String.md)| Return UTXOs that have ANY of these labels (OR logic). | [optional] |
+| **excludeAnyLabels** | [**List<String>**](String.md)| Exclude UTXOs that have ANY of these labels. | [optional] |
+| **includeStatuses** | [**List<String>**](String.md)| Filter by UTXO statuses to include. | [optional] |
+| **address** | **String**| Filter by address | [optional] |
+| **minAmount** | **String**| Minimum amount filter | [optional] |
+| **maxAmount** | **String**| Maximum amount filter | [optional] |
+| **useChange** | **Boolean**| Include change outputs | [optional] |
+| **useCoinbase** | **Boolean**| Include coinbase outputs | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | A paginated list of UTXOs | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## updateUtxoLabels
+
+> CompletableFuture> updateUtxoLabels updateUtxoLabels(attachDetachUtxoLabelsRequest, vaultAccountId, assetId, idempotencyKey)
+
+Attach or detach labels to/from UTXOs
+
+Attach or detach labels to/from UTXOs in a vault account. Labels can be used for organizing and filtering UTXOs. Labels are applied additively — `labelsToAttach` adds to the existing label set and `labelsToDetach` removes from it. Neither operation replaces the full set. **Note:** These endpoints are currently in beta and might be subject to changes. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.UtxoManagementBetaApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ AttachDetachUtxoLabelsRequest attachDetachUtxoLabelsRequest = new AttachDetachUtxoLabelsRequest(); // AttachDetachUtxoLabelsRequest |
+ String vaultAccountId = "vaultAccountId_example"; // String | The ID of the vault account
+ String assetId = "assetId_example"; // String | The ID of the asset
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ try {
+ CompletableFuture> response = fireblocks.utxoManagementBeta().updateUtxoLabels(attachDetachUtxoLabelsRequest, vaultAccountId, assetId, idempotencyKey);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling UtxoManagementBetaApi#updateUtxoLabels");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling UtxoManagementBetaApi#updateUtxoLabels");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **attachDetachUtxoLabelsRequest** | [**AttachDetachUtxoLabelsRequest**](AttachDetachUtxoLabelsRequest.md)| | |
+| **vaultAccountId** | **String**| The ID of the vault account | |
+| **assetId** | **String**| The ID of the asset | |
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | UTXOs with updated labels | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
diff --git a/docs/UtxoOutput.md b/docs/UtxoOutput.md
new file mode 100644
index 00000000..6b1950d2
--- /dev/null
+++ b/docs/UtxoOutput.md
@@ -0,0 +1,38 @@
+
+
+# UtxoOutput
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**input** | [**UtxoInput2**](UtxoInput2.md) | | |
+|**utxoId** | **String** | The unique UTXO identifier | |
+|**address** | **String** | The address holding this UTXO | |
+|**amount** | **String** | The UTXO amount in the asset's native unit | |
+|**confirmations** | **Integer** | Number of confirmations | [optional] |
+|**status** | [**StatusEnum**](#StatusEnum) | The UTXO status | |
+|**isChange** | **Boolean** | Whether this is a change output | [optional] |
+|**isCoinbase** | **Boolean** | Whether this is a coinbase output | [optional] |
+|**fbTxId** | **String** | The Fireblocks transaction ID that created this UTXO | [optional] |
+|**createdByHash** | **String** | The on-chain block hash where this UTXO was created | [optional] |
+|**spentByFbTxId** | **List<String>** | Fireblocks transaction IDs that selected/spent this UTXO | [optional] |
+|**createdByHeight** | **Integer** | The block height at which this UTXO was created | [optional] |
+|**createdAt** | **OffsetDateTime** | The timestamp when this UTXO was created | [optional] |
+|**updatedAt** | **OffsetDateTime** | The timestamp when this UTXO was last updated | [optional] |
+|**labels** | **List<String>** | Labels attached to this UTXO | [optional] |
+
+
+
+## Enum: StatusEnum
+
+| Name | Value |
+|---- | -----|
+| PENDING | "PENDING" |
+| AVAILABLE | "AVAILABLE" |
+| FROZEN | "FROZEN" |
+| SELECTED | "SELECTED" |
+
+
+
diff --git a/docs/UtxoSelectionFilters.md b/docs/UtxoSelectionFilters.md
new file mode 100644
index 00000000..91f01dd8
--- /dev/null
+++ b/docs/UtxoSelectionFilters.md
@@ -0,0 +1,21 @@
+
+
+# UtxoSelectionFilters
+
+Narrow the UTXO candidate pool. All specified filters are AND-ed together. This feature is currently in beta and might be subject to changes.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**includeAllLabels** | **List<String>** | Only include UTXOs that have ALL of these labels. | [optional] |
+|**includeAnyLabels** | **List<String>** | Only include UTXOs that have at least one of these labels. | [optional] |
+|**excludeAnyLabels** | **List<String>** | Exclude UTXOs that have any of these labels. | [optional] |
+|**address** | **String** | Only include UTXOs from this specific address. | [optional] |
+|**minAmount** | **String** | Minimum UTXO amount in the asset's base unit (e.g., BTC). | [optional] |
+|**maxAmount** | **String** | Maximum UTXO amount in the asset's base unit (e.g., BTC). | [optional] |
+|**useChange** | **Boolean** | Set to false to exclude change UTXOs. Default is true. | [optional] |
+|**useCoinbase** | **Boolean** | Set to false to exclude coinbase UTXOs. Default is true. | [optional] |
+
+
+
diff --git a/docs/UtxoSelectionParams.md b/docs/UtxoSelectionParams.md
new file mode 100644
index 00000000..4f35778e
--- /dev/null
+++ b/docs/UtxoSelectionParams.md
@@ -0,0 +1,15 @@
+
+
+# UtxoSelectionParams
+
+For UTXO-based blockchains only. Controls which UTXOs are used for automatic selection. Cannot be used together with extraParameters.inputsSelection. This feature is currently in beta and might be subject to changes.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**filters** | [**UtxoSelectionFilters**](UtxoSelectionFilters.md) | | [optional] |
+|**inputSelection** | [**UtxoInputSelection**](UtxoInputSelection.md) | | [optional] |
+
+
+
diff --git a/docs/WebhooksV2Api.md b/docs/WebhooksV2Api.md
index 99b682b4..52958ab4 100644
--- a/docs/WebhooksV2Api.md
+++ b/docs/WebhooksV2Api.md
@@ -10,11 +10,13 @@ All URIs are relative to https://developers.fireblocks.com/reference/
| [**getNotification**](WebhooksV2Api.md#getNotification) | **GET** /webhooks/{webhookId}/notifications/{notificationId} | Get notification by id |
| [**getNotificationAttempts**](WebhooksV2Api.md#getNotificationAttempts) | **GET** /webhooks/{webhookId}/notifications/{notificationId}/attempts | Get notification attempts |
| [**getNotifications**](WebhooksV2Api.md#getNotifications) | **GET** /webhooks/{webhookId}/notifications | Get all notifications by webhook id |
+| [**getResendByQueryJobStatus**](WebhooksV2Api.md#getResendByQueryJobStatus) | **GET** /webhooks/{webhookId}/notifications/resend_by_query/jobs/{jobId} | Get resend by query job status |
| [**getResendJobStatus**](WebhooksV2Api.md#getResendJobStatus) | **GET** /webhooks/{webhookId}/notifications/resend_failed/jobs/{jobId} | Get resend job status |
| [**getWebhook**](WebhooksV2Api.md#getWebhook) | **GET** /webhooks/{webhookId} | Get webhook by id |
| [**getWebhooks**](WebhooksV2Api.md#getWebhooks) | **GET** /webhooks | Get all webhooks |
| [**resendFailedNotifications**](WebhooksV2Api.md#resendFailedNotifications) | **POST** /webhooks/{webhookId}/notifications/resend_failed | Resend failed notifications |
| [**resendNotificationById**](WebhooksV2Api.md#resendNotificationById) | **POST** /webhooks/{webhookId}/notifications/{notificationId}/resend | Resend notification by id |
+| [**resendNotificationsByQuery**](WebhooksV2Api.md#resendNotificationsByQuery) | **POST** /webhooks/{webhookId}/notifications/resend_by_query | Resend notifications by query |
| [**resendNotificationsByResourceId**](WebhooksV2Api.md#resendNotificationsByResourceId) | **POST** /webhooks/{webhookId}/notifications/resend_by_resource | Resend notifications by resource Id |
| [**updateWebhook**](WebhooksV2Api.md#updateWebhook) | **PATCH** /webhooks/{webhookId} | Update webhook |
@@ -550,6 +552,91 @@ No authorization required
| **0** | Error Response | * X-Request-ID -
|
+## getResendByQueryJobStatus
+
+> CompletableFuture> getResendByQueryJobStatus getResendByQueryJobStatus(webhookId, jobId)
+
+Get resend by query job status
+
+Get the status of a resend by query job
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.WebhooksV2Api;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String webhookId = "webhookId_example"; // String | The ID of the webhook
+ String jobId = "jobId_example"; // String | The ID of the resend job
+ try {
+ CompletableFuture> response = fireblocks.webhooksV2().getResendByQueryJobStatus(webhookId, jobId);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling WebhooksV2Api#getResendByQueryJobStatus");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling WebhooksV2Api#getResendByQueryJobStatus");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **webhookId** | **String**| The ID of the webhook | |
+| **jobId** | **String**| The ID of the resend job | |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Job status | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
## getResendJobStatus
> CompletableFuture> getResendJobStatus getResendJobStatus(webhookId, jobId)
@@ -979,6 +1066,94 @@ No authorization required
| **0** | Error Response | * X-Request-ID -
|
+## resendNotificationsByQuery
+
+> CompletableFuture> resendNotificationsByQuery resendNotificationsByQuery(resendByQueryRequest, webhookId, idempotencyKey)
+
+Resend notifications by query
+
+Resend notifications matching the given query filters (statuses, events, time range, resource ID) Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.WebhooksV2Api;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ ResendByQueryRequest resendByQueryRequest = new ResendByQueryRequest(); // ResendByQueryRequest |
+ String webhookId = "webhookId_example"; // String | The ID of the webhook
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ try {
+ CompletableFuture> response = fireblocks.webhooksV2().resendNotificationsByQuery(resendByQueryRequest, webhookId, idempotencyKey);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling WebhooksV2Api#resendNotificationsByQuery");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling WebhooksV2Api#resendNotificationsByQuery");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **resendByQueryRequest** | [**ResendByQueryRequest**](ResendByQueryRequest.md)| | |
+| **webhookId** | **String**| The ID of the webhook | |
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | No matching notifications to resend | * X-Request-ID -
|
+| **202** | Resend notifications request was accepted and is being processed | * X-Request-ID -
* Location -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
## resendNotificationsByResourceId
> CompletableFuture> resendNotificationsByResourceId resendNotificationsByResourceId(resendNotificationsByResourceIdRequest, webhookId, idempotencyKey)
diff --git a/pom.xml b/pom.xml
index 92337fdf..89176ce6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
fireblocks-sdk
jar
fireblocks-sdk
- 16.0.0
+ 0.0.0
https://github.com/fireblocks/java-sdk
The Fireblocks Official SDK is a comprehensive software development kit that enables seamless integration and interaction with the Fireblocks platform. Fireblocks is a cutting-edge blockchain infrastructure platform that provides secure and scalable solutions for managing digital assets and transactions.
This SDK empowers developers to build robust applications that can interact with the Fireblocks platform's features, including creating and managing vault accounts, initiating secure transactions, managing assets, and more. It abstracts complex interactions with the Fireblocks API, making it easier for developers to leverage the platform's capabilities while adhering to best practices in security and efficiency.
diff --git a/src/main/java/com/fireblocks/sdk/Configuration.java b/src/main/java/com/fireblocks/sdk/Configuration.java
index a32388f9..aa53bae8 100644
--- a/src/main/java/com/fireblocks/sdk/Configuration.java
+++ b/src/main/java/com/fireblocks/sdk/Configuration.java
@@ -21,7 +21,7 @@
value = "org.openapitools.codegen.languages.JavaClientCodegen",
comments = "Generator version: 7.14.0")
public class Configuration {
- public static final String VERSION = "16.0.0";
+ public static final String VERSION = "0.0.0";
private static final AtomicReference defaultApiClient = new AtomicReference<>();
private static volatile Supplier apiClientFactory = ApiClient::new;
diff --git a/src/main/java/com/fireblocks/sdk/Fireblocks.java b/src/main/java/com/fireblocks/sdk/Fireblocks.java
index b7d8ab63..df1aef7e 100644
--- a/src/main/java/com/fireblocks/sdk/Fireblocks.java
+++ b/src/main/java/com/fireblocks/sdk/Fireblocks.java
@@ -48,6 +48,7 @@ public class Fireblocks {
private ContractsApi contracts;
private CosignersBetaApi cosignersBeta;
private DeployedContractsApi deployedContracts;
+ private EarnBetaApi earnBeta;
private EmbeddedWalletsApi embeddedWallets;
private ExchangeAccountsApi exchangeAccounts;
private ExternalWalletsApi externalWallets;
@@ -75,6 +76,7 @@ public class Fireblocks {
private TravelRuleApi travelRule;
private UserGroupsBetaApi userGroupsBeta;
private UsersApi users;
+ private UtxoManagementBetaApi utxoManagementBeta;
private VaultsApi vaults;
private Web3ConnectionsApi web3Connections;
private WebhooksApi webhooks;
@@ -305,6 +307,13 @@ public DeployedContractsApi deployedContracts() {
return deployedContracts;
}
+ public EarnBetaApi earnBeta() {
+ if (earnBeta == null) {
+ earnBeta = new EarnBetaApi(apiClient);
+ }
+ return earnBeta;
+ }
+
public EmbeddedWalletsApi embeddedWallets() {
if (embeddedWallets == null) {
embeddedWallets = new EmbeddedWalletsApi(apiClient);
@@ -494,6 +503,13 @@ public UsersApi users() {
return users;
}
+ public UtxoManagementBetaApi utxoManagementBeta() {
+ if (utxoManagementBeta == null) {
+ utxoManagementBeta = new UtxoManagementBetaApi(apiClient);
+ }
+ return utxoManagementBeta;
+ }
+
public VaultsApi vaults() {
if (vaults == null) {
vaults = new VaultsApi(apiClient);
diff --git a/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java
index c2dc9d01..f69a6d85 100644
--- a/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java
+++ b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java
@@ -24,7 +24,6 @@
import com.fireblocks.sdk.model.AddressRegistryAddVaultOptOutsResponse;
import com.fireblocks.sdk.model.AddressRegistryGetVaultOptOutResponse;
import com.fireblocks.sdk.model.AddressRegistryLegalEntity;
-import com.fireblocks.sdk.model.AddressRegistryLegalEntityLegacy;
import com.fireblocks.sdk.model.AddressRegistryListVaultOptOutsResponse;
import com.fireblocks.sdk.model.AddressRegistryRemoveAllVaultOptOutsResponse;
import com.fireblocks.sdk.model.AddressRegistryRemoveVaultOptOutResponse;
@@ -34,8 +33,13 @@
import com.fireblocks.sdk.model.AmlVerdictManualResponse;
import com.fireblocks.sdk.model.AssignVaultsToLegalEntityRequest;
import com.fireblocks.sdk.model.AssignVaultsToLegalEntityResponse;
+import com.fireblocks.sdk.model.ByorkConfigResponse;
+import com.fireblocks.sdk.model.ByorkSetTimeoutsRequest;
+import com.fireblocks.sdk.model.ByorkVerdictRequest;
+import com.fireblocks.sdk.model.ByorkVerdictResponse;
import com.fireblocks.sdk.model.ComplianceResultFullPayload;
import com.fireblocks.sdk.model.CreateTransactionResponse;
+import com.fireblocks.sdk.model.GetByorkVerdictResponse;
import com.fireblocks.sdk.model.LegalEntityRegistration;
import com.fireblocks.sdk.model.ListLegalEntitiesResponse;
import com.fireblocks.sdk.model.ListVaultsForRegistrationResponse;
@@ -99,6 +103,78 @@ private String formatExceptionMessage(String operationId, int statusCode, String
return operationId + " call failed with: " + statusCode + " - " + body;
}
+ /**
+ * Activate BYORK Light Activates BYORK Light for the authenticated tenant (sets config.active
+ * to true). Once activated, BYORK screening applies to matching transactions. Requires BYORK
+ * Light to be enabled for the tenant (contact your CSM to enable).
+ *
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<ByorkConfigResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> activateByorkConfig(
+ String idempotencyKey) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ activateByorkConfigRequestBuilder(idempotencyKey);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "activateByorkConfig", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ ByorkConfigResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder activateByorkConfigRequestBuilder(String idempotencyKey)
+ throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/screening/byork/config/activate";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
/**
* Add vault accounts to the address registry opt-out list Adds one or more vault account ids to
* the workspace opt-out list for the address registry.
@@ -288,6 +364,78 @@ private HttpRequest.Builder assignVaultsToLegalEntityRequestBuilder(
}
return localVarRequestBuilder;
}
+ /**
+ * Deactivate BYORK Light Deactivates BYORK Light for the authenticated tenant (sets
+ * config.active to false). Once deactivated, BYORK screening no longer applies until activated
+ * again. Requires BYORK Light to be enabled for the tenant (contact your CSM to enable).
+ *
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<ByorkConfigResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> deactivateByorkConfig(
+ String idempotencyKey) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ deactivateByorkConfigRequestBuilder(idempotencyKey);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "deactivateByorkConfig", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ ByorkConfigResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder deactivateByorkConfigRequestBuilder(String idempotencyKey)
+ throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/screening/byork/config/deactivate";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
/**
* Get address registry participation status for the authenticated workspace Returns whether the
* workspace is `OPTED_IN` or `OPTED_OUT` of the address registry.
@@ -555,19 +703,17 @@ private HttpRequest.Builder getAmlScreeningPolicyRequestBuilder() throws ApiExce
return localVarRequestBuilder;
}
/**
- * Get a legal entity Returns details of a specific legal entity registration, including GLEIF
- * data when available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer,
- * Approver, Editor, Viewer.
+ * Get BYORK Light configuration Retrieves BYORK Light configuration for the authenticated
+ * tenant (timeouts, active flag, allowed timeout ranges). Returns default config when none
+ * exists. Requires BYORK Light to be enabled for the tenant.
*
- * @param legalEntityId The unique ID of the legal entity registration (required)
- * @return CompletableFuture<ApiResponse<LegalEntityRegistration>>
+ * @return CompletableFuture<ApiResponse<ByorkConfigResponse>>
* @throws ApiException if fails to make API call
*/
- public CompletableFuture> getLegalEntity(
- UUID legalEntityId) throws ApiException {
+ public CompletableFuture> getByorkConfig()
+ throws ApiException {
try {
- HttpRequest.Builder localVarRequestBuilder =
- getLegalEntityRequestBuilder(legalEntityId);
+ HttpRequest.Builder localVarRequestBuilder = getByorkConfigRequestBuilder();
return memberVarHttpClient
.sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
.thenComposeAsync(
@@ -577,12 +723,12 @@ public CompletableFuture> getLegalEntity(
}
if (localVarResponse.statusCode() / 100 != 2) {
return CompletableFuture.failedFuture(
- getApiException("getLegalEntity", localVarResponse));
+ getApiException("getByorkConfig", localVarResponse));
}
try {
String responseBody = localVarResponse.body();
return CompletableFuture.completedFuture(
- new ApiResponse(
+ new ApiResponse(
localVarResponse.statusCode(),
localVarResponse.headers().map(),
responseBody == null || responseBody.isBlank()
@@ -590,7 +736,7 @@ public CompletableFuture> getLegalEntity(
: memberVarObjectMapper.readValue(
responseBody,
new TypeReference<
- LegalEntityRegistration>() {})));
+ ByorkConfigResponse>() {})));
} catch (IOException e) {
return CompletableFuture.failedFuture(new ApiException(e));
}
@@ -600,16 +746,11 @@ public CompletableFuture> getLegalEntity(
}
}
- private HttpRequest.Builder getLegalEntityRequestBuilder(UUID legalEntityId)
- throws ApiException {
- ValidationUtils.assertParamExistsAndNotEmpty(
- "getLegalEntity", "legalEntityId", legalEntityId.toString());
+ private HttpRequest.Builder getByorkConfigRequestBuilder() throws ApiException {
HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
- String localVarPath =
- "/legal_entities/{legalEntityId}"
- .replace("{legalEntityId}", ApiClient.urlEncode(legalEntityId.toString()));
+ String localVarPath = "/screening/byork/config";
localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
@@ -625,25 +766,19 @@ private HttpRequest.Builder getLegalEntityRequestBuilder(UUID legalEntityId)
return localVarRequestBuilder;
}
/**
- * [Deprecated] Look up legal entity by address (query parameter) **Deprecated** — use `GET
- * /v1/address_registry/legal_entities/{address}` instead. Here `address` is a
- * **query** parameter; the replacement uses a path segment. The response includes only
- * `companyName`, `countryCode`, and `companyId`. The replacement
- * returns additional fields documented on that operation. Optional **`asset`** is
- * supported here only (not on the replacement path).
+ * Get BYORK Light verdict Returns the current BYORK verdict and status for a transaction.
+ * Status can be PRE_ACCEPTED, PENDING, RECEIVED (verdict is final but processing not yet
+ * complete), or COMPLETED. Requires BYORK Light to be enabled for the tenant. Returns 404 if no
+ * BYORK verdict is found for the transaction.
*
- * @param address Blockchain address to look up (required)
- * @param asset Optional asset identifier (this deprecated operation only). (optional)
- * @return CompletableFuture<ApiResponse<AddressRegistryLegalEntityLegacy>>
+ * @param txId Transaction ID (required)
+ * @return CompletableFuture<ApiResponse<GetByorkVerdictResponse>>
* @throws ApiException if fails to make API call
- * @deprecated
*/
- @Deprecated
- public CompletableFuture> getLegalEntityByAddress(
- String address, String asset) throws ApiException {
+ public CompletableFuture> getByorkVerdict(String txId)
+ throws ApiException {
try {
- HttpRequest.Builder localVarRequestBuilder =
- getLegalEntityByAddressRequestBuilder(address, asset);
+ HttpRequest.Builder localVarRequestBuilder = getByorkVerdictRequestBuilder(txId);
return memberVarHttpClient
.sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
.thenComposeAsync(
@@ -653,13 +788,12 @@ public CompletableFuture> getLegal
}
if (localVarResponse.statusCode() / 100 != 2) {
return CompletableFuture.failedFuture(
- getApiException(
- "getLegalEntityByAddress", localVarResponse));
+ getApiException("getByorkVerdict", localVarResponse));
}
try {
String responseBody = localVarResponse.body();
return CompletableFuture.completedFuture(
- new ApiResponse(
+ new ApiResponse(
localVarResponse.statusCode(),
localVarResponse.headers().map(),
responseBody == null || responseBody.isBlank()
@@ -667,7 +801,7 @@ public CompletableFuture> getLegal
: memberVarObjectMapper.readValue(
responseBody,
new TypeReference<
- AddressRegistryLegalEntityLegacy>() {})));
+ GetByorkVerdictResponse>() {})));
} catch (IOException e) {
return CompletableFuture.failedFuture(new ApiException(e));
}
@@ -677,21 +811,18 @@ public CompletableFuture> getLegal
}
}
- private HttpRequest.Builder getLegalEntityByAddressRequestBuilder(String address, String asset)
- throws ApiException {
- ValidationUtils.assertParamExistsAndNotEmpty("getLegalEntityByAddress", "address", address);
+ private HttpRequest.Builder getByorkVerdictRequestBuilder(String txId) throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty("getByorkVerdict", "txId", txId);
HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
- String localVarPath = "/address_registry/legal_entity";
+ String localVarPath = "/screening/byork/verdict";
List localVarQueryParams = new ArrayList<>();
StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
String localVarQueryParameterBaseName;
- localVarQueryParameterBaseName = "address";
- localVarQueryParams.addAll(ApiClient.parameterToPairs("address", address));
- localVarQueryParameterBaseName = "asset";
- localVarQueryParams.addAll(ApiClient.parameterToPairs("asset", asset));
+ localVarQueryParameterBaseName = "txId";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("txId", txId));
if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
StringJoiner queryJoiner = new StringJoiner("&");
@@ -716,13 +847,80 @@ private HttpRequest.Builder getLegalEntityByAddressRequestBuilder(String address
}
return localVarRequestBuilder;
}
+ /**
+ * Get a legal entity Returns details of a specific legal entity registration, including GLEIF
+ * data when available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer,
+ * Approver, Editor, Viewer.
+ *
+ * @param legalEntityId The unique ID of the legal entity registration (required)
+ * @return CompletableFuture<ApiResponse<LegalEntityRegistration>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getLegalEntity(
+ UUID legalEntityId) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getLegalEntityRequestBuilder(legalEntityId);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("getLegalEntity", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ LegalEntityRegistration>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getLegalEntityRequestBuilder(UUID legalEntityId)
+ throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "getLegalEntity", "legalEntityId", legalEntityId.toString());
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/legal_entities/{legalEntityId}"
+ .replace("{legalEntityId}", ApiClient.urlEncode(legalEntityId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
/**
* Look up legal entity by blockchain address Returns legal entity information for the given
- * blockchain address. URL-encode `{address}` when required. Prefer this operation
- * over the deprecated `GET /v1/address_registry/legal_entity?address=…`, which
- * returns only `companyName`, `countryCode`, and `companyId`.
- * This operation adds verification status, LEI, Travel Rule providers, and contact email (see
- * response properties).
+ * blockchain address (verification status, LEI, Travel Rule providers, contact email, and
+ * related fields — see response schema). URL-encode `{address}` when required.
*
* @param address Blockchain address to look up (required)
* @return CompletableFuture<ApiResponse<AddressRegistryLegalEntity>>
@@ -1097,20 +1295,14 @@ private HttpRequest.Builder listAddressRegistryVaultOptOutsRequestBuilder(
* previous response. Ignored when `vaultAccountId` is provided. (optional)
* @param pageSize Maximum number of registrations to return. Ignored when
* `vaultAccountId` is provided. (optional, default to 50)
- * @param sortBy Field to sort results by. Ignored when `vaultAccountId` is provided.
- * (optional)
- * @param order Sort order. Ignored when `vaultAccountId` is provided. (optional,
- * default to DESC)
* @return CompletableFuture<ApiResponse<ListLegalEntitiesResponse>>
* @throws ApiException if fails to make API call
*/
public CompletableFuture> listLegalEntities(
- String vaultAccountId, String pageCursor, Integer pageSize, String sortBy, String order)
- throws ApiException {
+ String vaultAccountId, String pageCursor, Integer pageSize) throws ApiException {
try {
HttpRequest.Builder localVarRequestBuilder =
- listLegalEntitiesRequestBuilder(
- vaultAccountId, pageCursor, pageSize, sortBy, order);
+ listLegalEntitiesRequestBuilder(vaultAccountId, pageCursor, pageSize);
return memberVarHttpClient
.sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
.thenComposeAsync(
@@ -1144,8 +1336,7 @@ public CompletableFuture> listLegalEntiti
}
private HttpRequest.Builder listLegalEntitiesRequestBuilder(
- String vaultAccountId, String pageCursor, Integer pageSize, String sortBy, String order)
- throws ApiException {
+ String vaultAccountId, String pageCursor, Integer pageSize) throws ApiException {
HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
@@ -1160,10 +1351,6 @@ private HttpRequest.Builder listLegalEntitiesRequestBuilder(
localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor));
localVarQueryParameterBaseName = "pageSize";
localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize));
- localVarQueryParameterBaseName = "sortBy";
- localVarQueryParams.addAll(ApiClient.parameterToPairs("sortBy", sortBy));
- localVarQueryParameterBaseName = "order";
- localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order));
if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
StringJoiner queryJoiner = new StringJoiner("&");
@@ -1728,8 +1915,10 @@ private HttpRequest.Builder retryRejectedTransactionBypassScreeningChecksRequest
return localVarRequestBuilder;
}
/**
- * Set AML Verdict for Manual Screening Verdict. Set AML verdict for incoming transactions when
- * Manual Screening Verdict feature is enabled.
+ * Set AML Verdict (BYORK Super Light) Set AML verdict for incoming transactions when **BYORK
+ * Super Light** (Manual Screening Verdict) is enabled. This endpoint is for Super Light only.
+ * For **BYORK Light**, use POST /screening/byork/verdict instead. When Super Light is retired,
+ * this endpoint will be deprecated; use the BYORK Light verdict API for new integrations.
*
* @param amlVerdictManualRequest (required)
* @param idempotencyKey A unique identifier for the request. If the request is sent multiple
@@ -1810,6 +1999,175 @@ private HttpRequest.Builder setAmlVerdictRequestBuilder(
}
return localVarRequestBuilder;
}
+ /**
+ * Set BYORK Light timeouts Updates timeout values for BYORK wait-for-response (incoming and/or
+ * outgoing). At least one of incomingTimeoutSeconds or outgoingTimeoutSeconds is required.
+ * Values must be within the ranges returned in GET config (timeoutRangeIncoming for
+ * incomingTimeoutSeconds, timeoutRangeOutgoing for outgoingTimeoutSeconds). Requires BYORK
+ * Light to be enabled for the tenant (contact your CSM to enable).
+ *
+ * @param byorkSetTimeoutsRequest (required)
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<ByorkConfigResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> setByorkTimeouts(
+ ByorkSetTimeoutsRequest byorkSetTimeoutsRequest, String idempotencyKey)
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ setByorkTimeoutsRequestBuilder(byorkSetTimeoutsRequest, idempotencyKey);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("setByorkTimeouts", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ ByorkConfigResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder setByorkTimeoutsRequestBuilder(
+ ByorkSetTimeoutsRequest byorkSetTimeoutsRequest, String idempotencyKey)
+ throws ApiException {
+ ValidationUtils.assertParamExists(
+ "setByorkTimeouts", "byorkSetTimeoutsRequest", byorkSetTimeoutsRequest);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/screening/byork/config/timeouts";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Content-Type", "application/json");
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ try {
+ byte[] localVarPostBody =
+ memberVarObjectMapper.writeValueAsBytes(byorkSetTimeoutsRequest);
+ localVarRequestBuilder.method(
+ "PUT", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
+ } catch (IOException e) {
+ throw new ApiException(e);
+ }
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Set BYORK Light verdict Submit verdict (ACCEPT or REJECT) for a transaction in the BYORK
+ * Light flow. If the transaction is awaiting your decision, the verdict is applied immediately
+ * (response status COMPLETED). If processing has not yet reached that point, the verdict is
+ * stored and applied when it does (response status PRE_ACCEPTED). Requires BYORK Light to be
+ * enabled for the tenant.
+ *
+ * @param byorkVerdictRequest (required)
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<ByorkVerdictResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> setByorkVerdict(
+ ByorkVerdictRequest byorkVerdictRequest, String idempotencyKey) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ setByorkVerdictRequestBuilder(byorkVerdictRequest, idempotencyKey);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("setByorkVerdict", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ ByorkVerdictResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder setByorkVerdictRequestBuilder(
+ ByorkVerdictRequest byorkVerdictRequest, String idempotencyKey) throws ApiException {
+ ValidationUtils.assertParamExists(
+ "setByorkVerdict", "byorkVerdictRequest", byorkVerdictRequest);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/screening/byork/verdict";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Content-Type", "application/json");
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ try {
+ byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(byorkVerdictRequest);
+ localVarRequestBuilder.method(
+ "POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
+ } catch (IOException e) {
+ throw new ApiException(e);
+ }
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
/**
* Update AML Configuration Updates bypass screening, inbound delay, or outbound delay
* configurations for AML.
diff --git a/src/main/java/com/fireblocks/sdk/api/EarnBetaApi.java b/src/main/java/com/fireblocks/sdk/api/EarnBetaApi.java
new file mode 100644
index 00000000..c7980f3f
--- /dev/null
+++ b/src/main/java/com/fireblocks/sdk/api/EarnBetaApi.java
@@ -0,0 +1,687 @@
+/*
+ * Fireblocks API
+ * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain. - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
+ *
+ * The version of the OpenAPI document: 1.6.2
+ * Contact: developers@fireblocks.com
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package com.fireblocks.sdk.api;
+
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.Pair;
+import com.fireblocks.sdk.ValidationUtils;
+import com.fireblocks.sdk.model.CreateEarnActionRequest;
+import com.fireblocks.sdk.model.CreateEarnActionResponse;
+import com.fireblocks.sdk.model.GetActionResponse;
+import com.fireblocks.sdk.model.GetActionsResponse;
+import com.fireblocks.sdk.model.GetOpportunitiesResponse;
+import com.fireblocks.sdk.model.GetPositionsResponse;
+import com.fireblocks.sdk.model.GetProvidersResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
+import java.net.http.HttpResponse;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringJoiner;
+import java.util.concurrent.CompletableFuture;
+import java.util.function.Consumer;
+
+@jakarta.annotation.Generated(
+ value = "org.openapitools.codegen.languages.JavaClientCodegen",
+ comments = "Generator version: 7.14.0")
+public class EarnBetaApi {
+ private final HttpClient memberVarHttpClient;
+ private final ObjectMapper memberVarObjectMapper;
+ private final String memberVarBaseUri;
+ private final Consumer memberVarInterceptor;
+ private final Duration memberVarReadTimeout;
+ private final Consumer> memberVarResponseInterceptor;
+ private final Consumer> memberVarAsyncResponseInterceptor;
+
+ public EarnBetaApi() {
+ this(new ApiClient());
+ }
+
+ public EarnBetaApi(ApiClient apiClient) {
+ memberVarHttpClient = apiClient.getHttpClient();
+ memberVarObjectMapper = apiClient.getObjectMapper();
+ memberVarBaseUri = apiClient.getBaseUri();
+ memberVarInterceptor = apiClient.getRequestInterceptor();
+ memberVarReadTimeout = apiClient.getReadTimeout();
+ memberVarResponseInterceptor = apiClient.getResponseInterceptor();
+ memberVarAsyncResponseInterceptor = apiClient.getAsyncResponseInterceptor();
+ }
+
+ private ApiException getApiException(String operationId, HttpResponse response) {
+ String message =
+ formatExceptionMessage(operationId, response.statusCode(), response.body());
+ return new ApiException(
+ response.statusCode(), message, response.headers(), response.body());
+ }
+
+ private String formatExceptionMessage(String operationId, int statusCode, String body) {
+ if (body == null || body.isEmpty()) {
+ body = "[no body]";
+ }
+ return operationId + " call failed with: " + statusCode + " - " + body;
+ }
+
+ /**
+ * Approve earn provider terms of service Approves the lending provider's terms of service
+ * for this workspace. When `isTermsApprovalRequired` is true on the provider (see
+ * list providers), call this once before creating or executing earn actions with that provider.
+ * After success, `GET /earn/providers` reflects `isTermsOfServiceApproved`.
+ * **Note:** This endpoint is currently in beta and might be subject to changes.
+ *
+ * @param providerId Stable protocol identifier for the earn provider (`MORPHO` or
+ * `AAVE`). (required)
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<Void>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> approveTermsOfService(
+ String providerId, String idempotencyKey) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ approveTermsOfServiceRequestBuilder(providerId, idempotencyKey);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "approveTermsOfService", localVarResponse));
+ }
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ null));
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder approveTermsOfServiceRequestBuilder(
+ String providerId, String idempotencyKey) throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "approveTermsOfService", "providerId", providerId);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/earn/providers/{providerId}/approve_terms_of_service"
+ .replace("{providerId}", ApiClient.urlEncode(providerId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Create and execute a lending action (deposit or withdraw) Creates and runs a sequence of
+ * on-chain steps for either a deposit into or a withdrawal from an earn vault/market. Specify
+ * the operation with `action` in the request body (`DEPOSIT` or
+ * `WITHDRAW`). **Note:** This endpoint is currently in beta and might be subject to
+ * changes.
+ *
+ * @param createEarnActionRequest (required)
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<CreateEarnActionResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> createEarnAction(
+ CreateEarnActionRequest createEarnActionRequest, String idempotencyKey)
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ createEarnActionRequestBuilder(createEarnActionRequest, idempotencyKey);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("createEarnAction", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ CreateEarnActionResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder createEarnActionRequestBuilder(
+ CreateEarnActionRequest createEarnActionRequest, String idempotencyKey)
+ throws ApiException {
+ ValidationUtils.assertParamExists(
+ "createEarnAction", "createEarnActionRequest", createEarnActionRequest);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/earn/actions";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Content-Type", "application/json");
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ try {
+ byte[] localVarPostBody =
+ memberVarObjectMapper.writeValueAsBytes(createEarnActionRequest);
+ localVarRequestBuilder.method(
+ "POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
+ } catch (IOException e) {
+ throw new ApiException(e);
+ }
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Get a single earn lending action Returns one lending action by its action sequence id
+ * (tenant-scoped). **Note:** This endpoint is currently in beta and might be subject to
+ * changes.
+ *
+ * @param id Action sequence id (UUID). (required)
+ * @return CompletableFuture<ApiResponse<GetActionResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getEarnAction(String id)
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder = getEarnActionRequestBuilder(id);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("getEarnAction", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ GetActionResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getEarnActionRequestBuilder(String id) throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty("getEarnAction", "id", id);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/earn/actions/{id}".replace("{id}", ApiClient.urlEncode(id.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * List earn lending actions Returns a paginated list of lending actions (deposits and
+ * withdrawals) for the authenticated tenant. **Note:** This endpoint is currently in beta and
+ * might be subject to changes.
+ *
+ * @param pageCursor Cursor for the next or previous page of results. (optional)
+ * @param pageSize Number of items per page (default 100, max 100). (optional, default to 100)
+ * @param sortBy Field to sort results by. (optional)
+ * @param order Sort order (ASC or DESC). (optional, default to DESC)
+ * @return CompletableFuture<ApiResponse<GetActionsResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getEarnActions(
+ String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getEarnActionsRequestBuilder(pageCursor, pageSize, sortBy, order);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("getEarnActions", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ GetActionsResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getEarnActionsRequestBuilder(
+ String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/earn/actions";
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "pageCursor";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor));
+ localVarQueryParameterBaseName = "pageSize";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize));
+ localVarQueryParameterBaseName = "sortBy";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("sortBy", sortBy));
+ localVarQueryParameterBaseName = "order";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order));
+
+ if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
+ StringJoiner queryJoiner = new StringJoiner("&");
+ localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
+ if (localVarQueryStringJoiner.length() != 0) {
+ queryJoiner.add(localVarQueryStringJoiner.toString());
+ }
+ localVarRequestBuilder.uri(
+ URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
+ } else {
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ }
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Get list of earn opportunities Get list of earn opportunities (vaults). **Note:** This
+ * endpoint is currently in beta and might be subject to changes.
+ *
+ * @param pageCursor Cursor for the next or previous page of results. (optional)
+ * @param pageSize Number of items per page. (optional, default to 100)
+ * @param sortBy Field to sort results by. (optional)
+ * @param order Sort order (ASC or DESC). (optional, default to DESC)
+ * @return CompletableFuture<ApiResponse<GetOpportunitiesResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getEarnOpportunities(
+ String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getEarnOpportunitiesRequestBuilder(pageCursor, pageSize, sortBy, order);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getEarnOpportunities", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ GetOpportunitiesResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getEarnOpportunitiesRequestBuilder(
+ String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/earn/opportunities";
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "pageCursor";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor));
+ localVarQueryParameterBaseName = "pageSize";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize));
+ localVarQueryParameterBaseName = "sortBy";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("sortBy", sortBy));
+ localVarQueryParameterBaseName = "order";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order));
+
+ if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
+ StringJoiner queryJoiner = new StringJoiner("&");
+ localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
+ if (localVarQueryStringJoiner.length() != 0) {
+ queryJoiner.add(localVarQueryStringJoiner.toString());
+ }
+ localVarRequestBuilder.uri(
+ URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
+ } else {
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ }
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Get list of earn positions Get list of earn positions for accounts tracked for this
+ * workspace. Optional query parameters filter by chain, provider, and pagination. **Note:**
+ * This endpoint is currently in beta and might be subject to changes.
+ *
+ * @param chainId (optional)
+ * @param providerId (optional)
+ * @param pageCursor Cursor for the next or previous page of results. (optional)
+ * @param pageSize Number of items per page. (optional, default to 100)
+ * @param sortBy Field to sort results by. (optional)
+ * @param order Sort order (ASC or DESC). (optional, default to DESC)
+ * @return CompletableFuture<ApiResponse<GetPositionsResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getEarnPositions(
+ Integer chainId,
+ String providerId,
+ String pageCursor,
+ Integer pageSize,
+ String sortBy,
+ String order)
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getEarnPositionsRequestBuilder(
+ chainId, providerId, pageCursor, pageSize, sortBy, order);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("getEarnPositions", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ GetPositionsResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getEarnPositionsRequestBuilder(
+ Integer chainId,
+ String providerId,
+ String pageCursor,
+ Integer pageSize,
+ String sortBy,
+ String order)
+ throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/earn/positions";
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "chainId";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("chainId", chainId));
+ localVarQueryParameterBaseName = "providerId";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("providerId", providerId));
+ localVarQueryParameterBaseName = "pageCursor";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor));
+ localVarQueryParameterBaseName = "pageSize";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize));
+ localVarQueryParameterBaseName = "sortBy";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("sortBy", sortBy));
+ localVarQueryParameterBaseName = "order";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order));
+
+ if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
+ StringJoiner queryJoiner = new StringJoiner("&");
+ localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
+ if (localVarQueryStringJoiner.length() != 0) {
+ queryJoiner.add(localVarQueryStringJoiner.toString());
+ }
+ localVarRequestBuilder.uri(
+ URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
+ } else {
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ }
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Get list of earn providers Get list of earn providers. **Note:** This endpoint is currently
+ * in beta and might be subject to changes.
+ *
+ * @param pageCursor Cursor for the next or previous page of results. (optional)
+ * @param pageSize Number of items per page. (optional, default to 100)
+ * @param sortBy Field to sort results by. (optional)
+ * @param order Sort order (ASC or DESC). (optional, default to DESC)
+ * @return CompletableFuture<ApiResponse<GetProvidersResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getEarnProviders(
+ String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getEarnProvidersRequestBuilder(pageCursor, pageSize, sortBy, order);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("getEarnProviders", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ GetProvidersResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getEarnProvidersRequestBuilder(
+ String pageCursor, Integer pageSize, String sortBy, String order) throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/earn/providers";
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "pageCursor";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor));
+ localVarQueryParameterBaseName = "pageSize";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize));
+ localVarQueryParameterBaseName = "sortBy";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("sortBy", sortBy));
+ localVarQueryParameterBaseName = "order";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order));
+
+ if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
+ StringJoiner queryJoiner = new StringJoiner("&");
+ localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
+ if (localVarQueryStringJoiner.length() != 0) {
+ queryJoiner.add(localVarQueryStringJoiner.toString());
+ }
+ localVarRequestBuilder.uri(
+ URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
+ } else {
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ }
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+}
diff --git a/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java b/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java
index 1c29ced6..e741f8bc 100644
--- a/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java
+++ b/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java
@@ -27,7 +27,7 @@
import com.fireblocks.sdk.model.OrderStatus;
import com.fireblocks.sdk.model.ProvidersListResponse;
import com.fireblocks.sdk.model.QuotesResponse;
-import com.fireblocks.sdk.model.TradingProviderDetails;
+import com.fireblocks.sdk.model.TradingProvider;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
@@ -460,21 +460,20 @@ private HttpRequest.Builder getOrdersRequestBuilder(
return localVarRequestBuilder;
}
/**
- * Get trading provider by ID Retrieve detailed information about a specific provider including
- * its full manifest with order/quote requirements. **Note:** These endpoints are currently in
- * beta and might be subject to changes. If you want to participate and learn more about the
- * Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email
- * to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer,
- * Approver, Editor, Viewer. For detailed information about error codes and troubleshooting,
- * please refer to our [API Error Codes
+ * Get trading provider by ID Retrieve a single provider by ID. **Note:** These endpoints are
+ * currently in beta and might be subject to changes. If you want to participate and learn more
+ * about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send
+ * an email to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin,
+ * Signer, Approver, Editor, Viewer. For detailed information about error codes and
+ * troubleshooting, please refer to our [API Error Codes
* documentation](https://developers.fireblocks.com/reference/api-error-codes).
*
* @param providerId The unique identifier of the provider. (required)
- * @return CompletableFuture<ApiResponse<TradingProviderDetails>>
+ * @return CompletableFuture<ApiResponse<TradingProvider>>
* @throws ApiException if fails to make API call
*/
- public CompletableFuture> getTradingProviderById(
- String providerId) throws ApiException {
+ public CompletableFuture> getTradingProviderById(String providerId)
+ throws ApiException {
try {
HttpRequest.Builder localVarRequestBuilder =
getTradingProviderByIdRequestBuilder(providerId);
@@ -493,7 +492,7 @@ public CompletableFuture> getTradingProvider
try {
String responseBody = localVarResponse.body();
return CompletableFuture.completedFuture(
- new ApiResponse(
+ new ApiResponse