diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 7c87194e..308d075a 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -63,9 +63,11 @@ docs/AddressRegistryTravelRuleProvider.md docs/AddressRegistryVaultListOrder.md docs/AddressRegistryVaultOptOutItem.md docs/AddressReverseLookupResponse.md +docs/AddressesFilters.md docs/AlertExposureTypeEnum.md docs/AlertLevelEnum.md docs/AllowlistEntry.md +docs/AllowlistEntryResponse.md docs/AllowlistEntryStatus.md docs/AllowlistMetadata.md docs/AllowlistResponse.md @@ -259,8 +261,11 @@ docs/CounterpartyGroupsPaginatedResponse.md docs/CreateAPIUser.md docs/CreateAddressRequest.md docs/CreateAddressResponse.md +docs/CreateAddressesReportRequest.md docs/CreateAssetsRequest.md docs/CreateConfigOperationRequest.md +docs/CreateConnectedAccountRequest.md +docs/CreateConnectedAccountResponse.md docs/CreateConnectionRequest.md docs/CreateConnectionResponse.md docs/CreateConsoleUser.md @@ -284,6 +289,7 @@ docs/CreateOrderRequest.md docs/CreatePayoutRequest.md docs/CreateQuote.md docs/CreateQuoteScopeInner.md +docs/CreateReportResponse.md docs/CreateSigningKeyDto.md docs/CreateSigningKeyDtoProofOfOwnership.md docs/CreateTagRequest.md @@ -300,6 +306,7 @@ docs/CreateVaultAssetResponse.md docs/CreateWalletRequest.md docs/CreateWebhookRequest.md docs/CreateWorkflowExecutionRequestParamsInner.md +docs/CreatedConnectedAccountItem.md docs/CustomRoutingDest.md docs/DAppAddressConfig.md docs/DVPSettlement.md @@ -500,6 +507,7 @@ docs/InternalTransferDestination.md docs/InternalTransferResponse.md docs/InternalWalletsApi.md docs/InvalidParamaterValueError.md +docs/IssueApiUserPairingTokenResponse.md docs/JobCreated.md docs/KeyLinkBetaApi.md docs/KeysBetaApi.md @@ -629,7 +637,6 @@ docs/ParameterWithValue.md docs/ParticipantRelationshipType.md docs/ParticipantsIdentification.md docs/ParticipantsIdentificationPolicy.md -docs/ParticipantsIdentificationSupportedEndpoint.md docs/PayeeAccount.md docs/PayeeAccountResponse.md docs/PayeeAccountType.md @@ -667,8 +674,8 @@ docs/PolicyAndValidationResponse.md docs/PolicyCheckResult.md docs/PolicyCurrency.md docs/PolicyEditorBetaApi.md -docs/PolicyEditorV2BetaApi.md -docs/PolicyMetadata.md +docs/PolicyEditorV2Api.md +docs/PolicyMetadataEntry.md docs/PolicyOperator.md docs/PolicyResponse.md docs/PolicyRule.md @@ -731,6 +738,15 @@ docs/RenameConnectedAccountRequest.md docs/RenameConnectedAccountResponse.md docs/RenameCosigner.md docs/RenameVaultAccountResponse.md +docs/ReportConflictResponse.md +docs/ReportJob.md +docs/ReportJobLinks.md +docs/ReportJobResponse.md +docs/ReportListResponse.md +docs/ReportOutputFormat.md +docs/ReportStatus.md +docs/ReportType.md +docs/ReportsBetaApi.md docs/ResendByQueryRequest.md docs/ResendByQueryResponse.md docs/ResendFailedNotificationsJobStatusResponse.md @@ -850,6 +866,7 @@ docs/SolanaBlockchainData.md docs/SolanaConfig.md docs/SolanaInstruction.md docs/SolanaInstructionWithValue.md +docs/SolanaRewardsBreakdown.md docs/SolanaSimpleCreateParams.md docs/SourceConfig.md docs/SourceOfFunds.md @@ -1021,6 +1038,7 @@ docs/TransactionRequestPriorityFee.md docs/TransactionResponse.md docs/TransactionResponseContractCallDecodedData.md docs/TransactionResponseDestination.md +docs/TransactionTag.md docs/TransactionsApi.md docs/TransferConfigOperation.md docs/TransferOperationConfigParams.md @@ -1228,7 +1246,8 @@ src/main/java/com/fireblocks/sdk/api/OnchainDataApi.java src/main/java/com/fireblocks/sdk/api/OtaBetaApi.java src/main/java/com/fireblocks/sdk/api/PaymentsPayoutApi.java src/main/java/com/fireblocks/sdk/api/PolicyEditorBetaApi.java -src/main/java/com/fireblocks/sdk/api/PolicyEditorV2BetaApi.java +src/main/java/com/fireblocks/sdk/api/PolicyEditorV2Api.java +src/main/java/com/fireblocks/sdk/api/ReportsBetaApi.java src/main/java/com/fireblocks/sdk/api/ResetDeviceApi.java src/main/java/com/fireblocks/sdk/api/SmartTransferApi.java src/main/java/com/fireblocks/sdk/api/StakingApi.java @@ -1304,9 +1323,11 @@ src/main/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProvider.java src/main/java/com/fireblocks/sdk/model/AddressRegistryVaultListOrder.java src/main/java/com/fireblocks/sdk/model/AddressRegistryVaultOptOutItem.java src/main/java/com/fireblocks/sdk/model/AddressReverseLookupResponse.java +src/main/java/com/fireblocks/sdk/model/AddressesFilters.java src/main/java/com/fireblocks/sdk/model/AlertExposureTypeEnum.java src/main/java/com/fireblocks/sdk/model/AlertLevelEnum.java src/main/java/com/fireblocks/sdk/model/AllowlistEntry.java +src/main/java/com/fireblocks/sdk/model/AllowlistEntryResponse.java src/main/java/com/fireblocks/sdk/model/AllowlistEntryStatus.java src/main/java/com/fireblocks/sdk/model/AllowlistMetadata.java src/main/java/com/fireblocks/sdk/model/AllowlistResponse.java @@ -1489,8 +1510,11 @@ src/main/java/com/fireblocks/sdk/model/CounterpartyGroupsPaginatedResponse.java src/main/java/com/fireblocks/sdk/model/CreateAPIUser.java src/main/java/com/fireblocks/sdk/model/CreateAddressRequest.java src/main/java/com/fireblocks/sdk/model/CreateAddressResponse.java +src/main/java/com/fireblocks/sdk/model/CreateAddressesReportRequest.java src/main/java/com/fireblocks/sdk/model/CreateAssetsRequest.java src/main/java/com/fireblocks/sdk/model/CreateConfigOperationRequest.java +src/main/java/com/fireblocks/sdk/model/CreateConnectedAccountRequest.java +src/main/java/com/fireblocks/sdk/model/CreateConnectedAccountResponse.java src/main/java/com/fireblocks/sdk/model/CreateConnectionRequest.java src/main/java/com/fireblocks/sdk/model/CreateConnectionResponse.java src/main/java/com/fireblocks/sdk/model/CreateConsoleUser.java @@ -1514,6 +1538,7 @@ src/main/java/com/fireblocks/sdk/model/CreateOrderRequest.java src/main/java/com/fireblocks/sdk/model/CreatePayoutRequest.java src/main/java/com/fireblocks/sdk/model/CreateQuote.java src/main/java/com/fireblocks/sdk/model/CreateQuoteScopeInner.java +src/main/java/com/fireblocks/sdk/model/CreateReportResponse.java src/main/java/com/fireblocks/sdk/model/CreateSigningKeyDto.java src/main/java/com/fireblocks/sdk/model/CreateSigningKeyDtoProofOfOwnership.java src/main/java/com/fireblocks/sdk/model/CreateTagRequest.java @@ -1530,6 +1555,7 @@ src/main/java/com/fireblocks/sdk/model/CreateVaultAssetResponse.java src/main/java/com/fireblocks/sdk/model/CreateWalletRequest.java src/main/java/com/fireblocks/sdk/model/CreateWebhookRequest.java src/main/java/com/fireblocks/sdk/model/CreateWorkflowExecutionRequestParamsInner.java +src/main/java/com/fireblocks/sdk/model/CreatedConnectedAccountItem.java src/main/java/com/fireblocks/sdk/model/CustomRoutingDest.java src/main/java/com/fireblocks/sdk/model/DAppAddressConfig.java src/main/java/com/fireblocks/sdk/model/DVPSettlement.java @@ -1721,6 +1747,7 @@ src/main/java/com/fireblocks/sdk/model/InternalTransferAddress.java src/main/java/com/fireblocks/sdk/model/InternalTransferDestination.java src/main/java/com/fireblocks/sdk/model/InternalTransferResponse.java src/main/java/com/fireblocks/sdk/model/InvalidParamaterValueError.java +src/main/java/com/fireblocks/sdk/model/IssueApiUserPairingTokenResponse.java src/main/java/com/fireblocks/sdk/model/JobCreated.java src/main/java/com/fireblocks/sdk/model/LayerZeroAdapterCreateParams.java src/main/java/com/fireblocks/sdk/model/LbtPaymentInfo.java @@ -1843,7 +1870,6 @@ 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 @@ -1879,7 +1905,7 @@ src/main/java/com/fireblocks/sdk/model/Players.java src/main/java/com/fireblocks/sdk/model/PolicyAndValidationResponse.java src/main/java/com/fireblocks/sdk/model/PolicyCheckResult.java src/main/java/com/fireblocks/sdk/model/PolicyCurrency.java -src/main/java/com/fireblocks/sdk/model/PolicyMetadata.java +src/main/java/com/fireblocks/sdk/model/PolicyMetadataEntry.java src/main/java/com/fireblocks/sdk/model/PolicyOperator.java src/main/java/com/fireblocks/sdk/model/PolicyResponse.java src/main/java/com/fireblocks/sdk/model/PolicyRule.java @@ -1942,6 +1968,14 @@ 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/ReportConflictResponse.java +src/main/java/com/fireblocks/sdk/model/ReportJob.java +src/main/java/com/fireblocks/sdk/model/ReportJobLinks.java +src/main/java/com/fireblocks/sdk/model/ReportJobResponse.java +src/main/java/com/fireblocks/sdk/model/ReportListResponse.java +src/main/java/com/fireblocks/sdk/model/ReportOutputFormat.java +src/main/java/com/fireblocks/sdk/model/ReportStatus.java +src/main/java/com/fireblocks/sdk/model/ReportType.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 @@ -2059,6 +2093,7 @@ src/main/java/com/fireblocks/sdk/model/SolanaBlockchainData.java src/main/java/com/fireblocks/sdk/model/SolanaConfig.java src/main/java/com/fireblocks/sdk/model/SolanaInstruction.java src/main/java/com/fireblocks/sdk/model/SolanaInstructionWithValue.java +src/main/java/com/fireblocks/sdk/model/SolanaRewardsBreakdown.java src/main/java/com/fireblocks/sdk/model/SolanaSimpleCreateParams.java src/main/java/com/fireblocks/sdk/model/SourceConfig.java src/main/java/com/fireblocks/sdk/model/SourceOfFunds.java @@ -2225,6 +2260,7 @@ src/main/java/com/fireblocks/sdk/model/TransactionRequestPriorityFee.java src/main/java/com/fireblocks/sdk/model/TransactionResponse.java src/main/java/com/fireblocks/sdk/model/TransactionResponseContractCallDecodedData.java src/main/java/com/fireblocks/sdk/model/TransactionResponseDestination.java +src/main/java/com/fireblocks/sdk/model/TransactionTag.java src/main/java/com/fireblocks/sdk/model/TransferConfigOperation.java src/main/java/com/fireblocks/sdk/model/TransferOperationConfigParams.java src/main/java/com/fireblocks/sdk/model/TransferOperationExecution.java @@ -2399,7 +2435,8 @@ src/test/java/com/fireblocks/sdk/api/OnchainDataApiTest.java src/test/java/com/fireblocks/sdk/api/OtaBetaApiTest.java src/test/java/com/fireblocks/sdk/api/PaymentsPayoutApiTest.java src/test/java/com/fireblocks/sdk/api/PolicyEditorBetaApiTest.java -src/test/java/com/fireblocks/sdk/api/PolicyEditorV2BetaApiTest.java +src/test/java/com/fireblocks/sdk/api/PolicyEditorV2ApiTest.java +src/test/java/com/fireblocks/sdk/api/ReportsBetaApiTest.java src/test/java/com/fireblocks/sdk/api/ResetDeviceApiTest.java src/test/java/com/fireblocks/sdk/api/SmartTransferApiTest.java src/test/java/com/fireblocks/sdk/api/StakingApiTest.java @@ -2474,8 +2511,10 @@ src/test/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProviderTest.jav src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultListOrderTest.java src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultOptOutItemTest.java src/test/java/com/fireblocks/sdk/model/AddressReverseLookupResponseTest.java +src/test/java/com/fireblocks/sdk/model/AddressesFiltersTest.java src/test/java/com/fireblocks/sdk/model/AlertExposureTypeEnumTest.java src/test/java/com/fireblocks/sdk/model/AlertLevelEnumTest.java +src/test/java/com/fireblocks/sdk/model/AllowlistEntryResponseTest.java src/test/java/com/fireblocks/sdk/model/AllowlistEntryStatusTest.java src/test/java/com/fireblocks/sdk/model/AllowlistEntryTest.java src/test/java/com/fireblocks/sdk/model/AllowlistMetadataTest.java @@ -2659,8 +2698,11 @@ src/test/java/com/fireblocks/sdk/model/CounterpartyGroupsPaginatedResponseTest.j src/test/java/com/fireblocks/sdk/model/CreateAPIUserTest.java src/test/java/com/fireblocks/sdk/model/CreateAddressRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateAddressResponseTest.java +src/test/java/com/fireblocks/sdk/model/CreateAddressesReportRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateAssetsRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateConfigOperationRequestTest.java +src/test/java/com/fireblocks/sdk/model/CreateConnectedAccountRequestTest.java +src/test/java/com/fireblocks/sdk/model/CreateConnectedAccountResponseTest.java src/test/java/com/fireblocks/sdk/model/CreateConnectionRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateConnectionResponseTest.java src/test/java/com/fireblocks/sdk/model/CreateConsoleUserTest.java @@ -2684,6 +2726,7 @@ src/test/java/com/fireblocks/sdk/model/CreateOrderRequestTest.java src/test/java/com/fireblocks/sdk/model/CreatePayoutRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateQuoteScopeInnerTest.java src/test/java/com/fireblocks/sdk/model/CreateQuoteTest.java +src/test/java/com/fireblocks/sdk/model/CreateReportResponseTest.java src/test/java/com/fireblocks/sdk/model/CreateSigningKeyDtoProofOfOwnershipTest.java src/test/java/com/fireblocks/sdk/model/CreateSigningKeyDtoTest.java src/test/java/com/fireblocks/sdk/model/CreateTagRequestTest.java @@ -2700,6 +2743,7 @@ src/test/java/com/fireblocks/sdk/model/CreateVaultAssetResponseTest.java src/test/java/com/fireblocks/sdk/model/CreateWalletRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateWebhookRequestTest.java src/test/java/com/fireblocks/sdk/model/CreateWorkflowExecutionRequestParamsInnerTest.java +src/test/java/com/fireblocks/sdk/model/CreatedConnectedAccountItemTest.java src/test/java/com/fireblocks/sdk/model/CustomRoutingDestTest.java src/test/java/com/fireblocks/sdk/model/DAppAddressConfigTest.java src/test/java/com/fireblocks/sdk/model/DVPSettlementTest.java @@ -2891,6 +2935,7 @@ src/test/java/com/fireblocks/sdk/model/InternalTransferAddressTest.java src/test/java/com/fireblocks/sdk/model/InternalTransferDestinationTest.java src/test/java/com/fireblocks/sdk/model/InternalTransferResponseTest.java src/test/java/com/fireblocks/sdk/model/InvalidParamaterValueErrorTest.java +src/test/java/com/fireblocks/sdk/model/IssueApiUserPairingTokenResponseTest.java src/test/java/com/fireblocks/sdk/model/JobCreatedTest.java src/test/java/com/fireblocks/sdk/model/LayerZeroAdapterCreateParamsTest.java src/test/java/com/fireblocks/sdk/model/LbtPaymentInfoTest.java @@ -3012,7 +3057,6 @@ 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 @@ -3049,7 +3093,7 @@ src/test/java/com/fireblocks/sdk/model/PlayersTest.java src/test/java/com/fireblocks/sdk/model/PolicyAndValidationResponseTest.java src/test/java/com/fireblocks/sdk/model/PolicyCheckResultTest.java src/test/java/com/fireblocks/sdk/model/PolicyCurrencyTest.java -src/test/java/com/fireblocks/sdk/model/PolicyMetadataTest.java +src/test/java/com/fireblocks/sdk/model/PolicyMetadataEntryTest.java src/test/java/com/fireblocks/sdk/model/PolicyOperatorTest.java src/test/java/com/fireblocks/sdk/model/PolicyResponseTest.java src/test/java/com/fireblocks/sdk/model/PolicyRuleCheckResultTest.java @@ -3112,6 +3156,14 @@ 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/ReportConflictResponseTest.java +src/test/java/com/fireblocks/sdk/model/ReportJobLinksTest.java +src/test/java/com/fireblocks/sdk/model/ReportJobResponseTest.java +src/test/java/com/fireblocks/sdk/model/ReportJobTest.java +src/test/java/com/fireblocks/sdk/model/ReportListResponseTest.java +src/test/java/com/fireblocks/sdk/model/ReportOutputFormatTest.java +src/test/java/com/fireblocks/sdk/model/ReportStatusTest.java +src/test/java/com/fireblocks/sdk/model/ReportTypeTest.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 @@ -3229,6 +3281,7 @@ src/test/java/com/fireblocks/sdk/model/SolanaBlockchainDataTest.java src/test/java/com/fireblocks/sdk/model/SolanaConfigTest.java src/test/java/com/fireblocks/sdk/model/SolanaInstructionTest.java src/test/java/com/fireblocks/sdk/model/SolanaInstructionWithValueTest.java +src/test/java/com/fireblocks/sdk/model/SolanaRewardsBreakdownTest.java src/test/java/com/fireblocks/sdk/model/SolanaSimpleCreateParamsTest.java src/test/java/com/fireblocks/sdk/model/SourceConfigTest.java src/test/java/com/fireblocks/sdk/model/SourceOfFundsTest.java @@ -3394,6 +3447,7 @@ src/test/java/com/fireblocks/sdk/model/TransactionRequestTest.java src/test/java/com/fireblocks/sdk/model/TransactionResponseContractCallDecodedDataTest.java src/test/java/com/fireblocks/sdk/model/TransactionResponseDestinationTest.java src/test/java/com/fireblocks/sdk/model/TransactionResponseTest.java +src/test/java/com/fireblocks/sdk/model/TransactionTagTest.java src/test/java/com/fireblocks/sdk/model/TransactionTest.java src/test/java/com/fireblocks/sdk/model/TransferConfigOperationTest.java src/test/java/com/fireblocks/sdk/model/TransferOperationConfigParamsTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 69534384..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). - -## [v21.0.0](https://github.com/fireblocks/java-sdk/compare/v15.0.0...v21.0.0) - 2026-06-11 - -### Merged - -- Generated SDK #5364 [`#137`](https://github.com/fireblocks/java-sdk/pull/137) - -## [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 2738d3a3..e35d564d 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Add this dependency to your project's POM: com.fireblocks.sdk fireblocks-sdk - 21.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:21.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-21.0.0.jar` +- `target/fireblocks-sdk-0.0.0.jar` - `target/lib/*.jar` @@ -143,6 +143,7 @@ Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- *ApiUserApi* | [**createApiUser**](docs/ApiUserApi.md#createApiUser) | **POST** /management/api_users | Create API Key *ApiUserApi* | [**getApiUsers**](docs/ApiUserApi.md#getApiUsers) | **GET** /management/api_users | Get API Keys +*ApiUserApi* | [**issueApiUserPairingToken**](docs/ApiUserApi.md#issueApiUserPairingToken) | **POST** /management/api_users/{userId}/pairing_token | Issue API user pairing token *AuditLogsApi* | [**getAuditLogs**](docs/AuditLogsApi.md#getAuditLogs) | **GET** /management/audit_logs | Get audit logs *BlockchainsAssetsApi* | [**getAsset**](docs/BlockchainsAssetsApi.md#getAsset) | **GET** /assets/{id} | Get an asset *BlockchainsAssetsApi* | [**getBlockchain**](docs/BlockchainsAssetsApi.md#getBlockchain) | **GET** /blockchains/{id} | Get a Blockchain by ID @@ -160,6 +161,7 @@ Class | Method | HTTP request | Description *ComplianceApi* | [**deactivateArsConfig**](docs/ComplianceApi.md#deactivateArsConfig) | **POST** /screening/ars/config/deactivate | Deactivate ARS (Address Registry Screening) *ComplianceApi* | [**deactivateByorkConfig**](docs/ComplianceApi.md#deactivateByorkConfig) | **POST** /screening/byork/config/deactivate | Deactivate BYORK Light *ComplianceApi* | [**deleteCounterpartyGroup**](docs/ComplianceApi.md#deleteCounterpartyGroup) | **DELETE** /counterparty_groups/{groupId} | Delete a counterparty group +*ComplianceApi* | [**deleteLegalEntity**](docs/ComplianceApi.md#deleteLegalEntity) | **DELETE** /legal_entities/{legalEntityId} | Delete a legal entity *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 @@ -192,6 +194,7 @@ Class | Method | HTTP request | Description *ComplianceApi* | [**updateTravelRuleConfig**](docs/ComplianceApi.md#updateTravelRuleConfig) | **PUT** /screening/travel_rule/policy_configuration | Update Travel Rule Configuration *ComplianceScreeningConfigurationApi* | [**getAmlScreeningConfiguration**](docs/ComplianceScreeningConfigurationApi.md#getAmlScreeningConfiguration) | **GET** /screening/aml/policy_configuration | Get AML Screening Policy Configuration *ComplianceScreeningConfigurationApi* | [**getScreeningConfiguration**](docs/ComplianceScreeningConfigurationApi.md#getScreeningConfiguration) | **GET** /screening/travel_rule/policy_configuration | Get Travel Rule Screening Policy Configuration +*ConnectedAccountsBetaApi* | [**createConnectedAccount**](docs/ConnectedAccountsBetaApi.md#createConnectedAccount) | **POST** /connected_accounts | Create a connected account *ConnectedAccountsBetaApi* | [**disconnectConnectedAccount**](docs/ConnectedAccountsBetaApi.md#disconnectConnectedAccount) | **DELETE** /connected_accounts/{accountId} | Disconnect connected account *ConnectedAccountsBetaApi* | [**getConnectedAccount**](docs/ConnectedAccountsBetaApi.md#getConnectedAccount) | **GET** /connected_accounts/{accountId} | Get connected account *ConnectedAccountsBetaApi* | [**getConnectedAccountAllowlist**](docs/ConnectedAccountsBetaApi.md#getConnectedAccountAllowlist) | **GET** /connected_accounts/{accountId}/allowlist | Get allowlist for connected account @@ -362,10 +365,13 @@ Class | Method | HTTP request | Description *PolicyEditorBetaApi* | [**publishDraftLegacy**](docs/PolicyEditorBetaApi.md#publishDraftLegacy) | **POST** /tap/draft | Send publish request for a certain draft id *PolicyEditorBetaApi* | [**publishPolicyRules**](docs/PolicyEditorBetaApi.md#publishPolicyRules) | **POST** /tap/publish | Send publish request for a set of policy rules *PolicyEditorBetaApi* | [**updateDraftLegacy**](docs/PolicyEditorBetaApi.md#updateDraftLegacy) | **PUT** /tap/draft | Update the draft with a new set of rules -*PolicyEditorV2BetaApi* | [**getActivePolicy**](docs/PolicyEditorV2BetaApi.md#getActivePolicy) | **GET** /policy/active_policy | Get the active policy and its validation by policy type -*PolicyEditorV2BetaApi* | [**getDraft**](docs/PolicyEditorV2BetaApi.md#getDraft) | **GET** /policy/draft | Get the active draft by policy type -*PolicyEditorV2BetaApi* | [**publishDraft**](docs/PolicyEditorV2BetaApi.md#publishDraft) | **POST** /policy/draft | Send publish request for a certain draft id -*PolicyEditorV2BetaApi* | [**updateDraft**](docs/PolicyEditorV2BetaApi.md#updateDraft) | **PUT** /policy/draft | Update the draft with a new set of rules by policy types +*PolicyEditorV2Api* | [**getActivePolicy**](docs/PolicyEditorV2Api.md#getActivePolicy) | **GET** /policy/active_policy | Get the active policy and its validation by policy type +*PolicyEditorV2Api* | [**getDraft**](docs/PolicyEditorV2Api.md#getDraft) | **GET** /policy/draft | Get the active draft by policy type +*PolicyEditorV2Api* | [**publishDraft**](docs/PolicyEditorV2Api.md#publishDraft) | **POST** /policy/draft | Send publish request for a certain draft id +*PolicyEditorV2Api* | [**updateDraft**](docs/PolicyEditorV2Api.md#updateDraft) | **PUT** /policy/draft | Update the draft with a new set of rules by policy types +*ReportsBetaApi* | [**createReport**](docs/ReportsBetaApi.md#createReport) | **POST** /reports | Create a report +*ReportsBetaApi* | [**getReport**](docs/ReportsBetaApi.md#getReport) | **GET** /reports/{reportId} | Get report status +*ReportsBetaApi* | [**listReports**](docs/ReportsBetaApi.md#listReports) | **GET** /reports | List reports *ResetDeviceApi* | [**resetDevice**](docs/ResetDeviceApi.md#resetDevice) | **POST** /management/users/{id}/reset_device | Resets device *SmartTransferApi* | [**approveDvPTicketTerm**](docs/SmartTransferApi.md#approveDvPTicketTerm) | **PUT** /smart_transfers/{ticketId}/terms/{termId}/dvp/approve | Set funding source and approval *SmartTransferApi* | [**cancelTicket**](docs/SmartTransferApi.md#cancelTicket) | **PUT** /smart-transfers/{ticketId}/cancel | Cancel Ticket @@ -403,7 +409,6 @@ Class | Method | HTTP request | Description *StakingApi* | [**stake**](docs/StakingApi.md#stake) | **POST** /staking/chains/{chainDescriptor}/stake | Initiate or add to existing stake *StakingApi* | [**unstake**](docs/StakingApi.md#unstake) | **POST** /staking/chains/{chainDescriptor}/unstake | Initiate unstake *StakingApi* | [**withdraw**](docs/StakingApi.md#withdraw) | **POST** /staking/chains/{chainDescriptor}/withdraw | Withdraw staked funds -*TagsApi* | [**cancelApprovalRequest**](docs/TagsApi.md#cancelApprovalRequest) | **POST** /tags/approval_requests/{id}/cancel | Cancel an approval request by id *TagsApi* | [**createTag**](docs/TagsApi.md#createTag) | **POST** /tags | Create a new tag *TagsApi* | [**deleteTag**](docs/TagsApi.md#deleteTag) | **DELETE** /tags/{tagId} | Delete a tag *TagsApi* | [**getApprovalRequest**](docs/TagsApi.md#getApprovalRequest) | **GET** /tags/approval_requests/{id} | Get an approval request by id @@ -630,9 +635,11 @@ Class | Method | HTTP request | Description - [AddressRegistryVaultListOrder](docs/AddressRegistryVaultListOrder.md) - [AddressRegistryVaultOptOutItem](docs/AddressRegistryVaultOptOutItem.md) - [AddressReverseLookupResponse](docs/AddressReverseLookupResponse.md) + - [AddressesFilters](docs/AddressesFilters.md) - [AlertExposureTypeEnum](docs/AlertExposureTypeEnum.md) - [AlertLevelEnum](docs/AlertLevelEnum.md) - [AllowlistEntry](docs/AllowlistEntry.md) + - [AllowlistEntryResponse](docs/AllowlistEntryResponse.md) - [AllowlistEntryStatus](docs/AllowlistEntryStatus.md) - [AllowlistMetadata](docs/AllowlistMetadata.md) - [AllowlistResponse](docs/AllowlistResponse.md) @@ -815,8 +822,11 @@ Class | Method | HTTP request | Description - [CreateAPIUser](docs/CreateAPIUser.md) - [CreateAddressRequest](docs/CreateAddressRequest.md) - [CreateAddressResponse](docs/CreateAddressResponse.md) + - [CreateAddressesReportRequest](docs/CreateAddressesReportRequest.md) - [CreateAssetsRequest](docs/CreateAssetsRequest.md) - [CreateConfigOperationRequest](docs/CreateConfigOperationRequest.md) + - [CreateConnectedAccountRequest](docs/CreateConnectedAccountRequest.md) + - [CreateConnectedAccountResponse](docs/CreateConnectedAccountResponse.md) - [CreateConnectionRequest](docs/CreateConnectionRequest.md) - [CreateConnectionResponse](docs/CreateConnectionResponse.md) - [CreateConsoleUser](docs/CreateConsoleUser.md) @@ -840,6 +850,7 @@ Class | Method | HTTP request | Description - [CreatePayoutRequest](docs/CreatePayoutRequest.md) - [CreateQuote](docs/CreateQuote.md) - [CreateQuoteScopeInner](docs/CreateQuoteScopeInner.md) + - [CreateReportResponse](docs/CreateReportResponse.md) - [CreateSigningKeyDto](docs/CreateSigningKeyDto.md) - [CreateSigningKeyDtoProofOfOwnership](docs/CreateSigningKeyDtoProofOfOwnership.md) - [CreateTagRequest](docs/CreateTagRequest.md) @@ -856,6 +867,7 @@ Class | Method | HTTP request | Description - [CreateWalletRequest](docs/CreateWalletRequest.md) - [CreateWebhookRequest](docs/CreateWebhookRequest.md) - [CreateWorkflowExecutionRequestParamsInner](docs/CreateWorkflowExecutionRequestParamsInner.md) + - [CreatedConnectedAccountItem](docs/CreatedConnectedAccountItem.md) - [CustomRoutingDest](docs/CustomRoutingDest.md) - [DAppAddressConfig](docs/DAppAddressConfig.md) - [DVPSettlement](docs/DVPSettlement.md) @@ -1047,6 +1059,7 @@ Class | Method | HTTP request | Description - [InternalTransferDestination](docs/InternalTransferDestination.md) - [InternalTransferResponse](docs/InternalTransferResponse.md) - [InvalidParamaterValueError](docs/InvalidParamaterValueError.md) + - [IssueApiUserPairingTokenResponse](docs/IssueApiUserPairingTokenResponse.md) - [JobCreated](docs/JobCreated.md) - [LayerZeroAdapterCreateParams](docs/LayerZeroAdapterCreateParams.md) - [LbtPaymentInfo](docs/LbtPaymentInfo.md) @@ -1169,7 +1182,6 @@ Class | Method | HTTP request | Description - [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) @@ -1205,7 +1217,7 @@ Class | Method | HTTP request | Description - [PolicyAndValidationResponse](docs/PolicyAndValidationResponse.md) - [PolicyCheckResult](docs/PolicyCheckResult.md) - [PolicyCurrency](docs/PolicyCurrency.md) - - [PolicyMetadata](docs/PolicyMetadata.md) + - [PolicyMetadataEntry](docs/PolicyMetadataEntry.md) - [PolicyOperator](docs/PolicyOperator.md) - [PolicyResponse](docs/PolicyResponse.md) - [PolicyRule](docs/PolicyRule.md) @@ -1268,6 +1280,14 @@ Class | Method | HTTP request | Description - [RenameConnectedAccountResponse](docs/RenameConnectedAccountResponse.md) - [RenameCosigner](docs/RenameCosigner.md) - [RenameVaultAccountResponse](docs/RenameVaultAccountResponse.md) + - [ReportConflictResponse](docs/ReportConflictResponse.md) + - [ReportJob](docs/ReportJob.md) + - [ReportJobLinks](docs/ReportJobLinks.md) + - [ReportJobResponse](docs/ReportJobResponse.md) + - [ReportListResponse](docs/ReportListResponse.md) + - [ReportOutputFormat](docs/ReportOutputFormat.md) + - [ReportStatus](docs/ReportStatus.md) + - [ReportType](docs/ReportType.md) - [ResendByQueryRequest](docs/ResendByQueryRequest.md) - [ResendByQueryResponse](docs/ResendByQueryResponse.md) - [ResendFailedNotificationsJobStatusResponse](docs/ResendFailedNotificationsJobStatusResponse.md) @@ -1385,6 +1405,7 @@ Class | Method | HTTP request | Description - [SolanaConfig](docs/SolanaConfig.md) - [SolanaInstruction](docs/SolanaInstruction.md) - [SolanaInstructionWithValue](docs/SolanaInstructionWithValue.md) + - [SolanaRewardsBreakdown](docs/SolanaRewardsBreakdown.md) - [SolanaSimpleCreateParams](docs/SolanaSimpleCreateParams.md) - [SourceConfig](docs/SourceConfig.md) - [SourceOfFunds](docs/SourceOfFunds.md) @@ -1551,6 +1572,7 @@ Class | Method | HTTP request | Description - [TransactionResponse](docs/TransactionResponse.md) - [TransactionResponseContractCallDecodedData](docs/TransactionResponseContractCallDecodedData.md) - [TransactionResponseDestination](docs/TransactionResponseDestination.md) + - [TransactionTag](docs/TransactionTag.md) - [TransferConfigOperation](docs/TransferConfigOperation.md) - [TransferOperationConfigParams](docs/TransferOperationConfigParams.md) - [TransferOperationExecution](docs/TransferOperationExecution.md) diff --git a/api/openapi.yaml b/api/openapi.yaml index 2f2baa78..61b67fb4 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -15,77 +15,141 @@ servers: - description: Fireblocks Sandbox Environment Base URL url: https://sandbox-api.fireblocks.io/v1 paths: - /vault/accounts: - get: - deprecated: true - description: |- - DEPRECATED - Please use `/vault/accounts_paged` endpoint instead. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getVaultAccounts + /admin_quorum: + put: + description: Update admin quorum threshold + operationId: setAdminQuorumThreshold parameters: - - explode: true - in: query - name: namePrefix - required: false - schema: - type: string - style: form - - explode: true - in: query - name: nameSuffix - required: false - schema: - type: string - style: form - - explode: true - in: query - name: minAmountThreshold - required: false - schema: - type: number - style: form - - explode: true - in: query - name: assetId + - 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 - x-fb-entity: asset - style: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SetAdminQuorumThresholdRequest" + required: true responses: - "200": + "202": content: application/json: schema: - $ref: "#/components/schemas/GetVaultAccountsResponse" - description: A list of vault accounts + $ref: "#/components/schemas/SetAdminQuorumThresholdResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get vault accounts + summary: Update admin quorum threshold tags: - - Vaults + - Admin Quorum x-internal: true - x-rate-limit-category: high_compute + x-rate-limit-category: write x-readme: code-samples: - language: python - code: vault_accounts = fireblocks.get_vault_accounts() + code: result = fireblocks.set_admin_quorum_threshold(adminQuorumThreshold) name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const vaultAccounts = await fireblocks.getVaultAccounts(); + code: const result = await fireblocks.setAdminQuorumThreshold(adminQuorumThreshold) + name: Fireblocks SDK Javascript example + x-content-type: application/json + x-accepts: + - application/json + /management/api_users: + get: + description: |- + List all API keys in your workspace. + - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: getApiUsers + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetAPIUsersResponse" + description: got api users + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Lacking permissions. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Internal error. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get API Keys + tags: + - Api User + x-rate-limit-category: query + x-readme: + code-samples: + - language: javascript + code: const apiUsers = await fireblocks.getApiUsers(); name: Fireblocks SDK Javascript example + - language: python + code: apiUsers = fireblocks.get_api_users() + name: Fireblocks SDK Python example (Legacy) + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.apiUser.getApiUsers();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.apiUser().getApiUsers(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.api_user.get_api_users(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.apiUser.getApiUsers();" + - lang: Java + source: CompletableFuture> response = fireblocks.apiUser().getApiUsers(); + - lang: Python + source: response = fireblocks.api_user.get_api_users(); x-accepts: - application/json post: description: |- - Creates a new vault account with the requested name. - **Note: ** Vault account names should consist of ASCII characters only. - Learn more about Fireblocks Vault Accounts in the following [guide](https://developers.fireblocks.com/reference/create-vault-account). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: createVaultAccount + Create a new API key in your workspace. + Learn more about Fireblocks API Keys management in the following [guide](https://developers.fireblocks.com/docs/manage-api-keys). + Endpoint Permission: Admin, Non-Signing Admin. + operationId: createApiUser 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\ @@ -102,298 +166,551 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CreateVaultAccountRequest" - required: true + $ref: "#/components/schemas/CreateAPIUser" responses: "200": + description: User creation approval request has been sent + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + description: bad request + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "401": content: application/json: schema: - $ref: "#/components/schemas/VaultAccount" - description: A Vault Account object + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Lacking permissions. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Internal error. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create a new vault account + summary: Create API Key tags: - - Vaults + - Api User x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "vaultAccount = fireblocks.create_vault_account(name, hiddenOnUI,\ - \ customer_ref_id, auto_fueling)" - name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const vaultAccount = await fireblocks.createVaultAccount(name, hiddenOnUI,\ - \ customerRefId, autoFueling);" + code: "const res = await fireblocks.createApiUser(name, role, csrForNewUser,\ + \ coSignerType, isFirstUser);" name: Fireblocks SDK Javascript example + - language: python + code: "res = fireblocks.create_api_user(name, role, csr_pem, co_signer_setup,\ + \ co_signer_setup_is_first_user)" + name: Fireblocks SDK Python example (Legacy) - language: typescript - code: "const response: Promise> = fireblocks.vaults.createVaultAccount(vaultsApiCreateVaultAccountRequest);" + code: "const response: Promise> = fireblocks.apiUser.createApiUser(apiUserApiCreateApiUserRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().createVaultAccount(createVaultAccountRequest,\ + code: "CompletableFuture> response = fireblocks.apiUser().createApiUser(createAPIUser,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.create_vault_account(create_vault_account_request,\ + code: "response = fireblocks.api_user.create_api_user(create_a_p_i_user,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.vaults.createVaultAccount(vaultsApiCreateVaultAccountRequest);" + source: "const response: Promise> = fireblocks.apiUser.createApiUser(apiUserApiCreateApiUserRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().createVaultAccount(createVaultAccountRequest,\ + source: "CompletableFuture> response = fireblocks.apiUser().createApiUser(createAPIUser,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.create_vault_account(create_vault_account_request,\ + source: "response = fireblocks.api_user.create_api_user(create_a_p_i_user,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /vault/accounts_paged: - get: + /management/api_users/{userId}/pairing_token: + post: description: |- - Gets all vault accounts in your workspace. This endpoint returns a limited amount of results with a quick response time. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getPagedVaultAccounts + Issues a device pairing token for the given user and returns the user's info along with the token. + - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. + - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. + Endpoint Permission: Owner, Admin, Non-Signing Admin. + operationId: issueApiUserPairingToken parameters: - - explode: true - in: query - name: namePrefix - required: false + - description: The ID of the api user + explode: false + in: path + name: userId + required: true schema: type: string - style: form - - explode: true - in: query - name: nameSuffix + 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: form - - description: "Specifying minAmountThreshold will filter accounts whose total\ - \ balance is greater than this value; otherwise, it returns all accounts.\ - \ The amount set in this parameter represents the native asset amount, not\ - \ its USD value." + style: simple + responses: + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/IssueApiUserPairingTokenResponse" + description: Pairing token issued + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Lacking permissions. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: API user not found for the given userId. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Conflict. The API user is not in PENDING_ACTIVATION status + (e.g. already set up / enabled). + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Internal error. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Issue API user pairing token + tags: + - Api User + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.apiUser.issueApiUserPairingToken(apiUserApiIssueApiUserPairingTokenRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.apiUser().issueApiUserPairingToken(userId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.api_user.issue_api_user_pairing_token(user_id,\ + \ idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.apiUser.issueApiUserPairingToken(apiUserApiIssueApiUserPairingTokenRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.apiUser().issueApiUserPairingToken(userId, idempotencyKey);" + - lang: Python + source: "response = fireblocks.api_user.issue_api_user_pairing_token(user_id,\ + \ idempotency_key);" + x-accepts: + - application/json + /management/audit_logs: + get: + description: |- + Retrieve audit log events for the workspace with optional filtering, date range, sorting, and cursor-based pagination. + + Filters within the same field are combined as OR (e.g. category=Administration&category=Security returns events in either category). Filters across different fields are combined as AND. + + **Deprecated parameters:** `timePeriod` and `cursor` remain functional for backward compatibility but new integrations should use `startTime`/`endTime` and `pageCursor` instead. + + Endpoint Permission: Admin, Non-Signing Admin, Auditor, Security Admin, Security Auditor. + operationId: getAuditLogs + parameters: + - description: Start of date range as epoch time in milliseconds. Takes precedence + over timePeriod when provided. Must be no more than 1 year before the current + time. explode: true in: query - name: minAmountThreshold + name: startTime required: false schema: - example: 10 - type: number + type: integer style: form - - explode: true + - description: End of date range as epoch time in milliseconds. Must be after + startTime. Defaults to now when omitted. + explode: true in: query - name: assetId + name: endTime required: false schema: - type: string - x-fb-entity: asset + type: integer style: form - - explode: true + - deprecated: true + description: Deprecated. Use startTime/endTime instead. Ignored when startTime + is provided. Defaults to DAY when neither timePeriod nor startTime is supplied. + explode: true in: query - name: orderBy + name: timePeriod required: false schema: - default: DESC enum: - - ASC - - DESC + - DAY + - WEEK type: string style: form - - explode: true + - description: Filter by event category. Repeat the parameter for multiple values + (OR logic within field). + explode: true in: query - name: before + name: category required: false schema: - type: string + items: + type: string + type: array style: form - - explode: true + - description: Filter by event subject. Repeat the parameter for multiple values. + explode: true in: query - name: after + name: subject required: false schema: - type: string + items: + type: string + type: array style: form - - explode: true + - description: Filter by event type. Repeat the parameter for multiple values. + explode: true in: query - name: limit + name: event required: false schema: - default: 200 - maximum: 500 - minimum: 1 - type: number + items: + type: string + type: array style: form - - deprecated: true - description: DEPRECATED - use includeTagIds instead + - description: Filter by user name. Repeat the parameter for multiple values. explode: true in: query - name: tagIds + name: user required: false schema: items: - format: uuid type: string - maxItems: 50 type: array style: form - - description: List of tag IDs to include. Vault accounts with any of these - tags will be included + - description: Filter by user ID. Repeat the parameter for multiple values. explode: true in: query - name: includeTagIds + name: userId required: false schema: items: - format: uuid type: string - maxItems: 50 type: array style: form - - description: List of tag IDs to exclude. Vault accounts with any of these - tags will be filtered out + - description: Sort direction. Defaults to DESC. explode: true in: query - name: excludeTagIds + name: order required: false schema: - items: - format: uuid - type: string - maxItems: 50 - type: array + default: DESC + enum: + - ASC + - DESC + type: string + style: form + - description: Number of results per page. Maximum 500. Defaults to 200. + explode: true + in: query + name: pageSize + required: false + schema: + default: 200 + maximum: 500 + minimum: 1 + type: integer + style: form + - description: Cursor returned from the previous response to fetch the next + page. + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - deprecated: true + description: Deprecated. Use pageCursor instead. + explode: true + in: query + name: cursor + required: false + schema: + type: string style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/VaultAccountsPagedResponse" - description: A VaultAccountsPagedResponse object + $ref: "#/components/schemas/GetAuditLogsResponse" + description: Audit log events matching the requested filters and date range headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Get vault accounts (Paginated) + "400": + $ref: "#/components/responses/Error" + "403": + $ref: "#/components/responses/Error" + default: + $ref: "#/components/responses/Error" + summary: Get audit logs tags: - - Vaults - x-rate-limit-category: external_query + - Audit Logs + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: vault_accounts = fireblocks.get_vault_accounts_with_page_info(filters) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const vaultAccounts = await fireblocks.getVaultAccountsWithPageInfo(filters); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getPagedVaultAccounts(vaultsApiGetPagedVaultAccountsRequest);" + code: "const response: Promise>\ + \ = fireblocks.auditLogs.getAuditLogs(auditLogsApiGetAuditLogsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.vaults().getPagedVaultAccounts(namePrefix, nameSuffix,\ - \ minAmountThreshold, assetId, orderBy, before, after, limit, tagIds,\ - \ includeTagIds, excludeTagIds);" + code: "CompletableFuture> response = fireblocks.auditLogs().getAuditLogs(startTime,\ + \ endTime, timePeriod, category, subject, event, user, userId, order,\ + \ pageSize, pageCursor, cursor);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.get_paged_vault_accounts(name_prefix,\ - \ name_suffix, min_amount_threshold, asset_id, order_by, before, after,\ - \ limit, tag_ids, include_tag_ids, exclude_tag_ids);" + code: "response = fireblocks.audit_logs.get_audit_logs(start_time, end_time,\ + \ time_period, category, subject, event, user, user_id, order, page_size,\ + \ page_cursor, cursor);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getPagedVaultAccounts(vaultsApiGetPagedVaultAccountsRequest);" + source: "const response: Promise>\ + \ = fireblocks.auditLogs.getAuditLogs(auditLogsApiGetAuditLogsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.vaults().getPagedVaultAccounts(namePrefix, nameSuffix, minAmountThreshold,\ - \ assetId, orderBy, before, after, limit, tagIds, includeTagIds, excludeTagIds);" + source: "CompletableFuture> response = fireblocks.auditLogs().getAuditLogs(startTime,\ + \ endTime, timePeriod, category, subject, event, user, userId, order, pageSize,\ + \ pageCursor, cursor);" - lang: Python - source: "response = fireblocks.vaults.get_paged_vault_accounts(name_prefix,\ - \ name_suffix, min_amount_threshold, asset_id, order_by, before, after,\ - \ limit, tag_ids, include_tag_ids, exclude_tag_ids);" + source: "response = fireblocks.audit_logs.get_audit_logs(start_time, end_time,\ + \ time_period, category, subject, event, user, user_id, order, page_size,\ + \ page_cursor, cursor);" x-accepts: - application/json - /vault/accounts/{vaultAccountId}: + /assets: get: - description: |- - Get a vault account by its unique ID. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getVaultAccount + description: | + Retrieves a paginated list of all assets supported by Fireblocks in your workspace + + **Note:** We will continue to support and display the legacy ID (API ID). Since not all Fireblocks services fully support the new Assets UUID, please use only the legacy ID until further notice. + operationId: listAssets parameters: - - description: The ID of the vault account + - description: Blockchain id of the assets + example: 0f672204-a28b-464a-b318-a387abd3d3c7 + explode: true + in: query + name: blockchainId + required: false + schema: + type: string + style: form + - description: Assets class + explode: true + in: query + name: assetClass + required: false + schema: + $ref: "#/components/schemas/AssetClass" + style: form + - description: Assets onchain symbol + example: ETH + explode: true + in: query + name: symbol + required: false + schema: + minLength: 1 + type: string + style: form + - description: Scope of the assets + explode: true + in: query + name: scope + required: false + schema: + $ref: "#/components/schemas/AssetScope" + style: form + - description: Are assets deprecated + example: false + explode: true + in: query + name: deprecated + required: false + schema: + type: boolean + style: form + - description: A list of asset IDs (max 100) + example: + - 3ed32525-70df-45c8-bae3-e69ab56dc095 + - 3a3b5f06-61e7-44f0-9962-4425b55795ff + - SHANI5_B75VRLGX_MUPA + explode: true + in: query + name: ids + required: false + schema: + items: + type: string + type: array + style: form + - description: Next page cursor to fetch + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Items per page + example: 500 + explode: true + in: query + name: pageSize + required: false + schema: + default: 500 + maximum: 1000 + minimum: 100 + type: number + style: form + - 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: path - name: vaultAccountId - required: true + in: header + name: Idempotency-Key + required: false schema: - format: numeric type: string - x-fb-entity: vault_account style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/VaultAccount" - description: A Vault Account object - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/ListAssetsResponse" + description: List of assets + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetInternalServerErrorResponse" + description: Error occurred while listing assets default: $ref: "#/components/responses/Error" - summary: Get a vault account by ID + summary: List assets tags: - - Vaults + - Blockchains & assets x-rate-limit-category: external_query x-readme: code-samples: - language: python - code: vault_account = fireblocks.get_vault_account(vault_account_id) + code: assets = fireblocks.listAssets(filters) name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const vaultAccount = await fireblocks.getVaultAccount(vault_account_id); + code: const assets = await fireblocks.listAssets(filters); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.vaults.getVaultAccount(vaultsApiGetVaultAccountRequest);" + code: "const response: Promise> =\ + \ fireblocks.blockchainsAssets.listAssets(blockchainsAssetsApiListAssetsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.vaults().getVaultAccount(vaultAccountId); + code: "CompletableFuture> response = fireblocks.blockchainsAssets().listAssets(blockchainId,\ + \ assetClass, symbol, scope, deprecated, ids, pageCursor, pageSize, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.vaults.get_vault_account(vault_account_id); + code: "response = fireblocks.blockchains_&_assets.list_assets(blockchain_id,\ + \ asset_class, symbol, scope, deprecated, ids, page_cursor, page_size,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.vaults.getVaultAccount(vaultsApiGetVaultAccountRequest);" + source: "const response: Promise> =\ + \ fireblocks.blockchainsAssets.listAssets(blockchainsAssetsApiListAssetsRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.vaults().getVaultAccount(vaultAccountId); + source: "CompletableFuture> response = fireblocks.blockchainsAssets().listAssets(blockchainId,\ + \ assetClass, symbol, scope, deprecated, ids, pageCursor, pageSize, idempotencyKey);" - lang: Python - source: response = fireblocks.vaults.get_vault_account(vault_account_id); + source: "response = fireblocks.blockchains_&_assets.list_assets(blockchain_id,\ + \ asset_class, symbol, scope, deprecated, ids, page_cursor, page_size, idempotency_key);" x-accepts: - application/json - put: - description: |- - Renames the requested vault account. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. - operationId: updateVaultAccount + post: + description: | + Register a new asset to a workspace and return the newly created asset's details. Currently supported chains are: + - EVM based chains + - Stellar + - Algorand + - TRON + - NEAR + - Solana + - Sui + - TON + operationId: registerNewAsset parameters: - - description: The ID of the vault account to edit - explode: false - in: path - name: vaultAccountId - required: true - schema: - format: numeric - type: string - x-fb-entity: vault_account - 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\ @@ -409,198 +726,207 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UpdateVaultAccountRequest" - required: true + $ref: "#/components/schemas/RegisterNewAssetRequest" responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/RenameVaultAccountResponse" - description: OK - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/AssetResponse" + description: A new asset has been created successfully + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetBadRequestErrorResponse" + description: | + - Listing an asset on the requested blockchain is not supported. Error code: 1000 + + - The asset address is invalid. Error code: 1003 + + - Self serve listing an asset on the requested blockchain is currently not supported, please contact support. Error code: 1004 + + - Blockchain is deprecated. Error code: 1006 + + - The asset's standard is not supported. Error code: 1007 + + - Unable to get expected metadata: decimals | name | symbol. Error code: 1010 + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetForbiddenErrorResponse" + description: | + - The asset creation quota reached. Error code: 1005 + + - Tenant is not allowed to create testnet assets. Error code: 1008 + + - Tenant is not allowed to create mainnet assets. Error code: 1009 + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/TokenInfoNotFoundErrorResponse" + description: | + - Invalid address, could not get asset information. Error code 1003 + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetConflictErrorResponse" + description: | + - The asset is already supported globally. Error code: 1001 + + - The asset has already been added to this workspace. Error code: 1002 + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetInternalServerErrorResponse" + description: Failed to create asset default: $ref: "#/components/responses/Error" - summary: Rename a vault account + summary: Register an asset tags: - - Vaults - x-rate-limit-category: write + - Blockchains & assets + x-rate-limit-category: high_compute x-readme: code-samples: - language: python - code: "vaultAccount = fireblocks.update_vault_account(vault_account_id,\ - \ name)" + code: "supportedAssets = fireblocks.register_new_asset(blockchainId, address,\ + \ symbol)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const vaultAccount = await fireblocks.updateVaultAccount(vautlAccountId,\ - \ name);" + code: "const supportedAssets = await fireblocks.registerNewAsset(blockchainId,\ + \ address, symbol);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.updateVaultAccount(vaultsApiUpdateVaultAccountRequest);" + code: "const response: Promise> = fireblocks.blockchainsAssets.registerNewAsset(blockchainsAssetsApiRegisterNewAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.vaults().updateVaultAccount(updateVaultAccountRequest,\ - \ vaultAccountId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.blockchainsAssets().registerNewAsset(registerNewAssetRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.update_vault_account(update_vault_account_request,\ - \ vault_account_id, idempotency_key);" + code: "response = fireblocks.blockchains_&_assets.register_new_asset(register_new_asset_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.updateVaultAccount(vaultsApiUpdateVaultAccountRequest);" + source: "const response: Promise> = fireblocks.blockchainsAssets.registerNewAsset(blockchainsAssetsApiRegisterNewAssetRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.vaults().updateVaultAccount(updateVaultAccountRequest, vaultAccountId,\ + source: "CompletableFuture> response = fireblocks.blockchainsAssets().registerNewAsset(registerNewAssetRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.update_vault_account(update_vault_account_request,\ - \ vault_account_id, idempotency_key);" + source: "response = fireblocks.blockchains_&_assets.register_new_asset(register_new_asset_request,\ + \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /vault/asset_wallets: + /assets/{id}: get: - description: "Get all vault wallets of the vault accounts in your workspace.\ - \ \nA vault wallet is an asset in a vault account. \n\nThis method allows\ - \ fast traversal of all account balances.\nEndpoint Permission: Admin, Non-Signing\ - \ Admin, Signer, Approver, Editor, Viewer." - operationId: getAssetWallets + description: | + Returns an asset by ID or legacyID. + + **Note**: + + - We will continue displaying and supporting the legacy ID (API ID). Since not all Fireblocks services fully support the new Assets UUID, please use only the legacy ID until further notice. + operationId: getAsset parameters: - - description: "When specified, only vault wallets with total balance greater\ - \ than this amount are returned." - explode: true - in: query - name: totalAmountLargerThan - required: false - schema: - type: number - style: form - - description: "When specified, only vault wallets with the specified ID are\ - \ returned." - explode: true - in: query - name: assetId - required: false + - description: The ID or legacyId of the asset + example: ETH + explode: false + in: path + name: id + required: true schema: type: string x-fb-entity: asset - style: form - - explode: true - in: query - name: orderBy - required: false - schema: - default: DESC - enum: - - ASC - - DESC - type: string - style: form - - description: "Fetches the next paginated response before this element. \n\ - This element is a cursor and is returned at the response of the previous\ - \ page.\n" - explode: true - in: query - name: before - required: false - schema: - type: string - style: form - - description: Fetches the next paginated response after this element. This - element is a cursor and is returned at the response of the previous page. - explode: true - in: query - name: after + 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: form - - description: "The maximum number of vault wallets in a single response. \n\ - \nThe default is 200 and the maximum is 1000.\n" - explode: true - in: query - name: limit - required: false - schema: - default: 200 - maximum: 1000 - minimum: 1 - type: number - style: form + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/PaginatedAssetWalletResponse" - description: A PaginatedAssetWalletResponse object + $ref: "#/components/schemas/Asset" + description: Asset with requested identification headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Get vault wallets (Paginated) + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetNotFoundErrorResponse" + description: | + - Asset with specified ID or legacy ID is not found. Error code 1504 + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetInternalServerErrorResponse" + description: Error occurred while getting an asset + default: + $ref: "#/components/responses/Error" + summary: Get an asset tags: - - Vaults - x-rate-limit-category: query + - Blockchains & assets + x-rate-limit-category: external_query x-readme: code-samples: - language: python - code: vault_accounts = fireblocks.get_asset_wallets(filters) + code: asset = fireblocks.getAssetById(assetId) name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const vaultAccounts = await fireblocks.getAssetWallets(filters); + code: const asset = await fireblocks.getAssetById(assetId); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getAssetWallets(vaultsApiGetAssetWalletsRequest);" + code: "const response: Promise> = fireblocks.blockchainsAssets.getAsset(blockchainsAssetsApiGetAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.vaults().getAssetWallets(totalAmountLargerThan, assetId,\ - \ orderBy, before, after, limit);" + code: "CompletableFuture> response = fireblocks.blockchainsAssets().getAsset(id,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.get_asset_wallets(total_amount_larger_than,\ - \ asset_id, order_by, before, after, limit);" + code: "response = fireblocks.blockchains_&_assets.get_asset(id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getAssetWallets(vaultsApiGetAssetWalletsRequest);" + source: "const response: Promise> = fireblocks.blockchainsAssets.getAsset(blockchainsAssetsApiGetAssetRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.vaults().getAssetWallets(totalAmountLargerThan, assetId,\ - \ orderBy, before, after, limit);" + source: "CompletableFuture> response = fireblocks.blockchainsAssets().getAsset(id,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.get_asset_wallets(total_amount_larger_than,\ - \ asset_id, order_by, before, after, limit);" + source: "response = fireblocks.blockchains_&_assets.get_asset(id, idempotency_key);" x-accepts: - application/json - /vault/accounts/{vaultAccountId}/hide: - post: + patch: description: |- - Hides the requested vault account from the web console view. - This operation is required when creating thousands of vault accounts to serve your end-users. - Used for preventing the web console to be swamped with too much vault accounts. - Learn more in the following [guide](https://developers.fireblocks.com/docs/create-direct-custody-wallets#hiding-vault-accounts). - NOTE: Hiding the vault account from the web console will also hide all the related transactions to/from this vault. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: hideVaultAccount + Update the user’s metadata for an asset. + + Endpoint Permission: Owner, Admin, Non-Signing Admin, NCW Admin, Signer, Editor. + operationId: updateAssetUserMetadata parameters: - - description: The vault account to hide + - description: The ID or legacyId of the asset + example: ETH explode: false in: path - name: vaultAccountId + name: id required: true schema: - format: numeric type: string - x-fb-entity: vault_account + 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\ @@ -613,70 +939,85 @@ paths: schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateAssetUserMetadataRequest" responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/VaultActionStatus" - description: OK + $ref: "#/components/schemas/Asset" + description: Updated asset user metadata headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetNotFoundErrorResponse" + description: | + - Asset with specified ID or legacy ID is not found. Error code 1504 + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetInternalServerErrorResponse" + description: Error occurred while updating asset user metadata default: $ref: "#/components/responses/Error" - summary: Hide a vault account in the console + summary: Update the user’s metadata for an asset tags: - - Vaults + - Blockchains & assets x-rate-limit-category: write x-readme: code-samples: - language: python - code: vaultAsset = fireblocks.hide_vault_account(vault_account_id) + code: "asset = fireblocks.update_asset_user_metadata(asset_id, update_asset_user_metadata_request)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const vaultAsset = await fireblocks.hideVaultAccount(vaultAccountId); + code: "const asset = await fireblocks.updateAssetUserMetadata(assetId, updateAssetUserMetadataRequest);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.vaults.hideVaultAccount(vaultsApiHideVaultAccountRequest);" + code: "const response: Promise> = fireblocks.blockchainsAssets.updateAssetUserMetadata(blockchainsAssetsApiUpdateAssetUserMetadataRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().hideVaultAccount(vaultAccountId,\ - \ idempotencyKey);" + code: "CompletableFuture> response = fireblocks.blockchainsAssets().updateAssetUserMetadata(id,\ + \ updateAssetUserMetadataRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.hide_vault_account(vault_account_id,\ - \ idempotency_key);" + code: "response = fireblocks.blockchains_&_assets.update_asset_user_metadata(id,\ + \ update_asset_user_metadata_request, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.vaults.hideVaultAccount(vaultsApiHideVaultAccountRequest);" + source: "const response: Promise> = fireblocks.blockchainsAssets.updateAssetUserMetadata(blockchainsAssetsApiUpdateAssetUserMetadataRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().hideVaultAccount(vaultAccountId,\ - \ idempotencyKey);" + source: "CompletableFuture> response = fireblocks.blockchainsAssets().updateAssetUserMetadata(id,\ + \ updateAssetUserMetadataRequest, idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.hide_vault_account(vault_account_id,\ - \ idempotency_key);" + source: "response = fireblocks.blockchains_&_assets.update_asset_user_metadata(id,\ + \ update_asset_user_metadata_request, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /vault/accounts/{vaultAccountId}/unhide: + /assets/prices/{id}: post: - description: |- - Makes a hidden vault account visible in web console view. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: unhideVaultAccount + description: | + Set asset price for the given asset id. Returns the asset price response. + operationId: setAssetPrice parameters: - - description: The vault account to unhide + - description: The ID of the asset + example: ETH explode: false in: path - name: vaultAccountId + name: id required: true schema: - format: numeric type: string - x-fb-entity: vault_account 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\ @@ -689,457 +1030,494 @@ paths: schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SetAssetPriceRequest" responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/VaultActionStatus" - description: OK - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Unhide a vault account in the console - tags: - - Vaults + $ref: "#/components/schemas/AssetPriceResponse" + description: Asset price has been set successfully. + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetPriceForbiddenErrorResponse" + description: | + - Tenant is not allowed to set rate. Error code: 1002. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetPriceNotFoundErrorResponse" + description: | + - Currency not found. Error code 1001 + default: + $ref: "#/components/responses/Error" + summary: Set asset price + tags: + - Blockchains & assets x-rate-limit-category: write x-readme: code-samples: - language: python - code: vaultAsset = fireblocks.unhide_vault_account(vault_account_id) + code: "supportedAssets = fireblocks.set_asset_price(id, currency, price)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const vaultAsset = await fireblocks.unhideVaultAccount(vaultAccountId); + code: "const supportedAssets = await fireblocks.setAssetPrice(id, currency,\ + \ price);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.vaults.unhideVaultAccount(vaultsApiUnhideVaultAccountRequest);" + code: "const response: Promise> =\ + \ fireblocks.blockchainsAssets.setAssetPrice(blockchainsAssetsApiSetAssetPriceRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().unhideVaultAccount(vaultAccountId,\ - \ idempotencyKey);" + code: "CompletableFuture> response = fireblocks.blockchainsAssets().setAssetPrice(id,\ + \ setAssetPriceRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.unhide_vault_account(vault_account_id,\ + code: "response = fireblocks.blockchains_&_assets.set_asset_price(id, set_asset_price_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.vaults.unhideVaultAccount(vaultsApiUnhideVaultAccountRequest);" + source: "const response: Promise> =\ + \ fireblocks.blockchainsAssets.setAssetPrice(blockchainsAssetsApiSetAssetPriceRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().unhideVaultAccount(vaultAccountId,\ - \ idempotencyKey);" + source: "CompletableFuture> response = fireblocks.blockchainsAssets().setAssetPrice(id,\ + \ setAssetPriceRequest, idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.unhide_vault_account(vault_account_id,\ + source: "response = fireblocks.blockchains_&_assets.set_asset_price(id, set_asset_price_request,\ \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /vault/accounts/{vaultAccountId}/{assetId}/activate: - post: - description: "Initiates activation for a wallet in a vault account. \nActivation\ - \ is required for tokens that need an on-chain transaction for creation (XLM\ - \ tokens, SOL tokens etc).\nEndpoint Permission: Admin, Non-Signing Admin,\ - \ Signer, Approver, Editor." - operationId: activateAssetForVaultAccount + /blockchains: + get: + description: | + Returns all blockchains supported by Fireblocks. + operationId: listBlockchains parameters: - - description: "The ID of the vault account to return, or 'default' for the\ - \ default vault account" - explode: false - in: path - name: vaultAccountId - required: true + - description: Blockchain protocol + example: SOL + explode: true + in: query + name: protocol + required: false 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 + style: form + - description: Is blockchain deprecated + example: false + explode: true + in: query + name: deprecated + required: false 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 + type: boolean + style: form + - description: Is test blockchain + example: false + explode: true + in: query + name: test required: false schema: - type: string - style: simple - - description: Optional immutable blockchain wallet type to store per tenant+vault + type: boolean + style: form + - description: A list of blockchain IDs (max 100) + example: + - 3ed32525-70df-45c8-bae3-e69ab56dc095 + - 3a3b5f06-61e7-44f0-9962-4425b55795ff + - MANTRA explode: true in: query - name: blockchainWalletType + name: ids + required: false + schema: + items: + type: string + type: array + style: form + - description: Page cursor to fetch + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + explode: true + in: query + name: pageCursor required: false schema: type: string style: form + - description: Items per page (max 500) + example: 500 + explode: true + in: query + name: pageSize + required: false + schema: + default: 500 + maximum: 500 + minimum: 1 + type: number + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/CreateVaultAssetResponse" - description: OK - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/ListBlockchainsResponse" + description: List of supported blockchains + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetInternalServerErrorResponse" + description: Error occurred while listing blockchains default: $ref: "#/components/responses/Error" - summary: Activate a wallet in a vault account + summary: List blockchains tags: - - Vaults - x-rate-limit-category: write + - Blockchains & assets + x-rate-limit-category: external_query x-readme: code-samples: + - language: python + code: blockchains = fireblocks.listBlockchains(filters) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const blockchains = await fireblocks.listBlockchains(filters); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.activateAssetForVaultAccount(vaultsApiActivateAssetForVaultAccountRequest);" + code: "const response: Promise>\ + \ = fireblocks.blockchainsAssets.listBlockchains(blockchainsAssetsApiListBlockchainsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.vaults().activateAssetForVaultAccount(vaultAccountId, assetId,\ - \ blockchainWalletType, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.blockchainsAssets().listBlockchains(protocol, deprecated,\ + \ test, ids, pageCursor, pageSize);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.activate_asset_for_vault_account(vault_account_id,\ - \ asset_id, blockchain_wallet_type, idempotency_key);" + code: "response = fireblocks.blockchains_&_assets.list_blockchains(protocol,\ + \ deprecated, test, ids, page_cursor, page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.activateAssetForVaultAccount(vaultsApiActivateAssetForVaultAccountRequest);" + source: "const response: Promise>\ + \ = fireblocks.blockchainsAssets.listBlockchains(blockchainsAssetsApiListBlockchainsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.vaults().activateAssetForVaultAccount(vaultAccountId, assetId,\ - \ blockchainWalletType, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.blockchainsAssets().listBlockchains(protocol, deprecated,\ + \ test, ids, pageCursor, pageSize);" - lang: Python - source: "response = fireblocks.vaults.activate_asset_for_vault_account(vault_account_id,\ - \ asset_id, blockchain_wallet_type, idempotency_key);" + source: "response = fireblocks.blockchains_&_assets.list_blockchains(protocol,\ + \ deprecated, test, ids, page_cursor, page_size);" x-accepts: - application/json - /vault/accounts/{vaultAccountId}/set_customer_ref_id: - post: - description: "Assigns an AML/KYT customer reference ID for the vault account.\ - \ Learn more about Fireblocks AML management in the following [guide](https://developers.fireblocks.com/docs/define-aml-policies).\ - \ Endpoint Permission: Admin, Non-Signing Admin." - operationId: setVaultAccountCustomerRefId + /blockchains/{id}: + get: + description: | + Returns a blockchain by ID or legacyID. + operationId: getBlockchain parameters: - - description: The vault account ID + - description: The ID or legacyId of the blockchain + example: ETH explode: false in: path - name: vaultAccountId + name: id required: true - schema: - format: numeric - type: string - x-fb-entity: vault_account - 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/SetCustomerRefIdRequest" - required: true responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/VaultActionStatus" - description: OK + $ref: "#/components/schemas/BlockchainResponse" + description: Blockchain with requested identification headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/BlockchainNotFoundErrorResponse" + description: | + - Blockchain with specified ID or legacy ID is not found. Error code 1505 + "500": + content: + application/json: + schema: + $ref: "#/components/schemas/AssetInternalServerErrorResponse" + description: Error occurred while getting an blockchain default: $ref: "#/components/responses/Error" - summary: Set an AML/KYT ID for a vault account + summary: Get a Blockchain by ID tags: - - Vaults - x-rate-limit-category: write + - Blockchains & assets + x-rate-limit-category: external_query x-readme: code-samples: - language: python - code: "vaultAsset = fireblocks.set_vault_account_customer_ref_id(vault_account_id,\ - \ customer_ref_id)" + code: blockchain = fireblocks.getBlockchainById(blockchainId) name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const vaultAsset = await fireblocks.setCustomerRefIdForVaultAccount(vaultAccountId,\ - \ customerRefId);" + code: const blockchain = await fireblocks.getBlockchainById(blockchainId); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.vaults.setVaultAccountCustomerRefId(vaultsApiSetVaultAccountCustomerRefIdRequest);" + code: "const response: Promise> =\ + \ fireblocks.blockchainsAssets.getBlockchain(blockchainsAssetsApiGetBlockchainRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().setVaultAccountCustomerRefId(setCustomerRefIdRequest,\ - \ vaultAccountId, idempotencyKey);" + code: CompletableFuture> response = fireblocks.blockchainsAssets().getBlockchain(id); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.set_vault_account_customer_ref_id(set_customer_ref_id_request,\ - \ vault_account_id, idempotency_key);" + code: response = fireblocks.blockchains_&_assets.get_blockchain(id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.vaults.setVaultAccountCustomerRefId(vaultsApiSetVaultAccountCustomerRefIdRequest);" + source: "const response: Promise> =\ + \ fireblocks.blockchainsAssets.getBlockchain(blockchainsAssetsApiGetBlockchainRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().setVaultAccountCustomerRefId(setCustomerRefIdRequest,\ - \ vaultAccountId, idempotencyKey);" + source: CompletableFuture> response = fireblocks.blockchainsAssets().getBlockchain(id); - lang: Python - source: "response = fireblocks.vaults.set_vault_account_customer_ref_id(set_customer_ref_id_request,\ - \ vault_account_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.blockchains_&_assets.get_blockchain(id); x-accepts: - application/json - /vault/accounts/{vaultAccountId}/set_auto_fuel: - post: - description: |- - Toggles the auto fueling property of the vault account to enabled or disabled. - Vault Accounts with 'autoFuel=true' are monitored and auto fueled by the Fireblocks Gas Station. - Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: setVaultAccountAutoFuel - parameters: - - description: The vault account ID - explode: false - in: path - name: vaultAccountId - required: true - schema: - format: numeric - type: string - x-fb-entity: vault_account - 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/SetAutoFuelRequest" - required: true + /supported_assets: + get: + description: | + **This legacy endpoint has not been deprecated but it should not be used in your operations. Instead, use the new [List assets](https://developers.fireblocks.com/reference/listassets) endpoint for better performance and to retrieve more detailed asset information.** + + Retrieves all assets supported by Fireblocks in your workspace. + + **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: getSupportedAssets responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/VaultActionStatus" - description: OK + $ref: "#/components/schemas/GetSupportedAssetsResponse" + description: A Transaction object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Set auto fueling to on or off + summary: List assets (Legacy) tags: - - Vaults - x-rate-limit-category: write + - Blockchains & assets + x-rate-limit-category: external_query x-readme: code-samples: + - language: python + code: supportedAssets = fireblocks.get_supported_assets() + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const supportedAssets = await fireblocks.getSupportedAssets(); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.vaults.setVaultAccountAutoFuel(vaultsApiSetVaultAccountAutoFuelRequest);" + code: "const response: Promise>\ + \ = fireblocks.blockchainsAssets.getSupportedAssets();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().setVaultAccountAutoFuel(setAutoFuelRequest,\ - \ vaultAccountId, idempotencyKey);" + code: CompletableFuture>> response = + fireblocks.blockchainsAssets().getSupportedAssets(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.set_vault_account_auto_fuel(set_auto_fuel_request,\ - \ vault_account_id, idempotency_key);" + code: response = fireblocks.blockchains_&_assets.get_supported_assets(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.vaults.setVaultAccountAutoFuel(vaultsApiSetVaultAccountAutoFuelRequest);" + source: "const response: Promise>\ + \ = fireblocks.blockchainsAssets.getSupportedAssets();" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().setVaultAccountAutoFuel(setAutoFuelRequest,\ - \ vaultAccountId, idempotencyKey);" + source: CompletableFuture>> response = + fireblocks.blockchainsAssets().getSupportedAssets(); - lang: Python - source: "response = fireblocks.vaults.set_vault_account_auto_fuel(set_auto_fuel_request,\ - \ vault_account_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.blockchains_&_assets.get_supported_assets(); x-accepts: - application/json - /vault/accounts/{vaultAccountId}/usdc_gateway: + /address_registry/legal_entities/{address}: get: - description: |- - Returns the USDC Gateway wallet information associated with the given vault account. - **Note:** This endpoint is currently in beta and might be subject to changes. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getUsdcGatewayWalletInfoBeta + description: "Returns legal entity information for the given blockchain address\ + \ (LEI data availability, LEI identifier, Travel Rule providers, contact email,\ + \ and related fields — see response schema). URL-encode `{address}` when required." + operationId: getLegalEntityForAddress parameters: - - description: The ID of the vault account + - description: Blockchain address to look up explode: false in: path - name: vaultAccountId + name: address required: true schema: - format: numeric + example: 0x742d35cc6634c0532925a3b844bc9e7595f0beb0 type: string - x-fb-entity: vault_account style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/UsdcGatewayWalletInfoResponse" - description: USDC Gateway wallet information + $ref: "#/components/schemas/AddressRegistryLegalEntity" + 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 — 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" + "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: Get USDC Gateway wallet info + summary: Look up legal entity by blockchain address tags: - - Vaults - x-rate-limit-category: read + - Compliance + x-rate-limit-category: high_compute x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getUsdcGatewayWalletInfoBeta(vaultsApiGetUsdcGatewayWalletInfoBetaRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.getLegalEntityForAddress(complianceApiGetLegalEntityForAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.vaults().getUsdcGatewayWalletInfoBeta(vaultAccountId); + code: CompletableFuture> response + = fireblocks.compliance().getLegalEntityForAddress(address); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.vaults.get_usdc_gateway_wallet_info_beta(vault_account_id); + code: response = fireblocks.compliance.get_legal_entity_for_address(address); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getUsdcGatewayWalletInfoBeta(vaultsApiGetUsdcGatewayWalletInfoBetaRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.getLegalEntityForAddress(complianceApiGetLegalEntityForAddressRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.vaults().getUsdcGatewayWalletInfoBeta(vaultAccountId); + source: CompletableFuture> response + = fireblocks.compliance().getLegalEntityForAddress(address); - lang: Python - source: response = fireblocks.vaults.get_usdc_gateway_wallet_info_beta(vault_account_id); + source: response = fireblocks.compliance.get_legal_entity_for_address(address); x-accepts: - application/json - /vault/accounts/{vaultAccountId}/usdc_gateway/activate: - post: - description: |- - Activates the USDC Gateway wallet associated with the given vault account. If the wallet does not yet exist it is created in an activated state. - **Note:** This endpoint is currently in beta and might be subject to changes. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. - operationId: activateUsdcGatewayWalletBeta - 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: "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 + /address_registry/tenant: + delete: + description: Opts the workspace out. No request body. Response uses the same + JSON shape as GET; status is OPTED_OUT. + operationId: optOutAddressRegistryTenant responses: "200": content: application/json: schema: - $ref: "#/components/schemas/UsdcGatewayWalletStatusResponse" - description: USDC Gateway wallet activated successfully + $ref: "#/components/schemas/AddressRegistryTenantRegistryResponse" + description: Success; response body includes status OPTED_OUT headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Activate a USDC Gateway wallet + summary: Opt the workspace out of the address registry tags: - - Vaults + - Compliance x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.activateUsdcGatewayWalletBeta(vaultsApiActivateUsdcGatewayWalletBetaRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.optOutAddressRegistryTenant();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.vaults().activateUsdcGatewayWalletBeta(vaultAccountId,\ - \ idempotencyKey);" + code: CompletableFuture> + response = fireblocks.compliance().optOutAddressRegistryTenant(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.activate_usdc_gateway_wallet_beta(vault_account_id,\ - \ idempotency_key);" + code: response = fireblocks.compliance.opt_out_address_registry_tenant(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.activateUsdcGatewayWalletBeta(vaultsApiActivateUsdcGatewayWalletBetaRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.optOutAddressRegistryTenant();" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.vaults().activateUsdcGatewayWalletBeta(vaultAccountId, idempotencyKey);" + source: CompletableFuture> + response = fireblocks.compliance().optOutAddressRegistryTenant(); - lang: Python - source: "response = fireblocks.vaults.activate_usdc_gateway_wallet_beta(vault_account_id,\ - \ idempotency_key);" + source: response = fireblocks.compliance.opt_out_address_registry_tenant(); x-accepts: - application/json - /vault/accounts/{vaultAccountId}/usdc_gateway/deactivate: - post: - description: |- - Deactivates the USDC Gateway wallet associated with the given vault account. - **Note:** This endpoint is currently in beta and might be subject to changes. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. - operationId: deactivateUsdcGatewayWalletBeta - 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 + get: + description: Returns whether the workspace is `OPTED_IN` or `OPTED_OUT` of the + address registry. + operationId: getAddressRegistryTenantParticipationStatus + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryTenantRegistryResponse" + description: Participation status in the response body + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get address registry participation status for the authenticated workspace + tags: + - Compliance + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.getAddressRegistryTenantParticipationStatus();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> + response = fireblocks.compliance().getAddressRegistryTenantParticipationStatus(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.get_address_registry_tenant_participation_status(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.getAddressRegistryTenantParticipationStatus();" + - lang: Java + source: CompletableFuture> + response = fireblocks.compliance().getAddressRegistryTenantParticipationStatus(); + - lang: Python + source: response = fireblocks.compliance.get_address_registry_tenant_participation_status(); + x-accepts: + - application/json + post: + description: Opts the workspace in. No request body. Response uses the same + JSON shape as GET; status is OPTED_IN. + operationId: optInAddressRegistryTenant + 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\ @@ -1156,252 +1534,183 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UsdcGatewayWalletStatusResponse" - description: USDC Gateway wallet deactivated successfully + $ref: "#/components/schemas/AddressRegistryTenantRegistryResponse" + description: Success; response body includes status OPTED_IN headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Deactivate a USDC Gateway wallet + summary: Opt the workspace in to the address registry tags: - - Vaults + - Compliance x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.deactivateUsdcGatewayWalletBeta(vaultsApiDeactivateUsdcGatewayWalletBetaRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.optInAddressRegistryTenant(complianceApiOptInAddressRegistryTenantRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.vaults().deactivateUsdcGatewayWalletBeta(vaultAccountId,\ - \ idempotencyKey);" + code: CompletableFuture> + response = fireblocks.compliance().optInAddressRegistryTenant(idempotencyKey); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.deactivate_usdc_gateway_wallet_beta(vault_account_id,\ - \ idempotency_key);" + code: response = fireblocks.compliance.opt_in_address_registry_tenant(idempotency_key); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.deactivateUsdcGatewayWalletBeta(vaultsApiDeactivateUsdcGatewayWalletBetaRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.optInAddressRegistryTenant(complianceApiOptInAddressRegistryTenantRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.vaults().deactivateUsdcGatewayWalletBeta(vaultAccountId,\ - \ idempotencyKey);" + source: CompletableFuture> + response = fireblocks.compliance().optInAddressRegistryTenant(idempotencyKey); - lang: Python - source: "response = fireblocks.vaults.deactivate_usdc_gateway_wallet_beta(vault_account_id,\ - \ idempotency_key);" + source: response = fireblocks.compliance.opt_in_address_registry_tenant(idempotency_key); x-accepts: - application/json - /vault/accounts/{vaultAccountId}/{assetId}: - get: - description: |- - Returns a specific vault wallet balance information for a specific asset. - - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, - Viewer. - operationId: getVaultAccountAsset - parameters: - - description: The ID of the vault account to return - 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 + /address_registry/vaults: + delete: + description: Removes all vault accounts from the workspace opt-out list. + operationId: removeAllAddressRegistryVaultOptOuts responses: "200": content: application/json: schema: - $ref: "#/components/schemas/VaultAsset" - description: A VaultAsset object + $ref: "#/components/schemas/AddressRegistryRemoveAllVaultOptOutsResponse" + description: All opt-outs cleared; response body includes `removedCount`. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get the asset balance for a vault account + summary: Remove all vault-level address registry opt-outs for the workspace tags: - - Vaults - x-rate-limit-category: read + - Compliance + x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "vaultAsset = fireblocks.get_vault_account_asset(vault_account_id,\ - \ asset_id)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const vaultAsset = await fireblocks.getVaultAccountAsset(vaultAccountId,\ - \ assetId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.vaults.getVaultAccountAsset(vaultsApiGetVaultAccountAssetRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.removeAllAddressRegistryVaultOptOuts();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().getVaultAccountAsset(vaultAccountId,\ - \ assetId);" + code: CompletableFuture> + response = fireblocks.compliance().removeAllAddressRegistryVaultOptOuts(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.get_vault_account_asset(vault_account_id,\ - \ asset_id);" + code: response = fireblocks.compliance.remove_all_address_registry_vault_opt_outs(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.vaults.getVaultAccountAsset(vaultsApiGetVaultAccountAssetRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.removeAllAddressRegistryVaultOptOuts();" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().getVaultAccountAsset(vaultAccountId,\ - \ assetId);" + source: CompletableFuture> + response = fireblocks.compliance().removeAllAddressRegistryVaultOptOuts(); - lang: Python - source: "response = fireblocks.vaults.get_vault_account_asset(vault_account_id,\ - \ asset_id);" + source: response = fireblocks.compliance.remove_all_address_registry_vault_opt_outs(); x-accepts: - application/json - post: - description: |- - Creates a wallet for a specific asset in a vault account. - Learn more about Fireblocks Vault Wallets in the following [guide](https://developers.fireblocks.com/reference/create-vault-wallet). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: createVaultAccountAsset + get: + description: "Lists vault accounts that are opted out of the address registry\ + \ for this workspace. Pagination uses `next` and `prev` cursors from the response.\ + \ If `pageSize` is omitted, **50** items are returned per page; allowed range\ + \ is **1–100** per request." + operationId: listAddressRegistryVaultOptOuts parameters: - - description: "The ID of the vault account to return, or 'default' for the\ - \ default 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 + - description: Opaque cursor from a previous response (`next` or `prev`). Omit + for the first page. + explode: true + in: query + name: pageCursor required: false schema: + example: eyJvZmZzZXQiOjAsInBhZ2VTaXplIjoxMH0 type: string - style: simple - - description: Optional immutable blockchain wallet type to store per tenant+vault + style: form + - description: Page size. Default **50** if omitted; must be between **1** and + **100**. explode: true in: query - name: blockchainWalletType + name: pageSize required: false schema: - type: string + default: 50 + example: 50 + format: int32 + maximum: 100 + minimum: 1 + type: integer style: form - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateAssetsRequest" + - description: Sort direction by vault account id. Omit for ascending; use the + enum value for descending. + explode: true + in: query + name: order required: false + schema: + $ref: "#/components/schemas/AddressRegistryVaultListOrder" + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/CreateVaultAssetResponse" - description: OK + $ref: "#/components/schemas/AddressRegistryListVaultOptOutsResponse" + description: Page of vault opt-out rows + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryError" + description: Validation error (e.g. invalid or malformed pageCursor) headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create a new vault wallet + summary: List vault-level address registry opt-outs (paginated) tags: - - Vaults - x-rate-limit-category: write + - Compliance + x-rate-limit-category: read x-readme: code-samples: - - language: python - code: "vaultAsset = fireblocks.create_vault_asset(vault_account_id, asset_id)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const vaultAsset = await fireblocks.createVaultAsset(vaultAccountId,\ - \ assetId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.createVaultAccountAsset(vaultsApiCreateVaultAccountAssetRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.listAddressRegistryVaultOptOuts(complianceApiListAddressRegistryVaultOptOutsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.vaults().createVaultAccountAsset(vaultAccountId, assetId,\ - \ createAssetsRequest, blockchainWalletType, idempotencyKey);" + code: "CompletableFuture>\ + \ response = fireblocks.compliance().listAddressRegistryVaultOptOuts(pageCursor,\ + \ pageSize, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.create_vault_account_asset(vault_account_id,\ - \ asset_id, create_assets_request, blockchain_wallet_type, idempotency_key);" + code: "response = fireblocks.compliance.list_address_registry_vault_opt_outs(page_cursor,\ + \ page_size, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.createVaultAccountAsset(vaultsApiCreateVaultAccountAssetRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.listAddressRegistryVaultOptOuts(complianceApiListAddressRegistryVaultOptOutsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.vaults().createVaultAccountAsset(vaultAccountId, assetId,\ - \ createAssetsRequest, blockchainWalletType, idempotencyKey);" + source: "CompletableFuture>\ + \ response = fireblocks.compliance().listAddressRegistryVaultOptOuts(pageCursor,\ + \ pageSize, order);" - lang: Python - source: "response = fireblocks.vaults.create_vault_account_asset(vault_account_id,\ - \ asset_id, create_assets_request, blockchain_wallet_type, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.compliance.list_address_registry_vault_opt_outs(page_cursor,\ + \ page_size, order);" x-accepts: - application/json - /vault/accounts/{vaultAccountId}/{assetId}/balance: post: - description: |- - Updates the balance of a specific asset in a vault account. - - This API endpoint is subject to a strict rate limit. - Should be used by clients in very specific scenarios. - - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: updateVaultAccountAssetBalance + description: Adds one or more vault account ids to the workspace opt-out list + for the address registry. + operationId: addAddressRegistryVaultOptOuts parameters: - - description: The ID of the vault account to return - 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\ @@ -1413,607 +1722,475 @@ paths: schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryAddVaultOptOutsRequest" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/VaultAsset" - description: A VaultAsset object + $ref: "#/components/schemas/AddressRegistryAddVaultOptOutsResponse" + description: Opt-outs recorded; response body includes `acceptedCount`. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryError" + description: Validation error (e.g. empty list or invalid vault ids) headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Refresh asset balance data + summary: Add vault accounts to the address registry opt-out list tags: - - Vaults - x-rate-limit-category: high_compute + - Compliance + x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "vaultAsset = fireblocks.refresh_vault_asset_balance(vault_account_id,\ - \ asset_id)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const vaultAsset = await fireblocks.refreshVaultAssetBalance(vaultAccountId,\ - \ assetId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.vaults.updateVaultAccountAssetBalance(vaultsApiUpdateVaultAccountAssetBalanceRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.addAddressRegistryVaultOptOuts(complianceApiAddAddressRegistryVaultOptOutsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().updateVaultAccountAssetBalance(vaultAccountId,\ - \ assetId, idempotencyKey);" + code: "CompletableFuture>\ + \ response = fireblocks.compliance().addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.update_vault_account_asset_balance(vault_account_id,\ - \ asset_id, idempotency_key);" + code: "response = fireblocks.compliance.add_address_registry_vault_opt_outs(address_registry_add_vault_opt_outs_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.vaults.updateVaultAccountAssetBalance(vaultsApiUpdateVaultAccountAssetBalanceRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.addAddressRegistryVaultOptOuts(complianceApiAddAddressRegistryVaultOptOutsRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().updateVaultAccountAssetBalance(vaultAccountId,\ - \ assetId, idempotencyKey);" + source: "CompletableFuture>\ + \ response = fireblocks.compliance().addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.update_vault_account_asset_balance(vault_account_id,\ - \ asset_id, idempotency_key);" + source: "response = fireblocks.compliance.add_address_registry_vault_opt_outs(address_registry_add_vault_opt_outs_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /vault/accounts/{vaultAccountId}/{assetId}/addresses: - get: - deprecated: true - description: |- - DEPRECATED! - - - If your application logic or scripts rely on the deprecated endpoint, you should update to account for GET/V1/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated before Mar 31,2024. - - All workspaces created after Mar 31,2024. will have it disabled. If it is disabled for your workspace and you attempt to use it, you will receive the following error message: "This endpoint is unavailable. - - Please use the GET /v1/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated endpoint to return all the wallet addresses associated with the specified vault account and asset in a paginated list. - - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getVaultAccountAssetAddresses + /address_registry/vaults/{vaultAccountId}: + delete: + description: "Removes this vault account id from the workspace opt-out list\ + \ if it is present; otherwise the call still succeeds. Response body matches\ + \ GET (`optedOut` is `false` after success). To clear the whole list, use\ + \ `DELETE /v1/address_registry/vaults`." + operationId: removeAddressRegistryVaultOptOut parameters: - - description: The ID of the vault account to return + - description: Vault account id (non-negative integer). 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 + example: 10001 + format: int32 + minimum: 0 + type: integer style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetVaultAccountAssetAddressesResponse" - description: A list of deposit addresses + $ref: "#/components/schemas/AddressRegistryRemoveVaultOptOutResponse" + description: Success; `optedOut` is false (list entry removed if it existed) + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryError" + description: Invalid path parameter (e.g. negative or out-of-range vault + account id) headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get asset addresses + summary: Remove a single vault account from the address registry opt-out list tags: - - Vaults - x-internal: true - x-rate-limit-category: query + - Compliance + x-rate-limit-category: write x-readme: code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.removeAddressRegistryVaultOptOut(complianceApiRemoveAddressRegistryVaultOptOutRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> + response = fireblocks.compliance().removeAddressRegistryVaultOptOut(vaultAccountId); + name: Fireblocks SDK Java example - language: python - code: "depositAddresses = fireblocks.get_deposit_addresses(vault_account_id,\ - \ asset_id)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const depositAddresses = await fireblocks.getDepositAddresses(vaultAccountId,\ - \ assetId);" - name: Fireblocks SDK Javascript example + code: response = fireblocks.compliance.remove_address_registry_vault_opt_out(vault_account_id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.removeAddressRegistryVaultOptOut(complianceApiRemoveAddressRegistryVaultOptOutRequest);" + - lang: Java + source: CompletableFuture> + response = fireblocks.compliance().removeAddressRegistryVaultOptOut(vaultAccountId); + - lang: Python + source: response = fireblocks.compliance.remove_address_registry_vault_opt_out(vault_account_id); x-accepts: - application/json - post: - description: |- - Creates a new deposit address for an asset of a vault account. - Should be used for UTXO or Tag/Memo based assets ONLY. - - Requests with account based assets will fail. - - Endpoint Permission: Admin, Non-Signing Admin. - operationId: createVaultAccountAssetAddress + get: + description: "Returns whether this vault account is on the workspace opt-out\ + \ list (`optedOut` true or false). List, add, and clear-all are available\ + \ on `/v1/address_registry/vaults`; this path reads or removes one vault." + operationId: getAddressRegistryVaultOptOut parameters: - - description: The ID of the vault account to return + - description: Vault account id (non-negative integer). 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 + example: 10001 + format: int32 + minimum: 0 + type: integer style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateAddressRequest" - required: false responses: "200": content: application/json: schema: - $ref: "#/components/schemas/CreateAddressResponse" - description: The created address - headers: + $ref: "#/components/schemas/AddressRegistryGetVaultOptOutResponse" + description: Current opt-out flag for the vault + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/AddressRegistryError" + description: Invalid path parameter (e.g. negative or out-of-range vault + account id) + headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create new asset deposit address + summary: Get whether a vault account is opted out of the address registry tags: - - Vaults - x-rate-limit-category: write + - Compliance + x-rate-limit-category: read x-readme: code-samples: - - language: python - code: "address = fireblocks.generate_new_address(vault_account_id, asset_id,\ - \ description, customer_ref_id)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const address = await fireblocks.generateNewAddress(vaultAccountId,\ - \ assetId, description, customerRefId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.createVaultAccountAssetAddress(vaultsApiCreateVaultAccountAssetAddressRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.getAddressRegistryVaultOptOut(complianceApiGetAddressRegistryVaultOptOutRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.vaults().createVaultAccountAssetAddress(vaultAccountId, assetId,\ - \ createAddressRequest, idempotencyKey);" + code: CompletableFuture> + response = fireblocks.compliance().getAddressRegistryVaultOptOut(vaultAccountId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.create_vault_account_asset_address(vault_account_id,\ - \ asset_id, create_address_request, idempotency_key);" + code: response = fireblocks.compliance.get_address_registry_vault_opt_out(vault_account_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.createVaultAccountAssetAddress(vaultsApiCreateVaultAccountAssetAddressRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.getAddressRegistryVaultOptOut(complianceApiGetAddressRegistryVaultOptOutRequest);" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.vaults().createVaultAccountAssetAddress(vaultAccountId, assetId,\ - \ createAddressRequest, idempotencyKey);" + source: CompletableFuture> + response = fireblocks.compliance().getAddressRegistryVaultOptOut(vaultAccountId); - lang: Python - source: "response = fireblocks.vaults.create_vault_account_asset_address(vault_account_id,\ - \ asset_id, create_address_request, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.compliance.get_address_registry_vault_opt_out(vault_account_id); x-accepts: - application/json - /vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated: + /counterparty_groups: get: - description: |- - Returns a paginated response of the addresses for a given vault account and asset. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getVaultAccountAssetAddressesPaginated + description: | + Returns a paginated list of counterparty groups. + + **Endpoint Permissions:** Admin, Non-Signing Admin, Viewer. + operationId: listCounterpartyGroups parameters: - - description: The ID of the vault account to return - 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 - - explode: true - in: query - name: limit - required: false - schema: - type: number - style: form - - explode: true + - description: Cursor of the required page + explode: true in: query - name: before + name: pageCursor required: false schema: type: string style: form - - explode: true + - description: Maximum number of items in the page + explode: true in: query - name: after + name: pageSize required: false schema: - type: string + default: 50 + maximum: 100 + minimum: 1 + type: integer style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/PaginatedAddressResponse" - description: "A paginated list of addresses, and pagination info." + $ref: "#/components/schemas/CounterpartyGroupsPaginatedResponse" + description: A paginated list of counterparty groups headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get addresses (Paginated) + summary: List counterparty groups tags: - - Vaults + - Compliance x-rate-limit-category: query x-readme: code-samples: - - language: python - code: "addresses = vault_accounts = fireblocks.get_paginated_addresses(\"\ - 0\",\"ETH_TEST3\")" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const addresses = await fireblocks.getPaginatedAddresses(\"0\",\"\ - ETH_TEST3\");" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getVaultAccountAssetAddressesPaginated(vaultsApiGetVaultAccountAssetAddressesPaginatedRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.listCounterpartyGroups(complianceApiListCounterpartyGroupsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.vaults().getVaultAccountAssetAddressesPaginated(vaultAccountId,\ - \ assetId, limit, before, after);" + code: "CompletableFuture>\ + \ response = fireblocks.compliance().listCounterpartyGroups(pageCursor,\ + \ pageSize);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.get_vault_account_asset_addresses_paginated(vault_account_id,\ - \ asset_id, limit, before, after);" + code: "response = fireblocks.compliance.list_counterparty_groups(page_cursor,\ + \ page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getVaultAccountAssetAddressesPaginated(vaultsApiGetVaultAccountAssetAddressesPaginatedRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.listCounterpartyGroups(complianceApiListCounterpartyGroupsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.vaults().getVaultAccountAssetAddressesPaginated(vaultAccountId,\ - \ assetId, limit, before, after);" + source: "CompletableFuture>\ + \ response = fireblocks.compliance().listCounterpartyGroups(pageCursor,\ + \ pageSize);" - lang: Python - source: "response = fireblocks.vaults.get_vault_account_asset_addresses_paginated(vault_account_id,\ - \ asset_id, limit, before, after);" + source: "response = fireblocks.compliance.list_counterparty_groups(page_cursor,\ + \ page_size);" x-accepts: - application/json - /vault/accounts/{vaultAccountId}/{assetId}/max_spendable_amount: - get: + post: description: | - **UTXO assets only.** - - Retrieve the maximum amount of the specified asset that can be spent in a single transaction from the specified vault account. + Creates a new counterparty group. - **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getMaxSpendableAmount + **Endpoint Permissions:** Admin, Non-Signing Admin. + operationId: createCounterpartyGroup parameters: - - description: "The ID of the vault account, or 'default' for the default vault\ - \ account" + - 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: path - name: vaultAccountId - required: true + in: header + name: Idempotency-Key + required: false schema: - format: numeric type: string - x-fb-entity: vault_account style: simple - - description: The ID of the asset - explode: false - in: path - name: assetId + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateCounterpartyGroupRequest" required: true - schema: - type: string - x-fb-entity: asset - style: simple - - description: False by default. The maximum number of inputs depends if the - transaction will be signed by an automated co-signer server or on a mobile - device. - explode: true - in: query - name: manualSignging - required: false - schema: - type: boolean - style: form responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/GetMaxSpendableAmountResponse" - description: OK + $ref: "#/components/schemas/CounterpartyGroup" + description: Counterparty group created successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get max spendable amount in a transaction + summary: Create a counterparty group tags: - - Vaults - x-rate-limit-category: read + - Compliance + x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "address = fireblocks.set_address_description(vault_account_id, asset_id,\ - \ address, tag, description)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const address = await fireblocks.setAddressDescription(vaultAccountId,\ - \ assetId, address, tag, description);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getMaxSpendableAmount(vaultsApiGetMaxSpendableAmountRequest);" + code: "const response: Promise> =\ + \ fireblocks.compliance.createCounterpartyGroup(complianceApiCreateCounterpartyGroupRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.vaults().getMaxSpendableAmount(vaultAccountId, assetId,\ - \ manualSignging);" + code: "CompletableFuture> response = fireblocks.compliance().createCounterpartyGroup(createCounterpartyGroupRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.get_max_spendable_amount(vault_account_id,\ - \ asset_id, manual_signging);" + code: "response = fireblocks.compliance.create_counterparty_group(create_counterparty_group_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getMaxSpendableAmount(vaultsApiGetMaxSpendableAmountRequest);" + source: "const response: Promise> =\ + \ fireblocks.compliance.createCounterpartyGroup(complianceApiCreateCounterpartyGroupRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.vaults().getMaxSpendableAmount(vaultAccountId, assetId, manualSignging);" + source: "CompletableFuture> response = fireblocks.compliance().createCounterpartyGroup(createCounterpartyGroupRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.get_max_spendable_amount(vault_account_id,\ - \ asset_id, manual_signging);" + source: "response = fireblocks.compliance.create_counterparty_group(create_counterparty_group_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /vault/accounts/{vaultAccountId}/{assetId}/max_bip44_index_used: - get: - description: Retrieves the maximum BIP44 address index and change address index - used for a specific asset in a vault account (BIP44 standard). - operationId: getMaxBipIndexUsed + /counterparty_groups/{groupId}: + delete: + description: | + Permanently deletes a counterparty group. + + **Endpoint Permissions:** Admin, Non-Signing Admin. + operationId: deleteCounterpartyGroup 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 + - description: The unique identifier of the counterparty group explode: false in: path - name: assetId + name: groupId required: true schema: + format: uuid type: string - x-fb-entity: asset style: simple responses: - "200": + "204": + description: Counterparty group deleted successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": content: application/json: schema: - $ref: "#/components/schemas/GetMaxBipIndexUsedResponse" - description: OK + $ref: "#/components/schemas/ErrorSchema" + description: Counterparty group not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get maximum BIP44 index used + summary: Delete a counterparty group tags: - - Vaults - x-rate-limit-category: read + - Compliance + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getMaxBipIndexUsed(vaultsApiGetMaxBipIndexUsedRequest);" + code: "const response: Promise> = fireblocks.compliance.deleteCounterpartyGroup(complianceApiDeleteCounterpartyGroupRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.vaults().getMaxBipIndexUsed(vaultAccountId, assetId);" + code: CompletableFuture> response = fireblocks.compliance().deleteCounterpartyGroup(groupId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.get_max_bip_index_used(vault_account_id,\ - \ asset_id);" + code: response = fireblocks.compliance.delete_counterparty_group(group_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getMaxBipIndexUsed(vaultsApiGetMaxBipIndexUsedRequest);" + source: "const response: Promise> = fireblocks.compliance.deleteCounterpartyGroup(complianceApiDeleteCounterpartyGroupRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.vaults().getMaxBipIndexUsed(vaultAccountId, assetId);" + source: CompletableFuture> response = fireblocks.compliance().deleteCounterpartyGroup(groupId); - lang: Python - source: "response = fireblocks.vaults.get_max_bip_index_used(vault_account_id,\ - \ asset_id);" + source: response = fireblocks.compliance.delete_counterparty_group(group_id); x-accepts: - application/json - /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}: - put: - description: |- - Updates the description of an existing address of an asset in a vault account. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: updateVaultAccountAssetAddress + get: + description: | + Returns the details of a specific counterparty group. + + **Endpoint Permissions:** Admin, Non-Signing Admin, Viewer. + operationId: getCounterpartyGroup 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: "The address for which to add a description. For XRP, use
:,\ - \ for all other assets, use only the address" + - description: The unique identifier of the counterparty group explode: false in: path - name: addressId + name: groupId required: true schema: + format: uuid 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\ - \ 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/UpdateVaultAccountAssetAddressRequest" - required: false responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/VaultActionStatus" - description: OK + $ref: "#/components/schemas/CounterpartyGroup" + description: A counterparty group object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Counterparty group not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Update address description + summary: Get a counterparty group tags: - - Vaults - x-rate-limit-category: write + - Compliance + x-rate-limit-category: read x-readme: code-samples: - - language: python - code: "address = fireblocks.set_address_description(vault_account_id, asset_id,\ - \ address, tag, description)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const address = await fireblocks.setAddressDescription(vaultAccountId,\ - \ assetId, address, tag, description);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.vaults.updateVaultAccountAssetAddress(vaultsApiUpdateVaultAccountAssetAddressRequest);" + code: "const response: Promise> =\ + \ fireblocks.compliance.getCounterpartyGroup(complianceApiGetCounterpartyGroupRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().updateVaultAccountAssetAddress(vaultAccountId,\ - \ assetId, addressId, updateVaultAccountAssetAddressRequest, idempotencyKey);" + code: CompletableFuture> response = fireblocks.compliance().getCounterpartyGroup(groupId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.update_vault_account_asset_address(vault_account_id,\ - \ asset_id, address_id, update_vault_account_asset_address_request, idempotency_key);" + code: response = fireblocks.compliance.get_counterparty_group(group_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.vaults.updateVaultAccountAssetAddress(vaultsApiUpdateVaultAccountAssetAddressRequest);" + source: "const response: Promise> =\ + \ fireblocks.compliance.getCounterpartyGroup(complianceApiGetCounterpartyGroupRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().updateVaultAccountAssetAddress(vaultAccountId,\ - \ assetId, addressId, updateVaultAccountAssetAddressRequest, idempotencyKey);" + source: CompletableFuture> response = fireblocks.compliance().getCounterpartyGroup(groupId); - lang: Python - source: "response = fireblocks.vaults.update_vault_account_asset_address(vault_account_id,\ - \ asset_id, address_id, update_vault_account_asset_address_request, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.compliance.get_counterparty_group(group_id); x-accepts: - application/json - /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id: - post: - description: |- - Sets an AML/KYT customer reference ID for a specific address. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: setCustomerRefIdForAddress + patch: + description: | + Updates an existing counterparty group. + + **Endpoint Permissions:** Admin, Non-Signing Admin. + operationId: updateCounterpartyGroup 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: "The address for which to add a description. For XRP, use
:,\ - \ for all other assets, use only the address" + - description: The unique identifier of the counterparty group explode: false in: path - name: addressId + name: groupId required: true schema: + format: uuid type: string style: simple - description: "A unique identifier for the request. If the request is sent\ @@ -2031,232 +2208,151 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SetCustomerRefIdForAddressRequest" + $ref: "#/components/schemas/UpdateCounterpartyGroupRequest" required: true responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/VaultActionStatus" - description: OK + $ref: "#/components/schemas/CounterpartyGroup" + description: Counterparty group updated successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Counterparty group not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Assign AML customer reference ID + summary: Update a counterparty group tags: - - Vaults + - Compliance x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "vaultAsset = fireblocks.set_customer_ref_id_for_address(vault_account_id,\ - \ asset_id, address_id, customer_ref_id)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const vaultAsset = await fireblocks.setCustomerRefIdForAddress(vaultAccountId,\ - \ assetId, addressId, customerRefId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.vaults.setCustomerRefIdForAddress(vaultsApiSetCustomerRefIdForAddressRequest);" + code: "const response: Promise> =\ + \ fireblocks.compliance.updateCounterpartyGroup(complianceApiUpdateCounterpartyGroupRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().setCustomerRefIdForAddress(setCustomerRefIdForAddressRequest,\ - \ vaultAccountId, assetId, addressId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.compliance().updateCounterpartyGroup(updateCounterpartyGroupRequest,\ + \ groupId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.set_customer_ref_id_for_address(set_customer_ref_id_for_address_request,\ - \ vault_account_id, asset_id, address_id, idempotency_key);" + code: "response = fireblocks.compliance.update_counterparty_group(update_counterparty_group_request,\ + \ group_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.vaults.setCustomerRefIdForAddress(vaultsApiSetCustomerRefIdForAddressRequest);" + source: "const response: Promise> =\ + \ fireblocks.compliance.updateCounterpartyGroup(complianceApiUpdateCounterpartyGroupRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().setCustomerRefIdForAddress(setCustomerRefIdForAddressRequest,\ - \ vaultAccountId, assetId, addressId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.compliance().updateCounterpartyGroup(updateCounterpartyGroupRequest,\ + \ groupId, idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.set_customer_ref_id_for_address(set_customer_ref_id_for_address_request,\ - \ vault_account_id, asset_id, address_id, idempotency_key);" + source: "response = fireblocks.compliance.update_counterparty_group(update_counterparty_group_request,\ + \ group_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy: - post: + /legal_entities: + get: description: |- - Converts an existing segwit address to the legacy format. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: createLegacyAddress + 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 - explode: false - in: path + - 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: true + required: false 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: The segwit address to translate - explode: false - in: path - name: addressId - required: true - schema: - 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\ - \ same response as the first request. The idempotency key is valid for 24\ - \ hours." - explode: false - in: header - name: Idempotency-Key + 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: simple - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/CreateAddressResponse" - description: The created address - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Convert a segwit address to legacy format - tags: - - Vaults - x-rate-limit-category: write - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.createLegacyAddress(vaultsApiCreateLegacyAddressRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response =\ - \ fireblocks.vaults().createLegacyAddress(vaultAccountId, assetId, addressId,\ - \ idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.vaults.create_legacy_address(vault_account_id,\ - \ asset_id, address_id, idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.createLegacyAddress(vaultsApiCreateLegacyAddressRequest);" - - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.vaults().createLegacyAddress(vaultAccountId, assetId, addressId,\ - \ idempotencyKey);" - - lang: Python - source: "response = fireblocks.vaults.create_legacy_address(vault_account_id,\ - \ asset_id, address_id, idempotency_key);" - x-accepts: - - application/json - /vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs: - get: - description: |- - Returns unspent inputs information of an UTXO asset in a vault account. - - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getUnspentInputs - 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 + style: form + - description: Maximum number of registrations to return. Ignored when `vaultAccountId` + is provided. + explode: true + in: query + name: pageSize + required: false schema: - type: string - x-fb-entity: asset - style: simple + default: 50 + maximum: 100 + minimum: 1 + type: integer + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetUnspentInputsResponse" - description: List of Unspent information per input + $ref: "#/components/schemas/ListLegalEntitiesResponse" + description: "A paginated list of legal entity registrations. When `vaultAccountId`\ + \ is provided, `data` contains at most one item." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get UTXO unspent inputs information + summary: List legal entities (Paginated) tags: - - Vaults - x-rate-limit-category: read + - Compliance + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: "vaultAsset = fireblocks.get_unspent_inputs(vault_account_id, asset_id)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const vaultAsset = await fireblocks.getUnspentInputs(vaultAccountId,\ - \ assetId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getUnspentInputs(vaultsApiGetUnspentInputsRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.listLegalEntities(complianceApiListLegalEntitiesRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>> response\ - \ = fireblocks.vaults().getUnspentInputs(vaultAccountId, assetId);" + code: "CompletableFuture> response\ + \ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\ + \ pageSize);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.get_unspent_inputs(vault_account_id,\ - \ asset_id);" + code: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\ + \ page_cursor, page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getUnspentInputs(vaultsApiGetUnspentInputsRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.listLegalEntities(complianceApiListLegalEntitiesRequest);" - lang: Java - source: "CompletableFuture>> response\ - \ = fireblocks.vaults().getUnspentInputs(vaultAccountId, assetId);" + source: "CompletableFuture> response\ + \ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\ + \ pageSize);" - lang: Python - source: "response = fireblocks.vaults.get_unspent_inputs(vault_account_id,\ - \ asset_id);" + source: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\ + \ page_cursor, page_size);" x-accepts: - application/json - /vault/accounts/bulk: post: - description: "Create multiple vault accounts by running an async job. \n\ - - The HBAR, TON, SUI, TERRA, ALGO, and DOT blockchains are not supported.\n\ - - These endpoints are currently in beta and might be subject to changes.\n\ - - Limited to a maximum of 10,000 accounts per operation.\n\n**Endpoint Permissions:**\ - \ Admin, Non-Signing Admin, Signer, Approver, Editor.\n" - operationId: createMultipleAccounts + description: |- + Registers a new legal entity for the workspace using its LEI (Legal Entity Identifier) code. The LEI is validated against the GLEIF registry. Each workspace can register multiple legal entities. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: registerLegalEntity 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\ @@ -2273,183 +2369,235 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CreateMultipleAccountsRequest" + $ref: "#/components/schemas/RegisterLegalEntityRequest" required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/JobCreated" - description: A JobCreated object + $ref: "#/components/schemas/LegalEntityRegistration" + description: Legal entity registered successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Invalid LEI or request parameters + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: LEI not found in the GLEIF registry + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: A legal entity with this LEI is already registered for the + workspace + 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: Bulk creation of new vault accounts + summary: Register a new legal entity tags: - - Vaults + - Compliance x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.vaults.createMultipleAccounts(vaultsApiCreateMultipleAccountsRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.registerLegalEntity(complianceApiRegisterLegalEntityRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().createMultipleAccounts(createMultipleAccountsRequest,\ + code: "CompletableFuture> response\ + \ = fireblocks.compliance().registerLegalEntity(registerLegalEntityRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.create_multiple_accounts(create_multiple_accounts_request,\ + code: "response = fireblocks.compliance.register_legal_entity(register_legal_entity_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.vaults.createMultipleAccounts(vaultsApiCreateMultipleAccountsRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.registerLegalEntity(complianceApiRegisterLegalEntityRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().createMultipleAccounts(createMultipleAccountsRequest,\ + source: "CompletableFuture> response\ + \ = fireblocks.compliance().registerLegalEntity(registerLegalEntityRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.create_multiple_accounts(create_multiple_accounts_request,\ + source: "response = fireblocks.compliance.register_legal_entity(register_legal_entity_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /vault/accounts/bulk/{jobId}: - get: - description: | - Returns the current status of (or error for) the specified vault account bulk creation job. - - **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getCreateMultipleVaultAccountsJobStatus + /legal_entities/{legalEntityId}: + delete: + description: "Delete a legal entity will change the status of a legal entity\ + \ registration to REVOKED. Endpoint Permission: Admin, Non-Signing Admin." + operationId: deleteLegalEntity parameters: - - description: The ID of the job to create addresses - example: 019681b4-107d-7243-942d-4c3c30e36fae + - description: The unique ID of the legal entity registration to delete explode: false in: path - name: jobId + name: legalEntityId required: true schema: + format: uuid type: string style: simple responses: - "200": + "204": + description: Legal entity deleted successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": content: application/json: schema: - $ref: "#/components/schemas/CreateMultipleVaultAccountsJobStatus" - description: A Job with status + $ref: "#/components/schemas/ErrorSchema" + description: Legal entity registration is not in deletable status (PENDING + or APPROVED) + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Legal entity registration not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get job status of bulk creation of new vault accounts + summary: Delete a legal entity tags: - - Vaults - x-rate-limit-category: async + - Compliance + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getCreateMultipleVaultAccountsJobStatus(vaultsApiGetCreateMultipleVaultAccountsJobStatusRequest);" + code: "const response: Promise> = fireblocks.compliance.deleteLegalEntity(complianceApiDeleteLegalEntityRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> - response = fireblocks.vaults().getCreateMultipleVaultAccountsJobStatus(jobId); + code: CompletableFuture> response = fireblocks.compliance().deleteLegalEntity(legalEntityId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.vaults.get_create_multiple_vault_accounts_job_status(job_id); + code: response = fireblocks.compliance.delete_legal_entity(legal_entity_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getCreateMultipleVaultAccountsJobStatus(vaultsApiGetCreateMultipleVaultAccountsJobStatusRequest);" + source: "const response: Promise> = fireblocks.compliance.deleteLegalEntity(complianceApiDeleteLegalEntityRequest);" - lang: Java - source: CompletableFuture> - response = fireblocks.vaults().getCreateMultipleVaultAccountsJobStatus(jobId); + source: CompletableFuture> response = fireblocks.compliance().deleteLegalEntity(legalEntityId); - lang: Python - source: response = fireblocks.vaults.get_create_multiple_vault_accounts_job_status(job_id); + source: response = fireblocks.compliance.delete_legal_entity(legal_entity_id); x-accepts: - application/json - /vault/accounts/addresses/bulk: - post: - description: | - **For UTXO blockchains only.** - - Create multiple deposit addresses by running an async job. - - The target Vault account should already have a UTXO asset wallet with a permanent address. - - Limited to a maximum of 10,000 addresses per operation. Use multiple operations for the same Vault account/permanent address if needed. - - **Endpoint Permissions:** Admin, Non-Signing Admin. - operationId: createMultipleDepositAddresses + get: + description: |- + Returns details of a specific legal entity registration, including GLEIF data when available. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getLegalEntity 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." + - description: The unique ID of the legal entity registration explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: legalEntityId + required: true schema: + format: uuid type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateMultipleDepositAddressesRequest" - required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/JobCreated" - description: A JobCreated object + $ref: "#/components/schemas/LegalEntityRegistration" + description: Legal entity registration details + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Legal entity registration not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Bulk creation of new deposit addresses + summary: Get a legal entity tags: - - Vaults - x-rate-limit-category: async + - Compliance + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.vaults.createMultipleDepositAddresses(vaultsApiCreateMultipleDepositAddressesRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.getLegalEntity(complianceApiGetLegalEntityRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().createMultipleDepositAddresses(createMultipleDepositAddressesRequest,\ - \ idempotencyKey);" + code: CompletableFuture> response = + fireblocks.compliance().getLegalEntity(legalEntityId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.create_multiple_deposit_addresses(create_multiple_deposit_addresses_request,\ - \ idempotency_key);" + code: response = fireblocks.compliance.get_legal_entity(legal_entity_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.vaults.createMultipleDepositAddresses(vaultsApiCreateMultipleDepositAddressesRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.getLegalEntity(complianceApiGetLegalEntityRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().createMultipleDepositAddresses(createMultipleDepositAddressesRequest,\ - \ idempotencyKey);" + source: CompletableFuture> response = + fireblocks.compliance().getLegalEntity(legalEntityId); - lang: Python - source: "response = fireblocks.vaults.create_multiple_deposit_addresses(create_multiple_deposit_addresses_request,\ - \ idempotency_key);" - x-content-type: application/json + source: response = fireblocks.compliance.get_legal_entity(legal_entity_id); x-accepts: - application/json - /vault/accounts/attached_tags: - post: + put: description: |- - Attach or detach one or more tags from the requested vault accounts. - Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. - operationId: attachOrDetachTagsFromVaultAccounts + Updates the status of a legal entity registration. Setting isDefault to true marks the registration as the workspace default, which is applied to vault accounts that have no explicit legal entity mapping. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: updateLegalEntity parameters: + - description: The unique ID of the legal entity registration + explode: false + in: path + name: legalEntityId + required: true + schema: + format: uuid + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -2465,15 +2613,15 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/VaultAccountsTagAttachmentOperationsRequest" + $ref: "#/components/schemas/UpdateLegalEntityRequest" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/VaultAccountsTagAttachmentOperationsResponse" - description: Tags were attached/detached successfully + $ref: "#/components/schemas/LegalEntityRegistration" + description: Updated legal entity registration headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -2482,10 +2630,7 @@ paths: application/json: schema: $ref: "#/components/schemas/ErrorSchema" - description: | - - Invalid request parameters. - - Same tag ID is provided in both tagIdsToAttach and tagIdsToDetach. - - Vault accounts are archived. + description: Registration is not in APPROVED status headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -2494,724 +2639,682 @@ paths: application/json: schema: $ref: "#/components/schemas/ErrorSchema" - description: | - - Tags with the requested ID not found. - - Vault accounts with the requested ID not found. + description: Legal entity registration not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Attach or detach tags from vault accounts + default: + $ref: "#/components/responses/Error" + summary: Update legal entity tags: - - Vaults + - Compliance x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.attachOrDetachTagsFromVaultAccounts(vaultsApiAttachOrDetachTagsFromVaultAccountsRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.updateLegalEntity(complianceApiUpdateLegalEntityRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.vaults().attachOrDetachTagsFromVaultAccounts(vaultAccountsTagAttachmentOperationsRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.compliance().updateLegalEntity(updateLegalEntityRequest,\ + \ legalEntityId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.attach_or_detach_tags_from_vault_accounts(vault_accounts_tag_attachment_operations_request,\ - \ idempotency_key);" + code: "response = fireblocks.compliance.update_legal_entity(update_legal_entity_request,\ + \ legal_entity_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.attachOrDetachTagsFromVaultAccounts(vaultsApiAttachOrDetachTagsFromVaultAccountsRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.updateLegalEntity(complianceApiUpdateLegalEntityRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.vaults().attachOrDetachTagsFromVaultAccounts(vaultAccountsTagAttachmentOperationsRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.compliance().updateLegalEntity(updateLegalEntityRequest,\ + \ legalEntityId, idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.attach_or_detach_tags_from_vault_accounts(vault_accounts_tag_attachment_operations_request,\ - \ idempotency_key);" + source: "response = fireblocks.compliance.update_legal_entity(update_legal_entity_request,\ + \ legal_entity_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /vault/accounts/addresses/bulk/{jobId}: + /legal_entities/{legalEntityId}/vaults: get: - description: | - Returns the current status of (or an error for) the specified deposit addresss bulk creation job. - - **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer. - operationId: getCreateMultipleDepositAddressesJobStatus + description: |- + Returns vault account IDs explicitly assigned to a specific legal entity registration, with cursor-based pagination. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: listVaultsForLegalEntity parameters: - - description: The ID of the job to create addresses - example: 019681b4-107d-7243-942d-4c3c30e36fae + - description: The unique ID of the legal entity registration explode: false in: path - name: jobId + name: legalEntityId required: true schema: + format: uuid type: string style: simple + - description: Cursor string returned in `next` or `prev` of a previous response + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Maximum number of registrations to return + explode: true + in: query + name: pageSize + required: false + schema: + default: 50 + maximum: 100 + minimum: 1 + type: integer + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/CreateMultipleDepositAddressesJobStatus" - description: A Job with status + $ref: "#/components/schemas/ListVaultsForRegistrationResponse" + description: Paginated list of vault account IDs assigned to the legal entity + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Legal entity registration not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get the job status of the bulk deposit address creation + summary: List vault accounts for a legal entity (Paginated) tags: - - Vaults + - Compliance x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getCreateMultipleDepositAddressesJobStatus(vaultsApiGetCreateMultipleDepositAddressesJobStatusRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.listVaultsForLegalEntity(complianceApiListVaultsForLegalEntityRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> - response = fireblocks.vaults().getCreateMultipleDepositAddressesJobStatus(jobId); + code: "CompletableFuture>\ + \ response = fireblocks.compliance().listVaultsForLegalEntity(legalEntityId,\ + \ pageCursor, pageSize);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.vaults.get_create_multiple_deposit_addresses_job_status(job_id); + code: "response = fireblocks.compliance.list_vaults_for_legal_entity(legal_entity_id,\ + \ page_cursor, page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getCreateMultipleDepositAddressesJobStatus(vaultsApiGetCreateMultipleDepositAddressesJobStatusRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.listVaultsForLegalEntity(complianceApiListVaultsForLegalEntityRequest);" - lang: Java - source: CompletableFuture> - response = fireblocks.vaults().getCreateMultipleDepositAddressesJobStatus(jobId); + source: "CompletableFuture>\ + \ response = fireblocks.compliance().listVaultsForLegalEntity(legalEntityId,\ + \ pageCursor, pageSize);" - lang: Python - source: response = fireblocks.vaults.get_create_multiple_deposit_addresses_job_status(job_id); + source: "response = fireblocks.compliance.list_vaults_for_legal_entity(legal_entity_id,\ + \ page_cursor, page_size);" x-accepts: - application/json - /vault/public_key_info: - get: + post: description: |- - Gets the public key information based on derivation path and signing algorithm. + Assigns one or more vault accounts to a specific legal entity registration. Explicitly mapped vault accounts take precedence over the workspace default legal entity. Endpoint Permission: Admin, Non-Signing Admin. - operationId: getPublicKeyInfo + operationId: assignVaultsToLegalEntity parameters: - - explode: true - in: query - name: derivationPath - required: true - schema: - type: string - style: form - - explode: true - in: query - name: algorithm + - description: The unique ID of the legal entity registration + explode: false + in: path + name: legalEntityId required: true schema: + format: uuid type: string - style: form - - explode: true - in: query - name: compressed + 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: boolean - style: form + type: string + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AssignVaultsToLegalEntityRequest" + required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/PublicKeyInformation" - description: Public key information + $ref: "#/components/schemas/AssignVaultsToLegalEntityResponse" + description: Vault accounts assigned successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Legal entity registration not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get the public key for a derivation path + summary: Assign vault accounts to a legal entity tags: - - Vaults - x-rate-limit-category: read + - Compliance + x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "pubKey = fireblocks.get_public_key_info(algorithm, derivation_path,\ - \ compressed)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: | - const PublicKeyInfoArgs = { algorithm: 'MPC_ECDSA_SECP256K1', derivationPath: '[44,0,0,0,0]' } const pubKey = await fireblocks.getPublicKeyInfo(PublicKeyInfoArgs); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getPublicKeyInfo(vaultsApiGetPublicKeyInfoRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.assignVaultsToLegalEntity(complianceApiAssignVaultsToLegalEntityRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().getPublicKeyInfo(derivationPath,\ - \ algorithm, compressed);" + code: "CompletableFuture>\ + \ response = fireblocks.compliance().assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest,\ + \ legalEntityId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.get_public_key_info(derivation_path,\ - \ algorithm, compressed);" + code: "response = fireblocks.compliance.assign_vaults_to_legal_entity(assign_vaults_to_legal_entity_request,\ + \ legal_entity_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getPublicKeyInfo(vaultsApiGetPublicKeyInfoRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.assignVaultsToLegalEntity(complianceApiAssignVaultsToLegalEntityRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().getPublicKeyInfo(derivationPath,\ - \ algorithm, compressed);" + source: "CompletableFuture>\ + \ response = fireblocks.compliance().assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest,\ + \ legalEntityId, idempotencyKey);" - lang: Python - source: "response = fireblocks.vaults.get_public_key_info(derivation_path,\ - \ algorithm, compressed);" + source: "response = fireblocks.compliance.assign_vaults_to_legal_entity(assign_vaults_to_legal_entity_request,\ + \ legal_entity_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info: + /screening/aml/policy_configuration: get: - description: |- - Get the public key information for a specific asset in a vault account. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: getPublicKeyInfoForAddress - parameters: - - explode: false - in: path - name: vaultAccountId - required: true - schema: - format: numeric - type: string - x-fb-entity: vault_account - style: simple - - explode: false - in: path - name: assetId - required: true - schema: - type: string - x-fb-entity: asset - style: simple - - explode: false - in: path - name: change - required: true - schema: - type: number - style: simple - - explode: false - in: path - name: addressIndex - required: true - schema: - type: number - style: simple - - explode: true - in: query - name: compressed - required: false - schema: - type: boolean - style: form + description: Retrieves the configuration for Travel Rule screening policy. + operationId: getAmlScreeningConfiguration + parameters: [] responses: "200": content: application/json: schema: - $ref: "#/components/schemas/PublicKeyInformation" - description: Public Key Information - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get an asset's public key + $ref: "#/components/schemas/ScreeningConfigurationsRequest" + description: Screening policy configuration retrieved successfully. + summary: Get AML Screening Policy Configuration tags: - - Vaults - x-rate-limit-category: read + - Compliance Screening Configuration + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: "pubKey = fireblocks.get_public_key_info_for_vault_account(asset_id,\ - \ vault_account_id, change, address_index, compressed)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: | - const PublicKeyInfoArgs = { assetId: 'ETH', vaultAccountId: 0, change: 0, addressIndex: 0, compressed: true } const pubKey = await fireblocks.getPublicKeyInfoForVaultAccount(PublicKeyInfoArgs); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getPublicKeyInfoForAddress(vaultsApiGetPublicKeyInfoForAddressRequest);" + code: "const response: Promise>\ + \ = fireblocks.complianceScreeningConfiguration.getAmlScreeningConfiguration();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.vaults().getPublicKeyInfoForAddress(vaultAccountId,\ - \ assetId, change, addressIndex, compressed);" + code: CompletableFuture> response + = fireblocks.complianceScreeningConfiguration().getAmlScreeningConfiguration(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.get_public_key_info_for_address(vault_account_id,\ - \ asset_id, change, address_index, compressed);" + code: response = fireblocks.compliance_screening_configuration.get_aml_screening_configuration(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getPublicKeyInfoForAddress(vaultsApiGetPublicKeyInfoForAddressRequest);" + source: "const response: Promise>\ + \ = fireblocks.complianceScreeningConfiguration.getAmlScreeningConfiguration();" - lang: Java - source: "CompletableFuture> response = fireblocks.vaults().getPublicKeyInfoForAddress(vaultAccountId,\ - \ assetId, change, addressIndex, compressed);" + source: CompletableFuture> response + = fireblocks.complianceScreeningConfiguration().getAmlScreeningConfiguration(); - lang: Python - source: "response = fireblocks.vaults.get_public_key_info_for_address(vault_account_id,\ - \ asset_id, change, address_index, compressed);" + source: response = fireblocks.compliance_screening_configuration.get_aml_screening_configuration(); x-accepts: - application/json - /vault/assets: - get: - description: |- - Gets the assets amount summary for all accounts or filtered accounts. - - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getVaultAssets + put: + description: "Updates bypass screening, inbound delay, or outbound delay configurations\ + \ for AML." + operationId: updateAmlScreeningConfiguration parameters: - - explode: true - in: query - name: accountNamePrefix - required: false - schema: - type: string - style: form - - explode: true - in: query - name: accountNameSuffix + - 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: form + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetVaultAssetsResponse" - description: Amount by asset - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get asset balance for chosen assets + $ref: "#/components/schemas/ScreeningConfigurationsRequest" + description: Configuration updated successfully. + summary: Update AML Configuration tags: - - Vaults - x-rate-limit-category: read + - Compliance + x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "assets_balance = fireblocks.get_vault_assets_balance(accout_name_prefix,\ - \ account_name_suffix)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const assetsBalance = await fireblocks.getVaultAssetsBalance(accountNamePrefix,\ - \ accountNameSuffix);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.getVaultAssets(vaultsApiGetVaultAssetsRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.updateAmlScreeningConfiguration(complianceApiUpdateAmlScreeningConfigurationRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>> response = fireblocks.vaults().getVaultAssets(accountNamePrefix,\ - \ accountNameSuffix);" + code: CompletableFuture> response + = fireblocks.compliance().updateAmlScreeningConfiguration(idempotencyKey); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.vaults.get_vault_assets(account_name_prefix,\ - \ account_name_suffix);" + code: response = fireblocks.compliance.update_aml_screening_configuration(idempotency_key); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.getVaultAssets(vaultsApiGetVaultAssetsRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.updateAmlScreeningConfiguration(complianceApiUpdateAmlScreeningConfigurationRequest);" - lang: Java - source: "CompletableFuture>> response = fireblocks.vaults().getVaultAssets(accountNamePrefix,\ - \ accountNameSuffix);" + source: CompletableFuture> response + = fireblocks.compliance().updateAmlScreeningConfiguration(idempotencyKey); - lang: Python - source: "response = fireblocks.vaults.get_vault_assets(account_name_prefix,\ - \ account_name_suffix);" + source: response = fireblocks.compliance.update_aml_screening_configuration(idempotency_key); x-accepts: - application/json - /vault/assets/{assetId}: + /screening/aml/post_screening_policy: get: - description: |- - Get the total balance of an asset across all the vault accounts. - - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getVaultBalanceByAsset - parameters: - - explode: false - in: path - name: assetId - required: true - schema: - type: string - x-fb-entity: asset - style: simple + description: Get the post-screening policy for AML. + operationId: getAmlPostScreeningPolicy + parameters: [] responses: "200": content: application/json: schema: - $ref: "#/components/schemas/VaultAsset" - description: Vault amount by asset - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get vault balance by an asset + $ref: "#/components/schemas/ScreeningPolicyResponse" + description: Post-screening policy retrieved successfully. + summary: AML - View Post-Screening Policy tags: - - Vaults - x-rate-limit-category: read + - Compliance + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: assets_balance = fireblocks.get_vault_balance_by_asset(asset_id) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const assetsBalance = await fireblocks.getVaultBalanceByAsset(assetId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.vaults.getVaultBalanceByAsset(vaultsApiGetVaultBalanceByAssetRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.getAmlPostScreeningPolicy();" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.vaults().getVaultBalanceByAsset(assetId); + code: CompletableFuture> response = + fireblocks.compliance().getAmlPostScreeningPolicy(); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.vaults.get_vault_balance_by_asset(asset_id); + code: response = fireblocks.compliance.get_aml_post_screening_policy(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.vaults.getVaultBalanceByAsset(vaultsApiGetVaultBalanceByAssetRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.getAmlPostScreeningPolicy();" - lang: Java - source: CompletableFuture> response = fireblocks.vaults().getVaultBalanceByAsset(assetId); + source: CompletableFuture> response = + fireblocks.compliance().getAmlPostScreeningPolicy(); - lang: Python - source: response = fireblocks.vaults.get_vault_balance_by_asset(asset_id); + source: response = fireblocks.compliance.get_aml_post_screening_policy(); x-accepts: - application/json - /vault/lookup_by_address: + /screening/aml/screening_policy: get: - description: | - Resolves a blockchain address to the vault account that owns it. Returns the vault account ID and the blockchains associated with the address. - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: lookupVaultByAddress + description: Get the screening policy for AML. + operationId: getAmlScreeningPolicy + parameters: [] + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ScreeningProviderRulesConfigurationResponse" + description: Screening policy retrieved successfully. + summary: AML - View Screening Policy + tags: + - Compliance + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.compliance.getAmlScreeningPolicy();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> + response = fireblocks.compliance().getAmlScreeningPolicy(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.compliance.get_aml_screening_policy(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.compliance.getAmlScreeningPolicy();" + - lang: Java + source: CompletableFuture> + response = fireblocks.compliance().getAmlScreeningPolicy(); + - lang: Python + source: response = fireblocks.compliance.get_aml_screening_policy(); + x-accepts: + - application/json + /screening/aml/verdict/manual: + post: + 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: The blockchain address to resolve. - explode: true - in: query - name: address - required: true + - 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: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AmlVerdictManualRequest" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/AddressReverseLookupResponse" - description: "Vault account that owns the address, with associated blockchains." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - description: Unauthorized. Missing / invalid JWT token in Authorization - header. + $ref: "#/components/schemas/AmlVerdictManualResponse" + description: AML verdict set successfully. + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Feature not enabled for tenant. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "403": - description: Feature is not enabled for the workspace. + "425": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Too Early - transaction not yet in pending screening. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": + "500": content: application/json: schema: $ref: "#/components/schemas/ErrorSchema" - description: Vault account not found for the supplied address + description: Internal server error. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Look up a vault account by blockchain address + summary: Set AML Verdict (BYORK Super Light) tags: - - Vaults - x-rate-limit-category: read + - Compliance + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.vaults.lookupVaultByAddress(vaultsApiLookupVaultByAddressRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.setAmlVerdict(complianceApiSetAmlVerdictRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.vaults().lookupVaultByAddress(address); + code: "CompletableFuture> response\ + \ = fireblocks.compliance().setAmlVerdict(amlVerdictManualRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.vaults.lookup_vault_by_address(address); + code: "response = fireblocks.compliance.set_aml_verdict(aml_verdict_manual_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.vaults.lookupVaultByAddress(vaultsApiLookupVaultByAddressRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.setAmlVerdict(complianceApiSetAmlVerdictRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.vaults().lookupVaultByAddress(address); + source: "CompletableFuture> response\ + \ = fireblocks.compliance().setAmlVerdict(amlVerdictManualRequest, idempotencyKey);" - lang: Python - source: response = fireblocks.vaults.lookup_vault_by_address(address); + source: "response = fireblocks.compliance.set_aml_verdict(aml_verdict_manual_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /ncw/wallets/supported_assets: - get: - description: Get all the available supported assets for the Non-Custodial Wallet - operationId: GetEmbeddedWalletSupportedAssets + /screening/ars/config/activate: + post: + description: "Activates ARS (Address Registry Screening) for the authenticated\ + \ tenant (sets config.active to true). Once activated, ARS screening applies\ + \ to matching transactions." + operationId: activateArsConfig parameters: - - description: Next page cursor to fetch - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor + - 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: form - - description: Items per page - example: 500 - explode: true - in: query - name: pageSize - required: false - schema: - default: 200 - maximum: 400 - type: number - style: form - - description: Only base assets - example: true - explode: true - in: query - name: onlyBaseAssets - required: false - schema: - type: boolean - style: form + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletPaginatedAssetsResponse" - description: Successful response + $ref: "#/components/schemas/ArsConfigResponse" + description: ARS configuration activated. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Tenant not opted-in for address registry. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Retrieve supported assets + summary: Activate ARS (Address Registry Screening) tags: - - Embedded Wallets - x-rate-limit-category: query + - Compliance + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletSupportedAssets(embeddedWalletsApiGetEmbeddedWalletSupportedAssetsRequest);" + code: "const response: Promise> =\ + \ fireblocks.compliance.activateArsConfig(complianceApiActivateArsConfigRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWalletSupportedAssets(pageCursor,\ - \ pageSize, onlyBaseAssets);" + code: CompletableFuture> response = fireblocks.compliance().activateArsConfig(idempotencyKey); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_embedded_wallet_supported_assets(page_cursor,\ - \ page_size, only_base_assets);" + code: response = fireblocks.compliance.activate_ars_config(idempotency_key); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletSupportedAssets(embeddedWalletsApiGetEmbeddedWalletSupportedAssetsRequest);" + source: "const response: Promise> =\ + \ fireblocks.compliance.activateArsConfig(complianceApiActivateArsConfigRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWalletSupportedAssets(pageCursor,\ - \ pageSize, onlyBaseAssets);" + source: CompletableFuture> response = fireblocks.compliance().activateArsConfig(idempotencyKey); - lang: Python - source: "response = fireblocks.embedded_wallets.get_embedded_wallet_supported_assets(page_cursor,\ - \ page_size, only_base_assets);" + source: response = fireblocks.compliance.activate_ars_config(idempotency_key); x-accepts: - application/json - /ncw/wallets: - get: - description: Get all Non Custodial Wallets - operationId: GetEmbeddedWallets + /screening/ars/config/deactivate: + post: + description: "Deactivates ARS (Address Registry Screening) for the authenticated\ + \ tenant (sets config.active to false). Once deactivated, ARS screening no\ + \ longer applies until activated again." + operationId: deactivateArsConfig parameters: - - description: Next page cursor to fetch - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: Items per page - example: 500 - explode: true - in: query - name: pageSize - required: false - schema: - default: 200 - maximum: 400 - type: number - style: form - - description: Field(s) to use for sorting - example: createdAt - explode: true - in: query - name: sort - required: false - schema: - default: createdAt - enum: - - createdAt - type: string - style: form - - description: Is the order ascending or descending - example: ASC - explode: true - in: query - name: order + - 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: - default: ASC - enum: - - ASC - - DESC type: string - style: form - - description: Enabled Wallets - example: true - explode: true - in: query - name: enabled - required: false - schema: - type: boolean - style: form + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletPaginatedWalletsResponse" - description: Successful response + $ref: "#/components/schemas/ArsConfigResponse" + description: ARS configuration deactivated. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Tenant not opted-in for address registry. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List wallets + summary: Deactivate ARS (Address Registry Screening) tags: - - Embedded Wallets - x-rate-limit-category: query + - Compliance + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWallets(embeddedWalletsApiGetEmbeddedWalletsRequest);" + code: "const response: Promise> =\ + \ fireblocks.compliance.deactivateArsConfig(complianceApiDeactivateArsConfigRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWallets(pageCursor,\ - \ pageSize, sort, order, enabled);" + code: CompletableFuture> response = fireblocks.compliance().deactivateArsConfig(idempotencyKey); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_embedded_wallets(page_cursor,\ - \ page_size, sort, order, enabled);" + code: response = fireblocks.compliance.deactivate_ars_config(idempotency_key); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWallets(embeddedWalletsApiGetEmbeddedWalletsRequest);" + source: "const response: Promise> =\ + \ fireblocks.compliance.deactivateArsConfig(complianceApiDeactivateArsConfigRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWallets(pageCursor,\ - \ pageSize, sort, order, enabled);" + source: CompletableFuture> response = fireblocks.compliance().deactivateArsConfig(idempotencyKey); - lang: Python - source: "response = fireblocks.embedded_wallets.get_embedded_wallets(page_cursor,\ - \ page_size, sort, order, enabled);" + source: response = fireblocks.compliance.deactivate_ars_config(idempotency_key); x-accepts: - application/json - post: - description: Create new Non Custodial Wallet - operationId: CreateEmbeddedWallet - 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 + /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: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWallet" - description: Wallet created successfully + $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: Create a new wallet + summary: Get BYORK Light configuration tags: - - Embedded Wallets - x-rate-limit-category: write + - Compliance + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.embeddedWallets.createEmbeddedWallet(embeddedWalletsApiCreateEmbeddedWalletRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.getByorkConfig();" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.embeddedWallets().createEmbeddedWallet(idempotencyKey); + code: CompletableFuture> response = fireblocks.compliance().getByorkConfig(); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.embedded_wallets.create_embedded_wallet(idempotency_key); + code: response = fireblocks.compliance.get_byork_config(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.embeddedWallets.createEmbeddedWallet(embeddedWalletsApiCreateEmbeddedWalletRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.getByorkConfig();" - lang: Java - source: CompletableFuture> response = fireblocks.embeddedWallets().createEmbeddedWallet(idempotencyKey); + source: CompletableFuture> response = fireblocks.compliance().getByorkConfig(); - lang: Python - source: response = fireblocks.embedded_wallets.create_embedded_wallet(idempotency_key); + source: response = fireblocks.compliance.get_byork_config(); x-accepts: - application/json - /ncw/wallets/{walletId}: - get: - description: Get a wallet - operationId: GetEmbeddedWallet + /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: Wallet Id + - 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: path - name: walletId - required: true + in: header + name: Idempotency-Key + required: false schema: - example: 550e8400-e29b-41d4-a716-446655440000 type: string style: simple responses: @@ -3219,42 +3322,55 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWallet" - description: Successful response + $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: Get a wallet + summary: Activate BYORK Light tags: - - Embedded Wallets - x-rate-limit-category: read + - Compliance + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.embeddedWallets.getEmbeddedWallet(embeddedWalletsApiGetEmbeddedWalletRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.activateByorkConfig(complianceApiActivateByorkConfigRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWallet(walletId); + code: CompletableFuture> response = fireblocks.compliance().activateByorkConfig(idempotencyKey); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.embedded_wallets.get_embedded_wallet(wallet_id); + code: response = fireblocks.compliance.activate_byork_config(idempotency_key); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.embeddedWallets.getEmbeddedWallet(embeddedWalletsApiGetEmbeddedWalletRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.activateByorkConfig(complianceApiActivateByorkConfigRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWallet(walletId); + source: CompletableFuture> response = fireblocks.compliance().activateByorkConfig(idempotencyKey); - lang: Python - source: response = fireblocks.embedded_wallets.get_embedded_wallet(wallet_id); + source: response = fireblocks.compliance.activate_byork_config(idempotency_key); x-accepts: - application/json - /ncw/wallets/{walletId}/status: - patch: - description: Update the enabled/disabled status of a specific Non Custodial - Wallet - operationId: updateEmbeddedWalletStatus + /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\ @@ -3267,62 +3383,61 @@ paths: schema: type: string style: simple - - description: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 - explode: false - in: path - name: walletId - required: true - schema: - type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/EnableWallet" - required: true responses: - "204": - description: No Content - Wallet status updated successfully + "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: Update wallet status + summary: Deactivate BYORK Light tags: - - Embedded Wallets + - Compliance x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.embeddedWallets.updateEmbeddedWalletStatus(embeddedWalletsApiUpdateEmbeddedWalletStatusRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.deactivateByorkConfig(complianceApiDeactivateByorkConfigRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.embeddedWallets().updateEmbeddedWalletStatus(enableWallet,\ - \ walletId, idempotencyKey);" + code: CompletableFuture> response = fireblocks.compliance().deactivateByorkConfig(idempotencyKey); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.update_embedded_wallet_status(enable_wallet,\ - \ wallet_id, idempotency_key);" + code: response = fireblocks.compliance.deactivate_byork_config(idempotency_key); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.embeddedWallets.updateEmbeddedWalletStatus(embeddedWalletsApiUpdateEmbeddedWalletStatusRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.deactivateByorkConfig(complianceApiDeactivateByorkConfigRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.embeddedWallets().updateEmbeddedWalletStatus(enableWallet,\ - \ walletId, idempotencyKey);" + source: CompletableFuture> response = fireblocks.compliance().deactivateByorkConfig(idempotencyKey); - lang: Python - source: "response = fireblocks.embedded_wallets.update_embedded_wallet_status(enable_wallet,\ - \ wallet_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.compliance.deactivate_byork_config(idempotency_key); x-accepts: - application/json - /ncw/wallets/{walletId}/assign: - post: - description: Assign a specific Non Custodial Wallet to a user - operationId: assignEmbeddedWallet + /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\ @@ -3335,122 +3450,80 @@ paths: schema: type: string style: simple - - description: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 - explode: false - in: path - name: walletId + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ByorkSetTimeoutsRequest" required: true - schema: - type: string - style: simple responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWallet" - description: Wallet Assigned + $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: Assign a wallet + summary: Set BYORK Light timeouts tags: - - Embedded Wallets + - Compliance x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.embeddedWallets.assignEmbeddedWallet(embeddedWalletsApiAssignEmbeddedWalletRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.setByorkTimeouts(complianceApiSetByorkTimeoutsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.embeddedWallets().assignEmbeddedWallet(walletId,\ + code: "CompletableFuture> response = fireblocks.compliance().setByorkTimeouts(byorkSetTimeoutsRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.assign_embedded_wallet(wallet_id,\ + 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.embeddedWallets.assignEmbeddedWallet(embeddedWalletsApiAssignEmbeddedWalletRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.setByorkTimeouts(complianceApiSetByorkTimeoutsRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.embeddedWallets().assignEmbeddedWallet(walletId,\ + source: "CompletableFuture> response = fireblocks.compliance().setByorkTimeouts(byorkSetTimeoutsRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.embedded_wallets.assign_embedded_wallet(wallet_id,\ + source: "response = fireblocks.compliance.set_byork_timeouts(byork_set_timeouts_request,\ \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /ncw/wallets/{walletId}/accounts/{accountId}/assets: + /screening/byork/verdict: get: - description: Retrieve assets for a specific account under a specific Non Custodial - Wallet - operationId: getEmbeddedWalletAssets + 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: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 - explode: false - in: path - name: walletId - required: true - schema: - type: string - style: simple - - description: The ID of the account - example: "0" - explode: false - in: path - name: accountId - required: true - schema: - type: string - style: simple - - description: Sort by fields - explode: true - in: query - name: sort - required: false - schema: - default: - - assetId - items: - enum: - - assetId - - createdAt - type: string - type: array - style: form - - description: Cursor to the next page - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: Amount of results to return in the next page - explode: true - in: query - name: pageSize - required: false - schema: - default: 200 - maximum: 400 - type: number - style: form - - description: Is the order ascending or descending + - description: Transaction ID explode: true in: query - name: order - required: false + name: txId + required: true schema: - default: ASC - enum: - - ASC - - DESC + example: 550e8400-e29b-41d4-a716-446655440000 type: string style: form responses: @@ -3458,127 +3531,177 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletPaginatedAssetsResponse" - description: Successful response + $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: Retrieve assets + summary: Get BYORK Light verdict tags: - - Embedded Wallets - x-rate-limit-category: query + - Compliance + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletAssets(embeddedWalletsApiGetEmbeddedWalletAssetsRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.getByorkVerdict(complianceApiGetByorkVerdictRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWalletAssets(walletId,\ - \ accountId, sort, pageCursor, pageSize, order);" + code: CompletableFuture> response = + fireblocks.compliance().getByorkVerdict(txId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_embedded_wallet_assets(wallet_id,\ - \ account_id, sort, page_cursor, page_size, order);" + code: response = fireblocks.compliance.get_byork_verdict(tx_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletAssets(embeddedWalletsApiGetEmbeddedWalletAssetsRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.getByorkVerdict(complianceApiGetByorkVerdictRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWalletAssets(walletId,\ - \ accountId, sort, pageCursor, pageSize, order);" + source: CompletableFuture> response = + fireblocks.compliance().getByorkVerdict(txId); - lang: Python - source: "response = fireblocks.embedded_wallets.get_embedded_wallet_assets(wallet_id,\ - \ account_id, sort, page_cursor, page_size, order);" + source: response = fireblocks.compliance.get_byork_verdict(tx_id); x-accepts: - application/json - /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}: - get: - description: "Get asset under a specific account, under a specific Non Custodial\ - \ Wallet" - operationId: GetEmbeddedWalletAsset - parameters: - - description: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 - explode: false - in: path - name: walletId - required: true - schema: - type: string - style: simple - - description: The ID of the account - example: "0" + 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: path - name: accountId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple - - description: The ID of the asset - example: BTC - explode: false - in: path - name: assetId + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ByorkVerdictRequest" required: true - schema: - type: string - x-fb-entity: asset - style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletAssetResponse" - description: Successful response + $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: Retrieve asset + summary: Set BYORK Light verdict tags: - - Embedded Wallets - x-rate-limit-category: read + - Compliance + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletAsset(embeddedWalletsApiGetEmbeddedWalletAssetRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.setByorkVerdict(complianceApiSetByorkVerdictRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.embeddedWallets().getEmbeddedWalletAsset(walletId, accountId,\ - \ assetId);" + code: "CompletableFuture> response = fireblocks.compliance().setByorkVerdict(byorkVerdictRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_embedded_wallet_asset(wallet_id,\ - \ account_id, asset_id);" + 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.embeddedWallets.getEmbeddedWalletAsset(embeddedWalletsApiGetEmbeddedWalletAssetRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.setByorkVerdict(complianceApiSetByorkVerdictRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.embeddedWallets().getEmbeddedWalletAsset(walletId, accountId,\ - \ assetId);" + source: "CompletableFuture> response = fireblocks.compliance().setByorkVerdict(byorkVerdictRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.embedded_wallets.get_embedded_wallet_asset(wallet_id,\ - \ account_id, asset_id);" + source: "response = fireblocks.compliance.set_byork_verdict(byork_verdict_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - post: - description: "Get the addresses of a specific asset, under a specific account,\ - \ under a specific Non Custodial Wallet" - operationId: AddEmbeddedWalletAsset + /screening/configurations: + put: + description: Update tenant screening configuration. + operationId: updateScreeningConfiguration 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\ @@ -3591,369 +3714,221 @@ paths: schema: type: string style: simple - - description: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 - explode: false - in: path - name: walletId - required: true - schema: - type: string - style: simple - - description: The ID of the account - example: "0" - explode: false - in: path - name: accountId - required: true - schema: - type: string - x-fb-entity: asset - style: simple - - description: The ID of the asset - example: BTC - explode: false - in: path - name: assetId + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ScreeningUpdateConfigurations" required: true - schema: - type: string - style: simple responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletAddressDetails" - description: Created - default: - $ref: "#/components/responses/Error" - summary: Add asset to account + $ref: "#/components/schemas/ScreeningUpdateConfigurations" + description: Tenant Screening configuration updated successfully. + summary: Tenant - Screening Configuration tags: - - Embedded Wallets + - Compliance x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.addEmbeddedWalletAsset(embeddedWalletsApiAddEmbeddedWalletAssetRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.updateScreeningConfiguration(complianceApiUpdateScreeningConfigurationRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.embeddedWallets().addEmbeddedWalletAsset(walletId, accountId,\ - \ assetId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.compliance().updateScreeningConfiguration(screeningUpdateConfigurations,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.add_embedded_wallet_asset(wallet_id,\ - \ account_id, asset_id, idempotency_key);" + code: "response = fireblocks.compliance.update_screening_configuration(screening_update_configurations,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.addEmbeddedWalletAsset(embeddedWalletsApiAddEmbeddedWalletAssetRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.updateScreeningConfiguration(complianceApiUpdateScreeningConfigurationRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.embeddedWallets().addEmbeddedWalletAsset(walletId, accountId,\ - \ assetId, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.compliance().updateScreeningConfiguration(screeningUpdateConfigurations,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.embedded_wallets.add_embedded_wallet_asset(wallet_id,\ - \ account_id, asset_id, idempotency_key);" + source: "response = fireblocks.compliance.update_screening_configuration(screening_update_configurations,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/balance: + /screening/transaction/{txId}: get: - description: "Get balance for specific asset, under a specific account" - operationId: GetEmbeddedWalletAssetBalance + description: Provides all the compliance details for the given screened transaction. + operationId: getScreeningFullDetails parameters: - - description: Wallet Id + - description: Fireblocks transaction ID of the screened transaction example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path - name: walletId - required: true - schema: - type: string - style: simple - - description: The ID of the account - example: "0" - explode: false - in: path - name: accountId - required: true - schema: - type: string - style: simple - - description: The ID of the asset - example: BTC - explode: false - in: path - name: assetId + name: txId required: true schema: type: string - x-fb-entity: asset style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletAssetBalance" - description: Successful response + $ref: "#/components/schemas/ComplianceResultFullPayload" + description: A compliance object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Retrieve asset balance + summary: Provides all the compliance details for the given screened transaction. tags: - - Embedded Wallets - x-rate-limit-category: read + - Compliance + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletAssetBalance(embeddedWalletsApiGetEmbeddedWalletAssetBalanceRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.getScreeningFullDetails(complianceApiGetScreeningFullDetailsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.embeddedWallets().getEmbeddedWalletAssetBalance(walletId,\ - \ accountId, assetId);" + code: CompletableFuture> response + = fireblocks.compliance().getScreeningFullDetails(txId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_embedded_wallet_asset_balance(wallet_id,\ - \ account_id, asset_id);" + code: response = fireblocks.compliance.get_screening_full_details(tx_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletAssetBalance(embeddedWalletsApiGetEmbeddedWalletAssetBalanceRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.getScreeningFullDetails(complianceApiGetScreeningFullDetailsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.embeddedWallets().getEmbeddedWalletAssetBalance(walletId,\ - \ accountId, assetId);" + source: CompletableFuture> response + = fireblocks.compliance().getScreeningFullDetails(txId); - lang: Python - source: "response = fireblocks.embedded_wallets.get_embedded_wallet_asset_balance(wallet_id,\ - \ account_id, asset_id);" + source: response = fireblocks.compliance.get_screening_full_details(tx_id); x-accepts: - application/json - put: - description: Refresh the balance of an asset in a specific account - operationId: RefreshEmbeddedWalletAssetBalance + /screening/transaction/{txId}/bypass_screening_policy: + post: + description: "Triggers a new transaction, with the API user as the initiator,\ + \ bypassing the screening policy checks. This endpoint is restricted to Admin\ + \ API users and is only applicable to outgoing transactions." + operationId: retryRejectedTransactionBypassScreeningChecks 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: Wallet Id + - description: The transaction id that was rejected by screening checks example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path - name: walletId - required: true - schema: - type: string - style: simple - - description: The ID of the account - example: "0" - explode: false - in: path - name: accountId + name: txId required: true schema: type: string style: simple - - description: The ID of the asset - example: BTC + - 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: path - name: assetId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string - x-fb-entity: asset style: simple responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletAssetBalance" - description: Successful response + $ref: "#/components/schemas/CreateTransactionResponse" + description: A transaction object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Refresh asset balance + summary: Bypass Screening Policy tags: - - Embedded Wallets - x-rate-limit-category: async + - Compliance + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.refreshEmbeddedWalletAssetBalance(embeddedWalletsApiRefreshEmbeddedWalletAssetBalanceRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.retryRejectedTransactionBypassScreeningChecks(complianceApiRetryRejectedTransactionBypassScreeningChecksRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.embeddedWallets().refreshEmbeddedWalletAssetBalance(walletId,\ - \ accountId, assetId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.compliance().retryRejectedTransactionBypassScreeningChecks(txId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.refresh_embedded_wallet_asset_balance(wallet_id,\ - \ account_id, asset_id, idempotency_key);" + code: "response = fireblocks.compliance.retry_rejected_transaction_bypass_screening_checks(tx_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.refreshEmbeddedWalletAssetBalance(embeddedWalletsApiRefreshEmbeddedWalletAssetBalanceRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.retryRejectedTransactionBypassScreeningChecks(complianceApiRetryRejectedTransactionBypassScreeningChecksRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.embeddedWallets().refreshEmbeddedWalletAssetBalance(walletId,\ - \ accountId, assetId, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.compliance().retryRejectedTransactionBypassScreeningChecks(txId,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.embedded_wallets.refresh_embedded_wallet_asset_balance(wallet_id,\ - \ account_id, asset_id, idempotency_key);" + source: "response = fireblocks.compliance.retry_rejected_transaction_bypass_screening_checks(tx_id,\ + \ idempotency_key);" x-accepts: - application/json - /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/addresses: + /screening/travel_rule/policy_configuration: get: - description: "Get the addresses of a specific asset, under a specific account,\ - \ under a specific Non Custodial Wallet" - operationId: GetEmbeddedWalletAddresses - parameters: - - description: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 - explode: false - in: path - name: walletId - required: true - schema: - type: string - style: simple - - description: The ID of the account - example: "0" - explode: false - in: path - name: accountId - required: true - schema: - type: string - style: simple - - description: The ID of the asset - example: BTC - explode: false - in: path - name: assetId - required: true - schema: - type: string - style: simple - - description: Cursor to the next page - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: Items per page - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 100 - minimum: 1 - type: number - style: form - - description: Sort by address - example: address - explode: true - in: query - name: sort - required: false - schema: - default: createdAt - enum: - - address - - createdAt - type: string - style: form - - description: Is the order ascending or descending - example: ASC - explode: true - in: query - name: order - required: false - schema: - default: ASC - enum: - - DESC - - ASC - type: string - style: form - - description: Enabled - example: true - explode: true - in: query - name: enabled - required: false - schema: - type: boolean - style: form + description: Retrieves the configuration for Travel Rule screening policy. + operationId: getScreeningConfiguration + parameters: [] responses: "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletPaginatedAddressesResponse" - description: Successful response - default: - $ref: "#/components/responses/Error" - summary: Retrieve asset addresses + $ref: "#/components/schemas/ScreeningConfigurationsRequest" + description: Screening policy configuration retrieved successfully. + summary: Get Travel Rule Screening Policy Configuration tags: - - Embedded Wallets - x-rate-limit-category: query + - Compliance Screening Configuration + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletAddresses(embeddedWalletsApiGetEmbeddedWalletAddressesRequest);" + code: "const response: Promise>\ + \ = fireblocks.complianceScreeningConfiguration.getScreeningConfiguration();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWalletAddresses(walletId,\ - \ accountId, assetId, pageCursor, pageSize, sort, order, enabled);" + code: CompletableFuture> response + = fireblocks.complianceScreeningConfiguration().getScreeningConfiguration(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_embedded_wallet_addresses(wallet_id,\ - \ account_id, asset_id, page_cursor, page_size, sort, order, enabled);" + code: response = fireblocks.compliance_screening_configuration.get_screening_configuration(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletAddresses(embeddedWalletsApiGetEmbeddedWalletAddressesRequest);" + source: "const response: Promise>\ + \ = fireblocks.complianceScreeningConfiguration.getScreeningConfiguration();" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWalletAddresses(walletId,\ - \ accountId, assetId, pageCursor, pageSize, sort, order, enabled);" + source: CompletableFuture> response + = fireblocks.complianceScreeningConfiguration().getScreeningConfiguration(); - lang: Python - source: "response = fireblocks.embedded_wallets.get_embedded_wallet_addresses(wallet_id,\ - \ account_id, asset_id, page_cursor, page_size, sort, order, enabled);" + source: response = fireblocks.compliance_screening_configuration.get_screening_configuration(); x-accepts: - application/json - /ncw/wallets/{walletId}/accounts: - post: - description: Create a new account under a specific Non Custodial Wallet - operationId: CreateEmbeddedWalletAccount + put: + description: "Updates bypass screening, inbound delay, or outbound delay configurations\ + \ for Travel Rule." + operationId: updateTravelRuleConfig 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\ @@ -3966,1008 +3941,975 @@ paths: schema: type: string style: simple - - description: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 - explode: false - in: path - name: walletId - required: true - schema: - example: 550e8400-e29b-41d4-a716-446655440000 - type: string - style: simple responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletAccount" - description: Account Created - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Create a new account + $ref: "#/components/schemas/ScreeningConfigurationsRequest" + description: Configuration updated successfully. + summary: Update Travel Rule Configuration tags: - - Embedded Wallets + - Compliance x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.createEmbeddedWalletAccount(embeddedWalletsApiCreateEmbeddedWalletAccountRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.updateTravelRuleConfig(complianceApiUpdateTravelRuleConfigRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.embeddedWallets().createEmbeddedWalletAccount(walletId, idempotencyKey);" + code: CompletableFuture> response + = fireblocks.compliance().updateTravelRuleConfig(idempotencyKey); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.create_embedded_wallet_account(wallet_id,\ - \ idempotency_key);" + code: response = fireblocks.compliance.update_travel_rule_config(idempotency_key); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.createEmbeddedWalletAccount(embeddedWalletsApiCreateEmbeddedWalletAccountRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.updateTravelRuleConfig(complianceApiUpdateTravelRuleConfigRequest);" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.embeddedWallets().createEmbeddedWalletAccount(walletId, idempotencyKey);" + source: CompletableFuture> response + = fireblocks.compliance().updateTravelRuleConfig(idempotencyKey); - lang: Python - source: "response = fireblocks.embedded_wallets.create_embedded_wallet_account(wallet_id,\ - \ idempotency_key);" + source: response = fireblocks.compliance.update_travel_rule_config(idempotency_key); x-accepts: - application/json - /ncw/wallets/{walletId}/accounts/{accountId}: + /screening/travel_rule/post_screening_policy: get: - description: Get a specific account under a specific Non Custodial Wallet - operationId: GetEmbeddedWalletAccount - parameters: - - description: WalletId - example: 550e8400-e29b-41d4-a716-446655440000 - explode: false - in: path - name: walletId - required: true - schema: - type: string - style: simple - - description: The ID of the account - example: "0" - explode: false - in: path - name: accountId - required: true - schema: - type: string - style: simple + description: Get the post-screening policy for Travel Rule. + operationId: getPostScreeningPolicy + parameters: [] responses: "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletAccount" - description: Successful response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get a account + $ref: "#/components/schemas/ScreeningPolicyResponse" + description: Post-screening policy retrieved successfully. + summary: Travel Rule - View Post-Screening Policy tags: - - Embedded Wallets - x-rate-limit-category: read + - Compliance + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletAccount(embeddedWalletsApiGetEmbeddedWalletAccountRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.getPostScreeningPolicy();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.embeddedWallets().getEmbeddedWalletAccount(walletId, accountId);" + code: CompletableFuture> response = + fireblocks.compliance().getPostScreeningPolicy(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_embedded_wallet_account(wallet_id,\ - \ account_id);" + code: response = fireblocks.compliance.get_post_screening_policy(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletAccount(embeddedWalletsApiGetEmbeddedWalletAccountRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.getPostScreeningPolicy();" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.embeddedWallets().getEmbeddedWalletAccount(walletId, accountId);" + source: CompletableFuture> response = + fireblocks.compliance().getPostScreeningPolicy(); - lang: Python - source: "response = fireblocks.embedded_wallets.get_embedded_wallet_account(wallet_id,\ - \ account_id);" + source: response = fireblocks.compliance.get_post_screening_policy(); x-accepts: - application/json - /ncw/wallets/{walletId}/backup/latest: + /screening/travel_rule/screening_policy: get: - description: "Get wallet Latest Backup details, including the deviceId, and\ - \ backup time" - operationId: GetEmbeddedWalletLatestBackup - parameters: - - description: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 - explode: false - in: path - name: walletId - required: true - schema: - type: string - style: simple + description: Get the screening policy for Travel Rule. + operationId: getScreeningPolicy + parameters: [] responses: "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletLatestBackupResponse" - description: Successful response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get wallet Latest Backup details + $ref: "#/components/schemas/ScreeningProviderRulesConfigurationResponse" + description: Screening policy retrieved successfully. + summary: Travel Rule - View Screening Policy tags: - - Embedded Wallets - x-rate-limit-category: read + - Compliance + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletLatestBackup(embeddedWalletsApiGetEmbeddedWalletLatestBackupRequest);" + code: "const response: Promise>\ + \ = fireblocks.compliance.getScreeningPolicy();" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> - response = fireblocks.embeddedWallets().getEmbeddedWalletLatestBackup(walletId); + code: CompletableFuture> + response = fireblocks.compliance().getScreeningPolicy(); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.embedded_wallets.get_embedded_wallet_latest_backup(wallet_id); + code: response = fireblocks.compliance.get_screening_policy(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletLatestBackup(embeddedWalletsApiGetEmbeddedWalletLatestBackupRequest);" + source: "const response: Promise>\ + \ = fireblocks.compliance.getScreeningPolicy();" - lang: Java - source: CompletableFuture> - response = fireblocks.embeddedWallets().getEmbeddedWalletLatestBackup(walletId); + source: CompletableFuture> + response = fireblocks.compliance().getScreeningPolicy(); - lang: Python - source: response = fireblocks.embedded_wallets.get_embedded_wallet_latest_backup(wallet_id); + source: response = fireblocks.compliance.get_screening_policy(); x-accepts: - application/json - /ncw/wallets/{walletId}/devices/{deviceId}: + /connected_accounts: get: - description: Get specific device for a specific s Wallet - operationId: GetEmbeddedWalletDevice + description: | + Returns all connected accounts. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: getConnectedAccounts parameters: - - description: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 - explode: false - in: path - name: walletId - required: true + - description: Whether to include only main accounts in the response. + explode: true + in: query + name: mainAccounts + required: false schema: - type: string - style: simple - - description: Device Id - example: 9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3 - explode: false - in: path - name: deviceId - required: true + default: false + type: boolean + style: form + - description: Page size for pagination. + explode: true + in: query + name: pageSize + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Page cursor for pagination. + explode: true + in: query + name: pageCursor + required: false schema: type: string - style: simple + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletDevice" - description: Successful response + $ref: "#/components/schemas/ConnectedAccountsResponse" + description: Get accounts response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get Embedded Wallet Device + summary: Get connected accounts tags: - - Embedded Wallets - x-rate-limit-category: read + - Connected Accounts (Beta) + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletDevice(embeddedWalletsApiGetEmbeddedWalletDeviceRequest);" + code: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccounts(connectedAccountsBetaApiGetConnectedAccountsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWalletDevice(walletId,\ - \ deviceId);" + code: "CompletableFuture> response\ + \ = fireblocks.connectedAccountsBeta().getConnectedAccounts(mainAccounts,\ + \ pageSize, pageCursor);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_embedded_wallet_device(wallet_id,\ - \ device_id);" + code: "response = fireblocks.connected_accounts_beta.get_connected_accounts(main_accounts,\ + \ page_size, page_cursor);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletDevice(embeddedWalletsApiGetEmbeddedWalletDeviceRequest);" + source: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccounts(connectedAccountsBetaApiGetConnectedAccountsRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWalletDevice(walletId,\ - \ deviceId);" + source: "CompletableFuture> response\ + \ = fireblocks.connectedAccountsBeta().getConnectedAccounts(mainAccounts,\ + \ pageSize, pageCursor);" - lang: Python - source: "response = fireblocks.embedded_wallets.get_embedded_wallet_device(wallet_id,\ - \ device_id);" + source: "response = fireblocks.connected_accounts_beta.get_connected_accounts(main_accounts,\ + \ page_size, page_cursor);" x-accepts: - application/json - /ncw/wallets/{walletId}/devices/{deviceId}/setup_status: - get: - description: Get the state of the specific device setup key under a specific - Non Custodial Wallet - operationId: GetEmbeddedWalletDeviceSetupState + post: + description: | + Creates a new connected account for the authenticated tenant. + + The `creds` field must be a Base64-encoded RSA-encrypted credential blob. + Use `GET /exchange_accounts/credentials_public_key` to retrieve the public key for encryption. + + The `providerType` is derived server-side from the `providerId` — callers do not supply it. + + Endpoint Permission: Editor, Admin, Non-Signing Admin. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: createConnectedAccount parameters: - - description: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 + - 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: path - name: walletId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple - - description: Device Id - example: 9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3 - explode: false - in: path - name: deviceId + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateConnectedAccountRequest" required: true - schema: - type: string - style: simple responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletDeviceKeySetupResponse" - description: Successful response + $ref: "#/components/schemas/CreateConnectedAccountResponse" + description: Account created (or pending approval). + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: Bad request — invalid field or provider constraints violated. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: "Unauthorized. Missing / invalid JWT token, or insufficient\ + \ role (Editor or higher required)." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: Feature not enabled for this tenant. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: mainAccountId not found. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: Invalid credentials. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get device key setup state + summary: Create a connected account tags: - - Embedded Wallets - x-rate-limit-category: read + - Connected Accounts (Beta) + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletDeviceSetupState(embeddedWalletsApiGetEmbeddedWalletDeviceSetupStateRequest);" + code: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.createConnectedAccount(connectedAccountsBetaApiCreateConnectedAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWalletDeviceSetupState(walletId,\ - \ deviceId);" + code: "CompletableFuture> response\ + \ = fireblocks.connectedAccountsBeta().createConnectedAccount(createConnectedAccountRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_embedded_wallet_device_setup_state(wallet_id,\ - \ device_id);" + code: "response = fireblocks.connected_accounts_beta.create_connected_account(create_connected_account_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletDeviceSetupState(embeddedWalletsApiGetEmbeddedWalletDeviceSetupStateRequest);" + source: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.createConnectedAccount(connectedAccountsBetaApiCreateConnectedAccountRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWalletDeviceSetupState(walletId,\ - \ deviceId);" + source: "CompletableFuture> response\ + \ = fireblocks.connectedAccountsBeta().createConnectedAccount(createConnectedAccountRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.embedded_wallets.get_embedded_wallet_device_setup_state(wallet_id,\ - \ device_id);" + source: "response = fireblocks.connected_accounts_beta.create_connected_account(create_connected_account_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /ncw/wallets/{walletId}/devices/{deviceId}/status: - patch: - description: Update the enabled/disabled status of a specific device for a Non - Custodial Wallet - operationId: updateEmbeddedWalletDeviceStatus + /connected_accounts/{accountId}: + delete: + description: | + Disconnect a connected account by ID. + + **Note**: + - This endpoint is currently in beta and might be subject to changes. + operationId: disconnectConnectedAccount 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: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 - explode: false - in: path - name: walletId - required: true - schema: - type: string - style: simple - - description: Device Id - example: 9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3 + - description: The ID of the account to disconnect. explode: false in: path - name: deviceId + name: accountId required: true schema: + minLength: 1 type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/EnableDevice" - required: true responses: "204": - description: No Content - Device status updated successfully + description: Account disconnected successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Update device status + summary: Disconnect connected account tags: - - Embedded Wallets + - Connected Accounts (Beta) x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.embeddedWallets.updateEmbeddedWalletDeviceStatus(embeddedWalletsApiUpdateEmbeddedWalletDeviceStatusRequest);" + code: "const response: Promise> = fireblocks.connectedAccountsBeta.disconnectConnectedAccount(connectedAccountsBetaApiDisconnectConnectedAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.embeddedWallets().updateEmbeddedWalletDeviceStatus(enableDevice,\ - \ walletId, deviceId, idempotencyKey);" + code: CompletableFuture> response = fireblocks.connectedAccountsBeta().disconnectConnectedAccount(accountId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.update_embedded_wallet_device_status(enable_device,\ - \ wallet_id, device_id, idempotency_key);" + code: response = fireblocks.connected_accounts_beta.disconnect_connected_account(account_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.embeddedWallets.updateEmbeddedWalletDeviceStatus(embeddedWalletsApiUpdateEmbeddedWalletDeviceStatusRequest);" + source: "const response: Promise> = fireblocks.connectedAccountsBeta.disconnectConnectedAccount(connectedAccountsBetaApiDisconnectConnectedAccountRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.embeddedWallets().updateEmbeddedWalletDeviceStatus(enableDevice,\ - \ walletId, deviceId, idempotencyKey);" + source: CompletableFuture> response = fireblocks.connectedAccountsBeta().disconnectConnectedAccount(accountId); - lang: Python - source: "response = fireblocks.embedded_wallets.update_embedded_wallet_device_status(enable_device,\ - \ wallet_id, device_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.connected_accounts_beta.disconnect_connected_account(account_id); x-accepts: - application/json - /ncw/wallets/{walletId}/devices_paginated: get: - description: Get a paginated list of registered devices for a specific Non Custodial - Wallet - operationId: getEmbeddedWalletDevicesPaginated + description: | + Retrieve detailed information about a specific connected account by ID. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: getConnectedAccount parameters: - - description: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 + - description: The ID of the account to fetch. explode: false in: path - name: walletId + name: accountId required: true schema: + minLength: 1 type: string style: simple - - description: Sort by fields - explode: true - in: query - name: sort - required: false - schema: - default: - - createdAt - items: - enum: - - createdAt - type: string - type: array - style: form - - description: Cursor to the next page - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: Amount of results to return in the next page - explode: true - in: query - name: pageSize - required: false - schema: - default: 200 - maximum: 400 - type: number - style: form - - description: Is the order ascending or descending - explode: true - in: query - name: order - required: false - schema: - default: ASC - enum: - - ASC - - DESC - type: string - style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/EmbeddedWalletPaginatedDevicesResponse" - description: Successful response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorSchema" - description: Query parameters were invalid + $ref: "#/components/schemas/ConnectedSingleAccountResponse" + description: Account response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get registered devices - paginated + summary: Get connected account tags: - - Embedded Wallets - x-rate-limit-category: query + - Connected Accounts (Beta) + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletDevicesPaginated(embeddedWalletsApiGetEmbeddedWalletDevicesPaginatedRequest);" + code: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccount(connectedAccountsBetaApiGetConnectedAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWalletDevicesPaginated(walletId,\ - \ sort, pageCursor, pageSize, order);" + code: CompletableFuture> response + = fireblocks.connectedAccountsBeta().getConnectedAccount(accountId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_embedded_wallet_devices_paginated(wallet_id,\ - \ sort, page_cursor, page_size, order);" + code: response = fireblocks.connected_accounts_beta.get_connected_account(account_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletDevicesPaginated(embeddedWalletsApiGetEmbeddedWalletDevicesPaginatedRequest);" + source: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccount(connectedAccountsBetaApiGetConnectedAccountRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.embeddedWallets().getEmbeddedWalletDevicesPaginated(walletId,\ - \ sort, pageCursor, pageSize, order);" + source: CompletableFuture> response + = fireblocks.connectedAccountsBeta().getConnectedAccount(accountId); - lang: Python - source: "response = fireblocks.embedded_wallets.get_embedded_wallet_devices_paginated(wallet_id,\ - \ sort, page_cursor, page_size, order);" + source: response = fireblocks.connected_accounts_beta.get_connected_account(account_id); x-accepts: - application/json - /ncw/wallets/{walletId}/setup_status: + /connected_accounts/{accountId}/allowlist: get: - description: "Get the key setup state for a specific Non Custodial Wallet, including\ - \ required algorithms and device setup status" - operationId: getEmbeddedWalletSetupStatus + description: | + Retrieves the address allowlist for a specified connected account. + + **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange/Binance accounts only. + operationId: getConnectedAccountAllowlist parameters: - - description: Wallet Id - example: 550e8400-e29b-41d4-a716-446655440000 + - description: The connected account identifier explode: false in: path - name: walletId + name: accountId required: true schema: type: string style: simple - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/EmbeddedWalletSetupStatusResponse" - description: Successful response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get wallet key setup state - tags: - - Embedded Wallets - x-rate-limit-category: read - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletSetupStatus(embeddedWalletsApiGetEmbeddedWalletSetupStatusRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> - response = fireblocks.embeddedWallets().getEmbeddedWalletSetupStatus(walletId); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.embedded_wallets.get_embedded_wallet_setup_status(wallet_id); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletSetupStatus(embeddedWalletsApiGetEmbeddedWalletSetupStatusRequest);" - - lang: Java - source: CompletableFuture> - response = fireblocks.embeddedWallets().getEmbeddedWalletSetupStatus(walletId); - - lang: Python - source: response = fireblocks.embedded_wallets.get_embedded_wallet_setup_status(wallet_id); - x-accepts: - - application/json - /ncw/wallets/{walletId}/public_key_info: - get: - description: Gets the public key information based on derivation path and signing - algorithm within a Non-Custodial Wallet - operationId: getPublicKeyInfoNcw - parameters: - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: true + - description: Filter by allowlist entry status + explode: true + in: query + name: status + required: false + schema: + $ref: "#/components/schemas/AllowlistEntryStatus" + style: form + - description: | + Filter by Fireblocks asset ID. + + See [List assets](https://developers.fireblocks.com/reference/listassets) for the canonical list of Fireblocks asset IDs. + explode: true + in: query + name: assetId + required: false schema: - format: uuid type: string - style: simple - - description: The ID of the Non-Custodial wallet - explode: false - in: path - name: walletId - required: true + style: form + - description: | + Filter by Fireblocks network ID. + + See [List blockchains](https://developers.fireblocks.com/reference/listblockchains) for the canonical list of Fireblocks blockchain identifiers. + explode: true + in: query + name: networkId + required: false schema: - example: 550e8400-e29b-41d4-a716-446655440000 type: string - style: simple - - description: "An array of integers (passed as JSON stringified array) representing\ - \ the full BIP44 derivation path of the requested public key. \nThe first\ - \ element must always be 44.\n" - example: - - 44 - - 0 - - 0 - - 0 - - 0 + style: form + - description: Filter by specific address explode: true in: query - name: derivationPath - required: true + name: address + required: false schema: type: string style: form - - description: Elliptic Curve + - description: Pagination cursor for next page explode: true in: query - name: algorithm - required: true + name: pageCursor + required: false + schema: + type: string + style: form + - description: Maximum number of entries to return + explode: true + in: query + name: pageSize + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + style: form + - description: Field to sort results by. + explode: true + in: query + name: sortBy + required: false schema: + default: addedAt enum: - - MPC_ECDSA_SECP256K1 - - MPC_EDDSA_ED25519 - example: MPC_EDDSA_ED25519 + - addedAt + - lastSyncedAt type: string style: form - - description: Compressed/Uncompressed public key format + - description: Sort order (ASC or DESC). explode: true in: query - name: compressed + name: order required: false schema: - example: true - type: boolean + default: DESC + enum: + - ASC + - DESC + example: ASC + type: string style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/PublicKeyInformation" - description: Public key information + $ref: "#/components/schemas/AllowlistResponse" + description: Allowlist entries response + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: Connected account not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get the public key for a derivation path + summary: Get allowlist for connected account tags: - - Embedded Wallets - x-rate-limit-category: read + - Connected Accounts (Beta) + x-rate-limit-category: query x-readme: code-samples: - - language: javascript - code: "const publicKeyInfoArgs = { \n algorithm: 'MPC_ECDSA_SECP256K1',\n\ - \ derivationPath: [44, 0, 0, 0, 0],\n compressed: true\n};\nconst pubKey\ - \ = await fireblocks.NCW.getPublicKeyInfo(walletId, publicKeyInfoArgs);\n" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getPublicKeyInfoNcw(embeddedWalletsApiGetPublicKeyInfoNcwRequest);" + code: "const response: Promise> =\ + \ fireblocks.connectedAccountsBeta.getConnectedAccountAllowlist(connectedAccountsBetaApiGetConnectedAccountAllowlistRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.embeddedWallets().getPublicKeyInfoNcw(walletId,\ - \ derivationPath, algorithm, xEndUserWalletId, compressed);" + code: "CompletableFuture> response = fireblocks.connectedAccountsBeta().getConnectedAccountAllowlist(accountId,\ + \ status, assetId, networkId, address, pageCursor, pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_public_key_info_ncw(wallet_id,\ - \ derivation_path, algorithm, x_end_user_wallet_id, compressed);" + code: "response = fireblocks.connected_accounts_beta.get_connected_account_allowlist(account_id,\ + \ status, asset_id, network_id, address, page_cursor, page_size, sort_by,\ + \ order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getPublicKeyInfoNcw(embeddedWalletsApiGetPublicKeyInfoNcwRequest);" + source: "const response: Promise> =\ + \ fireblocks.connectedAccountsBeta.getConnectedAccountAllowlist(connectedAccountsBetaApiGetConnectedAccountAllowlistRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.embeddedWallets().getPublicKeyInfoNcw(walletId,\ - \ derivationPath, algorithm, xEndUserWalletId, compressed);" + source: "CompletableFuture> response = fireblocks.connectedAccountsBeta().getConnectedAccountAllowlist(accountId,\ + \ status, assetId, networkId, address, pageCursor, pageSize, sortBy, order);" - lang: Python - source: "response = fireblocks.embedded_wallets.get_public_key_info_ncw(wallet_id,\ - \ derivation_path, algorithm, x_end_user_wallet_id, compressed);" + source: "response = fireblocks.connected_accounts_beta.get_connected_account_allowlist(account_id,\ + \ status, asset_id, network_id, address, page_cursor, page_size, sort_by,\ + \ order);" x-accepts: - application/json - /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/{change}/{addressIndex}/public_key_info: + /connected_accounts/{accountId}/allowlist/{allowlistId}: get: - description: Gets the public key of an asset associated with a specific account - within a Non-Custodial Wallet - operationId: GetEmbeddedWalletPublicKeyInfoForAddress + description: | + Retrieves a single allowlist entry by its Fireblocks identifier for a specified connected account. + + **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange/Binance accounts only. + operationId: getConnectedAccountAllowlistEntry parameters: - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: true - schema: - format: uuid - type: string - style: simple - - description: The ID of the Non-Custodial wallet - explode: false - in: path - name: walletId - required: true - schema: - example: 550e8400-e29b-41d4-a716-446655440000 - type: string - style: simple - - description: The ID of the account + - description: The connected account identifier explode: false in: path name: accountId required: true schema: - example: "0" - format: numeric type: string style: simple - - description: The ID of the asset + - description: The Fireblocks allowlist entry identifier explode: false in: path - name: assetId + name: allowlistId required: true schema: - example: BTC type: string - x-fb-entity: asset style: simple - - description: BIP44 derivation path - change value - explode: false - in: path - name: change - required: true - schema: - example: 0 - type: number - style: simple - - description: BIP44 derivation path - index value - explode: false - in: path - name: addressIndex - required: true - schema: - example: 0 - type: number - style: simple - - description: Compressed/Uncompressed public key format - explode: true - in: query - name: compressed - required: false - schema: - example: true - type: boolean - style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/PublicKeyInformation" - description: Public Key Information + $ref: "#/components/schemas/AllowlistEntryResponse" + description: Allowlist entry response + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: Connected account or allowlist entry not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get the public key of an asset + summary: Get a single allowlist entry for a connected account tags: - - Embedded Wallets - x-rate-limit-category: read + - Connected Accounts (Beta) + x-rate-limit-category: query x-readme: code-samples: - - language: javascript - code: "const publicKeyInfoByAccountAssetArgs = {\n assetId: 'ETH',\n accountId:\ - \ 0,\n change: 0,\n addressIndex: 0,\n compressed: true\n}; \ - \ \nconst pubKey = await fireblocks.NCW.getPublicKeyInfoByAccountAsset(walletId,\ - \ publicKeyInfoByAccountAssetArgs);\n" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletPublicKeyInfoForAddress(embeddedWalletsApiGetEmbeddedWalletPublicKeyInfoForAddressRequest);" + code: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccountAllowlistEntry(connectedAccountsBetaApiGetConnectedAccountAllowlistEntryRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWalletPublicKeyInfoForAddress(walletId,\ - \ accountId, assetId, change, addressIndex, xEndUserWalletId, compressed);" + code: "CompletableFuture> response =\ + \ fireblocks.connectedAccountsBeta().getConnectedAccountAllowlistEntry(accountId,\ + \ allowlistId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.embedded_wallets.get_embedded_wallet_public_key_info_for_address(wallet_id,\ - \ account_id, asset_id, change, address_index, x_end_user_wallet_id, compressed);" + code: "response = fireblocks.connected_accounts_beta.get_connected_account_allowlist_entry(account_id,\ + \ allowlist_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.embeddedWallets.getEmbeddedWalletPublicKeyInfoForAddress(embeddedWalletsApiGetEmbeddedWalletPublicKeyInfoForAddressRequest);" + source: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccountAllowlistEntry(connectedAccountsBetaApiGetConnectedAccountAllowlistEntryRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWalletPublicKeyInfoForAddress(walletId,\ - \ accountId, assetId, change, addressIndex, xEndUserWalletId, compressed);" + source: "CompletableFuture> response =\ + \ fireblocks.connectedAccountsBeta().getConnectedAccountAllowlistEntry(accountId,\ + \ allowlistId);" - lang: Python - source: "response = fireblocks.embedded_wallets.get_embedded_wallet_public_key_info_for_address(wallet_id,\ - \ account_id, asset_id, change, address_index, x_end_user_wallet_id, compressed);" + source: "response = fireblocks.connected_accounts_beta.get_connected_account_allowlist_entry(account_id,\ + \ allowlist_id);" x-accepts: - application/json - /ncw/{walletId}/accounts/{accountId}/{assetId}/{change}/{addressIndex}/public_key_info: - get: - description: Gets the public key of an asset associated with a specific account - within a Non-Custodial Wallet - operationId: getPublicKeyInfoForAddressNcw + /connected_accounts/{accountId}/allowlist/sync: + post: + description: | + Triggers an on-demand sync from the exchange, bypassing the cache and fetching live data immediately. + + **Rate limit:** 1 request per minute per connected account. + + **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange/Binance accounts only. + operationId: syncConnectedAccountAllowlist parameters: - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. + - 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: X-End-User-Wallet-Id - required: true - schema: - format: uuid - type: string - style: simple - - description: The ID of the Non-Custodial wallet - explode: false - in: path - name: walletId - required: true + name: Idempotency-Key + required: false schema: - example: 550e8400-e29b-41d4-a716-446655440000 type: string style: simple - - description: The ID of the account + - description: The connected account identifier explode: false in: path name: accountId required: true schema: - example: "0" - format: numeric type: string style: simple - - description: The ID of the asset + responses: + "202": + description: Sync request accepted and processing + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Sync allowlist for connected account + tags: + - Connected Accounts (Beta) + x-rate-limit-category: async + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.connectedAccountsBeta.syncConnectedAccountAllowlist(connectedAccountsBetaApiSyncConnectedAccountAllowlistRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.connectedAccountsBeta().syncConnectedAccountAllowlist(accountId,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.connected_accounts_beta.sync_connected_account_allowlist(account_id,\ + \ idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.connectedAccountsBeta.syncConnectedAccountAllowlist(connectedAccountsBetaApiSyncConnectedAccountAllowlistRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.connectedAccountsBeta().syncConnectedAccountAllowlist(accountId,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.connected_accounts_beta.sync_connected_account_allowlist(account_id,\ + \ idempotency_key);" + x-accepts: + - application/json + /connected_accounts/{accountId}/balances: + get: + description: | + Retrieve current asset balances for a specific connected account as a flat list (one row per `assetId`, `balanceType`). + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: getConnectedAccountBalances + parameters: + - description: The ID of the account to fetch balances for. explode: false in: path - name: assetId + name: accountId required: true schema: - example: BTC + minLength: 1 type: string - x-fb-entity: asset - style: simple - - description: BIP44 derivation path - change value - explode: false - in: path - name: change - required: true - schema: - example: 0 - type: number style: simple - - description: BIP44 derivation path - index value - explode: false - in: path - name: addressIndex - required: true + - description: Page size for pagination. + explode: true + in: query + name: pageSize + required: false schema: - example: 0 - type: number - style: simple - - description: Compressed/Uncompressed public key format + maximum: 1000 + minimum: 1 + type: integer + style: form + - description: Page cursor for pagination. explode: true in: query - name: compressed + name: pageCursor required: false schema: - example: true - type: boolean + type: string style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/PublicKeyInformation" - description: Public Key Information + $ref: "#/components/schemas/ConnectedAccountBalancesResponse" + description: Account balances response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get the public key of an asset + summary: Get balances for an account tags: - - Embedded Wallets - x-internal: true - x-rate-limit-category: read + - Connected Accounts (Beta) + x-rate-limit-category: query x-readme: code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccountBalances(connectedAccountsBetaApiGetConnectedAccountBalancesRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.connectedAccountsBeta().getConnectedAccountBalances(accountId,\ + \ pageSize, pageCursor);" + name: Fireblocks SDK Java example - language: python - code: "pubKey = fireblocks.NCW.get_public_key_info_by_account_asset(wallet_id,\ - \ asset_id, account_id, change, address_index, compressed)" + code: "response = fireblocks.connected_accounts_beta.get_connected_account_balances(account_id,\ + \ page_size, page_cursor);" name: Fireblocks SDK Python example - - language: javascript - code: "const publicKeyInfoByAccountAssetArgs = {\n assetId: 'ETH',\n accountId:\ - \ 0,\n change: 0,\n addressIndex: 0,\n compressed: true\n}; \ - \ \nconst pubKey = await fireblocks.NCW.getPublicKeyInfoByAccountAsset(walletId,\ - \ publicKeyInfoByAccountAssetArgs);\n" - name: Fireblocks SDK Javascript example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccountBalances(connectedAccountsBetaApiGetConnectedAccountBalancesRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.connectedAccountsBeta().getConnectedAccountBalances(accountId,\ + \ pageSize, pageCursor);" + - lang: Python + source: "response = fireblocks.connected_accounts_beta.get_connected_account_balances(account_id,\ + \ page_size, page_cursor);" x-accepts: - application/json - /workspace: + /connected_accounts/{accountId}/manifest/capabilities/trading/pairs: get: description: | - Returns the workspace ID and name for the authenticated user. - operationId: getWorkspace + Retrieve all asset trading pairs supported by a specific connected account, including the pair type (`quote`, `market`, `onOffRamp`). + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: getConnectedAccountTradingPairs + parameters: + - description: The ID of the account to fetch supported pairs for. + explode: false + in: path + name: accountId + required: true + schema: + minLength: 1 + type: string + style: simple + - description: Page size for pagination. + explode: true + in: query + name: pageSize + required: false + schema: + default: 100 + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Page cursor for pagination. + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/Workspace" - description: Workspace details + $ref: "#/components/schemas/ConnectedAccountTradingPairsResponse" + description: Supported pairs response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get workspace + summary: Get supported trading pairs for an account tags: - - Workspace - x-rate-limit-category: read + - Connected Accounts (Beta) + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.workspace.getWorkspace();" + code: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccountTradingPairs(connectedAccountsBetaApiGetConnectedAccountTradingPairsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.workspace().getWorkspace(); + code: "CompletableFuture>\ + \ response = fireblocks.connectedAccountsBeta().getConnectedAccountTradingPairs(accountId,\ + \ pageSize, pageCursor);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.workspace.get_workspace(); + code: "response = fireblocks.connected_accounts_beta.get_connected_account_trading_pairs(account_id,\ + \ page_size, page_cursor);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.workspace.getWorkspace();" + source: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccountTradingPairs(connectedAccountsBetaApiGetConnectedAccountTradingPairsRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.workspace().getWorkspace(); + source: "CompletableFuture>\ + \ response = fireblocks.connectedAccountsBeta().getConnectedAccountTradingPairs(accountId,\ + \ pageSize, pageCursor);" - lang: Python - source: response = fireblocks.workspace.get_workspace(); + source: "response = fireblocks.connected_accounts_beta.get_connected_account_trading_pairs(account_id,\ + \ page_size, page_cursor);" x-accepts: - application/json - /workspace/freeze: - post: - description: "Freezes a Workspace so that ALL operations by ANY user are blocked.\n\ - You should only perform this action when the workspace faces imminent risk,\ - \ such as when you have a security breach.\nTo unfreeze a workspace, the workspace\ - \ Owner must submit a request to Fireblocks Support.\n**NOTE:** \n- This operation\ - \ can only be performed by the workspace Admins - Your workspace continues\ - \ to receive incoming transfers during this time.\nEndpoint Permission: Admin,\ - \ Non-Signing Admin." - operationId: freezeWorkspace + /connected_accounts/{accountId}/rates: + get: + description: | + Retrieve current exchange rates for converting between specific assets in a connected account. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: getConnectedAccountRates 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." + - description: The ID of the account to fetch rates for. explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: accountId + required: true schema: + minLength: 1 type: string style: simple - responses: - "204": - description: Indicates that the workspace is now frozen - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Freeze - tags: - - Workspace - x-internal: true - x-rate-limit-category: write - x-accepts: - - application/json - /exchange_accounts: - get: - deprecated: true - description: |- - DEPRECATED - Please use the `/exchange_accounts/paged` endpoint. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: getExchangeAccounts + - description: The ID of the asset to fetch rates for. + explode: true + in: query + name: baseAssetId + required: true + schema: + minLength: 1 + type: string + style: form + - description: The ID of the asset to get the rates nominally. + explode: true + in: query + name: quoteAssetId + required: true + schema: + minLength: 1 + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetExchangeAccountsResponse" - description: An ExchangeAccount object + $ref: "#/components/schemas/ConnectedAccountRateResponse" + description: Rates response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List exchange accounts + summary: Get exchange rates for an account tags: - - Exchange accounts - x-internal: true - x-rate-limit-category: high_compute + - Connected Accounts (Beta) + x-rate-limit-category: read x-readme: code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccountRates(connectedAccountsBetaApiGetConnectedAccountRatesRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.connectedAccountsBeta().getConnectedAccountRates(accountId,\ + \ baseAssetId, quoteAssetId);" + name: Fireblocks SDK Java example - language: python - code: exchangeAccounts = fireblocks.get_exchange_accounts() - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const exchangeAccounts = await fireblocks.getExchangeAccounts(); - name: Fireblocks SDK Javascript example + code: "response = fireblocks.connected_accounts_beta.get_connected_account_rates(account_id,\ + \ base_asset_id, quote_asset_id);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.getConnectedAccountRates(connectedAccountsBetaApiGetConnectedAccountRatesRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.connectedAccountsBeta().getConnectedAccountRates(accountId,\ + \ baseAssetId, quoteAssetId);" + - lang: Python + source: "response = fireblocks.connected_accounts_beta.get_connected_account_rates(account_id,\ + \ base_asset_id, quote_asset_id);" x-accepts: - application/json + /connected_accounts/{accountId}/rename: post: - description: "Add an exchange account to exchanges. \n\nNote: This endpoint\ - \ currently only supports the following exchanges `INDEPENDENT_RESERVE`,`BIT`,\ - \ `BITHUMB`, `BITSO`, `CRYPTOCOM`, `BYBIT_V2`, `WHITEBIT`, `HITBTC`, `GEMINI`,\ - \ `HUOBI`, `GATEIO`, `COINHAKO`, `BULLISH`, `BITGET`, and `LUNO`\n\nTo add\ - \ an exchange account, please use the following [guide](https://developers.fireblocks.com/docs/add-an-exchange-account).\n" - operationId: addExchangeAccount + description: | + Rename a connected account by account ID. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: renameConnectedAccount parameters: + - description: The unique identifier of the connected account + explode: false + in: path + name: accountId + required: true + schema: + minLength: 1 + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -4983,207 +4925,173 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AddExchangeAccountRequest" + $ref: "#/components/schemas/RenameConnectedAccountRequest" required: true responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/AddExchangeAccountResponse" - description: An Exchange Account identifier object + $ref: "#/components/schemas/RenameConnectedAccountResponse" + description: Successfully renamed connected account. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: "Bad request. Missing tenantId, accountId, or accountName." + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: Failed to rename connected account. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: Connected account not found + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/ConnectedAccountErrorResponse" + description: Conflict. Account name is already in use by another account. default: $ref: "#/components/responses/Error" - summary: Add an exchange account + summary: Rename Connected Account tags: - - Exchange accounts + - Connected Accounts (Beta) x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.exchangeAccounts.addExchangeAccount(exchangeAccountsApiAddExchangeAccountRequest);" + code: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.renameConnectedAccount(connectedAccountsBetaApiRenameConnectedAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.exchangeAccounts().addExchangeAccount(addExchangeAccountRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.connectedAccountsBeta().renameConnectedAccount(renameConnectedAccountRequest,\ + \ accountId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.exchange_accounts.add_exchange_account(add_exchange_account_request,\ - \ idempotency_key);" + code: "response = fireblocks.connected_accounts_beta.rename_connected_account(rename_connected_account_request,\ + \ account_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.exchangeAccounts.addExchangeAccount(exchangeAccountsApiAddExchangeAccountRequest);" + source: "const response: Promise>\ + \ = fireblocks.connectedAccountsBeta.renameConnectedAccount(connectedAccountsBetaApiRenameConnectedAccountRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.exchangeAccounts().addExchangeAccount(addExchangeAccountRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.connectedAccountsBeta().renameConnectedAccount(renameConnectedAccountRequest,\ + \ accountId, idempotencyKey);" - lang: Python - source: "response = fireblocks.exchange_accounts.add_exchange_account(add_exchange_account_request,\ - \ idempotency_key);" + source: "response = fireblocks.connected_accounts_beta.rename_connected_account(rename_connected_account_request,\ + \ account_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /exchange_accounts/paged: + /management/users: get: - description: "Returns a list of the connected exchange accounts in your workspace.\ - \ Endpoint Permission: Admin, Non-Signing Admin." - operationId: getPagedExchangeAccounts - parameters: - - explode: true - in: query - name: before - required: false - schema: - type: string - style: form - - explode: true - in: query - name: after - required: false - schema: - type: string - style: form - - description: number of exchanges per page - explode: true - in: query - name: limit - required: true - schema: - default: 3 - maximum: 5 - minimum: 1 - type: number - style: form + description: |- + Get console users for your workspace. + - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: getConsoleUsers responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetPagedExchangeAccountsResponse" - description: An ExchangeAccount object + $ref: "#/components/schemas/GetConsoleUsersResponse" + description: got console users headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: List connected exchange accounts - tags: - - Exchange accounts - x-rate-limit-category: query - x-readme: - code-samples: - - language: javascript - code: const exchangeAccounts = await fireblocks.getExchangeAccountsPaged(); - name: Fireblocks SDK Javascript example - - language: python - code: exchangeAccounts = fireblocks.get_exchange_accounts_paged() - name: Fireblocks SDK Python example (Legacy) - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.exchangeAccounts.getPagedExchangeAccounts(exchangeAccountsApiGetPagedExchangeAccountsRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture>\ - \ response = fireblocks.exchangeAccounts().getPagedExchangeAccounts(limit,\ - \ before, after);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.exchange_accounts.get_paged_exchange_accounts(limit,\ - \ before, after);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.exchangeAccounts.getPagedExchangeAccounts(exchangeAccountsApiGetPagedExchangeAccountsRequest);" - - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.exchangeAccounts().getPagedExchangeAccounts(limit,\ - \ before, after);" - - lang: Python - source: "response = fireblocks.exchange_accounts.get_paged_exchange_accounts(limit,\ - \ before, after);" - x-accepts: - - application/json - /exchange_accounts/{exchangeAccountId}: - get: - description: |- - Returns an exchange account by ID. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: getExchangeAccount - parameters: - - description: The ID of the exchange account to return - explode: false - in: path - name: exchangeAccountId - required: true - schema: - type: string - style: simple - responses: - "200": + "401": content: application/json: schema: - $ref: "#/components/schemas/ExchangeAccount" - description: An ExchangeAccount object + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Lacking permissions. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Internal error. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get a specific exchange account + summary: Get console users tags: - - Exchange accounts - x-rate-limit-category: external_query + - Console User + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: exchangeAccount = fireblocks.get_exchange_account(exchangeAccountId) - name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const exchnageAccount = await fireblocks.get_exchange_account(exchangeAccountId); + code: const consoleUsers = await fireblocks.getConsoleUsers(); name: Fireblocks SDK Javascript example + - language: python + code: consoleUsers = fireblocks.get_console_users() + name: Fireblocks SDK Python example (Legacy) - language: typescript - code: "const response: Promise> = fireblocks.exchangeAccounts.getExchangeAccount(exchangeAccountsApiGetExchangeAccountRequest);" + code: "const response: Promise>\ + \ = fireblocks.consoleUser.getConsoleUsers();" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.exchangeAccounts().getExchangeAccount(exchangeAccountId); + code: CompletableFuture> response = + fireblocks.consoleUser().getConsoleUsers(); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.exchange_accounts.get_exchange_account(exchange_account_id); + code: response = fireblocks.console_user.get_console_users(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.exchangeAccounts.getExchangeAccount(exchangeAccountsApiGetExchangeAccountRequest);" + source: "const response: Promise>\ + \ = fireblocks.consoleUser.getConsoleUsers();" - lang: Java - source: CompletableFuture> response = fireblocks.exchangeAccounts().getExchangeAccount(exchangeAccountId); + source: CompletableFuture> response = + fireblocks.consoleUser().getConsoleUsers(); - lang: Python - source: response = fireblocks.exchange_accounts.get_exchange_account(exchange_account_id); + source: response = fireblocks.console_user.get_console_users(); x-accepts: - application/json - /exchange_accounts/{exchangeAccountId}/internal_transfer: post: description: |- - Transfers funds between trading accounts under the same exchange account. - Learn more about Fireblocks Exchange Connectivity in the following [guide](https://developers.fireblocks.com/docs/connect-to-exchanges-and-fiat-providers). + Create console users in your workspace + - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. + Learn more about Fireblocks Users management in the following [guide](https://developers.fireblocks.com/docs/manage-users). Endpoint Permission: Admin, Non-Signing Admin. - operationId: internalTransfer + operationId: createConsoleUser parameters: - - description: The ID of the exchange account to return - explode: false - in: path - name: exchangeAccountId - required: true - schema: - 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -5199,69 +5107,91 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CreateInternalTransferRequest" + $ref: "#/components/schemas/CreateConsoleUser" responses: - "201": + "200": + description: User creation approval request has been sent + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + description: bad request + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "401": content: application/json: schema: - $ref: "#/components/schemas/InternalTransferResponse" - description: Transfer succeeded + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Lacking permissions. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Internal error. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Internal transfer for exchange accounts + summary: Create console user tags: - - Exchange accounts - x-rate-limit-category: high_compute + - Console User + x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: "const res = await fireblocks.createConsoleUser(firstName, lastName,\ + \ email, role);" + name: Fireblocks SDK Javascript example + - language: python + code: "res = fireblocks.create_console_user(first_name, last_name, email,\ + \ role)" + name: Fireblocks SDK Python example (Legacy) - language: typescript - code: "const response: Promise>\ - \ = fireblocks.exchangeAccounts.internalTransfer(exchangeAccountsApiInternalTransferRequest);" + code: "const response: Promise> = fireblocks.consoleUser.createConsoleUser(consoleUserApiCreateConsoleUserRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.exchangeAccounts().internalTransfer(exchangeAccountId,\ - \ createInternalTransferRequest, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.consoleUser().createConsoleUser(createConsoleUser,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.exchange_accounts.internal_transfer(exchange_account_id,\ - \ create_internal_transfer_request, idempotency_key);" + code: "response = fireblocks.console_user.create_console_user(create_console_user,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.exchangeAccounts.internalTransfer(exchangeAccountsApiInternalTransferRequest);" + source: "const response: Promise> = fireblocks.consoleUser.createConsoleUser(consoleUserApiCreateConsoleUserRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.exchangeAccounts().internalTransfer(exchangeAccountId, createInternalTransferRequest,\ + source: "CompletableFuture> response = fireblocks.consoleUser().createConsoleUser(createConsoleUser,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.exchange_accounts.internal_transfer(exchange_account_id,\ - \ create_internal_transfer_request, idempotency_key);" + source: "response = fireblocks.console_user.create_console_user(create_console_user,\ + \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /exchange_accounts/{exchangeAccountId}/convert: + /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/decode: post: - description: |- - Convert exchange account funds from the source asset to the destination asset. Coinbase (USD to USDC, USDC to USD) and Bitso (MXN to USD) are supported conversions. - Learn more about Fireblocks Exchange Connectivity in the following [guide](https://developers.fireblocks.com/docs/connect-to-exchanges-and-fiat-providers). - Endpoint Permission: Admin, Non-Signing Admin. - operationId: convertAssets + description: "Decode a function call data, error, or event log from a deployed\ + \ contract by blockchain native asset id and contract address." + operationId: decodeContractData parameters: - - description: "The ID of the exchange account. Please make sure the exchange\ - \ supports conversions. To find the ID of your exchange account, use GET/exchange_accounts." - explode: false - in: path - name: exchangeAccountId - required: true - schema: - 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -5273,75 +5203,117 @@ paths: schema: type: string style: simple + - description: The contract's onchain address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 + explode: false + in: path + name: contractAddress + required: true + schema: + type: string + style: simple + - description: The blockchain native asset identifier + example: ETH + explode: false + in: path + name: baseAssetId + required: true + schema: + type: string + style: simple requestBody: content: application/json: schema: - $ref: "#/components/schemas/ConvertAssetsRequest" + $ref: "#/components/schemas/ContractDataDecodeRequest" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ConvertAssetsResponse" - description: Conversion successful - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/ContractDataDecodedResponse" + description: Decoded data retrieved successfully + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ContractDataDecodeError" + description: "Bad request, invalid input data or parameters" default: $ref: "#/components/responses/Error" - summary: Convert exchange account funds + summary: "Decode a function call data, error, or event log" tags: - - Exchange accounts - x-rate-limit-category: write + - Contract Interactions + x-rate-limit-category: read x-readme: code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.exchangeAccounts.convertAssets(exchangeAccountsApiConvertAssetsRequest);" + - language: javascript + code: |- + const payload = { + "data": "0xcd21db4f000000000000000000000000000000000000000000000000000000006790c645", + "dataType": "ERROR" + } const decodeResponse = await fireblocks.decodeContractData(baseAssetId, contractAddress, payload); + name: Fireblocks SDK Javascript example + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.contractInteractions.decodeContractData(contractInteractionsApiDecodeContractDataRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.exchangeAccounts().convertAssets(exchangeAccountId, convertAssetsRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.contractInteractions().decodeContractData(contractDataDecodeRequest,\ + \ contractAddress, baseAssetId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.exchange_accounts.convert_assets(exchange_account_id,\ - \ convert_assets_request, idempotency_key);" + code: "response = fireblocks.contract_interactions.decode_contract_data(contract_data_decode_request,\ + \ contract_address, base_asset_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.exchangeAccounts.convertAssets(exchangeAccountsApiConvertAssetsRequest);" + source: "const response: Promise>\ + \ = fireblocks.contractInteractions.decodeContractData(contractInteractionsApiDecodeContractDataRequest);" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.exchangeAccounts().convertAssets(exchangeAccountId, convertAssetsRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.contractInteractions().decodeContractData(contractDataDecodeRequest,\ + \ contractAddress, baseAssetId, idempotencyKey);" - lang: Python - source: "response = fireblocks.exchange_accounts.convert_assets(exchange_account_id,\ - \ convert_assets_request, idempotency_key);" + source: "response = fireblocks.contract_interactions.decode_contract_data(contract_data_decode_request,\ + \ contract_address, base_asset_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /exchange_accounts/{exchangeAccountId}/{assetId}: + /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions: get: description: |- - Returns an asset for an exchange account. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: getExchangeAccountAsset + Return deployed contract's ABI by blockchain native asset id and contract address. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer. + operationId: getDeployedContractAbi parameters: - - description: The ID of the exchange account to return + - 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 contract's onchain address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 explode: false in: path - name: exchangeAccountId + name: contractAddress required: true schema: type: string style: simple - - description: The ID of the asset to return + - description: The blockchain base assetId + example: ETH explode: false in: path - name: assetId + name: baseAssetId required: true schema: type: string @@ -5351,213 +5323,236 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ExchangeAsset" - description: An ExchangeAccountAsset object - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/ContractAbiResponseDto" + description: "" default: $ref: "#/components/responses/Error" - summary: Get an asset for an exchange account + summary: Return deployed contract's ABI tags: - - Exchange accounts - x-rate-limit-category: external_query + - Contract Interactions + x-rate-limit-category: read x-readme: code-samples: - language: python - code: "exchangeAsset = fireblocks.get_exchange_account_asset(exchangeAccountId,\ - \ assetId)" + code: "deployed_contract_abi = fireblocks.get_contracts_abi(base_asset_id,\ + \ contract_address)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const exchangeAsset = await fireblocks.getExchangeAsset(exchangeAccountId,\ - \ assetId);" + code: "const deployedContractAbi = await fireblocks.getContractAbi(baseAssetId,\ + \ contractAddress);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.exchangeAccounts.getExchangeAccountAsset(exchangeAccountsApiGetExchangeAccountAssetRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response = fireblocks.exchangeAccounts().getExchangeAccountAsset(exchangeAccountId,\ - \ assetId);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.exchange_accounts.get_exchange_account_asset(exchange_account_id,\ - \ asset_id);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> = fireblocks.exchangeAccounts.getExchangeAccountAsset(exchangeAccountsApiGetExchangeAccountAssetRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.exchangeAccounts().getExchangeAccountAsset(exchangeAccountId,\ - \ assetId);" - - lang: Python - source: "response = fireblocks.exchange_accounts.get_exchange_account_asset(exchange_account_id,\ - \ asset_id);" - x-accepts: - - application/json - /exchange_accounts/credentials_public_key: - get: - description: Return public key - operationId: getExchangeAccountsCredentialsPublicKey - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/GetExchangeAccountsCredentialsPublicKeyResponse" - description: public key as string - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get public key to encrypt exchange credentials - tags: - - Exchange accounts - x-rate-limit-category: read - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.exchangeAccounts.getExchangeAccountsCredentialsPublicKey();" + code: "const response: Promise>\ + \ = fireblocks.contractInteractions.getDeployedContractAbi(contractInteractionsApiGetDeployedContractAbiRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> - response = fireblocks.exchangeAccounts().getExchangeAccountsCredentialsPublicKey(); + code: "CompletableFuture> response =\ + \ fireblocks.contractInteractions().getDeployedContractAbi(contractAddress,\ + \ baseAssetId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.exchange_accounts.get_exchange_accounts_credentials_public_key(); + code: "response = fireblocks.contract_interactions.get_deployed_contract_abi(contract_address,\ + \ base_asset_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.exchangeAccounts.getExchangeAccountsCredentialsPublicKey();" + source: "const response: Promise>\ + \ = fireblocks.contractInteractions.getDeployedContractAbi(contractInteractionsApiGetDeployedContractAbiRequest);" - lang: Java - source: CompletableFuture> - response = fireblocks.exchangeAccounts().getExchangeAccountsCredentialsPublicKey(); + source: "CompletableFuture> response =\ + \ fireblocks.contractInteractions().getDeployedContractAbi(contractAddress,\ + \ baseAssetId, idempotencyKey);" - lang: Python - source: response = fireblocks.exchange_accounts.get_exchange_accounts_credentials_public_key(); + source: "response = fireblocks.contract_interactions.get_deployed_contract_abi(contract_address,\ + \ base_asset_id, idempotency_key);" x-accepts: - application/json - /fiat_accounts: - get: - description: |- - Returns all fiat accounts. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: getFiatAccounts + /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/read: + post: + description: Call a read function on a deployed contract by blockchain native + asset id and contract address + operationId: readCallFunction + 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 contract's onchain address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 + explode: false + in: path + name: contractAddress + required: true + schema: + type: string + style: simple + - explode: false + in: path + name: baseAssetId + required: true + schema: + type: string + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ReadCallFunctionDto" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetFiatAccountsResponse" - description: A fiat account object - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/ParameterWithValueList" + description: Read Call Retrieved Successfully default: $ref: "#/components/responses/Error" - summary: List fiat accounts + summary: Call a read function on a deployed contract tags: - - Fiat accounts - x-rate-limit-category: query + - Contract Interactions x-readme: code-samples: - language: python - code: transactions = fireblocks.get_fiat_accounts() + code: "read_response = fireblocks.read_contract_call_function(base_asset_id,\ + \ contract_address, payload)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const transactions = await fireblocks.getFiatAccounts(); + code: "const readResponse= await fireblocks.readContractCallFunction(baseAssetId,\ + \ contractAddress, payload);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.fiatAccounts.getFiatAccounts();" + code: "const response: Promise>\ + \ = fireblocks.contractInteractions.readCallFunction(contractInteractionsApiReadCallFunctionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = fireblocks.fiatAccounts().getFiatAccounts(); + code: "CompletableFuture>> response\ + \ = fireblocks.contractInteractions().readCallFunction(readCallFunctionDto,\ + \ contractAddress, baseAssetId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.fiat_accounts.get_fiat_accounts(); + code: "response = fireblocks.contract_interactions.read_call_function(read_call_function_dto,\ + \ contract_address, base_asset_id, idempotency_key);" name: Fireblocks SDK Python example + x-rate-limit-category: read x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.fiatAccounts.getFiatAccounts();" + source: "const response: Promise>\ + \ = fireblocks.contractInteractions.readCallFunction(contractInteractionsApiReadCallFunctionRequest);" - lang: Java - source: CompletableFuture>> response = fireblocks.fiatAccounts().getFiatAccounts(); + source: "CompletableFuture>> response\ + \ = fireblocks.contractInteractions().readCallFunction(readCallFunctionDto,\ + \ contractAddress, baseAssetId, idempotencyKey);" - lang: Python - source: response = fireblocks.fiat_accounts.get_fiat_accounts(); + source: "response = fireblocks.contract_interactions.read_call_function(read_call_function_dto,\ + \ contract_address, base_asset_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /fiat_accounts/{accountId}: - get: - description: |- - Returns a fiat account by ID. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: getFiatAccount + /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/write: + post: + description: "Call a write function on a deployed contract by blockchain native\ + \ asset id and contract address. This creates an onchain transaction, thus\ + \ it is an async operation. It returns a transaction id that can be polled\ + \ for status check" + operationId: writeCallFunction parameters: - - description: The ID of the fiat account to return + - 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 contract's onchain address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 explode: false in: path - name: accountId + name: contractAddress + required: true + schema: + type: string + style: simple + - explode: false + in: path + name: baseAssetId required: true schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/WriteCallFunctionDto" + required: true responses: - "200": + "202": content: application/json: schema: - $ref: "#/components/schemas/FiatAccount" - description: A fiat account object - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/WriteCallFunctionResponseDto" + description: "" default: $ref: "#/components/responses/Error" - summary: Find a specific fiat account + summary: Call a write function on a deployed contract tags: - - Fiat accounts - x-rate-limit-category: query + - Contract Interactions x-readme: code-samples: - language: python - code: transactions = fireblocks.get_fiat_account_by_id(account_id) + code: "write_function_response = fireblocks.write_contract_call_function(base_asset_id,\ + \ contract_address, payload)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const transactions = await fireblocks.getFiatAccountById(accountId); + code: "const writeFunctionResponse = await fireblocks.writeContractCallFunction(baseAssetId,\ + \ contractAddress, payload);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.fiatAccounts.getFiatAccount(fiatAccountsApiGetFiatAccountRequest);" + code: "const response: Promise>\ + \ = fireblocks.contractInteractions.writeCallFunction(contractInteractionsApiWriteCallFunctionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.fiatAccounts().getFiatAccount(accountId); + code: "CompletableFuture> response\ + \ = fireblocks.contractInteractions().writeCallFunction(writeCallFunctionDto,\ + \ contractAddress, baseAssetId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.fiat_accounts.get_fiat_account(account_id); + code: "response = fireblocks.contract_interactions.write_call_function(write_call_function_dto,\ + \ contract_address, base_asset_id, idempotency_key);" name: Fireblocks SDK Python example + x-rate-limit-category: async x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.fiatAccounts.getFiatAccount(fiatAccountsApiGetFiatAccountRequest);" + source: "const response: Promise>\ + \ = fireblocks.contractInteractions.writeCallFunction(contractInteractionsApiWriteCallFunctionRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.fiatAccounts().getFiatAccount(accountId); + source: "CompletableFuture> response\ + \ = fireblocks.contractInteractions().writeCallFunction(writeCallFunctionDto,\ + \ contractAddress, baseAssetId, idempotencyKey);" - lang: Python - source: response = fireblocks.fiat_accounts.get_fiat_account(account_id); + source: "response = fireblocks.contract_interactions.write_call_function(write_call_function_dto,\ + \ contract_address, base_asset_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /fiat_accounts/{accountId}/redeem_to_linked_dda: - post: - description: Redeems funds to the linked DDA. - operationId: redeemFundsToLinkedDDA + /contract_interactions/base_asset_id/{baseAssetId}/tx_hash/{txHash}: + get: + description: Retrieve the contract address by blockchain native asset ID and + transaction hash + operationId: getContractAddress parameters: - - description: The ID of the fiat account to use - explode: false - in: path - name: accountId - required: true - schema: - 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -5569,161 +5564,188 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/Funds" + - description: The blockchain base assetId + example: ETH_TEST3 + explode: false + in: path + name: baseAssetId + required: true + schema: + type: string + style: simple + - description: The transaction hash + example: 0x3b015ca0518c55d7bff4e3f5aa5d0431705771553ba8a95cf20e34cb597f57f6 + explode: false + in: path + name: txHash + required: true + schema: + type: string + style: simple responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/RedeemFundsToLinkedDDAResponse" - description: Transfer succeeded - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/ContractAddressResponse" + description: Retrieved The Contract Address Successfully default: $ref: "#/components/responses/Error" - summary: Redeem funds to DDA + summary: Get contract address by transaction hash tags: - - Fiat accounts - x-rate-limit-category: write + - Contract Interactions + x-rate-limit-category: read x-readme: code-samples: - language: python - code: "transactions = fireblocks.redeem_to_linked_dda(account_id, amount)" + code: "contract_address = fireblocks.get_contract_address(base_asset_id,\ + \ tx_hash)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const transactions = await fireblocks.redeemToLinkedDDA(accountId,\ - \ amount);" + code: "const contractAddress = await fireblocks.getContractAddress(baseAssetId,\ + \ txHash);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.fiatAccounts.redeemFundsToLinkedDDA(fiatAccountsApiRedeemFundsToLinkedDDARequest);" + code: "const response: Promise>\ + \ = fireblocks.contractInteractions.getContractAddress(contractInteractionsApiGetContractAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.fiatAccounts().redeemFundsToLinkedDDA(accountId, funds,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.contractInteractions().getContractAddress(baseAssetId,\ + \ txHash, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.fiat_accounts.redeem_funds_to_linked_d_d_a(account_id,\ - \ funds, idempotency_key);" + code: "response = fireblocks.contract_interactions.get_contract_address(base_asset_id,\ + \ tx_hash, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.fiatAccounts.redeemFundsToLinkedDDA(fiatAccountsApiRedeemFundsToLinkedDDARequest);" + source: "const response: Promise>\ + \ = fireblocks.contractInteractions.getContractAddress(contractInteractionsApiGetContractAddressRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.fiatAccounts().redeemFundsToLinkedDDA(accountId, funds, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.contractInteractions().getContractAddress(baseAssetId, txHash,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.fiat_accounts.redeem_funds_to_linked_d_d_a(account_id,\ - \ funds, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.contract_interactions.get_contract_address(base_asset_id,\ + \ tx_hash, idempotency_key);" x-accepts: - application/json - /fiat_accounts/{accountId}/deposit_from_linked_dda: - post: - description: Deposits funds from the linked DDA. - operationId: depositFundsFromLinkedDDA + /contract_interactions/base_asset_id/{baseAssetId}/tx_hash/{txHash}/receipt: + get: + description: "Retrieve the transaction receipt by blockchain native asset ID\ + \ and transaction hash\n> **Note** > This functionality is exclusively available\ + \ for EVM (Ethereum Virtual Machine) compatible chains. \nEndpoint Permission:\ + \ Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer." + operationId: getTransactionReceipt parameters: - - description: The ID of the fiat account to use + - description: The blockchain base assetId + example: ETH_TEST6 explode: false in: path - name: accountId + name: baseAssetId required: true schema: 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\ - \ same response as the first request. The idempotency key is valid for 24\ - \ hours." + - description: The transaction hash + example: 0x3b015ca0518c55d7bff4e3f5aa5d0431705771553ba8a95cf20e34cb597f57f6 explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: txHash + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/Funds" responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/DepositFundsFromLinkedDDAResponse" - description: Transfer succeeded - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/TransactionReceiptResponse" + description: Retrieved The Transaction Receipt Successfully default: $ref: "#/components/responses/Error" - summary: Deposit funds from DDA + summary: Get transaction receipt tags: - - Fiat accounts - x-rate-limit-category: write + - Contract Interactions + x-rate-limit-category: read x-readme: code-samples: - language: python - code: "transactions = fireblocks.deposit_from_linked_dda(account_id, amount)" + code: "transaction_receipt = fireblocks.get_transaction_receipt(base_asset_id,\ + \ tx_hash)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const transactions = await fireblocks.depositFromLinkedDDA(accountId,\ - \ amount);" + code: "const transactionReceipt = await fireblocks.getTransactionReceipt(baseAssetId,\ + \ txHash);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.fiatAccounts.depositFundsFromLinkedDDA(fiatAccountsApiDepositFundsFromLinkedDDARequest);" + code: "const response: Promise>\ + \ = fireblocks.contractInteractions.getTransactionReceipt(contractInteractionsApiGetTransactionReceiptRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.fiatAccounts().depositFundsFromLinkedDDA(accountId,\ - \ funds, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.contractInteractions().getTransactionReceipt(baseAssetId,\ + \ txHash);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.fiat_accounts.deposit_funds_from_linked_d_d_a(account_id,\ - \ funds, idempotency_key);" + code: "response = fireblocks.contract_interactions.get_transaction_receipt(base_asset_id,\ + \ tx_hash);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.fiatAccounts.depositFundsFromLinkedDDA(fiatAccountsApiDepositFundsFromLinkedDDARequest);" + source: "const response: Promise>\ + \ = fireblocks.contractInteractions.getTransactionReceipt(contractInteractionsApiGetTransactionReceiptRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.fiatAccounts().depositFundsFromLinkedDDA(accountId,\ - \ funds, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.contractInteractions().getTransactionReceipt(baseAssetId,\ + \ txHash);" - lang: Python - source: "response = fireblocks.fiat_accounts.deposit_funds_from_linked_d_d_a(account_id,\ - \ funds, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.contract_interactions.get_transaction_receipt(base_asset_id,\ + \ tx_hash);" x-accepts: - application/json - /connected_accounts: + /tokenization/templates: get: - description: | - Returns all connected accounts. - - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: getConnectedAccounts + description: |- + Return minimal representation of all the contract templates available for the workspace. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getContractTemplates parameters: - - description: Whether to include only main accounts in the response. + - description: Items per page (max 100) explode: true in: query - name: mainAccounts + name: limit required: false schema: - default: false - type: boolean + default: 100 + maximum: 100 + minimum: 1 + type: number style: form - - description: Page size for pagination. + - description: Paging offset + explode: true + in: query + name: offset + required: false + schema: + default: 0 + minimum: 0 + type: number + style: form + - description: Page cursor to get the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: "Number of items per page, requesting more then max will return\ + \ max items" + example: 10 explode: true in: query name: pageSize @@ -5731,14 +5753,32 @@ paths: schema: maximum: 100 minimum: 1 - type: integer + type: number style: form - - description: Page cursor for pagination. + - description: "The type of the contract templates you wish to retrieve. Can\ + \ accept one type, more or none" + example: FUNGIBLE_TOKEN explode: true in: query - name: pageCursor + name: type + required: false + schema: + enum: + - FUNGIBLE_TOKEN + - NON_FUNGIBLE_TOKEN + - TOKEN_UTILITY + type: string + style: form + - description: For standalone contracts use ON_DEPLOYMENT and for contracts + that are behind proxies use POST_DEPLOYMENT + explode: true + in: query + name: initializationPhase required: false schema: + enum: + - ON_DEPLOYMENT + - POST_DEPLOYMENT type: string style: form responses: @@ -5746,452 +5786,408 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ConnectedAccountsResponse" - description: Get accounts response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/TemplatesPaginatedResponse" + description: List of contract templates was returned successfully default: $ref: "#/components/responses/Error" - summary: Get connected accounts + summary: List all contract templates tags: - - Connected Accounts (Beta) + - Contract Templates x-rate-limit-category: query x-readme: code-samples: + - language: python + code: contract_templates = fireblocks.get_contract_templates() + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const contractTemplates = await fireblocks.getContractTemplates(); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.getConnectedAccounts(connectedAccountsBetaApiGetConnectedAccountsRequest);" + code: "const response: Promise>\ + \ = fireblocks.contractTemplates.getContractTemplates(contractTemplatesApiGetContractTemplatesRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.connectedAccountsBeta().getConnectedAccounts(mainAccounts,\ - \ pageSize, pageCursor);" + code: "CompletableFuture> response\ + \ = fireblocks.contractTemplates().getContractTemplates(limit, offset,\ + \ pageCursor, pageSize, type, initializationPhase);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.connected_accounts_beta.get_connected_accounts(main_accounts,\ - \ page_size, page_cursor);" + code: "response = fireblocks.contract_templates.get_contract_templates(limit,\ + \ offset, page_cursor, page_size, type, initialization_phase);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.getConnectedAccounts(connectedAccountsBetaApiGetConnectedAccountsRequest);" + source: "const response: Promise>\ + \ = fireblocks.contractTemplates.getContractTemplates(contractTemplatesApiGetContractTemplatesRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.connectedAccountsBeta().getConnectedAccounts(mainAccounts,\ - \ pageSize, pageCursor);" + source: "CompletableFuture> response\ + \ = fireblocks.contractTemplates().getContractTemplates(limit, offset, pageCursor,\ + \ pageSize, type, initializationPhase);" - lang: Python - source: "response = fireblocks.connected_accounts_beta.get_connected_accounts(main_accounts,\ - \ page_size, page_cursor);" + source: "response = fireblocks.contract_templates.get_contract_templates(limit,\ + \ offset, page_cursor, page_size, type, initialization_phase);" x-accepts: - application/json - /connected_accounts/{accountId}: - delete: - description: | - Disconnect a connected account by ID. - - **Note**: - - This endpoint is currently in beta and might be subject to changes. - operationId: disconnectConnectedAccount + post: + description: Upload a new contract template. This contract template will be + available for the workspace + operationId: uploadContractTemplate parameters: - - description: The ID of the account to disconnect. + - 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: path - name: accountId - required: true + in: header + name: Idempotency-Key + required: false schema: - minLength: 1 type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ContractUploadRequest" + required: true responses: - "204": - description: Account disconnected successfully - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/ContractTemplateDto" + description: Contract was uploaded successfully default: $ref: "#/components/responses/Error" - summary: Disconnect connected account + summary: Upload contract template tags: - - Connected Accounts (Beta) + - Contract Templates x-rate-limit-category: write x-readme: code-samples: + - language: python + code: template = fireblocks.upload_contract_template(upload_request) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const contractTemplate = await fireblocks.uploadContractTemplate(uploadRequest); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.connectedAccountsBeta.disconnectConnectedAccount(connectedAccountsBetaApiDisconnectConnectedAccountRequest);" + code: "const response: Promise>\ + \ = fireblocks.contractTemplates.uploadContractTemplate(contractTemplatesApiUploadContractTemplateRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.connectedAccountsBeta().disconnectConnectedAccount(accountId); + code: "CompletableFuture> response = fireblocks.contractTemplates().uploadContractTemplate(contractUploadRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.connected_accounts_beta.disconnect_connected_account(account_id); + code: "response = fireblocks.contract_templates.upload_contract_template(contract_upload_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.connectedAccountsBeta.disconnectConnectedAccount(connectedAccountsBetaApiDisconnectConnectedAccountRequest);" + source: "const response: Promise>\ + \ = fireblocks.contractTemplates.uploadContractTemplate(contractTemplatesApiUploadContractTemplateRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.connectedAccountsBeta().disconnectConnectedAccount(accountId); + source: "CompletableFuture> response = fireblocks.contractTemplates().uploadContractTemplate(contractUploadRequest,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.connected_accounts_beta.disconnect_connected_account(account_id); + source: "response = fireblocks.contract_templates.upload_contract_template(contract_upload_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - get: - description: | - Retrieve detailed information about a specific connected account by ID. - - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: getConnectedAccount + /tokenization/templates/{contractTemplateId}: + delete: + description: "Delete a contract by id. allowed only for private contract templates.\ + \ Notice: it is irreversible!" + operationId: deleteContractTemplateById parameters: - - description: The ID of the account to fetch. + - description: The Contract Template identifier + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d explode: false in: path - name: accountId + name: contractTemplateId required: true schema: - minLength: 1 type: string style: simple responses: - "200": + "204": + description: Contract was deleted successfully + "404": content: application/json: schema: - $ref: "#/components/schemas/ConnectedSingleAccountResponse" - description: Account response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/HttpContractDoesNotExistError" + description: Could not find contract. default: $ref: "#/components/responses/Error" - summary: Get connected account + summary: Delete a contract template by id tags: - - Connected Accounts (Beta) - x-rate-limit-category: read + - Contract Templates + x-rate-limit-category: write x-readme: code-samples: + - language: python + code: fireblocks.deleteContractTemplate(contract_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: await fireblocks.getContractTemplate(contractId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.getConnectedAccount(connectedAccountsBetaApiGetConnectedAccountRequest);" + code: "const response: Promise> = fireblocks.contractTemplates.deleteContractTemplateById(contractTemplatesApiDeleteContractTemplateByIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.connectedAccountsBeta().getConnectedAccount(accountId); + code: CompletableFuture> response = fireblocks.contractTemplates().deleteContractTemplateById(contractTemplateId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.connected_accounts_beta.get_connected_account(account_id); + code: response = fireblocks.contract_templates.delete_contract_template_by_id(contract_template_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.getConnectedAccount(connectedAccountsBetaApiGetConnectedAccountRequest);" + source: "const response: Promise> = fireblocks.contractTemplates.deleteContractTemplateById(contractTemplatesApiDeleteContractTemplateByIdRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.connectedAccountsBeta().getConnectedAccount(accountId); + source: CompletableFuture> response = fireblocks.contractTemplates().deleteContractTemplateById(contractTemplateId); - lang: Python - source: response = fireblocks.connected_accounts_beta.get_connected_account(account_id); + source: response = fireblocks.contract_templates.delete_contract_template_by_id(contract_template_id); x-accepts: - application/json - /connected_accounts/{accountId}/rename: - post: - description: | - Rename a connected account by account ID. - - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: renameConnectedAccount + get: + description: Return detailed information about the contract template + operationId: getContractTemplateById parameters: - - description: The unique identifier of the connected account + - description: The Contract Template identifier + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d explode: false in: path - name: accountId + name: contractTemplateId required: true - schema: - minLength: 1 - 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\ - \ 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/RenameConnectedAccountRequest" - required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/RenameConnectedAccountResponse" - description: Successfully renamed connected account. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/ConnectedAccountErrorResponse" - description: "Bad request. Missing tenantId, accountId, or accountName." - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ConnectedAccountErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/ConnectedAccountErrorResponse" - description: Failed to rename connected account. + $ref: "#/components/schemas/ContractTemplateDto" + description: Contract template was returned successfully "404": content: application/json: schema: - $ref: "#/components/schemas/ConnectedAccountErrorResponse" - description: Connected account not found - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/ConnectedAccountErrorResponse" - description: Conflict. Account name is already in use by another account. + $ref: "#/components/schemas/HttpContractDoesNotExistError" + description: Could not find contract. default: $ref: "#/components/responses/Error" - summary: Rename Connected Account + summary: Return contract template by id tags: - - Connected Accounts (Beta) - x-rate-limit-category: write + - Contract Templates + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: contract_template = fireblocks.get_contract_template(contract_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const contractTemplate = await fireblocks.getContractTemplate(contractId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.renameConnectedAccount(connectedAccountsBetaApiRenameConnectedAccountRequest);" + code: "const response: Promise>\ + \ = fireblocks.contractTemplates.getContractTemplateById(contractTemplatesApiGetContractTemplateByIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.connectedAccountsBeta().renameConnectedAccount(renameConnectedAccountRequest,\ - \ accountId, idempotencyKey);" + code: CompletableFuture> response = fireblocks.contractTemplates().getContractTemplateById(contractTemplateId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.connected_accounts_beta.rename_connected_account(rename_connected_account_request,\ - \ account_id, idempotency_key);" + code: response = fireblocks.contract_templates.get_contract_template_by_id(contract_template_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.renameConnectedAccount(connectedAccountsBetaApiRenameConnectedAccountRequest);" + source: "const response: Promise>\ + \ = fireblocks.contractTemplates.getContractTemplateById(contractTemplatesApiGetContractTemplateByIdRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.connectedAccountsBeta().renameConnectedAccount(renameConnectedAccountRequest,\ - \ accountId, idempotencyKey);" + source: CompletableFuture> response = fireblocks.contractTemplates().getContractTemplateById(contractTemplateId); - lang: Python - source: "response = fireblocks.connected_accounts_beta.rename_connected_account(rename_connected_account_request,\ - \ account_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.contract_templates.get_contract_template_by_id(contract_template_id); x-accepts: - application/json - /connected_accounts/{accountId}/balances: + /tokenization/templates/{contractTemplateId}/constructor: get: - description: | - Retrieve current asset balances for a specific connected account as a flat list (one row per `assetId`, `balanceType`). - - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: getConnectedAccountBalances + description: Return contract template's constructor ABI + operationId: getConstructorByContractTemplateId parameters: - - description: The ID of the account to fetch balances for. + - description: The Contract Template identifier + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d explode: false in: path - name: accountId + name: contractTemplateId required: true schema: - minLength: 1 type: string style: simple - - description: Page size for pagination. - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 1000 - minimum: 1 - type: integer - style: form - - description: Page cursor for pagination. + - description: true if you want to get the abi with its docs explode: true in: query - name: pageCursor + name: withDocs required: false schema: - type: string + default: false + type: boolean style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ConnectedAccountBalancesResponse" - description: Account balances response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/AbiFunction" + description: Contract template's constructor ABI was returned successfully + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/HttpContractDoesNotExistError" + description: Could not find contract. default: $ref: "#/components/responses/Error" - summary: Get balances for an account + summary: Return contract template's constructor tags: - - Connected Accounts (Beta) - x-rate-limit-category: query + - Contract Templates + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: contract_constructor_abi = fireblocks.get_contract_template_constructor(contract_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const contractConstructorAbi = await fireblocks.getContractTemplateConstructor(contractId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.getConnectedAccountBalances(connectedAccountsBetaApiGetConnectedAccountBalancesRequest);" + code: "const response: Promise> = fireblocks.contractTemplates.getConstructorByContractTemplateId(contractTemplatesApiGetConstructorByContractTemplateIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.connectedAccountsBeta().getConnectedAccountBalances(accountId,\ - \ pageSize, pageCursor);" + code: "CompletableFuture> response = fireblocks.contractTemplates().getConstructorByContractTemplateId(contractTemplateId,\ + \ withDocs);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.connected_accounts_beta.get_connected_account_balances(account_id,\ - \ page_size, page_cursor);" + code: "response = fireblocks.contract_templates.get_constructor_by_contract_template_id(contract_template_id,\ + \ with_docs);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.getConnectedAccountBalances(connectedAccountsBetaApiGetConnectedAccountBalancesRequest);" + source: "const response: Promise> = fireblocks.contractTemplates.getConstructorByContractTemplateId(contractTemplatesApiGetConstructorByContractTemplateIdRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.connectedAccountsBeta().getConnectedAccountBalances(accountId,\ - \ pageSize, pageCursor);" + source: "CompletableFuture> response = fireblocks.contractTemplates().getConstructorByContractTemplateId(contractTemplateId,\ + \ withDocs);" - lang: Python - source: "response = fireblocks.connected_accounts_beta.get_connected_account_balances(account_id,\ - \ page_size, page_cursor);" + source: "response = fireblocks.contract_templates.get_constructor_by_contract_template_id(contract_template_id,\ + \ with_docs);" x-accepts: - application/json - /connected_accounts/{accountId}/rates: - get: - description: | - Retrieve current exchange rates for converting between specific assets in a connected account. - - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: getConnectedAccountRates + /tokenization/templates/{contractTemplateId}/deploy: + post: + description: "Deploy a new contract by contract template id. If you wish to\ + \ deploy a token (ERC20, ERC721 etc), and create asset please use POST /tokenization" + operationId: deployContract parameters: - - description: The ID of the account to fetch rates for. + - description: The Contract Template identifier + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d explode: false in: path - name: accountId + name: contractTemplateId required: true schema: - minLength: 1 type: string style: simple - - description: The ID of the asset to fetch rates for. - explode: true - in: query - name: baseAssetId - required: true + - 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: - minLength: 1 type: string - style: form - - description: The ID of the asset to get the rates nominally. - explode: true - in: query - name: quoteAssetId + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ContractDeployRequest" required: true - schema: - minLength: 1 - type: string - style: form responses: - "200": + "202": content: application/json: schema: - $ref: "#/components/schemas/ConnectedAccountRateResponse" - description: Rates response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/ContractDeployResponse" + description: Contract was deployed successfully + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/HttpContractDoesNotExistError" + description: Could not find contract. default: $ref: "#/components/responses/Error" - summary: Get exchange rates for an account + summary: Deploy contract tags: - - Connected Accounts (Beta) - x-rate-limit-category: read + - Contract Templates + x-rate-limit-category: write x-readme: code-samples: + - language: python + code: "response = fireblocks.deploy_contract(contract_id, contract_deploy_request)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const { txId } = await fireblocks.deployContract(contractId, contractDeployRequest);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.getConnectedAccountRates(connectedAccountsBetaApiGetConnectedAccountRatesRequest);" + code: "const response: Promise>\ + \ = fireblocks.contractTemplates.deployContract(contractTemplatesApiDeployContractRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.connectedAccountsBeta().getConnectedAccountRates(accountId,\ - \ baseAssetId, quoteAssetId);" + code: "CompletableFuture> response =\ + \ fireblocks.contractTemplates().deployContract(contractDeployRequest,\ + \ contractTemplateId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.connected_accounts_beta.get_connected_account_rates(account_id,\ - \ base_asset_id, quote_asset_id);" + code: "response = fireblocks.contract_templates.deploy_contract(contract_deploy_request,\ + \ contract_template_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.getConnectedAccountRates(connectedAccountsBetaApiGetConnectedAccountRatesRequest);" + source: "const response: Promise>\ + \ = fireblocks.contractTemplates.deployContract(contractTemplatesApiDeployContractRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.connectedAccountsBeta().getConnectedAccountRates(accountId,\ - \ baseAssetId, quoteAssetId);" + source: "CompletableFuture> response =\ + \ fireblocks.contractTemplates().deployContract(contractDeployRequest, contractTemplateId,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.connected_accounts_beta.get_connected_account_rates(account_id,\ - \ base_asset_id, quote_asset_id);" + source: "response = fireblocks.contract_templates.deploy_contract(contract_deploy_request,\ + \ contract_template_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /connected_accounts/{accountId}/manifest/capabilities/trading/pairs: + /tokenization/templates/{contractTemplateId}/function: get: - description: | - Retrieve all asset trading pairs supported by a specific connected account, including the pair type (`quote`, `market`, `onOffRamp`). - - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: getConnectedAccountTradingPairs + description: Return contract template`s function ABI by signature + operationId: getFunctionAbiByContractTemplateId parameters: - - description: The ID of the account to fetch supported pairs for. + - description: The Contract Template identifier + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d explode: false in: path - name: accountId + name: contractTemplateId required: true schema: - minLength: 1 type: string style: simple - - description: Page size for pagination. - explode: true - in: query - name: pageSize - required: false - schema: - default: 100 - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Page cursor for pagination. - explode: true + - explode: true in: query - name: pageCursor - required: false + name: functionSignature + required: true schema: type: string style: form @@ -6200,204 +6196,154 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ConnectedAccountTradingPairsResponse" - description: Supported pairs response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/AbiFunction" + description: Contract template`s function ABI was returned successfully + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/HttpContractDoesNotExistError" + description: Could not find contract. default: $ref: "#/components/responses/Error" - summary: Get supported trading pairs for an account + summary: Return contract template's function tags: - - Connected Accounts (Beta) - x-rate-limit-category: query + - Contract Templates + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.getConnectedAccountTradingPairs(connectedAccountsBetaApiGetConnectedAccountTradingPairsRequest);" + code: "const response: Promise> = fireblocks.contractTemplates.getFunctionAbiByContractTemplateId(contractTemplatesApiGetFunctionAbiByContractTemplateIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.connectedAccountsBeta().getConnectedAccountTradingPairs(accountId,\ - \ pageSize, pageCursor);" + code: "CompletableFuture> response = fireblocks.contractTemplates().getFunctionAbiByContractTemplateId(contractTemplateId,\ + \ functionSignature);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.connected_accounts_beta.get_connected_account_trading_pairs(account_id,\ - \ page_size, page_cursor);" + code: "response = fireblocks.contract_templates.get_function_abi_by_contract_template_id(contract_template_id,\ + \ function_signature);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.connectedAccountsBeta.getConnectedAccountTradingPairs(connectedAccountsBetaApiGetConnectedAccountTradingPairsRequest);" + source: "const response: Promise> = fireblocks.contractTemplates.getFunctionAbiByContractTemplateId(contractTemplatesApiGetFunctionAbiByContractTemplateIdRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.connectedAccountsBeta().getConnectedAccountTradingPairs(accountId,\ - \ pageSize, pageCursor);" + source: "CompletableFuture> response = fireblocks.contractTemplates().getFunctionAbiByContractTemplateId(contractTemplateId,\ + \ functionSignature);" - lang: Python - source: "response = fireblocks.connected_accounts_beta.get_connected_account_trading_pairs(account_id,\ - \ page_size, page_cursor);" + source: "response = fireblocks.contract_templates.get_function_abi_by_contract_template_id(contract_template_id,\ + \ function_signature);" x-accepts: - application/json - /connected_accounts/{accountId}/allowlist: + /tokenization/templates/{contractTemplateId}/supported_blockchains: get: - description: | - Retrieves the address allowlist for a specified connected account. - - **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only. - operationId: getConnectedAccountAllowlist + description: Get supported blockchains for the template + operationId: getSupportedBlockchainsByTemplateId parameters: - - description: The connected account identifier + - description: The Contract Template identifier + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d explode: false in: path - name: accountId + name: contractTemplateId required: true schema: type: string style: simple - - description: Filter by allowlist entry status - explode: true - in: query - name: status - required: false - schema: - $ref: "#/components/schemas/AllowlistEntryStatus" - style: form - - description: | - Filter by Fireblocks asset ID. - - See [List assets](https://developers.fireblocks.com/reference/listassets) for the canonical list of Fireblocks asset IDs. - explode: true - in: query - name: assetId - required: false - schema: - type: string - style: form - - description: | - Filter by Fireblocks network ID. - - See [List blockchains](https://developers.fireblocks.com/reference/listblockchains) for the canonical list of Fireblocks blockchain identifiers. - explode: true - in: query - name: networkId - required: false - schema: - type: string - style: form - - description: Filter by specific address - explode: true - in: query - name: address - required: false - schema: - type: string - style: form - - description: Pagination cursor for next page - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: Maximum number of entries to return - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 1000 - minimum: 1 - type: integer - style: form - - description: Field to sort results by. - explode: true - in: query - name: sortBy - required: false - schema: - default: addedAt - enum: - - addedAt - - lastSyncedAt - 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/AllowlistResponse" - description: Allowlist entries response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/SupportedBlockChainsResponse" + description: Supported blockchains list "404": content: application/json: schema: - $ref: "#/components/schemas/ConnectedAccountErrorResponse" - description: Connected account not found + $ref: "#/components/schemas/HttpContractDoesNotExistError" + description: Could not find contract. + default: + $ref: "#/components/responses/Error" + summary: Get supported blockchains for the template + tags: + - Contract Templates + x-rate-limit-category: read + x-readme: + code-samples: + - language: python + code: supported_blockchains = fireblocks.get_supported_blockchains_by_template_id(contract_template_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const supportedBlockchains = await fireblocks.getSupportedBlockchainsByTemplateId(contractTemplateId); + name: Fireblocks SDK Javascript example + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.contractTemplates.getSupportedBlockchainsByTemplateId(contractTemplatesApiGetSupportedBlockchainsByTemplateIdRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response + = fireblocks.contractTemplates().getSupportedBlockchainsByTemplateId(contractTemplateId); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.contract_templates.get_supported_blockchains_by_template_id(contract_template_id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.contractTemplates.getSupportedBlockchainsByTemplateId(contractTemplatesApiGetSupportedBlockchainsByTemplateIdRequest);" + - lang: Java + source: CompletableFuture> response + = fireblocks.contractTemplates().getSupportedBlockchainsByTemplateId(contractTemplateId); + - lang: Python + source: response = fireblocks.contract_templates.get_supported_blockchains_by_template_id(contract_template_id); + x-accepts: + - application/json + /contracts: + get: + description: "Gets a list of whitelisted contracts. Endpoint Permission: Admin,\ + \ Non-Signing Admin, Signer, Approver, Editor, Viewer." + operationId: getContracts + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetContractsResponse" + description: A list of contracts headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get allowlist for connected account + summary: List Whitelisted Contracts tags: - - Connected Accounts (Beta) + - Contracts x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.connectedAccountsBeta.getConnectedAccountAllowlist(connectedAccountsBetaApiGetConnectedAccountAllowlistRequest);" + code: "const response: Promise>\ + \ = fireblocks.contracts.getContracts();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.connectedAccountsBeta().getConnectedAccountAllowlist(accountId,\ - \ status, assetId, networkId, address, pageCursor, pageSize, sortBy, order);" + code: CompletableFuture>> response = fireblocks.contracts().getContracts(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.connected_accounts_beta.get_connected_account_allowlist(account_id,\ - \ status, asset_id, network_id, address, page_cursor, page_size, sort_by,\ - \ order);" + code: response = fireblocks.contracts.get_contracts(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.connectedAccountsBeta.getConnectedAccountAllowlist(connectedAccountsBetaApiGetConnectedAccountAllowlistRequest);" + source: "const response: Promise>\ + \ = fireblocks.contracts.getContracts();" - lang: Java - source: "CompletableFuture> response = fireblocks.connectedAccountsBeta().getConnectedAccountAllowlist(accountId,\ - \ status, assetId, networkId, address, pageCursor, pageSize, sortBy, order);" + source: CompletableFuture>> response = fireblocks.contracts().getContracts(); - lang: Python - source: "response = fireblocks.connected_accounts_beta.get_connected_account_allowlist(account_id,\ - \ status, asset_id, network_id, address, page_cursor, page_size, sort_by,\ - \ order);" + source: response = fireblocks.contracts.get_contracts(); x-accepts: - application/json - /connected_accounts/{accountId}/allowlist/sync: post: - description: | - Triggers an on-demand sync from the exchange, bypassing the cache and fetching live data immediately. - - **Rate limit:** 1 request per minute per connected account. - - **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only. - operationId: syncConnectedAccountAllowlist + description: "Adds a contract to the workspace whitelist. Endpoint Permission:\ + \ Admin, Non-Signing Admin, Signer, Approver, Editor." + operationId: createContract 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\ @@ -6410,397 +6356,289 @@ paths: schema: type: string style: simple - - description: The connected account identifier - explode: false - in: path - name: accountId - required: true - schema: - type: string - style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateContractRequest" responses: - "202": - description: Sync request accepted and processing + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/UnmanagedWallet" + description: A Wallet object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Sync allowlist for connected account + summary: Add a contract tags: - - Connected Accounts (Beta) - x-rate-limit-category: async + - Contracts + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.connectedAccountsBeta.syncConnectedAccountAllowlist(connectedAccountsBetaApiSyncConnectedAccountAllowlistRequest);" + code: "const response: Promise> = fireblocks.contracts.createContract(contractsApiCreateContractRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.connectedAccountsBeta().syncConnectedAccountAllowlist(accountId,\ + code: "CompletableFuture> response = fireblocks.contracts().createContract(createContractRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.connected_accounts_beta.sync_connected_account_allowlist(account_id,\ + code: "response = fireblocks.contracts.create_contract(create_contract_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.connectedAccountsBeta.syncConnectedAccountAllowlist(connectedAccountsBetaApiSyncConnectedAccountAllowlistRequest);" + source: "const response: Promise> = fireblocks.contracts.createContract(contractsApiCreateContractRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.connectedAccountsBeta().syncConnectedAccountAllowlist(accountId,\ + source: "CompletableFuture> response = fireblocks.contracts().createContract(createContractRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.connected_accounts_beta.sync_connected_account_allowlist(account_id,\ + source: "response = fireblocks.contracts.create_contract(create_contract_request,\ \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /connected_accounts/{accountId}/allowlist/{allowlistId}: - get: - description: | - Retrieves a single allowlist entry by its Fireblocks identifier for a specified connected account. - - **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only. - operationId: getConnectedAccountAllowlistEntry + /contracts/{contractId}: + delete: + description: "Deletes a contract by ID. Endpoint Permission: Admin, Non-Signing\ + \ Admin, Signer, Approver, Editor." + operationId: deleteContract parameters: - - description: The connected account identifier - explode: false - in: path - name: accountId - required: true - schema: - type: string - style: simple - - description: The Fireblocks allowlist entry identifier + - description: The ID of the contract to delete explode: false in: path - name: allowlistId + name: contractId required: true schema: type: string style: simple responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/AllowlistEntry" - description: Allowlist entry response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ConnectedAccountErrorResponse" - description: Connected account or allowlist entry not found + "201": + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get a single allowlist entry for a connected account + summary: Delete a contract tags: - - Connected Accounts (Beta) - x-rate-limit-category: query + - Contracts + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.connectedAccountsBeta.getConnectedAccountAllowlistEntry(connectedAccountsBetaApiGetConnectedAccountAllowlistEntryRequest);" + code: "const response: Promise> = fireblocks.contracts.deleteContract(contractsApiDeleteContractRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.connectedAccountsBeta().getConnectedAccountAllowlistEntry(accountId,\ - \ allowlistId);" + code: CompletableFuture> response = fireblocks.contracts().deleteContract(contractId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.connected_accounts_beta.get_connected_account_allowlist_entry(account_id,\ - \ allowlist_id);" + code: response = fireblocks.contracts.delete_contract(contract_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.connectedAccountsBeta.getConnectedAccountAllowlistEntry(connectedAccountsBetaApiGetConnectedAccountAllowlistEntryRequest);" + source: "const response: Promise> = fireblocks.contracts.deleteContract(contractsApiDeleteContractRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.connectedAccountsBeta().getConnectedAccountAllowlistEntry(accountId,\ - \ allowlistId);" + source: CompletableFuture> response = fireblocks.contracts().deleteContract(contractId); - lang: Python - source: "response = fireblocks.connected_accounts_beta.get_connected_account_allowlist_entry(account_id,\ - \ allowlist_id);" + source: response = fireblocks.contracts.delete_contract(contract_id); x-accepts: - application/json - /counterparty_groups: get: - description: | - Returns a paginated list of counterparty groups. - - **Endpoint Permissions:** Admin, Non-Signing Admin, Viewer. - operationId: listCounterpartyGroups + description: "Returns a whitelisted contract by Fireblocks Contract ID. Endpoint\ + \ Permission: Admin, Non-Signing Admin, Signer, Approver, Editor." + operationId: getContract parameters: - - description: Cursor of the required page - explode: true - in: query - name: pageCursor - required: false + - description: The ID of the contract to return + explode: false + in: path + name: contractId + required: true schema: type: string - style: form - - description: Maximum number of items in the page - explode: true - in: query - name: pageSize - required: false - schema: - default: 50 - maximum: 100 - minimum: 1 - type: integer - style: form + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/CounterpartyGroupsPaginatedResponse" - description: A paginated list of counterparty groups + $ref: "#/components/schemas/UnmanagedWallet" + description: A Wallet object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List counterparty groups + summary: Find a Specific Whitelisted Contract tags: - - Compliance - x-rate-limit-category: query + - Contracts + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.listCounterpartyGroups(complianceApiListCounterpartyGroupsRequest);" + code: "const response: Promise> = fireblocks.contracts.getContract(contractsApiGetContractRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.compliance().listCounterpartyGroups(pageCursor,\ - \ pageSize);" + code: CompletableFuture> response = fireblocks.contracts().getContract(contractId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.list_counterparty_groups(page_cursor,\ - \ page_size);" + code: response = fireblocks.contracts.get_contract(contract_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.listCounterpartyGroups(complianceApiListCounterpartyGroupsRequest);" + source: "const response: Promise> = fireblocks.contracts.getContract(contractsApiGetContractRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.compliance().listCounterpartyGroups(pageCursor,\ - \ pageSize);" + source: CompletableFuture> response = fireblocks.contracts().getContract(contractId); - lang: Python - source: "response = fireblocks.compliance.list_counterparty_groups(page_cursor,\ - \ page_size);" + source: response = fireblocks.contracts.get_contract(contract_id); x-accepts: - application/json - post: - description: | - Creates a new counterparty group. - - **Endpoint Permissions:** Admin, Non-Signing Admin. - operationId: createCounterpartyGroup + /contracts/{contractId}/{assetId}: + delete: + description: "Deletes a whitelisted contract asset by ID. Endpoint Permission:\ + \ Admin, Non-Signing Admin, Signer, Approver, Editor." + operationId: deleteContractAsset 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." + - description: The ID of the contract explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: contractId + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateCounterpartyGroupRequest" + - description: The ID of the asset to delete + explode: false + in: path + name: assetId required: true + schema: + type: string + x-fb-entity: asset + style: simple responses: "201": - content: - application/json: - schema: - $ref: "#/components/schemas/CounterpartyGroup" - description: Counterparty group created successfully + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create a counterparty group + summary: Delete an asset from a whitelisted contract tags: - - Compliance + - Contracts x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.compliance.createCounterpartyGroup(complianceApiCreateCounterpartyGroupRequest);" + code: "const response: Promise> = fireblocks.contracts.deleteContractAsset(contractsApiDeleteContractAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.compliance().createCounterpartyGroup(createCounterpartyGroupRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response = fireblocks.contracts().deleteContractAsset(contractId,\ + \ assetId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.create_counterparty_group(create_counterparty_group_request,\ - \ idempotency_key);" + code: "response = fireblocks.contracts.delete_contract_asset(contract_id,\ + \ asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.compliance.createCounterpartyGroup(complianceApiCreateCounterpartyGroupRequest);" + source: "const response: Promise> = fireblocks.contracts.deleteContractAsset(contractsApiDeleteContractAssetRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.compliance().createCounterpartyGroup(createCounterpartyGroupRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response = fireblocks.contracts().deleteContractAsset(contractId,\ + \ assetId);" - lang: Python - source: "response = fireblocks.compliance.create_counterparty_group(create_counterparty_group_request,\ - \ idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.contracts.delete_contract_asset(contract_id,\ + \ asset_id);" x-accepts: - application/json - /counterparty_groups/{groupId}: - delete: - description: | - Permanently deletes a counterparty group. - - **Endpoint Permissions:** Admin, Non-Signing Admin. - operationId: deleteCounterpartyGroup + get: + description: "Returns a whitelisted contract's asset by ID. Endpoint Permission:\ + \ Admin, Non-Signing Admin, Signer, Approver, Editor." + operationId: getContractAsset parameters: - - description: The unique identifier of the counterparty group + - description: The ID of the contract explode: false in: path - name: groupId + name: contractId required: true schema: - format: uuid type: string style: simple - responses: - "204": - description: Counterparty group deleted successfully - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorSchema" - description: Counterparty group not found - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Delete a counterparty group - tags: - - Compliance - x-rate-limit-category: write - x-readme: - code-samples: - - language: typescript - code: "const response: Promise> = fireblocks.compliance.deleteCounterpartyGroup(complianceApiDeleteCounterpartyGroupRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response = fireblocks.compliance().deleteCounterpartyGroup(groupId); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.compliance.delete_counterparty_group(group_id); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> = fireblocks.compliance.deleteCounterpartyGroup(complianceApiDeleteCounterpartyGroupRequest);" - - lang: Java - source: CompletableFuture> response = fireblocks.compliance().deleteCounterpartyGroup(groupId); - - lang: Python - source: response = fireblocks.compliance.delete_counterparty_group(group_id); - x-accepts: - - application/json - get: - description: | - Returns the details of a specific counterparty group. - - **Endpoint Permissions:** Admin, Non-Signing Admin, Viewer. - operationId: getCounterpartyGroup - parameters: - - description: The unique identifier of the counterparty group + - description: The ID of the asset to return explode: false in: path - name: groupId + name: assetId required: true schema: - format: uuid type: string + x-fb-entity: asset style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/CounterpartyGroup" - description: A counterparty group object - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorSchema" - description: Counterparty group not found + $ref: "#/components/schemas/ExternalWalletAsset" + description: A Wallet Asset object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get a counterparty group + summary: Find a whitelisted contract's asset tags: - - Compliance + - Contracts x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.compliance.getCounterpartyGroup(complianceApiGetCounterpartyGroupRequest);" + code: "const response: Promise>\ + \ = fireblocks.contracts.getContractAsset(contractsApiGetContractAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.compliance().getCounterpartyGroup(groupId); + code: "CompletableFuture> response = fireblocks.contracts().getContractAsset(contractId,\ + \ assetId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.get_counterparty_group(group_id); + code: "response = fireblocks.contracts.get_contract_asset(contract_id, asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.compliance.getCounterpartyGroup(complianceApiGetCounterpartyGroupRequest);" + source: "const response: Promise>\ + \ = fireblocks.contracts.getContractAsset(contractsApiGetContractAssetRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.compliance().getCounterpartyGroup(groupId); + source: "CompletableFuture> response = fireblocks.contracts().getContractAsset(contractId,\ + \ assetId);" - lang: Python - source: response = fireblocks.compliance.get_counterparty_group(group_id); + source: "response = fireblocks.contracts.get_contract_asset(contract_id, asset_id);" x-accepts: - application/json - patch: - description: | - Updates an existing counterparty group. - - **Endpoint Permissions:** Admin, Non-Signing Admin. - operationId: updateCounterpartyGroup + post: + description: "Adds an asset to a whitelisted contract. Endpoint Permission:\ + \ Admin, Non-Signing Admin, Signer, Approver, Editor." + operationId: addContractAsset parameters: - - description: The unique identifier of the counterparty group + - description: The ID of the contract explode: false in: path - name: groupId + name: contractId + required: true + schema: + type: string + style: simple + - description: The ID of the asset to add + explode: false + in: path + name: assetId required: true schema: - format: uuid 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\ @@ -6817,146 +6655,138 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UpdateCounterpartyGroupRequest" - required: true + $ref: "#/components/schemas/AddContractAssetRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/CounterpartyGroup" - description: Counterparty group updated successfully - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorSchema" - description: Counterparty group not found + $ref: "#/components/schemas/ExternalWalletAsset" + description: A Wallet Asset object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Update a counterparty group + summary: Add an asset to a whitelisted contract tags: - - Compliance + - Contracts x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.compliance.updateCounterpartyGroup(complianceApiUpdateCounterpartyGroupRequest);" + code: "const response: Promise>\ + \ = fireblocks.contracts.addContractAsset(contractsApiAddContractAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.compliance().updateCounterpartyGroup(updateCounterpartyGroupRequest,\ - \ groupId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.contracts().addContractAsset(contractId,\ + \ assetId, addContractAssetRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.update_counterparty_group(update_counterparty_group_request,\ - \ group_id, idempotency_key);" + code: "response = fireblocks.contracts.add_contract_asset(contract_id, asset_id,\ + \ add_contract_asset_request, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.compliance.updateCounterpartyGroup(complianceApiUpdateCounterpartyGroupRequest);" + source: "const response: Promise>\ + \ = fireblocks.contracts.addContractAsset(contractsApiAddContractAssetRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.compliance().updateCounterpartyGroup(updateCounterpartyGroupRequest,\ - \ groupId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.contracts().addContractAsset(contractId,\ + \ assetId, addContractAssetRequest, idempotencyKey);" - lang: Python - source: "response = fireblocks.compliance.update_counterparty_group(update_counterparty_group_request,\ - \ group_id, idempotency_key);" + source: "response = fireblocks.contracts.add_contract_asset(contract_id, asset_id,\ + \ add_contract_asset_request, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /network_connections: + /cosigners: get: description: |- - Returns all network connections. - - **Note:** This API call is subject to Flexible Routing Schemes. - - Your routing policy defines how your transactions are routed. - You can choose 1 of the 3 different schemes mentioned below for each asset type: - - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" - - Default Workspace Presets: - - Network Profile Crypto → **Custom** - - Network Profile FIAT → **None** - - Network Connection Crypto → **Default** - - Network Connection FIAT → **Default** - operationId: getNetworkConnections + Get all workspace cosigners (paginated). + **Note:** These endpoints are currently in beta and might be subject to changes. + Endpoint Permission: Admin and Non-Signing Admin. + operationId: getCosigners + parameters: + - description: ASC / DESC ordering (default DESC) + example: ASC + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + type: string + style: form + - description: Cursor of the required page + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Maximum number of items in the page + example: 10 + explode: true + in: query + name: pageSize + required: false + schema: + default: 10 + maximum: 100 + minimum: 1 + type: number + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetNetworkConnectionsResponse" - description: A list of network connections + $ref: "#/components/schemas/CosignersPaginatedResponse" + description: A paginated response containing Cosigner objects headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List network connections + summary: Get all cosigners tags: - - Network connections + - Cosigners (Beta) x-rate-limit-category: query x-readme: code-samples: - - language: python - code: network_connections = fireblocks.get_network_connections() - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const networkConnections = await fireblocks.getNetworkConnections(); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.getNetworkConnections();" + code: "const response: Promise>\ + \ = fireblocks.cosignersBeta.getCosigners(cosignersBetaApiGetCosignersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response - = fireblocks.networkConnections().getNetworkConnections(); + code: "CompletableFuture> response\ + \ = fireblocks.cosignersBeta().getCosigners(order, pageCursor, pageSize);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.network_connections.get_network_connections(); + code: "response = fireblocks.cosigners_beta.get_cosigners(order, page_cursor,\ + \ page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.getNetworkConnections();" + source: "const response: Promise>\ + \ = fireblocks.cosignersBeta.getCosigners(cosignersBetaApiGetCosignersRequest);" - lang: Java - source: CompletableFuture>> response - = fireblocks.networkConnections().getNetworkConnections(); + source: "CompletableFuture> response\ + \ = fireblocks.cosignersBeta().getCosigners(order, pageCursor, pageSize);" - lang: Python - source: response = fireblocks.network_connections.get_network_connections(); + source: "response = fireblocks.cosigners_beta.get_cosigners(order, page_cursor,\ + \ page_size);" x-accepts: - application/json post: - description: | - Initiates a new network connection. - **Note:** This API call is subject to Flexible Routing Schemes. - - Your routing policy defines how your transactions are routed. - You can choose 1 of the 3 different schemes mentioned below for each asset type: - - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" - - Default Workspace Presets: - - Network Profile Crypto → **Custom** - - Network Profile FIAT → **None** - - Network Connection Crypto → **Default** - - Network Connection FIAT → **Default** - - Supported asset groups for routing police can be found at `/network_ids/routing_policy_asset_groups` - - - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). - operationId: createNetworkConnection + description: |- + Add a new cosigner. The cosigner will be pending pairing until the API key is manually paired + Endpoint Permission: Admin and Non-Signing Admin. + operationId: addCosigner 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\ @@ -6973,338 +6803,499 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/NetworkConnection" + $ref: "#/components/schemas/AddCosignerRequest" + required: true responses: "201": content: application/json: schema: - $ref: "#/components/schemas/NetworkConnectionResponse" - description: A Network Connection object + $ref: "#/components/schemas/AddCosignerResponse" + description: Pending cosigner added headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create a new network connection + summary: Add cosigner tags: - - Network connections + - Cosigners (Beta) x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.createNetworkConnection(networkConnectionsApiCreateNetworkConnectionRequest);" + code: "const response: Promise>\ + \ = fireblocks.cosignersBeta.addCosigner(cosignersBetaApiAddCosignerRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.networkConnections().createNetworkConnection(networkConnection,\ + code: "CompletableFuture> response = fireblocks.cosignersBeta().addCosigner(addCosignerRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.network_connections.create_network_connection(network_connection,\ + code: "response = fireblocks.cosigners_beta.add_cosigner(add_cosigner_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.createNetworkConnection(networkConnectionsApiCreateNetworkConnectionRequest);" + source: "const response: Promise>\ + \ = fireblocks.cosignersBeta.addCosigner(cosignersBetaApiAddCosignerRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.networkConnections().createNetworkConnection(networkConnection,\ + source: "CompletableFuture> response = fireblocks.cosignersBeta().addCosigner(addCosignerRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.network_connections.create_network_connection(network_connection,\ + source: "response = fireblocks.cosigners_beta.add_cosigner(add_cosigner_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /network_connections/{connectionId}/set_routing_policy: - patch: - description: Updates an existing network connection's routing policy. - operationId: setRoutingPolicy + /cosigners/{cosignerId}: + get: + description: |- + Get a cosigner by ID. + **Note:** These endpoints are currently in beta and might be subject to changes. + Endpoint Permission: Admin and Non-Signing Admin. + operationId: getCosigner parameters: - - description: The ID of the network connection + - description: The unique identifier of the cosigner + example: 44fcead0-7053-4831-a53a-df7fb90d440f explode: false in: path - name: connectionId + name: cosignerId required: true schema: + format: uuid type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SetRoutingPolicyRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SetRoutingPolicyResponse" - description: Network ID + $ref: "#/components/schemas/Cosigner" + description: A cosigner object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Update network connection routing policy. + summary: Get cosigner tags: - - Network connections - x-rate-limit-category: write + - Cosigners (Beta) + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.setRoutingPolicy(networkConnectionsApiSetRoutingPolicyRequest);" + code: "const response: Promise> = fireblocks.cosignersBeta.getCosigner(cosignersBetaApiGetCosignerRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.networkConnections().setRoutingPolicy(connectionId, setRoutingPolicyRequest);" + code: CompletableFuture> response = fireblocks.cosignersBeta().getCosigner(cosignerId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.network_connections.set_routing_policy(connection_id,\ - \ set_routing_policy_request);" + code: response = fireblocks.cosigners_beta.get_cosigner(cosigner_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.setRoutingPolicy(networkConnectionsApiSetRoutingPolicyRequest);" + source: "const response: Promise> = fireblocks.cosignersBeta.getCosigner(cosignersBetaApiGetCosignerRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.networkConnections().setRoutingPolicy(connectionId, setRoutingPolicyRequest);" + source: CompletableFuture> response = fireblocks.cosignersBeta().getCosigner(cosignerId); - lang: Python - source: "response = fireblocks.network_connections.set_routing_policy(connection_id,\ - \ set_routing_policy_request);" - x-content-type: application/json + source: response = fireblocks.cosigners_beta.get_cosigner(cosigner_id); x-accepts: - application/json - /network_connections/{connectionId}/is_third_party_routing/{assetType}: - get: - description: The Fireblocks Network allows for flexibility around incoming deposits. - A receiver can receive network deposits to locations other than Fireblocks. - This endpoint validates whether future transactions are routed to the displayed - recipient or to a 3rd party. - operationId: checkThirdPartyRouting + patch: + description: |- + Rename a cosigner by ID. + **Note:** These endpoints are currently in beta and might be subject to changes. + Endpoint Permission: Admin and Non-Signing Admin. + operationId: renameCosigner parameters: - - description: The ID of the network connection + - description: The unique identifier of the cosigner + example: 44fcead0-7053-4831-a53a-df7fb90d440f explode: false in: path - name: connectionId + name: cosignerId required: true schema: + format: uuid type: string style: simple - - description: The destination asset type - explode: false - in: path - name: assetType + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/RenameCosigner" required: true - schema: - type: string - style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ThirdPartyRouting" - description: result for the validation + $ref: "#/components/schemas/Cosigner" + description: A cosigner object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Retrieve third-party network routing validation + summary: Rename cosigner tags: - - Network connections - x-rate-limit-category: query + - Cosigners (Beta) + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.networkConnections.checkThirdPartyRouting(networkConnectionsApiCheckThirdPartyRoutingRequest);" + code: "const response: Promise> = fireblocks.cosignersBeta.renameCosigner(cosignersBetaApiRenameCosignerRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.networkConnections().checkThirdPartyRouting(connectionId,\ - \ assetType);" + code: "CompletableFuture> response = fireblocks.cosignersBeta().renameCosigner(renameCosigner,\ + \ cosignerId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.network_connections.check_third_party_routing(connection_id,\ - \ asset_type);" + code: "response = fireblocks.cosigners_beta.rename_cosigner(rename_cosigner,\ + \ cosigner_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.networkConnections.checkThirdPartyRouting(networkConnectionsApiCheckThirdPartyRoutingRequest);" + source: "const response: Promise> = fireblocks.cosignersBeta.renameCosigner(cosignersBetaApiRenameCosignerRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.networkConnections().checkThirdPartyRouting(connectionId,\ - \ assetType);" + source: "CompletableFuture> response = fireblocks.cosignersBeta().renameCosigner(renameCosigner,\ + \ cosignerId);" - lang: Python - source: "response = fireblocks.network_connections.check_third_party_routing(connection_id,\ - \ asset_type);" + source: "response = fireblocks.cosigners_beta.rename_cosigner(rename_cosigner,\ + \ cosigner_id);" + x-content-type: application/json x-accepts: - application/json - /network_connections/{connectionId}: - delete: - description: Deletes an existing network connection specified by its connection - ID. - operationId: deleteNetworkConnection + /cosigners/{cosignerId}/api_keys: + get: + description: |- + Get all cosigner paired API keys (paginated). + **Note:** These endpoints are currently in beta and might be subject to changes. + Endpoint Permission: Admin and Non-Signing Admin. + operationId: getApiKeys parameters: - - description: The ID of the network connection to delete + - description: The unique identifier of the cosigner + example: 44fcead0-7053-4831-a53a-df7fb90d440f explode: false in: path - name: connectionId + name: cosignerId required: true schema: + format: uuid type: string style: simple + - description: ASC / DESC ordering (default DESC) + example: ASC + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + type: string + style: form + - description: Cursor of the required page + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Maximum number of items in the page + example: 10 + explode: true + in: query + name: pageSize + required: false + schema: + default: 10 + maximum: 100 + minimum: 1 + type: number + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/DeleteNetworkConnectionResponse" - description: Network ID + $ref: "#/components/schemas/ApiKeysPaginatedResponse" + description: A paginated response containing ApiKey objects headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Delete a network connection by ID + summary: Get all API keys tags: - - Network connections - x-rate-limit-category: write + - Cosigners (Beta) + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.deleteNetworkConnection(networkConnectionsApiDeleteNetworkConnectionRequest);" + code: "const response: Promise>\ + \ = fireblocks.cosignersBeta.getApiKeys(cosignersBetaApiGetApiKeysRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.networkConnections().deleteNetworkConnection(connectionId); + code: "CompletableFuture> response\ + \ = fireblocks.cosignersBeta().getApiKeys(cosignerId, order, pageCursor,\ + \ pageSize);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.network_connections.delete_network_connection(connection_id); + code: "response = fireblocks.cosigners_beta.get_api_keys(cosigner_id, order,\ + \ page_cursor, page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.deleteNetworkConnection(networkConnectionsApiDeleteNetworkConnectionRequest);" + source: "const response: Promise>\ + \ = fireblocks.cosignersBeta.getApiKeys(cosignersBetaApiGetApiKeysRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.networkConnections().deleteNetworkConnection(connectionId); + source: "CompletableFuture> response\ + \ = fireblocks.cosignersBeta().getApiKeys(cosignerId, order, pageCursor,\ + \ pageSize);" - lang: Python - source: response = fireblocks.network_connections.delete_network_connection(connection_id); + source: "response = fireblocks.cosigners_beta.get_api_keys(cosigner_id, order,\ + \ page_cursor, page_size);" x-accepts: - application/json - get: - description: Gets a network connection by ID. - operationId: getNetwork + /cosigners/{cosignerId}/api_keys/{apiKeyId}: + delete: + description: |- + Unpair an API key from a cosigner + Endpoint Permission: Admin and Non-Signing Admin. + operationId: unpairApiKey parameters: - - description: The ID of the connection + - description: The unique identifier of the cosigner + example: 44fcead0-7053-4831-a53a-df7fb90d440f explode: false in: path - name: connectionId + name: cosignerId + required: true + schema: + format: uuid + type: string + style: simple + - description: The unique identifier of the API key + example: 44fcead0-7053-4831-a53a-df7fb90d440f + explode: false + in: path + name: apiKeyId required: true schema: type: string style: simple responses: - "200": + "202": content: application/json: schema: - $ref: "#/components/schemas/NetworkConnectionResponse" - description: A network connection + $ref: "#/components/schemas/ApiKey" + description: The API key object to be unpaired headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" + Location: + $ref: "#/components/headers/Location" default: $ref: "#/components/responses/Error" - summary: Get a network connection + summary: Unpair API key tags: - - Network connections - x-rate-limit-category: read + - Cosigners (Beta) + x-rate-limit-category: write x-readme: code-samples: - - language: python - code: network_connection = fireblocks.get_network_connection_by_id(connectionId) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const network_connection = await fireblocks.getNetworkConnection(connectionId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.getNetwork(networkConnectionsApiGetNetworkRequest);" + code: "const response: Promise> = fireblocks.cosignersBeta.unpairApiKey(cosignersBetaApiUnpairApiKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.networkConnections().getNetwork(connectionId); + code: "CompletableFuture> response = fireblocks.cosignersBeta().unpairApiKey(cosignerId,\ + \ apiKeyId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.network_connections.get_network(connection_id); + code: "response = fireblocks.cosigners_beta.unpair_api_key(cosigner_id,\ + \ api_key_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.getNetwork(networkConnectionsApiGetNetworkRequest);" + source: "const response: Promise> = fireblocks.cosignersBeta.unpairApiKey(cosignersBetaApiUnpairApiKeyRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.networkConnections().getNetwork(connectionId); + source: "CompletableFuture> response = fireblocks.cosignersBeta().unpairApiKey(cosignerId,\ + \ apiKeyId);" - lang: Python - source: response = fireblocks.network_connections.get_network(connection_id); + source: "response = fireblocks.cosigners_beta.unpair_api_key(cosigner_id,\ + \ api_key_id);" x-accepts: - application/json - /network_ids: get: - deprecated: true - description: Retrieves a list of all local and discoverable remote network IDs. - operationId: getNetworkIds + description: |- + Get an API key by ID. + **Note:** These endpoints are currently in beta and might be subject to changes. + Endpoint Permission: Admin and Non-Signing Admin. + operationId: getApiKey + parameters: + - description: The unique identifier of the cosigner + example: 44fcead0-7053-4831-a53a-df7fb90d440f + explode: false + in: path + name: cosignerId + required: true + schema: + format: uuid + type: string + style: simple + - description: The unique identifier of the API key + example: 44fcead0-7053-4831-a53a-df7fb90d440f + explode: false + in: path + name: apiKeyId + required: true + schema: + type: string + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetNetworkIdsResponse" - description: A list of network IDs + $ref: "#/components/schemas/ApiKey" + description: An ApiKey object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get all network IDs + summary: Get API key tags: - - Network connections - x-rate-limit-category: query + - Cosigners (Beta) + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.getNetworkIds();" + code: "const response: Promise> = fireblocks.cosignersBeta.getApiKey(cosignersBetaApiGetApiKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = fireblocks.networkConnections().getNetworkIds(); + code: "CompletableFuture> response = fireblocks.cosignersBeta().getApiKey(cosignerId,\ + \ apiKeyId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.network_connections.get_network_ids(); + code: "response = fireblocks.cosigners_beta.get_api_key(cosigner_id, api_key_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.getNetworkIds();" + source: "const response: Promise> = fireblocks.cosignersBeta.getApiKey(cosignersBetaApiGetApiKeyRequest);" - lang: Java - source: CompletableFuture>> response = fireblocks.networkConnections().getNetworkIds(); + source: "CompletableFuture> response = fireblocks.cosignersBeta().getApiKey(cosignerId,\ + \ apiKeyId);" - lang: Python - source: response = fireblocks.network_connections.get_network_ids(); + source: "response = fireblocks.cosigners_beta.get_api_key(cosigner_id, api_key_id);" x-accepts: - application/json - post: - description: Create a new Network ID. - operationId: createNetworkId + patch: + description: |- + Update the callback handler of an API key + Endpoint Permission: Admin and Non-Signing Admin. + operationId: updateCallbackHandler + parameters: + - description: The unique identifier of the cosigner + example: 44fcead0-7053-4831-a53a-df7fb90d440f + explode: false + in: path + name: cosignerId + required: true + schema: + format: uuid + type: string + style: simple + - description: The unique identifier of the API key + example: 44fcead0-7053-4831-a53a-df7fb90d440f + explode: false + in: path + name: apiKeyId + required: true + schema: + type: string + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateCallbackHandlerRequest" + required: true + responses: + "202": + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateCallbackHandlerResponse" + description: The API key object with the new callback handler + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + Location: + $ref: "#/components/headers/Location" + default: + $ref: "#/components/responses/Error" + summary: Update API key callback handler + tags: + - Cosigners (Beta) + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.cosignersBeta.updateCallbackHandler(cosignersBetaApiUpdateCallbackHandlerRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.cosignersBeta().updateCallbackHandler(updateCallbackHandlerRequest,\ + \ cosignerId, apiKeyId);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.cosigners_beta.update_callback_handler(update_callback_handler_request,\ + \ cosigner_id, api_key_id);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.cosignersBeta.updateCallbackHandler(cosignersBetaApiUpdateCallbackHandlerRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.cosignersBeta().updateCallbackHandler(updateCallbackHandlerRequest,\ + \ cosignerId, apiKeyId);" + - lang: Python + source: "response = fireblocks.cosigners_beta.update_callback_handler(update_callback_handler_request,\ + \ cosigner_id, api_key_id);" + x-content-type: application/json + x-accepts: + - application/json + put: + description: |- + Pair an API key to a cosigner + Endpoint Permission: Admin and Non-Signing Admin. + operationId: pairApiKey parameters: + - description: The unique identifier of the cosigner + example: 44fcead0-7053-4831-a53a-df7fb90d440f + explode: false + in: path + name: cosignerId + required: true + schema: + format: uuid + type: string + style: simple + - description: The unique identifier of the API key + example: 44fcead0-7053-4831-a53a-df7fb90d440f + explode: false + in: path + name: apiKeyId + required: true + schema: + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -7320,203 +7311,241 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CreateNetworkIdRequest" + $ref: "#/components/schemas/PairApiKeyRequest" + required: true responses: - "201": + "202": content: application/json: schema: - $ref: "#/components/schemas/NetworkIdResponse" - description: Returns the new network ID in your workspace + $ref: "#/components/schemas/PairApiKeyResponse" + description: The API key object to be paired headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" + Location: + $ref: "#/components/headers/Location" default: $ref: "#/components/responses/Error" - summary: Creates a new Network ID + summary: Pair API key tags: - - Network connections + - Cosigners (Beta) x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.networkConnections.createNetworkId(networkConnectionsApiCreateNetworkIdRequest);" + code: "const response: Promise> =\ + \ fireblocks.cosignersBeta.pairApiKey(cosignersBetaApiPairApiKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.networkConnections().createNetworkId(createNetworkIdRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response = fireblocks.cosignersBeta().pairApiKey(pairApiKeyRequest,\ + \ cosignerId, apiKeyId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.network_connections.create_network_id(create_network_id_request,\ - \ idempotency_key);" + code: "response = fireblocks.cosigners_beta.pair_api_key(pair_api_key_request,\ + \ cosigner_id, api_key_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.networkConnections.createNetworkId(networkConnectionsApiCreateNetworkIdRequest);" + source: "const response: Promise> =\ + \ fireblocks.cosignersBeta.pairApiKey(cosignersBetaApiPairApiKeyRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.networkConnections().createNetworkId(createNetworkIdRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response = fireblocks.cosignersBeta().pairApiKey(pairApiKeyRequest,\ + \ cosignerId, apiKeyId, idempotencyKey);" - lang: Python - source: "response = fireblocks.network_connections.create_network_id(create_network_id_request,\ - \ idempotency_key);" + source: "response = fireblocks.cosigners_beta.pair_api_key(pair_api_key_request,\ + \ cosigner_id, api_key_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /network_ids/routing_policy_asset_groups: + /cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId}: get: - description: Returns all enabled routing policy asset groups - operationId: getRoutingPolicyAssetGroups + description: |- + Get the status of an asynchronous request + Endpoint Permission: Admin and Non-Signing Admin. + operationId: getRequestStatus + parameters: + - description: The unique identifier of the cosigner + example: 44fcead0-7053-4831-a53a-df7fb90d440f + explode: false + in: path + name: cosignerId + required: true + schema: + format: uuid + type: string + style: simple + - description: The unique identifier of the API key + example: 44fcead0-7053-4831-a53a-df7fb90d440f + explode: false + in: path + name: apiKeyId + required: true + schema: + type: string + style: simple + - explode: false + in: path + name: requestId + required: true + schema: + type: string + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetRoutingPolicyAssetGroupsResponse" - description: A list of enabled routing policy asset groups + $ref: "#/components/schemas/Status" + description: The status of the request headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Return all enabled routing policy asset groups + summary: Get request status tags: - - Network connections - x-rate-limit-category: query + - Cosigners (Beta) + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.getRoutingPolicyAssetGroups();" + code: "const response: Promise> = fireblocks.cosignersBeta.getRequestStatus(cosignersBetaApiGetRequestStatusRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = fireblocks.networkConnections().getRoutingPolicyAssetGroups(); + code: "CompletableFuture> response = fireblocks.cosignersBeta().getRequestStatus(cosignerId,\ + \ apiKeyId, requestId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.network_connections.get_routing_policy_asset_groups(); + code: "response = fireblocks.cosigners_beta.get_request_status(cosigner_id,\ + \ api_key_id, request_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.getRoutingPolicyAssetGroups();" + source: "const response: Promise> = fireblocks.cosignersBeta.getRequestStatus(cosignersBetaApiGetRequestStatusRequest);" - lang: Java - source: CompletableFuture>> response = fireblocks.networkConnections().getRoutingPolicyAssetGroups(); + source: "CompletableFuture> response = fireblocks.cosignersBeta().getRequestStatus(cosignerId,\ + \ apiKeyId, requestId);" - lang: Python - source: response = fireblocks.network_connections.get_routing_policy_asset_groups(); + source: "response = fireblocks.cosigners_beta.get_request_status(cosigner_id,\ + \ api_key_id, request_id);" x-accepts: - application/json - /network_ids/search: + /tokenization/contracts: get: - description: | - Retrieves a list of all local and discoverable remote network IDs. Can be filtered. - operationId: searchNetworkIds + description: Return a filtered lean representation of the deployed contracts + data on all blockchains (paginated) + operationId: getDeployedContracts parameters: - - description: Search string - displayName networkId. Optional + - description: Page cursor to get the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true in: query - name: search + name: pageCursor required: false schema: - minLength: 1 type: string style: form - - description: "Exclude your networkIds. Optional, default false" - explode: true - in: query - name: excludeSelf - required: false - schema: - type: boolean - style: form - - description: "Include just your networkIds. Optional, default false" + - description: "Number of items per page, requesting more then max will return\ + \ max items" + example: 10 explode: true in: query - name: onlySelf + name: pageSize required: false schema: - type: boolean + maximum: 100 + minimum: 1 + type: number style: form - - description: "Exclude connected networkIds. Optional, default false" + - description: The contract's onchain address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 explode: true in: query - name: excludeConnected + name: contractAddress required: false schema: - type: boolean + type: string style: form - - description: ID of the record after which to fetch $limit records - explode: true + - explode: true in: query - name: pageCursor + name: baseAssetId required: false schema: type: string style: form - - description: "Number of records to fetch. By default, it is 50" - explode: true + - explode: true in: query - name: pageSize + name: contractTemplateId required: false schema: - default: 50 - maximum: 50 - minimum: 1 - type: number + type: string style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SearchNetworkIdsResponse" - description: A list of network IDs - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/DeployedContractsPaginatedResponse" + description: Deployed contracts fetched successfully default: $ref: "#/components/responses/Error" - summary: Get both local IDs and discoverable remote IDs + summary: List deployed contracts data tags: - - Network connections + - Deployed Contracts x-rate-limit-category: query x-readme: code-samples: + - language: python + code: deployed_contracts = fireblocks.get_contracts_by_filter(template_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const deployedContracts = await fireblocks.getContractsByFilter(templateId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.searchNetworkIds(networkConnectionsApiSearchNetworkIdsRequest);" + code: "const response: Promise>\ + \ = fireblocks.deployedContracts.getDeployedContracts(deployedContractsApiGetDeployedContractsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.networkConnections().searchNetworkIds(search, excludeSelf,\ - \ onlySelf, excludeConnected, pageCursor, pageSize);" + code: "CompletableFuture>\ + \ response = fireblocks.deployedContracts().getDeployedContracts(pageCursor,\ + \ pageSize, contractAddress, baseAssetId, contractTemplateId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.network_connections.search_network_ids(search,\ - \ exclude_self, only_self, exclude_connected, page_cursor, page_size);" + code: "response = fireblocks.deployed_contracts.get_deployed_contracts(page_cursor,\ + \ page_size, contract_address, base_asset_id, contract_template_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.searchNetworkIds(networkConnectionsApiSearchNetworkIdsRequest);" + source: "const response: Promise>\ + \ = fireblocks.deployedContracts.getDeployedContracts(deployedContractsApiGetDeployedContractsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.networkConnections().searchNetworkIds(search, excludeSelf,\ - \ onlySelf, excludeConnected, pageCursor, pageSize);" + source: "CompletableFuture>\ + \ response = fireblocks.deployedContracts().getDeployedContracts(pageCursor,\ + \ pageSize, contractAddress, baseAssetId, contractTemplateId);" - lang: Python - source: "response = fireblocks.network_connections.search_network_ids(search,\ - \ exclude_self, only_self, exclude_connected, page_cursor, page_size);" + source: "response = fireblocks.deployed_contracts.get_deployed_contracts(page_cursor,\ + \ page_size, contract_address, base_asset_id, contract_template_id);" x-accepts: - application/json - /network_ids/{networkId}: - delete: - description: Deletes a network by its ID. - operationId: deleteNetworkId + /tokenization/contracts/{assetId}/{contractAddress}: + get: + description: Return deployed contract data by blockchain native asset id and + contract address + operationId: getDeployedContractByAddress parameters: - - description: The ID of the network + - description: The contract's onchain address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 explode: false in: path - name: networkId + name: contractAddress + required: true + schema: + type: string + style: simple + - explode: false + in: path + name: assetId required: true schema: type: string @@ -7526,46 +7555,60 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/DeleteNetworkIdResponse" - description: Network ID + $ref: "#/components/schemas/DeployedContractResponseDto" + description: "" default: $ref: "#/components/responses/Error" - summary: Delete specific network ID. + summary: Return deployed contract data tags: - - Network connections - x-rate-limit-category: write + - Deployed Contracts + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: "deployed_contract = fireblocks.get_contract_by_address(base_asset_id,\ + \ contract_address)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const deployedContract = await fireblocks.getContractByAddress(baseAssetId,\ + \ contractAddress);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.deleteNetworkId(networkConnectionsApiDeleteNetworkIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.deployedContracts.getDeployedContractByAddress(deployedContractsApiGetDeployedContractByAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = - fireblocks.networkConnections().deleteNetworkId(networkId); + code: "CompletableFuture> response\ + \ = fireblocks.deployedContracts().getDeployedContractByAddress(contractAddress,\ + \ assetId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.network_connections.delete_network_id(network_id); + code: "response = fireblocks.deployed_contracts.get_deployed_contract_by_address(contract_address,\ + \ asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.deleteNetworkId(networkConnectionsApiDeleteNetworkIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.deployedContracts.getDeployedContractByAddress(deployedContractsApiGetDeployedContractByAddressRequest);" - lang: Java - source: CompletableFuture> response = - fireblocks.networkConnections().deleteNetworkId(networkId); + source: "CompletableFuture> response\ + \ = fireblocks.deployedContracts().getDeployedContractByAddress(contractAddress,\ + \ assetId);" - lang: Python - source: response = fireblocks.network_connections.delete_network_id(network_id); + source: "response = fireblocks.deployed_contracts.get_deployed_contract_by_address(contract_address,\ + \ asset_id);" x-accepts: - application/json + /tokenization/contracts/{id}: get: - description: Returns specific network ID. - operationId: getNetworkId + description: Return deployed contract data by id + operationId: getDeployedContractById parameters: - - description: The ID of the network + - description: The deployed contract data identifier + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d explode: false in: path - name: networkId + name: id required: true schema: type: string @@ -7575,49 +7618,57 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/NetworkIdResponse" - description: Network ID - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/DeployedContractResponseDto" + description: "" default: $ref: "#/components/responses/Error" - summary: Return specific network ID. + summary: Return deployed contract data by id tags: - - Network connections - x-rate-limit-category: query + - Deployed Contracts + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: deployed_contracts = fireblocks.get_contract_by_id(contract_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const deployedContracts = await fireblocks.getContractById(contractId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.networkConnections.getNetworkId(networkConnectionsApiGetNetworkIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.deployedContracts.getDeployedContractById(deployedContractsApiGetDeployedContractByIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.networkConnections().getNetworkId(networkId); + code: CompletableFuture> response + = fireblocks.deployedContracts().getDeployedContractById(id); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.network_connections.get_network_id(network_id); + code: response = fireblocks.deployed_contracts.get_deployed_contract_by_id(id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.networkConnections.getNetworkId(networkConnectionsApiGetNetworkIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.deployedContracts.getDeployedContractById(deployedContractsApiGetDeployedContractByIdRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.networkConnections().getNetworkId(networkId); + source: CompletableFuture> response + = fireblocks.deployedContracts().getDeployedContractById(id); - lang: Python - source: response = fireblocks.network_connections.get_network_id(network_id); + source: response = fireblocks.deployed_contracts.get_deployed_contract_by_id(id); x-accepts: - application/json - /network_ids/{networkId}/set_routing_policy: - patch: - description: Updates the routing policy of a specified network ID. - operationId: setNetworkIdRoutingPolicy + /tokenization/contracts/abi: + post: + description: Save contract ABI for the tenant + operationId: addContractABI parameters: - - description: The ID of the network + - 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: path - name: networkId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple @@ -7625,60 +7676,63 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SetNetworkIdRoutingPolicyRequest" + $ref: "#/components/schemas/AddAbiRequestDto" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SetNetworkIdResponse" - description: Network ID - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/ContractWithAbiDto" + description: Contract ABI created (or updated) for the tenant + "409": + description: Contract ABI already exists. default: $ref: "#/components/responses/Error" - summary: Update network id routing policy. + summary: Save contract ABI tags: - - Network connections + - Deployed Contracts x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.setNetworkIdRoutingPolicy(networkConnectionsApiSetNetworkIdRoutingPolicyRequest);" + code: "const response: Promise> =\ + \ fireblocks.deployedContracts.addContractABI(deployedContractsApiAddContractABIRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdRoutingPolicy(networkId,\ - \ setNetworkIdRoutingPolicyRequest);" + code: "CompletableFuture> response = fireblocks.deployedContracts().addContractABI(addAbiRequestDto,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.network_connections.set_network_id_routing_policy(network_id,\ - \ set_network_id_routing_policy_request);" + code: "response = fireblocks.deployed_contracts.add_contract_a_b_i(add_abi_request_dto,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.setNetworkIdRoutingPolicy(networkConnectionsApiSetNetworkIdRoutingPolicyRequest);" + source: "const response: Promise> =\ + \ fireblocks.deployedContracts.addContractABI(deployedContractsApiAddContractABIRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdRoutingPolicy(networkId,\ - \ setNetworkIdRoutingPolicyRequest);" + source: "CompletableFuture> response = fireblocks.deployedContracts().addContractABI(addAbiRequestDto,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.network_connections.set_network_id_routing_policy(network_id,\ - \ set_network_id_routing_policy_request);" + source: "response = fireblocks.deployed_contracts.add_contract_a_b_i(add_abi_request_dto,\ + \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /network_ids/{networkId}/set_discoverability: - patch: - description: Update whether or not the network ID is discoverable by others. - operationId: setNetworkIdDiscoverability + /tokenization/contracts/fetch_abi: + post: + description: Fetch the ABI. If not found fetch the ABI from the block explorer + operationId: fetchContractAbi parameters: - - description: The ID of the network + - 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: path - name: networkId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple @@ -7686,161 +7740,188 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SetNetworkIdDiscoverabilityRequest" + $ref: "#/components/schemas/FetchAbiRequestDto" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SetNetworkIdResponse" - description: Network ID - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/ContractWithAbiDto" + description: Contract ABI found. + "404": + description: Contract ABI not found default: $ref: "#/components/responses/Error" - summary: Update network ID's discoverability. + summary: Fetch the contract ABI tags: - - Network connections - x-rate-limit-category: write + - Deployed Contracts + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.setNetworkIdDiscoverability(networkConnectionsApiSetNetworkIdDiscoverabilityRequest);" + code: "const response: Promise> =\ + \ fireblocks.deployedContracts.fetchContractAbi(deployedContractsApiFetchContractAbiRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdDiscoverability(setNetworkIdDiscoverabilityRequest,\ - \ networkId);" + code: "CompletableFuture> response = fireblocks.deployedContracts().fetchContractAbi(fetchAbiRequestDto,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.network_connections.set_network_id_discoverability(set_network_id_discoverability_request,\ - \ network_id);" + code: "response = fireblocks.deployed_contracts.fetch_contract_abi(fetch_abi_request_dto,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.setNetworkIdDiscoverability(networkConnectionsApiSetNetworkIdDiscoverabilityRequest);" + source: "const response: Promise> =\ + \ fireblocks.deployedContracts.fetchContractAbi(deployedContractsApiFetchContractAbiRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdDiscoverability(setNetworkIdDiscoverabilityRequest,\ - \ networkId);" + source: "CompletableFuture> response = fireblocks.deployedContracts().fetchContractAbi(fetchAbiRequestDto,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.network_connections.set_network_id_discoverability(set_network_id_discoverability_request,\ - \ network_id);" + source: "response = fireblocks.deployed_contracts.fetch_contract_abi(fetch_abi_request_dto,\ + \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /network_ids/{networkId}/set_name: - patch: - description: Updates name of a specified network ID. - operationId: setNetworkIdName + /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: The ID of the network - explode: false - in: path - name: networkId - required: true + - description: Cursor for the next or previous page of results. + explode: true + in: query + name: pageCursor + required: false schema: type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SetNetworkIdNameRequest" - required: true + 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/SetNetworkIdResponse" - description: Network ID + $ref: "#/components/schemas/GetActionsResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Update network ID's name. - tags: - - Network connections - x-rate-limit-category: write - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.networkConnections.setNetworkIdName(networkConnectionsApiSetNetworkIdNameRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdName(setNetworkIdNameRequest,\ - \ networkId);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.network_connections.set_network_id_name(set_network_id_name_request,\ - \ network_id);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.networkConnections.setNetworkIdName(networkConnectionsApiSetNetworkIdNameRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdName(setNetworkIdNameRequest,\ - \ networkId);" - - lang: Python - source: "response = fireblocks.network_connections.set_network_id_name(set_network_id_name_request,\ - \ network_id);" - x-content-type: application/json - x-accepts: - - application/json - /internal_wallets: - get: - description: | - Gets a list of internal wallets. - operationId: getInternalWallets - responses: - "200": + "403": content: application/json: schema: - $ref: "#/components/schemas/GetInternalWalletsResponse" - description: A list of internal wallets + $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 internal wallets + summary: List earn lending actions tags: - - Internal wallets - x-rate-limit-category: high_compute + - Earn (Beta) + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.internalWallets.getInternalWallets();" + code: "const response: Promise> =\ + \ fireblocks.earnBeta.getEarnActions(earnBetaApiGetEarnActionsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = fireblocks.internalWallets().getInternalWallets(); + code: "CompletableFuture> response = fireblocks.earnBeta().getEarnActions(pageCursor,\ + \ pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.internal_wallets.get_internal_wallets(); + 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.internalWallets.getInternalWallets();" + source: "const response: Promise> =\ + \ fireblocks.earnBeta.getEarnActions(earnBetaApiGetEarnActionsRequest);" - lang: Java - source: CompletableFuture>> response = fireblocks.internalWallets().getInternalWallets(); + source: "CompletableFuture> response = fireblocks.earnBeta().getEarnActions(pageCursor,\ + \ pageSize, sortBy, order);" - lang: Python - source: response = fireblocks.internal_wallets.get_internal_wallets(); + source: "response = fireblocks.earn_beta.get_earn_actions(page_cursor, page_size,\ + \ sort_by, order);" x-accepts: - application/json post: - description: |- - Creates a new internal wallet with the requested name. - Learn more about Whitelisted Internal Addresses [here](https://developers.fireblocks.com/docs/whitelist-addresses#internal-wallets) - operationId: createInternalWallet + 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\ @@ -7857,191 +7938,239 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CreateWalletRequest" + $ref: "#/components/schemas/CreateEarnActionRequest" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/UnmanagedWallet" - description: A new wallet object + $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 an internal wallet + summary: Create and execute a lending action (deposit or withdraw) tags: - - Internal wallets + - Earn (Beta) x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "internalWallet = fireblocks.create_internal_wallet(name, customer_ref_id)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const internalWallet = await fireblocks.createInternalWallet(name,\ - \ customerRefId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.internalWallets.createInternalWallet(internalWalletsApiCreateInternalWalletRequest);" + code: "const response: Promise>\ + \ = fireblocks.earnBeta.createEarnAction(earnBetaApiCreateEarnActionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.internalWallets().createInternalWallet(createWalletRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.earnBeta().createEarnAction(createEarnActionRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.internal_wallets.create_internal_wallet(create_wallet_request,\ + 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.internalWallets.createInternalWallet(internalWalletsApiCreateInternalWalletRequest);" + source: "const response: Promise>\ + \ = fireblocks.earnBeta.createEarnAction(earnBetaApiCreateEarnActionRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.internalWallets().createInternalWallet(createWalletRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.earnBeta().createEarnAction(createEarnActionRequest, idempotencyKey);" - lang: Python - source: "response = fireblocks.internal_wallets.create_internal_wallet(create_wallet_request,\ + source: "response = fireblocks.earn_beta.create_earn_action(create_earn_action_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /internal_wallets/{walletId}: - delete: - description: Deletes an internal wallet by ID. - operationId: deleteInternalWallet + /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: The ID of the wallet to delete + - description: Action sequence id (UUID). explode: false in: path - name: walletId + name: id required: true schema: + minLength: 1 type: string style: simple responses: - "201": + "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: Delete an internal wallet + summary: Get a single earn lending action tags: - - Internal wallets - x-rate-limit-category: write + - Earn (Beta) + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: result = firebocks.delete_internal_wallet(walletId) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const result = await fireblocks.deleteInternalWallet(walletId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.internalWallets.deleteInternalWallet(internalWalletsApiDeleteInternalWalletRequest);" + code: "const response: Promise> =\ + \ fireblocks.earnBeta.getEarnAction(earnBetaApiGetEarnActionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.internalWallets().deleteInternalWallet(walletId); + code: CompletableFuture> response = fireblocks.earnBeta().getEarnAction(id); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.internal_wallets.delete_internal_wallet(wallet_id); + code: response = fireblocks.earn_beta.get_earn_action(id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.internalWallets.deleteInternalWallet(internalWalletsApiDeleteInternalWalletRequest);" + source: "const response: Promise> =\ + \ fireblocks.earnBeta.getEarnAction(earnBetaApiGetEarnActionRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.internalWallets().deleteInternalWallet(walletId); + source: CompletableFuture> response = fireblocks.earnBeta().getEarnAction(id); - lang: Python - source: response = fireblocks.internal_wallets.delete_internal_wallet(wallet_id); + source: response = fireblocks.earn_beta.get_earn_action(id); x-accepts: - application/json + /earn/opportunities: get: - description: Returns information for an internal wallet. - operationId: getInternalWallet + description: | + Get list of earn opportunities (vaults). + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: getEarnOpportunities parameters: - - description: The ID of the wallet to return - explode: false - in: path - name: walletId - required: true + - description: Cursor for the next or previous page of results. + explode: true + in: query + name: pageCursor + required: false schema: type: string - style: simple - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/UnmanagedWallet" - description: A Wallet object - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get assets for internal wallet - tags: - - Internal wallets - x-rate-limit-category: external_query - x-readme: - code-samples: - - language: python - code: internalWallet = fireblocks.get_internal_wallet(walletId) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const result = await fireblocks.getInternalWallet(walletId); - name: Fireblocks SDK Javascript example - - language: typescript - code: "const response: Promise> = fireblocks.internalWallets.getInternalWallet(internalWalletsApiGetInternalWalletRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response = fireblocks.internalWallets().getInternalWallet(walletId); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.internal_wallets.get_internal_wallet(wallet_id); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> = fireblocks.internalWallets.getInternalWallet(internalWalletsApiGetInternalWalletRequest);" - - lang: Java - source: CompletableFuture> response = fireblocks.internalWallets().getInternalWallet(walletId); - - lang: Python - source: response = fireblocks.internal_wallets.get_internal_wallet(wallet_id); - x-accepts: - - application/json - /internal_wallets/{walletId}/assets: - get: - description: Returns a paginated response of assets in an internal wallet. - operationId: getInternalWalletAssetsPaginated - parameters: - - description: The ID of the internal wallet to return assets for - explode: false - in: path - name: walletId - required: true - schema: - type: string - style: simple - - example: 10 + style: form + - description: Number of items per page. explode: true in: query name: pageSize required: false schema: - default: 50 - description: Number of assets to return per page - maximum: 200 + default: 100 + format: int32 + maximum: 100 minimum: 1 - type: number + type: integer style: form - - explode: true + - description: Field to sort results by. + explode: true in: query - name: pageCursor + name: sortBy required: false schema: - description: Cursor for pagination + 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: @@ -8049,355 +8178,566 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/PaginatedAssetsResponse" - description: A paginated response of assets for the internal wallet + $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: List assets in an internal wallet (Paginated) + summary: Get list of earn opportunities tags: - - Internal wallets + - Earn (Beta) x-rate-limit-category: query x-readme: code-samples: - - language: python - code: "internalWalletAssets = fireblocks.get_internal_wallet_assets(walletId,\ - \ pageSize, pageCursor)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const internalWalletAssets = fireblocks.getInternalWalletAssets(walletId,\ - \ pageSize, pageCursor);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.internalWallets.getInternalWalletAssetsPaginated(internalWalletsApiGetInternalWalletAssetsPaginatedRequest);" + code: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnOpportunities(earnBetaApiGetEarnOpportunitiesRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.internalWallets().getInternalWalletAssetsPaginated(walletId,\ - \ pageSize, pageCursor);" + code: "CompletableFuture> response\ + \ = fireblocks.earnBeta().getEarnOpportunities(pageCursor, pageSize, sortBy,\ + \ order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.internal_wallets.get_internal_wallet_assets_paginated(wallet_id,\ - \ page_size, page_cursor);" + 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.internalWallets.getInternalWalletAssetsPaginated(internalWalletsApiGetInternalWalletAssetsPaginatedRequest);" + source: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnOpportunities(earnBetaApiGetEarnOpportunitiesRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.internalWallets().getInternalWalletAssetsPaginated(walletId,\ - \ pageSize, pageCursor);" + source: "CompletableFuture> response\ + \ = fireblocks.earnBeta().getEarnOpportunities(pageCursor, pageSize, sortBy,\ + \ order);" - lang: Python - source: "response = fireblocks.internal_wallets.get_internal_wallet_assets_paginated(wallet_id,\ - \ page_size, page_cursor);" + source: "response = fireblocks.earn_beta.get_earn_opportunities(page_cursor,\ + \ page_size, sort_by, order);" x-accepts: - application/json - /internal_wallets/{walletId}/set_customer_ref_id: - post: - description: Sets an AML/KYT customer reference ID for the specific internal - wallet. - operationId: setCustomerRefIdForInternalWallet + /earn/positions: + get: + 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: The wallet ID - explode: false - in: path - name: walletId - 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 - - 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 + style: form + - description: Cursor for the next or previous page of results. + explode: true + in: query + name: pageCursor required: false schema: type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SetCustomerRefIdRequest" - required: true + 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: - "201": + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetPositionsResponse" 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: Set an AML/KYT customer reference ID for internal wallet + summary: Get list of earn positions tags: - - Internal wallets - x-rate-limit-category: write + - Earn (Beta) + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: "result = firebocks.set_customer_ref_id_for_internal_wallet(wallet_id,\ - \ customer_ref_id)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const result = await fireblocks.setCustomerRefIdForInternalWallet(walletId,\ - \ customerRefId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.internalWallets.setCustomerRefIdForInternalWallet(internalWalletsApiSetCustomerRefIdForInternalWalletRequest);" + code: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnPositions(earnBetaApiGetEarnPositionsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.internalWallets().setCustomerRefIdForInternalWallet(setCustomerRefIdRequest,\ - \ walletId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.earnBeta().getEarnPositions(chainId,\ + \ providerId, pageCursor, pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.internal_wallets.set_customer_ref_id_for_internal_wallet(set_customer_ref_id_request,\ - \ wallet_id, idempotency_key);" + 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.internalWallets.setCustomerRefIdForInternalWallet(internalWalletsApiSetCustomerRefIdForInternalWalletRequest);" + source: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnPositions(earnBetaApiGetEarnPositionsRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.internalWallets().setCustomerRefIdForInternalWallet(setCustomerRefIdRequest,\ - \ walletId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.earnBeta().getEarnPositions(chainId,\ + \ providerId, pageCursor, pageSize, sortBy, order);" - lang: Python - source: "response = fireblocks.internal_wallets.set_customer_ref_id_for_internal_wallet(set_customer_ref_id_request,\ - \ wallet_id, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.earn_beta.get_earn_positions(chain_id, provider_id,\ + \ page_cursor, page_size, sort_by, order);" x-accepts: - application/json - /internal_wallets/{walletId}/{assetId}: - delete: - description: Deletes a whitelisted address (for an asset) from an internal wallet. - operationId: deleteInternalWalletAsset + /earn/providers: + get: + description: | + Get list of earn providers. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: getEarnProviders parameters: - - description: The ID of the wallet - explode: false - in: path - name: walletId - required: true + - description: Cursor for the next or previous page of results. + explode: true + in: query + name: pageCursor + required: false schema: type: string - style: simple - - description: The ID of the asset to delete - explode: false - in: path - name: assetId - required: true + 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 - x-fb-entity: asset - style: simple + 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: - "201": + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetProvidersResponse" 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: Delete a whitelisted address + summary: Get list of earn providers tags: - - Internal wallets - x-rate-limit-category: write + - Earn (Beta) + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: "result = fireblocks.delete_internal_wallet_asset(walletId, assetId)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const result = await fireblocks.deleteInternalWalletAsset(walletId,\ - \ assetId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.internalWallets.deleteInternalWalletAsset(internalWalletsApiDeleteInternalWalletAssetRequest);" + code: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnProviders(earnBetaApiGetEarnProvidersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.internalWallets().deleteInternalWalletAsset(walletId,\ - \ assetId);" + code: "CompletableFuture> response = fireblocks.earnBeta().getEarnProviders(pageCursor,\ + \ pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.internal_wallets.delete_internal_wallet_asset(wallet_id,\ - \ asset_id);" + 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.internalWallets.deleteInternalWalletAsset(internalWalletsApiDeleteInternalWalletAssetRequest);" + source: "const response: Promise>\ + \ = fireblocks.earnBeta.getEarnProviders(earnBetaApiGetEarnProvidersRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.internalWallets().deleteInternalWalletAsset(walletId,\ - \ assetId);" + source: "CompletableFuture> response = fireblocks.earnBeta().getEarnProviders(pageCursor,\ + \ pageSize, sortBy, order);" - lang: Python - source: "response = fireblocks.internal_wallets.delete_internal_wallet_asset(wallet_id,\ - \ asset_id);" + source: "response = fireblocks.earn_beta.get_earn_providers(page_cursor, page_size,\ + \ sort_by, order);" x-accepts: - application/json - get: - description: Returns information for an asset in an internal wallet. - operationId: getInternalWalletAsset + /earn/providers/approve_terms_of_service: + post: + description: | + Approves earn provider terms of service for this workspace (one-time per tenant). + When `isTermsApprovalRequired` is true on a provider (see list providers), + call this once before creating or executing earn actions with providers that require it. + After success, `GET /earn/providers` reflects `isTermsOfServiceApproved`. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: approveTermsOfService parameters: - - description: The ID of the wallet - explode: false - in: path - name: walletId - required: true - schema: - type: string - style: simple - - description: The ID of the asset to return + - 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: path - name: assetId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string - x-fb-entity: asset style: simple responses: - "200": + "204": + description: Terms of service accepted. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": content: application/json: schema: - $ref: "#/components/schemas/WalletAsset" - description: A Wallet Asset object + $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" - default: - $ref: "#/components/responses/Error" - summary: Get an asset from an internal wallet - tags: - - Internal wallets - x-rate-limit-category: external_query - x-readme: - code-samples: - - language: python - code: "internalWalletAsset = fireblocks.get_internal_wallet_asset(walletId,\ - \ assetId)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const internalWalletAsset = fireblocks.getInternalWalletAsset(walletId,\ - \ assetId);" - name: Fireblocks SDK Javascript example + "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 earn provider terms of service + tags: + - Earn (Beta) + x-rate-limit-category: write + x-readme: + code-samples: - language: typescript - code: "const response: Promise> = fireblocks.internalWallets.getInternalWalletAsset(internalWalletsApiGetInternalWalletAssetRequest);" + code: "const response: Promise> = fireblocks.earnBeta.approveTermsOfService(earnBetaApiApproveTermsOfServiceRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.internalWallets().getInternalWalletAsset(walletId,\ - \ assetId);" + code: CompletableFuture> response = fireblocks.earnBeta().approveTermsOfService(idempotencyKey); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.internal_wallets.get_internal_wallet_asset(wallet_id,\ - \ asset_id);" + code: response = fireblocks.earn_beta.approve_terms_of_service(idempotency_key); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.internalWallets.getInternalWalletAsset(internalWalletsApiGetInternalWalletAssetRequest);" + source: "const response: Promise> = fireblocks.earnBeta.approveTermsOfService(earnBetaApiApproveTermsOfServiceRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.internalWallets().getInternalWalletAsset(walletId,\ - \ assetId);" + source: CompletableFuture> response = fireblocks.earnBeta().approveTermsOfService(idempotencyKey); - lang: Python - source: "response = fireblocks.internal_wallets.get_internal_wallet_asset(wallet_id,\ - \ asset_id);" + source: response = fireblocks.earn_beta.approve_terms_of_service(idempotency_key); x-accepts: - application/json - post: - description: Adds an asset to an existing internal wallet. - operationId: createInternalWalletAsset + /ncw/{walletId}/accounts/{accountId}/{assetId}/{change}/{addressIndex}/public_key_info: + get: + description: Gets the public key of an asset associated with a specific account + within a Non-Custodial Wallet + operationId: getPublicKeyInfoForAddressNcw parameters: - - description: The ID of the wallet + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: true + schema: + format: uuid + type: string + style: simple + - description: The ID of the Non-Custodial wallet explode: false in: path name: walletId required: true schema: + example: 550e8400-e29b-41d4-a716-446655440000 type: string style: simple - - description: The ID of the asset to add + - description: The ID of the account + explode: false + in: path + name: accountId + required: true + schema: + example: "0" + format: numeric + type: string + style: simple + - description: The ID of the asset explode: false in: path name: assetId required: true schema: + example: BTC 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." + - description: BIP44 derivation path - change value explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: change + required: true schema: - type: string + example: 0 + type: number style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateInternalWalletAssetRequest" + - description: BIP44 derivation path - index value + explode: false + in: path + name: addressIndex + required: true + schema: + example: 0 + type: number + style: simple + - description: Compressed/Uncompressed public key format + explode: true + in: query + name: compressed + required: false + schema: + example: true + type: boolean + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/WalletAsset" - description: A Wallet Asset object + $ref: "#/components/schemas/PublicKeyInformation" + description: Public Key Information headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Add an asset to an internal wallet + summary: Get the public key of an asset tags: - - Internal wallets - x-rate-limit-category: write + - Embedded Wallets + x-internal: true + x-rate-limit-category: read x-readme: code-samples: - language: python - code: "internalWalletAsset = fireblocks.create_internal_wallet_asset(walletId,\ - \ assetId, address, tag)" - name: Fireblocks SDK Python example (Legacy) + code: "pubKey = fireblocks.NCW.get_public_key_info_by_account_asset(wallet_id,\ + \ asset_id, account_id, change, address_index, compressed)" + name: Fireblocks SDK Python example - language: javascript - code: "const internalWalletAsset = await fireblocks.createInternalWalletAsset(walletContainerId,\ - \ assetId, address, tag);" + code: "const publicKeyInfoByAccountAssetArgs = {\n assetId: 'ETH',\n accountId:\ + \ 0,\n change: 0,\n addressIndex: 0,\n compressed: true\n}; \ + \ \nconst pubKey = await fireblocks.NCW.getPublicKeyInfoByAccountAsset(walletId,\ + \ publicKeyInfoByAccountAssetArgs);\n" name: Fireblocks SDK Javascript example - - language: typescript - code: "const response: Promise> = fireblocks.internalWallets.createInternalWalletAsset(internalWalletsApiCreateInternalWalletAssetRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response = fireblocks.internalWallets().createInternalWalletAsset(walletId,\ - \ assetId, createInternalWalletAssetRequest, idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.internal_wallets.create_internal_wallet_asset(wallet_id,\ - \ asset_id, create_internal_wallet_asset_request, idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> = fireblocks.internalWallets.createInternalWalletAsset(internalWalletsApiCreateInternalWalletAssetRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.internalWallets().createInternalWalletAsset(walletId,\ - \ assetId, createInternalWalletAssetRequest, idempotencyKey);" - - lang: Python - source: "response = fireblocks.internal_wallets.create_internal_wallet_asset(wallet_id,\ - \ asset_id, create_internal_wallet_asset_request, idempotency_key);" - x-content-type: application/json x-accepts: - application/json - /key_link/signing_keys: + /ncw/wallets: get: - description: Returns the list of signing keys in the workspace - operationId: getSigningKeysList + description: Get all Non Custodial Wallets + operationId: GetEmbeddedWallets parameters: - - description: Cursor to the next page + - description: Next page cursor to fetch example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true in: query @@ -8406,21 +8746,22 @@ paths: schema: type: string style: form - - description: Amount of results to return in the next page + - description: Items per page + example: 500 explode: true in: query name: pageSize required: false schema: - default: 10 - maximum: 50 - minimum: 1 + default: 200 + maximum: 400 type: number style: form - description: Field(s) to use for sorting + example: createdAt explode: true in: query - name: sortBy + name: sort required: false schema: default: createdAt @@ -8429,6 +8770,7 @@ paths: type: string style: form - description: Is the order ascending or descending + example: ASC explode: true in: query name: order @@ -8440,37 +8782,8 @@ paths: - DESC type: string style: form - - description: Return keys assigned to a specific vault - example: 4 - explode: true - in: query - name: vaultAccountId - required: false - schema: - type: number - style: form - - description: Return keys associated with a specific agent user - example: 12fed207-5bdf-4a0c-ab12-fcd2627f75d1 - explode: true - in: query - name: agentUserId - required: false - schema: - type: string - style: form - - description: Return only keys with a specific algorithm - example: ECDSA_SECP256K1 - explode: true - in: query - name: algorithm - required: false - schema: - enum: - - ECDSA_SECP256K1 - - EDDSA_ED25519 - type: string - style: form - - description: Return keys that have been proof of ownership + - description: Enabled Wallets + example: true explode: true in: query name: enabled @@ -8478,89 +8791,53 @@ paths: schema: type: boolean style: form - - description: Return keys that are proof of ownership but not assigned. Available - filter can be used only when vaultAccountId and enabled filters are not - set - explode: true - in: query - name: available - required: false - schema: - type: boolean - style: form - - description: Return keys that are assigned to a vault account - explode: true - in: query - name: isAssigned - required: false - schema: - nullable: true - type: boolean - style: form - - description: A case-insensitive prefix filter that matches records where either - keyId or signingDeviceKeyID starts with the specified value. - explode: true - in: query - name: keyPrefix - required: false - schema: - type: string - style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetSigningKeyResponseDto" - description: List of signing keys and a data that allows requesting the - next page if applicable + $ref: "#/components/schemas/EmbeddedWalletPaginatedWalletsResponse" + description: Successful response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get list of signing keys + summary: List wallets tags: - - Key Link (Beta) + - Embedded Wallets x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.getSigningKeysList(keyLinkBetaApiGetSigningKeysListRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWallets(embeddedWalletsApiGetEmbeddedWalletsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().getSigningKeysList(pageCursor, pageSize,\ - \ sortBy, order, vaultAccountId, agentUserId, algorithm, enabled, available,\ - \ isAssigned, keyPrefix);" + code: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWallets(pageCursor,\ + \ pageSize, sort, order, enabled);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.get_signing_keys_list(page_cursor,\ - \ page_size, sort_by, order, vault_account_id, agent_user_id, algorithm,\ - \ enabled, available, is_assigned, key_prefix);" + code: "response = fireblocks.embedded_wallets.get_embedded_wallets(page_cursor,\ + \ page_size, sort, order, enabled);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.getSigningKeysList(keyLinkBetaApiGetSigningKeysListRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWallets(embeddedWalletsApiGetEmbeddedWalletsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().getSigningKeysList(pageCursor, pageSize, sortBy,\ - \ order, vaultAccountId, agentUserId, algorithm, enabled, available, isAssigned,\ - \ keyPrefix);" + source: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWallets(pageCursor,\ + \ pageSize, sort, order, enabled);" - lang: Python - source: "response = fireblocks.key_link_beta.get_signing_keys_list(page_cursor,\ - \ page_size, sort_by, order, vault_account_id, agent_user_id, algorithm,\ - \ enabled, available, is_assigned, key_prefix);" + source: "response = fireblocks.embedded_wallets.get_embedded_wallets(page_cursor,\ + \ page_size, sort, order, enabled);" x-accepts: - application/json post: - description: "Adds a new signing key to the workspace. The added key will be\ - \ linked to the specific Fireblocks agent user ID. The same user will receive\ - \ the proof of ownership message to be signed, and upon successful proof,\ - \ the key will become enabled." - operationId: createSigningKey + description: Create new Non Custodial Wallet + operationId: CreateEmbeddedWallet 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\ @@ -8573,66 +8850,54 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateSigningKeyDto" - required: true responses: "201": content: application/json: schema: - $ref: "#/components/schemas/SigningKeyDto" - description: Newly created signing key + $ref: "#/components/schemas/EmbeddedWallet" + description: Wallet created successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Add a new signing key + summary: Create a new wallet tags: - - Key Link (Beta) + - Embedded Wallets x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.createSigningKey(keyLinkBetaApiCreateSigningKeyRequest);" + code: "const response: Promise> = fireblocks.embeddedWallets.createEmbeddedWallet(embeddedWalletsApiCreateEmbeddedWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.keyLinkBeta().createSigningKey(createSigningKeyDto,\ - \ idempotencyKey);" + code: CompletableFuture> response = fireblocks.embeddedWallets().createEmbeddedWallet(idempotencyKey); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.create_signing_key(create_signing_key_dto,\ - \ idempotency_key);" + code: response = fireblocks.embedded_wallets.create_embedded_wallet(idempotency_key); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.createSigningKey(keyLinkBetaApiCreateSigningKeyRequest);" + source: "const response: Promise> = fireblocks.embeddedWallets.createEmbeddedWallet(embeddedWalletsApiCreateEmbeddedWalletRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.keyLinkBeta().createSigningKey(createSigningKeyDto,\ - \ idempotencyKey);" + source: CompletableFuture> response = fireblocks.embeddedWallets().createEmbeddedWallet(idempotencyKey); - lang: Python - source: "response = fireblocks.key_link_beta.create_signing_key(create_signing_key_dto,\ - \ idempotency_key);" - x-content-type: application/json + source: response = fireblocks.embedded_wallets.create_embedded_wallet(idempotency_key); x-accepts: - application/json - /key_link/signing_keys/{keyId}: + /ncw/wallets/{walletId}: get: - description: "Returns a signing key if it exists, identified by the specified\ - \ `keyId`." - operationId: getSigningKey + description: Get a wallet + operationId: GetEmbeddedWallet parameters: - - description: The unique identifier for the signing key provided by Fireblocks + - description: Wallet Id explode: false in: path - name: keyId + name: walletId required: true schema: - example: 46a92767-5f93-4a46-9eed-f012196bb4fc + example: 550e8400-e29b-41d4-a716-446655440000 type: string style: simple responses: @@ -8640,164 +8905,210 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SigningKeyDto" - description: Requested signing key data + $ref: "#/components/schemas/EmbeddedWallet" + description: Successful response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get a signing key by `keyId` + summary: Get a wallet tags: - - Key Link (Beta) - x-rate-limit-category: query + - Embedded Wallets + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.getSigningKey(keyLinkBetaApiGetSigningKeyRequest);" + code: "const response: Promise> = fireblocks.embeddedWallets.getEmbeddedWallet(embeddedWalletsApiGetEmbeddedWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.keyLinkBeta().getSigningKey(keyId); + code: CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWallet(walletId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.key_link_beta.get_signing_key(key_id); + code: response = fireblocks.embedded_wallets.get_embedded_wallet(wallet_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.getSigningKey(keyLinkBetaApiGetSigningKeyRequest);" + source: "const response: Promise> = fireblocks.embeddedWallets.getEmbeddedWallet(embeddedWalletsApiGetEmbeddedWalletRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.keyLinkBeta().getSigningKey(keyId); + source: CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWallet(walletId); - lang: Python - source: response = fireblocks.key_link_beta.get_signing_key(key_id); + source: response = fireblocks.embedded_wallets.get_embedded_wallet(wallet_id); x-accepts: - application/json - patch: - description: "Allows assigning the signing key to a vault account, if it hasn't\ - \ been assigned to any other vault accounts yet." - operationId: updateSigningKey + /ncw/wallets/{walletId}/accounts: + post: + description: Create a new account under a specific Non Custodial Wallet + operationId: CreateEmbeddedWalletAccount parameters: - - description: The unique identifier for the signing key provided by Fireblocks + - 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: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path - name: keyId + name: walletId required: true schema: - example: 46a92767-5f93-4a46-9eed-f012196bb4fc + example: 550e8400-e29b-41d4-a716-446655440000 type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ModifySigningKeyDto" - required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/SigningKeyDto" - description: Modified signing key data + $ref: "#/components/schemas/EmbeddedWalletAccount" + description: Account Created headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Modify the signing keyId + summary: Create a new account tags: - - Key Link (Beta) + - Embedded Wallets x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.updateSigningKey(keyLinkBetaApiUpdateSigningKeyRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.createEmbeddedWalletAccount(embeddedWalletsApiCreateEmbeddedWalletAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.keyLinkBeta().updateSigningKey(modifySigningKeyDto,\ - \ keyId);" + code: "CompletableFuture> response =\ + \ fireblocks.embeddedWallets().createEmbeddedWalletAccount(walletId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.update_signing_key(modify_signing_key_dto,\ - \ key_id);" + code: "response = fireblocks.embedded_wallets.create_embedded_wallet_account(wallet_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.updateSigningKey(keyLinkBetaApiUpdateSigningKeyRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.createEmbeddedWalletAccount(embeddedWalletsApiCreateEmbeddedWalletAccountRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.keyLinkBeta().updateSigningKey(modifySigningKeyDto,\ - \ keyId);" + source: "CompletableFuture> response =\ + \ fireblocks.embeddedWallets().createEmbeddedWalletAccount(walletId, idempotencyKey);" - lang: Python - source: "response = fireblocks.key_link_beta.update_signing_key(modify_signing_key_dto,\ - \ key_id);" - x-content-type: application/json + source: "response = fireblocks.embedded_wallets.create_embedded_wallet_account(wallet_id,\ + \ idempotency_key);" x-accepts: - application/json - /key_link/signing_keys/{keyId}/agent_user_id: - patch: - description: Can modify existing signing key id if the key is not enabled. The - change done in background and will be visible once applied. If key is already - enabled (after proof of ownership) the user cannot be changed. - operationId: setAgentId + /ncw/wallets/{walletId}/accounts/{accountId}: + get: + description: Get a specific account under a specific Non Custodial Wallet + operationId: GetEmbeddedWalletAccount parameters: - - description: The unique identifier for the signing key provided by Fireblocks + - description: WalletId + example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path - name: keyId + name: walletId required: true schema: - example: 46a92767-5f93-4a46-9eed-f012196bb4fc type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ModifySigningKeyAgentIdDto" + - description: The ID of the account + example: "0" + explode: false + in: path + name: accountId required: true + schema: + type: string + style: simple responses: - "204": - description: Agent user id modification process has started in background. + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/EmbeddedWalletAccount" + description: Successful response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Set agent user id + summary: Get a account tags: - - Key Link (Beta) - x-rate-limit-category: write + - Embedded Wallets + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.setAgentId(keyLinkBetaApiSetAgentIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletAccount(embeddedWalletsApiGetEmbeddedWalletAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.keyLinkBeta().setAgentId(modifySigningKeyAgentIdDto,\ - \ keyId);" + code: "CompletableFuture> response =\ + \ fireblocks.embeddedWallets().getEmbeddedWalletAccount(walletId, accountId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.set_agent_id(modify_signing_key_agent_id_dto,\ - \ key_id);" + code: "response = fireblocks.embedded_wallets.get_embedded_wallet_account(wallet_id,\ + \ account_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.setAgentId(keyLinkBetaApiSetAgentIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletAccount(embeddedWalletsApiGetEmbeddedWalletAccountRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.keyLinkBeta().setAgentId(modifySigningKeyAgentIdDto,\ - \ keyId);" + source: "CompletableFuture> response =\ + \ fireblocks.embeddedWallets().getEmbeddedWalletAccount(walletId, accountId);" - lang: Python - source: "response = fireblocks.key_link_beta.set_agent_id(modify_signing_key_agent_id_dto,\ - \ key_id);" - x-content-type: application/json + source: "response = fireblocks.embedded_wallets.get_embedded_wallet_account(wallet_id,\ + \ account_id);" x-accepts: - application/json - /key_link/validation_keys: + /ncw/wallets/{walletId}/accounts/{accountId}/assets: get: - description: Returns the list of validation keys in the workspace - operationId: getValidationKeysList + description: Retrieve assets for a specific account under a specific Non Custodial + Wallet + operationId: getEmbeddedWalletAssets parameters: + - description: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 + explode: false + in: path + name: walletId + required: true + schema: + type: string + style: simple + - description: The ID of the account + example: "0" + explode: false + in: path + name: accountId + required: true + schema: + type: string + style: simple + - description: Sort by fields + explode: true + in: query + name: sort + required: false + schema: + default: + - assetId + items: + enum: + - assetId + - createdAt + type: string + type: array + style: form - description: Cursor to the next page - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true in: query name: pageCursor @@ -8811,22 +9122,10 @@ paths: name: pageSize required: false schema: - default: 10 - maximum: 50 - minimum: 1 + default: 200 + maximum: 400 type: number style: form - - description: Field(s) to use for sorting - explode: true - in: query - name: sortBy - required: false - schema: - default: createdAt - enum: - - createdAt - type: string - style: form - description: Is the order ascending or descending explode: true in: query @@ -8844,389 +9143,534 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GetValidationKeyResponseDto" - description: Validation keys list along with data required to request the - next page if applicable + $ref: "#/components/schemas/EmbeddedWalletPaginatedAssetsResponse" + description: Successful response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get list of registered validation keys + summary: Retrieve assets tags: - - Key Link (Beta) + - Embedded Wallets x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.getValidationKeysList(keyLinkBetaApiGetValidationKeysListRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletAssets(embeddedWalletsApiGetEmbeddedWalletAssetsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().getValidationKeysList(pageCursor, pageSize,\ - \ sortBy, order);" + code: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWalletAssets(walletId,\ + \ accountId, sort, pageCursor, pageSize, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.get_validation_keys_list(page_cursor,\ - \ page_size, sort_by, order);" + code: "response = fireblocks.embedded_wallets.get_embedded_wallet_assets(wallet_id,\ + \ account_id, sort, page_cursor, page_size, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.getValidationKeysList(keyLinkBetaApiGetValidationKeysListRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletAssets(embeddedWalletsApiGetEmbeddedWalletAssetsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().getValidationKeysList(pageCursor, pageSize,\ - \ sortBy, order);" + source: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWalletAssets(walletId,\ + \ accountId, sort, pageCursor, pageSize, order);" - lang: Python - source: "response = fireblocks.key_link_beta.get_validation_keys_list(page_cursor,\ - \ page_size, sort_by, order);" + source: "response = fireblocks.embedded_wallets.get_embedded_wallet_assets(wallet_id,\ + \ account_id, sort, page_cursor, page_size, order);" x-accepts: - application/json - post: - description: Adds a new validation key used to validate signing keys. The new - validation key will undergo an approval process by the workspace quorum. - operationId: createValidationKey + /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}: + get: + description: "Get asset under a specific account, under a specific Non Custodial\ + \ Wallet" + operationId: GetEmbeddedWalletAsset 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." + - description: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: walletId + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateValidationKeyDto" + - description: The ID of the account + example: "0" + explode: false + in: path + name: accountId + required: true + schema: + type: string + style: simple + - description: The ID of the asset + example: BTC + explode: false + in: path + name: assetId required: true + schema: + type: string + x-fb-entity: asset + style: simple responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/CreateValidationKeyResponseDto" - description: The validation key that was added and is pending approval. + $ref: "#/components/schemas/EmbeddedWalletAssetResponse" + description: Successful response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Add a new validation key + summary: Retrieve asset tags: - - Key Link (Beta) - x-rate-limit-category: write + - Embedded Wallets + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.createValidationKey(keyLinkBetaApiCreateValidationKeyRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletAsset(embeddedWalletsApiGetEmbeddedWalletAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().createValidationKey(createValidationKeyDto,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.embeddedWallets().getEmbeddedWalletAsset(walletId, accountId,\ + \ assetId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.create_validation_key(create_validation_key_dto,\ - \ idempotency_key);" + code: "response = fireblocks.embedded_wallets.get_embedded_wallet_asset(wallet_id,\ + \ account_id, asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.keyLinkBeta.createValidationKey(keyLinkBetaApiCreateValidationKeyRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletAsset(embeddedWalletsApiGetEmbeddedWalletAssetRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.keyLinkBeta().createValidationKey(createValidationKeyDto,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.embeddedWallets().getEmbeddedWalletAsset(walletId, accountId,\ + \ assetId);" - lang: Python - source: "response = fireblocks.key_link_beta.create_validation_key(create_validation_key_dto,\ - \ idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.embedded_wallets.get_embedded_wallet_asset(wallet_id,\ + \ account_id, asset_id);" x-accepts: - application/json - /key_link/validation_keys/{keyId}: - get: - description: "Returns a validation key if it exists, identified by the specified\ - \ `keyId`." - operationId: getValidationKey + post: + description: "Get the addresses of a specific asset, under a specific account,\ + \ under a specific Non Custodial Wallet" + operationId: AddEmbeddedWalletAsset parameters: - - explode: false + - 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: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 + explode: false in: path - name: keyId + name: walletId + required: true + schema: + type: string + style: simple + - description: The ID of the account + example: "0" + explode: false + in: path + name: accountId + required: true + schema: + type: string + x-fb-entity: asset + style: simple + - description: The ID of the asset + example: BTC + explode: false + in: path + name: assetId required: true schema: type: string style: simple responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/ValidationKeyDto" - description: The requested validation key data - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/EmbeddedWalletAddressDetails" + description: Created default: $ref: "#/components/responses/Error" - summary: Get a validation key by `keyId` + summary: Add asset to account tags: - - Key Link (Beta) - x-rate-limit-category: query + - Embedded Wallets + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.getValidationKey(keyLinkBetaApiGetValidationKeyRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.addEmbeddedWalletAsset(embeddedWalletsApiAddEmbeddedWalletAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.keyLinkBeta().getValidationKey(keyId); + code: "CompletableFuture> response\ + \ = fireblocks.embeddedWallets().addEmbeddedWalletAsset(walletId, accountId,\ + \ assetId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.key_link_beta.get_validation_key(key_id); + code: "response = fireblocks.embedded_wallets.add_embedded_wallet_asset(wallet_id,\ + \ account_id, asset_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.getValidationKey(keyLinkBetaApiGetValidationKeyRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.addEmbeddedWalletAsset(embeddedWalletsApiAddEmbeddedWalletAssetRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.keyLinkBeta().getValidationKey(keyId); + source: "CompletableFuture> response\ + \ = fireblocks.embeddedWallets().addEmbeddedWalletAsset(walletId, accountId,\ + \ assetId, idempotencyKey);" - lang: Python - source: response = fireblocks.key_link_beta.get_validation_key(key_id); + source: "response = fireblocks.embedded_wallets.add_embedded_wallet_asset(wallet_id,\ + \ account_id, asset_id, idempotency_key);" x-accepts: - application/json - patch: - description: Allows disabling validation key even if it has not expired yet. - It is not allowed to enable the validation key back. Another key has to be - used for future validations. - operationId: disableValidationKey + /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/{change}/{addressIndex}/public_key_info: + get: + description: Gets the public key of an asset associated with a specific account + within a Non-Custodial Wallet + operationId: GetEmbeddedWalletPublicKeyInfoForAddress parameters: - - description: The unique identifier for the validation key provided by Fireblocks + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: true + schema: + format: uuid + type: string + style: simple + - description: The ID of the Non-Custodial wallet explode: false in: path - name: keyId + name: walletId required: true schema: - example: 46a92767-5f93-4a46-9eed-f012196bb4fc + example: 550e8400-e29b-41d4-a716-446655440000 type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ModifyValidationKeyDto" + - description: The ID of the account + explode: false + in: path + name: accountId + required: true + schema: + example: "0" + format: numeric + type: string + style: simple + - description: The ID of the asset + explode: false + in: path + name: assetId + required: true + schema: + example: BTC + type: string + x-fb-entity: asset + style: simple + - description: BIP44 derivation path - change value + explode: false + in: path + name: change + required: true + schema: + example: 0 + type: number + style: simple + - description: BIP44 derivation path - index value + explode: false + in: path + name: addressIndex required: true + schema: + example: 0 + type: number + style: simple + - description: Compressed/Uncompressed public key format + explode: true + in: query + name: compressed + required: false + schema: + example: true + type: boolean + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ValidationKeyDto" - description: Modified validation key data + $ref: "#/components/schemas/PublicKeyInformation" + description: Public Key Information headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Disables a validation key + summary: Get the public key of an asset tags: - - Key Link (Beta) - x-rate-limit-category: write + - Embedded Wallets + x-rate-limit-category: read x-readme: code-samples: + - language: javascript + code: "const publicKeyInfoByAccountAssetArgs = {\n assetId: 'ETH',\n accountId:\ + \ 0,\n change: 0,\n addressIndex: 0,\n compressed: true\n}; \ + \ \nconst pubKey = await fireblocks.NCW.getPublicKeyInfoByAccountAsset(walletId,\ + \ publicKeyInfoByAccountAssetArgs);\n" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.keyLinkBeta.disableValidationKey(keyLinkBetaApiDisableValidationKeyRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletPublicKeyInfoForAddress(embeddedWalletsApiGetEmbeddedWalletPublicKeyInfoForAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.keyLinkBeta().disableValidationKey(modifyValidationKeyDto,\ - \ keyId);" + code: "CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWalletPublicKeyInfoForAddress(walletId,\ + \ accountId, assetId, change, addressIndex, xEndUserWalletId, compressed);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.key_link_beta.disable_validation_key(modify_validation_key_dto,\ - \ key_id);" + code: "response = fireblocks.embedded_wallets.get_embedded_wallet_public_key_info_for_address(wallet_id,\ + \ account_id, asset_id, change, address_index, x_end_user_wallet_id, compressed);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.keyLinkBeta.disableValidationKey(keyLinkBetaApiDisableValidationKeyRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletPublicKeyInfoForAddress(embeddedWalletsApiGetEmbeddedWalletPublicKeyInfoForAddressRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.keyLinkBeta().disableValidationKey(modifyValidationKeyDto,\ - \ keyId);" + source: "CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWalletPublicKeyInfoForAddress(walletId,\ + \ accountId, assetId, change, addressIndex, xEndUserWalletId, compressed);" - lang: Python - source: "response = fireblocks.key_link_beta.disable_validation_key(modify_validation_key_dto,\ - \ key_id);" - x-content-type: application/json + source: "response = fireblocks.embedded_wallets.get_embedded_wallet_public_key_info_for_address(wallet_id,\ + \ account_id, asset_id, change, address_index, x_end_user_wallet_id, compressed);" x-accepts: - application/json - /keys/mpc/list: + /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/addresses: get: - description: "Returns a list of MPC signing keys of the workspace. For each\ - \ key, the list of players associated with it is attached.\n**Note:** \nThis\ - \ endpoint is currently in beta and might be subject to changes." - operationId: getMpcKeysList - parameters: [] + description: "Get the addresses of a specific asset, under a specific account,\ + \ under a specific Non Custodial Wallet" + operationId: GetEmbeddedWalletAddresses + parameters: + - description: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 + explode: false + in: path + name: walletId + required: true + schema: + type: string + style: simple + - description: The ID of the account + example: "0" + explode: false + in: path + name: accountId + required: true + schema: + type: string + style: simple + - description: The ID of the asset + example: BTC + explode: false + in: path + name: assetId + required: true + schema: + type: string + style: simple + - description: Cursor to the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Items per page + example: 10 + explode: true + in: query + name: pageSize + required: false + schema: + maximum: 100 + minimum: 1 + type: number + style: form + - description: Sort by address + example: address + explode: true + in: query + name: sort + required: false + schema: + default: createdAt + enum: + - address + - createdAt + type: string + style: form + - description: Is the order ascending or descending + example: ASC + explode: true + in: query + name: order + required: false + schema: + default: ASC + enum: + - DESC + - ASC + type: string + style: form + - description: Enabled + example: true + explode: true + in: query + name: enabled + required: false + schema: + type: boolean + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetMpcKeysResponse" - description: List of mpc keys - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/EmbeddedWalletPaginatedAddressesResponse" + description: Successful response default: $ref: "#/components/responses/Error" - summary: Get list of mpc keys + summary: Retrieve asset addresses tags: - - Keys (Beta) + - Embedded Wallets x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.keysBeta.getMpcKeysList();" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletAddresses(embeddedWalletsApiGetEmbeddedWalletAddressesRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysList(); + code: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWalletAddresses(walletId,\ + \ accountId, assetId, pageCursor, pageSize, sort, order, enabled);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.keys_beta.get_mpc_keys_list(); + code: "response = fireblocks.embedded_wallets.get_embedded_wallet_addresses(wallet_id,\ + \ account_id, asset_id, page_cursor, page_size, sort, order, enabled);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.keysBeta.getMpcKeysList();" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletAddresses(embeddedWalletsApiGetEmbeddedWalletAddressesRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysList(); + source: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWalletAddresses(walletId,\ + \ accountId, assetId, pageCursor, pageSize, sort, order, enabled);" - lang: Python - source: response = fireblocks.keys_beta.get_mpc_keys_list(); + source: "response = fireblocks.embedded_wallets.get_embedded_wallet_addresses(wallet_id,\ + \ account_id, asset_id, page_cursor, page_size, sort, order, enabled);" x-accepts: - application/json - /keys/mpc/list/{userId}: + /ncw/wallets/{walletId}/accounts/{accountId}/assets/{assetId}/balance: get: - description: |- - Returns a list of MPC signing keys of a specific user. For each key, the list of players associated with it is attached. - **Note:** - This endpoint is currently in beta and might be subject to changes. - operationId: getMpcKeysListByUser + description: "Get balance for specific asset, under a specific account" + operationId: GetEmbeddedWalletAssetBalance parameters: - - description: The id for the user - example: 46a92767-5f93-4a46-9eed-f012196bb4fc + - description: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path - name: userId + name: walletId required: true schema: type: string style: simple + - description: The ID of the account + example: "0" + explode: false + in: path + name: accountId + required: true + schema: + type: string + style: simple + - description: The ID of the asset + example: BTC + explode: false + in: path + name: assetId + required: true + schema: + type: string + x-fb-entity: asset + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetMpcKeysResponse" - description: List of mpc keys - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get list of mpc keys by `userId` - tags: - - Keys (Beta) - x-rate-limit-category: query - x-readme: - code-samples: - - language: typescript - code: "const response: Promise> =\ - \ fireblocks.keysBeta.getMpcKeysListByUser(keysBetaApiGetMpcKeysListByUserRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysListByUser(userId); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.keys_beta.get_mpc_keys_list_by_user(user_id); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.keysBeta.getMpcKeysListByUser(keysBetaApiGetMpcKeysListByUserRequest);" - - lang: Java - source: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysListByUser(userId); - - lang: Python - source: response = fireblocks.keys_beta.get_mpc_keys_list_by_user(user_id); - x-accepts: - - application/json - /external_wallets: - get: - description: |- - Gets a list of external wallets under the workspace. - - External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties. - - - You cannot see the balance of the external wallet. - - You cannot initiate transactions from an external wallet as the source via Fireblocks. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getExternalWallets - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/GetExternalWalletsResponse" - description: A list of external wallets - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/EmbeddedWalletAssetBalance" + description: Successful response default: $ref: "#/components/responses/Error" - summary: List external wallets + summary: Retrieve asset balance tags: - - External wallets - x-rate-limit-category: external_query + - Embedded Wallets + x-rate-limit-category: read x-readme: code-samples: - - language: python - code: externalWallets = fireblocks.get_external_wallets() - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const externalWallets = await fireblocks.getExternalWallets(); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.externalWallets.getExternalWallets();" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletAssetBalance(embeddedWalletsApiGetEmbeddedWalletAssetBalanceRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = fireblocks.externalWallets().getExternalWallets(); + code: "CompletableFuture> response\ + \ = fireblocks.embeddedWallets().getEmbeddedWalletAssetBalance(walletId,\ + \ accountId, assetId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.external_wallets.get_external_wallets(); + code: "response = fireblocks.embedded_wallets.get_embedded_wallet_asset_balance(wallet_id,\ + \ account_id, asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.externalWallets.getExternalWallets();" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletAssetBalance(embeddedWalletsApiGetEmbeddedWalletAssetBalanceRequest);" - lang: Java - source: CompletableFuture>> response = fireblocks.externalWallets().getExternalWallets(); + source: "CompletableFuture> response\ + \ = fireblocks.embeddedWallets().getEmbeddedWalletAssetBalance(walletId,\ + \ accountId, assetId);" - lang: Python - source: response = fireblocks.external_wallets.get_external_wallets(); + source: "response = fireblocks.embedded_wallets.get_embedded_wallet_asset_balance(wallet_id,\ + \ account_id, asset_id);" x-accepts: - application/json - post: - description: |- - Creates a new external wallet with the requested name. - - External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties. - - - You cannot see the balance of the external wallet. - - You cannot initiate transactions from an external wallet as the source via Fireblocks. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: createExternalWallet + put: + description: Refresh the balance of an asset in a specific account + operationId: RefreshEmbeddedWalletAssetBalance 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\ @@ -9239,67 +9683,96 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateWalletRequest" + - description: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 + explode: false + in: path + name: walletId + required: true + schema: + type: string + style: simple + - description: The ID of the account + example: "0" + explode: false + in: path + name: accountId + required: true + schema: + type: string + style: simple + - description: The ID of the asset + example: BTC + explode: false + in: path + name: assetId + required: true + schema: + type: string + x-fb-entity: asset + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/UnmanagedWallet" - description: A Wallet object + $ref: "#/components/schemas/EmbeddedWalletAssetBalance" + description: Successful response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create an external wallet + summary: Refresh asset balance tags: - - External wallets - x-rate-limit-category: write + - Embedded Wallets + x-rate-limit-category: async x-readme: code-samples: - - language: python - code: "externalWallet = fireblocks.create_external_wallet(name, customer_ref_id)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const externalWallet = await fireblocks.createExternalWallet(name,\ - \ customerRefId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.externalWallets.createExternalWallet(externalWalletsApiCreateExternalWalletRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.refreshEmbeddedWalletAssetBalance(embeddedWalletsApiRefreshEmbeddedWalletAssetBalanceRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.externalWallets().createExternalWallet(createWalletRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.embeddedWallets().refreshEmbeddedWalletAssetBalance(walletId,\ + \ accountId, assetId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.external_wallets.create_external_wallet(create_wallet_request,\ - \ idempotency_key);" + code: "response = fireblocks.embedded_wallets.refresh_embedded_wallet_asset_balance(wallet_id,\ + \ account_id, asset_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.externalWallets.createExternalWallet(externalWalletsApiCreateExternalWalletRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.refreshEmbeddedWalletAssetBalance(embeddedWalletsApiRefreshEmbeddedWalletAssetBalanceRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.externalWallets().createExternalWallet(createWalletRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.embeddedWallets().refreshEmbeddedWalletAssetBalance(walletId,\ + \ accountId, assetId, idempotencyKey);" - lang: Python - source: "response = fireblocks.external_wallets.create_external_wallet(create_wallet_request,\ - \ idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.embedded_wallets.refresh_embedded_wallet_asset_balance(wallet_id,\ + \ account_id, asset_id, idempotency_key);" x-accepts: - application/json - /external_wallets/{walletId}: - delete: - description: "Deletes an external wallet by ID. External Wallet is a whitelisted\ - \ address of a wallet that belongs to your users/counterparties. Endpoint\ - \ Permission: Admin, Non-Signing Admin, Signer, Approver, Editor." - operationId: deleteExternalWallet + /ncw/wallets/{walletId}/assign: + post: + description: Assign a specific Non Custodial Wallet to a user + operationId: assignEmbeddedWallet parameters: - - description: The ID of the wallet to delete + - 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: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path name: walletId @@ -9309,49 +9782,52 @@ paths: style: simple responses: "201": - description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/EmbeddedWallet" + description: Wallet Assigned headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Delete an external wallet + summary: Assign a wallet tags: - - External wallets + - Embedded Wallets x-rate-limit-category: write x-readme: code-samples: - - language: python - code: result = firebocks.delete_external_wallet(walletId) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const result = await fireblocks.deleteExternalWallet(walletId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.externalWallets.deleteExternalWallet(externalWalletsApiDeleteExternalWalletRequest);" + code: "const response: Promise> = fireblocks.embeddedWallets.assignEmbeddedWallet(embeddedWalletsApiAssignEmbeddedWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.externalWallets().deleteExternalWallet(walletId); + code: "CompletableFuture> response = fireblocks.embeddedWallets().assignEmbeddedWallet(walletId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.external_wallets.delete_external_wallet(wallet_id); + code: "response = fireblocks.embedded_wallets.assign_embedded_wallet(wallet_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.externalWallets.deleteExternalWallet(externalWalletsApiDeleteExternalWalletRequest);" + source: "const response: Promise> = fireblocks.embeddedWallets.assignEmbeddedWallet(embeddedWalletsApiAssignEmbeddedWalletRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.externalWallets().deleteExternalWallet(walletId); + source: "CompletableFuture> response = fireblocks.embeddedWallets().assignEmbeddedWallet(walletId,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.external_wallets.delete_external_wallet(wallet_id); + source: "response = fireblocks.embedded_wallets.assign_embedded_wallet(wallet_id,\ + \ idempotency_key);" x-accepts: - application/json + /ncw/wallets/{walletId}/backup/latest: get: - description: "Returns an external wallet by ID. External Wallet is a whitelisted\ - \ address of a wallet that belongs to your users/counterparties. Endpoint\ - \ Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer." - operationId: getExternalWallet + description: "Get wallet Latest Backup details, including the deviceId, and\ + \ backup time" + operationId: GetEmbeddedWalletLatestBackup parameters: - - description: The ID of the wallet to return + - description: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path name: walletId @@ -9364,52 +9840,49 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UnmanagedWallet" - description: A Wallet object + $ref: "#/components/schemas/EmbeddedWalletLatestBackupResponse" + description: Successful response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Find an external wallet + summary: Get wallet Latest Backup details tags: - - External wallets + - Embedded Wallets x-rate-limit-category: read x-readme: code-samples: - - language: python - code: externalWallet = fireblocks.get_external_wallet(walletId) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const externalWallet = await fireblocks.getExternalWallet(walletId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.externalWallets.getExternalWallet(externalWalletsApiGetExternalWalletRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletLatestBackup(embeddedWalletsApiGetEmbeddedWalletLatestBackupRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.externalWallets().getExternalWallet(walletId); + code: CompletableFuture> + response = fireblocks.embeddedWallets().getEmbeddedWalletLatestBackup(walletId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.external_wallets.get_external_wallet(wallet_id); + code: response = fireblocks.embedded_wallets.get_embedded_wallet_latest_backup(wallet_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.externalWallets.getExternalWallet(externalWalletsApiGetExternalWalletRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletLatestBackup(embeddedWalletsApiGetEmbeddedWalletLatestBackupRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.externalWallets().getExternalWallet(walletId); + source: CompletableFuture> + response = fireblocks.embeddedWallets().getEmbeddedWalletLatestBackup(walletId); - lang: Python - source: response = fireblocks.external_wallets.get_external_wallet(wallet_id); + source: response = fireblocks.embedded_wallets.get_embedded_wallet_latest_backup(wallet_id); x-accepts: - application/json - /external_wallets/{walletId}/set_customer_ref_id: - post: - description: "Sets an AML/KYT customer reference ID for the specific external\ - \ wallet. External Wallet is a whitelisted address of a wallet that belongs\ - \ to your users/counterparties. Endpoint Permission: Admin, Non-Signing Admin,\ - \ Signer, Approver, Editor." - operationId: setExternalWalletCustomerRefId + /ncw/wallets/{walletId}/devices_paginated: + get: + description: Get a paginated list of registered devices for a specific Non Custodial + Wallet + operationId: getEmbeddedWalletDevicesPaginated parameters: - - description: The wallet ID + - description: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path name: walletId @@ -9417,75 +9890,110 @@ paths: schema: 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\ - \ same response as the first request. The idempotency key is valid for 24\ - \ hours." - explode: false - in: header - name: Idempotency-Key + - description: Sort by fields + explode: true + in: query + name: sort + required: false + schema: + default: + - createdAt + items: + enum: + - createdAt + type: string + type: array + style: form + - description: Cursor to the next page + explode: true + in: query + name: pageCursor required: false schema: type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SetCustomerRefIdRequest" - required: true + style: form + - description: Amount of results to return in the next page + explode: true + in: query + name: pageSize + required: false + schema: + default: 200 + maximum: 400 + type: number + style: form + - description: Is the order ascending or descending + explode: true + in: query + name: order + required: false + schema: + default: ASC + enum: + - ASC + - DESC + type: string + style: form responses: - "201": - description: OK + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/EmbeddedWalletPaginatedDevicesResponse" + description: Successful response + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Query parameters were invalid headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Set an AML customer reference ID for an external wallet + summary: Get registered devices - paginated tags: - - External wallets - x-rate-limit-category: write + - Embedded Wallets + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: "result = firebocks.set_customer_ref_id_for_external_wallet(wallet_id,\ - \ customer_ref_id)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const result = await fireblocks.setCustomerRefIdForExternalWallet(walletId,\ - \ customerRefId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.externalWallets.setExternalWalletCustomerRefId(externalWalletsApiSetExternalWalletCustomerRefIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletDevicesPaginated(embeddedWalletsApiGetEmbeddedWalletDevicesPaginatedRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.externalWallets().setExternalWalletCustomerRefId(setCustomerRefIdRequest,\ - \ walletId, idempotencyKey);" + code: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWalletDevicesPaginated(walletId,\ + \ sort, pageCursor, pageSize, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.external_wallets.set_external_wallet_customer_ref_id(set_customer_ref_id_request,\ - \ wallet_id, idempotency_key);" + code: "response = fireblocks.embedded_wallets.get_embedded_wallet_devices_paginated(wallet_id,\ + \ sort, page_cursor, page_size, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.externalWallets.setExternalWalletCustomerRefId(externalWalletsApiSetExternalWalletCustomerRefIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletDevicesPaginated(embeddedWalletsApiGetEmbeddedWalletDevicesPaginatedRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.externalWallets().setExternalWalletCustomerRefId(setCustomerRefIdRequest,\ - \ walletId, idempotencyKey);" + source: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWalletDevicesPaginated(walletId,\ + \ sort, pageCursor, pageSize, order);" - lang: Python - source: "response = fireblocks.external_wallets.set_external_wallet_customer_ref_id(set_customer_ref_id_request,\ - \ wallet_id, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.embedded_wallets.get_embedded_wallet_devices_paginated(wallet_id,\ + \ sort, page_cursor, page_size, order);" x-accepts: - application/json - /external_wallets/{walletId}/{assetId}: - delete: - description: "Deletes an external wallet asset by ID. Endpoint Permission: Admin,\ - \ Non-Signing Admin, Signer, Approver, Editor." - operationId: removeAssetFromExternalWallet + /ncw/wallets/{walletId}/devices/{deviceId}: + get: + description: Get specific device for a specific s Wallet + operationId: GetEmbeddedWalletDevice parameters: - - description: The ID of the wallet + - description: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path name: walletId @@ -9493,66 +10001,65 @@ paths: schema: type: string style: simple - - description: The ID of the asset to delete + - description: Device Id + example: 9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3 explode: false in: path - name: assetId + name: deviceId required: true schema: type: string - x-fb-entity: asset style: simple responses: - "201": - description: OK + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/EmbeddedWalletDevice" + description: Successful response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Delete an asset from an external wallet + summary: Get Embedded Wallet Device tags: - - External wallets - x-rate-limit-category: write + - Embedded Wallets + x-rate-limit-category: read x-readme: code-samples: - - language: python - code: "result = fireblocks.delete_external_wallet_asset(walletId, assetId)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const result = await fireblocks.deleteExternalWalletAsset(walletId,\ - \ assetId);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.externalWallets.removeAssetFromExternalWallet(externalWalletsApiRemoveAssetFromExternalWalletRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletDevice(embeddedWalletsApiGetEmbeddedWalletDeviceRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.externalWallets().removeAssetFromExternalWallet(walletId,\ - \ assetId);" + code: "CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWalletDevice(walletId,\ + \ deviceId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.external_wallets.remove_asset_from_external_wallet(wallet_id,\ - \ asset_id);" + code: "response = fireblocks.embedded_wallets.get_embedded_wallet_device(wallet_id,\ + \ device_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.externalWallets.removeAssetFromExternalWallet(externalWalletsApiRemoveAssetFromExternalWalletRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletDevice(embeddedWalletsApiGetEmbeddedWalletDeviceRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.externalWallets().removeAssetFromExternalWallet(walletId,\ - \ assetId);" + source: "CompletableFuture> response = fireblocks.embeddedWallets().getEmbeddedWalletDevice(walletId,\ + \ deviceId);" - lang: Python - source: "response = fireblocks.external_wallets.remove_asset_from_external_wallet(wallet_id,\ - \ asset_id);" + source: "response = fireblocks.embedded_wallets.get_embedded_wallet_device(wallet_id,\ + \ device_id);" x-accepts: - application/json + /ncw/wallets/{walletId}/devices/{deviceId}/setup_status: get: - description: "Returns an external wallet by wallet ID and asset ID. External\ - \ Wallet is a whitelisted address of a wallet that belongs to your users/counterparties.\ - \ Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor,\ - \ Viewer." - operationId: getExternalWalletAsset + description: Get the state of the specific device setup key under a specific + Non Custodial Wallet + operationId: GetEmbeddedWalletDeviceSetupState parameters: - - description: The ID of the wallet + - description: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path name: walletId @@ -9560,95 +10067,91 @@ paths: schema: type: string style: simple - - description: The ID of the asset to return + - description: Device Id + example: 9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3 explode: false in: path - name: assetId + name: deviceId required: true schema: type: string - x-fb-entity: asset style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ExternalWalletAsset" - description: A Wallet Asset object + $ref: "#/components/schemas/EmbeddedWalletDeviceKeySetupResponse" + description: Successful response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get an asset from an external wallet + summary: Get device key setup state tags: - - External wallets + - Embedded Wallets x-rate-limit-category: read x-readme: code-samples: - - language: python - code: "externalWalletAsset = fireblocks.get_external_wallet_asset(walletId,\ - \ assetId)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const externalWalletAsset = fireblocks.getExternalWalletAsset(walletId,\ - \ assetId)" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.externalWallets.getExternalWalletAsset(externalWalletsApiGetExternalWalletAssetRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletDeviceSetupState(embeddedWalletsApiGetEmbeddedWalletDeviceSetupStateRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.externalWallets().getExternalWalletAsset(walletId,\ - \ assetId);" + code: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWalletDeviceSetupState(walletId,\ + \ deviceId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.external_wallets.get_external_wallet_asset(wallet_id,\ - \ asset_id);" + code: "response = fireblocks.embedded_wallets.get_embedded_wallet_device_setup_state(wallet_id,\ + \ device_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.externalWallets.getExternalWalletAsset(externalWalletsApiGetExternalWalletAssetRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletDeviceSetupState(embeddedWalletsApiGetEmbeddedWalletDeviceSetupStateRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.externalWallets().getExternalWalletAsset(walletId,\ - \ assetId);" + source: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWalletDeviceSetupState(walletId,\ + \ deviceId);" - lang: Python - source: "response = fireblocks.external_wallets.get_external_wallet_asset(wallet_id,\ - \ asset_id);" + source: "response = fireblocks.embedded_wallets.get_embedded_wallet_device_setup_state(wallet_id,\ + \ device_id);" x-accepts: - application/json - post: - description: "Adds an asset to an existing external wallet. Endpoint Permission:\ - \ Admin, Non-Signing Admin, Signer, Approver, Editor." - operationId: addAssetToExternalWallet + /ncw/wallets/{walletId}/devices/{deviceId}/status: + patch: + description: Update the enabled/disabled status of a specific device for a Non + Custodial Wallet + operationId: updateEmbeddedWalletDeviceStatus parameters: - - description: The ID of the wallet + - 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: path - name: walletId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple - - description: The ID of the asset to add + - description: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path - name: assetId + name: walletId 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." + - description: Device Id + example: 9ee1bff0-6dba-4f0c-9b75-03fe90e66fa3 explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: deviceId + required: true schema: type: string style: simple @@ -9656,400 +10159,681 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AddAssetToExternalWalletRequest" + $ref: "#/components/schemas/EnableDevice" + required: true responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ExternalWalletAsset" - description: A Wallet Asset object + "204": + description: No Content - Device status updated successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Add an asset to an external wallet. + summary: Update device status tags: - - External wallets + - Embedded Wallets x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "externalWalletAsset = fireblocks.create_external_wallet_asset(walletId,\ - \ assetId, address, tag)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const externalWalletAsset = await fireblocks.createExternalWalletAsset(walletContainerId,\ - \ assetId, address, tag);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.externalWallets.addAssetToExternalWallet(externalWalletsApiAddAssetToExternalWalletRequest);" + code: "const response: Promise> = fireblocks.embeddedWallets.updateEmbeddedWalletDeviceStatus(embeddedWalletsApiUpdateEmbeddedWalletDeviceStatusRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.externalWallets().addAssetToExternalWallet(walletId,\ - \ assetId, addAssetToExternalWalletRequest, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.embeddedWallets().updateEmbeddedWalletDeviceStatus(enableDevice,\ + \ walletId, deviceId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.external_wallets.add_asset_to_external_wallet(wallet_id,\ - \ asset_id, add_asset_to_external_wallet_request, idempotency_key);" + code: "response = fireblocks.embedded_wallets.update_embedded_wallet_device_status(enable_device,\ + \ wallet_id, device_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.externalWallets.addAssetToExternalWallet(externalWalletsApiAddAssetToExternalWalletRequest);" + source: "const response: Promise> = fireblocks.embeddedWallets.updateEmbeddedWalletDeviceStatus(embeddedWalletsApiUpdateEmbeddedWalletDeviceStatusRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.externalWallets().addAssetToExternalWallet(walletId,\ - \ assetId, addAssetToExternalWalletRequest, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.embeddedWallets().updateEmbeddedWalletDeviceStatus(enableDevice,\ + \ walletId, deviceId, idempotencyKey);" - lang: Python - source: "response = fireblocks.external_wallets.add_asset_to_external_wallet(wallet_id,\ - \ asset_id, add_asset_to_external_wallet_request, idempotency_key);" + source: "response = fireblocks.embedded_wallets.update_embedded_wallet_device_status(enable_device,\ + \ wallet_id, device_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /contracts: + /ncw/wallets/{walletId}/public_key_info: get: - description: "Gets a list of whitelisted contracts. Endpoint Permission: Admin,\ - \ Non-Signing Admin, Signer, Approver, Editor, Viewer." - operationId: getContracts + description: Gets the public key information based on derivation path and signing + algorithm within a Non-Custodial Wallet + operationId: getPublicKeyInfoNcw + parameters: + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: true + schema: + format: uuid + type: string + style: simple + - description: The ID of the Non-Custodial wallet + explode: false + in: path + name: walletId + required: true + schema: + example: 550e8400-e29b-41d4-a716-446655440000 + type: string + style: simple + - description: "An array of integers (passed as JSON stringified array) representing\ + \ the full BIP44 derivation path of the requested public key. \nThe first\ + \ element must always be 44.\n" + example: + - 44 + - 0 + - 0 + - 0 + - 0 + explode: true + in: query + name: derivationPath + required: true + schema: + type: string + style: form + - description: Elliptic Curve + explode: true + in: query + name: algorithm + required: true + schema: + enum: + - MPC_ECDSA_SECP256K1 + - MPC_EDDSA_ED25519 + example: MPC_EDDSA_ED25519 + type: string + style: form + - description: Compressed/Uncompressed public key format + explode: true + in: query + name: compressed + required: false + schema: + example: true + type: boolean + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetContractsResponse" - description: A list of contracts + $ref: "#/components/schemas/PublicKeyInformation" + description: Public key information headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List Whitelisted Contracts + summary: Get the public key for a derivation path tags: - - Contracts - x-rate-limit-category: query + - Embedded Wallets + x-rate-limit-category: read x-readme: code-samples: + - language: javascript + code: "const publicKeyInfoArgs = { \n algorithm: 'MPC_ECDSA_SECP256K1',\n\ + \ derivationPath: [44, 0, 0, 0, 0],\n compressed: true\n};\nconst pubKey\ + \ = await fireblocks.NCW.getPublicKeyInfo(walletId, publicKeyInfoArgs);\n" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contracts.getContracts();" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getPublicKeyInfoNcw(embeddedWalletsApiGetPublicKeyInfoNcwRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = fireblocks.contracts().getContracts(); + code: "CompletableFuture> response = fireblocks.embeddedWallets().getPublicKeyInfoNcw(walletId,\ + \ derivationPath, algorithm, xEndUserWalletId, compressed);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.contracts.get_contracts(); + code: "response = fireblocks.embedded_wallets.get_public_key_info_ncw(wallet_id,\ + \ derivation_path, algorithm, x_end_user_wallet_id, compressed);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contracts.getContracts();" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getPublicKeyInfoNcw(embeddedWalletsApiGetPublicKeyInfoNcwRequest);" - lang: Java - source: CompletableFuture>> response = fireblocks.contracts().getContracts(); + source: "CompletableFuture> response = fireblocks.embeddedWallets().getPublicKeyInfoNcw(walletId,\ + \ derivationPath, algorithm, xEndUserWalletId, compressed);" - lang: Python - source: response = fireblocks.contracts.get_contracts(); + source: "response = fireblocks.embedded_wallets.get_public_key_info_ncw(wallet_id,\ + \ derivation_path, algorithm, x_end_user_wallet_id, compressed);" x-accepts: - application/json - post: - description: "Adds a contract to the workspace whitelist. Endpoint Permission:\ - \ Admin, Non-Signing Admin, Signer, Approver, Editor." - operationId: createContract + /ncw/wallets/{walletId}/setup_status: + get: + description: "Get the key setup state for a specific Non Custodial Wallet, including\ + \ required algorithms and device setup status" + operationId: getEmbeddedWalletSetupStatus 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." + - description: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: walletId + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateContractRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/UnmanagedWallet" - description: A Wallet object + $ref: "#/components/schemas/EmbeddedWalletSetupStatusResponse" + description: Successful response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Add a contract + summary: Get wallet key setup state tags: - - Contracts - x-rate-limit-category: write + - Embedded Wallets + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.contracts.createContract(contractsApiCreateContractRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletSetupStatus(embeddedWalletsApiGetEmbeddedWalletSetupStatusRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.contracts().createContract(createContractRequest,\ - \ idempotencyKey);" + code: CompletableFuture> + response = fireblocks.embeddedWallets().getEmbeddedWalletSetupStatus(walletId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contracts.create_contract(create_contract_request,\ - \ idempotency_key);" + code: response = fireblocks.embedded_wallets.get_embedded_wallet_setup_status(wallet_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.contracts.createContract(contractsApiCreateContractRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletSetupStatus(embeddedWalletsApiGetEmbeddedWalletSetupStatusRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.contracts().createContract(createContractRequest,\ - \ idempotencyKey);" + source: CompletableFuture> + response = fireblocks.embeddedWallets().getEmbeddedWalletSetupStatus(walletId); - lang: Python - source: "response = fireblocks.contracts.create_contract(create_contract_request,\ - \ idempotency_key);" - x-content-type: application/json + source: response = fireblocks.embedded_wallets.get_embedded_wallet_setup_status(wallet_id); x-accepts: - application/json - /contracts/{contractId}: - delete: - description: "Deletes a contract by ID. Endpoint Permission: Admin, Non-Signing\ - \ Admin, Signer, Approver, Editor." - operationId: deleteContract + /ncw/wallets/{walletId}/status: + patch: + description: Update the enabled/disabled status of a specific Non Custodial + Wallet + operationId: updateEmbeddedWalletStatus parameters: - - description: The ID of the contract to delete + - 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: Wallet Id + example: 550e8400-e29b-41d4-a716-446655440000 explode: false in: path - name: contractId + name: walletId required: true schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/EnableWallet" + required: true responses: - "201": - description: OK + "204": + description: No Content - Wallet status updated successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Delete a contract + summary: Update wallet status tags: - - Contracts + - Embedded Wallets x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.contracts.deleteContract(contractsApiDeleteContractRequest);" + code: "const response: Promise> = fireblocks.embeddedWallets.updateEmbeddedWalletStatus(embeddedWalletsApiUpdateEmbeddedWalletStatusRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.contracts().deleteContract(contractId); + code: "CompletableFuture> response = fireblocks.embeddedWallets().updateEmbeddedWalletStatus(enableWallet,\ + \ walletId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.contracts.delete_contract(contract_id); + code: "response = fireblocks.embedded_wallets.update_embedded_wallet_status(enable_wallet,\ + \ wallet_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.contracts.deleteContract(contractsApiDeleteContractRequest);" + source: "const response: Promise> = fireblocks.embeddedWallets.updateEmbeddedWalletStatus(embeddedWalletsApiUpdateEmbeddedWalletStatusRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.contracts().deleteContract(contractId); + source: "CompletableFuture> response = fireblocks.embeddedWallets().updateEmbeddedWalletStatus(enableWallet,\ + \ walletId, idempotencyKey);" - lang: Python - source: response = fireblocks.contracts.delete_contract(contract_id); + source: "response = fireblocks.embedded_wallets.update_embedded_wallet_status(enable_wallet,\ + \ wallet_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json + /ncw/wallets/supported_assets: get: - description: "Returns a whitelisted contract by Fireblocks Contract ID. Endpoint\ - \ Permission: Admin, Non-Signing Admin, Signer, Approver, Editor." - operationId: getContract + description: Get all the available supported assets for the Non-Custodial Wallet + operationId: GetEmbeddedWalletSupportedAssets parameters: - - description: The ID of the contract to return - explode: false - in: path - name: contractId - required: true + - description: Next page cursor to fetch + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + explode: true + in: query + name: pageCursor + required: false schema: type: string - style: simple + style: form + - description: Items per page + example: 500 + explode: true + in: query + name: pageSize + required: false + schema: + default: 200 + maximum: 400 + type: number + style: form + - description: Only base assets + example: true + explode: true + in: query + name: onlyBaseAssets + required: false + schema: + type: boolean + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/UnmanagedWallet" - description: A Wallet object + $ref: "#/components/schemas/EmbeddedWalletPaginatedAssetsResponse" + description: Successful response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Find a Specific Whitelisted Contract + summary: Retrieve supported assets tags: - - Contracts - x-rate-limit-category: read + - Embedded Wallets + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.contracts.getContract(contractsApiGetContractRequest);" + code: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletSupportedAssets(embeddedWalletsApiGetEmbeddedWalletSupportedAssetsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.contracts().getContract(contractId); + code: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWalletSupportedAssets(pageCursor,\ + \ pageSize, onlyBaseAssets);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.contracts.get_contract(contract_id); + code: "response = fireblocks.embedded_wallets.get_embedded_wallet_supported_assets(page_cursor,\ + \ page_size, only_base_assets);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.contracts.getContract(contractsApiGetContractRequest);" + source: "const response: Promise>\ + \ = fireblocks.embeddedWallets.getEmbeddedWalletSupportedAssets(embeddedWalletsApiGetEmbeddedWalletSupportedAssetsRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.contracts().getContract(contractId); + source: "CompletableFuture>\ + \ response = fireblocks.embeddedWallets().getEmbeddedWalletSupportedAssets(pageCursor,\ + \ pageSize, onlyBaseAssets);" - lang: Python - source: response = fireblocks.contracts.get_contract(contract_id); + source: "response = fireblocks.embedded_wallets.get_embedded_wallet_supported_assets(page_cursor,\ + \ page_size, only_base_assets);" x-accepts: - application/json - /contracts/{contractId}/{assetId}: - delete: - description: "Deletes a whitelisted contract asset by ID. Endpoint Permission:\ - \ Admin, Non-Signing Admin, Signer, Approver, Editor." - operationId: deleteContractAsset + /exchange_accounts: + get: + deprecated: true + description: |- + DEPRECATED - Please use the `/exchange_accounts/paged` endpoint. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: getExchangeAccounts + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetExchangeAccountsResponse" + description: An ExchangeAccount object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: List exchange accounts + tags: + - Exchange accounts + x-internal: true + x-rate-limit-category: high_compute + x-readme: + code-samples: + - language: python + code: exchangeAccounts = fireblocks.get_exchange_accounts() + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const exchangeAccounts = await fireblocks.getExchangeAccounts(); + name: Fireblocks SDK Javascript example + x-accepts: + - application/json + post: + description: "Add an exchange account to exchanges. \n\nNote: This endpoint\ + \ currently only supports the following exchanges `INDEPENDENT_RESERVE`,`BIT`,\ + \ `BITHUMB`, `BITSO`, `CRYPTOCOM`, `BYBIT_V2`, `WHITEBIT`, `HITBTC`, `GEMINI`,\ + \ `HUOBI`, `GATEIO`, `COINHAKO`, `BULLISH`, `BITGET`, and `LUNO`\n\nTo add\ + \ an exchange account, please use the following [guide](https://developers.fireblocks.com/docs/add-an-exchange-account).\n" + operationId: addExchangeAccount parameters: - - description: The ID of the contract + - 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: path - name: contractId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple - - description: The ID of the asset to delete - explode: false - in: path - name: assetId + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AddExchangeAccountRequest" required: true - schema: - type: string - x-fb-entity: asset - style: simple responses: "201": - description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/AddExchangeAccountResponse" + description: An Exchange Account identifier object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Delete an asset from a whitelisted contract + summary: Add an exchange account tags: - - Contracts + - Exchange accounts x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.contracts.deleteContractAsset(contractsApiDeleteContractAssetRequest);" + code: "const response: Promise>\ + \ = fireblocks.exchangeAccounts.addExchangeAccount(exchangeAccountsApiAddExchangeAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.contracts().deleteContractAsset(contractId,\ - \ assetId);" + code: "CompletableFuture> response\ + \ = fireblocks.exchangeAccounts().addExchangeAccount(addExchangeAccountRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contracts.delete_contract_asset(contract_id,\ - \ asset_id);" + code: "response = fireblocks.exchange_accounts.add_exchange_account(add_exchange_account_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.contracts.deleteContractAsset(contractsApiDeleteContractAssetRequest);" + source: "const response: Promise>\ + \ = fireblocks.exchangeAccounts.addExchangeAccount(exchangeAccountsApiAddExchangeAccountRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.contracts().deleteContractAsset(contractId,\ - \ assetId);" + source: "CompletableFuture> response\ + \ = fireblocks.exchangeAccounts().addExchangeAccount(addExchangeAccountRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.contracts.delete_contract_asset(contract_id,\ - \ asset_id);" + source: "response = fireblocks.exchange_accounts.add_exchange_account(add_exchange_account_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json + /exchange_accounts/{exchangeAccountId}: get: - description: "Returns a whitelisted contract's asset by ID. Endpoint Permission:\ - \ Admin, Non-Signing Admin, Signer, Approver, Editor." - operationId: getContractAsset + description: |- + Returns an exchange account by ID. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: getExchangeAccount parameters: - - description: The ID of the contract + - description: The ID of the exchange account to return explode: false in: path - name: contractId + name: exchangeAccountId required: true schema: type: string style: simple - - description: The ID of the asset to return - explode: false - in: path + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ExchangeAccount" + description: An ExchangeAccount object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get a specific exchange account + tags: + - Exchange accounts + x-rate-limit-category: external_query + x-readme: + code-samples: + - language: python + code: exchangeAccount = fireblocks.get_exchange_account(exchangeAccountId) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const exchnageAccount = await fireblocks.get_exchange_account(exchangeAccountId); + name: Fireblocks SDK Javascript example + - language: typescript + code: "const response: Promise> = fireblocks.exchangeAccounts.getExchangeAccount(exchangeAccountsApiGetExchangeAccountRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.exchangeAccounts().getExchangeAccount(exchangeAccountId); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.exchange_accounts.get_exchange_account(exchange_account_id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.exchangeAccounts.getExchangeAccount(exchangeAccountsApiGetExchangeAccountRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.exchangeAccounts().getExchangeAccount(exchangeAccountId); + - lang: Python + source: response = fireblocks.exchange_accounts.get_exchange_account(exchange_account_id); + x-accepts: + - application/json + /exchange_accounts/{exchangeAccountId}/{assetId}: + get: + description: |- + Returns an asset for an exchange account. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: getExchangeAccountAsset + parameters: + - description: The ID of the exchange account to return + explode: false + in: path + name: exchangeAccountId + required: true + schema: + type: string + style: simple + - description: The ID of the asset to return + explode: false + in: path name: assetId required: true schema: type: string - x-fb-entity: asset style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ExternalWalletAsset" - description: A Wallet Asset object + $ref: "#/components/schemas/ExchangeAsset" + description: An ExchangeAccountAsset object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Find a whitelisted contract's asset + summary: Get an asset for an exchange account tags: - - Contracts - x-rate-limit-category: read + - Exchange accounts + x-rate-limit-category: external_query x-readme: code-samples: + - language: python + code: "exchangeAsset = fireblocks.get_exchange_account_asset(exchangeAccountId,\ + \ assetId)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const exchangeAsset = await fireblocks.getExchangeAsset(exchangeAccountId,\ + \ assetId);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contracts.getContractAsset(contractsApiGetContractAssetRequest);" + code: "const response: Promise> = fireblocks.exchangeAccounts.getExchangeAccountAsset(exchangeAccountsApiGetExchangeAccountAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.contracts().getContractAsset(contractId,\ + code: "CompletableFuture> response = fireblocks.exchangeAccounts().getExchangeAccountAsset(exchangeAccountId,\ \ assetId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contracts.get_contract_asset(contract_id, asset_id);" + code: "response = fireblocks.exchange_accounts.get_exchange_account_asset(exchange_account_id,\ + \ asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contracts.getContractAsset(contractsApiGetContractAssetRequest);" + source: "const response: Promise> = fireblocks.exchangeAccounts.getExchangeAccountAsset(exchangeAccountsApiGetExchangeAccountAssetRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.contracts().getContractAsset(contractId,\ + source: "CompletableFuture> response = fireblocks.exchangeAccounts().getExchangeAccountAsset(exchangeAccountId,\ \ assetId);" - lang: Python - source: "response = fireblocks.contracts.get_contract_asset(contract_id, asset_id);" + source: "response = fireblocks.exchange_accounts.get_exchange_account_asset(exchange_account_id,\ + \ asset_id);" x-accepts: - application/json + /exchange_accounts/{exchangeAccountId}/convert: post: - description: "Adds an asset to a whitelisted contract. Endpoint Permission:\ - \ Admin, Non-Signing Admin, Signer, Approver, Editor." - operationId: addContractAsset + description: |- + Convert exchange account funds from the source asset to the destination asset. Coinbase (USD to USDC, USDC to USD) and Bitso (MXN to USD) are supported conversions. + Learn more about Fireblocks Exchange Connectivity in the following [guide](https://developers.fireblocks.com/docs/connect-to-exchanges-and-fiat-providers). + Endpoint Permission: Admin, Non-Signing Admin. + operationId: convertAssets parameters: - - description: The ID of the contract + - description: "The ID of the exchange account. Please make sure the exchange\ + \ supports conversions. To find the ID of your exchange account, use GET/exchange_accounts." explode: false in: path - name: contractId + name: exchangeAccountId required: true schema: type: string style: simple - - description: The ID of the asset to add + - 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/ConvertAssetsRequest" + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ConvertAssetsResponse" + description: Conversion successful + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Convert exchange account funds + tags: + - Exchange accounts + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.exchangeAccounts.convertAssets(exchangeAccountsApiConvertAssetsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response =\ + \ fireblocks.exchangeAccounts().convertAssets(exchangeAccountId, convertAssetsRequest,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.exchange_accounts.convert_assets(exchange_account_id,\ + \ convert_assets_request, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.exchangeAccounts.convertAssets(exchangeAccountsApiConvertAssetsRequest);" + - lang: Java + source: "CompletableFuture> response =\ + \ fireblocks.exchangeAccounts().convertAssets(exchangeAccountId, convertAssetsRequest,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.exchange_accounts.convert_assets(exchange_account_id,\ + \ convert_assets_request, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /exchange_accounts/{exchangeAccountId}/internal_transfer: + post: + description: |- + Transfers funds between trading accounts under the same exchange account. + Learn more about Fireblocks Exchange Connectivity in the following [guide](https://developers.fireblocks.com/docs/connect-to-exchanges-and-fiat-providers). + Endpoint Permission: Admin, Non-Signing Admin. + operationId: internalTransfer + parameters: + - description: The ID of the exchange account to return explode: false in: path - name: assetId + name: exchangeAccountId 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\ @@ -10066,267 +10850,242 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AddContractAssetRequest" + $ref: "#/components/schemas/CreateInternalTransferRequest" responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/ExternalWalletAsset" - description: A Wallet Asset object + $ref: "#/components/schemas/InternalTransferResponse" + description: Transfer succeeded headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Add an asset to a whitelisted contract + summary: Internal transfer for exchange accounts tags: - - Contracts - x-rate-limit-category: write + - Exchange accounts + x-rate-limit-category: high_compute x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contracts.addContractAsset(contractsApiAddContractAssetRequest);" + code: "const response: Promise>\ + \ = fireblocks.exchangeAccounts.internalTransfer(exchangeAccountsApiInternalTransferRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.contracts().addContractAsset(contractId,\ - \ assetId, addContractAssetRequest, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.exchangeAccounts().internalTransfer(exchangeAccountId,\ + \ createInternalTransferRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contracts.add_contract_asset(contract_id, asset_id,\ - \ add_contract_asset_request, idempotency_key);" + code: "response = fireblocks.exchange_accounts.internal_transfer(exchange_account_id,\ + \ create_internal_transfer_request, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contracts.addContractAsset(contractsApiAddContractAssetRequest);" + source: "const response: Promise>\ + \ = fireblocks.exchangeAccounts.internalTransfer(exchangeAccountsApiInternalTransferRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.contracts().addContractAsset(contractId,\ - \ assetId, addContractAssetRequest, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.exchangeAccounts().internalTransfer(exchangeAccountId, createInternalTransferRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.contracts.add_contract_asset(contract_id, asset_id,\ - \ add_contract_asset_request, idempotency_key);" + source: "response = fireblocks.exchange_accounts.internal_transfer(exchange_account_id,\ + \ create_internal_transfer_request, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /supported_assets: + /exchange_accounts/credentials_public_key: get: - description: | - **This legacy endpoint has not been deprecated but it should not be used in your operations. Instead, use the new [List assets](https://developers.fireblocks.com/reference/listassets) endpoint for better performance and to retrieve more detailed asset information.** - - Retrieves all assets supported by Fireblocks in your workspace. - - **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: getSupportedAssets + description: Return public key + operationId: getExchangeAccountsCredentialsPublicKey responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetSupportedAssetsResponse" - description: A Transaction object + $ref: "#/components/schemas/GetExchangeAccountsCredentialsPublicKeyResponse" + description: public key as string headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List assets (Legacy) + summary: Get public key to encrypt exchange credentials tags: - - Blockchains & assets - x-rate-limit-category: external_query + - Exchange accounts + x-rate-limit-category: read x-readme: code-samples: - - language: python - code: supportedAssets = fireblocks.get_supported_assets() - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const supportedAssets = await fireblocks.getSupportedAssets(); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.blockchainsAssets.getSupportedAssets();" + code: "const response: Promise>\ + \ = fireblocks.exchangeAccounts.getExchangeAccountsCredentialsPublicKey();" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = - fireblocks.blockchainsAssets().getSupportedAssets(); + code: CompletableFuture> + response = fireblocks.exchangeAccounts().getExchangeAccountsCredentialsPublicKey(); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.blockchains_&_assets.get_supported_assets(); + code: response = fireblocks.exchange_accounts.get_exchange_accounts_credentials_public_key(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.blockchainsAssets.getSupportedAssets();" + source: "const response: Promise>\ + \ = fireblocks.exchangeAccounts.getExchangeAccountsCredentialsPublicKey();" - lang: Java - source: CompletableFuture>> response = - fireblocks.blockchainsAssets().getSupportedAssets(); + source: CompletableFuture> + response = fireblocks.exchangeAccounts().getExchangeAccountsCredentialsPublicKey(); - lang: Python - source: response = fireblocks.blockchains_&_assets.get_supported_assets(); + source: response = fireblocks.exchange_accounts.get_exchange_accounts_credentials_public_key(); x-accepts: - application/json - /assets: + /exchange_accounts/paged: get: - description: | - Retrieves a paginated list of all assets supported by Fireblocks in your workspace - - **Note:** We will continue to support and display the legacy ID (API ID). Since not all Fireblocks services fully support the new Assets UUID, please use only the legacy ID until further notice. - operationId: listAssets + description: "Returns a list of the connected exchange accounts in your workspace.\ + \ Endpoint Permission: Admin, Non-Signing Admin." + operationId: getPagedExchangeAccounts parameters: - - description: Blockchain id of the assets - example: 0f672204-a28b-464a-b318-a387abd3d3c7 - explode: true - in: query - name: blockchainId - required: false - schema: - type: string - style: form - - description: Assets class - explode: true - in: query - name: assetClass - required: false - schema: - $ref: "#/components/schemas/AssetClass" - style: form - - description: Assets onchain symbol - example: ETH - explode: true + - explode: true in: query - name: symbol + name: before required: false schema: - minLength: 1 type: string style: form - - description: Scope of the assets - explode: true - in: query - name: scope - required: false - schema: - $ref: "#/components/schemas/AssetScope" - style: form - - description: Are assets deprecated - example: false - explode: true - in: query - name: deprecated - required: false - schema: - type: boolean - style: form - - description: A list of asset IDs (max 100) - example: - - 3ed32525-70df-45c8-bae3-e69ab56dc095 - - 3a3b5f06-61e7-44f0-9962-4425b55795ff - - SHANI5_B75VRLGX_MUPA - explode: true - in: query - name: ids - required: false - schema: - items: - type: string - type: array - style: form - - description: Next page cursor to fetch - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true + - explode: true in: query - name: pageCursor + name: after required: false schema: type: string style: form - - description: Items per page - example: 500 + - description: number of exchanges per page explode: true in: query - name: pageSize - required: false + name: limit + required: true schema: - default: 500 - maximum: 1000 - minimum: 100 + default: 3 + maximum: 5 + minimum: 1 type: number style: form - - 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/ListAssetsResponse" - description: List of assets - "500": + $ref: "#/components/schemas/GetPagedExchangeAccountsResponse" + description: An ExchangeAccount object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: List connected exchange accounts + tags: + - Exchange accounts + x-rate-limit-category: query + x-readme: + code-samples: + - language: javascript + code: const exchangeAccounts = await fireblocks.getExchangeAccountsPaged(); + name: Fireblocks SDK Javascript example + - language: python + code: exchangeAccounts = fireblocks.get_exchange_accounts_paged() + name: Fireblocks SDK Python example (Legacy) + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.exchangeAccounts.getPagedExchangeAccounts(exchangeAccountsApiGetPagedExchangeAccountsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.exchangeAccounts().getPagedExchangeAccounts(limit,\ + \ before, after);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.exchange_accounts.get_paged_exchange_accounts(limit,\ + \ before, after);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.exchangeAccounts.getPagedExchangeAccounts(exchangeAccountsApiGetPagedExchangeAccountsRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.exchangeAccounts().getPagedExchangeAccounts(limit,\ + \ before, after);" + - lang: Python + source: "response = fireblocks.exchange_accounts.get_paged_exchange_accounts(limit,\ + \ before, after);" + x-accepts: + - application/json + /external_wallets: + get: + description: |- + Gets a list of external wallets under the workspace. + + External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties. + + - You cannot see the balance of the external wallet. + - You cannot initiate transactions from an external wallet as the source via Fireblocks. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getExternalWallets + responses: + "200": content: application/json: schema: - $ref: "#/components/schemas/AssetInternalServerErrorResponse" - description: Error occurred while listing assets + $ref: "#/components/schemas/GetExternalWalletsResponse" + description: A list of external wallets + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List assets + summary: List external wallets tags: - - Blockchains & assets + - External wallets x-rate-limit-category: external_query x-readme: code-samples: - language: python - code: assets = fireblocks.listAssets(filters) + code: externalWallets = fireblocks.get_external_wallets() name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const assets = await fireblocks.listAssets(filters); + code: const externalWallets = await fireblocks.getExternalWallets(); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.blockchainsAssets.listAssets(blockchainsAssetsApiListAssetsRequest);" + code: "const response: Promise>\ + \ = fireblocks.externalWallets.getExternalWallets();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.blockchainsAssets().listAssets(blockchainId,\ - \ assetClass, symbol, scope, deprecated, ids, pageCursor, pageSize, idempotencyKey);" + code: CompletableFuture>> response = fireblocks.externalWallets().getExternalWallets(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.blockchains_&_assets.list_assets(blockchain_id,\ - \ asset_class, symbol, scope, deprecated, ids, page_cursor, page_size,\ - \ idempotency_key);" + code: response = fireblocks.external_wallets.get_external_wallets(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.blockchainsAssets.listAssets(blockchainsAssetsApiListAssetsRequest);" + source: "const response: Promise>\ + \ = fireblocks.externalWallets.getExternalWallets();" - lang: Java - source: "CompletableFuture> response = fireblocks.blockchainsAssets().listAssets(blockchainId,\ - \ assetClass, symbol, scope, deprecated, ids, pageCursor, pageSize, idempotencyKey);" + source: CompletableFuture>> response = fireblocks.externalWallets().getExternalWallets(); - lang: Python - source: "response = fireblocks.blockchains_&_assets.list_assets(blockchain_id,\ - \ asset_class, symbol, scope, deprecated, ids, page_cursor, page_size, idempotency_key);" + source: response = fireblocks.external_wallets.get_external_wallets(); x-accepts: - application/json post: - description: | - Register a new asset to a workspace and return the newly created asset's details. Currently supported chains are: - - EVM based chains - - Stellar - - Algorand - - TRON - - NEAR - - Solana - - Sui - - TON - operationId: registerNewAsset + description: |- + Creates a new external wallet with the requested name. + + External Wallet is a whitelisted address of a wallet that belongs to your users/counterparties. + + - You cannot see the balance of the external wallet. + - You cannot initiate transactions from an external wallet as the source via Fireblocks. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: createExternalWallet 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\ @@ -10343,828 +11102,407 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/RegisterNewAssetRequest" + $ref: "#/components/schemas/CreateWalletRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/AssetResponse" - description: A new asset has been created successfully - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetBadRequestErrorResponse" - description: | - - Listing an asset on the requested blockchain is not supported. Error code: 1000 - - - The asset address is invalid. Error code: 1003 - - - Self serve listing an asset on the requested blockchain is currently not supported, please contact support. Error code: 1004 - - - Blockchain is deprecated. Error code: 1006 - - - The asset's standard is not supported. Error code: 1007 - - - Unable to get expected metadata: decimals | name | symbol. Error code: 1010 - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetForbiddenErrorResponse" - description: | - - The asset creation quota reached. Error code: 1005 - - - Tenant is not allowed to create testnet assets. Error code: 1008 - - - Tenant is not allowed to create mainnet assets. Error code: 1009 - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/TokenInfoNotFoundErrorResponse" - description: | - - Invalid address, could not get asset information. Error code 1003 - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetConflictErrorResponse" - description: | - - The asset is already supported globally. Error code: 1001 - - - The asset has already been added to this workspace. Error code: 1002 - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetInternalServerErrorResponse" - description: Failed to create asset + $ref: "#/components/schemas/UnmanagedWallet" + description: A Wallet object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Register an asset + summary: Create an external wallet tags: - - Blockchains & assets - x-rate-limit-category: high_compute + - External wallets + x-rate-limit-category: write x-readme: code-samples: - language: python - code: "supportedAssets = fireblocks.register_new_asset(blockchainId, address,\ - \ symbol)" + code: "externalWallet = fireblocks.create_external_wallet(name, customer_ref_id)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const supportedAssets = await fireblocks.registerNewAsset(blockchainId,\ - \ address, symbol);" + code: "const externalWallet = await fireblocks.createExternalWallet(name,\ + \ customerRefId);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.blockchainsAssets.registerNewAsset(blockchainsAssetsApiRegisterNewAssetRequest);" + code: "const response: Promise> = fireblocks.externalWallets.createExternalWallet(externalWalletsApiCreateExternalWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.blockchainsAssets().registerNewAsset(registerNewAssetRequest,\ + code: "CompletableFuture> response = fireblocks.externalWallets().createExternalWallet(createWalletRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.blockchains_&_assets.register_new_asset(register_new_asset_request,\ + code: "response = fireblocks.external_wallets.create_external_wallet(create_wallet_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.blockchainsAssets.registerNewAsset(blockchainsAssetsApiRegisterNewAssetRequest);" + source: "const response: Promise> = fireblocks.externalWallets.createExternalWallet(externalWalletsApiCreateExternalWalletRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.blockchainsAssets().registerNewAsset(registerNewAssetRequest,\ + source: "CompletableFuture> response = fireblocks.externalWallets().createExternalWallet(createWalletRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.blockchains_&_assets.register_new_asset(register_new_asset_request,\ + source: "response = fireblocks.external_wallets.create_external_wallet(create_wallet_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /assets/{id}: - get: - description: | - Returns an asset by ID or legacyID. - - **Note**: - - - We will continue displaying and supporting the legacy ID (API ID). Since not all Fireblocks services fully support the new Assets UUID, please use only the legacy ID until further notice. - operationId: getAsset + /external_wallets/{walletId}: + delete: + description: "Deletes an external wallet by ID. External Wallet is a whitelisted\ + \ address of a wallet that belongs to your users/counterparties. Endpoint\ + \ Permission: Admin, Non-Signing Admin, Signer, Approver, Editor." + operationId: deleteExternalWallet parameters: - - description: The ID or legacyId of the asset - example: ETH + - description: The ID of the wallet to delete explode: false in: path - name: id + name: walletId 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 responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/Asset" - description: Asset with requested identification + "201": + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetNotFoundErrorResponse" - description: | - - Asset with specified ID or legacy ID is not found. Error code 1504 - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetInternalServerErrorResponse" - description: Error occurred while getting an asset default: $ref: "#/components/responses/Error" - summary: Get an asset + summary: Delete an external wallet tags: - - Blockchains & assets - x-rate-limit-category: external_query + - External wallets + x-rate-limit-category: write x-readme: code-samples: - language: python - code: asset = fireblocks.getAssetById(assetId) + code: result = firebocks.delete_external_wallet(walletId) name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const asset = await fireblocks.getAssetById(assetId); + code: const result = await fireblocks.deleteExternalWallet(walletId); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.blockchainsAssets.getAsset(blockchainsAssetsApiGetAssetRequest);" + code: "const response: Promise> = fireblocks.externalWallets.deleteExternalWallet(externalWalletsApiDeleteExternalWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.blockchainsAssets().getAsset(id,\ - \ idempotencyKey);" + code: CompletableFuture> response = fireblocks.externalWallets().deleteExternalWallet(walletId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.blockchains_&_assets.get_asset(id, idempotency_key);" + code: response = fireblocks.external_wallets.delete_external_wallet(wallet_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.blockchainsAssets.getAsset(blockchainsAssetsApiGetAssetRequest);" + source: "const response: Promise> = fireblocks.externalWallets.deleteExternalWallet(externalWalletsApiDeleteExternalWalletRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.blockchainsAssets().getAsset(id,\ - \ idempotencyKey);" + source: CompletableFuture> response = fireblocks.externalWallets().deleteExternalWallet(walletId); - lang: Python - source: "response = fireblocks.blockchains_&_assets.get_asset(id, idempotency_key);" + source: response = fireblocks.external_wallets.delete_external_wallet(wallet_id); x-accepts: - application/json - patch: - description: |- - Update the user’s metadata for an asset. - - Endpoint Permission: Owner, Admin, Non-Signing Admin, NCW Admin, Signer, Editor. - operationId: updateAssetUserMetadata + get: + description: "Returns an external wallet by ID. External Wallet is a whitelisted\ + \ address of a wallet that belongs to your users/counterparties. Endpoint\ + \ Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer." + operationId: getExternalWallet parameters: - - description: The ID or legacyId of the asset - example: ETH + - description: The ID of the wallet to return explode: false in: path - name: id + name: walletId 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/UpdateAssetUserMetadataRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/Asset" - description: Updated asset user metadata + $ref: "#/components/schemas/UnmanagedWallet" + description: A Wallet object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetNotFoundErrorResponse" - description: | - - Asset with specified ID or legacy ID is not found. Error code 1504 - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetInternalServerErrorResponse" - description: Error occurred while updating asset user metadata default: $ref: "#/components/responses/Error" - summary: Update the user’s metadata for an asset + summary: Find an external wallet tags: - - Blockchains & assets - x-rate-limit-category: write + - External wallets + x-rate-limit-category: read x-readme: code-samples: - language: python - code: "asset = fireblocks.update_asset_user_metadata(asset_id, update_asset_user_metadata_request)" + code: externalWallet = fireblocks.get_external_wallet(walletId) name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const asset = await fireblocks.updateAssetUserMetadata(assetId, updateAssetUserMetadataRequest);" + code: const externalWallet = await fireblocks.getExternalWallet(walletId); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.blockchainsAssets.updateAssetUserMetadata(blockchainsAssetsApiUpdateAssetUserMetadataRequest);" + code: "const response: Promise> = fireblocks.externalWallets.getExternalWallet(externalWalletsApiGetExternalWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.blockchainsAssets().updateAssetUserMetadata(id,\ - \ updateAssetUserMetadataRequest, idempotencyKey);" + code: CompletableFuture> response = fireblocks.externalWallets().getExternalWallet(walletId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.blockchains_&_assets.update_asset_user_metadata(id,\ - \ update_asset_user_metadata_request, idempotency_key);" + code: response = fireblocks.external_wallets.get_external_wallet(wallet_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.blockchainsAssets.updateAssetUserMetadata(blockchainsAssetsApiUpdateAssetUserMetadataRequest);" + source: "const response: Promise> = fireblocks.externalWallets.getExternalWallet(externalWalletsApiGetExternalWalletRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.blockchainsAssets().updateAssetUserMetadata(id,\ - \ updateAssetUserMetadataRequest, idempotencyKey);" + source: CompletableFuture> response = fireblocks.externalWallets().getExternalWallet(walletId); - lang: Python - source: "response = fireblocks.blockchains_&_assets.update_asset_user_metadata(id,\ - \ update_asset_user_metadata_request, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.external_wallets.get_external_wallet(wallet_id); x-accepts: - application/json - /assets/prices/{id}: - post: - description: | - Set asset price for the given asset id. Returns the asset price response. - operationId: setAssetPrice + /external_wallets/{walletId}/{assetId}: + delete: + description: "Deletes an external wallet asset by ID. Endpoint Permission: Admin,\ + \ Non-Signing Admin, Signer, Approver, Editor." + operationId: removeAssetFromExternalWallet parameters: - - description: The ID of the asset - example: ETH + - description: The ID of the wallet explode: false in: path - name: id + name: walletId required: true schema: 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\ - \ same response as the first request. The idempotency key is valid for 24\ - \ hours." + - description: The ID of the asset to delete explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: assetId + required: true schema: type: string + x-fb-entity: asset style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SetAssetPriceRequest" responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetPriceResponse" - description: Asset price has been set successfully. - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetPriceForbiddenErrorResponse" - description: | - - Tenant is not allowed to set rate. Error code: 1002. - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetPriceNotFoundErrorResponse" - description: | - - Currency not found. Error code 1001 + "201": + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Set asset price + summary: Delete an asset from an external wallet tags: - - Blockchains & assets + - External wallets x-rate-limit-category: write x-readme: code-samples: - language: python - code: "supportedAssets = fireblocks.set_asset_price(id, currency, price)" + code: "result = fireblocks.delete_external_wallet_asset(walletId, assetId)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const supportedAssets = await fireblocks.setAssetPrice(id, currency,\ - \ price);" + code: "const result = await fireblocks.deleteExternalWalletAsset(walletId,\ + \ assetId);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.blockchainsAssets.setAssetPrice(blockchainsAssetsApiSetAssetPriceRequest);" + code: "const response: Promise> = fireblocks.externalWallets.removeAssetFromExternalWallet(externalWalletsApiRemoveAssetFromExternalWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.blockchainsAssets().setAssetPrice(id,\ - \ setAssetPriceRequest, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.externalWallets().removeAssetFromExternalWallet(walletId,\ + \ assetId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.blockchains_&_assets.set_asset_price(id, set_asset_price_request,\ - \ idempotency_key);" + code: "response = fireblocks.external_wallets.remove_asset_from_external_wallet(wallet_id,\ + \ asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.blockchainsAssets.setAssetPrice(blockchainsAssetsApiSetAssetPriceRequest);" + source: "const response: Promise> = fireblocks.externalWallets.removeAssetFromExternalWallet(externalWalletsApiRemoveAssetFromExternalWalletRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.blockchainsAssets().setAssetPrice(id,\ - \ setAssetPriceRequest, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.externalWallets().removeAssetFromExternalWallet(walletId,\ + \ assetId);" - lang: Python - source: "response = fireblocks.blockchains_&_assets.set_asset_price(id, set_asset_price_request,\ - \ idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.external_wallets.remove_asset_from_external_wallet(wallet_id,\ + \ asset_id);" x-accepts: - application/json - /blockchains: get: - description: | - Returns all blockchains supported by Fireblocks. - operationId: listBlockchains + description: "Returns an external wallet by wallet ID and asset ID. External\ + \ Wallet is a whitelisted address of a wallet that belongs to your users/counterparties.\ + \ Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor,\ + \ Viewer." + operationId: getExternalWalletAsset parameters: - - description: Blockchain protocol - example: SOL - explode: true - in: query - name: protocol - required: false + - description: The ID of the wallet + explode: false + in: path + name: walletId + required: true schema: type: string - style: form - - description: Is blockchain deprecated - example: false - explode: true - in: query - name: deprecated - required: false - schema: - type: boolean - style: form - - description: Is test blockchain - example: false - explode: true - in: query - name: test - required: false - schema: - type: boolean - style: form - - description: A list of blockchain IDs (max 100) - example: - - 3ed32525-70df-45c8-bae3-e69ab56dc095 - - 3a3b5f06-61e7-44f0-9962-4425b55795ff - - MANTRA - explode: true - in: query - name: ids - required: false - schema: - items: - type: string - type: array - style: form - - description: Page cursor to fetch - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor - required: false + style: simple + - description: The ID of the asset to return + explode: false + in: path + name: assetId + required: true schema: type: string - style: form - - description: Items per page (max 500) - example: 500 - explode: true - in: query - name: pageSize - required: false - schema: - default: 500 - maximum: 500 - minimum: 1 - type: number - style: form + x-fb-entity: asset + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ListBlockchainsResponse" - description: List of supported blockchains - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetInternalServerErrorResponse" - description: Error occurred while listing blockchains + $ref: "#/components/schemas/ExternalWalletAsset" + description: A Wallet Asset object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List blockchains + summary: Get an asset from an external wallet tags: - - Blockchains & assets - x-rate-limit-category: external_query + - External wallets + x-rate-limit-category: read x-readme: code-samples: - language: python - code: blockchains = fireblocks.listBlockchains(filters) + code: "externalWalletAsset = fireblocks.get_external_wallet_asset(walletId,\ + \ assetId)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const blockchains = await fireblocks.listBlockchains(filters); + code: "const externalWalletAsset = fireblocks.getExternalWalletAsset(walletId,\ + \ assetId)" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.blockchainsAssets.listBlockchains(blockchainsAssetsApiListBlockchainsRequest);" + code: "const response: Promise>\ + \ = fireblocks.externalWallets.getExternalWalletAsset(externalWalletsApiGetExternalWalletAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.blockchainsAssets().listBlockchains(protocol, deprecated,\ - \ test, ids, pageCursor, pageSize);" + code: "CompletableFuture> response = fireblocks.externalWallets().getExternalWalletAsset(walletId,\ + \ assetId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.blockchains_&_assets.list_blockchains(protocol,\ - \ deprecated, test, ids, page_cursor, page_size);" + code: "response = fireblocks.external_wallets.get_external_wallet_asset(wallet_id,\ + \ asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.blockchainsAssets.listBlockchains(blockchainsAssetsApiListBlockchainsRequest);" + source: "const response: Promise>\ + \ = fireblocks.externalWallets.getExternalWalletAsset(externalWalletsApiGetExternalWalletAssetRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.blockchainsAssets().listBlockchains(protocol, deprecated,\ - \ test, ids, pageCursor, pageSize);" + source: "CompletableFuture> response = fireblocks.externalWallets().getExternalWalletAsset(walletId,\ + \ assetId);" - lang: Python - source: "response = fireblocks.blockchains_&_assets.list_blockchains(protocol,\ - \ deprecated, test, ids, page_cursor, page_size);" + source: "response = fireblocks.external_wallets.get_external_wallet_asset(wallet_id,\ + \ asset_id);" x-accepts: - application/json - /blockchains/{id}: - get: - description: | - Returns a blockchain by ID or legacyID. - operationId: getBlockchain + post: + description: "Adds an asset to an existing external wallet. Endpoint Permission:\ + \ Admin, Non-Signing Admin, Signer, Approver, Editor." + operationId: addAssetToExternalWallet parameters: - - description: The ID or legacyId of the blockchain - example: ETH + - description: The ID of the wallet explode: false in: path - name: id + name: walletId + required: true + schema: + type: string + style: simple + - description: The ID of the asset to add + 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/AddAssetToExternalWalletRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/BlockchainResponse" - description: Blockchain with requested identification + $ref: "#/components/schemas/ExternalWalletAsset" + description: A Wallet Asset object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/BlockchainNotFoundErrorResponse" - description: | - - Blockchain with specified ID or legacy ID is not found. Error code 1505 - "500": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetInternalServerErrorResponse" - description: Error occurred while getting an blockchain default: $ref: "#/components/responses/Error" - summary: Get a Blockchain by ID + summary: Add an asset to an external wallet. tags: - - Blockchains & assets - x-rate-limit-category: external_query + - External wallets + x-rate-limit-category: write x-readme: code-samples: - language: python - code: blockchain = fireblocks.getBlockchainById(blockchainId) + code: "externalWalletAsset = fireblocks.create_external_wallet_asset(walletId,\ + \ assetId, address, tag)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const blockchain = await fireblocks.getBlockchainById(blockchainId); + code: "const externalWalletAsset = await fireblocks.createExternalWalletAsset(walletContainerId,\ + \ assetId, address, tag);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.blockchainsAssets.getBlockchain(blockchainsAssetsApiGetBlockchainRequest);" + code: "const response: Promise>\ + \ = fireblocks.externalWallets.addAssetToExternalWallet(externalWalletsApiAddAssetToExternalWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.blockchainsAssets().getBlockchain(id); + code: "CompletableFuture> response = fireblocks.externalWallets().addAssetToExternalWallet(walletId,\ + \ assetId, addAssetToExternalWalletRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.blockchains_&_assets.get_blockchain(id); + code: "response = fireblocks.external_wallets.add_asset_to_external_wallet(wallet_id,\ + \ asset_id, add_asset_to_external_wallet_request, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.blockchainsAssets.getBlockchain(blockchainsAssetsApiGetBlockchainRequest);" + source: "const response: Promise>\ + \ = fireblocks.externalWallets.addAssetToExternalWallet(externalWalletsApiAddAssetToExternalWalletRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.blockchainsAssets().getBlockchain(id); - - lang: Python - source: response = fireblocks.blockchains_&_assets.get_blockchain(id); - x-accepts: - - application/json - /transactions: - get: - description: | - Get the transaction history for your workspace. - - **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getTransactions - parameters: - - description: Cursor returned in next-page header that can be used to fetch - the next page of results - explode: true - in: query - name: next - required: false - schema: - type: string - style: form - - description: Cursor returned in prev-page header that can be used to fetch - the previous page of results - explode: true - in: query - name: prev - required: false - schema: - type: string - style: form - - description: "Unix timestamp in milliseconds. Returns only transactions created\ - \ before the specified date.\nProvides an explicit end time. If not provided,\ - \ default value will be applied, and may change over time. \nThe current\ - \ default value is the past 90 days.\n" - explode: true - in: query - name: before - required: false - schema: - type: string - style: form - - description: "Unix timestamp in milliseconds. Returns only transactions created\ - \ after the specified date.\nProvides an explicit start time. If not provided,\ - \ default value will be applied, and may change over time. \nThe current\ - \ default value is the past 90 days.\n" - explode: true - in: query - name: after - required: false - schema: - type: string - style: form - - description: You can filter by one of the statuses. - explode: true - in: query - name: status - required: false - schema: - type: string - style: form - - description: | - The field to order the results by. - - **Note:** Ordering by a field that is not `createdAt` may result in transactions that receive updates as you request the next or previous pages of results, resulting in missing those transactions. - explode: true - in: query - name: orderBy - required: false - schema: - enum: - - createdAt - - lastUpdated - type: string - style: form - - description: The direction to order the results by - explode: true - in: query - name: sort - required: false - schema: - enum: - - ASC - - DESC - type: string - style: form - - description: "Limits the number of results. If not provided, a limit of 200\ - \ will be used. The maximum allowed limit is 500" - explode: true - in: query - name: limit - required: false - schema: - default: 200 - minimum: 1 - type: integer - style: form - - description: The source type of the transaction - explode: true - in: query - name: sourceType - required: false - schema: - enum: - - VAULT_ACCOUNT - - EXCHANGE_ACCOUNT - - INTERNAL_WALLET - - EXTERNAL_WALLET - - CONTRACT - - FIAT_ACCOUNT - - NETWORK_CONNECTION - - COMPOUND - - UNKNOWN - - GAS_STATION - - END_USER_WALLET - - WALLET_POOL - type: string - style: form - - description: The source ID of the transaction - explode: true - in: query - name: sourceId - required: false - schema: - type: string - style: form - - description: The destination type of the transaction - explode: true - in: query - name: destType - required: false - schema: - enum: - - VAULT_ACCOUNT - - EXCHANGE_ACCOUNT - - INTERNAL_WALLET - - EXTERNAL_WALLET - - CONTRACT - - FIAT_ACCOUNT - - NETWORK_CONNECTION - - COMPOUND - - ONE_TIME_ADDRESS - - END_USER_WALLET - type: string - style: form - - description: The destination ID of the transaction - explode: true - in: query - name: destId - required: false - schema: - type: string - style: form - - description: "A list of assets to filter by, seperated by commas" - explode: true - in: query - name: assets - required: false - schema: - type: string - style: form - - description: Returns only results with a specified txHash - explode: true - in: query - name: txHash - required: false - schema: - type: string - style: form - - description: Returns only results where the source is a specific end user - wallet - explode: true - in: query - name: sourceWalletId - required: false - schema: - type: string - style: form - - description: Returns only results where the destination is a specific end - user wallet - explode: true - in: query - name: destWalletId - required: false - schema: - type: string - style: form - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/GetTransactionsResponse" - description: A list of transactions - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - next-page: - $ref: "#/components/headers/next-page" - prev-page: - $ref: "#/components/headers/prev-page" - default: - $ref: "#/components/responses/Error" - summary: Get transaction history - tags: - - Transactions - x-rate-limit-category: query - x-readme: - code-samples: - - language: python - code: "transactions = fireblocks.get_transactions(status, after)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: | - const transactions = await fireblocks.getTransactions({ - status: args.status, - after: from }); - name: Fireblocks SDK Javascript example - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.getTransactions(transactionsApiGetTransactionsRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture>> response\ - \ = fireblocks.transactions().getTransactions(next, prev, before, after,\ - \ status, orderBy, sort, limit, sourceType, sourceId, destType, destId,\ - \ assets, txHash, sourceWalletId, destWalletId);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.transactions.get_transactions(next, prev, before,\ - \ after, status, order_by, sort, limit, source_type, source_id, dest_type,\ - \ dest_id, assets, tx_hash, source_wallet_id, dest_wallet_id);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.getTransactions(transactionsApiGetTransactionsRequest);" - - lang: Java - source: "CompletableFuture>> response\ - \ = fireblocks.transactions().getTransactions(next, prev, before, after,\ - \ status, orderBy, sort, limit, sourceType, sourceId, destType, destId,\ - \ assets, txHash, sourceWalletId, destWalletId);" + source: "CompletableFuture> response = fireblocks.externalWallets().addAssetToExternalWallet(walletId,\ + \ assetId, addAssetToExternalWalletRequest, idempotencyKey);" - lang: Python - source: "response = fireblocks.transactions.get_transactions(next, prev, before,\ - \ after, status, order_by, sort, limit, source_type, source_id, dest_type,\ - \ dest_id, assets, tx_hash, source_wallet_id, dest_wallet_id);" + source: "response = fireblocks.external_wallets.add_asset_to_external_wallet(wallet_id,\ + \ asset_id, add_asset_to_external_wallet_request, idempotency_key);" + x-content-type: application/json x-accepts: - application/json + /external_wallets/{walletId}/set_customer_ref_id: post: - description: "Creates a new transaction. This endpoint can be used for regular\ - \ Transfers, Contract Calls, Raw & Typed message signing. - For Transfers,\ - \ the required parameters are: `assetId`, `source`, `destination` and `amount`.\ - \ - For Contract Calls, the required parameters are: `operation.CONTRACT_CALL`,\ - \ `assetId` (Base Asset), `source`," - operationId: createTransaction + description: "Sets an AML/KYT customer reference ID for the specific external\ + \ wallet. External Wallet is a whitelisted address of a wallet that belongs\ + \ to your users/counterparties. Endpoint Permission: Admin, Non-Signing Admin,\ + \ Signer, Approver, Editor." + operationId: setExternalWalletCustomerRefId parameters: - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. + - description: The wallet ID explode: false - in: header - name: X-End-User-Wallet-Id - required: false + in: path + name: walletId + required: true schema: - format: uuid type: string style: simple - description: "A unique identifier for the request. If the request is sent\ @@ -11182,152 +11520,114 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TransactionRequest" + $ref: "#/components/schemas/SetCustomerRefIdRequest" + required: true responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/CreateTransactionResponse" - description: A transaction object + "201": + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create a new transaction + summary: Set an AML customer reference ID for an external wallet tags: - - Transactions - x-rate-limit-category: async + - External wallets + x-rate-limit-category: write x-readme: code-samples: - language: python - code: | - tx_result = client.create_transaction( asset_id="BTC", amount="50", source=TransferPeerPath(VAULT_ACCOUNT, from_vault_account_id), destination=DestinationTransferPeerPath(VAULT_ACCOUNT, to_vault_account_id), external_tx_id="unique-id-123" ) + code: "result = firebocks.set_customer_ref_id_for_external_wallet(wallet_id,\ + \ customer_ref_id)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: | - const payload: TransactionArguments = { assetId: asset, source: { type: sourceType, id: sourceId || 0 }, destination: { type: destinationType, id: String(destinationId) }, amount: String(amount), fee: String(fee), note: "Created by fireblocks SDK", externalTxId: "unique-id-123" }; const result = await fireblocks.createTransaction(payload); + code: "const result = await fireblocks.setCustomerRefIdForExternalWallet(walletId,\ + \ customerRefId);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.createTransaction(transactionsApiCreateTransactionRequest);" + code: "const response: Promise> = fireblocks.externalWallets.setExternalWalletCustomerRefId(externalWalletsApiSetExternalWalletCustomerRefIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.transactions().createTransaction(transactionRequest, xEndUserWalletId,\ - \ idempotencyKey);" + code: "CompletableFuture> response = fireblocks.externalWallets().setExternalWalletCustomerRefId(setCustomerRefIdRequest,\ + \ walletId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.transactions.create_transaction(transaction_request,\ - \ x_end_user_wallet_id, idempotency_key);" + code: "response = fireblocks.external_wallets.set_external_wallet_customer_ref_id(set_customer_ref_id_request,\ + \ wallet_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.createTransaction(transactionsApiCreateTransactionRequest);" + source: "const response: Promise> = fireblocks.externalWallets.setExternalWalletCustomerRefId(externalWalletsApiSetExternalWalletCustomerRefIdRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.transactions().createTransaction(transactionRequest, xEndUserWalletId,\ - \ idempotencyKey);" + source: "CompletableFuture> response = fireblocks.externalWallets().setExternalWalletCustomerRefId(setCustomerRefIdRequest,\ + \ walletId, idempotencyKey);" - lang: Python - source: "response = fireblocks.transactions.create_transaction(transaction_request,\ - \ x_end_user_wallet_id, idempotency_key);" + source: "response = fireblocks.external_wallets.set_external_wallet_customer_ref_id(set_customer_ref_id_request,\ + \ wallet_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /transactions/estimate_fee: - post: + /fiat_accounts: + get: description: |- - Estimates the transaction fee for a specific transaction request. - This endpoint simulates a transaction which means that the system will expect to have the requested asset and balance in the specified wallet. - **Note**: Supports all Fireblocks assets except ZCash (ZEC). - The PROGRAM_CALL operation is not supported by this endpoint — fee estimation for Solana program calls is not available. - Learn more about Fireblocks Fee Management in the following [guide](https://developers.fireblocks.com/reference/estimate-transaction-fee). - Endpoint Permission: Admin, Signer, Approver, Editor. - operationId: estimateTransactionFee - 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/TransactionRequest" + Returns all fiat accounts. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: getFiatAccounts responses: "200": content: application/json: schema: - $ref: "#/components/schemas/EstimatedTransactionFeeResponse" - description: Estimated fees response + $ref: "#/components/schemas/GetFiatAccountsResponse" + description: A fiat account object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Estimate transaction fee + summary: List fiat accounts tags: - - Transactions - x-rate-limit-category: async + - Fiat accounts + x-rate-limit-category: query x-readme: code-samples: - language: python - code: | - estimated_fee = client.estimate_fee_for_transaction( asset_id="BTC", amount="50", source=TransferPeerPath(VAULT_ACCOUNT, from_vault_account_id), destination=DestinationTransferPeerPath(VAULT_ACCOUNT, to_vault_account_id) ) + code: transactions = fireblocks.get_fiat_accounts() name: Fireblocks SDK Python example (Legacy) - language: javascript - code: | - const payload: TransactionArguments = { assetId: asset, source: { type: sourceType, id: sourceId || 0 }, destination: { type: destinationType, id: String(destinationId) }, amount: Number(amount) }; const estimatedFee = await fireblocks.estimateFeeForTransaction(payload); + code: const transactions = await fireblocks.getFiatAccounts(); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.estimateTransactionFee(transactionsApiEstimateTransactionFeeRequest);" + code: "const response: Promise>\ + \ = fireblocks.fiatAccounts.getFiatAccounts();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.transactions().estimateTransactionFee(transactionRequest,\ - \ idempotencyKey);" + code: CompletableFuture>> response = fireblocks.fiatAccounts().getFiatAccounts(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.transactions.estimate_transaction_fee(transaction_request,\ - \ idempotency_key);" + code: response = fireblocks.fiat_accounts.get_fiat_accounts(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.estimateTransactionFee(transactionsApiEstimateTransactionFeeRequest);" + source: "const response: Promise>\ + \ = fireblocks.fiatAccounts.getFiatAccounts();" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.transactions().estimateTransactionFee(transactionRequest,\ - \ idempotencyKey);" + source: CompletableFuture>> response = fireblocks.fiatAccounts().getFiatAccounts(); - lang: Python - source: "response = fireblocks.transactions.estimate_transaction_fee(transaction_request,\ - \ idempotency_key);" - x-content-type: application/json + source: response = fireblocks.fiat_accounts.get_fiat_accounts(); x-accepts: - application/json - /transactions/{txId}: + /fiat_accounts/{accountId}: get: description: |- - Get a specific transaction data by Fireblocks Transaction ID - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getTransaction + Returns a fiat account by ID. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: getFiatAccount parameters: - - description: The ID of the transaction to return - example: 00000000-0000-0000-0000-000000000000 + - description: The ID of the fiat account to return explode: false in: path - name: txId + name: accountId required: true schema: type: string @@ -11337,118 +11637,133 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TransactionResponse" - description: An Transaction object + $ref: "#/components/schemas/FiatAccount" + description: A fiat account object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "400": - $ref: "#/components/responses/Error" default: $ref: "#/components/responses/Error" - summary: Get a specific transaction by Fireblocks transaction ID + summary: Find a specific fiat account tags: - - Transactions - x-rate-limit-category: read + - Fiat accounts + x-rate-limit-category: query x-readme: code-samples: - language: python - code: tx = fireblocks.get_transaction_by_id(txId) + code: transactions = fireblocks.get_fiat_account_by_id(account_id) name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const tx = await fireblocks.getTransactionById(txId); + code: const transactions = await fireblocks.getFiatAccountById(accountId); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.getTransaction(transactionsApiGetTransactionRequest);" + code: "const response: Promise> = fireblocks.fiatAccounts.getFiatAccount(fiatAccountsApiGetFiatAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.transactions().getTransaction(txId); + code: CompletableFuture> response = fireblocks.fiatAccounts().getFiatAccount(accountId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.transactions.get_transaction(tx_id); + code: response = fireblocks.fiat_accounts.get_fiat_account(account_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.getTransaction(transactionsApiGetTransactionRequest);" + source: "const response: Promise> = fireblocks.fiatAccounts.getFiatAccount(fiatAccountsApiGetFiatAccountRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.transactions().getTransaction(txId); + source: CompletableFuture> response = fireblocks.fiatAccounts().getFiatAccount(accountId); - lang: Python - source: response = fireblocks.transactions.get_transaction(tx_id); + source: response = fireblocks.fiat_accounts.get_fiat_account(account_id); x-accepts: - application/json - /transactions/external_tx_id/{externalTxId}: - get: - description: |- - Returns transaction by external transaction ID. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getTransactionByExternalId + /fiat_accounts/{accountId}/deposit_from_linked_dda: + post: + description: Deposits funds from the linked DDA. + operationId: depositFundsFromLinkedDDA parameters: - - description: The external ID of the transaction to return - example: 00000000-0000-0000-0000-000000000000 + - description: The ID of the fiat account to use explode: false in: path - name: externalTxId + name: accountId required: true schema: 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\ + \ 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/Funds" responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/TransactionResponse" - description: An Transaction object + $ref: "#/components/schemas/DepositFundsFromLinkedDDAResponse" + description: Transfer succeeded headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get a specific transaction by external transaction ID + summary: Deposit funds from DDA tags: - - Transactions - x-rate-limit-category: read + - Fiat accounts + x-rate-limit-category: write x-readme: code-samples: - language: python - code: tx = fireblocks.get_transaction_by_external_tx_id(externalTxId) + code: "transactions = fireblocks.deposit_from_linked_dda(account_id, amount)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const tx = await fireblocks.getTransactionByExternalTxId(externalTxId); + code: "const transactions = await fireblocks.depositFromLinkedDDA(accountId,\ + \ amount);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.getTransactionByExternalId(transactionsApiGetTransactionByExternalIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.fiatAccounts.depositFundsFromLinkedDDA(fiatAccountsApiDepositFundsFromLinkedDDARequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.transactions().getTransactionByExternalId(externalTxId); + code: "CompletableFuture>\ + \ response = fireblocks.fiatAccounts().depositFundsFromLinkedDDA(accountId,\ + \ funds, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.transactions.get_transaction_by_external_id(external_tx_id); + code: "response = fireblocks.fiat_accounts.deposit_funds_from_linked_d_d_a(account_id,\ + \ funds, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.getTransactionByExternalId(transactionsApiGetTransactionByExternalIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.fiatAccounts.depositFundsFromLinkedDDA(fiatAccountsApiDepositFundsFromLinkedDDARequest);" - lang: Java - source: CompletableFuture> response = fireblocks.transactions().getTransactionByExternalId(externalTxId); + source: "CompletableFuture>\ + \ response = fireblocks.fiatAccounts().depositFundsFromLinkedDDA(accountId,\ + \ funds, idempotencyKey);" - lang: Python - source: response = fireblocks.transactions.get_transaction_by_external_id(external_tx_id); + source: "response = fireblocks.fiat_accounts.deposit_funds_from_linked_d_d_a(account_id,\ + \ funds, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /transactions/{txId}/set_confirmation_threshold: + /fiat_accounts/{accountId}/redeem_to_linked_dda: post: - description: |- - Overrides the required number of confirmations for transaction completion Fireblocks Transaction ID. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: setTransactionConfirmationThreshold + description: Redeems funds to the linked DDA. + operationId: redeemFundsToLinkedDDA parameters: - - description: The ID of the transaction + - description: The ID of the fiat account to use explode: false in: path - name: txId + name: accountId required: true schema: type: string @@ -11468,265 +11783,180 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SetConfirmationsThresholdRequest" + $ref: "#/components/schemas/Funds" responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/SetConfirmationsThresholdResponse" - description: Set successfully + $ref: "#/components/schemas/RedeemFundsToLinkedDDAResponse" + description: Transfer succeeded headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Set confirmation threshold by Fireblocks Transaction ID + summary: Redeem funds to DDA tags: - - Transactions + - Fiat accounts x-rate-limit-category: write x-readme: code-samples: - language: python - code: set_conf_threshold = client.set_confirmation_threshold_by_tx_id(body) + code: "transactions = fireblocks.redeem_to_linked_dda(account_id, amount)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const setConfThreshold = await fireblocks.setConfirmationThresholdByTxId(body); + code: "const transactions = await fireblocks.redeemToLinkedDDA(accountId,\ + \ amount);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.setTransactionConfirmationThreshold(transactionsApiSetTransactionConfirmationThresholdRequest);" + code: "const response: Promise>\ + \ = fireblocks.fiatAccounts.redeemFundsToLinkedDDA(fiatAccountsApiRedeemFundsToLinkedDDARequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.transactions().setTransactionConfirmationThreshold(txId,\ - \ setConfirmationsThresholdRequest, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.fiatAccounts().redeemFundsToLinkedDDA(accountId, funds,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.transactions.set_transaction_confirmation_threshold(tx_id,\ - \ set_confirmations_threshold_request, idempotency_key);" + code: "response = fireblocks.fiat_accounts.redeem_funds_to_linked_d_d_a(account_id,\ + \ funds, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.setTransactionConfirmationThreshold(transactionsApiSetTransactionConfirmationThresholdRequest);" + source: "const response: Promise>\ + \ = fireblocks.fiatAccounts.redeemFundsToLinkedDDA(fiatAccountsApiRedeemFundsToLinkedDDARequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.transactions().setTransactionConfirmationThreshold(txId,\ - \ setConfirmationsThresholdRequest, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.fiatAccounts().redeemFundsToLinkedDDA(accountId, funds, idempotencyKey);" - lang: Python - source: "response = fireblocks.transactions.set_transaction_confirmation_threshold(tx_id,\ - \ set_confirmations_threshold_request, idempotency_key);" + source: "response = fireblocks.fiat_accounts.redeem_funds_to_linked_d_d_a(account_id,\ + \ funds, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /transactions/{txId}/drop: - post: + /gas_station: + get: description: |- - Drops a stuck ETH (EVM) transaction and creates a replacement transaction with 0 amount. + Returns gas station settings and ETH balance. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: dropTransaction - parameters: - - description: The ID of the transaction - explode: false - in: path - name: txId - required: true - schema: - type: string - style: simple - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: false - schema: - format: uuid - 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\ - \ 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/DropTransactionRequest" + operationId: getGasStationInfo responses: "200": content: application/json: schema: - $ref: "#/components/schemas/DropTransactionResponse" - description: Operation completed successfully + $ref: "#/components/schemas/GasStationPropertiesResponse" + description: Gas Station properties headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Drop ETH (EVM) transaction by ID + summary: Get gas station settings tags: - - Transactions - x-rate-limit-category: write + - Gas stations + x-rate-limit-category: query x-readme: code-samples: - language: python - code: "result = fireblocks.drop_transaction(txId, fee_level)" + code: gas_station_info = fireblocks.get_gas_station_info() name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const result = await fireblocks.dropTransaction(txId, feeLevel);" + code: const gasStationInfo = await fireblocks.gasStationInfo(); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.dropTransaction(transactionsApiDropTransactionRequest);" + code: "const response: Promise>\ + \ = fireblocks.gasStations.getGasStationInfo();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.transactions().dropTransaction(txId, dropTransactionRequest,\ - \ xEndUserWalletId, idempotencyKey);" + code: CompletableFuture> response + = fireblocks.gasStations().getGasStationInfo(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.transactions.drop_transaction(tx_id, drop_transaction_request,\ - \ x_end_user_wallet_id, idempotency_key);" + code: response = fireblocks.gas_stations.get_gas_station_info(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.dropTransaction(transactionsApiDropTransactionRequest);" + source: "const response: Promise>\ + \ = fireblocks.gasStations.getGasStationInfo();" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.transactions().dropTransaction(txId, dropTransactionRequest,\ - \ xEndUserWalletId, idempotencyKey);" + source: CompletableFuture> response + = fireblocks.gasStations().getGasStationInfo(); - lang: Python - source: "response = fireblocks.transactions.drop_transaction(tx_id, drop_transaction_request,\ - \ x_end_user_wallet_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.gas_stations.get_gas_station_info(); x-accepts: - application/json - /transactions/{txId}/cancel: - post: + /gas_station/{assetId}: + get: description: |- - Cancels a transaction by Fireblocks Transaction ID. - - Can be used only for transactions that did not get to the BROADCASTING state. + Returns gas station settings and balances for a requested asset. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: cancelTransaction + operationId: getGasStationByAssetId parameters: - - description: The ID of the transaction to cancel + - description: The ID of the asset explode: false in: path - name: txId + name: assetId required: true schema: type: string - style: simple - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: false - schema: - format: uuid - 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\ - \ 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 + x-fb-entity: asset style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/CancelTransactionResponse" - description: An Transaction object + $ref: "#/components/schemas/GasStationPropertiesResponse" + description: Gas Station properties headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Cancel a transaction + summary: Get gas station settings by asset tags: - - Transactions - x-rate-limit-category: write + - Gas stations + x-rate-limit-category: query x-readme: code-samples: - language: python - code: result = fireblocks.cancel_transaction_by_id(txId) + code: gas_station_info = fireblocks.get_gas_station_info(asset_id) name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const result = await fireblocks.cancelTransactionById(txId); + code: const gasStationInfo = await fireblocks.gasStationInfo(assetId); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.cancelTransaction(transactionsApiCancelTransactionRequest);" + code: "const response: Promise>\ + \ = fireblocks.gasStations.getGasStationByAssetId(gasStationsApiGetGasStationByAssetIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.transactions().cancelTransaction(txId, xEndUserWalletId,\ - \ idempotencyKey);" + code: CompletableFuture> response + = fireblocks.gasStations().getGasStationByAssetId(assetId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.transactions.cancel_transaction(tx_id, x_end_user_wallet_id,\ - \ idempotency_key);" + code: response = fireblocks.gas_stations.get_gas_station_by_asset_id(asset_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.cancelTransaction(transactionsApiCancelTransactionRequest);" + source: "const response: Promise>\ + \ = fireblocks.gasStations.getGasStationByAssetId(gasStationsApiGetGasStationByAssetIdRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.transactions().cancelTransaction(txId, xEndUserWalletId,\ - \ idempotencyKey);" + source: CompletableFuture> response + = fireblocks.gasStations().getGasStationByAssetId(assetId); - lang: Python - source: "response = fireblocks.transactions.cancel_transaction(tx_id, x_end_user_wallet_id,\ - \ idempotency_key);" + source: response = fireblocks.gas_stations.get_gas_station_by_asset_id(asset_id); x-accepts: - application/json - /transactions/{txId}/freeze: - post: - description: "Freezes a transaction by ID.\n\nUsually used for AML integrations\ - \ when the incoming funds should be quarantined.\nFor account based assets\ - \ - the entire amount of the transaction is frozen \nFor UTXO based assets\ - \ - all UTXOs of the specified transaction are frozen\nEndpoint Permission:\ - \ Admin, Non-Signing Admin." - operationId: freezeTransaction + /gas_station/configuration: + put: + description: |- + Configures gas station settings for ETH. + Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: updateGasStationConfiguration parameters: - - description: The ID of the transaction to freeze - explode: false - in: path - name: txId - required: true - schema: - type: string - style: simple - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: false - schema: - format: uuid - 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -11738,78 +11968,81 @@ paths: schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GasStationConfiguration" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/FreezeTransactionResponse" - description: freeze response + $ref: "#/components/schemas/EditGasStationConfigurationResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Freeze a transaction + default: + $ref: "#/components/responses/Error" + summary: Edit gas station settings tags: - - Transactions + - Gas stations x-rate-limit-category: write x-readme: code-samples: - language: python - code: result = fireblocks.freeze_transaction_by_id(txId); + code: "gas_station = fireblocks.set_gas_station_configuration(gas_threshold,\ + \ gas_cap, max_gas_price, asset_id)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const result = await fireblocks.freezeTransactionById(txId); + code: "const gasStation = await fireblocks.setGasStationConfiguration(gasThreshold,\ + \ gasCap, maxGasPrice)" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.freezeTransaction(transactionsApiFreezeTransactionRequest);" + code: "const response: Promise>\ + \ = fireblocks.gasStations.updateGasStationConfiguration(gasStationsApiUpdateGasStationConfigurationRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.transactions().freezeTransaction(txId, xEndUserWalletId,\ + code: "CompletableFuture>\ + \ response = fireblocks.gasStations().updateGasStationConfiguration(gasStationConfiguration,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.transactions.freeze_transaction(tx_id, x_end_user_wallet_id,\ + code: "response = fireblocks.gas_stations.update_gas_station_configuration(gas_station_configuration,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.freezeTransaction(transactionsApiFreezeTransactionRequest);" + source: "const response: Promise>\ + \ = fireblocks.gasStations.updateGasStationConfiguration(gasStationsApiUpdateGasStationConfigurationRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.transactions().freezeTransaction(txId, xEndUserWalletId,\ + source: "CompletableFuture>\ + \ response = fireblocks.gasStations().updateGasStationConfiguration(gasStationConfiguration,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.transactions.freeze_transaction(tx_id, x_end_user_wallet_id,\ + source: "response = fireblocks.gas_stations.update_gas_station_configuration(gas_station_configuration,\ \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /transactions/{txId}/unfreeze: - post: + /gas_station/configuration/{assetId}: + put: description: |- - Unfreezes a transaction by Fireblocks Transaction ID and makes the transaction available again. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: unfreezeTransaction + Configures gas station settings for a requested asset. + Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: updateGasStationConfigurationByAssetId parameters: - - description: The ID of the transaction to unfreeze + - description: The ID of the asset explode: false in: path - name: txId + name: assetId required: true schema: type: string - style: simple - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: false - schema: - format: uuid - 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\ @@ -11822,75 +12055,73 @@ paths: schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/GasStationConfiguration" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/UnfreezeTransactionResponse" - description: Unfreeze response + $ref: "#/components/schemas/EditGasStationConfigurationResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Unfreeze a transaction + default: + $ref: "#/components/responses/Error" + summary: Edit gas station settings for an asset tags: - - Transactions + - Gas stations x-rate-limit-category: write x-readme: code-samples: - - language: python - code: result = fireblocks.unfreeze_transaction_by_id(txId) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const result = await fireblocks.unfreezeTransactionById(txId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.unfreezeTransaction(transactionsApiUnfreezeTransactionRequest);" + code: "const response: Promise>\ + \ = fireblocks.gasStations.updateGasStationConfigurationByAssetId(gasStationsApiUpdateGasStationConfigurationByAssetIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.transactions().unfreezeTransaction(txId, xEndUserWalletId,\ - \ idempotencyKey);" + code: "CompletableFuture>\ + \ response = fireblocks.gasStations().updateGasStationConfigurationByAssetId(gasStationConfiguration,\ + \ assetId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.transactions.unfreeze_transaction(tx_id, x_end_user_wallet_id,\ - \ idempotency_key);" + code: "response = fireblocks.gas_stations.update_gas_station_configuration_by_asset_id(gas_station_configuration,\ + \ asset_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.unfreezeTransaction(transactionsApiUnfreezeTransactionRequest);" + source: "const response: Promise>\ + \ = fireblocks.gasStations.updateGasStationConfigurationByAssetId(gasStationsApiUpdateGasStationConfigurationByAssetIdRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.transactions().unfreezeTransaction(txId, xEndUserWalletId,\ - \ idempotencyKey);" + source: "CompletableFuture>\ + \ response = fireblocks.gasStations().updateGasStationConfigurationByAssetId(gasStationConfiguration,\ + \ assetId, idempotencyKey);" - lang: Python - source: "response = fireblocks.transactions.unfreeze_transaction(tx_id, x_end_user_wallet_id,\ - \ idempotency_key);" + source: "response = fireblocks.gas_stations.update_gas_station_configuration_by_asset_id(gas_station_configuration,\ + \ asset_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /transactions/validate_address/{assetId}/{address}: - get: - description: |- - Checks if an address is valid and active (for XRP, DOT, XLM, and EOS). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: validateAddress + /genie/sessions: + post: + description: | + Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a `sessionId` — pass it when sending messages, and reuse it across calls to keep one continuous conversation. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: createGenieSession parameters: - - description: The asset of the address - explode: false - in: path - name: assetId - required: true - schema: - type: string - x-fb-entity: asset - style: simple - - description: The address to validate + - 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: path - name: address - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple @@ -11899,60 +12130,56 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ValidateAddressResponse" - description: An Transaction object + $ref: "#/components/schemas/GenieCreateSessionResponse" + description: Session created headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Validate destination address + summary: Create a Genie session tags: - - Transactions - x-rate-limit-category: read + - Genie (Beta) + x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "result = fireblocks.(asset_id, address)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const result = await fireblocks.(assetId, address);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.validateAddress(transactionsApiValidateAddressRequest);" + code: "const response: Promise>\ + \ = fireblocks.genieBeta.createGenieSession(genieBetaApiCreateGenieSessionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.transactions().validateAddress(assetId, address);" + code: CompletableFuture> response + = fireblocks.genieBeta().createGenieSession(idempotencyKey); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.transactions.validate_address(asset_id, address);" + code: response = fireblocks.genie_beta.create_genie_session(idempotency_key); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.validateAddress(transactionsApiValidateAddressRequest);" + source: "const response: Promise>\ + \ = fireblocks.genieBeta.createGenieSession(genieBetaApiCreateGenieSessionRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.transactions().validateAddress(assetId, address);" + source: CompletableFuture> response + = fireblocks.genieBeta().createGenieSession(idempotencyKey); - lang: Python - source: "response = fireblocks.transactions.validate_address(asset_id, address);" + source: response = fireblocks.genie_beta.create_genie_session(idempotency_key); x-accepts: - application/json - /txHash/{txHash}/set_confirmation_threshold: + /genie/sessions/{sessionId}/messages: post: - description: |- - Overrides the required number of confirmations for transaction completion by transaction hash. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: setConfirmationThresholdByTransactionHash + description: | + Sends a question to Genie and returns a single answer. Reuse the `sessionId` from the original session on follow-up messages to continue the conversation with prior context. + + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: sendGenieMessage parameters: - - description: The TxHash + - description: The Genie session ID returned from `POST /genie/sessions`. explode: false in: path - name: txHash + name: sessionId required: true schema: + example: 7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a type: string style: simple - description: "A unique identifier for the request. If the request is sent\ @@ -11970,162 +12197,101 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SetConfirmationsThresholdRequest" + $ref: "#/components/schemas/GenieSendMessageRequest" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SetConfirmationsThresholdResponse" - description: A list of transactions affected by the change + $ref: "#/components/schemas/GenieChatMessage" + description: Genie response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Set confirmation threshold by transaction hash + summary: Send a message to a Genie session tags: - - Transactions + - Genie (Beta) x-rate-limit-category: write x-readme: code-samples: - - language: python - code: set_conf_threshold = client.set_confirmation_threshold_by_tx_hash(body) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const setConfThreshold = await fireblocks.setConfirmationThresholdByTxHash(body); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.setConfirmationThresholdByTransactionHash(transactionsApiSetConfirmationThresholdByTransactionHashRequest);" + code: "const response: Promise>\ + \ = fireblocks.genieBeta.sendGenieMessage(genieBetaApiSendGenieMessageRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.transactions().setConfirmationThresholdByTransactionHash(txHash,\ - \ setConfirmationsThresholdRequest, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.genieBeta().sendGenieMessage(genieSendMessageRequest, sessionId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.transactions.set_confirmation_threshold_by_transaction_hash(tx_hash,\ - \ set_confirmations_threshold_request, idempotency_key);" + code: "response = fireblocks.genie_beta.send_genie_message(genie_send_message_request,\ + \ session_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.setConfirmationThresholdByTransactionHash(transactionsApiSetConfirmationThresholdByTransactionHashRequest);" + source: "const response: Promise>\ + \ = fireblocks.genieBeta.sendGenieMessage(genieBetaApiSendGenieMessageRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.transactions().setConfirmationThresholdByTransactionHash(txHash,\ - \ setConfirmationsThresholdRequest, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.genieBeta().sendGenieMessage(genieSendMessageRequest, sessionId,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.transactions.set_confirmation_threshold_by_transaction_hash(tx_hash,\ - \ set_confirmations_threshold_request, idempotency_key);" + source: "response = fireblocks.genie_beta.send_genie_message(genie_send_message_request,\ + \ session_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /estimate_network_fee: + /internal_wallets: get: - description: |- - Gets the estimated required fee for an asset. - Fireblocks fetches, calculates and caches the result every 30 seconds. - Customers should query this API while taking the caching interval into consideration. - Notes: - - The `networkFee` parameter is the `gasPrice` with a given delta added, multiplied by the gasLimit plus the delta. - The estimation provided depends on the asset type. - - For UTXO-based assets, the response contains the `feePerByte` parameter - - For ETH-based and all EVM based assets, the response will contain `gasPrice` parameter. This is calculated by adding the `baseFee` to the `actualPriority` based on the latest 12 blocks. The response for ETH-based contains the `baseFee`, `gasPrice`, and `priorityFee` parameters. - - For ADA-based assets, the response will contain the parameter `networkFee` and `feePerByte` parameters. - - For XRP and XLM, the response will contain the transaction fee. - - For other assets, the response will contain the `networkFee` parameter. - - Learn more about Fireblocks Fee Management in the following [guide](https://developers.fireblocks.com/reference/estimate-transaction-fee). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: estimateNetworkFee - parameters: - - description: The asset for which to estimate the fee - explode: true - in: query - name: assetId - required: true - schema: - type: string - x-fb-entity: asset - style: form + description: | + Gets a list of internal wallets. + operationId: getInternalWallets responses: "200": content: application/json: schema: - $ref: "#/components/schemas/EstimatedNetworkFeeResponse" - description: Estimated fees response + $ref: "#/components/schemas/GetInternalWalletsResponse" + description: A list of internal wallets headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Estimate the required fee for an asset + summary: List internal wallets tags: - - Transactions - x-rate-limit-category: read + - Internal wallets + x-rate-limit-category: high_compute x-readme: code-samples: - - language: python - code: fee_result = fireblocks.get_fee_for_asset(asset_id) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const feeResult = await fireblocks.getFeeForAsset(assetId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.transactions.estimateNetworkFee(transactionsApiEstimateNetworkFeeRequest);" + code: "const response: Promise>\ + \ = fireblocks.internalWallets.getInternalWallets();" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.transactions().estimateNetworkFee(assetId); + code: CompletableFuture>> response = fireblocks.internalWallets().getInternalWallets(); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.transactions.estimate_network_fee(asset_id); + code: response = fireblocks.internal_wallets.get_internal_wallets(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.transactions.estimateNetworkFee(transactionsApiEstimateNetworkFeeRequest);" + source: "const response: Promise>\ + \ = fireblocks.internalWallets.getInternalWallets();" - lang: Java - source: CompletableFuture> response - = fireblocks.transactions().estimateNetworkFee(assetId); + source: CompletableFuture>> response = fireblocks.internalWallets().getInternalWallets(); - lang: Python - source: response = fireblocks.transactions.estimate_network_fee(asset_id); + source: response = fireblocks.internal_wallets.get_internal_wallets(); x-accepts: - application/json - /payments/payout: post: - description: | - **Note:** The reference content in this section documents the Payments - Engine endpoint. The Payments Engine endpoints include APIs available only - for customers with Payments Engine enabled on their accounts. - - These endpoints are currently in beta and might be subject to - changes. - - If you want to learn more about Fireblocks Payments Engine, please - contact your Fireblocks Customer Success Manager or email - CSM@fireblocks.com. - - **Create a payout instruction set.** - - A payout instruction set is a set of instructions for distributing payments - from a single payment account to a list of payee accounts. - - The instruction set defines: - - - the payment account and its account type (vault, exchange, or fiat). - - the account type (vault account, exchange account, whitelisted address, - network connection, fiat account, or merchant account), the amount, and the - asset of payment for each payee account. - - Learn more about Fireblocks Payments - Payouts in the following - [guide](https://developers.fireblocks.com/docs/create-payouts). - - Endpoint Permission: Admin, Non-Signing Admin. - operationId: createPayout + description: |- + Creates a new internal wallet with the requested name. + Learn more about Whitelisted Internal Addresses [here](https://developers.fireblocks.com/docs/whitelist-addresses#internal-wallets) + operationId: createInternalWallet 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\ @@ -12141,570 +12307,315 @@ paths: requestBody: content: application/json: - example: - paymentAccount: - id: EX_SUB1 - type: EXCHANGE_ACCOUNT - instructionSet: - - payeeAccount: - id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3 - type: EXTERNAL_WALLET - amount: - amount: "43" - assetId: USDC - - payeeAccount: - id: 3adc1f92-e791-44a8-9aee-7f31c2108b78 - type: NETWORK_CONNECTION - amount: - amount: "4423" - assetId: USDC schema: - $ref: "#/components/schemas/CreatePayoutRequest" + $ref: "#/components/schemas/CreateWalletRequest" responses: "200": - content: - application/json: - example: - payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 - paymentAccount: - id: EX_SUB2 - type: EXCHANGE_ACCOUNT - createdAt: 1645365800 - state: REQUESTED - status: REGISTERED - initMethod: API - instructionSet: - - id: 6ea4a016-536b-49af-b1a0-40b343ccf879 - name: payee-wallet-name - payeeAccount: - id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3 - type: EXTERNAL_WALLET - amount: - amount: "43" - assetId: USDC - state: NOT_STARTED - transactions: [] - - id: e783a79b-6acc-4d18-885d-ed533cad8eeb - name: payee-by-network - payeeAccount: - id: 3adc1f92-e791-44a8-9aee-7f31c2108b78 - type: NETWORK_CONNECTION - amount: - amount: "4423.23" - assetId: USDC - state: NOT_STARTED - transactions: [] - schema: - $ref: "#/components/schemas/PayoutResponse" - description: The payout instruction set creation succeeded and returns the - generated instruction set with a unique payout IDThe payout ID will be - used for executing the payout and checking the payout status. - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Bad request - "401": content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - "5XX": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Internal error. - summary: Create a payout instruction set + $ref: "#/components/schemas/UnmanagedWallet" + description: A new wallet object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Create an internal wallet tags: - - Payments - Payout + - Internal wallets x-rate-limit-category: write x-readme: code-samples: + - language: python + code: "internalWallet = fireblocks.create_internal_wallet(name, customer_ref_id)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const internalWallet = await fireblocks.createInternalWallet(name,\ + \ customerRefId);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.paymentsPayout.createPayout(paymentsPayoutApiCreatePayoutRequest);" + code: "const response: Promise> = fireblocks.internalWallets.createInternalWallet(internalWalletsApiCreateInternalWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.paymentsPayout().createPayout(createPayoutRequest,\ + code: "CompletableFuture> response = fireblocks.internalWallets().createInternalWallet(createWalletRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.payments_payout.create_payout(create_payout_request,\ + code: "response = fireblocks.internal_wallets.create_internal_wallet(create_wallet_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.paymentsPayout.createPayout(paymentsPayoutApiCreatePayoutRequest);" + source: "const response: Promise> = fireblocks.internalWallets.createInternalWallet(internalWalletsApiCreateInternalWalletRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.paymentsPayout().createPayout(createPayoutRequest,\ + source: "CompletableFuture> response = fireblocks.internalWallets().createInternalWallet(createWalletRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.payments_payout.create_payout(create_payout_request,\ + source: "response = fireblocks.internal_wallets.create_internal_wallet(create_wallet_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /payments/payout/{payoutId}/actions/execute: - post: - description: | - **Note:** The reference content in this section documents the Payments - Engine endpoint. The Payments Engine endpoints include APIs available only - for customers with Payments Engine enabled on their accounts. - - These endpoints are currently in beta and might be subject to - changes. - - If you want to learn more about Fireblocks Payments Engine, please - contact your Fireblocks Customer Success Manager or email - CSM@fireblocks.com. - - **Execute a payout instruction set.** - - The instruction set will be verified and executed. - - **Source locking** - - If you are executing a payout instruction set from a payment account with an - already active payout the active payout will complete before the new payout - instruction set can be executed. - - You cannot execute the same payout instruction set more than once. - operationId: executePayoutAction + /internal_wallets/{walletId}: + delete: + description: Deletes an internal wallet by ID. + operationId: deleteInternalWallet parameters: - - description: the payout id received from the creation of the payout instruction - set - example: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 + - description: The ID of the wallet to delete explode: false in: path - name: payoutId + name: walletId required: true schema: 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\ - \ 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: - example: - payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 - schema: - $ref: "#/components/schemas/DispatchPayoutResponse" - description: Executed the payout instruction set - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Bad request - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - "5XX": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Internal error. - summary: Execute a payout instruction set + "201": + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Delete an internal wallet tags: - - Payments - Payout + - Internal wallets x-rate-limit-category: write x-readme: code-samples: + - language: python + code: result = firebocks.delete_internal_wallet(walletId) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const result = await fireblocks.deleteInternalWallet(walletId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.paymentsPayout.executePayoutAction(paymentsPayoutApiExecutePayoutActionRequest);" + code: "const response: Promise> = fireblocks.internalWallets.deleteInternalWallet(internalWalletsApiDeleteInternalWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.paymentsPayout().executePayoutAction(payoutId, idempotencyKey);" + code: CompletableFuture> response = fireblocks.internalWallets().deleteInternalWallet(walletId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.payments_payout.execute_payout_action(payout_id,\ - \ idempotency_key);" + code: response = fireblocks.internal_wallets.delete_internal_wallet(wallet_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.paymentsPayout.executePayoutAction(paymentsPayoutApiExecutePayoutActionRequest);" + source: "const response: Promise> = fireblocks.internalWallets.deleteInternalWallet(internalWalletsApiDeleteInternalWalletRequest);" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.paymentsPayout().executePayoutAction(payoutId, idempotencyKey);" + source: CompletableFuture> response = fireblocks.internalWallets().deleteInternalWallet(walletId); - lang: Python - source: "response = fireblocks.payments_payout.execute_payout_action(payout_id,\ - \ idempotency_key);" + source: response = fireblocks.internal_wallets.delete_internal_wallet(wallet_id); x-accepts: - application/json - /payments/payout/{payoutId}: get: - description: "**Note:** The reference content in this section documents the\ - \ Payments Engine endpoint. The Payments Engine endpoints include APIs available\ - \ only for customers with Payments Engine enabled on their accounts. \nThese\ - \ endpoints are currently in beta and might be subject to changes.\nIf you\ - \ want to learn more about Fireblocks Payments Engine, please contact your\ - \ Fireblocks Customer Success Manager or email CSM@fireblocks.com. \nEndpoint\ - \ Permission: Admin, Non-Signing Admin.\n" - operationId: getPayout + description: Returns information for an internal wallet. + operationId: getInternalWallet parameters: - - description: the payout id received from the creation of the payout instruction - set - example: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 + - description: The ID of the wallet to return explode: false in: path - name: payoutId + name: walletId required: true schema: type: string style: simple responses: "200": - content: - application/json: - example: - payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 - paymentAccount: - id: EX_SUB3 - type: EXCHANGE_ACCOUNT - createdAt: 1645365800 - state: FINALIZED - status: DONE - initMethod: API - instructionSet: - - id: 6ea4a016-536b-49af-b1a0-40b343ccf879 - name: payee-wallet-name - payeeAccount: - id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3 - type: EXTERNAL_WALLET - amount: - amount: "4312" - assetId: USDC - state: COMPLETED - transactions: - - id: 35a4b10c-1f83-4f0b-ba2a-da0e73be2d6e - state: COMPLETED - timestamp: 1645367429 - - id: e783a79b-6acc-4d18-885d-ed533cad8eeb - name: payee-by-network - payeeAccount: - id: 3adc1f92-e791-44a8-9aee-7f31c2108b78 - type: NETWORK_CONNECTION - amount: - amount: "4423.23" - assetId: USDC - state: COMPLETED - transactions: - - id: 4505e7d9-bfc7-41bc-9750-54311fcbbf26 - state: COMPLETED - timestamp: 1645367449 - reportUrl: https://some-url.com/reports/cc5777c1-75a9-4337-aebd-f1f5a40a9391 - schema: - $ref: "#/components/schemas/PayoutResponse" - description: "Returns the current status of the payout instruction set,\ - \ including the status of each payout instruction and the transactions\ - \ created in the process." - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: No payout with the given payout ID exists. - "5XX": content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" - description: Internal error. - summary: Get the status of a payout instruction set + $ref: "#/components/schemas/UnmanagedWallet" + description: A Wallet object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get assets for internal wallet tags: - - Payments - Payout - x-rate-limit-category: query + - Internal wallets + x-rate-limit-category: external_query x-readme: code-samples: + - language: python + code: internalWallet = fireblocks.get_internal_wallet(walletId) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const result = await fireblocks.getInternalWallet(walletId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.paymentsPayout.getPayout(paymentsPayoutApiGetPayoutRequest);" + code: "const response: Promise> = fireblocks.internalWallets.getInternalWallet(internalWalletsApiGetInternalWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.paymentsPayout().getPayout(payoutId); + code: CompletableFuture> response = fireblocks.internalWallets().getInternalWallet(walletId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.payments_payout.get_payout(payout_id); + code: response = fireblocks.internal_wallets.get_internal_wallet(wallet_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.paymentsPayout.getPayout(paymentsPayoutApiGetPayoutRequest);" + source: "const response: Promise> = fireblocks.internalWallets.getInternalWallet(internalWalletsApiGetInternalWalletRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.paymentsPayout().getPayout(payoutId); + source: CompletableFuture> response = fireblocks.internalWallets().getInternalWallet(walletId); - lang: Python - source: response = fireblocks.payments_payout.get_payout(payout_id); + source: response = fireblocks.internal_wallets.get_internal_wallet(wallet_id); x-accepts: - application/json - /payments/workflow_config: - post: - description: "Generate a new configuration ID to be used for initiating executions\ - \ in subsequent phases. This configuration should include the operations you\ - \ intend to incorporate into the workflow, such as TRANSFER, CONVERT, and\ - \ DISBURSE, in addition to your pre-screening preferences, which are disabled\ - \ by default." - operationId: createFlowConfiguration + /internal_wallets/{walletId}/{assetId}: + delete: + description: Deletes a whitelisted address (for an asset) from an internal wallet. + operationId: deleteInternalWalletAsset 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." + - description: The ID of the wallet explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: walletId + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateWorkflowConfigurationRequest" + - description: The ID of the asset to delete + explode: false + in: path + name: assetId + required: true + schema: + type: string + x-fb-entity: asset + style: simple responses: - "202": - content: - application/json: - schema: - $ref: "#/components/schemas/WorkflowConfiguration" - description: Configuration is being generated - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Not found - summary: Create payment flow configuration + "201": + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Delete a whitelisted address tags: - - Payments - Flows - x-internal: true + - Internal wallets x-rate-limit-category: write - x-content-type: application/json + x-readme: + code-samples: + - language: python + code: "result = fireblocks.delete_internal_wallet_asset(walletId, assetId)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const result = await fireblocks.deleteInternalWalletAsset(walletId,\ + \ assetId);" + name: Fireblocks SDK Javascript example + - language: typescript + code: "const response: Promise> = fireblocks.internalWallets.deleteInternalWalletAsset(internalWalletsApiDeleteInternalWalletAssetRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.internalWallets().deleteInternalWalletAsset(walletId,\ + \ assetId);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.internal_wallets.delete_internal_wallet_asset(wallet_id,\ + \ asset_id);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.internalWallets.deleteInternalWalletAsset(internalWalletsApiDeleteInternalWalletAssetRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.internalWallets().deleteInternalWalletAsset(walletId,\ + \ assetId);" + - lang: Python + source: "response = fireblocks.internal_wallets.delete_internal_wallet_asset(wallet_id,\ + \ asset_id);" x-accepts: - application/json - /payments/workflow_config/{configId}: - delete: - description: Delete a configuration using the specified "configId". - operationId: deleteFlowConfiguration + get: + description: Returns information for an asset in an internal wallet. + operationId: getInternalWalletAsset parameters: - - explode: false + - description: The ID of the wallet + explode: false in: path - name: configId + name: walletId + required: true + schema: + type: string + style: simple + - description: The ID of the asset to return + explode: false + in: path + name: assetId required: true schema: type: string + x-fb-entity: asset style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/WorkflowConfigurationId" - description: The specified configuration has been deleted successfully. - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Not found - summary: Delete workflow configuration - tags: - - Payments - Flows - x-internal: true - x-rate-limit-category: write - x-accepts: - - application/json - get: - description: Retrieve a previously created workflow configuration using the - specified "configId". - operationId: getFlowConfiguration - parameters: - - explode: false - in: path - name: configId - required: true - schema: - type: string - style: simple - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/WorkflowConfiguration" - description: Returns a workflow configuration - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Not found - summary: Retrieve workflow configuration + $ref: "#/components/schemas/WalletAsset" + description: A Wallet Asset object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get an asset from an internal wallet tags: - - Payments - Flows - x-internal: true - x-rate-limit-category: read + - Internal wallets + x-rate-limit-category: external_query + x-readme: + code-samples: + - language: python + code: "internalWalletAsset = fireblocks.get_internal_wallet_asset(walletId,\ + \ assetId)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const internalWalletAsset = fireblocks.getInternalWalletAsset(walletId,\ + \ assetId);" + name: Fireblocks SDK Javascript example + - language: typescript + code: "const response: Promise> = fireblocks.internalWallets.getInternalWalletAsset(internalWalletsApiGetInternalWalletAssetRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.internalWallets().getInternalWalletAsset(walletId,\ + \ assetId);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.internal_wallets.get_internal_wallet_asset(wallet_id,\ + \ asset_id);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.internalWallets.getInternalWalletAsset(internalWalletsApiGetInternalWalletAssetRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.internalWallets().getInternalWalletAsset(walletId,\ + \ assetId);" + - lang: Python + source: "response = fireblocks.internal_wallets.get_internal_wallet_asset(wallet_id,\ + \ asset_id);" x-accepts: - application/json - /payments/workflow_execution: post: - description: "Validate the \"workflow-config\" previously created by utilizing\ - \ the unique \"configId\". This step requires the mandatory field amount,\ - \ and allows for modifications to other fields defined via the \"workflow-config\"\ - \ endpoint, including pre-screening preferences. A response containing the\ - \ \"workflowExecutionId\" and detailing the validation status will be provided.\ - \ Execution is ready when the \"workflow-execution\" status is READY_FOR_LAUNCH,\ - \ at which point it can be initiated with \"POST /workflow-execution/{workflowExecutionId}/actions/execute\"\ - ." - operationId: createFlowExecution + description: Adds an asset to an existing internal wallet. + operationId: createInternalWalletAsset 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." + - description: The ID of the wallet explode: false - in: header - name: Idempotency-Key - required: false - schema: - type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateWorkflowExecutionRequest" - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/WorkflowExecution" - description: Workflow execution entity has been created successfully. - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Not found - summary: Create workflow execution - tags: - - Payments - Flows - x-internal: true - x-rate-limit-category: write - x-content-type: application/json - x-accepts: - - application/json - /payments/workflow_execution/{workflowExecutionId}: - get: - description: Retrieve details of a previously initiated workflow execution by - specifying the "workflowExecutionId" - operationId: getFlowExecution - parameters: - - explode: false in: path - name: workflowExecutionId + name: walletId required: true schema: type: string style: simple - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/WorkflowExecution" - description: Returns workflow execution by id with preview info - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Not found - summary: Get workflow execution details - tags: - - Payments - Flows - x-internal: true - x-rate-limit-category: read - x-accepts: - - application/json - /payments/workflow_execution/{workflowExecutionId}/actions/execute: - post: - description: "Launch the execution of a pre-configured workflow, identified\ - \ by \"workflowExecutionId\", once it reaches the READY_FOR_LAUNCH state.\ - \ The workflow undergoes several phases during execution - EXECUTION_IN_PROGRESS\ - \ - Marks the start of the workflow execution. EXECUTION_COMPLETED or EXECUTION_FAILED\ - \ - Indicates the execution has reached a final state." - operationId: launchFlowExecution - parameters: - - explode: false + - description: The ID of the asset to add + explode: false in: path - name: workflowExecutionId + 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\ @@ -12717,155 +12628,159 @@ paths: schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateInternalWalletAssetRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/WorkflowExecution" - description: Workflow execution has been executed - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Not found - summary: Execute the payments workflow - tags: - - Payments - Flows - x-internal: true - x-rate-limit-category: write - x-accepts: - - application/json - /gas_station: - get: - description: |- - Returns gas station settings and ETH balance. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: getGasStationInfo - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/GasStationPropertiesResponse" - description: Gas Station properties + $ref: "#/components/schemas/WalletAsset" + description: A Wallet Asset object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get gas station settings + summary: Add an asset to an internal wallet tags: - - Gas stations - x-rate-limit-category: query + - Internal wallets + x-rate-limit-category: write x-readme: code-samples: - language: python - code: gas_station_info = fireblocks.get_gas_station_info() + code: "internalWalletAsset = fireblocks.create_internal_wallet_asset(walletId,\ + \ assetId, address, tag)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const gasStationInfo = await fireblocks.gasStationInfo(); + code: "const internalWalletAsset = await fireblocks.createInternalWalletAsset(walletContainerId,\ + \ assetId, address, tag);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.gasStations.getGasStationInfo();" + code: "const response: Promise> = fireblocks.internalWallets.createInternalWalletAsset(internalWalletsApiCreateInternalWalletAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.gasStations().getGasStationInfo(); + code: "CompletableFuture> response = fireblocks.internalWallets().createInternalWalletAsset(walletId,\ + \ assetId, createInternalWalletAssetRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.gas_stations.get_gas_station_info(); + code: "response = fireblocks.internal_wallets.create_internal_wallet_asset(wallet_id,\ + \ asset_id, create_internal_wallet_asset_request, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.gasStations.getGasStationInfo();" + source: "const response: Promise> = fireblocks.internalWallets.createInternalWalletAsset(internalWalletsApiCreateInternalWalletAssetRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.gasStations().getGasStationInfo(); + source: "CompletableFuture> response = fireblocks.internalWallets().createInternalWalletAsset(walletId,\ + \ assetId, createInternalWalletAssetRequest, idempotencyKey);" - lang: Python - source: response = fireblocks.gas_stations.get_gas_station_info(); + source: "response = fireblocks.internal_wallets.create_internal_wallet_asset(wallet_id,\ + \ asset_id, create_internal_wallet_asset_request, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /gas_station/{assetId}: + /internal_wallets/{walletId}/assets: get: - description: |- - Returns gas station settings and balances for a requested asset. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: getGasStationByAssetId + description: Returns a paginated response of assets in an internal wallet. + operationId: getInternalWalletAssetsPaginated parameters: - - description: The ID of the asset + - description: The ID of the internal wallet to return assets for explode: false in: path - name: assetId + name: walletId required: true schema: type: string - x-fb-entity: asset style: simple + - example: 10 + explode: true + in: query + name: pageSize + required: false + schema: + default: 50 + description: Number of assets to return per page + maximum: 200 + minimum: 1 + type: number + style: form + - explode: true + in: query + name: pageCursor + required: false + schema: + description: Cursor for pagination + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GasStationPropertiesResponse" - description: Gas Station properties + $ref: "#/components/schemas/PaginatedAssetsResponse" + description: A paginated response of assets for the internal wallet headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get gas station settings by asset + summary: List assets in an internal wallet (Paginated) tags: - - Gas stations + - Internal wallets x-rate-limit-category: query x-readme: code-samples: - language: python - code: gas_station_info = fireblocks.get_gas_station_info(asset_id) + code: "internalWalletAssets = fireblocks.get_internal_wallet_assets(walletId,\ + \ pageSize, pageCursor)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const gasStationInfo = await fireblocks.gasStationInfo(assetId); + code: "const internalWalletAssets = fireblocks.getInternalWalletAssets(walletId,\ + \ pageSize, pageCursor);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.gasStations.getGasStationByAssetId(gasStationsApiGetGasStationByAssetIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.internalWallets.getInternalWalletAssetsPaginated(internalWalletsApiGetInternalWalletAssetsPaginatedRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.gasStations().getGasStationByAssetId(assetId); + code: "CompletableFuture> response\ + \ = fireblocks.internalWallets().getInternalWalletAssetsPaginated(walletId,\ + \ pageSize, pageCursor);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.gas_stations.get_gas_station_by_asset_id(asset_id); + code: "response = fireblocks.internal_wallets.get_internal_wallet_assets_paginated(wallet_id,\ + \ page_size, page_cursor);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.gasStations.getGasStationByAssetId(gasStationsApiGetGasStationByAssetIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.internalWallets.getInternalWalletAssetsPaginated(internalWalletsApiGetInternalWalletAssetsPaginatedRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.gasStations().getGasStationByAssetId(assetId); + source: "CompletableFuture> response\ + \ = fireblocks.internalWallets().getInternalWalletAssetsPaginated(walletId,\ + \ pageSize, pageCursor);" - lang: Python - source: response = fireblocks.gas_stations.get_gas_station_by_asset_id(asset_id); + source: "response = fireblocks.internal_wallets.get_internal_wallet_assets_paginated(wallet_id,\ + \ page_size, page_cursor);" x-accepts: - application/json - /gas_station/configuration: - put: - description: |- - Configures gas station settings for ETH. - Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: updateGasStationConfiguration + /internal_wallets/{walletId}/set_customer_ref_id: + post: + description: Sets an AML/KYT customer reference ID for the specific internal + wallet. + operationId: setCustomerRefIdForInternalWallet parameters: + - description: The wallet ID + explode: false + in: path + name: walletId + required: true + schema: + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -12881,193 +12796,222 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GasStationConfiguration" + $ref: "#/components/schemas/SetCustomerRefIdRequest" required: true responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/EditGasStationConfigurationResponse" + "201": description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Edit gas station settings + summary: Set an AML/KYT customer reference ID for internal wallet tags: - - Gas stations + - Internal wallets x-rate-limit-category: write x-readme: code-samples: - language: python - code: "gas_station = fireblocks.set_gas_station_configuration(gas_threshold,\ - \ gas_cap, max_gas_price, asset_id)" + code: "result = firebocks.set_customer_ref_id_for_internal_wallet(wallet_id,\ + \ customer_ref_id)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const gasStation = await fireblocks.setGasStationConfiguration(gasThreshold,\ - \ gasCap, maxGasPrice)" + code: "const result = await fireblocks.setCustomerRefIdForInternalWallet(walletId,\ + \ customerRefId);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.gasStations.updateGasStationConfiguration(gasStationsApiUpdateGasStationConfigurationRequest);" + code: "const response: Promise> = fireblocks.internalWallets.setCustomerRefIdForInternalWallet(internalWalletsApiSetCustomerRefIdForInternalWalletRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.gasStations().updateGasStationConfiguration(gasStationConfiguration,\ - \ idempotencyKey);" + code: "CompletableFuture> response = fireblocks.internalWallets().setCustomerRefIdForInternalWallet(setCustomerRefIdRequest,\ + \ walletId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.gas_stations.update_gas_station_configuration(gas_station_configuration,\ - \ idempotency_key);" + code: "response = fireblocks.internal_wallets.set_customer_ref_id_for_internal_wallet(set_customer_ref_id_request,\ + \ wallet_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.gasStations.updateGasStationConfiguration(gasStationsApiUpdateGasStationConfigurationRequest);" + source: "const response: Promise> = fireblocks.internalWallets.setCustomerRefIdForInternalWallet(internalWalletsApiSetCustomerRefIdForInternalWalletRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.gasStations().updateGasStationConfiguration(gasStationConfiguration,\ - \ idempotencyKey);" + source: "CompletableFuture> response = fireblocks.internalWallets().setCustomerRefIdForInternalWallet(setCustomerRefIdRequest,\ + \ walletId, idempotencyKey);" - lang: Python - source: "response = fireblocks.gas_stations.update_gas_station_configuration(gas_station_configuration,\ - \ idempotency_key);" + source: "response = fireblocks.internal_wallets.set_customer_ref_id_for_internal_wallet(set_customer_ref_id_request,\ + \ wallet_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /gas_station/configuration/{assetId}: - put: - description: |- - Configures gas station settings for a requested asset. - Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: updateGasStationConfigurationByAssetId + /key_link/signing_keys: + get: + description: Returns the list of signing keys in the workspace + operationId: getSigningKeysList parameters: - - description: The ID of the asset - explode: false - in: path - name: assetId - required: true + - description: Cursor to the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + explode: true + in: query + name: pageCursor + required: false 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 + style: form + - description: Amount of results to return in the next page + explode: true + in: query + name: pageSize + required: false + schema: + default: 10 + maximum: 50 + minimum: 1 + type: number + style: form + - description: Field(s) to use for sorting + explode: true + in: query + name: sortBy required: false schema: + default: createdAt + enum: + - createdAt type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/GasStationConfiguration" - required: true - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/EditGasStationConfigurationResponse" - description: OK - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Edit gas station settings for an asset - tags: - - Gas stations - x-rate-limit-category: write - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.gasStations.updateGasStationConfigurationByAssetId(gasStationsApiUpdateGasStationConfigurationByAssetIdRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture>\ - \ response = fireblocks.gasStations().updateGasStationConfigurationByAssetId(gasStationConfiguration,\ - \ assetId, idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.gas_stations.update_gas_station_configuration_by_asset_id(gas_station_configuration,\ - \ asset_id, idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.gasStations.updateGasStationConfigurationByAssetId(gasStationsApiUpdateGasStationConfigurationByAssetIdRequest);" - - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.gasStations().updateGasStationConfigurationByAssetId(gasStationConfiguration,\ - \ assetId, idempotencyKey);" - - lang: Python - source: "response = fireblocks.gas_stations.update_gas_station_configuration_by_asset_id(gas_station_configuration,\ - \ asset_id, idempotency_key);" - x-content-type: application/json - x-accepts: - - application/json - /management/user_groups: - get: - description: |- - Get all user groups in your workspace - - - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: getUserGroups + style: form + - description: Is the order ascending or descending + explode: true + in: query + name: order + required: false + schema: + default: ASC + enum: + - ASC + - DESC + type: string + style: form + - description: Return keys assigned to a specific vault + example: 4 + explode: true + in: query + name: vaultAccountId + required: false + schema: + type: number + style: form + - description: Return keys associated with a specific agent user + example: 12fed207-5bdf-4a0c-ab12-fcd2627f75d1 + explode: true + in: query + name: agentUserId + required: false + schema: + type: string + style: form + - description: Return only keys with a specific algorithm + example: ECDSA_SECP256K1 + explode: true + in: query + name: algorithm + required: false + schema: + enum: + - ECDSA_SECP256K1 + - EDDSA_ED25519 + type: string + style: form + - description: Return keys that have been proof of ownership + explode: true + in: query + name: enabled + required: false + schema: + type: boolean + style: form + - description: Return keys that are proof of ownership but not assigned. Available + filter can be used only when vaultAccountId and enabled filters are not + set + explode: true + in: query + name: available + required: false + schema: + type: boolean + style: form + - description: Return keys that are assigned to a vault account + explode: true + in: query + name: isAssigned + required: false + schema: + nullable: true + type: boolean + style: form + - description: A case-insensitive prefix filter that matches records where either + keyId or signingDeviceKeyID starts with the specified value. + explode: true + in: query + name: keyPrefix + required: false + schema: + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/UserGroupsResponse" - description: List of the user groups in your workspace + $ref: "#/components/schemas/GetSigningKeyResponseDto" + description: List of signing keys and a data that allows requesting the + next page if applicable headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List user groups + summary: Get list of signing keys tags: - - User groups (Beta) + - Key Link (Beta) x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.userGroupsBeta.getUserGroups();" + code: "const response: Promise>\ + \ = fireblocks.keyLinkBeta.getSigningKeysList(keyLinkBetaApiGetSigningKeysListRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = - fireblocks.userGroupsBeta().getUserGroups(); + code: "CompletableFuture> response\ + \ = fireblocks.keyLinkBeta().getSigningKeysList(pageCursor, pageSize,\ + \ sortBy, order, vaultAccountId, agentUserId, algorithm, enabled, available,\ + \ isAssigned, keyPrefix);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.user_groups_beta.get_user_groups(); + code: "response = fireblocks.key_link_beta.get_signing_keys_list(page_cursor,\ + \ page_size, sort_by, order, vault_account_id, agent_user_id, algorithm,\ + \ enabled, available, is_assigned, key_prefix);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.userGroupsBeta.getUserGroups();" + source: "const response: Promise>\ + \ = fireblocks.keyLinkBeta.getSigningKeysList(keyLinkBetaApiGetSigningKeysListRequest);" - lang: Java - source: CompletableFuture>> response = - fireblocks.userGroupsBeta().getUserGroups(); + source: "CompletableFuture> response\ + \ = fireblocks.keyLinkBeta().getSigningKeysList(pageCursor, pageSize, sortBy,\ + \ order, vaultAccountId, agentUserId, algorithm, enabled, available, isAssigned,\ + \ keyPrefix);" - lang: Python - source: response = fireblocks.user_groups_beta.get_user_groups(); + source: "response = fireblocks.key_link_beta.get_signing_keys_list(page_cursor,\ + \ page_size, sort_by, order, vault_account_id, agent_user_id, algorithm,\ + \ enabled, available, is_assigned, key_prefix);" x-accepts: - application/json post: - description: |- - Create a new user group. Users with the Viewer role cannot be added to groups. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: createUserGroup + description: "Adds a new signing key to the workspace. The added key will be\ + \ linked to the specific Fireblocks agent user ID. The same user will receive\ + \ the proof of ownership message to be signed, and upon successful proof,\ + \ the key will become enabled." + operationId: createSigningKey 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\ @@ -13084,175 +13028,318 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UserGroupCreateRequest" + $ref: "#/components/schemas/CreateSigningKeyDto" required: true responses: "201": content: application/json: schema: - $ref: "#/components/schemas/CreateUserGroupResponse" - description: User group created and pending approval + $ref: "#/components/schemas/SigningKeyDto" + description: Newly created signing key headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create user group + summary: Add a new signing key tags: - - User groups (Beta) + - Key Link (Beta) x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.userGroupsBeta.createUserGroup(userGroupsBetaApiCreateUserGroupRequest);" + code: "const response: Promise> = fireblocks.keyLinkBeta.createSigningKey(keyLinkBetaApiCreateSigningKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.userGroupsBeta().createUserGroup(userGroupCreateRequest,\ + code: "CompletableFuture> response = fireblocks.keyLinkBeta().createSigningKey(createSigningKeyDto,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.user_groups_beta.create_user_group(user_group_create_request,\ + code: "response = fireblocks.key_link_beta.create_signing_key(create_signing_key_dto,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.userGroupsBeta.createUserGroup(userGroupsBetaApiCreateUserGroupRequest);" + source: "const response: Promise> = fireblocks.keyLinkBeta.createSigningKey(keyLinkBetaApiCreateSigningKeyRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.userGroupsBeta().createUserGroup(userGroupCreateRequest,\ + source: "CompletableFuture> response = fireblocks.keyLinkBeta().createSigningKey(createSigningKeyDto,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.user_groups_beta.create_user_group(user_group_create_request,\ + source: "response = fireblocks.key_link_beta.create_signing_key(create_signing_key_dto,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /management/user_groups/{groupId}: - delete: - description: | - Delete a user group by ID. - - **Note**: - - This endpoint is now in Beta, disabled for general availability at this time. - - Please note that this endpoint is available only for API keys with Admin permissions. - operationId: deleteUserGroup + /key_link/signing_keys/{keyId}: + get: + description: "Returns a signing key if it exists, identified by the specified\ + \ `keyId`." + operationId: getSigningKey parameters: - - description: The ID of the user group + - description: The unique identifier for the signing key provided by Fireblocks explode: false in: path - name: groupId + name: keyId required: true schema: + example: 46a92767-5f93-4a46-9eed-f012196bb4fc type: string style: simple responses: - "204": - description: Request to delete user group submitted for approval + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/SigningKeyDto" + description: Requested signing key data headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Delete user group + summary: Get a signing key by `keyId` tags: - - User groups (Beta) - x-rate-limit-category: write + - Key Link (Beta) + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.userGroupsBeta.deleteUserGroup(userGroupsBetaApiDeleteUserGroupRequest);" + code: "const response: Promise> = fireblocks.keyLinkBeta.getSigningKey(keyLinkBetaApiGetSigningKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.userGroupsBeta().deleteUserGroup(groupId); + code: CompletableFuture> response = fireblocks.keyLinkBeta().getSigningKey(keyId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.user_groups_beta.delete_user_group(group_id); + code: response = fireblocks.key_link_beta.get_signing_key(key_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.userGroupsBeta.deleteUserGroup(userGroupsBetaApiDeleteUserGroupRequest);" + source: "const response: Promise> = fireblocks.keyLinkBeta.getSigningKey(keyLinkBetaApiGetSigningKeyRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.userGroupsBeta().deleteUserGroup(groupId); + source: CompletableFuture> response = fireblocks.keyLinkBeta().getSigningKey(keyId); - lang: Python - source: response = fireblocks.user_groups_beta.delete_user_group(group_id); + source: response = fireblocks.key_link_beta.get_signing_key(key_id); x-accepts: - application/json - get: - description: | - Get a user group by ID. - - **Note**: - - This endpoint is now in Beta, disabled for general availability at this time. - - Please note that this endpoint is available only for API keys with Admin permissions. - operationId: getUserGroup + patch: + description: "Allows assigning the signing key to a vault account, if it hasn't\ + \ been assigned to any other vault accounts yet." + operationId: updateSigningKey parameters: - - description: The ID of the user group + - description: The unique identifier for the signing key provided by Fireblocks explode: false in: path - name: groupId + name: keyId required: true schema: + example: 46a92767-5f93-4a46-9eed-f012196bb4fc type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ModifySigningKeyDto" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/UserGroupResponse" - description: User group + $ref: "#/components/schemas/SigningKeyDto" + description: Modified signing key data headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get user group + summary: Modify the signing keyId tags: - - User groups (Beta) - x-rate-limit-category: read + - Key Link (Beta) + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.userGroupsBeta.getUserGroup(userGroupsBetaApiGetUserGroupRequest);" + code: "const response: Promise> = fireblocks.keyLinkBeta.updateSigningKey(keyLinkBetaApiUpdateSigningKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.userGroupsBeta().getUserGroup(groupId); + code: "CompletableFuture> response = fireblocks.keyLinkBeta().updateSigningKey(modifySigningKeyDto,\ + \ keyId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.user_groups_beta.get_user_group(group_id); + code: "response = fireblocks.key_link_beta.update_signing_key(modify_signing_key_dto,\ + \ key_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.userGroupsBeta.getUserGroup(userGroupsBetaApiGetUserGroupRequest);" + source: "const response: Promise> = fireblocks.keyLinkBeta.updateSigningKey(keyLinkBetaApiUpdateSigningKeyRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.userGroupsBeta().getUserGroup(groupId); + source: "CompletableFuture> response = fireblocks.keyLinkBeta().updateSigningKey(modifySigningKeyDto,\ + \ keyId);" - lang: Python - source: response = fireblocks.user_groups_beta.get_user_group(group_id); + source: "response = fireblocks.key_link_beta.update_signing_key(modify_signing_key_dto,\ + \ key_id);" + x-content-type: application/json x-accepts: - application/json - put: - description: | - Update a user group by ID. - - **Note**: - - This endpoint is now in Beta, disabled for general availability at this time. - - Please note that this endpoint is available only for API keys with Admin permissions. - operationId: updateUserGroup + /key_link/signing_keys/{keyId}/agent_user_id: + patch: + description: Can modify existing signing key id if the key is not enabled. The + change done in background and will be visible once applied. If key is already + enabled (after proof of ownership) the user cannot be changed. + operationId: setAgentId parameters: - - description: The ID of the user group + - description: The unique identifier for the signing key provided by Fireblocks explode: false in: path - name: groupId + name: keyId required: true schema: + example: 46a92767-5f93-4a46-9eed-f012196bb4fc type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ModifySigningKeyAgentIdDto" + required: true + responses: + "204": + description: Agent user id modification process has started in background. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Set agent user id + tags: + - Key Link (Beta) + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.keyLinkBeta.setAgentId(keyLinkBetaApiSetAgentIdRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.keyLinkBeta().setAgentId(modifySigningKeyAgentIdDto,\ + \ keyId);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.key_link_beta.set_agent_id(modify_signing_key_agent_id_dto,\ + \ key_id);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.keyLinkBeta.setAgentId(keyLinkBetaApiSetAgentIdRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.keyLinkBeta().setAgentId(modifySigningKeyAgentIdDto,\ + \ keyId);" + - lang: Python + source: "response = fireblocks.key_link_beta.set_agent_id(modify_signing_key_agent_id_dto,\ + \ key_id);" + x-content-type: application/json + x-accepts: + - application/json + /key_link/validation_keys: + get: + description: Returns the list of validation keys in the workspace + operationId: getValidationKeysList + parameters: + - description: Cursor to the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Amount of results to return in the next page + explode: true + in: query + name: pageSize + required: false + schema: + default: 10 + maximum: 50 + minimum: 1 + type: number + style: form + - description: Field(s) to use for sorting + explode: true + in: query + name: sortBy + required: false + schema: + default: createdAt + enum: + - createdAt + type: string + style: form + - description: Is the order ascending or descending + explode: true + in: query + name: order + required: false + schema: + default: ASC + enum: + - ASC + - DESC + type: string + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetValidationKeyResponseDto" + description: Validation keys list along with data required to request the + next page if applicable + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get list of registered validation keys + tags: + - Key Link (Beta) + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.keyLinkBeta.getValidationKeysList(keyLinkBetaApiGetValidationKeysListRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.keyLinkBeta().getValidationKeysList(pageCursor, pageSize,\ + \ sortBy, order);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.key_link_beta.get_validation_keys_list(page_cursor,\ + \ page_size, sort_by, order);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.keyLinkBeta.getValidationKeysList(keyLinkBetaApiGetValidationKeysListRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.keyLinkBeta().getValidationKeysList(pageCursor, pageSize,\ + \ sortBy, order);" + - lang: Python + source: "response = fireblocks.key_link_beta.get_validation_keys_list(page_cursor,\ + \ page_size, sort_by, order);" + x-accepts: + - application/json + post: + description: Adds a new validation key used to validate signing keys. The new + validation key will undergo an approval process by the workspace quorum. + operationId: createValidationKey + 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\ @@ -13268,426 +13355,350 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UserGroupUpdateRequest" + $ref: "#/components/schemas/CreateValidationKeyDto" required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/UserGroupCreateResponse" - description: User group updated and the changes are pending approval + $ref: "#/components/schemas/CreateValidationKeyResponseDto" + description: The validation key that was added and is pending approval. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Update user group + summary: Add a new validation key tags: - - User groups (Beta) + - Key Link (Beta) x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.userGroupsBeta.updateUserGroup(userGroupsBetaApiUpdateUserGroupRequest);" + code: "const response: Promise>\ + \ = fireblocks.keyLinkBeta.createValidationKey(keyLinkBetaApiCreateValidationKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.userGroupsBeta().updateUserGroup(userGroupUpdateRequest,\ - \ groupId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.keyLinkBeta().createValidationKey(createValidationKeyDto,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.user_groups_beta.update_user_group(user_group_update_request,\ - \ group_id, idempotency_key);" + code: "response = fireblocks.key_link_beta.create_validation_key(create_validation_key_dto,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.userGroupsBeta.updateUserGroup(userGroupsBetaApiUpdateUserGroupRequest);" + source: "const response: Promise>\ + \ = fireblocks.keyLinkBeta.createValidationKey(keyLinkBetaApiCreateValidationKeyRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.userGroupsBeta().updateUserGroup(userGroupUpdateRequest,\ - \ groupId, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.keyLinkBeta().createValidationKey(createValidationKeyDto,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.user_groups_beta.update_user_group(user_group_update_request,\ - \ group_id, idempotency_key);" + source: "response = fireblocks.key_link_beta.create_validation_key(create_validation_key_dto,\ + \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /users: + /key_link/validation_keys/{keyId}: get: - description: | - List all users for the workspace. - - Please note that this endpoint is available only for API keys with Admin permissions. - operationId: getUsers + description: "Returns a validation key if it exists, identified by the specified\ + \ `keyId`." + operationId: getValidationKey + parameters: + - explode: false + in: path + name: keyId + required: true + schema: + type: string + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetUsersResponse" - description: List of users + $ref: "#/components/schemas/ValidationKeyDto" + description: The requested validation key data headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List users + summary: Get a validation key by `keyId` tags: - - Users + - Key Link (Beta) x-rate-limit-category: query x-readme: code-samples: - - language: python - code: users = fireblocks.get_users() - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const users = await fireblocks.getUsers(); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.users.getUsers();" + code: "const response: Promise> = fireblocks.keyLinkBeta.getValidationKey(keyLinkBetaApiGetValidationKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = fireblocks.users().getUsers(); + code: CompletableFuture> response = fireblocks.keyLinkBeta().getValidationKey(keyId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.users.get_users(); + code: response = fireblocks.key_link_beta.get_validation_key(key_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.users.getUsers();" + source: "const response: Promise> = fireblocks.keyLinkBeta.getValidationKey(keyLinkBetaApiGetValidationKeyRequest);" - lang: Java - source: CompletableFuture>> response = fireblocks.users().getUsers(); + source: CompletableFuture> response = fireblocks.keyLinkBeta().getValidationKey(keyId); - lang: Python - source: response = fireblocks.users.get_users(); + source: response = fireblocks.key_link_beta.get_validation_key(key_id); x-accepts: - application/json - /management/audit_logs: - get: - description: |- - Retrieve audit log events for the workspace with optional filtering, date range, sorting, and cursor-based pagination. - - Filters within the same field are combined as OR (e.g. category=Administration&category=Security returns events in either category). Filters across different fields are combined as AND. - - **Deprecated parameters:** `timePeriod` and `cursor` remain functional for backward compatibility but new integrations should use `startTime`/`endTime` and `pageCursor` instead. - - Endpoint Permission: Admin, Non-Signing Admin, Auditor, Security Admin, Security Auditor. - operationId: getAuditLogs + patch: + description: Allows disabling validation key even if it has not expired yet. + It is not allowed to enable the validation key back. Another key has to be + used for future validations. + operationId: disableValidationKey parameters: - - description: Start of date range as epoch time in milliseconds. Takes precedence - over timePeriod when provided. Must be no more than 1 year before the current - time. - explode: true - in: query - name: startTime - required: false - schema: - type: integer - style: form - - description: End of date range as epoch time in milliseconds. Must be after - startTime. Defaults to now when omitted. - explode: true - in: query - name: endTime - required: false - schema: - type: integer - style: form - - deprecated: true - description: Deprecated. Use startTime/endTime instead. Ignored when startTime - is provided. Defaults to DAY when neither timePeriod nor startTime is supplied. - explode: true - in: query - name: timePeriod - required: false - schema: - enum: - - DAY - - WEEK - type: string - style: form - - description: Filter by event category. Repeat the parameter for multiple values - (OR logic within field). - explode: true - in: query - name: category - required: false - schema: - items: - type: string - type: array - style: form - - description: Filter by event subject. Repeat the parameter for multiple values. - explode: true - in: query - name: subject - required: false - schema: - items: - type: string - type: array - style: form - - description: Filter by event type. Repeat the parameter for multiple values. - explode: true - in: query - name: event - required: false - schema: - items: - type: string - type: array - style: form - - description: Filter by user name. Repeat the parameter for multiple values. - explode: true - in: query - name: user - required: false - schema: - items: - type: string - type: array - style: form - - description: Filter by user ID. Repeat the parameter for multiple values. - explode: true - in: query - name: userId - required: false - schema: - items: - type: string - type: array - style: form - - description: Sort direction. Defaults to DESC. - explode: true - in: query - name: order - required: false - schema: - default: DESC - enum: - - ASC - - DESC - type: string - style: form - - description: Number of results per page. Maximum 500. Defaults to 200. - explode: true - in: query - name: pageSize - required: false - schema: - default: 200 - maximum: 500 - minimum: 1 - type: integer - style: form - - description: Cursor returned from the previous response to fetch the next - page. - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - deprecated: true - description: Deprecated. Use pageCursor instead. - explode: true - in: query - name: cursor - required: false + - description: The unique identifier for the validation key provided by Fireblocks + explode: false + in: path + name: keyId + required: true schema: + example: 46a92767-5f93-4a46-9eed-f012196bb4fc type: string - style: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ModifyValidationKeyDto" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetAuditLogsResponse" - description: Audit log events matching the requested filters and date range + $ref: "#/components/schemas/ValidationKeyDto" + description: Modified validation key data headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "400": - $ref: "#/components/responses/Error" - "403": + default: $ref: "#/components/responses/Error" + summary: Disables a validation key + tags: + - Key Link (Beta) + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.keyLinkBeta.disableValidationKey(keyLinkBetaApiDisableValidationKeyRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.keyLinkBeta().disableValidationKey(modifyValidationKeyDto,\ + \ keyId);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.key_link_beta.disable_validation_key(modify_validation_key_dto,\ + \ key_id);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.keyLinkBeta.disableValidationKey(keyLinkBetaApiDisableValidationKeyRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.keyLinkBeta().disableValidationKey(modifyValidationKeyDto,\ + \ keyId);" + - lang: Python + source: "response = fireblocks.key_link_beta.disable_validation_key(modify_validation_key_dto,\ + \ key_id);" + x-content-type: application/json + x-accepts: + - application/json + /keys/mpc/list: + get: + description: "Returns a list of MPC signing keys of the workspace. For each\ + \ key, the list of players associated with it is attached.\n**Note:** \nThis\ + \ endpoint is currently in beta and might be subject to changes." + operationId: getMpcKeysList + parameters: [] + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetMpcKeysResponse" + description: List of mpc keys + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get audit logs + summary: Get list of mpc keys tags: - - Audit Logs + - Keys (Beta) x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.auditLogs.getAuditLogs(auditLogsApiGetAuditLogsRequest);" + code: "const response: Promise> =\ + \ fireblocks.keysBeta.getMpcKeysList();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.auditLogs().getAuditLogs(startTime,\ - \ endTime, timePeriod, category, subject, event, user, userId, order,\ - \ pageSize, pageCursor, cursor);" + code: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysList(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.audit_logs.get_audit_logs(start_time, end_time,\ - \ time_period, category, subject, event, user, user_id, order, page_size,\ - \ page_cursor, cursor);" + code: response = fireblocks.keys_beta.get_mpc_keys_list(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.auditLogs.getAuditLogs(auditLogsApiGetAuditLogsRequest);" + source: "const response: Promise> =\ + \ fireblocks.keysBeta.getMpcKeysList();" - lang: Java - source: "CompletableFuture> response = fireblocks.auditLogs().getAuditLogs(startTime,\ - \ endTime, timePeriod, category, subject, event, user, userId, order, pageSize,\ - \ pageCursor, cursor);" + source: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysList(); - lang: Python - source: "response = fireblocks.audit_logs.get_audit_logs(start_time, end_time,\ - \ time_period, category, subject, event, user, user_id, order, page_size,\ - \ page_cursor, cursor);" + source: response = fireblocks.keys_beta.get_mpc_keys_list(); x-accepts: - application/json - /off_exchange/add: - post: + /keys/mpc/list/{userId}: + get: description: |- - Add collateral and create deposit request. - Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: addOffExchange + Returns a list of MPC signing keys of a specific user. For each key, the list of players associated with it is attached. + **Note:** + This endpoint is currently in beta and might be subject to changes. + operationId: getMpcKeysListByUser 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." + - description: The id for the user + example: 46a92767-5f93-4a46-9eed-f012196bb4fc explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: userId + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/AddCollateralRequestBody" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/CreateTransactionResponse" - description: A transaction object + $ref: "#/components/schemas/GetMpcKeysResponse" + description: List of mpc keys + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Add Collateral + summary: Get list of mpc keys by `userId` tags: - - Off exchanges - x-rate-limit-category: write + - Keys (Beta) + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.offExchanges.addOffExchange(offExchangesApiAddOffExchangeRequest);" + code: "const response: Promise> =\ + \ fireblocks.keysBeta.getMpcKeysListByUser(keysBetaApiGetMpcKeysListByUserRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.offExchanges().addOffExchange(addCollateralRequestBody,\ - \ idempotencyKey);" + code: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysListByUser(userId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.off_exchanges.add_off_exchange(add_collateral_request_body,\ - \ idempotency_key);" + code: response = fireblocks.keys_beta.get_mpc_keys_list_by_user(user_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.offExchanges.addOffExchange(offExchangesApiAddOffExchangeRequest);" + source: "const response: Promise> =\ + \ fireblocks.keysBeta.getMpcKeysListByUser(keysBetaApiGetMpcKeysListByUserRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.offExchanges().addOffExchange(addCollateralRequestBody, idempotencyKey);" + source: CompletableFuture> response = fireblocks.keysBeta().getMpcKeysListByUser(userId); - lang: Python - source: "response = fireblocks.off_exchanges.add_off_exchange(add_collateral_request_body,\ - \ idempotency_key);" - x-content-type: application/json + source: response = fireblocks.keys_beta.get_mpc_keys_list_by_user(user_id); x-accepts: - application/json - /off_exchange/remove: - post: + /network_connections: + get: description: |- - Remove collateral, create withdraw request. - Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: removeOffExchange - 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/RemoveCollateralRequestBody" + Returns all network connections. + + **Note:** This API call is subject to Flexible Routing Schemes. + + Your routing policy defines how your transactions are routed. + You can choose 1 of the 3 different schemes mentioned below for each asset type: + - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. + - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. + - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" + + Default Workspace Presets: + - Network Profile Crypto → **Custom** + - Network Profile FIAT → **None** + - Network Connection Crypto → **Default** + - Network Connection FIAT → **Default** + operationId: getNetworkConnections responses: "200": content: application/json: schema: - $ref: "#/components/schemas/CreateTransactionResponse" - description: A transaction object + $ref: "#/components/schemas/GetNetworkConnectionsResponse" + description: A list of network connections + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Remove Collateral + summary: List network connections tags: - - Off exchanges - x-rate-limit-category: write + - Network connections + x-rate-limit-category: query x-readme: code-samples: + - language: python + code: network_connections = fireblocks.get_network_connections() + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const networkConnections = await fireblocks.getNetworkConnections(); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.offExchanges.removeOffExchange(offExchangesApiRemoveOffExchangeRequest);" + code: "const response: Promise>\ + \ = fireblocks.networkConnections.getNetworkConnections();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.offExchanges().removeOffExchange(removeCollateralRequestBody,\ - \ idempotencyKey);" + code: CompletableFuture>> response + = fireblocks.networkConnections().getNetworkConnections(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.off_exchanges.remove_off_exchange(remove_collateral_request_body,\ - \ idempotency_key);" + code: response = fireblocks.network_connections.get_network_connections(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.offExchanges.removeOffExchange(offExchangesApiRemoveOffExchangeRequest);" + source: "const response: Promise>\ + \ = fireblocks.networkConnections.getNetworkConnections();" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.offExchanges().removeOffExchange(removeCollateralRequestBody,\ - \ idempotencyKey);" + source: CompletableFuture>> response + = fireblocks.networkConnections().getNetworkConnections(); - lang: Python - source: "response = fireblocks.off_exchanges.remove_off_exchange(remove_collateral_request_body,\ - \ idempotency_key);" - x-content-type: application/json + source: response = fireblocks.network_connections.get_network_connections(); x-accepts: - application/json - /off_exchange/settlements/trader: post: - description: |- - Create settlement for a trader. - Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: settleOffExchangeTrades + description: | + Initiates a new network connection. + **Note:** This API call is subject to Flexible Routing Schemes. + + Your routing policy defines how your transactions are routed. + You can choose 1 of the 3 different schemes mentioned below for each asset type: + - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. + - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. + - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" + + Default Workspace Presets: + - Network Profile Crypto → **Custom** + - Network Profile FIAT → **None** + - Network Connection Crypto → **Default** + - Network Connection FIAT → **Default** + + Supported asset groups for routing police can be found at `/network_ids/routing_policy_asset_groups` + + - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). + operationId: createNetworkConnection 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\ @@ -13704,110 +13715,114 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SettlementRequestBody" + $ref: "#/components/schemas/NetworkConnection" responses: "201": content: application/json: schema: - $ref: "#/components/schemas/SettlementResponse" - description: A settlement object + $ref: "#/components/schemas/NetworkConnectionResponse" + description: A Network Connection object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create Settlement for a Trader + summary: Create a new network connection tags: - - Off exchanges + - Network connections x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.offExchanges.settleOffExchangeTrades(offExchangesApiSettleOffExchangeTradesRequest);" + code: "const response: Promise>\ + \ = fireblocks.networkConnections.createNetworkConnection(networkConnectionsApiCreateNetworkConnectionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.offExchanges().settleOffExchangeTrades(settlementRequestBody,\ + code: "CompletableFuture> response\ + \ = fireblocks.networkConnections().createNetworkConnection(networkConnection,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.off_exchanges.settle_off_exchange_trades(settlement_request_body,\ + code: "response = fireblocks.network_connections.create_network_connection(network_connection,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.offExchanges.settleOffExchangeTrades(offExchangesApiSettleOffExchangeTradesRequest);" + source: "const response: Promise>\ + \ = fireblocks.networkConnections.createNetworkConnection(networkConnectionsApiCreateNetworkConnectionRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.offExchanges().settleOffExchangeTrades(settlementRequestBody,\ + source: "CompletableFuture> response\ + \ = fireblocks.networkConnections().createNetworkConnection(networkConnection,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.off_exchanges.settle_off_exchange_trades(settlement_request_body,\ + source: "response = fireblocks.network_connections.create_network_connection(network_connection,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /off_exchange/settlements/transactions: - get: - description: |- - Get settlements transactions from exchange. - Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: getOffExchangeSettlementTransactions + /network_connections/{connectionId}: + delete: + description: Deletes an existing network connection specified by its connection + ID. + operationId: deleteNetworkConnection parameters: - - explode: true - in: query - name: mainExchangeAccountId + - description: The ID of the network connection to delete + explode: false + in: path + name: connectionId required: true schema: type: string - style: form + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ExchangeSettlementTransactionsResponse" - description: A settlement transactions + $ref: "#/components/schemas/DeleteNetworkConnectionResponse" + description: Network ID + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get Settlements Transactions + summary: Delete a network connection by ID tags: - - Off exchanges - x-rate-limit-category: query + - Network connections + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.offExchanges.getOffExchangeSettlementTransactions(offExchangesApiGetOffExchangeSettlementTransactionsRequest);" + code: "const response: Promise>\ + \ = fireblocks.networkConnections.deleteNetworkConnection(networkConnectionsApiDeleteNetworkConnectionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.offExchanges().getOffExchangeSettlementTransactions(mainExchangeAccountId); + code: CompletableFuture> response + = fireblocks.networkConnections().deleteNetworkConnection(connectionId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.off_exchanges.get_off_exchange_settlement_transactions(main_exchange_account_id); + code: response = fireblocks.network_connections.delete_network_connection(connection_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.offExchanges.getOffExchangeSettlementTransactions(offExchangesApiGetOffExchangeSettlementTransactionsRequest);" + source: "const response: Promise>\ + \ = fireblocks.networkConnections.deleteNetworkConnection(networkConnectionsApiDeleteNetworkConnectionRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.offExchanges().getOffExchangeSettlementTransactions(mainExchangeAccountId); + source: CompletableFuture> response + = fireblocks.networkConnections().deleteNetworkConnection(connectionId); - lang: Python - source: response = fireblocks.off_exchanges.get_off_exchange_settlement_transactions(main_exchange_account_id); + source: response = fireblocks.network_connections.delete_network_connection(connection_id); x-accepts: - application/json - /off_exchange/collateral_accounts/{mainExchangeAccountId}: get: - description: |- - Returns a collateral account by mainExchangeAccountId. - Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: getOffExchangeCollateralAccounts + description: Gets a network connection by ID. + operationId: getNetwork parameters: - - description: The id of the main exchange account for which the requested collateral - account is associated with + - description: The ID of the connection explode: false in: path - name: mainExchangeAccountId + name: connectionId required: true schema: type: string @@ -13817,55 +13832,68 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ExchangeAccount" - description: An ExchangeAccount object + $ref: "#/components/schemas/NetworkConnectionResponse" + description: A network connection headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Find a specific collateral exchange account + summary: Get a network connection tags: - - Off exchanges - x-rate-limit-category: query + - Network connections + x-rate-limit-category: read x-readme: code-samples: - - language: typescript - code: "const response: Promise> = fireblocks.offExchanges.getOffExchangeCollateralAccounts(offExchangesApiGetOffExchangeCollateralAccountsRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response = fireblocks.offExchanges().getOffExchangeCollateralAccounts(mainExchangeAccountId); - name: Fireblocks SDK Java example - language: python - code: response = fireblocks.off_exchanges.get_off_exchange_collateral_accounts(main_exchange_account_id); + code: network_connection = fireblocks.get_network_connection_by_id(connectionId) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const network_connection = await fireblocks.getNetworkConnection(connectionId); + name: Fireblocks SDK Javascript example + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.networkConnections.getNetwork(networkConnectionsApiGetNetworkRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response + = fireblocks.networkConnections().getNetwork(connectionId); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.network_connections.get_network(connection_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.offExchanges.getOffExchangeCollateralAccounts(offExchangesApiGetOffExchangeCollateralAccountsRequest);" + source: "const response: Promise>\ + \ = fireblocks.networkConnections.getNetwork(networkConnectionsApiGetNetworkRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.offExchanges().getOffExchangeCollateralAccounts(mainExchangeAccountId); + source: CompletableFuture> response + = fireblocks.networkConnections().getNetwork(connectionId); - lang: Python - source: response = fireblocks.off_exchanges.get_off_exchange_collateral_accounts(main_exchange_account_id); + source: response = fireblocks.network_connections.get_network(connection_id); x-accepts: - application/json - /webhooks/resend: - post: - description: |- - Resends all failed webhook notifications. - - Learn more about Fireblocks Webhooks in the following [guide](https://developers.fireblocks.com/docs/configure-webhooks). - - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: resendWebhooks + /network_connections/{connectionId}/is_third_party_routing/{assetType}: + get: + description: The Fireblocks Network allows for flexibility around incoming deposits. + A receiver can receive network deposits to locations other than Fireblocks. + This endpoint validates whether future transactions are routed to the displayed + recipient or to a 3rd party. + operationId: checkThirdPartyRouting 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." + - description: The ID of the network connection explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: connectionId + required: true + schema: + type: string + style: simple + - description: The destination asset type + explode: false + in: path + name: assetType + required: true schema: type: string style: simple @@ -13874,222 +13902,150 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ResendWebhooksResponse" - description: OK + $ref: "#/components/schemas/ThirdPartyRouting" + description: result for the validation headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Resend failed webhooks + summary: Retrieve third-party network routing validation tags: - - Webhooks - x-rate-limit-category: async + - Network connections + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: result = fireblocks.resend_webhooks() - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const result = await fireblocks.resendWebhooks(); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.webhooks.resendWebhooks(webhooksApiResendWebhooksRequest);" + code: "const response: Promise> =\ + \ fireblocks.networkConnections.checkThirdPartyRouting(networkConnectionsApiCheckThirdPartyRoutingRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = - fireblocks.webhooks().resendWebhooks(idempotencyKey); + code: "CompletableFuture> response = fireblocks.networkConnections().checkThirdPartyRouting(connectionId,\ + \ assetType);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.webhooks.resend_webhooks(idempotency_key); + code: "response = fireblocks.network_connections.check_third_party_routing(connection_id,\ + \ asset_type);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.webhooks.resendWebhooks(webhooksApiResendWebhooksRequest);" + source: "const response: Promise> =\ + \ fireblocks.networkConnections.checkThirdPartyRouting(networkConnectionsApiCheckThirdPartyRoutingRequest);" - lang: Java - source: CompletableFuture> response = - fireblocks.webhooks().resendWebhooks(idempotencyKey); + source: "CompletableFuture> response = fireblocks.networkConnections().checkThirdPartyRouting(connectionId,\ + \ assetType);" - lang: Python - source: response = fireblocks.webhooks.resend_webhooks(idempotency_key); + source: "response = fireblocks.network_connections.check_third_party_routing(connection_id,\ + \ asset_type);" x-accepts: - application/json - /webhooks/resend/{txId}: - post: - description: | - Resends webhook notifications for a transaction by its unique identifier. - - Learn more about Fireblocks Webhooks in the following [guide](https://developers.fireblocks.com/docs/configure-webhooks). - - **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: resendTransactionWebhooks + /network_connections/{connectionId}/set_routing_policy: + patch: + description: Updates an existing network connection's routing policy. + operationId: setRoutingPolicy parameters: - - description: The ID of the transaction for webhooks + - description: The ID of the network connection explode: false in: path - name: txId + name: connectionId required: true schema: 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\ - \ 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/ResendTransactionWebhooksRequest" - required: true + $ref: "#/components/schemas/SetRoutingPolicyRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ResendWebhooksByTransactionIdResponse" - description: OK + $ref: "#/components/schemas/SetRoutingPolicyResponse" + description: Network ID headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Resend webhooks for a transaction by ID + summary: Update network connection routing policy. tags: - - Webhooks - x-rate-limit-category: async + - Network connections + x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "result = fireblocks.resend_transaction_webhooks_by_id(txId, resend_created,\ - \ resend_status_updated)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const result = await fireblocks.resendTransactionWebhooksById(txId,\ - \ resendCreated, resendStatusUpdated);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.webhooks.resendTransactionWebhooks(webhooksApiResendTransactionWebhooksRequest);" + code: "const response: Promise>\ + \ = fireblocks.networkConnections.setRoutingPolicy(networkConnectionsApiSetRoutingPolicyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.webhooks().resendTransactionWebhooks(resendTransactionWebhooksRequest,\ - \ txId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.networkConnections().setRoutingPolicy(connectionId, setRoutingPolicyRequest);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks.resend_transaction_webhooks(resend_transaction_webhooks_request,\ - \ tx_id, idempotency_key);" + code: "response = fireblocks.network_connections.set_routing_policy(connection_id,\ + \ set_routing_policy_request);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.webhooks.resendTransactionWebhooks(webhooksApiResendTransactionWebhooksRequest);" + source: "const response: Promise>\ + \ = fireblocks.networkConnections.setRoutingPolicy(networkConnectionsApiSetRoutingPolicyRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.webhooks().resendTransactionWebhooks(resendTransactionWebhooksRequest,\ - \ txId, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.networkConnections().setRoutingPolicy(connectionId, setRoutingPolicyRequest);" - lang: Python - source: "response = fireblocks.webhooks.resend_transaction_webhooks(resend_transaction_webhooks_request,\ - \ tx_id, idempotency_key);" + source: "response = fireblocks.network_connections.set_routing_policy(connection_id,\ + \ set_routing_policy_request);" x-content-type: application/json x-accepts: - application/json - /webhooks: + /network_ids: get: - description: | - Get all webhooks (paginated). - operationId: getWebhooks - parameters: - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order - required: false - schema: - default: DESC - enum: - - ASC - - DESC - example: ASC - type: string - style: form - - description: Cursor of the required page - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: Maximum number of items in the page - explode: true - in: query - name: pageSize - required: false - schema: - default: 10 - example: 10 - maximum: 100 - minimum: 1 - type: number - style: form + deprecated: true + description: Retrieves a list of all local and discoverable remote network IDs. + operationId: getNetworkIds responses: "200": content: application/json: schema: - $ref: "#/components/schemas/WebhookPaginatedResponse" - description: A paginated response containing WebhookDto objects + $ref: "#/components/schemas/GetNetworkIdsResponse" + description: A list of network IDs headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get all webhooks + summary: Get all network IDs tags: - - Webhooks V2 + - Network connections x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.webhooksV2.getWebhooks(webhooksV2ApiGetWebhooksRequest);" + code: "const response: Promise>\ + \ = fireblocks.networkConnections.getNetworkIds();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.webhooksV2().getWebhooks(order, pageCursor, pageSize);" + code: CompletableFuture>> response = fireblocks.networkConnections().getNetworkIds(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.get_webhooks(order, page_cursor,\ - \ page_size);" + code: response = fireblocks.network_connections.get_network_ids(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.webhooksV2.getWebhooks(webhooksV2ApiGetWebhooksRequest);" + source: "const response: Promise>\ + \ = fireblocks.networkConnections.getNetworkIds();" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.webhooksV2().getWebhooks(order, pageCursor, pageSize);" + source: CompletableFuture>> response = fireblocks.networkConnections().getNetworkIds(); - lang: Python - source: "response = fireblocks.webhooks_v2.get_webhooks(order, page_cursor,\ - \ page_size);" + source: response = fireblocks.network_connections.get_network_ids(); x-accepts: - application/json post: - description: | - Creates a new webhook, which will be triggered on the specified events - - **Endpoint Permissions:** Owner, Admin, Non-Signing Admin. - operationId: createWebhook + description: Create a new Network ID. + operationId: createNetworkId 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\ @@ -14106,110 +14062,110 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CreateWebhookRequest" - required: true + $ref: "#/components/schemas/CreateNetworkIdRequest" responses: "201": content: application/json: schema: - $ref: "#/components/schemas/Webhook" - description: created new webhook successfully + $ref: "#/components/schemas/NetworkIdResponse" + description: Returns the new network ID in your workspace headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create a new webhook + summary: Creates a new Network ID tags: - - Webhooks V2 + - Network connections x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.webhooksV2.createWebhook(webhooksV2ApiCreateWebhookRequest);" + code: "const response: Promise> =\ + \ fireblocks.networkConnections.createNetworkId(networkConnectionsApiCreateNetworkIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.webhooksV2().createWebhook(createWebhookRequest,\ + code: "CompletableFuture> response = fireblocks.networkConnections().createNetworkId(createNetworkIdRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.create_webhook(create_webhook_request,\ + code: "response = fireblocks.network_connections.create_network_id(create_network_id_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.webhooksV2.createWebhook(webhooksV2ApiCreateWebhookRequest);" + source: "const response: Promise> =\ + \ fireblocks.networkConnections.createNetworkId(networkConnectionsApiCreateNetworkIdRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.webhooksV2().createWebhook(createWebhookRequest,\ + source: "CompletableFuture> response = fireblocks.networkConnections().createNetworkId(createNetworkIdRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.webhooks_v2.create_webhook(create_webhook_request,\ + source: "response = fireblocks.network_connections.create_network_id(create_network_id_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /webhooks/mtls/csr: - get: - description: | - Returns the Fireblocks Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. - operationId: getMtlsCsr + /network_ids/{networkId}: + delete: + description: Deletes a network by its ID. + operationId: deleteNetworkId + parameters: + - description: The ID of the network + explode: false + in: path + name: networkId + required: true + schema: + type: string + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/WebhookMtlsCsrResponse" - description: The mTLS CSR PEM - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/DeleteNetworkIdResponse" + description: Network ID default: $ref: "#/components/responses/Error" - summary: Get mTLS CSR + summary: Delete specific network ID. tags: - - Webhooks V2 - x-rate-limit-category: read + - Network connections + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.webhooksV2.getMtlsCsr();" + code: "const response: Promise>\ + \ = fireblocks.networkConnections.deleteNetworkId(networkConnectionsApiDeleteNetworkIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = - fireblocks.webhooksV2().getMtlsCsr(); + code: CompletableFuture> response = + fireblocks.networkConnections().deleteNetworkId(networkId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.webhooks_v2.get_mtls_csr(); + code: response = fireblocks.network_connections.delete_network_id(network_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.webhooksV2.getMtlsCsr();" + source: "const response: Promise>\ + \ = fireblocks.networkConnections.deleteNetworkId(networkConnectionsApiDeleteNetworkIdRequest);" - lang: Java - source: CompletableFuture> response = - fireblocks.webhooksV2().getMtlsCsr(); + source: CompletableFuture> response = + fireblocks.networkConnections().deleteNetworkId(networkId); - lang: Python - source: response = fireblocks.webhooks_v2.get_mtls_csr(); + source: response = fireblocks.network_connections.delete_network_id(network_id); x-accepts: - application/json - /webhooks/{webhookId}: - delete: - description: | - Delete a webhook by its id - - Endpoint Permission: Owner, Admin, Non-Signing Admin. - operationId: deleteWebhook + get: + description: Returns specific network ID. + operationId: getNetworkId parameters: - - description: The unique identifier of the webhook + - description: The ID of the network explode: false in: path - name: webhookId + name: networkId required: true schema: - example: 44fcead0-7053-4831-a53a-df7fb90d440f - format: uuid type: string style: simple responses: @@ -14217,471 +14173,550 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Webhook" - description: Deleted webhook object + $ref: "#/components/schemas/NetworkIdResponse" + description: Network ID headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Delete webhook + summary: Return specific network ID. tags: - - Webhooks V2 - x-rate-limit-category: write + - Network connections + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.webhooksV2.deleteWebhook(webhooksV2ApiDeleteWebhookRequest);" + code: "const response: Promise> =\ + \ fireblocks.networkConnections.getNetworkId(networkConnectionsApiGetNetworkIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.webhooksV2().deleteWebhook(webhookId); + code: CompletableFuture> response = fireblocks.networkConnections().getNetworkId(networkId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.webhooks_v2.delete_webhook(webhook_id); + code: response = fireblocks.network_connections.get_network_id(network_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.webhooksV2.deleteWebhook(webhooksV2ApiDeleteWebhookRequest);" + source: "const response: Promise> =\ + \ fireblocks.networkConnections.getNetworkId(networkConnectionsApiGetNetworkIdRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.webhooksV2().deleteWebhook(webhookId); + source: CompletableFuture> response = fireblocks.networkConnections().getNetworkId(networkId); - lang: Python - source: response = fireblocks.webhooks_v2.delete_webhook(webhook_id); + source: response = fireblocks.network_connections.get_network_id(network_id); x-accepts: - application/json - get: - description: | - Retrieve a webhook by its id - operationId: getWebhook + /network_ids/{networkId}/set_discoverability: + patch: + description: Update whether or not the network ID is discoverable by others. + operationId: setNetworkIdDiscoverability parameters: - - description: The unique identifier of the webhook + - description: The ID of the network explode: false in: path - name: webhookId + name: networkId required: true schema: - example: 44fcead0-7053-4831-a53a-df7fb90d440f - format: uuid type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SetNetworkIdDiscoverabilityRequest" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/Webhook" - description: A webhook object + $ref: "#/components/schemas/SetNetworkIdResponse" + description: Network ID headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get webhook by id + summary: Update network ID's discoverability. tags: - - Webhooks V2 - x-rate-limit-category: read + - Network connections + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.webhooksV2.getWebhook(webhooksV2ApiGetWebhookRequest);" + code: "const response: Promise>\ + \ = fireblocks.networkConnections.setNetworkIdDiscoverability(networkConnectionsApiSetNetworkIdDiscoverabilityRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.webhooksV2().getWebhook(webhookId); + code: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdDiscoverability(setNetworkIdDiscoverabilityRequest,\ + \ networkId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.webhooks_v2.get_webhook(webhook_id); + code: "response = fireblocks.network_connections.set_network_id_discoverability(set_network_id_discoverability_request,\ + \ network_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.webhooksV2.getWebhook(webhooksV2ApiGetWebhookRequest);" + source: "const response: Promise>\ + \ = fireblocks.networkConnections.setNetworkIdDiscoverability(networkConnectionsApiSetNetworkIdDiscoverabilityRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.webhooksV2().getWebhook(webhookId); + source: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdDiscoverability(setNetworkIdDiscoverabilityRequest,\ + \ networkId);" - lang: Python - source: response = fireblocks.webhooks_v2.get_webhook(webhook_id); + source: "response = fireblocks.network_connections.set_network_id_discoverability(set_network_id_discoverability_request,\ + \ network_id);" + x-content-type: application/json x-accepts: - application/json + /network_ids/{networkId}/set_name: patch: - description: | - Update a webhook by its id - - Endpoint Permission: Owner, Admin, Non-Signing Admin. - operationId: updateWebhook + description: Updates name of a specified network ID. + operationId: setNetworkIdName parameters: - - description: The unique identifier of the webhook + - description: The ID of the network explode: false in: path - name: webhookId + name: networkId required: true schema: - example: 44fcead0-7053-4831-a53a-df7fb90d440f - format: uuid type: string style: simple requestBody: content: application/json: schema: - $ref: "#/components/schemas/UpdateWebhookRequest" + $ref: "#/components/schemas/SetNetworkIdNameRequest" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/Webhook" - description: Updated webhook object + $ref: "#/components/schemas/SetNetworkIdResponse" + description: Network ID headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Update webhook + summary: Update network ID's name. tags: - - Webhooks V2 + - Network connections x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.webhooksV2.updateWebhook(webhooksV2ApiUpdateWebhookRequest);" + code: "const response: Promise>\ + \ = fireblocks.networkConnections.setNetworkIdName(networkConnectionsApiSetNetworkIdNameRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.webhooksV2().updateWebhook(updateWebhookRequest,\ - \ webhookId);" + code: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdName(setNetworkIdNameRequest,\ + \ networkId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.update_webhook(update_webhook_request,\ - \ webhook_id);" + code: "response = fireblocks.network_connections.set_network_id_name(set_network_id_name_request,\ + \ network_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.webhooksV2.updateWebhook(webhooksV2ApiUpdateWebhookRequest);" + source: "const response: Promise>\ + \ = fireblocks.networkConnections.setNetworkIdName(networkConnectionsApiSetNetworkIdNameRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.webhooksV2().updateWebhook(updateWebhookRequest,\ - \ webhookId);" + source: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdName(setNetworkIdNameRequest,\ + \ networkId);" - lang: Python - source: "response = fireblocks.webhooks_v2.update_webhook(update_webhook_request,\ - \ webhook_id);" + source: "response = fireblocks.network_connections.set_network_id_name(set_network_id_name_request,\ + \ network_id);" x-content-type: application/json x-accepts: - application/json - /webhooks/{webhookId}/metrics/{metricName}: - get: - description: | - Get webhook metrics by webhook id and metric name - operationId: getMetrics + /network_ids/{networkId}/set_routing_policy: + patch: + description: Updates the routing policy of a specified network ID. + operationId: setNetworkIdRoutingPolicy parameters: - - explode: false - in: path - name: webhookId - required: true - schema: - example: 44fcead0-7053-4831-a53a-df7fb90d440f - format: uuid - type: string - style: simple - - description: Name of the metric to retrieve + - description: The ID of the network explode: false in: path - name: metricName + name: networkId required: true schema: - enum: - - LAST_ACTIVE_HOUR_ERROR_RATE - example: LAST_ACTIVE_HOUR_ERROR_RATE type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SetNetworkIdRoutingPolicyRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/WebhookMetric" - description: Webhook metrics + $ref: "#/components/schemas/SetNetworkIdResponse" + description: Network ID headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get webhook metrics + summary: Update network id routing policy. tags: - - Webhooks V2 - x-rate-limit-category: read + - Network connections + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.webhooksV2.getMetrics(webhooksV2ApiGetMetricsRequest);" + code: "const response: Promise>\ + \ = fireblocks.networkConnections.setNetworkIdRoutingPolicy(networkConnectionsApiSetNetworkIdRoutingPolicyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.webhooksV2().getMetrics(webhookId,\ - \ metricName);" + code: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdRoutingPolicy(networkId,\ + \ setNetworkIdRoutingPolicyRequest);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.get_metrics(webhook_id, metric_name);" + code: "response = fireblocks.network_connections.set_network_id_routing_policy(network_id,\ + \ set_network_id_routing_policy_request);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.webhooksV2.getMetrics(webhooksV2ApiGetMetricsRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.webhooksV2().getMetrics(webhookId,\ - \ metricName);" + source: "const response: Promise>\ + \ = fireblocks.networkConnections.setNetworkIdRoutingPolicy(networkConnectionsApiSetNetworkIdRoutingPolicyRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.networkConnections().setNetworkIdRoutingPolicy(networkId,\ + \ setNetworkIdRoutingPolicyRequest);" - lang: Python - source: "response = fireblocks.webhooks_v2.get_metrics(webhook_id, metric_name);" + source: "response = fireblocks.network_connections.set_network_id_routing_policy(network_id,\ + \ set_network_id_routing_policy_request);" + x-content-type: application/json x-accepts: - application/json - /webhooks/{webhookId}/notifications: + /network_ids/routing_policy_asset_groups: + get: + description: Returns all enabled routing policy asset groups + operationId: getRoutingPolicyAssetGroups + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetRoutingPolicyAssetGroupsResponse" + description: A list of enabled routing policy asset groups + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Return all enabled routing policy asset groups + tags: + - Network connections + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.networkConnections.getRoutingPolicyAssetGroups();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture>> response = fireblocks.networkConnections().getRoutingPolicyAssetGroups(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.network_connections.get_routing_policy_asset_groups(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.networkConnections.getRoutingPolicyAssetGroups();" + - lang: Java + source: CompletableFuture>> response = fireblocks.networkConnections().getRoutingPolicyAssetGroups(); + - lang: Python + source: response = fireblocks.network_connections.get_routing_policy_asset_groups(); + x-accepts: + - application/json + /network_ids/search: get: description: | - Get all notifications by webhook id (paginated) - operationId: getNotifications + Retrieves a list of all local and discoverable remote network IDs. Can be filtered. + operationId: searchNetworkIds parameters: - - explode: false - in: path - name: webhookId - required: true - schema: - example: 44fcead0-7053-4831-a53a-df7fb90d440f - format: uuid - type: string - style: simple - - description: ASC / DESC ordering (default DESC) + - description: Search string - displayName networkId. Optional explode: true in: query - name: order + name: search required: false schema: - default: DESC - enum: - - ASC - - DESC - example: ASC + minLength: 1 type: string style: form - - description: Sort by field + - description: "Exclude your networkIds. Optional, default false" explode: true in: query - name: sortBy + name: excludeSelf required: false schema: - default: updatedAt - enum: - - id - - createdAt - - updatedAt - - status - - eventType - - resourceId - example: id - type: string + type: boolean style: form - - description: Cursor of the required page + - description: "Include just your networkIds. Optional, default false" explode: true in: query - name: pageCursor + name: onlySelf required: false schema: - type: string + type: boolean style: form - - description: Maximum number of items in the page + - description: "Exclude connected networkIds. Optional, default false" explode: true in: query - name: pageSize + name: excludeConnected required: false schema: - default: 100 - example: 10 - maximum: 100 - minimum: 1 - type: number + type: boolean style: form - - description: Start time in milliseconds since epoch to filter by notifications - created after this time (default 31 days ago) + - description: ID of the record after which to fetch $limit records explode: true in: query - name: startTime + name: pageCursor required: false schema: - example: 1625097600000 - type: number + type: string style: form - - description: End time in milliseconds since epoch to filter by notifications - created before this time (default current time) + - description: "Number of records to fetch. By default, it is 50" explode: true in: query - name: endTime + name: pageSize required: false schema: - example: 1625017600000 + default: 50 + maximum: 50 + minimum: 1 type: number style: form - - description: List of notification statuses to filter by - explode: true - in: query - name: statuses - required: false - schema: - items: - $ref: "#/components/schemas/NotificationStatus" - type: array - style: form - - description: List of webhook event types to filter by - explode: true - in: query - name: events - required: false - schema: - items: - $ref: "#/components/schemas/WebhookEvent" - type: array - style: form - - description: Resource ID to filter by - explode: true - in: query - name: resourceId - required: false - schema: - example: 44fcead0-7053-4831-a53a-df7fb90d440f - type: string - style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/NotificationPaginatedResponse" - description: A paginated response containing NotificationExternalDTO objects + $ref: "#/components/schemas/SearchNetworkIdsResponse" + description: A list of network IDs headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get all notifications by webhook id + summary: Get both local IDs and discoverable remote IDs tags: - - Webhooks V2 + - Network connections x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.webhooksV2.getNotifications(webhooksV2ApiGetNotificationsRequest);" + code: "const response: Promise>\ + \ = fireblocks.networkConnections.searchNetworkIds(networkConnectionsApiSearchNetworkIdsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.webhooksV2().getNotifications(webhookId, order, sortBy,\ - \ pageCursor, pageSize, startTime, endTime, statuses, events, resourceId);" + code: "CompletableFuture> response\ + \ = fireblocks.networkConnections().searchNetworkIds(search, excludeSelf,\ + \ onlySelf, excludeConnected, pageCursor, pageSize);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.get_notifications(webhook_id, order,\ - \ sort_by, page_cursor, page_size, start_time, end_time, statuses, events,\ - \ resource_id);" + code: "response = fireblocks.network_connections.search_network_ids(search,\ + \ exclude_self, only_self, exclude_connected, page_cursor, page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.webhooksV2.getNotifications(webhooksV2ApiGetNotificationsRequest);" + source: "const response: Promise>\ + \ = fireblocks.networkConnections.searchNetworkIds(networkConnectionsApiSearchNetworkIdsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.webhooksV2().getNotifications(webhookId, order, sortBy, pageCursor,\ - \ pageSize, startTime, endTime, statuses, events, resourceId);" + source: "CompletableFuture> response\ + \ = fireblocks.networkConnections().searchNetworkIds(search, excludeSelf,\ + \ onlySelf, excludeConnected, pageCursor, pageSize);" - lang: Python - source: "response = fireblocks.webhooks_v2.get_notifications(webhook_id, order,\ - \ sort_by, page_cursor, page_size, start_time, end_time, statuses, events,\ - \ resource_id);" + source: "response = fireblocks.network_connections.search_network_ids(search,\ + \ exclude_self, only_self, exclude_connected, page_cursor, page_size);" x-accepts: - application/json - /webhooks/{webhookId}/notifications/{notificationId}: + /nfts/ownership/assets: get: description: | - Get notification by id - operationId: getNotification + Returns all owned distinct tokens (for your tenant) and their data in your workspace. + operationId: listOwnedTokens parameters: - - description: Include the data of the notification + - description: Tenant's Non-Custodial Wallet ID explode: true in: query - name: includeData + name: ncwId required: false schema: - type: boolean + type: string style: form - - description: The ID of the webhook to fetch - explode: false - in: path - name: webhookId - required: true + - description: "Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`" + explode: true + in: query + name: walletType + required: false schema: + default: VAULT_ACCOUNT + enum: + - VAULT_ACCOUNT + - END_USER_WALLET type: string - style: simple - - description: The ID of the notification to fetch - explode: false - in: path - name: notificationId - required: true + style: form + - description: Page cursor to fetch + explode: true + in: query + name: pageCursor + required: false schema: type: string - style: simple + style: form + - description: Items per page (max 100) + explode: true + in: query + name: pageSize + required: false + schema: + maximum: 100 + minimum: 1 + type: number + style: form + - description: "Sort by param, it can be one param or a list of params separated\ + \ by comma" + explode: true + in: query + name: sort + required: false + schema: + items: + enum: + - name + type: string + type: array + style: form + - description: "Order direction, it can be `ASC` for ascending or `DESC` for\ + \ descending" + explode: true + in: query + name: order + required: false + schema: + default: ASC + enum: + - DESC + - ASC + type: string + style: form + - description: Token ownership status + explode: true + in: query + name: status + required: false + schema: + default: LISTED + enum: + - LISTED + - ARCHIVED + type: string + style: form + - description: Search owned tokens by token name + explode: true + in: query + name: search + required: false + schema: + maximum: 100 + type: string + style: form + - description: Token ownership spam status. + explode: true + in: query + name: spam + required: false + schema: + enum: + - "true" + - "false" + - all + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/NotificationWithData" - description: OK + $ref: "#/components/schemas/ListOwnedTokensResponse" + description: "" headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get notification by id + summary: List all distinct owned tokens (paginated) tags: - - Webhooks V2 - x-rate-limit-category: read + - NFTs + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.webhooksV2.getNotification(webhooksV2ApiGetNotificationRequest);" + code: "const response: Promise>\ + \ = fireblocks.nFTs.listOwnedTokens(nFTsApiListOwnedTokensRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.webhooksV2().getNotification(webhookId,\ - \ notificationId, includeData);" + code: "CompletableFuture> response\ + \ = fireblocks.nFTs().listOwnedTokens(ncwId, walletType, pageCursor, pageSize,\ + \ sort, order, status, search, spam);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.get_notification(webhook_id, notification_id,\ - \ include_data);" + code: "response = fireblocks.n_f_ts.list_owned_tokens(ncw_id, wallet_type,\ + \ page_cursor, page_size, sort, order, status, search, spam);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.webhooksV2.getNotification(webhooksV2ApiGetNotificationRequest);" + source: "const response: Promise>\ + \ = fireblocks.nFTs.listOwnedTokens(nFTsApiListOwnedTokensRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.webhooksV2().getNotification(webhookId,\ - \ notificationId, includeData);" + source: "CompletableFuture> response\ + \ = fireblocks.nFTs().listOwnedTokens(ncwId, walletType, pageCursor, pageSize,\ + \ sort, order, status, search, spam);" - lang: Python - source: "response = fireblocks.webhooks_v2.get_notification(webhook_id, notification_id,\ - \ include_data);" + source: "response = fireblocks.n_f_ts.list_owned_tokens(ncw_id, wallet_type,\ + \ page_cursor, page_size, sort, order, status, search, spam);" x-accepts: - application/json - /webhooks/{webhookId}/notifications/{notificationId}/attempts: + /nfts/ownership/collections: get: description: | - Get notification attempts by notification id - operationId: getNotificationAttempts + Returns all collections in your workspace + operationId: listOwnedCollections parameters: - - description: The ID of the webhook to fetch - explode: false - in: path - name: webhookId - required: true + - description: Tenant's Non-Custodial Wallet ID + explode: true + in: query + name: ncwId + required: false schema: type: string - style: simple - - description: The ID of the notification to fetch - explode: false - in: path - name: notificationId - required: true + style: form + - description: "Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`" + explode: true + in: query + name: walletType + required: false schema: + default: VAULT_ACCOUNT + enum: + - VAULT_ACCOUNT + - END_USER_WALLET type: string - style: simple - - description: Cursor of the required page + style: form + - description: "Search owned collections. Possible criteria for search: collection\ + \ name, collection contract address." + explode: true + in: query + name: search + required: false + schema: + maximum: 100 + type: string + style: form + - description: Page cursor to fetch explode: true in: query name: pageCursor @@ -14689,141 +14724,373 @@ paths: schema: type: string style: form - - description: Maximum number of items in the page + - description: Items per page (max 100) explode: true in: query name: pageSize required: false schema: - default: 10 - example: 10 maximum: 100 minimum: 1 type: number style: form + - description: "Sort by param, it can be one param or a list of params separated\ + \ by comma" + explode: true + in: query + name: sort + required: false + schema: + items: + enum: + - name + type: string + type: array + style: form + - description: "Order direction, it can be `ASC` for ascending or `DESC` for\ + \ descending" + explode: true + in: query + name: order + required: false + schema: + default: ASC + enum: + - DESC + - ASC + type: string + style: form + - description: Token ownership status + explode: true + in: query + name: status + required: false + schema: + default: LISTED + enum: + - LISTED + - ARCHIVED + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/NotificationAttemptsPaginatedResponse" - description: OK + $ref: "#/components/schemas/ListOwnedCollectionsResponse" + description: "" headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get notification attempts + summary: List owned collections (paginated) tags: - - Webhooks V2 + - NFTs x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.webhooksV2.getNotificationAttempts(webhooksV2ApiGetNotificationAttemptsRequest);" + code: "const response: Promise>\ + \ = fireblocks.nFTs.listOwnedCollections(nFTsApiListOwnedCollectionsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.webhooksV2().getNotificationAttempts(webhookId,\ - \ notificationId, pageCursor, pageSize);" + code: "CompletableFuture> response\ + \ = fireblocks.nFTs().listOwnedCollections(ncwId, walletType, search,\ + \ pageCursor, pageSize, sort, order, status);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.get_notification_attempts(webhook_id,\ - \ notification_id, page_cursor, page_size);" + code: "response = fireblocks.n_f_ts.list_owned_collections(ncw_id, wallet_type,\ + \ search, page_cursor, page_size, sort, order, status);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.webhooksV2.getNotificationAttempts(webhooksV2ApiGetNotificationAttemptsRequest);" + source: "const response: Promise>\ + \ = fireblocks.nFTs.listOwnedCollections(nFTsApiListOwnedCollectionsRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.webhooksV2().getNotificationAttempts(webhookId,\ - \ notificationId, pageCursor, pageSize);" + source: "CompletableFuture> response\ + \ = fireblocks.nFTs().listOwnedCollections(ncwId, walletType, search, pageCursor,\ + \ pageSize, sort, order, status);" - lang: Python - source: "response = fireblocks.webhooks_v2.get_notification_attempts(webhook_id,\ - \ notification_id, page_cursor, page_size);" + source: "response = fireblocks.n_f_ts.list_owned_collections(ncw_id, wallet_type,\ + \ search, page_cursor, page_size, sort, order, status);" x-accepts: - application/json - /webhooks/{webhookId}/notifications/{notificationId}/resend: - post: + /nfts/ownership/tokens: + get: description: | - Resend notification by ID - - Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. - operationId: resendNotificationById + Returns all tokens and their data in your workspace. + operationId: getOwnershipTokens 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 notification - explode: false - in: path - name: notificationId - required: true - schema: - 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\ - \ same response as the first request. The idempotency key is valid for 24\ - \ hours." - explode: false - in: header - name: Idempotency-Key + - description: Blockchain descriptor filter + explode: true + in: query + name: blockchainDescriptor required: false schema: - type: string - style: simple - responses: - "202": - description: Resend notification request was accepted and is being processed - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Resend notification by id + enum: + - ETH + - ETH_TEST3 + - ETH_TEST5 + - ETH_TEST6 + - POLYGON + - POLYGON_TEST_MUMBAI + - AMOY_POLYGON_TEST + - XTZ + - XTZ_TEST + - BASECHAIN_ETH + - BASECHAIN_ETH_TEST3 + - BASECHAIN_ETH_TEST5 + - ETHERLINK + - ETHERLINK_TEST + - MANTLE + - MANTLE_TEST + - GUN_GUNZILLA + - GUN_GUNZILLA_TEST + - ETH_SONEIUM + - SONEIUM_MINATO_TEST + - IOTX_IOTEX + - KLAY_KAIA + - KLAY_KAIA_TEST + - APECHAIN + - APECHAIN_TEST + - CRONOS + - CRONOS_TEST + - ROBINHOOD_CHAIN_TESTNET_TEST + - ARB + type: string + style: form + - description: A comma separated list of Vault Account IDs. Up to 100 are allowed + in a single request. This field will be ignored when walletType=END_USER_WALLET + or ncwId is provided. + explode: true + in: query + name: vaultAccountIds + required: false + schema: + type: string + style: form + - description: Tenant's Non-Custodial Wallet ID + explode: true + in: query + name: ncwId + required: false + schema: + type: string + style: form + - description: A comma separated list of Non-Custodial account IDs. Up to 100 + are allowed in a single request. This field will be ignored when walletType=VAULT_ACCOUNT + or ncwId is not provided. + explode: true + in: query + name: ncwAccountIds + required: false + schema: + type: string + style: form + - description: "Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`" + explode: true + in: query + name: walletType + required: false + schema: + default: VAULT_ACCOUNT + enum: + - VAULT_ACCOUNT + - END_USER_WALLET + type: string + style: form + - description: A comma separated list of NFT IDs. Up to 100 are allowed in a + single request. + explode: true + in: query + name: ids + required: false + schema: + type: string + style: form + - description: A comma separated list of collection IDs. Up to 100 are allowed + in a single request. + explode: true + in: query + name: collectionIds + required: false + schema: + type: string + style: form + - description: Page cursor to fetch + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Items per page (max 100) + explode: true + in: query + name: pageSize + required: false + schema: + maximum: 100 + minimum: 1 + type: number + style: form + - description: "Sort by param, it can be one param or a list of params separated\ + \ by comma" + explode: true + in: query + name: sort + required: false + schema: + items: + enum: + - ownershipLastUpdateTime + - name + - collection.name + - blockchainDescriptor + type: string + type: array + style: form + - description: "Order direction, it can be `ASC` for ascending or `DESC` for\ + \ descending" + explode: true + in: query + name: order + required: false + schema: + default: ASC + enum: + - DESC + - ASC + type: string + style: form + - description: Token ownership status + explode: true + in: query + name: status + required: false + schema: + default: LISTED + enum: + - LISTED + - ARCHIVED + type: string + style: form + - description: "Search owned tokens and their collections. Possible criteria\ + \ for search: token name and id within the contract/collection, collection\ + \ name, blockchain descriptor and name." + explode: true + in: query + name: search + required: false + schema: + maximum: 100 + type: string + style: form + - description: Token ownership spam status. + explode: true + in: query + name: spam + required: false + schema: + enum: + - "true" + - "false" + - all + type: string + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetOwnershipTokensResponse" + description: "" + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: List all owned tokens (paginated) tags: - - Webhooks V2 - x-rate-limit-category: async + - NFTs + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.webhooksV2.resendNotificationById(webhooksV2ApiResendNotificationByIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.nFTs.getOwnershipTokens(nFTsApiGetOwnershipTokensRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.webhooksV2().resendNotificationById(webhookId,\ - \ notificationId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.nFTs().getOwnershipTokens(blockchainDescriptor, vaultAccountIds,\ + \ ncwId, ncwAccountIds, walletType, ids, collectionIds, pageCursor, pageSize,\ + \ sort, order, status, search, spam);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.resend_notification_by_id(webhook_id,\ - \ notification_id, idempotency_key);" + code: "response = fireblocks.n_f_ts.get_ownership_tokens(blockchain_descriptor,\ + \ vault_account_ids, ncw_id, ncw_account_ids, wallet_type, ids, collection_ids,\ + \ page_cursor, page_size, sort, order, status, search, spam);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.webhooksV2.resendNotificationById(webhooksV2ApiResendNotificationByIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.nFTs.getOwnershipTokens(nFTsApiGetOwnershipTokensRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.webhooksV2().resendNotificationById(webhookId,\ - \ notificationId, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.nFTs().getOwnershipTokens(blockchainDescriptor, vaultAccountIds,\ + \ ncwId, ncwAccountIds, walletType, ids, collectionIds, pageCursor, pageSize,\ + \ sort, order, status, search, spam);" - lang: Python - source: "response = fireblocks.webhooks_v2.resend_notification_by_id(webhook_id,\ - \ notification_id, idempotency_key);" + source: "response = fireblocks.n_f_ts.get_ownership_tokens(blockchain_descriptor,\ + \ vault_account_ids, ncw_id, ncw_account_ids, wallet_type, ids, collection_ids,\ + \ page_cursor, page_size, sort, order, status, search, spam);" x-accepts: - application/json - /webhooks/{webhookId}/notifications/resend_by_resource: - post: - description: | - Resend notifications by resource Id + put: + description: |- + Updates all tokens and balances per blockchain and vault account. + Learn more about Fireblocks NFT management in the following [guide](https://developers.fireblocks.com/reference/deploy-an-nft-collection). - Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. - operationId: resendNotificationsByResourceId + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: updateOwnershipTokens parameters: + - description: Blockchain descriptor filter + explode: true + in: query + name: blockchainDescriptor + required: true + schema: + enum: + - ETH + - ETH_TEST5 + - ETH_TEST6 + - POLYGON + - POLYGON_TEST_MUMBAI + - AMOY_POLYGON_TEST + - BASECHAIN_ETH + - BASECHAIN_ETH_TEST5 + - ETHERLINK + - ETHERLINK_TEST + - MANTLE + - MANTLE_TEST + - GUN_GUNZILLA + - GUN_GUNZILLA_TEST + - ETH_SONEIUM + - SONEIUM_MINATO_TEST + - IOTX_IOTEX + - KLAY_KAIA + - KLAY_KAIA_TEST + - APECHAIN + - APECHAIN_TEST + - ROBINHOOD_CHAIN_TESTNET_TEST + type: string + style: form + - description: Vault account filter + explode: true + in: query + name: vaultAccountId + required: true + schema: + type: string + style: form - 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\ @@ -14835,220 +15102,210 @@ paths: 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/ResendNotificationsByResourceIdRequest" - required: true responses: "202": - description: Resend notifications by resource request was accepted and is - being processed + description: "" headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Resend notifications by resource Id + summary: Refresh vault account tokens tags: - - Webhooks V2 - x-rate-limit-category: async + - NFTs + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.webhooksV2.resendNotificationsByResourceId(webhooksV2ApiResendNotificationsByResourceIdRequest);" + code: "const response: Promise> = fireblocks.nFTs.updateOwnershipTokens(nFTsApiUpdateOwnershipTokensRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.webhooksV2().resendNotificationsByResourceId(resendNotificationsByResourceIdRequest,\ - \ webhookId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.nFTs().updateOwnershipTokens(blockchainDescriptor,\ + \ vaultAccountId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.resend_notifications_by_resource_id(resend_notifications_by_resource_id_request,\ - \ webhook_id, idempotency_key);" + code: "response = fireblocks.n_f_ts.update_ownership_tokens(blockchain_descriptor,\ + \ vault_account_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.webhooksV2.resendNotificationsByResourceId(webhooksV2ApiResendNotificationsByResourceIdRequest);" + source: "const response: Promise> = fireblocks.nFTs.updateOwnershipTokens(nFTsApiUpdateOwnershipTokensRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.webhooksV2().resendNotificationsByResourceId(resendNotificationsByResourceIdRequest,\ - \ webhookId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.nFTs().updateOwnershipTokens(blockchainDescriptor,\ + \ vaultAccountId, idempotencyKey);" - lang: Python - source: "response = fireblocks.webhooks_v2.resend_notifications_by_resource_id(resend_notifications_by_resource_id_request,\ - \ webhook_id, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.n_f_ts.update_ownership_tokens(blockchain_descriptor,\ + \ vault_account_id, idempotency_key);" x-accepts: - application/json - /webhooks/{webhookId}/notifications/resend_failed: - post: + /nfts/ownership/tokens/{id}/status: + put: description: | - Resend all failed notifications for a webhook in the last 24 hours - - Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. - operationId: resendFailedNotifications + Updates token status for a tenant, in all tenant vaults. + operationId: updateTokenOwnershipStatus 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." + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. explode: false in: header - name: Idempotency-Key + name: X-End-User-Wallet-Id required: false schema: + format: uuid type: string style: simple - - description: The ID of the webhook + - description: NFT ID + example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd explode: false in: path - name: webhookId + name: id required: true schema: 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\ + \ 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/ResendFailedNotificationsRequest" + $ref: "#/components/schemas/UpdateTokenOwnershipStatusDto" required: true responses: "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ResendFailedNotificationsResponse" - description: No failed notifications to resend - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "202": - content: - application/json: - schema: - $ref: "#/components/schemas/ResendFailedNotificationsResponse" - description: Resend failed notifications request was accepted and is being - processed + description: "" headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - Location: - $ref: "#/components/headers/Location" - default: - $ref: "#/components/responses/Error" - summary: Resend failed notifications + summary: Update token ownership status tags: - - Webhooks V2 - x-rate-limit-category: high_compute + - NFTs + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.webhooksV2.resendFailedNotifications(webhooksV2ApiResendFailedNotificationsRequest);" + code: "const response: Promise> = fireblocks.nFTs.updateTokenOwnershipStatus(nFTsApiUpdateTokenOwnershipStatusRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.webhooksV2().resendFailedNotifications(resendFailedNotificationsRequest,\ - \ webhookId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.nFTs().updateTokenOwnershipStatus(updateTokenOwnershipStatusDto,\ + \ id, xEndUserWalletId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.resend_failed_notifications(resend_failed_notifications_request,\ - \ webhook_id, idempotency_key);" + code: "response = fireblocks.n_f_ts.update_token_ownership_status(update_token_ownership_status_dto,\ + \ id, x_end_user_wallet_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.webhooksV2.resendFailedNotifications(webhooksV2ApiResendFailedNotificationsRequest);" + source: "const response: Promise> = fireblocks.nFTs.updateTokenOwnershipStatus(nFTsApiUpdateTokenOwnershipStatusRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.webhooksV2().resendFailedNotifications(resendFailedNotificationsRequest,\ - \ webhookId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.nFTs().updateTokenOwnershipStatus(updateTokenOwnershipStatusDto,\ + \ id, xEndUserWalletId, idempotencyKey);" - lang: Python - source: "response = fireblocks.webhooks_v2.resend_failed_notifications(resend_failed_notifications_request,\ - \ webhook_id, idempotency_key);" + source: "response = fireblocks.n_f_ts.update_token_ownership_status(update_token_ownership_status_dto,\ + \ id, x_end_user_wallet_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /webhooks/{webhookId}/notifications/resend_failed/jobs/{jobId}: - get: - description: | - Get the status of a resend job - operationId: getResendJobStatus + /nfts/ownership/tokens/spam: + put: + description: "Updates tokens spam property for a tenant's token ownerships,\ + \ in all tenant vaults." + operationId: updateTokensOwnershipSpam parameters: - - description: The ID of the webhook + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. explode: false - in: path - name: webhookId - required: true + in: header + name: X-End-User-Wallet-Id + required: false schema: + format: uuid type: string style: simple - - description: The ID of the resend job + - 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: path - name: jobId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateTokensOwnershipSpamRequest" + required: true responses: "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ResendFailedNotificationsJobStatusResponse" - description: Job status + description: All token spam properties have been updated headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get resend job status + "400": + description: Invalid data sent + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + description: When ownership for token ID is not found + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: Update tokens ownership spam property tags: - - Webhooks V2 - x-rate-limit-category: read + - NFTs + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.webhooksV2.getResendJobStatus(webhooksV2ApiGetResendJobStatusRequest);" + code: "const response: Promise> = fireblocks.nFTs.updateTokensOwnershipSpam(nFTsApiUpdateTokensOwnershipSpamRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.webhooksV2().getResendJobStatus(webhookId, jobId);" + code: "CompletableFuture> response = fireblocks.nFTs().updateTokensOwnershipSpam(tokenOwnershipSpamUpdatePayload,\ + \ xEndUserWalletId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.get_resend_job_status(webhook_id,\ - \ job_id);" + code: "response = fireblocks.n_f_ts.update_tokens_ownership_spam(token_ownership_spam_update_payload,\ + \ x_end_user_wallet_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.webhooksV2.getResendJobStatus(webhooksV2ApiGetResendJobStatusRequest);" + source: "const response: Promise> = fireblocks.nFTs.updateTokensOwnershipSpam(nFTsApiUpdateTokensOwnershipSpamRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.webhooksV2().getResendJobStatus(webhookId, jobId);" + source: "CompletableFuture> response = fireblocks.nFTs().updateTokensOwnershipSpam(tokenOwnershipSpamUpdatePayload,\ + \ xEndUserWalletId, idempotencyKey);" - lang: Python - source: "response = fireblocks.webhooks_v2.get_resend_job_status(webhook_id,\ - \ job_id);" + source: "response = fireblocks.n_f_ts.update_tokens_ownership_spam(token_ownership_spam_update_payload,\ + \ x_end_user_wallet_id, idempotency_key);" + x-content-type: application/json 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 + /nfts/ownership/tokens/status: + put: + description: "Updates tokens status for a tenant, in all tenant vaults." + operationId: updateTokensOwnershipStatus parameters: + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: false + schema: + format: uuid + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -15060,172 +15317,73 @@ paths: 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" + $ref: "#/components/schemas/UpdateTokensOwnershipStatusRequest" required: true responses: "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ResendByQueryResponse" - description: No matching notifications to resend + description: All token statuses have been updated 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 + "400": + description: Invalid data sent 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 + "404": + description: When ownership for token ID is not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get resend by query job status + summary: Update tokens ownership status tags: - - Webhooks V2 - x-rate-limit-category: read + - NFTs + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.webhooksV2.getResendByQueryJobStatus(webhooksV2ApiGetResendByQueryJobStatusRequest);" + code: "const response: Promise> = fireblocks.nFTs.updateTokensOwnershipStatus(nFTsApiUpdateTokensOwnershipStatusRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.webhooksV2().getResendByQueryJobStatus(webhookId,\ - \ jobId);" + code: "CompletableFuture> response = fireblocks.nFTs().updateTokensOwnershipStatus(tokenOwnershipStatusUpdatePayload,\ + \ xEndUserWalletId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.webhooks_v2.get_resend_by_query_job_status(webhook_id,\ - \ job_id);" + code: "response = fireblocks.n_f_ts.update_tokens_ownership_status(token_ownership_status_update_payload,\ + \ x_end_user_wallet_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.webhooksV2.getResendByQueryJobStatus(webhooksV2ApiGetResendByQueryJobStatusRequest);" + source: "const response: Promise> = fireblocks.nFTs.updateTokensOwnershipStatus(nFTsApiUpdateTokensOwnershipStatusRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.webhooksV2().getResendByQueryJobStatus(webhookId,\ - \ jobId);" + source: "CompletableFuture> response = fireblocks.nFTs().updateTokensOwnershipStatus(tokenOwnershipStatusUpdatePayload,\ + \ xEndUserWalletId, idempotencyKey);" - lang: Python - source: "response = fireblocks.webhooks_v2.get_resend_by_query_job_status(webhook_id,\ - \ job_id);" + source: "response = fireblocks.n_f_ts.update_tokens_ownership_status(token_ownership_status_update_payload,\ + \ x_end_user_wallet_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /tokenization/templates: + /nfts/tokens: get: - description: |- - Return minimal representation of all the contract templates available for the workspace. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getContractTemplates + description: | + Returns the requested tokens data. + operationId: getNFTs parameters: - - description: Items per page (max 100) - explode: true - in: query - name: limit - required: false - schema: - default: 100 - maximum: 100 - minimum: 1 - type: number - style: form - - description: Paging offset + - description: A comma separated list of NFT IDs. Up to 100 are allowed in a + single request. explode: true in: query - name: offset - required: false + name: ids + required: true schema: - default: 0 - minimum: 0 - type: number + type: string style: form - - description: Page cursor to get the next page - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + - description: Page cursor to fetch explode: true in: query name: pageCursor @@ -15233,9 +15391,7 @@ paths: schema: type: string style: form - - description: "Number of items per page, requesting more then max will return\ - \ max items" - example: 10 + - description: Items per page (max 100) explode: true in: query name: pageSize @@ -15245,30 +15401,32 @@ paths: minimum: 1 type: number style: form - - description: "The type of the contract templates you wish to retrieve. Can\ - \ accept one type, more or none" - example: FUNGIBLE_TOKEN + - description: "Sort by param, it can be one param or a list of params separated\ + \ by comma" explode: true in: query - name: type + name: sort required: false schema: - enum: - - FUNGIBLE_TOKEN - - NON_FUNGIBLE_TOKEN - - TOKEN_UTILITY - type: string + items: + enum: + - collection.name + - name + - blockchainDescriptor + type: string + type: array style: form - - description: For standalone contracts use ON_DEPLOYMENT and for contracts - that are behind proxies use POST_DEPLOYMENT + - description: "Order direction, it can be `ASC` for ascending or `DESC` for\ + \ descending" explode: true in: query - name: initializationPhase + name: order required: false schema: + default: ASC enum: - - ON_DEPLOYMENT - - POST_DEPLOYMENT + - DESC + - ASC type: string style: form responses: @@ -15276,383 +15434,349 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TemplatesPaginatedResponse" - description: List of contract templates was returned successfully - default: - $ref: "#/components/responses/Error" - summary: List all contract templates + $ref: "#/components/schemas/GetNFTsResponse" + description: "" + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: List tokens by IDs tags: - - Contract Templates + - NFTs x-rate-limit-category: query x-readme: code-samples: - - language: python - code: contract_templates = fireblocks.get_contract_templates() - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const contractTemplates = await fireblocks.getContractTemplates(); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contractTemplates.getContractTemplates(contractTemplatesApiGetContractTemplatesRequest);" + code: "const response: Promise> = fireblocks.nFTs.getNFTs(nFTsApiGetNFTsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.contractTemplates().getContractTemplates(limit, offset,\ - \ pageCursor, pageSize, type, initializationPhase);" + code: "CompletableFuture> response = fireblocks.nFTs().getNFTs(ids,\ + \ pageCursor, pageSize, sort, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contract_templates.get_contract_templates(limit,\ - \ offset, page_cursor, page_size, type, initialization_phase);" + code: "response = fireblocks.n_f_ts.get_n_f_ts(ids, page_cursor, page_size,\ + \ sort, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contractTemplates.getContractTemplates(contractTemplatesApiGetContractTemplatesRequest);" + source: "const response: Promise> = fireblocks.nFTs.getNFTs(nFTsApiGetNFTsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.contractTemplates().getContractTemplates(limit, offset, pageCursor,\ - \ pageSize, type, initializationPhase);" + source: "CompletableFuture> response = fireblocks.nFTs().getNFTs(ids,\ + \ pageCursor, pageSize, sort, order);" - lang: Python - source: "response = fireblocks.contract_templates.get_contract_templates(limit,\ - \ offset, page_cursor, page_size, type, initialization_phase);" + source: "response = fireblocks.n_f_ts.get_n_f_ts(ids, page_cursor, page_size,\ + \ sort, order);" x-accepts: - application/json - post: - description: Upload a new contract template. This contract template will be - available for the workspace - operationId: uploadContractTemplate + /nfts/tokens/{id}: + get: + description: | + Returns the requested token data. + operationId: getNFT 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." + - description: NFT ID + example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: id + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ContractUploadRequest" - required: true responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/ContractTemplateDto" - description: Contract was uploaded successfully - default: - $ref: "#/components/responses/Error" - summary: Upload contract template + $ref: "#/components/schemas/TokenResponse" + description: "" + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: List token data by ID tags: - - Contract Templates - x-rate-limit-category: write + - NFTs + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: template = fireblocks.upload_contract_template(upload_request) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const contractTemplate = await fireblocks.uploadContractTemplate(uploadRequest); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contractTemplates.uploadContractTemplate(contractTemplatesApiUploadContractTemplateRequest);" + code: "const response: Promise> = fireblocks.nFTs.getNFT(nFTsApiGetNFTRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.contractTemplates().uploadContractTemplate(contractUploadRequest,\ - \ idempotencyKey);" + code: CompletableFuture> response = fireblocks.nFTs().getNFT(id); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contract_templates.upload_contract_template(contract_upload_request,\ - \ idempotency_key);" + code: response = fireblocks.n_f_ts.get_n_f_t(id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contractTemplates.uploadContractTemplate(contractTemplatesApiUploadContractTemplateRequest);" + source: "const response: Promise> = fireblocks.nFTs.getNFT(nFTsApiGetNFTRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.contractTemplates().uploadContractTemplate(contractUploadRequest,\ - \ idempotencyKey);" + source: CompletableFuture> response = fireblocks.nFTs().getNFT(id); - lang: Python - source: "response = fireblocks.contract_templates.upload_contract_template(contract_upload_request,\ - \ idempotency_key);" - x-content-type: application/json + source: response = fireblocks.n_f_ts.get_n_f_t(id); x-accepts: - application/json - /tokenization/templates/{contractTemplateId}: - delete: - description: "Delete a contract by id. allowed only for private contract templates.\ - \ Notice: it is irreversible!" - operationId: deleteContractTemplateById + put: + description: | + Updates the latest token metadata. + operationId: refreshNFTMetadata parameters: - - description: The Contract Template identifier - example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: false + schema: + format: uuid + type: string + style: simple + - description: NFT ID + example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd explode: false in: path - name: contractTemplateId + name: id required: true schema: 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\ + \ 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: - "204": - description: Contract was deleted successfully - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/HttpContractDoesNotExistError" - description: Could not find contract. - default: - $ref: "#/components/responses/Error" - summary: Delete a contract template by id + "202": + description: "" + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: Refresh token metadata tags: - - Contract Templates + - NFTs x-rate-limit-category: write x-readme: code-samples: - - language: python - code: fireblocks.deleteContractTemplate(contract_id) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: await fireblocks.getContractTemplate(contractId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.contractTemplates.deleteContractTemplateById(contractTemplatesApiDeleteContractTemplateByIdRequest);" + code: "const response: Promise> = fireblocks.nFTs.refreshNFTMetadata(nFTsApiRefreshNFTMetadataRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.contractTemplates().deleteContractTemplateById(contractTemplateId); + code: "CompletableFuture> response = fireblocks.nFTs().refreshNFTMetadata(id,\ + \ xEndUserWalletId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.contract_templates.delete_contract_template_by_id(contract_template_id); + code: "response = fireblocks.n_f_ts.refresh_n_f_t_metadata(id, x_end_user_wallet_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.contractTemplates.deleteContractTemplateById(contractTemplatesApiDeleteContractTemplateByIdRequest);" + source: "const response: Promise> = fireblocks.nFTs.refreshNFTMetadata(nFTsApiRefreshNFTMetadataRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.contractTemplates().deleteContractTemplateById(contractTemplateId); + source: "CompletableFuture> response = fireblocks.nFTs().refreshNFTMetadata(id,\ + \ xEndUserWalletId, idempotencyKey);" - lang: Python - source: response = fireblocks.contract_templates.delete_contract_template_by_id(contract_template_id); + source: "response = fireblocks.n_f_ts.refresh_n_f_t_metadata(id, x_end_user_wallet_id,\ + \ idempotency_key);" x-accepts: - application/json - get: - description: Return detailed information about the contract template - operationId: getContractTemplateById + /off_exchange/add: + post: + description: |- + Add collateral and create deposit request. + Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: addOffExchange parameters: - - description: The Contract Template identifier - example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d + - 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: path - name: contractTemplateId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AddCollateralRequestBody" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ContractTemplateDto" - description: Contract template was returned successfully - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/HttpContractDoesNotExistError" - description: Could not find contract. + $ref: "#/components/schemas/CreateTransactionResponse" + description: A transaction object default: $ref: "#/components/responses/Error" - summary: Return contract template by id + summary: Add Collateral tags: - - Contract Templates - x-rate-limit-category: read + - Off exchanges + x-rate-limit-category: write x-readme: code-samples: - - language: python - code: contract_template = fireblocks.get_contract_template(contract_id) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const contractTemplate = await fireblocks.getContractTemplate(contractId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contractTemplates.getContractTemplateById(contractTemplatesApiGetContractTemplateByIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.offExchanges.addOffExchange(offExchangesApiAddOffExchangeRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.contractTemplates().getContractTemplateById(contractTemplateId); + code: "CompletableFuture> response\ + \ = fireblocks.offExchanges().addOffExchange(addCollateralRequestBody,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.contract_templates.get_contract_template_by_id(contract_template_id); + code: "response = fireblocks.off_exchanges.add_off_exchange(add_collateral_request_body,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contractTemplates.getContractTemplateById(contractTemplatesApiGetContractTemplateByIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.offExchanges.addOffExchange(offExchangesApiAddOffExchangeRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.contractTemplates().getContractTemplateById(contractTemplateId); + source: "CompletableFuture> response\ + \ = fireblocks.offExchanges().addOffExchange(addCollateralRequestBody, idempotencyKey);" - lang: Python - source: response = fireblocks.contract_templates.get_contract_template_by_id(contract_template_id); + source: "response = fireblocks.off_exchanges.add_off_exchange(add_collateral_request_body,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /tokenization/templates/{contractTemplateId}/constructor: + /off_exchange/collateral_accounts/{mainExchangeAccountId}: get: - description: Return contract template's constructor ABI - operationId: getConstructorByContractTemplateId + description: |- + Returns a collateral account by mainExchangeAccountId. + Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: getOffExchangeCollateralAccounts parameters: - - description: The Contract Template identifier - example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d + - description: The id of the main exchange account for which the requested collateral + account is associated with explode: false in: path - name: contractTemplateId + name: mainExchangeAccountId required: true schema: type: string style: simple - - description: true if you want to get the abi with its docs - explode: true - in: query - name: withDocs - required: false - schema: - default: false - type: boolean - style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/AbiFunction" - description: Contract template's constructor ABI was returned successfully - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/HttpContractDoesNotExistError" - description: Could not find contract. + $ref: "#/components/schemas/ExchangeAccount" + description: An ExchangeAccount object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Return contract template's constructor + summary: Find a specific collateral exchange account tags: - - Contract Templates - x-rate-limit-category: read + - Off exchanges + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: contract_constructor_abi = fireblocks.get_contract_template_constructor(contract_id) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const contractConstructorAbi = await fireblocks.getContractTemplateConstructor(contractId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.contractTemplates.getConstructorByContractTemplateId(contractTemplatesApiGetConstructorByContractTemplateIdRequest);" + code: "const response: Promise> = fireblocks.offExchanges.getOffExchangeCollateralAccounts(offExchangesApiGetOffExchangeCollateralAccountsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.contractTemplates().getConstructorByContractTemplateId(contractTemplateId,\ - \ withDocs);" + code: CompletableFuture> response = fireblocks.offExchanges().getOffExchangeCollateralAccounts(mainExchangeAccountId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contract_templates.get_constructor_by_contract_template_id(contract_template_id,\ - \ with_docs);" + code: response = fireblocks.off_exchanges.get_off_exchange_collateral_accounts(main_exchange_account_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.contractTemplates.getConstructorByContractTemplateId(contractTemplatesApiGetConstructorByContractTemplateIdRequest);" + source: "const response: Promise> = fireblocks.offExchanges.getOffExchangeCollateralAccounts(offExchangesApiGetOffExchangeCollateralAccountsRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.contractTemplates().getConstructorByContractTemplateId(contractTemplateId,\ - \ withDocs);" + source: CompletableFuture> response = fireblocks.offExchanges().getOffExchangeCollateralAccounts(mainExchangeAccountId); - lang: Python - source: "response = fireblocks.contract_templates.get_constructor_by_contract_template_id(contract_template_id,\ - \ with_docs);" + source: response = fireblocks.off_exchanges.get_off_exchange_collateral_accounts(main_exchange_account_id); x-accepts: - application/json - /tokenization/templates/{contractTemplateId}/function: - get: - description: Return contract template`s function ABI by signature - operationId: getFunctionAbiByContractTemplateId + /off_exchange/remove: + post: + description: |- + Remove collateral, create withdraw request. + Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: removeOffExchange parameters: - - description: The Contract Template identifier - example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d + - 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: path - name: contractTemplateId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple - - explode: true - in: query - name: functionSignature - required: true - schema: - type: string - style: form + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/RemoveCollateralRequestBody" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/AbiFunction" - description: Contract template`s function ABI was returned successfully - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/HttpContractDoesNotExistError" - description: Could not find contract. + $ref: "#/components/schemas/CreateTransactionResponse" + description: A transaction object default: $ref: "#/components/responses/Error" - summary: Return contract template's function + summary: Remove Collateral tags: - - Contract Templates - x-rate-limit-category: read + - Off exchanges + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.contractTemplates.getFunctionAbiByContractTemplateId(contractTemplatesApiGetFunctionAbiByContractTemplateIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.offExchanges.removeOffExchange(offExchangesApiRemoveOffExchangeRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.contractTemplates().getFunctionAbiByContractTemplateId(contractTemplateId,\ - \ functionSignature);" + code: "CompletableFuture> response\ + \ = fireblocks.offExchanges().removeOffExchange(removeCollateralRequestBody,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contract_templates.get_function_abi_by_contract_template_id(contract_template_id,\ - \ function_signature);" + code: "response = fireblocks.off_exchanges.remove_off_exchange(remove_collateral_request_body,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.contractTemplates.getFunctionAbiByContractTemplateId(contractTemplatesApiGetFunctionAbiByContractTemplateIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.offExchanges.removeOffExchange(offExchangesApiRemoveOffExchangeRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.contractTemplates().getFunctionAbiByContractTemplateId(contractTemplateId,\ - \ functionSignature);" + source: "CompletableFuture> response\ + \ = fireblocks.offExchanges().removeOffExchange(removeCollateralRequestBody,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.contract_templates.get_function_abi_by_contract_template_id(contract_template_id,\ - \ function_signature);" + source: "response = fireblocks.off_exchanges.remove_off_exchange(remove_collateral_request_body,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /tokenization/templates/{contractTemplateId}/deploy: + /off_exchange/settlements/trader: post: - description: "Deploy a new contract by contract template id. If you wish to\ - \ deploy a token (ERC20, ERC721 etc), and create asset please use POST /tokenization" - operationId: deployContract + description: |- + Create settlement for a trader. + Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: settleOffExchangeTrades parameters: - - description: The Contract Template identifier - example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d - explode: false - in: path - name: contractTemplateId - required: true - schema: - 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -15668,132 +15792,123 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ContractDeployRequest" - required: true + $ref: "#/components/schemas/SettlementRequestBody" responses: - "202": - content: - application/json: - schema: - $ref: "#/components/schemas/ContractDeployResponse" - description: Contract was deployed successfully - "404": + "201": content: application/json: schema: - $ref: "#/components/schemas/HttpContractDoesNotExistError" - description: Could not find contract. + $ref: "#/components/schemas/SettlementResponse" + description: A settlement object default: $ref: "#/components/responses/Error" - summary: Deploy contract + summary: Create Settlement for a Trader tags: - - Contract Templates + - Off exchanges x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "response = fireblocks.deploy_contract(contract_id, contract_deploy_request)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const { txId } = await fireblocks.deployContract(contractId, contractDeployRequest);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contractTemplates.deployContract(contractTemplatesApiDeployContractRequest);" + code: "const response: Promise> =\ + \ fireblocks.offExchanges.settleOffExchangeTrades(offExchangesApiSettleOffExchangeTradesRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.contractTemplates().deployContract(contractDeployRequest,\ - \ contractTemplateId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.offExchanges().settleOffExchangeTrades(settlementRequestBody,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contract_templates.deploy_contract(contract_deploy_request,\ - \ contract_template_id, idempotency_key);" + code: "response = fireblocks.off_exchanges.settle_off_exchange_trades(settlement_request_body,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contractTemplates.deployContract(contractTemplatesApiDeployContractRequest);" + source: "const response: Promise> =\ + \ fireblocks.offExchanges.settleOffExchangeTrades(offExchangesApiSettleOffExchangeTradesRequest);" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.contractTemplates().deployContract(contractDeployRequest, contractTemplateId,\ + source: "CompletableFuture> response = fireblocks.offExchanges().settleOffExchangeTrades(settlementRequestBody,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.contract_templates.deploy_contract(contract_deploy_request,\ - \ contract_template_id, idempotency_key);" + source: "response = fireblocks.off_exchanges.settle_off_exchange_trades(settlement_request_body,\ + \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /tokenization/templates/{contractTemplateId}/supported_blockchains: + /off_exchange/settlements/transactions: get: - description: Get supported blockchains for the template - operationId: getSupportedBlockchainsByTemplateId + description: |- + Get settlements transactions from exchange. + Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: getOffExchangeSettlementTransactions parameters: - - description: The Contract Template identifier - example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d - explode: false - in: path - name: contractTemplateId + - explode: true + in: query + name: mainExchangeAccountId required: true schema: type: string - style: simple + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SupportedBlockChainsResponse" - description: Supported blockchains list - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/HttpContractDoesNotExistError" - description: Could not find contract. + $ref: "#/components/schemas/ExchangeSettlementTransactionsResponse" + description: A settlement transactions default: $ref: "#/components/responses/Error" - summary: Get supported blockchains for the template + summary: Get Settlements Transactions tags: - - Contract Templates - x-rate-limit-category: read + - Off exchanges + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: supported_blockchains = fireblocks.get_supported_blockchains_by_template_id(contract_template_id) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const supportedBlockchains = await fireblocks.getSupportedBlockchainsByTemplateId(contractTemplateId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contractTemplates.getSupportedBlockchainsByTemplateId(contractTemplatesApiGetSupportedBlockchainsByTemplateIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.offExchanges.getOffExchangeSettlementTransactions(offExchangesApiGetOffExchangeSettlementTransactionsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.contractTemplates().getSupportedBlockchainsByTemplateId(contractTemplateId); + code: CompletableFuture> response = fireblocks.offExchanges().getOffExchangeSettlementTransactions(mainExchangeAccountId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.contract_templates.get_supported_blockchains_by_template_id(contract_template_id); + code: response = fireblocks.off_exchanges.get_off_exchange_settlement_transactions(main_exchange_account_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contractTemplates.getSupportedBlockchainsByTemplateId(contractTemplatesApiGetSupportedBlockchainsByTemplateIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.offExchanges.getOffExchangeSettlementTransactions(offExchangesApiGetOffExchangeSettlementTransactionsRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.contractTemplates().getSupportedBlockchainsByTemplateId(contractTemplateId); + source: CompletableFuture> response = fireblocks.offExchanges().getOffExchangeSettlementTransactions(mainExchangeAccountId); - lang: Python - source: response = fireblocks.contract_templates.get_supported_blockchains_by_template_id(contract_template_id); + source: response = fireblocks.off_exchanges.get_off_exchange_settlement_transactions(main_exchange_account_id); x-accepts: - application/json - /tokenization/contracts: + /onchain_data/base_asset_id/{baseAssetId}/access_registry_address/{accessRegistryAddress}/list: get: - description: Return a filtered lean representation of the deployed contracts - data on all blockchains (paginated) - operationId: getDeployedContracts + description: Returns the current state of addresses in the specified access + registry. Only addresses that are currently active (added but not removed) + are included. + operationId: getAccessRegistryCurrentState parameters: - - description: Page cursor to get the next page + - description: The blockchain base assetId + example: ETH_TEST3 + explode: false + in: path + name: baseAssetId + required: true + schema: + type: string + style: simple + - description: The access registry address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 + explode: false + in: path + name: accessRegistryAddress + required: true + schema: + type: string + style: simple + - description: Page cursor to get the next page" example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true in: query @@ -15802,8 +15917,8 @@ paths: schema: type: string style: form - - description: "Number of items per page, requesting more then max will return\ - \ max items" + - description: "Number of items per page (max 100), requesting more then 100\ + \ will return 100 items" example: 10 explode: true in: query @@ -15812,29 +15927,30 @@ paths: schema: maximum: 100 minimum: 1 - type: number + type: integer style: form - - description: The contract's onchain address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 + - description: Sorting field (enum). explode: true in: query - name: contractAddress - required: false - schema: - type: string - style: form - - explode: true - in: query - name: baseAssetId + name: sortBy required: false schema: + default: dateAdded + enum: + - dateAdded + - address type: string style: form - - explode: true + - description: ASC / DESC ordering (default DESC) + explode: true in: query - name: contractTemplateId + name: order required: false schema: + default: DESC + enum: + - ASC + - DESC type: string style: form responses: @@ -15842,58 +15958,62 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/DeployedContractsPaginatedResponse" - description: Deployed contracts fetched successfully + $ref: "#/components/schemas/AccessRegistryCurrentStateResponse-2" + description: Access registry current state retrieved successfully default: $ref: "#/components/responses/Error" - summary: List deployed contracts data + summary: Get the current state of addresses in an access registry tags: - - Deployed Contracts - x-rate-limit-category: query + - Onchain Data + x-rate-limit-category: read x-readme: code-samples: - - language: python - code: deployed_contracts = fireblocks.get_contracts_by_filter(template_id) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const deployedContracts = await fireblocks.getContractsByFilter(templateId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.deployedContracts.getDeployedContracts(deployedContractsApiGetDeployedContractsRequest);" + code: "const response: Promise>\ + \ = fireblocks.onchainData.getAccessRegistryCurrentState(onchainDataApiGetAccessRegistryCurrentStateRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.deployedContracts().getDeployedContracts(pageCursor,\ - \ pageSize, contractAddress, baseAssetId, contractTemplateId);" + code: "CompletableFuture>\ + \ response = fireblocks.onchainData().getAccessRegistryCurrentState(baseAssetId,\ + \ accessRegistryAddress, pageCursor, pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.deployed_contracts.get_deployed_contracts(page_cursor,\ - \ page_size, contract_address, base_asset_id, contract_template_id);" + code: "response = fireblocks.onchain_data.get_access_registry_current_state(base_asset_id,\ + \ access_registry_address, page_cursor, page_size, sort_by, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.deployedContracts.getDeployedContracts(deployedContractsApiGetDeployedContractsRequest);" + source: "const response: Promise>\ + \ = fireblocks.onchainData.getAccessRegistryCurrentState(onchainDataApiGetAccessRegistryCurrentStateRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.deployedContracts().getDeployedContracts(pageCursor,\ - \ pageSize, contractAddress, baseAssetId, contractTemplateId);" + source: "CompletableFuture>\ + \ response = fireblocks.onchainData().getAccessRegistryCurrentState(baseAssetId,\ + \ accessRegistryAddress, pageCursor, pageSize, sortBy, order);" - lang: Python - source: "response = fireblocks.deployed_contracts.get_deployed_contracts(page_cursor,\ - \ page_size, contract_address, base_asset_id, contract_template_id);" + source: "response = fireblocks.onchain_data.get_access_registry_current_state(base_asset_id,\ + \ access_registry_address, page_cursor, page_size, sort_by, order);" x-accepts: - application/json - /tokenization/contracts/{id}: + /onchain_data/base_asset_id/{baseAssetId}/access_registry_address/{accessRegistryAddress}/summary: get: - description: Return deployed contract data by id - operationId: getDeployedContractById + description: Returns a summary of the current state of the access registry for + the specified baseAssetId and accessRegistryAddress. + operationId: getAccessRegistrySummary parameters: - - description: The deployed contract data identifier - example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d + - description: The blockchain base assetId + example: ETH_TEST3 explode: false in: path - name: id + name: baseAssetId + required: true + schema: + type: string + style: simple + - description: The access registry address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 + explode: false + in: path + name: accessRegistryAddress required: true schema: type: string @@ -15903,51 +16023,56 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/DeployedContractResponseDto" - description: "" + $ref: "#/components/schemas/AccessRegistrySummaryResponse" + description: Successfully retrieved the summary of the access registry state default: $ref: "#/components/responses/Error" - summary: Return deployed contract data by id + summary: Summary of access registry state tags: - - Deployed Contracts + - Onchain Data x-rate-limit-category: read x-readme: code-samples: - - language: python - code: deployed_contracts = fireblocks.get_contract_by_id(contract_id) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const deployedContracts = await fireblocks.getContractById(contractId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.deployedContracts.getDeployedContractById(deployedContractsApiGetDeployedContractByIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.onchainData.getAccessRegistrySummary(onchainDataApiGetAccessRegistrySummaryRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.deployedContracts().getDeployedContractById(id); + code: "CompletableFuture> response\ + \ = fireblocks.onchainData().getAccessRegistrySummary(baseAssetId, accessRegistryAddress);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.deployed_contracts.get_deployed_contract_by_id(id); + code: "response = fireblocks.onchain_data.get_access_registry_summary(base_asset_id,\ + \ access_registry_address);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.deployedContracts.getDeployedContractById(deployedContractsApiGetDeployedContractByIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.onchainData.getAccessRegistrySummary(onchainDataApiGetAccessRegistrySummaryRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.deployedContracts().getDeployedContractById(id); + source: "CompletableFuture> response\ + \ = fireblocks.onchainData().getAccessRegistrySummary(baseAssetId, accessRegistryAddress);" - lang: Python - source: response = fireblocks.deployed_contracts.get_deployed_contract_by_id(id); + source: "response = fireblocks.onchain_data.get_access_registry_summary(base_asset_id,\ + \ access_registry_address);" x-accepts: - application/json - /tokenization/contracts/{assetId}/{contractAddress}: + /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/account_address/{accountAddress}/balance_history: get: - description: Return deployed contract data by blockchain native asset id and - contract address - operationId: getDeployedContractByAddress + description: Returns the paginated balance history of the specified account + in a contract with optional date range and interval filtering. + operationId: getContractBalanceHistory parameters: - - description: The contract's onchain address + - description: The blockchain base assetId + example: ETH_TEST3 + explode: false + in: path + name: baseAssetId + required: true + schema: + type: string + style: simple + - description: The contract address example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 explode: false in: path @@ -15956,196 +16081,173 @@ paths: schema: type: string style: simple - - explode: false + - description: The account address to get balance history for + explode: false in: path - name: assetId + name: accountAddress required: true schema: + example: 0x1234567890abcdef1234567890abcdef12345678 type: string style: simple + - description: Start date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z + explode: true + in: query + name: startDate + required: false + schema: + format: date-time + type: string + style: form + - description: End date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z + explode: true + in: query + name: endDate + required: false + schema: + format: date-time + type: string + style: form + - description: Time interval for grouping data + example: day + explode: true + in: query + name: interval + required: false + schema: + default: day + enum: + - hour + - day + - week + - month + type: string + style: form + - description: Page cursor to get the next page" + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: "Number of items per page (max 100), requesting more then 100\ + \ will return 100 items" + example: 10 + explode: true + in: query + name: pageSize + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Sorting field (enum). Sorting only supported by 'blockTimestamp' + explode: true + in: query + name: sortBy + required: false + schema: + default: blockTimestamp + enum: + - blockTimestamp + type: string + style: form + - description: ASC / DESC ordering (default DESC) + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/DeployedContractResponseDto" - description: "" + $ref: "#/components/schemas/BalanceHistoryPagedResponse-2" + description: Successfully retrieved the contract balance history default: $ref: "#/components/responses/Error" - summary: Return deployed contract data + summary: Get historical balance data for a specific account in a contract tags: - - Deployed Contracts + - Onchain Data x-rate-limit-category: read x-readme: code-samples: - - language: python - code: "deployed_contract = fireblocks.get_contract_by_address(base_asset_id,\ - \ contract_address)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const deployedContract = await fireblocks.getContractByAddress(baseAssetId,\ - \ contractAddress);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.deployedContracts.getDeployedContractByAddress(deployedContractsApiGetDeployedContractByAddressRequest);" + code: "const response: Promise>\ + \ = fireblocks.onchainData.getContractBalanceHistory(onchainDataApiGetContractBalanceHistoryRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.deployedContracts().getDeployedContractByAddress(contractAddress,\ - \ assetId);" + code: "CompletableFuture> response\ + \ = fireblocks.onchainData().getContractBalanceHistory(baseAssetId, contractAddress,\ + \ accountAddress, startDate, endDate, interval, pageCursor, pageSize,\ + \ sortBy, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.deployed_contracts.get_deployed_contract_by_address(contract_address,\ - \ asset_id);" + code: "response = fireblocks.onchain_data.get_contract_balance_history(base_asset_id,\ + \ contract_address, account_address, start_date, end_date, interval, page_cursor,\ + \ page_size, sort_by, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.deployedContracts.getDeployedContractByAddress(deployedContractsApiGetDeployedContractByAddressRequest);" + source: "const response: Promise>\ + \ = fireblocks.onchainData.getContractBalanceHistory(onchainDataApiGetContractBalanceHistoryRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.deployedContracts().getDeployedContractByAddress(contractAddress,\ - \ assetId);" + source: "CompletableFuture> response\ + \ = fireblocks.onchainData().getContractBalanceHistory(baseAssetId, contractAddress,\ + \ accountAddress, startDate, endDate, interval, pageCursor, pageSize, sortBy,\ + \ order);" - lang: Python - source: "response = fireblocks.deployed_contracts.get_deployed_contract_by_address(contract_address,\ - \ asset_id);" + source: "response = fireblocks.onchain_data.get_contract_balance_history(base_asset_id,\ + \ contract_address, account_address, start_date, end_date, interval, page_cursor,\ + \ page_size, sort_by, order);" x-accepts: - application/json - /tokenization/contracts/fetch_abi: - post: - description: Fetch the ABI. If not found fetch the ABI from the block explorer - operationId: fetchContractAbi + /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/balances: + get: + description: Returns the latest balance for each unique address with support + for numeric balance sorting. The `prev` cursor is reserved for future support. + operationId: getLatestBalancesForContract 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." + - description: The blockchain base assetId + example: ETH_TEST3 explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: baseAssetId + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/FetchAbiRequestDto" - required: true - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ContractWithAbiDto" - description: Contract ABI found. - "404": - description: Contract ABI not found - default: - $ref: "#/components/responses/Error" - summary: Fetch the contract ABI - tags: - - Deployed Contracts - x-rate-limit-category: read - x-readme: - code-samples: - - language: typescript - code: "const response: Promise> =\ - \ fireblocks.deployedContracts.fetchContractAbi(deployedContractsApiFetchContractAbiRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response = fireblocks.deployedContracts().fetchContractAbi(fetchAbiRequestDto,\ - \ idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.deployed_contracts.fetch_contract_abi(fetch_abi_request_dto,\ - \ idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.deployedContracts.fetchContractAbi(deployedContractsApiFetchContractAbiRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.deployedContracts().fetchContractAbi(fetchAbiRequestDto,\ - \ idempotencyKey);" - - lang: Python - source: "response = fireblocks.deployed_contracts.fetch_contract_abi(fetch_abi_request_dto,\ - \ idempotency_key);" - x-content-type: application/json - x-accepts: - - application/json - /tokenization/contracts/abi: - post: - description: Save contract ABI for the tenant - operationId: addContractABI - 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." + - description: The contract address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: contractAddress + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/AddAbiRequestDto" - required: true - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ContractWithAbiDto" - description: Contract ABI created (or updated) for the tenant - "409": - description: Contract ABI already exists. - default: - $ref: "#/components/responses/Error" - summary: Save contract ABI - tags: - - Deployed Contracts - x-rate-limit-category: write - x-readme: - code-samples: - - language: typescript - code: "const response: Promise> =\ - \ fireblocks.deployedContracts.addContractABI(deployedContractsApiAddContractABIRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response = fireblocks.deployedContracts().addContractABI(addAbiRequestDto,\ - \ idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.deployed_contracts.add_contract_a_b_i(add_abi_request_dto,\ - \ idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.deployedContracts.addContractABI(deployedContractsApiAddContractABIRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.deployedContracts().addContractABI(addAbiRequestDto,\ - \ idempotencyKey);" - - lang: Python - source: "response = fireblocks.deployed_contracts.add_contract_a_b_i(add_abi_request_dto,\ - \ idempotency_key);" - x-content-type: application/json - x-accepts: - - application/json - /tokenization/tokens: - get: - description: Return all linked tokens (paginated) - operationId: getLinkedTokens - parameters: - - description: Page cursor to get the next page + - description: Optional filter to get balance for a specific account address + explode: true + in: query + name: accountAddress + required: false + schema: + example: 0x1234567890abcdef1234567890abcdef12345678 + type: string + style: form + - description: Page cursor to get the next page" example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true in: query @@ -16154,8 +16256,8 @@ paths: schema: type: string style: form - - description: "Number of items per page, requesting more then max will return\ - \ max items" + - description: "Number of items per page (max 100), requesting more then 100\ + \ will return 100 items" example: 10 explode: true in: query @@ -16164,378 +16266,260 @@ paths: schema: maximum: 100 minimum: 1 - type: number + type: integer style: form - - description: A comma separated list of statuses to filter. Default is "COMPLETED" - example: COMPLETED + - description: Sorting field for balances explode: true in: query - name: status + name: sortBy required: false - schema: {} + schema: + default: blockTimestamp + enum: + - accountAddress + - blockTimestamp + type: string + style: form + - description: ASC / DESC ordering (default DESC) + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + type: string style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TokensPaginatedResponse" - description: "" + $ref: "#/components/schemas/AddressBalancePagedResponse-2" + description: Successfully retrieved the latest balances for the contract default: $ref: "#/components/responses/Error" - summary: List all linked tokens + summary: Get latest balances for all addresses holding tokens from a contract tags: - - Tokenization - x-rate-limit-category: query + - Onchain Data + x-rate-limit-category: read x-readme: code-samples: - - language: python - code: linked_tokens = fireblocks.get_linked_tokens(payload) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const linkedTokens = await fireblocks.getLinkedTokens(payload); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getLinkedTokens(tokenizationApiGetLinkedTokensRequest);" + code: "const response: Promise>\ + \ = fireblocks.onchainData.getLatestBalancesForContract(onchainDataApiGetLatestBalancesForContractRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().getLinkedTokens(pageCursor, pageSize, status);" + code: "CompletableFuture> response\ + \ = fireblocks.onchainData().getLatestBalancesForContract(baseAssetId,\ + \ contractAddress, accountAddress, pageCursor, pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.get_linked_tokens(page_cursor,\ - \ page_size, status);" + code: "response = fireblocks.onchain_data.get_latest_balances_for_contract(base_asset_id,\ + \ contract_address, account_address, page_cursor, page_size, sort_by,\ + \ order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getLinkedTokens(tokenizationApiGetLinkedTokensRequest);" + source: "const response: Promise>\ + \ = fireblocks.onchainData.getLatestBalancesForContract(onchainDataApiGetLatestBalancesForContractRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().getLinkedTokens(pageCursor, pageSize, status);" + source: "CompletableFuture> response\ + \ = fireblocks.onchainData().getLatestBalancesForContract(baseAssetId, contractAddress,\ + \ accountAddress, pageCursor, pageSize, sortBy, order);" - lang: Python - source: "response = fireblocks.tokenization.get_linked_tokens(page_cursor,\ - \ page_size, status);" + source: "response = fireblocks.onchain_data.get_latest_balances_for_contract(base_asset_id,\ + \ contract_address, account_address, page_cursor, page_size, sort_by, order);" x-accepts: - application/json - post: - description: |- - Facilitates the creation of a new token, supporting both EVM-based and Stellar/Ripple platforms. For EVM, it deploys the corresponding contract template to the blockchain and links the token to the workspace. For Stellar/Ripple, it links a newly created token directly to the workspace without deploying a contract. Returns the token link with status "PENDING" until the token is deployed or "SUCCESS" if no deployment is needed. - Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor. - operationId: issueNewToken + /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/roles: + get: + description: Returns a list of currently active roles for the specified baseAssetId + and contractAddress. + operationId: getActiveRolesForContract 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." + - description: The blockchain base assetId + example: ETH_TEST3 explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: baseAssetId + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateTokenRequestDto" + - description: The contract address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 + explode: false + in: path + name: contractAddress required: true - responses: - "201": - content: - application/json: - schema: - $ref: "#/components/schemas/TokenLinkDto" - description: Token was created successfully - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/AssetAlreadyExistHttpError" - description: Asset already exists - summary: Issue a new token - tags: - - Tokenization - x-rate-limit-category: write - x-readme: - code-samples: - - language: python - code: token = fireblocks.issue_new_token(payload) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const token = await fireblocks.issueNewToken(payload); - name: Fireblocks SDK Javascript example - - language: typescript - code: "const response: Promise> = fireblocks.tokenization.issueNewToken(tokenizationApiIssueNewTokenRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response = fireblocks.tokenization().issueNewToken(createTokenRequestDto,\ - \ idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.tokenization.issue_new_token(create_token_request_dto,\ - \ idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> = fireblocks.tokenization.issueNewToken(tokenizationApiIssueNewTokenRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.tokenization().issueNewToken(createTokenRequestDto,\ - \ idempotencyKey);" - - lang: Python - source: "response = fireblocks.tokenization.issue_new_token(create_token_request_dto,\ - \ idempotency_key);" - x-content-type: application/json - x-accepts: - - application/json - /tokenization/tokens/count: - get: - description: Get the total count of linked tokens - operationId: getLinkedTokensCount + schema: + type: string + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/LinkedTokensCount" - description: Count fetched successfully + $ref: "#/components/schemas/ActiveRolesResponse-2" + description: Successfully retrieved the list of active roles default: $ref: "#/components/responses/Error" - summary: Get the total count of linked tokens + summary: List of active roles for a given contract address and base asset ID tags: - - Tokenization + - Onchain Data x-rate-limit-category: read x-readme: code-samples: - - language: python - code: tokens_count = fireblocks.get_linked_tokens_count() - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const tokensCount = await fireblocks.getLinkedTokensCount(); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.tokenization.getLinkedTokensCount();" + code: "const response: Promise>\ + \ = fireblocks.onchainData.getActiveRolesForContract(onchainDataApiGetActiveRolesForContractRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.tokenization().getLinkedTokensCount(); + code: "CompletableFuture> response = fireblocks.onchainData().getActiveRolesForContract(baseAssetId,\ + \ contractAddress);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.tokenization.get_linked_tokens_count(); + code: "response = fireblocks.onchain_data.get_active_roles_for_contract(base_asset_id,\ + \ contract_address);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.tokenization.getLinkedTokensCount();" + source: "const response: Promise>\ + \ = fireblocks.onchainData.getActiveRolesForContract(onchainDataApiGetActiveRolesForContractRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.tokenization().getLinkedTokensCount(); + source: "CompletableFuture> response = fireblocks.onchainData().getActiveRolesForContract(baseAssetId,\ + \ contractAddress);" - lang: Python - source: response = fireblocks.tokenization.get_linked_tokens_count(); + source: "response = fireblocks.onchain_data.get_active_roles_for_contract(base_asset_id,\ + \ contract_address);" x-accepts: - application/json - /tokenization/tokens/link: - post: - description: Link an a contract - operationId: link + /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/summary: + get: + description: Returns the total number of unique addresses holding balances and + the total supply for the specified contract. + operationId: getContractBalancesSummary 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." + - description: The blockchain base assetId + example: ETH_TEST3 explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: baseAssetId + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/TokenLinkRequestDto" - required: true - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/TokenLinkDto" - description: Token linked successfully - "201": - content: - application/json: - schema: - $ref: "#/components/schemas/TokenLinkDto" - description: "" - "404": - description: Could not find the underlying contract to link to - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/TokenLinkExistsHttpError" - description: "Token link for {refId} already exists" - default: - $ref: "#/components/responses/Error" - summary: Link a contract - tags: - - Tokenization - x-rate-limit-category: write - x-readme: - code-samples: - - language: typescript - code: "const response: Promise> = fireblocks.tokenization.link(tokenizationApiLinkRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response = fireblocks.tokenization().link(tokenLinkRequestDto,\ - \ idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.tokenization.link(token_link_request_dto, idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> = fireblocks.tokenization.link(tokenizationApiLinkRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.tokenization().link(tokenLinkRequestDto,\ - \ idempotencyKey);" - - lang: Python - source: "response = fireblocks.tokenization.link(token_link_request_dto, idempotency_key);" - x-content-type: application/json - x-accepts: - - application/json - /tokenization/tokens/{id}: - delete: - description: "Unlink a token. The token will be unlinked from the workspace.\ - \ The token will not be deleted on chain nor the refId, only the link to the\ - \ workspace will be removed." - operationId: unlink - parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + - description: The contract address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 explode: false in: path - name: id + name: contractAddress required: true schema: type: string style: simple responses: "200": - content: {} - description: Token unlinked successfully - "204": - content: {} - description: "" - "404": content: application/json: schema: - $ref: "#/components/schemas/NotFoundException" - description: Link did not exist + $ref: "#/components/schemas/TokenContractSummaryResponse" + description: Successfully retrieved the summary for the token contract default: $ref: "#/components/responses/Error" - summary: Unlink a token + summary: Get summary for the token contract tags: - - Tokenization - x-rate-limit-category: write + - Onchain Data + x-rate-limit-category: read x-readme: code-samples: - - language: python - code: token = fireblocks.unlink_token(token_id) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const token = await fireblocks.unlinkToken(tokenId); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.tokenization.unlink(tokenizationApiUnlinkRequest);" + code: "const response: Promise>\ + \ = fireblocks.onchainData.getContractBalancesSummary(onchainDataApiGetContractBalancesSummaryRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.tokenization().unlink(id); + code: "CompletableFuture> response\ + \ = fireblocks.onchainData().getContractBalancesSummary(baseAssetId, contractAddress);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.tokenization.unlink(id); + code: "response = fireblocks.onchain_data.get_contract_balances_summary(base_asset_id,\ + \ contract_address);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tokenization.unlink(tokenizationApiUnlinkRequest);" + source: "const response: Promise>\ + \ = fireblocks.onchainData.getContractBalancesSummary(onchainDataApiGetContractBalancesSummaryRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.tokenization().unlink(id); + source: "CompletableFuture> response\ + \ = fireblocks.onchainData().getContractBalancesSummary(baseAssetId, contractAddress);" - lang: Python - source: response = fireblocks.tokenization.unlink(id); + source: "response = fireblocks.onchain_data.get_contract_balances_summary(base_asset_id,\ + \ contract_address);" x-accepts: - application/json + /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/total_supply: get: - description: "Return a linked token, with its status and metadata." - operationId: getLinkedToken + description: Returns the paginated total supply history of the specified contract + with optional date range and interval filtering. + operationId: getContractTotalSupply parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + - description: The blockchain base assetId + example: ETH_TEST3 explode: false in: path - name: id + name: baseAssetId required: true schema: type: string style: simple - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/TokenLinkDto" - description: Token fetched successfully - default: - $ref: "#/components/responses/Error" - summary: Return a linked token - tags: - - Tokenization - x-rate-limit-category: read - x-readme: - code-samples: - - language: python - code: token = fireblocks.get_linked_token(token_id) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const token = await fireblocks.getLinkedToken(tokenId); - name: Fireblocks SDK Javascript example - - language: typescript - code: "const response: Promise> = fireblocks.tokenization.getLinkedToken(tokenizationApiGetLinkedTokenRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response = fireblocks.tokenization().getLinkedToken(id); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.tokenization.get_linked_token(id); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> = fireblocks.tokenization.getLinkedToken(tokenizationApiGetLinkedTokenRequest);" - - lang: Java - source: CompletableFuture> response = fireblocks.tokenization().getLinkedToken(id); - - lang: Python - source: response = fireblocks.tokenization.get_linked_token(id); - x-accepts: - - application/json - /tokenization/access_registries/{id}/addresses: - get: - description: Returns the currently active addresses in the access registry (added - but not removed). - operationId: getTokenAccessRegistryAddresses - parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + - description: The contract address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 explode: false in: path - name: id + name: contractAddress required: true schema: type: string style: simple - - description: Page cursor to get the next page + - description: Start date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z + explode: true + in: query + name: startDate + required: false + schema: + format: date-time + type: string + style: form + - description: End date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z + explode: true + in: query + name: endDate + required: false + schema: + format: date-time + type: string + style: form + - description: Time interval for grouping data + example: day + explode: true + in: query + name: interval + required: false + schema: + default: day + enum: + - hour + - day + - week + - month + type: string + style: form + - description: Page cursor to get the next page" example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true in: query @@ -16544,7 +16528,7 @@ paths: schema: type: string style: form - - description: "Number of items per page (max 100), requesting more than 100\ + - description: "Number of items per page (max 100), requesting more then 100\ \ will return 100 items" example: 10 explode: true @@ -16556,16 +16540,15 @@ paths: minimum: 1 type: integer style: form - - description: Sorting field (enum). + - description: Sorting field (enum). Sorting only supported by 'blockTimestamp' explode: true in: query name: sortBy required: false schema: - default: dateAdded + default: blockTimestamp enum: - - dateAdded - - address + - blockTimestamp type: string style: form - description: ASC / DESC ordering (default DESC) @@ -16585,162 +16568,64 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AccessRegistryCurrentStateResponse" - description: Access registry addresses retrieved successfully - default: - $ref: "#/components/responses/Error" - summary: Get current state of addresses in an access registry - tags: - - Tokenization - x-rate-limit-category: query - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenAccessRegistryAddresses(tokenizationApiGetTokenAccessRegistryAddressesRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture>\ - \ response = fireblocks.tokenization().getTokenAccessRegistryAddresses(id,\ - \ pageCursor, pageSize, sortBy, order);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.tokenization.get_token_access_registry_addresses(id,\ - \ page_cursor, page_size, sort_by, order);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenAccessRegistryAddresses(tokenizationApiGetTokenAccessRegistryAddressesRequest);" - - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.tokenization().getTokenAccessRegistryAddresses(id,\ - \ pageCursor, pageSize, sortBy, order);" - - lang: Python - source: "response = fireblocks.tokenization.get_token_access_registry_addresses(id,\ - \ page_cursor, page_size, sort_by, order);" - x-accepts: - - application/json - /tokenization/access_registries/{id}/summary: - get: - description: Returns a summary of the current state of the access registry. - operationId: getTokenAccessRegistrySummary - parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/AccessRegistrySummaryResponse" - description: Access registry summary retrieved successfully + $ref: "#/components/schemas/TotalSupplyPagedResponse-2" + description: Successfully retrieved the contract total supply history default: $ref: "#/components/responses/Error" - summary: Get summary of an access registry + summary: Get historical total supply data for a contract tags: - - Tokenization + - Onchain Data x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenAccessRegistrySummary(tokenizationApiGetTokenAccessRegistrySummaryRequest);" + code: "const response: Promise>\ + \ = fireblocks.onchainData.getContractTotalSupply(onchainDataApiGetContractTotalSupplyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.tokenization().getTokenAccessRegistrySummary(id); + code: "CompletableFuture> response\ + \ = fireblocks.onchainData().getContractTotalSupply(baseAssetId, contractAddress,\ + \ startDate, endDate, interval, pageCursor, pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.tokenization.get_token_access_registry_summary(id); + code: "response = fireblocks.onchain_data.get_contract_total_supply(base_asset_id,\ + \ contract_address, start_date, end_date, interval, page_cursor, page_size,\ + \ sort_by, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenAccessRegistrySummary(tokenizationApiGetTokenAccessRegistrySummaryRequest);" + source: "const response: Promise>\ + \ = fireblocks.onchainData.getContractTotalSupply(onchainDataApiGetContractTotalSupplyRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.tokenization().getTokenAccessRegistrySummary(id); + source: "CompletableFuture> response\ + \ = fireblocks.onchainData().getContractTotalSupply(baseAssetId, contractAddress,\ + \ startDate, endDate, interval, pageCursor, pageSize, sortBy, order);" - lang: Python - source: response = fireblocks.tokenization.get_token_access_registry_summary(id); + source: "response = fireblocks.onchain_data.get_contract_total_supply(base_asset_id,\ + \ contract_address, start_date, end_date, interval, page_cursor, page_size,\ + \ sort_by, order);" x-accepts: - application/json - /tokenization/tokens/{id}/summary: + /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/transactions: get: - description: Returns the total number of unique holders and the total supply - for the token contract. - operationId: getTokenContractSummary + description: "Returns a paginated list of onchain transactions for the specified\ + \ contract address and base asset ID, optionally filtered by date range." + operationId: getOnchainTransactions parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + - description: The blockchain base assetId + example: ETH_TEST3 explode: false in: path - name: id + name: baseAssetId required: true schema: type: string style: simple - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/TokenContractSummaryResponse" - description: Successfully retrieved the summary for the token contract - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/NotFoundException" - description: Token not found - default: - $ref: "#/components/responses/Error" - summary: Get onchain summary for a token - tags: - - Tokenization - x-rate-limit-category: read - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenContractSummary(tokenizationApiGetTokenContractSummaryRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response - = fireblocks.tokenization().getTokenContractSummary(id); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.tokenization.get_token_contract_summary(id); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenContractSummary(tokenizationApiGetTokenContractSummaryRequest);" - - lang: Java - source: CompletableFuture> response - = fireblocks.tokenization().getTokenContractSummary(id); - - lang: Python - source: response = fireblocks.tokenization.get_token_contract_summary(id); - x-accepts: - - application/json - /tokenization/tokens/{id}/total_supply: - get: - description: Returns paginated total supply history for the token contract with - optional time-range filtering and binning. - operationId: getTokenTotalSupply - parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + - description: The contract address + example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 explode: false in: path - name: id + name: contractAddress required: true schema: type: string @@ -16765,22 +16650,7 @@ paths: format: date-time type: string style: form - - description: Time interval for grouping data - example: DAY - explode: true - in: query - name: interval - required: false - schema: - default: DAY - enum: - - HOUR - - DAY - - WEEK - - MONTH - type: string - style: form - - description: Page cursor to get the next page + - description: Page cursor to get the next page" example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true in: query @@ -16789,7 +16659,7 @@ paths: schema: type: string style: form - - description: "Number of items per page (max 100), requesting more than 100\ + - description: "Number of items per page (max 100), requesting more then 100\ \ will return 100 items" example: 10 explode: true @@ -16801,7 +16671,7 @@ paths: minimum: 1 type: integer style: form - - description: Sorting field (enum). Sorting only supported by 'blockTimestamp' + - description: Sorting field (enum). explode: true in: query name: sortBy @@ -16810,6 +16680,8 @@ paths: default: blockTimestamp enum: - blockTimestamp + - blockNumber + - transactionHash type: string style: form - description: ASC / DESC ordering (default DESC) @@ -16829,657 +16701,253 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TotalSupplyPagedResponse" - description: Successfully retrieved the token total supply history - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/NotFoundException" - description: Token not found + $ref: "#/components/schemas/OnchainTransactionsPagedResponse-2" + description: Onchain transactions fetched successfully default: $ref: "#/components/responses/Error" - summary: Get historical total supply for a token + summary: Fetch onchain transactions for a contract tags: - - Tokenization - x-rate-limit-category: query + - Onchain Data + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenTotalSupply(tokenizationApiGetTokenTotalSupplyRequest);" + code: "const response: Promise>\ + \ = fireblocks.onchainData.getOnchainTransactions(onchainDataApiGetOnchainTransactionsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().getTokenTotalSupply(id, startDate, endDate,\ - \ interval, pageCursor, pageSize, sortBy, order);" + code: "CompletableFuture>\ + \ response = fireblocks.onchainData().getOnchainTransactions(baseAssetId,\ + \ contractAddress, startDate, endDate, pageCursor, pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.get_token_total_supply(id, start_date,\ - \ end_date, interval, page_cursor, page_size, sort_by, order);" + code: "response = fireblocks.onchain_data.get_onchain_transactions(base_asset_id,\ + \ contract_address, start_date, end_date, page_cursor, page_size, sort_by,\ + \ order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenTotalSupply(tokenizationApiGetTokenTotalSupplyRequest);" + source: "const response: Promise>\ + \ = fireblocks.onchainData.getOnchainTransactions(onchainDataApiGetOnchainTransactionsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().getTokenTotalSupply(id, startDate, endDate,\ - \ interval, pageCursor, pageSize, sortBy, order);" + source: "CompletableFuture>\ + \ response = fireblocks.onchainData().getOnchainTransactions(baseAssetId,\ + \ contractAddress, startDate, endDate, pageCursor, pageSize, sortBy, order);" - lang: Python - source: "response = fireblocks.tokenization.get_token_total_supply(id, start_date,\ - \ end_date, interval, page_cursor, page_size, sort_by, order);" + source: "response = fireblocks.onchain_data.get_onchain_transactions(base_asset_id,\ + \ contract_address, start_date, end_date, page_cursor, page_size, sort_by,\ + \ order);" x-accepts: - application/json - /tokenization/tokens/{id}/balances: + /management/ota: get: - description: Returns the latest balance for each unique address holding this - token. - operationId: getTokenBalances - parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - - description: Page cursor to get the next page - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: "Number of items per page (max 100), requesting more than 100\ - \ will return 100 items" - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Sorting field for balances - explode: true - in: query - name: sortBy - required: false - schema: - default: blockTimestamp - enum: - - accountAddress - - blockTimestamp - type: string - style: form - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order - required: false - schema: - default: DESC - enum: - - ASC - - DESC - type: string - style: form + description: Returns current OTA status + operationId: getOtaStatus responses: "200": content: application/json: schema: - $ref: "#/components/schemas/AddressBalancePagedResponse" - description: Successfully retrieved the latest balances for the token + $ref: "#/components/schemas/GetOtaStatusResponse" + description: Current OTA status "404": - content: - application/json: - schema: - $ref: "#/components/schemas/NotFoundException" - description: Token not found - default: - $ref: "#/components/responses/Error" - summary: Get latest balances for all holders of a token + description: Configuration not found for tenant + summary: Returns current OTA status tags: - - Tokenization - x-rate-limit-category: query + - OTA (Beta) + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenBalances(tokenizationApiGetTokenBalancesRequest);" + code: "const response: Promise>\ + \ = fireblocks.oTABeta.getOtaStatus();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().getTokenBalances(id, pageCursor, pageSize,\ - \ sortBy, order);" + code: CompletableFuture> response = fireblocks.oTABeta().getOtaStatus(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.get_token_balances(id, page_cursor,\ - \ page_size, sort_by, order);" + code: response = fireblocks.o_t_a_beta.get_ota_status(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenBalances(tokenizationApiGetTokenBalancesRequest);" + source: "const response: Promise>\ + \ = fireblocks.oTABeta.getOtaStatus();" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().getTokenBalances(id, pageCursor, pageSize,\ - \ sortBy, order);" + source: CompletableFuture> response = fireblocks.oTABeta().getOtaStatus(); - lang: Python - source: "response = fireblocks.tokenization.get_token_balances(id, page_cursor,\ - \ page_size, sort_by, order);" + source: response = fireblocks.o_t_a_beta.get_ota_status(); x-accepts: - application/json - /tokenization/tokens/{id}/balances/{accountAddress}: - get: - description: Returns the latest token balance for the specified account address. - operationId: getTokenBalanceForAccount + put: + description: |- + Enable or disable transactions to One Time Addresses (Non Whitelisted addresses). + Learn more about [One Time Addresses](https://support.fireblocks.io/hc/en-us/articles/4409104568338-One-Time-Address-OTA-feature) + operationId: setOtaStatus parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + - 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: path - name: id - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple - - description: The account address to get balance history for - explode: false - in: path - name: accountAddress + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SetOtaStatusRequest" required: true - schema: - example: 0x1234567890abcdef1234567890abcdef12345678 - type: string - style: simple responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/AddressBalanceItemDto" - description: Successfully retrieved the balance for the account - "404": + "202": content: application/json: schema: - $ref: "#/components/schemas/NotFoundException" - description: Token not found - default: - $ref: "#/components/responses/Error" - summary: Get the latest balance for a specific account + $ref: "#/components/schemas/SetOtaStatusResponse" + description: Successfully updated OTA status + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + description: Bad request + "409": + description: Similar request already pending + "500": + description: Internal server error + summary: Enable or disable transactions to OTA tags: - - Tokenization - x-rate-limit-category: read + - OTA (Beta) + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenBalanceForAccount(tokenizationApiGetTokenBalanceForAccountRequest);" + code: "const response: Promise>\ + \ = fireblocks.oTABeta.setOtaStatus(oTABetaApiSetOtaStatusRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.tokenization().getTokenBalanceForAccount(id, accountAddress);" + code: "CompletableFuture> response = fireblocks.oTABeta().setOtaStatus(setOtaStatusRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.get_token_balance_for_account(id,\ - \ account_address);" + code: "response = fireblocks.o_t_a_beta.set_ota_status(set_ota_status_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenBalanceForAccount(tokenizationApiGetTokenBalanceForAccountRequest);" + source: "const response: Promise>\ + \ = fireblocks.oTABeta.setOtaStatus(oTABetaApiSetOtaStatusRequest);" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.tokenization().getTokenBalanceForAccount(id, accountAddress);" + source: "CompletableFuture> response = fireblocks.oTABeta().setOtaStatus(setOtaStatusRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.tokenization.get_token_balance_for_account(id,\ - \ account_address);" + source: "response = fireblocks.o_t_a_beta.set_ota_status(set_ota_status_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /tokenization/tokens/{id}/balances/{accountAddress}/history: - get: - description: Returns paginated balance history for the specified account address - with optional time-range filtering. - operationId: getTokenBalanceHistory + /payments/workflow_config: + post: + description: "Generate a new configuration ID to be used for initiating executions\ + \ in subsequent phases. This configuration should include the operations you\ + \ intend to incorporate into the workflow, such as TRANSFER, CONVERT, and\ + \ DISBURSE, in addition to your pre-screening preferences, which are disabled\ + \ by default." + operationId: createFlowConfiguration parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + - 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: path - name: id - required: true - schema: - type: string - style: simple - - description: The account address to get balance history for - explode: false - in: path - name: accountAddress - required: true - schema: - example: 0x1234567890abcdef1234567890abcdef12345678 - type: string - style: simple - - description: Start date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: startDate - required: false - schema: - format: date-time - type: string - style: form - - description: End date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: endDate - required: false - schema: - format: date-time - type: string - style: form - - description: Time interval for grouping data - example: DAY - explode: true - in: query - name: interval - required: false - schema: - default: DAY - enum: - - HOUR - - DAY - - WEEK - - MONTH - type: string - style: form - - description: Page cursor to get the next page - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: "Number of items per page (max 100), requesting more than 100\ - \ will return 100 items" - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Sorting field (enum). Sorting only supported by 'blockTimestamp' - explode: true - in: query - name: sortBy - required: false - schema: - default: blockTimestamp - enum: - - blockTimestamp - type: string - style: form - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order + in: header + name: Idempotency-Key required: false schema: - default: DESC - enum: - - ASC - - DESC type: string - style: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateWorkflowConfigurationRequest" responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/BalanceHistoryPagedResponse" - description: Successfully retrieved the balance history - "404": + "202": content: application/json: schema: - $ref: "#/components/schemas/NotFoundException" - description: Token not found - default: - $ref: "#/components/responses/Error" - summary: Get balance history for a specific account - tags: - - Tokenization - x-rate-limit-category: query - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenBalanceHistory(tokenizationApiGetTokenBalanceHistoryRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().getTokenBalanceHistory(id, accountAddress,\ - \ startDate, endDate, interval, pageCursor, pageSize, sortBy, order);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.tokenization.get_token_balance_history(id,\ - \ account_address, start_date, end_date, interval, page_cursor, page_size,\ - \ sort_by, order);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenBalanceHistory(tokenizationApiGetTokenBalanceHistoryRequest);" - - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().getTokenBalanceHistory(id, accountAddress,\ - \ startDate, endDate, interval, pageCursor, pageSize, sortBy, order);" - - lang: Python - source: "response = fireblocks.tokenization.get_token_balance_history(id,\ - \ account_address, start_date, end_date, interval, page_cursor, page_size,\ - \ sort_by, order);" - x-accepts: - - application/json - /tokenization/tokens/{id}/transfers: - get: - description: "Returns a paginated list of ERC20 transfer events for the token\ - \ contract, optionally filtered by date range." - operationId: getTokenTransfers - parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - - description: Start date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: startDate - required: false - schema: - format: date-time - type: string - style: form - - description: End date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: endDate - required: false - schema: - format: date-time - type: string - style: form - - description: Page cursor to get the next page - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: "Number of items per page (max 100), requesting more than 100\ - \ will return 100 items" - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Sorting field for transfers - explode: true - in: query - name: sortBy - required: false - schema: - default: blockTimeStamp - enum: - - blockTimeStamp - type: string - style: form - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order - required: false - schema: - default: DESC - enum: - - ASC - - DESC - type: string - style: form - - description: Filter transfers by sender address - explode: true - in: query - name: sender - required: false - schema: - example: 0xabcdef1234567890abcdef1234567890abcdef12 - type: string - style: form - - description: Filter transfers by receiver address - explode: true - in: query - name: receiver - required: false - schema: - example: 0x1234567890abcdef1234567890abcdef12345678 - type: string - style: form - responses: - "200": + $ref: "#/components/schemas/WorkflowConfiguration" + description: Configuration is being generated + "401": content: application/json: schema: - $ref: "#/components/schemas/OnchainTransfersPagedResponse" - description: Onchain transfers fetched successfully + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. "404": content: application/json: schema: - $ref: "#/components/schemas/NotFoundException" - description: Token not found - default: - $ref: "#/components/responses/Error" - summary: Get onchain transfers for a token + $ref: "#/components/schemas/ErrorResponse" + description: Not found + summary: Create payment flow configuration tags: - - Tokenization - x-rate-limit-category: query - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenTransfers(tokenizationApiGetTokenTransfersRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().getTokenTransfers(id, startDate, endDate,\ - \ pageCursor, pageSize, sortBy, order, sender, receiver);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.tokenization.get_token_transfers(id, start_date,\ - \ end_date, page_cursor, page_size, sort_by, order, sender, receiver);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenTransfers(tokenizationApiGetTokenTransfersRequest);" - - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().getTokenTransfers(id, startDate, endDate,\ - \ pageCursor, pageSize, sortBy, order, sender, receiver);" - - lang: Python - source: "response = fireblocks.tokenization.get_token_transfers(id, start_date,\ - \ end_date, page_cursor, page_size, sort_by, order, sender, receiver);" + - Payments - Flows + x-internal: true + x-rate-limit-category: write + x-content-type: application/json x-accepts: - application/json - /tokenization/tokens/{id}/transactions: - get: - description: "Returns a paginated list of onchain transactions for the token\ - \ contract, optionally filtered by date range." - operationId: getTokenTransactions + /payments/workflow_config/{configId}: + delete: + description: Delete a configuration using the specified "configId". + operationId: deleteFlowConfiguration parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb - explode: false + - explode: false in: path - name: id + name: configId required: true schema: type: string style: simple - - description: Start date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: startDate - required: false - schema: - format: date-time - type: string - style: form - - description: End date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: endDate - required: false - schema: - format: date-time - type: string - style: form - - description: Page cursor to get the next page - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: "Number of items per page (max 100), requesting more than 100\ - \ will return 100 items" - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Sorting field (enum). - explode: true - in: query - name: sortBy - required: false - schema: - default: blockTimestamp - enum: - - blockTimestamp - - blockNumber - - transactionHash - type: string - style: form - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order - required: false - schema: - default: DESC - enum: - - ASC - - DESC - type: string - style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/OnchainTransactionsPagedResponse" - description: Onchain transactions fetched successfully + $ref: "#/components/schemas/WorkflowConfigurationId" + description: The specified configuration has been deleted successfully. + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. "404": content: application/json: schema: - $ref: "#/components/schemas/NotFoundException" - description: Token not found - default: - $ref: "#/components/responses/Error" - summary: Get onchain transactions for a token + $ref: "#/components/schemas/ErrorResponse" + description: Not found + summary: Delete workflow configuration tags: - - Tokenization - x-rate-limit-category: query - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenTransactions(tokenizationApiGetTokenTransactionsRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture>\ - \ response = fireblocks.tokenization().getTokenTransactions(id, startDate,\ - \ endDate, pageCursor, pageSize, sortBy, order);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.tokenization.get_token_transactions(id, start_date,\ - \ end_date, page_cursor, page_size, sort_by, order);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenTransactions(tokenizationApiGetTokenTransactionsRequest);" - - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.tokenization().getTokenTransactions(id, startDate,\ - \ endDate, pageCursor, pageSize, sortBy, order);" - - lang: Python - source: "response = fireblocks.tokenization.get_token_transactions(id, start_date,\ - \ end_date, page_cursor, page_size, sort_by, order);" + - Payments - Flows + x-internal: true + x-rate-limit-category: write x-accepts: - application/json - /tokenization/tokens/{id}/rbac: get: - description: Returns a list of currently active roles for the token contract. - operationId: getTokenRbac + description: Retrieve a previously created workflow configuration using the + specified "configId". + operationId: getFlowConfiguration parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb - explode: false + - explode: false in: path - name: id + name: configId required: true schema: type: string @@ -17489,48 +16957,39 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ActiveRolesResponse" - description: Successfully retrieved the list of active roles + $ref: "#/components/schemas/WorkflowConfiguration" + description: Returns a workflow configuration + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. "404": content: application/json: schema: - $ref: "#/components/schemas/NotFoundException" - description: Token not found - default: - $ref: "#/components/responses/Error" - summary: Get active RBAC roles for a token + $ref: "#/components/schemas/ErrorResponse" + description: Not found + summary: Retrieve workflow configuration tags: - - Tokenization + - Payments - Flows + x-internal: true x-rate-limit-category: read - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenRbac(tokenizationApiGetTokenRbacRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response = fireblocks.tokenization().getTokenRbac(id); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.tokenization.get_token_rbac(id); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getTokenRbac(tokenizationApiGetTokenRbacRequest);" - - lang: Java - source: CompletableFuture> response = fireblocks.tokenization().getTokenRbac(id); - - lang: Python - source: response = fireblocks.tokenization.get_token_rbac(id); x-accepts: - application/json - /tokenization/multichain/deterministic_address: + /payments/workflow_execution: post: - description: Get a deterministic address for contract deployment. The address - is derived from the contract's bytecode and provided salt. This endpoint - is used to get the address of a contract that will be deployed in the future. - operationId: getDeployableAddress + description: "Validate the \"workflow-config\" previously created by utilizing\ + \ the unique \"configId\". This step requires the mandatory field amount,\ + \ and allows for modifications to other fields defined via the \"workflow-config\"\ + \ endpoint, including pre-screening preferences. A response containing the\ + \ \"workflowExecutionId\" and detailing the validation status will be provided.\ + \ Execution is ready when the \"workflow-execution\" status is READY_FOR_LAUNCH,\ + \ at which point it can be initiated with \"POST /workflow-execution/{workflowExecutionId}/actions/execute\"\ + ." + operationId: createFlowExecution 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\ @@ -17547,87 +17006,91 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GetDeployableAddressRequest" - required: true + $ref: "#/components/schemas/CreateWorkflowExecutionRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/DeployableAddressResponse" - description: Deterministic address for contract deployment - "400": + $ref: "#/components/schemas/WorkflowExecution" + description: Workflow execution entity has been created successfully. + "401": content: application/json: schema: - $ref: "#/components/schemas/InvalidParamaterValueError" - description: Invalid parameters or template has no bytecode - "409": + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + "404": content: application/json: schema: - $ref: "#/components/schemas/AddressNotAvailableError" - description: Address is already taken - default: - $ref: "#/components/responses/Error" - summary: Get deterministic address for contract deployment + $ref: "#/components/schemas/ErrorResponse" + description: Not found + summary: Create workflow execution tags: - - Tokenization - x-rate-limit-category: read - x-readme: - code-samples: - - language: javascript - code: |- - const payload = { - chainDescriptor: "ETH", - templateId: "b70701f4-d7b1-4795-a8ee-b09cdb5b850d", - initParams: [ - { name: "name", type: "string", value: "TokenName" }, - { name: "symbol", type: "string", value: "TokenSymbol" }, - { - name: "customConfigProps", - type: "tuple", - components: [ - { name: "_isMintable", type: "bool" } - ], - value: [{ _isMintable: false }] - } - ], - salt: "123456789" - }; const address = await fireblocks.getDeterministicAddress(payload); - name: Fireblocks SDK Javascript example - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getDeployableAddress(tokenizationApiGetDeployableAddressRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().getDeployableAddress(getDeployableAddressRequest,\ - \ idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.tokenization.get_deployable_address(get_deployable_address_request,\ - \ idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getDeployableAddress(tokenizationApiGetDeployableAddressRequest);" - - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().getDeployableAddress(getDeployableAddressRequest,\ - \ idempotencyKey);" - - lang: Python - source: "response = fireblocks.tokenization.get_deployable_address(get_deployable_address_request,\ - \ idempotency_key);" + - Payments - Flows + x-internal: true + x-rate-limit-category: write x-content-type: application/json x-accepts: - application/json - /tokenization/multichain/tokens: + /payments/workflow_execution/{workflowExecutionId}: + get: + description: Retrieve details of a previously initiated workflow execution by + specifying the "workflowExecutionId" + operationId: getFlowExecution + parameters: + - explode: false + in: path + name: workflowExecutionId + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/WorkflowExecution" + description: Returns workflow execution by id with preview info + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Not found + summary: Get workflow execution details + tags: + - Payments - Flows + x-internal: true + x-rate-limit-category: read + x-accepts: + - application/json + /payments/workflow_execution/{workflowExecutionId}/actions/execute: post: - description: Facilitates the creation of a new token on one or more blockchains. - operationId: issueTokenMultiChain + description: "Launch the execution of a pre-configured workflow, identified\ + \ by \"workflowExecutionId\", once it reaches the READY_FOR_LAUNCH state.\ + \ The workflow undergoes several phases during execution - EXECUTION_IN_PROGRESS\ + \ - Marks the start of the workflow execution. EXECUTION_COMPLETED or EXECUTION_FAILED\ + \ - Indicates the execution has reached a final state." + operationId: launchFlowExecution parameters: + - explode: false + in: path + name: workflowExecutionId + required: true + schema: + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -17639,91 +17102,64 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateMultichainTokenRequest" - required: true responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/IssueTokenMultichainResponse" - description: Tokens were created successfully - "400": + $ref: "#/components/schemas/WorkflowExecution" + description: Workflow execution has been executed + "401": content: application/json: schema: - $ref: "#/components/schemas/InvalidParamaterValueError" - description: Invalid input. - "409": + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + "404": content: application/json: schema: - $ref: "#/components/schemas/AddressNotAvailableError" - description: Address is already taken. - summary: Issue a token on one or more blockchains + $ref: "#/components/schemas/ErrorResponse" + description: Not found + summary: Execute the payments workflow tags: - - Tokenization + - Payments - Flows + x-internal: true x-rate-limit-category: write - x-readme: - code-samples: - - language: javascript - code: |- - const payload = { - vaultAccountId: "0", - createParams: { - contractId: "b70701f4-d7b1-4795-a8ee-b09cdb5b850d", - deployFunctionParams: [ - { name: "name", type: "string", value: "TokenName" }, - { name: "symbol", type: "string", value: "TokenSymbol" }, - { - name: "customConfigProps", - type: "tuple", - components: [ - { name: "_isMintable", type: "bool" } - ], - value: [{ _isMintable: false }] - }, - ], - }, - salt: "123456789", - chains: ["ETH", "POLYGON"] - }; const token = await fireblocks.issueTokenMultiChain(payload); - name: Fireblocks SDK Javascript example - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.issueTokenMultiChain(tokenizationApiIssueTokenMultiChainRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture>> response = fireblocks.tokenization().issueTokenMultiChain(createMultichainTokenRequest,\ - \ idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.tokenization.issue_token_multi_chain(create_multichain_token_request,\ - \ idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.issueTokenMultiChain(tokenizationApiIssueTokenMultiChainRequest);" - - lang: Java - source: "CompletableFuture>> response = fireblocks.tokenization().issueTokenMultiChain(createMultichainTokenRequest,\ - \ idempotencyKey);" - - lang: Python - source: "response = fireblocks.tokenization.issue_token_multi_chain(create_multichain_token_request,\ - \ idempotency_key);" - x-content-type: application/json x-accepts: - application/json - /tokenization/multichain/reissue/token/{tokenLinkId}: + /payments/payout: post: - description: Reissue a multichain token. This endpoint allows you to reissue - a token on one or more blockchains. The token must be initially issued using - the issueTokenMultiChain endpoint. - operationId: reIssueTokenMultiChain + description: | + **Note:** The reference content in this section documents the Payments + Engine endpoint. The Payments Engine endpoints include APIs available only + for customers with Payments Engine enabled on their accounts. + + These endpoints are currently in beta and might be subject to + changes. + + If you want to learn more about Fireblocks Payments Engine, please + contact your Fireblocks Customer Success Manager or email + CSM@fireblocks.com. + + **Create a payout instruction set.** + + A payout instruction set is a set of instructions for distributing payments + from a single payment account to a list of payee accounts. + + The instruction set defines: + + - the payment account and its account type (vault, exchange, or fiat). + - the account type (vault account, exchange account, whitelisted address, + network connection, fiat account, or merchant account), the amount, and the + asset of payment for each payee account. + + Learn more about Fireblocks Payments - Payouts in the following + [guide](https://developers.fireblocks.com/docs/create-payouts). + + Endpoint Permission: Admin, Non-Signing Admin. + operationId: createPayout 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\ @@ -17736,173 +17172,265 @@ paths: schema: type: string style: simple - - description: The ID of the token link - explode: false - in: path - name: tokenLinkId - required: true - schema: - type: string - style: simple requestBody: content: application/json: + example: + paymentAccount: + id: EX_SUB1 + type: EXCHANGE_ACCOUNT + instructionSet: + - payeeAccount: + id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3 + type: EXTERNAL_WALLET + amount: + amount: "43" + assetId: USDC + - payeeAccount: + id: 3adc1f92-e791-44a8-9aee-7f31c2108b78 + type: NETWORK_CONNECTION + amount: + amount: "4423" + assetId: USDC schema: - $ref: "#/components/schemas/ReissueMultichainTokenRequest" - required: true + $ref: "#/components/schemas/CreatePayoutRequest" responses: - "201": + "200": content: application/json: + example: + payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 + paymentAccount: + id: EX_SUB2 + type: EXCHANGE_ACCOUNT + createdAt: 1645365800 + state: REQUESTED + status: REGISTERED + initMethod: API + instructionSet: + - id: 6ea4a016-536b-49af-b1a0-40b343ccf879 + name: payee-wallet-name + payeeAccount: + id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3 + type: EXTERNAL_WALLET + amount: + amount: "43" + assetId: USDC + state: NOT_STARTED + transactions: [] + - id: e783a79b-6acc-4d18-885d-ed533cad8eeb + name: payee-by-network + payeeAccount: + id: 3adc1f92-e791-44a8-9aee-7f31c2108b78 + type: NETWORK_CONNECTION + amount: + amount: "4423.23" + assetId: USDC + state: NOT_STARTED + transactions: [] schema: - $ref: "#/components/schemas/IssueTokenMultichainResponse" - description: Successfully reissued multichain token + $ref: "#/components/schemas/PayoutResponse" + description: The payout instruction set creation succeeded and returns the + generated instruction set with a unique payout IDThe payout ID will be + used for executing the payout and checking the payout status. "400": content: application/json: schema: - $ref: "#/components/schemas/TokenLinkNotMultichainCompatibleHttpError" - description: Invalid input - "404": + $ref: "#/components/schemas/ErrorResponse" + description: Bad request + "401": content: application/json: schema: - $ref: "#/components/schemas/DeployedContractNotFoundError" - description: Deployed contract not found - "409": + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + "5XX": content: application/json: schema: - $ref: "#/components/schemas/AddressNotAvailableError" - description: Address is already taken - default: - $ref: "#/components/responses/Error" - summary: Reissue a multichain token + $ref: "#/components/schemas/ErrorResponse" + description: Internal error. + summary: Create a payout instruction set tags: - - Tokenization + - Payments - Payout x-rate-limit-category: write x-readme: code-samples: - - language: javascript - code: |- - const payload = { - vaultAccountId: "0", - chains: "ETH", - salt: "123456789", - chains: ["ETH", "POLYGON"] - }; const token = await fireblocks.reIssueTokenMultiChain(tokenLinkId, payload); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.reIssueTokenMultiChain(tokenizationApiReIssueTokenMultiChainRequest);" + code: "const response: Promise> = fireblocks.paymentsPayout.createPayout(paymentsPayoutApiCreatePayoutRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>> response = fireblocks.tokenization().reIssueTokenMultiChain(reissueMultichainTokenRequest,\ - \ tokenLinkId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.paymentsPayout().createPayout(createPayoutRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.re_issue_token_multi_chain(reissue_multichain_token_request,\ - \ token_link_id, idempotency_key);" + code: "response = fireblocks.payments_payout.create_payout(create_payout_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.reIssueTokenMultiChain(tokenizationApiReIssueTokenMultiChainRequest);" + source: "const response: Promise> = fireblocks.paymentsPayout.createPayout(paymentsPayoutApiCreatePayoutRequest);" - lang: Java - source: "CompletableFuture>> response = fireblocks.tokenization().reIssueTokenMultiChain(reissueMultichainTokenRequest,\ - \ tokenLinkId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.paymentsPayout().createPayout(createPayoutRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.tokenization.re_issue_token_multi_chain(reissue_multichain_token_request,\ - \ token_link_id, idempotency_key);" + source: "response = fireblocks.payments_payout.create_payout(create_payout_request,\ + \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /tokenization/multichain/bridge/layerzero: - delete: - description: Remove LayerZero adapters by deactivating and unlinking them. This - endpoint revokes roles and deactivates the specified adapter contracts. - operationId: deactivateAndUnlinkAdapters + /payments/payout/{payoutId}: + get: + description: "**Note:** The reference content in this section documents the\ + \ Payments Engine endpoint. The Payments Engine endpoints include APIs available\ + \ only for customers with Payments Engine enabled on their accounts. \nThese\ + \ endpoints are currently in beta and might be subject to changes.\nIf you\ + \ want to learn more about Fireblocks Payments Engine, please contact your\ + \ Fireblocks Customer Success Manager or email CSM@fireblocks.com. \nEndpoint\ + \ Permission: Admin, Non-Signing Admin.\n" + operationId: getPayout 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." + - description: the payout id received from the creation of the payout instruction + set + example: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: payoutId + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/RemoveLayerZeroAdaptersRequest" - required: true responses: "200": + content: + application/json: + example: + payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 + paymentAccount: + id: EX_SUB3 + type: EXCHANGE_ACCOUNT + createdAt: 1645365800 + state: FINALIZED + status: DONE + initMethod: API + instructionSet: + - id: 6ea4a016-536b-49af-b1a0-40b343ccf879 + name: payee-wallet-name + payeeAccount: + id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3 + type: EXTERNAL_WALLET + amount: + amount: "4312" + assetId: USDC + state: COMPLETED + transactions: + - id: 35a4b10c-1f83-4f0b-ba2a-da0e73be2d6e + state: COMPLETED + timestamp: 1645367429 + - id: e783a79b-6acc-4d18-885d-ed533cad8eeb + name: payee-by-network + payeeAccount: + id: 3adc1f92-e791-44a8-9aee-7f31c2108b78 + type: NETWORK_CONNECTION + amount: + amount: "4423.23" + assetId: USDC + state: COMPLETED + transactions: + - id: 4505e7d9-bfc7-41bc-9750-54311fcbbf26 + state: COMPLETED + timestamp: 1645367449 + reportUrl: https://some-url.com/reports/cc5777c1-75a9-4337-aebd-f1f5a40a9391 + schema: + $ref: "#/components/schemas/PayoutResponse" + description: "Returns the current status of the payout instruction set,\ + \ including the status of each payout instruction and the transactions\ + \ created in the process." + "401": content: application/json: schema: - $ref: "#/components/schemas/RemoveLayerZeroAdaptersResponse" - description: LayerZero adapters removal process completed - "400": - $ref: "#/components/responses/BadRequestError" + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. "404": - $ref: "#/components/responses/OriginalTokenLinkNotFoundError" - "409": - $ref: "#/components/responses/TokenLinkProcessingError" - "500": - $ref: "#/components/responses/InternalServerError" - summary: Remove LayerZero adapters + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: No payout with the given payout ID exists. + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Internal error. + summary: Get the status of a payout instruction set tags: - - Tokenization - x-rate-limit-category: write + - Payments - Payout + x-rate-limit-category: query x-readme: code-samples: - - language: javascript - code: |- - const payload = { - "vaultAccountId": "1", - "adapterTokenLinkIds": ["d290f1ee-6c54-4b01-90e6-d701748f0851", "e290f1ee-6c54-4b01-90e6-d701748f0852"] - } const removeResponse = await fireblocks.deactivateAndUnlinkAdapters(payload); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.deactivateAndUnlinkAdapters(tokenizationApiDeactivateAndUnlinkAdaptersRequest);" + code: "const response: Promise> = fireblocks.paymentsPayout.getPayout(paymentsPayoutApiGetPayoutRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().deactivateAndUnlinkAdapters(removeLayerZeroAdaptersRequest,\ - \ idempotencyKey);" + code: CompletableFuture> response = fireblocks.paymentsPayout().getPayout(payoutId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.deactivate_and_unlink_adapters(remove_layer_zero_adapters_request,\ - \ idempotency_key);" + code: response = fireblocks.payments_payout.get_payout(payout_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.deactivateAndUnlinkAdapters(tokenizationApiDeactivateAndUnlinkAdaptersRequest);" + source: "const response: Promise> = fireblocks.paymentsPayout.getPayout(paymentsPayoutApiGetPayoutRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().deactivateAndUnlinkAdapters(removeLayerZeroAdaptersRequest,\ - \ idempotencyKey);" + source: CompletableFuture> response = fireblocks.paymentsPayout().getPayout(payoutId); - lang: Python - source: "response = fireblocks.tokenization.deactivate_and_unlink_adapters(remove_layer_zero_adapters_request,\ - \ idempotency_key);" - x-content-type: application/json + source: response = fireblocks.payments_payout.get_payout(payout_id); x-accepts: - application/json + /payments/payout/{payoutId}/actions/execute: post: - description: Deploy LayerZero adapters for multichain token bridging functionality. - This endpoint creates adapter contracts that enable cross-chain token transfers. - operationId: deployAndLinkAdapters + description: | + **Note:** The reference content in this section documents the Payments + Engine endpoint. The Payments Engine endpoints include APIs available only + for customers with Payments Engine enabled on their accounts. + + These endpoints are currently in beta and might be subject to + changes. + + If you want to learn more about Fireblocks Payments Engine, please + contact your Fireblocks Customer Success Manager or email + CSM@fireblocks.com. + + **Execute a payout instruction set.** + + The instruction set will be verified and executed. + + **Source locking** + + If you are executing a payout instruction set from a payment account with an + already active payout the active payout will complete before the new payout + instruction set can be executed. + + You cannot execute the same payout instruction set more than once. + operationId: executePayoutAction 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\ + - description: the payout id received from the creation of the payout instruction + set + example: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 + explode: false + in: path + name: payoutId + required: true + schema: + 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\ + \ same response as the first request. The idempotency key is valid for 24\ \ hours." explode: false in: header @@ -17911,162 +17439,185 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/DeployLayerZeroAdaptersRequest" - required: true responses: "200": content: application/json: + example: + payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 schema: - $ref: "#/components/schemas/DeployLayerZeroAdaptersResponse" - description: LayerZero adapters deployed successfully + $ref: "#/components/schemas/DispatchPayoutResponse" + description: Executed the payout instruction set "400": - $ref: "#/components/responses/BadRequestError" - "404": - $ref: "#/components/responses/OriginalTokenLinkNotFoundError" - "409": - $ref: "#/components/responses/TokenLinkPreparationError" - "422": - $ref: "#/components/responses/OriginalTokenLinkNotFungibleError" - "500": - $ref: "#/components/responses/InternalServerError" - summary: Deploy LayerZero adapters + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Bad request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Internal error. + summary: Execute a payout instruction set tags: - - Tokenization + - Payments - Payout x-rate-limit-category: write x-readme: code-samples: - - language: javascript - code: |- - const payload = { - "vaultAccountId": "0", - "createParams": [{ - "tokenLinkId": "123-432-1234-1234-123456789012", - "delegateAddress": "0xABCDEF123456789abcdef1234567890abcdef12345678", - "defaultAdminAddress": "0xABC123456789abcdef1234567890abcdef12345678", - "pauserAddress": "0xDEFABC123456789abcdef1234567890abcdef12345678" - }], - "displayName": "LayerZero", - "useGasless": true - } const deployResponse = await fireblocks.deployAndLinkAdapters(payload); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.deployAndLinkAdapters(tokenizationApiDeployAndLinkAdaptersRequest);" + code: "const response: Promise>\ + \ = fireblocks.paymentsPayout.executePayoutAction(paymentsPayoutApiExecutePayoutActionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>> response\ - \ = fireblocks.tokenization().deployAndLinkAdapters(deployLayerZeroAdaptersRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response =\ + \ fireblocks.paymentsPayout().executePayoutAction(payoutId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.deploy_and_link_adapters(deploy_layer_zero_adapters_request,\ + code: "response = fireblocks.payments_payout.execute_payout_action(payout_id,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.deployAndLinkAdapters(tokenizationApiDeployAndLinkAdaptersRequest);" + source: "const response: Promise>\ + \ = fireblocks.paymentsPayout.executePayoutAction(paymentsPayoutApiExecutePayoutActionRequest);" - lang: Java - source: "CompletableFuture>> response\ - \ = fireblocks.tokenization().deployAndLinkAdapters(deployLayerZeroAdaptersRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response =\ + \ fireblocks.paymentsPayout().executePayoutAction(payoutId, idempotencyKey);" - lang: Python - source: "response = fireblocks.tokenization.deploy_and_link_adapters(deploy_layer_zero_adapters_request,\ + source: "response = fireblocks.payments_payout.execute_payout_action(payout_id,\ \ idempotency_key);" - x-content-type: application/json x-accepts: - application/json - /tokenization/multichain/bridge/layerzero/config/peers: - delete: - description: Remove LayerZero peers to disconnect adapter contracts. This endpoint - removes peer relationships between LayerZero adapters. - operationId: removeLayerZeroPeers - 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/RemoveLayerZeroPeersRequest" - required: true + /tap/active_policy: + get: + description: "Legacy Endpoint – Returns the active policy and its validation.\ + \ \n**Note:** \n- This endpoint will remain available for the foreseeable\ + \ future and is not deprecated. - The `getActivePolicy` endpoint under policy/paths\ + \ provides policy type-specific operations and improved functionality. - These\ + \ endpoints are currently in beta and might be subject to changes.\nIf you\ + \ want to participate and learn more about the Fireblocks TAP, please contact\ + \ your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.\n" + operationId: getActivePolicyLegacy responses: "200": content: application/json: schema: - $ref: "#/components/schemas/RemoveLayerZeroPeersResponse" - description: LayerZero peers removal process completed - "400": - $ref: "#/components/responses/BadRequestError" - "404": - $ref: "#/components/responses/OriginalTokenLinkNotFoundError" - "409": - $ref: "#/components/responses/TokenLinkProcessingError" - "500": - $ref: "#/components/responses/InternalServerError" - summary: Remove LayerZero peers + $ref: "#/components/schemas/LegacyPolicyAndValidationResponse" + description: A policy object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get the active policy and its validation tags: - - Tokenization - x-rate-limit-category: write + - Policy Editor (Beta) + x-rate-limit-category: query x-readme: code-samples: + - language: python + code: policy = fireblocks.get_active_policy() + name: Fireblocks SDK Python example (Legacy) - language: javascript - code: |- - const payload = { - "vaultAccountId": "0", - "sourceAdapterTokenLinkId": "123-432-1234-1234-123456789012", - "destinationAdapterTokenLinkIds": ["123-432-1234-1234-123456789012", "123-432-1234-1234-123456789012"], - "bidirectional": true - } const removePeersResponse = await fireblocks.removeLayerZeroPeers(payload); + code: const policy = await fireblocks.getActivePolicy(); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.removeLayerZeroPeers(tokenizationApiRemoveLayerZeroPeersRequest);" + code: "const response: Promise>\ + \ = fireblocks.policyEditorBeta.getActivePolicyLegacy();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().removeLayerZeroPeers(removeLayerZeroPeersRequest,\ - \ idempotencyKey);" + code: CompletableFuture> + response = fireblocks.policyEditorBeta().getActivePolicyLegacy(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.remove_layer_zero_peers(remove_layer_zero_peers_request,\ - \ idempotency_key);" + code: response = fireblocks.policy_editor_beta.get_active_policy_legacy(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.removeLayerZeroPeers(tokenizationApiRemoveLayerZeroPeersRequest);" + source: "const response: Promise>\ + \ = fireblocks.policyEditorBeta.getActivePolicyLegacy();" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().removeLayerZeroPeers(removeLayerZeroPeersRequest,\ - \ idempotencyKey);" + source: CompletableFuture> + response = fireblocks.policyEditorBeta().getActivePolicyLegacy(); - lang: Python - source: "response = fireblocks.tokenization.remove_layer_zero_peers(remove_layer_zero_peers_request,\ - \ idempotency_key);" - x-content-type: application/json + source: response = fireblocks.policy_editor_beta.get_active_policy_legacy(); + x-accepts: + - application/json + /tap/draft: + get: + description: "Legacy Endpoint – Returns the active draft and its validation.\ + \ \n**Note:** \n- This endpoint will remain available for the foreseeable\ + \ future and is not deprecated. - The `getDraft` endpoint under policy/paths\ + \ provides policy type-specific operations and improved functionality. - These\ + \ endpoints are currently in beta and might be subject to changes.\nIf you\ + \ want to participate and learn more about the Fireblocks TAP, please contact\ + \ your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.\n" + operationId: getDraftLegacy + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/LegacyDraftReviewAndValidationResponse" + description: A draft validation response object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get the active draft + tags: + - Policy Editor (Beta) + x-rate-limit-category: read + x-readme: + code-samples: + - language: python + code: policy = fireblocks.get_draft() + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const policy = await fireblocks.getDraft(); + name: Fireblocks SDK Javascript example + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.policyEditorBeta.getDraftLegacy();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> + response = fireblocks.policyEditorBeta().getDraftLegacy(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.policy_editor_beta.get_draft_legacy(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.policyEditorBeta.getDraftLegacy();" + - lang: Java + source: CompletableFuture> + response = fireblocks.policyEditorBeta().getDraftLegacy(); + - lang: Python + source: response = fireblocks.policy_editor_beta.get_draft_legacy(); x-accepts: - application/json post: - description: "Set LayerZero peers to establish connections between adapter contracts.\ - \ This endpoint creates peer relationships that enable cross-chain communication.\ - \ It sets the destination adapter as a peer of the source adapter. If `bidirectional`\ - \ is true, it also sets the source adapter as a peer of the destination adapter(s)." - operationId: setLayerZeroPeers + description: "Legacy Endpoint – Send publish request of certain draft id and\ + \ returns the response. \n**Note:** \n- This endpoint will remain available\ + \ for the foreseeable future and is not deprecated. - The `publishDraft` endpoint\ + \ under policy/paths provides improved functionality and better performance.\ + \ - These endpoints are currently in beta and might be subject to changes.\n\ + If you want to participate and learn more about the Fireblocks TAP, please\ + \ contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.\n" + operationId: publishDraftLegacy 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\ @@ -18083,134 +17634,143 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SetLayerZeroPeersRequest" + $ref: "#/components/schemas/LegacyPublishDraftRequest" required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/SetLayerZeroPeersResponse" - description: LayerZero peers set successfully - "400": - $ref: "#/components/responses/BadRequestError" - "404": - $ref: "#/components/responses/OriginalTokenLinkNotFoundError" - "409": - $ref: "#/components/responses/TokenLinkPreparationError" - "422": - $ref: "#/components/responses/OriginalTokenLinkNotFungibleError" - "500": - $ref: "#/components/responses/InternalServerError" - summary: Set LayerZero peers + $ref: "#/components/schemas/LegacyPublishResult" + description: A policy publish result object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Send publish request for a certain draft id tags: - - Tokenization + - Policy Editor (Beta) x-rate-limit-category: write x-readme: code-samples: + - language: python + code: policy = fireblocks.publish_draft() + name: Fireblocks SDK Python example (Legacy) - language: javascript - code: |- - const payload = { - "vaultAccountId": "0", - "sourceAdapterTokenLinkId": "123-432-1234-1234-123456789012", - "destinationAdapterTokenLinkIds": ["123-432-1234-1234-123456789012", "123-432-1234-1234-123456789012"], - "bidirectional": true - } const setPeersResponse = await fireblocks.setLayerZeroPeers(payload); + code: const policy = await fireblocks.publishDraft(); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.setLayerZeroPeers(tokenizationApiSetLayerZeroPeersRequest);" + code: "const response: Promise>\ + \ = fireblocks.policyEditorBeta.publishDraftLegacy(policyEditorBetaApiPublishDraftLegacyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().setLayerZeroPeers(setLayerZeroPeersRequest,\ + code: "CompletableFuture> response = fireblocks.policyEditorBeta().publishDraftLegacy(legacyPublishDraftRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.set_layer_zero_peers(set_layer_zero_peers_request,\ + code: "response = fireblocks.policy_editor_beta.publish_draft_legacy(legacy_publish_draft_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.setLayerZeroPeers(tokenizationApiSetLayerZeroPeersRequest);" + source: "const response: Promise>\ + \ = fireblocks.policyEditorBeta.publishDraftLegacy(policyEditorBetaApiPublishDraftLegacyRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().setLayerZeroPeers(setLayerZeroPeersRequest,\ + source: "CompletableFuture> response = fireblocks.policyEditorBeta().publishDraftLegacy(legacyPublishDraftRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.tokenization.set_layer_zero_peers(set_layer_zero_peers_request,\ + source: "response = fireblocks.policy_editor_beta.publish_draft_legacy(legacy_publish_draft_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /tokenization/multichain/bridge/layerzero/config/{adapterTokenLinkId}/peers: - get: - description: Retrieve the LayerZero peers configured for a specific adapter. - Returns information about peer relationships for cross-chain communication. - operationId: getLayerZeroPeers + put: + description: "Legacy Endpoint – Update the draft and return its validation.\ + \ \n**Note:** \n- This endpoint will remain available for the foreseeable\ + \ future and is not deprecated. - The `updateDraft` endpoint under policy/paths\ + \ provides policy type-specific operations and improved functionality. - These\ + \ endpoints are currently in beta and might be subject to changes.\nIf you\ + \ want to participate and learn more about the Fireblocks TAP, please contact\ + \ your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.\n" + operationId: updateDraftLegacy parameters: - - description: The token link id of the adapter token link - example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d + - 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: path - name: adapterTokenLinkId - required: true + in: header + name: Idempotency-Key + required: false schema: - format: uuid type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/LegacyPolicyRules" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetLayerZeroPeersResponse" - description: LayerZero peers retrieved successfully - "400": - $ref: "#/components/responses/BadRequestError" - "404": - $ref: "#/components/responses/OriginalTokenLinkNotFoundError" - "500": - $ref: "#/components/responses/InternalServerError" - summary: Get LayerZero peers + $ref: "#/components/schemas/LegacyDraftReviewAndValidationResponse" + description: A draft validation response object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Update the draft with a new set of rules tags: - - Tokenization - x-rate-limit-category: read + - Policy Editor (Beta) + x-rate-limit-category: write x-readme: code-samples: + - language: python + code: policy = fireblocks.update_draft() + name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const adapterTokenLinkId = "b70701f4-d7b1-4795-a8ee-b09cdb5b850d"; - const peersResponse = await fireblocks.getLayerZeroPeers(adapterTokenLinkId); + code: const policy = await fireblocks.updateDraft(); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getLayerZeroPeers(tokenizationApiGetLayerZeroPeersRequest);" + code: "const response: Promise>\ + \ = fireblocks.policyEditorBeta.updateDraftLegacy(policyEditorBetaApiUpdateDraftLegacyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.tokenization().getLayerZeroPeers(adapterTokenLinkId); + code: "CompletableFuture>\ + \ response = fireblocks.policyEditorBeta().updateDraftLegacy(legacyPolicyRules,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.tokenization.get_layer_zero_peers(adapter_token_link_id); + code: "response = fireblocks.policy_editor_beta.update_draft_legacy(legacy_policy_rules,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getLayerZeroPeers(tokenizationApiGetLayerZeroPeersRequest);" + source: "const response: Promise>\ + \ = fireblocks.policyEditorBeta.updateDraftLegacy(policyEditorBetaApiUpdateDraftLegacyRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.tokenization().getLayerZeroPeers(adapterTokenLinkId); + source: "CompletableFuture>\ + \ response = fireblocks.policyEditorBeta().updateDraftLegacy(legacyPolicyRules,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.tokenization.get_layer_zero_peers(adapter_token_link_id); + source: "response = fireblocks.policy_editor_beta.update_draft_legacy(legacy_policy_rules,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /tokenization/multichain/bridge/layerzero/config/dvns: + /tap/publish: post: - description: Configure DVN settings for LayerZero adapters. This endpoint sets - up the DVN configuration for message verification between source and destination - adapters. - operationId: setLayerZeroDvnConfig + description: "Send publish request of set of policy rules and returns the response.\ + \ \n**Note:** These endpoints are currently in beta and might be subject to\ + \ changes.\nIf you want to participate and learn more about the Fireblocks\ + \ TAP, please contact your Fireblocks Customer Success Manager or send an\ + \ email to CSM@fireblocks.com.\n" + operationId: publishPolicyRules 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\ @@ -18227,315 +17787,264 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SetLayerZeroDvnConfigRequest" + $ref: "#/components/schemas/LegacyPolicyRules" required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/SetLayerZeroDvnConfigResponse" - description: LayerZero DVN configuration set successfully - "400": - $ref: "#/components/responses/BadRequestError" - "404": - $ref: "#/components/responses/OriginalTokenLinkNotFoundError" - "409": - $ref: "#/components/responses/TokenLinkPreparationError" - "422": - $ref: "#/components/responses/BridgingProtocolBlockchainMetadataNotFoundError" - "500": - $ref: "#/components/responses/InternalServerError" - summary: Set LayerZero DVN configuration + $ref: "#/components/schemas/LegacyPublishResult" + description: A policy publish result object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Send publish request for a set of policy rules tags: - - Tokenization + - Policy Editor (Beta) x-rate-limit-category: write x-readme: code-samples: + - language: python + code: policy = fireblocks.publish_rules() + name: Fireblocks SDK Python example (Legacy) - language: javascript - code: |- - const payload = { - "vaultAccountId": "0", - "sourceAdapterTokenLinkId": "b70701f4-d7b1-4795-a8ee-b09cdb5b850d", - "destinationAdapterTokenLinkId": "6add4f2a-b206-4114-8f94-2882618ffbb4", - "sendConfig": { - "dvnAddresses": ["0xABCDEF123456789abcdef1234567890abcdef12345678", "0xABC123456789abcdef1234567890abcdef12345678"], - "optionalDVNAddresses": ["0xDEFABC123456789abcdef1234567890abcdef12345678"], - "optionalThreshold": 2 - }, - "receiveConfig": { - "dvnAddresses": ["0xABCDEF123456789abcdef1234567890abcdef12345678", "0xABC123456789abcdef1234567890abcdef12345678"], - "optionalThreshold": 1 - } - } const dvnConfigResponse = await fireblocks.setLayerZeroDvnConfig(payload); + code: const policy = await fireblocks.publishRules(); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.setLayerZeroDvnConfig(tokenizationApiSetLayerZeroDvnConfigRequest);" + code: "const response: Promise>\ + \ = fireblocks.policyEditorBeta.publishPolicyRules(policyEditorBetaApiPublishPolicyRulesRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().setLayerZeroDvnConfig(setLayerZeroDvnConfigRequest,\ + code: "CompletableFuture> response = fireblocks.policyEditorBeta().publishPolicyRules(legacyPolicyRules,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.set_layer_zero_dvn_config(set_layer_zero_dvn_config_request,\ + code: "response = fireblocks.policy_editor_beta.publish_policy_rules(legacy_policy_rules,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.setLayerZeroDvnConfig(tokenizationApiSetLayerZeroDvnConfigRequest);" + source: "const response: Promise>\ + \ = fireblocks.policyEditorBeta.publishPolicyRules(policyEditorBetaApiPublishPolicyRulesRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().setLayerZeroDvnConfig(setLayerZeroDvnConfigRequest,\ + source: "CompletableFuture> response = fireblocks.policyEditorBeta().publishPolicyRules(legacyPolicyRules,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.tokenization.set_layer_zero_dvn_config(set_layer_zero_dvn_config_request,\ + source: "response = fireblocks.policy_editor_beta.publish_policy_rules(legacy_policy_rules,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /tokenization/multichain/bridge/layerzero/config/{adapterTokenLinkId}/dvns: + /policy/active_policy: get: - description: Retrieve the DVN (Data Verification Network) configuration for - a specific adapter. Returns DVN configurations for channels between the source - adapter and its peers. - operationId: getLayerZeroDvnConfig + description: | + Returns the active policy and its validation for a specific policy type. + + Endpoint Permissions: Owner, Admin, Non-Signing Admin. + operationId: getActivePolicy parameters: - - description: The token link id of the adapter token link - example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d - explode: false - in: path - name: adapterTokenLinkId - required: true - schema: - format: uuid - type: string - style: simple - - description: Optional peer adapter token link ID to filter results - example: 6add4f2a-b206-4114-8f94-2882618ffbb4 + - description: "The policy type(s) to retrieve. Can be a single type or multiple\ + \ types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT)." explode: true in: query - name: peerAdapterTokenLinkId - required: false + name: policyType + required: true schema: - format: uuid - type: string + $ref: "#/components/schemas/PolicyType" style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetLayerZeroDvnConfigResponse" - description: LayerZero DVN configuration retrieved successfully - "400": - $ref: "#/components/responses/BadRequestError" - "404": - $ref: "#/components/responses/OriginalTokenLinkNotFoundError" - "500": - $ref: "#/components/responses/InternalServerError" - summary: Get LayerZero DVN configuration + $ref: "#/components/schemas/PolicyAndValidationResponse" + description: A policy object with validation + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get the active policy and its validation by policy type tags: - - Tokenization - x-rate-limit-category: read + - Policy Editor V2 + x-rate-limit-category: query x-readme: code-samples: - language: javascript - code: "const adapterTokenLinkId = \"b70701f4-d7b1-4795-a8ee-b09cdb5b850d\"\ - ; const peerAdapterTokenLinkId = \"6add4f2a-b206-4114-8f94-2882618ffbb4\"\ - ; // optional const dvnConfigResponse = await fireblocks.getLayerZeroDvnConfig(adapterTokenLinkId,\ - \ { peerAdapterTokenLinkId });" + code: | + // Single policy type + const policy = await fireblocks.getActivePolicy({policyType: "TRANSFER"}); + // Multiple policy types + const policy = await fireblocks.getActivePolicy({policyType: ["TRANSFER", "MINT"]}); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getLayerZeroDvnConfig(tokenizationApiGetLayerZeroDvnConfigRequest);" + code: "const response: Promise>\ + \ = fireblocks.policyEditorV2.getActivePolicy(policyEditorV2ApiGetActivePolicyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().getLayerZeroDvnConfig(adapterTokenLinkId,\ - \ peerAdapterTokenLinkId);" + code: CompletableFuture> response + = fireblocks.policyEditorV2().getActivePolicy(policyType); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.get_layer_zero_dvn_config(adapter_token_link_id,\ - \ peer_adapter_token_link_id);" + code: response = fireblocks.policy_editor_v2.get_active_policy(policy_type); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getLayerZeroDvnConfig(tokenizationApiGetLayerZeroDvnConfigRequest);" + source: "const response: Promise>\ + \ = fireblocks.policyEditorV2.getActivePolicy(policyEditorV2ApiGetActivePolicyRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().getLayerZeroDvnConfig(adapterTokenLinkId,\ - \ peerAdapterTokenLinkId);" + source: CompletableFuture> response + = fireblocks.policyEditorV2().getActivePolicy(policyType); - lang: Python - source: "response = fireblocks.tokenization.get_layer_zero_dvn_config(adapter_token_link_id,\ - \ peer_adapter_token_link_id);" + source: response = fireblocks.policy_editor_v2.get_active_policy(policy_type); x-accepts: - application/json - /tokenization/multichain/bridge/layerzero/validate: + /policy/draft: get: - description: Validate the LayerZero channel configuration between adapters. - This endpoint checks if the channel configuration is correct and returns any - validation errors. - operationId: validateLayerZeroChannelConfig + description: Returns the active draft and its validation for a specific policy + type. + operationId: getDraft parameters: - - description: The token link ID of the adapter - example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d - explode: true - in: query - name: adapterTokenLinkId - required: true - schema: - format: uuid - type: string - style: form - - description: Peer adapter token link ID to validate against - example: 6add4f2a-b206-4114-8f94-2882618ffbb4 + - description: "The policy type(s) to retrieve. Can be a single type or multiple\ + \ types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT)." explode: true in: query - name: peerAdapterTokenLinkId + name: policyType required: true schema: - format: uuid - type: string + $ref: "#/components/schemas/PolicyType" style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ValidateLayerZeroChannelResponse" - description: LayerZero channel configuration validation completed - "400": - $ref: "#/components/responses/BadRequestError" - "404": - $ref: "#/components/responses/OriginalTokenLinkNotFoundError" - "422": - $ref: "#/components/responses/BridgingProtocolBlockchainMetadataNotFoundError" - "500": - $ref: "#/components/responses/InternalServerError" - summary: Validate LayerZero channel configuration + $ref: "#/components/schemas/DraftReviewAndValidationResponse" + description: A draft validation response object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get the active draft by policy type tags: - - Tokenization + - Policy Editor V2 x-rate-limit-category: read x-readme: code-samples: - language: javascript - code: "const adapterTokenLinkId = \"b70701f4-d7b1-4795-a8ee-b09cdb5b850d\"\ - ; const peerAdapterTokenLinkId = \"6add4f2a-b206-4114-8f94-2882618ffbb4\"\ - ; const validationResponse = await fireblocks.validateLayerZeroChannelConfig({\ - \ \n adapterTokenLinkId,\n peerAdapterTokenLinkId \n});" + code: | + // Single policy type + const draft = await fireblocks.getDraft({policyType: "TRANSFER"}); + // Multiple policy types + const draft = await fireblocks.getDraft({policyType: ["TRANSFER", "MINT"]}); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.validateLayerZeroChannelConfig(tokenizationApiValidateLayerZeroChannelConfigRequest);" + code: "const response: Promise>\ + \ = fireblocks.policyEditorV2.getDraft(policyEditorV2ApiGetDraftRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.tokenization().validateLayerZeroChannelConfig(adapterTokenLinkId,\ - \ peerAdapterTokenLinkId);" + code: CompletableFuture> response + = fireblocks.policyEditorV2().getDraft(policyType); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.validate_layer_zero_channel_config(adapter_token_link_id,\ - \ peer_adapter_token_link_id);" + code: response = fireblocks.policy_editor_v2.get_draft(policy_type); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.validateLayerZeroChannelConfig(tokenizationApiValidateLayerZeroChannelConfigRequest);" + source: "const response: Promise>\ + \ = fireblocks.policyEditorV2.getDraft(policyEditorV2ApiGetDraftRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.tokenization().validateLayerZeroChannelConfig(adapterTokenLinkId,\ - \ peerAdapterTokenLinkId);" + source: CompletableFuture> response + = fireblocks.policyEditorV2().getDraft(policyType); - lang: Python - source: "response = fireblocks.tokenization.validate_layer_zero_channel_config(adapter_token_link_id,\ - \ peer_adapter_token_link_id);" + source: response = fireblocks.policy_editor_v2.get_draft(policy_type); x-accepts: - application/json - /tokenization/collections: - get: - description: |- - Get collections (paginated). - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getLinkedCollections + post: + description: | + Send publish request of certain draft id and returns the response. + + **⚠️ IMPORTANT SECURITY NOTICE:** + + The Fireblocks Policy is a critical security guardrail. Programmatically modifying your policy via the API introduces significant security risks. As an industry best practice, Fireblocks strongly recommends manual editing accompanied by strict human oversight and approval workflows for all policy changes. Programmatic updates should only be implemented by advanced users with comprehensive, multi-layer security controls in place. + + If you want to learn more about the Fireblocks Policy Editor, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. + operationId: publishDraft parameters: - - description: "Page cursor to get the next page, for example - \"MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==\"" - explode: true - in: query - name: pageCursor + - 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: form - - description: "Number of items per page (max 100), requesting more then 100\ - \ will return 100 items" - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - default: 100 - maximum: 100 - minimum: 1 - type: number - style: form - - description: A comma separated list of statuses to filter. Default is "COMPLETED" - example: COMPLETED - explode: true - in: query - name: status - required: false - schema: {} - style: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/PublishDraftRequest" + required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/GetLinkedCollectionsPaginatedResponse" - description: Collection fetched successfully + $ref: "#/components/schemas/PublishResult" + description: A policy publish result object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get collections + summary: Send publish request for a certain draft id tags: - - Tokenization - x-rate-limit-category: query + - Policy Editor V2 + x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: | + const policy = await fireblocks.publishDraft({policyTypes: ["TRANSFER"], draftId: "draft-123"}); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.getLinkedCollections(tokenizationApiGetLinkedCollectionsRequest);" + code: "const response: Promise> = fireblocks.policyEditorV2.publishDraft(policyEditorV2ApiPublishDraftRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.tokenization().getLinkedCollections(pageCursor,\ - \ pageSize, status);" + code: "CompletableFuture> response = fireblocks.policyEditorV2().publishDraft(publishDraftRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.get_linked_collections(page_cursor,\ - \ page_size, status);" + code: "response = fireblocks.policy_editor_v2.publish_draft(publish_draft_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.getLinkedCollections(tokenizationApiGetLinkedCollectionsRequest);" + source: "const response: Promise> = fireblocks.policyEditorV2.publishDraft(policyEditorV2ApiPublishDraftRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.tokenization().getLinkedCollections(pageCursor,\ - \ pageSize, status);" + source: "CompletableFuture> response = fireblocks.policyEditorV2().publishDraft(publishDraftRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.tokenization.get_linked_collections(page_cursor,\ - \ page_size, status);" + source: "response = fireblocks.policy_editor_v2.publish_draft(publish_draft_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - post: - description: |- - Create a new collection and link it as a token. - Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor. - operationId: createNewCollection + put: + description: | + Update the draft and return its validation for specific policy types. + + **⚠️ IMPORTANT SECURITY NOTICE:** + + The Fireblocks Policy is a critical security guardrail. Programmatically modifying your policy via the API introduces significant security risks. As an industry best practice, Fireblocks strongly recommends manual editing accompanied by strict human oversight and approval workflows for all policy changes. Programmatic updates should only be implemented by advanced users with comprehensive, multi-layer security controls in place. + operationId: updateDraft 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\ @@ -18552,160 +18061,277 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CollectionDeployRequestDto" + $ref: "#/components/schemas/UpdateDraftRequest" required: true responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/CollectionLinkDto" - description: Collection was created successfully + $ref: "#/components/schemas/DraftReviewAndValidationResponse" + description: A draft validation response object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create a new collection + summary: Update the draft with a new set of rules by policy types tags: - - Tokenization + - Policy Editor V2 x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: | + const draft = await fireblocks.updateDraft({policyTypes: ["TRANSFER"], rules: rules}); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.tokenization.createNewCollection(tokenizationApiCreateNewCollectionRequest);" + code: "const response: Promise>\ + \ = fireblocks.policyEditorV2.updateDraft(policyEditorV2ApiUpdateDraftRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tokenization().createNewCollection(collectionDeployRequestDto,\ + code: "CompletableFuture>\ + \ response = fireblocks.policyEditorV2().updateDraft(updateDraftRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.create_new_collection(collection_deploy_request_dto,\ + code: "response = fireblocks.policy_editor_v2.update_draft(update_draft_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.tokenization.createNewCollection(tokenizationApiCreateNewCollectionRequest);" + source: "const response: Promise>\ + \ = fireblocks.policyEditorV2.updateDraft(policyEditorV2ApiUpdateDraftRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tokenization().createNewCollection(collectionDeployRequestDto,\ + source: "CompletableFuture>\ + \ response = fireblocks.policyEditorV2().updateDraft(updateDraftRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.tokenization.create_new_collection(collection_deploy_request_dto,\ + source: "response = fireblocks.policy_editor_v2.update_draft(update_draft_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /tokenization/collections/{id}: - delete: - description: Delete a collection link - operationId: unlinkCollection + /reports: + get: + description: | + Returns a paginated list of report jobs scoped to the calling tenant. + + **Note:** Download URLs are not included in list responses. Call `GET /v1/reports/{reportId}` to + obtain a fresh signed download URL for a specific completed report. + + **Note:** These endpoints are currently in beta and might be subject to changes. + + Endpoint Permission: Viewer and above. + operationId: listReports parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb - explode: false - in: path - name: id - required: true + - description: Opaque cursor returned from a previous list call + explode: true + in: query + name: pageCursor + required: false schema: type: string - style: simple + style: form + - description: Maximum number of items per page + explode: true + in: query + name: pageSize + required: false + schema: + default: 20 + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Field to sort by + explode: true + in: query + name: sortBy + required: false + schema: + default: createdAt + enum: + - createdAt + - completedAt + type: string + style: form + - description: Sort direction + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + type: string + style: form + - description: "Filter by lifecycle status. Repeat the parameter to filter on\ + \ multiple statuses (e.g., ?status=QUEUED&status=PROCESSING)." + explode: true + in: query + name: status + required: false + schema: + items: + $ref: "#/components/schemas/ReportStatus" + type: array + style: form + - description: Filter by report type. Repeat the parameter to filter on multiple + types. + explode: true + in: query + name: reportType + required: false + schema: + items: + $ref: "#/components/schemas/ReportType" + type: array + style: form responses: - "204": - description: Collection unlinked successfully - "404": - description: Link for collection does not exist + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ReportListResponse" + description: Paginated list of report jobs + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Delete a collection link + summary: List reports tags: - - Tokenization - x-rate-limit-category: write + - Reports (Beta) + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.tokenization.unlinkCollection(tokenizationApiUnlinkCollectionRequest);" + code: "const response: Promise> =\ + \ fireblocks.reportsBeta.listReports(reportsBetaApiListReportsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.tokenization().unlinkCollection(id); + code: "CompletableFuture> response = fireblocks.reportsBeta().listReports(pageCursor,\ + \ pageSize, sortBy, order, status, reportType);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.tokenization.unlink_collection(id); + code: "response = fireblocks.reports_beta.list_reports(page_cursor, page_size,\ + \ sort_by, order, status, report_type);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tokenization.unlinkCollection(tokenizationApiUnlinkCollectionRequest);" + source: "const response: Promise> =\ + \ fireblocks.reportsBeta.listReports(reportsBetaApiListReportsRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.tokenization().unlinkCollection(id); + source: "CompletableFuture> response = fireblocks.reportsBeta().listReports(pageCursor,\ + \ pageSize, sortBy, order, status, reportType);" - lang: Python - source: response = fireblocks.tokenization.unlink_collection(id); + source: "response = fireblocks.reports_beta.list_reports(page_cursor, page_size,\ + \ sort_by, order, status, report_type);" x-accepts: - application/json - get: - description: Get a collection by id - operationId: getCollectionById + post: + description: | + Creates a new asynchronous report job and returns a receipt containing the report ID. + Poll `GET /v1/reports/{reportId}` to check status. When `status` is `COMPLETED`, the poll + response includes a fresh pre-signed download URL in `links.downloadUrl`. + + **Note:** These endpoints are currently in beta and might be subject to changes. + + Endpoint Permission: Viewer and above. + operationId: createReport parameters: - - description: The token link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + - 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: path - name: id - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateReportRequest" + required: true responses: - "200": + "202": content: application/json: schema: - $ref: "#/components/schemas/CollectionLinkDto" - description: Collection fetched successfully + $ref: "#/components/schemas/CreateReportResponse" + description: Report job accepted and queued for processing + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/ReportConflictResponse" + description: A report with the same type and filters is already being processed + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get a collection by id + summary: Create a report tags: - - Tokenization - x-rate-limit-category: read + - Reports (Beta) + x-rate-limit-category: report x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.tokenization.getCollectionById(tokenizationApiGetCollectionByIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.reportsBeta.createReport(reportsBetaApiCreateReportRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.tokenization().getCollectionById(id); + code: "CompletableFuture> response = fireblocks.reportsBeta().createReport(createReportRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.tokenization.get_collection_by_id(id); + code: "response = fireblocks.reports_beta.create_report(create_report_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.tokenization.getCollectionById(tokenizationApiGetCollectionByIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.reportsBeta.createReport(reportsBetaApiCreateReportRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.tokenization().getCollectionById(id); + source: "CompletableFuture> response = fireblocks.reportsBeta().createReport(createReportRequest,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.tokenization.get_collection_by_id(id); + source: "response = fireblocks.reports_beta.create_report(create_report_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /tokenization/collections/{id}/tokens/{tokenId}: + /reports/{reportId}: get: - description: Get collection token details by id - operationId: fetchCollectionTokenDetails + description: | + Returns the current status of a report job. Check the `status` field to determine the outcome. + + When `status` is `COMPLETED`, the response includes a fresh pre-signed download URL in + `links.downloadUrl` (TTL ~1 hour). Re-poll this endpoint to obtain a new URL after expiry. + + When `status` is `FAILED`, the `failedAt` timestamp indicates when the failure occurred. + + **Note:** These endpoints are currently in beta and might be subject to changes. + + Endpoint Permission: Viewer and above. + operationId: getReport parameters: - - description: The collection link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - - description: The tokenId as it appears on the blockchain - example: "1" + - description: The unique identifier of the report job + example: 0190b3c2-7e4a-7c31-9f2a-1b6d8e5a0c11 explode: false in: path - name: tokenId + name: reportId required: true schema: type: string @@ -18715,47 +18341,48 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CollectionLinkDto" - description: Collection token details were fetched successfully + $ref: "#/components/schemas/ReportJobResponse" + description: Report job details + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get collection token details + summary: Get report status tags: - - Tokenization + - Reports (Beta) x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.tokenization.fetchCollectionTokenDetails(tokenizationApiFetchCollectionTokenDetailsRequest);" + code: "const response: Promise> =\ + \ fireblocks.reportsBeta.getReport(reportsBetaApiGetReportRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tokenization().fetchCollectionTokenDetails(id,\ - \ tokenId);" + code: CompletableFuture> response = fireblocks.reportsBeta().getReport(reportId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.fetch_collection_token_details(id,\ - \ token_id);" + code: response = fireblocks.reports_beta.get_report(report_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.tokenization.fetchCollectionTokenDetails(tokenizationApiFetchCollectionTokenDetailsRequest);" + source: "const response: Promise> =\ + \ fireblocks.reportsBeta.getReport(reportsBetaApiGetReportRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tokenization().fetchCollectionTokenDetails(id,\ - \ tokenId);" + source: CompletableFuture> response = fireblocks.reportsBeta().getReport(reportId); - lang: Python - source: "response = fireblocks.tokenization.fetch_collection_token_details(id,\ - \ token_id);" + source: response = fireblocks.reports_beta.get_report(report_id); x-accepts: - application/json - /tokenization/collections/{id}/tokens/mint: + /management/users/{id}/reset_device: post: - description: Mint tokens and upload metadata - operationId: mintCollectionToken + description: |- + Resets mobile device for given console user, that user will need to do mobile onboarding again. + - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: resetDevice parameters: - - description: The collection link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + - description: The ID of the console user explode: false in: path name: id @@ -18774,64 +18401,82 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CollectionMintRequestDto" - required: true responses: - "202": + "200": + description: Reset device approval request has been sent + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "401": content: application/json: schema: - $ref: "#/components/schemas/CollectionMintResponseDto" - description: Tokens minted successfully + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Lacking permissions. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Internal error. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Mint tokens + summary: Resets device tags: - - Tokenization - x-rate-limit-category: async + - Reset device + x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: const res = await fireblocks.resetDeviceRequest(consoleUserId); + name: Fireblocks SDK Javascript example + - language: python + code: res = fireblocks.reset_device_request(console_user_id) + name: Fireblocks SDK Python example (Legacy) - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.mintCollectionToken(tokenizationApiMintCollectionTokenRequest);" + code: "const response: Promise> = fireblocks.resetDevice.resetDevice(resetDeviceApiResetDeviceRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().mintCollectionToken(collectionMintRequestDto,\ - \ id, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.resetDevice().resetDevice(id,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.mint_collection_token(collection_mint_request_dto,\ - \ id, idempotency_key);" + code: "response = fireblocks.reset_device.reset_device(id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.mintCollectionToken(tokenizationApiMintCollectionTokenRequest);" + source: "const response: Promise> = fireblocks.resetDevice.resetDevice(resetDeviceApiResetDeviceRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().mintCollectionToken(collectionMintRequestDto,\ - \ id, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.resetDevice().resetDevice(id,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.tokenization.mint_collection_token(collection_mint_request_dto,\ - \ id, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.reset_device.reset_device(id, idempotency_key);" x-accepts: - application/json - /tokenization/collections/{id}/tokens/burn: - post: - description: Burn tokens in a collection - operationId: burnCollectionToken + /smart_transfers/{ticketId}/dvp/fund: + put: + description: Create or fulfill dvp ticket order + operationId: fundDvpTicket parameters: - - description: The collection link id - example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb - explode: false + - explode: false in: path - name: id + name: ticketId required: true schema: type: string @@ -18851,231 +18496,405 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CollectionBurnRequestDto" + $ref: "#/components/schemas/SmartTransferFundDvpTicket" required: true responses: - "202": + "200": content: application/json: schema: - $ref: "#/components/schemas/CollectionBurnResponseDto" - description: Tokens burned successfully - default: - $ref: "#/components/responses/Error" - summary: Burn tokens + $ref: "#/components/schemas/SmartTransferTicketResponse" + description: Successfully started creating or fulfilling order on dvp Smart + Transfer ticket + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Fund dvp ticket tags: - - Tokenization + - Smart Transfer x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tokenization.burnCollectionToken(tokenizationApiBurnCollectionTokenRequest);" + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.fundDvpTicket(smartTransferApiFundDvpTicketRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tokenization().burnCollectionToken(collectionBurnRequestDto,\ - \ id, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().fundDvpTicket(smartTransferFundDvpTicket,\ + \ ticketId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tokenization.burn_collection_token(collection_burn_request_dto,\ - \ id, idempotency_key);" + code: "response = fireblocks.smart_transfer.fund_dvp_ticket(smart_transfer_fund_dvp_ticket,\ + \ ticket_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tokenization.burnCollectionToken(tokenizationApiBurnCollectionTokenRequest);" + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.fundDvpTicket(smartTransferApiFundDvpTicketRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tokenization().burnCollectionToken(collectionBurnRequestDto,\ - \ id, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().fundDvpTicket(smartTransferFundDvpTicket,\ + \ ticketId, idempotencyKey);" - lang: Python - source: "response = fireblocks.tokenization.burn_collection_token(collection_burn_request_dto,\ - \ id, idempotency_key);" + source: "response = fireblocks.smart_transfer.fund_dvp_ticket(smart_transfer_fund_dvp_ticket,\ + \ ticket_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions: - get: - description: |- - Return deployed contract's ABI by blockchain native asset id and contract address. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer. - operationId: getDeployedContractAbi + /smart_transfers/{ticketId}/terms/{termId}/dvp/approve: + put: + description: Set funding source for ticket term and creating approving transaction + for contract to transfer asset + operationId: approveDvPTicketTerm 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 + - explode: false + in: path + name: ticketId + required: true schema: type: string style: simple - - description: The contract's onchain address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 - explode: false + - explode: false in: path - name: contractAddress + name: termId required: true schema: type: string style: simple - - description: The blockchain base assetId - example: ETH + - 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: path - name: baseAssetId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferApproveTerm" + required: true + responses: + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferTicketTermResponse" + description: Creating approval transaction started + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Set funding source and approval + tags: + - Smart Transfer + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.approveDvPTicketTerm(smartTransferApiApproveDvPTicketTermRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().approveDvPTicketTerm(smartTransferApproveTerm,\ + \ ticketId, termId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.smart_transfer.approve_dv_p_ticket_term(smart_transfer_approve_term,\ + \ ticket_id, term_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.approveDvPTicketTerm(smartTransferApiApproveDvPTicketTermRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().approveDvPTicketTerm(smartTransferApproveTerm,\ + \ ticketId, termId, idempotencyKey);" + - lang: Python + source: "response = fireblocks.smart_transfer.approve_dv_p_ticket_term(smart_transfer_approve_term,\ + \ ticket_id, term_id, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /smart_transfers/statistic: + get: + description: Get smart transfer statistic + operationId: getSmartTransferStatistic responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ContractAbiResponseDto" - description: "" + $ref: "#/components/schemas/SmartTransferStatistic" + description: Smart Transfer ticket statistic returned successfully + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized default: $ref: "#/components/responses/Error" - summary: Return deployed contract's ABI + summary: Get smart transfers statistic tags: - - Contract Interactions - x-rate-limit-category: read + - Smart Transfer + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: "deployed_contract_abi = fireblocks.get_contracts_abi(base_asset_id,\ - \ contract_address)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const deployedContractAbi = await fireblocks.getContractAbi(baseAssetId,\ - \ contractAddress);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contractInteractions.getDeployedContractAbi(contractInteractionsApiGetDeployedContractAbiRequest);" + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.getSmartTransferStatistic();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.contractInteractions().getDeployedContractAbi(contractAddress,\ - \ baseAssetId, idempotencyKey);" + code: CompletableFuture> response = + fireblocks.smartTransfer().getSmartTransferStatistic(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contract_interactions.get_deployed_contract_abi(contract_address,\ - \ base_asset_id, idempotency_key);" + code: response = fireblocks.smart_transfer.get_smart_transfer_statistic(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contractInteractions.getDeployedContractAbi(contractInteractionsApiGetDeployedContractAbiRequest);" + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.getSmartTransferStatistic();" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.contractInteractions().getDeployedContractAbi(contractAddress,\ - \ baseAssetId, idempotencyKey);" + source: CompletableFuture> response = + fireblocks.smartTransfer().getSmartTransferStatistic(); - lang: Python - source: "response = fireblocks.contract_interactions.get_deployed_contract_abi(contract_address,\ - \ base_asset_id, idempotency_key);" + source: response = fireblocks.smart_transfer.get_smart_transfer_statistic(); x-accepts: - application/json - /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/read: - post: - description: Call a read function on a deployed contract by blockchain native - asset id and contract address - operationId: readCallFunction + /smart-transfers: + get: + description: |- + Find tickets by their title or ticker. You can also query all tickets without filters by not providing any input parameters. + **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: searchTickets 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 + - description: Search string - counterparty name or asset or ticketId. Optional + explode: true + in: query + name: q required: false schema: + minLength: 1 type: string - style: simple - - description: The contract's onchain address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 - explode: false - in: path - name: contractAddress - required: true + style: form + - description: Ticket statuses for Smart Transfer tickets. Optional + example: + - DRAFT + - OPEN + explode: true + in: query + name: statuses + required: false + schema: + default: [] + items: + enum: + - DRAFT + - PENDING_APPROVAL + - OPEN + - IN_SETTLEMENT + - FULFILLED + - EXPIRED + - CANCELED + type: string + type: array + style: form + - description: "NetworkId that is used in the ticket\t. Optional" + explode: true + in: query + name: networkId + required: false schema: type: string - style: simple - - explode: false - in: path - name: baseAssetId - required: true + style: form + - description: Filter created tickets by created by self or by others. Optional + explode: true + in: query + name: createdByMe + required: false + schema: + type: boolean + style: form + - description: Lower bound of search range. Optional + explode: true + in: query + name: expiresAfter + required: false schema: + format: date-time type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ReadCallFunctionDto" - required: true + style: form + - description: Upper bound of search range. Optional + explode: true + in: query + name: expiresBefore + required: false + schema: + format: date-time + type: string + style: form + - description: "Type of transfer. ASYNC executes transfers as they are funded,\ + \ DVP executes all terms (legs) as one dvp transfer" + explode: true + in: query + name: type + required: false + schema: + enum: + - ASYNC + - DVP + type: string + style: form + - description: External ref. ID that workspace can use to identify ticket outside + of Fireblocks system. + explode: true + in: query + name: externalRefId + required: false + schema: + maxLength: 64 + minLength: 1 + type: string + style: form + - description: ID of the record after which to fetch $limit records + explode: true + in: query + name: after + required: false + schema: + type: string + style: form + - description: "Number of records to fetch. By default, it is 100" + explode: true + in: query + name: limit + required: false + schema: + minimum: 1 + type: number + style: form + - description: Sort by field + explode: true + in: query + name: sortBy + required: false + schema: + default: createdAt + enum: + - createdAt + - updatedAt + - submittedAt + example: createdAt + type: string + style: form + - description: ASC / DESC ordering (default DESC) + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + example: DESC + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ParameterWithValueList" - description: Read Call Retrieved Successfully - default: - $ref: "#/components/responses/Error" - summary: Call a read function on a deployed contract + $ref: "#/components/schemas/SmartTransferTicketFilteredResponse" + description: Smart Transfer tickets were returned successfully + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + summary: Find Ticket tags: - - Contract Interactions + - Smart Transfer + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: "read_response = fireblocks.read_contract_call_function(base_asset_id,\ - \ contract_address, payload)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const readResponse= await fireblocks.readContractCallFunction(baseAssetId,\ - \ contractAddress, payload);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contractInteractions.readCallFunction(contractInteractionsApiReadCallFunctionRequest);" + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.searchTickets(smartTransferApiSearchTicketsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>> response\ - \ = fireblocks.contractInteractions().readCallFunction(readCallFunctionDto,\ - \ contractAddress, baseAssetId, idempotencyKey);" + code: "CompletableFuture>\ + \ response = fireblocks.smartTransfer().searchTickets(q, statuses, networkId,\ + \ createdByMe, expiresAfter, expiresBefore, type, externalRefId, after,\ + \ limit, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contract_interactions.read_call_function(read_call_function_dto,\ - \ contract_address, base_asset_id, idempotency_key);" + code: "response = fireblocks.smart_transfer.search_tickets(q, statuses,\ + \ network_id, created_by_me, expires_after, expires_before, type, external_ref_id,\ + \ after, limit, sort_by, order);" name: Fireblocks SDK Python example - x-rate-limit-category: read x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contractInteractions.readCallFunction(contractInteractionsApiReadCallFunctionRequest);" + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.searchTickets(smartTransferApiSearchTicketsRequest);" - lang: Java - source: "CompletableFuture>> response\ - \ = fireblocks.contractInteractions().readCallFunction(readCallFunctionDto,\ - \ contractAddress, baseAssetId, idempotencyKey);" + source: "CompletableFuture>\ + \ response = fireblocks.smartTransfer().searchTickets(q, statuses, networkId,\ + \ createdByMe, expiresAfter, expiresBefore, type, externalRefId, after,\ + \ limit, sortBy, order);" - lang: Python - source: "response = fireblocks.contract_interactions.read_call_function(read_call_function_dto,\ - \ contract_address, base_asset_id, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.smart_transfer.search_tickets(q, statuses,\ + \ network_id, created_by_me, expires_after, expires_before, type, external_ref_id,\ + \ after, limit, sort_by, order);" x-accepts: - application/json - /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/write: post: - description: "Call a write function on a deployed contract by blockchain native\ - \ asset id and contract address. This creates an onchain transaction, thus\ - \ it is an async operation. It returns a transaction id that can be polled\ - \ for status check" - operationId: writeCallFunction + description: | + Creates a new Smart Transfer ticket. Learn more about Fireblocks Smart Transfers [here](https://developers.fireblocks.com/docs/execute-smart-transfers). + + **Note:** The `DVP` value is in Early Access and should only be used if Fireblocks has enabled it in your workspace. Contact your Customer Success Manager for more information. + + **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: createTicket 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\ @@ -19088,100 +18907,72 @@ paths: schema: type: string style: simple - - description: The contract's onchain address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 - explode: false - in: path - name: contractAddress - required: true - schema: - type: string - style: simple - - explode: false - in: path - name: baseAssetId - required: true - schema: - type: string - style: simple requestBody: content: application/json: schema: - $ref: "#/components/schemas/WriteCallFunctionDto" + $ref: "#/components/schemas/SmartTransferCreateTicket" required: true responses: - "202": + "201": content: application/json: schema: - $ref: "#/components/schemas/WriteCallFunctionResponseDto" - description: "" - default: - $ref: "#/components/responses/Error" - summary: Call a write function on a deployed contract + $ref: "#/components/schemas/SmartTransferTicketResponse" + description: Smart Transfer ticket was created successfully + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Create Ticket tags: - - Contract Interactions + - Smart Transfer + x-rate-limit-category: async x-readme: code-samples: - - language: python - code: "write_function_response = fireblocks.write_contract_call_function(base_asset_id,\ - \ contract_address, payload)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const writeFunctionResponse = await fireblocks.writeContractCallFunction(baseAssetId,\ - \ contractAddress, payload);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contractInteractions.writeCallFunction(contractInteractionsApiWriteCallFunctionRequest);" + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.createTicket(smartTransferApiCreateTicketRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.contractInteractions().writeCallFunction(writeCallFunctionDto,\ - \ contractAddress, baseAssetId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().createTicket(smartTransferCreateTicket,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contract_interactions.write_call_function(write_call_function_dto,\ - \ contract_address, base_asset_id, idempotency_key);" + code: "response = fireblocks.smart_transfer.create_ticket(smart_transfer_create_ticket,\ + \ idempotency_key);" name: Fireblocks SDK Python example - x-rate-limit-category: async x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contractInteractions.writeCallFunction(contractInteractionsApiWriteCallFunctionRequest);" + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.createTicket(smartTransferApiCreateTicketRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.contractInteractions().writeCallFunction(writeCallFunctionDto,\ - \ contractAddress, baseAssetId, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().createTicket(smartTransferCreateTicket, idempotencyKey);" - lang: Python - source: "response = fireblocks.contract_interactions.write_call_function(write_call_function_dto,\ - \ contract_address, base_asset_id, idempotency_key);" + source: "response = fireblocks.smart_transfer.create_ticket(smart_transfer_create_ticket,\ + \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /contract_interactions/base_asset_id/{baseAssetId}/tx_hash/{txHash}/receipt: + /smart-transfers/{ticketId}: get: - description: "Retrieve the transaction receipt by blockchain native asset ID\ - \ and transaction hash\n> **Note** > This functionality is exclusively available\ - \ for EVM (Ethereum Virtual Machine) compatible chains. \nEndpoint Permission:\ - \ Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer." - operationId: getTransactionReceipt + description: "Find Smart Transfer ticket by id. Endpoint Permission: Admin,\ + \ Non-Signing Admin, Signer, Approver, Editor, Viewer." + operationId: findTicketById parameters: - - description: The blockchain base assetId - example: ETH_TEST6 - explode: false - in: path - name: baseAssetId - required: true - schema: - type: string - style: simple - - description: The transaction hash - example: 0x3b015ca0518c55d7bff4e3f5aa5d0431705771553ba8a95cf20e34cb597f57f6 - explode: false + - explode: false in: path - name: txHash + name: ticketId required: true schema: type: string @@ -19191,56 +18982,61 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TransactionReceiptResponse" - description: Retrieved The Transaction Receipt Successfully - default: - $ref: "#/components/responses/Error" - summary: Get transaction receipt + $ref: "#/components/schemas/SmartTransferTicketResponse" + description: Smart Transfer ticket returned successfully + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + summary: Search Ticket by ID tags: - - Contract Interactions - x-rate-limit-category: read + - Smart Transfer + x-rate-limit-category: query x-readme: code-samples: - - language: python - code: "transaction_receipt = fireblocks.get_transaction_receipt(base_asset_id,\ - \ tx_hash)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const transactionReceipt = await fireblocks.getTransactionReceipt(baseAssetId,\ - \ txHash);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contractInteractions.getTransactionReceipt(contractInteractionsApiGetTransactionReceiptRequest);" + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.findTicketById(smartTransferApiFindTicketByIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.contractInteractions().getTransactionReceipt(baseAssetId,\ - \ txHash);" + code: CompletableFuture> response + = fireblocks.smartTransfer().findTicketById(ticketId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contract_interactions.get_transaction_receipt(base_asset_id,\ - \ tx_hash);" + code: response = fireblocks.smart_transfer.find_ticket_by_id(ticket_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contractInteractions.getTransactionReceipt(contractInteractionsApiGetTransactionReceiptRequest);" + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.findTicketById(smartTransferApiFindTicketByIdRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.contractInteractions().getTransactionReceipt(baseAssetId,\ - \ txHash);" + source: CompletableFuture> response + = fireblocks.smartTransfer().findTicketById(ticketId); - lang: Python - source: "response = fireblocks.contract_interactions.get_transaction_receipt(base_asset_id,\ - \ tx_hash);" + source: response = fireblocks.smart_transfer.find_ticket_by_id(ticket_id); x-accepts: - application/json - /contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/decode: - post: - description: "Decode a function call data, error, or event log from a deployed\ - \ contract by blockchain native asset id and contract address." - operationId: decodeContractData + /smart-transfers/{ticketId}/cancel: + put: + description: "Cancel Smart Transfer ticket. Endpoint Permission: Admin, Non-Signing\ + \ Admin, Signer, Approver, Editor." + operationId: cancelTicket parameters: + - explode: false + in: path + name: ticketId + required: true + schema: + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -19252,21 +19048,80 @@ paths: schema: type: string style: simple - - description: The contract's onchain address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 - explode: false + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferTicketResponse" + description: Smart Transfer ticket successfully canceled + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Cancel Ticket + tags: + - Smart Transfer + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.cancelTicket(smartTransferApiCancelTicketRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().cancelTicket(ticketId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.smart_transfer.cancel_ticket(ticket_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.cancelTicket(smartTransferApiCancelTicketRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().cancelTicket(ticketId, idempotencyKey);" + - lang: Python + source: "response = fireblocks.smart_transfer.cancel_ticket(ticket_id, idempotency_key);" + x-accepts: + - application/json + /smart-transfers/{ticketId}/expires-in: + put: + description: "Set expiration date on Smart Transfer ticket. Endpoint Permission:\ + \ Admin, Non-Signing Admin, Signer, Approver, Editor." + operationId: setTicketExpiration + parameters: + - explode: false in: path - name: contractAddress + name: ticketId required: true schema: type: string style: simple - - description: The blockchain native asset identifier - example: ETH + - 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: path - name: baseAssetId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple @@ -19274,69 +19129,79 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ContractDataDecodeRequest" + $ref: "#/components/schemas/SmartTransferSetTicketExpiration" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ContractDataDecodedResponse" - description: Decoded data retrieved successfully - "400": + $ref: "#/components/schemas/SmartTransferTicketResponse" + description: Successfully set expiration date on Smart Transfer ticket + "403": content: application/json: schema: - $ref: "#/components/schemas/ContractDataDecodeError" - description: "Bad request, invalid input data or parameters" - default: - $ref: "#/components/responses/Error" - summary: "Decode a function call data, error, or event log" + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Set expiration tags: - - Contract Interactions - x-rate-limit-category: read + - Smart Transfer + x-rate-limit-category: write x-readme: code-samples: - - language: javascript - code: |- - const payload = { - "data": "0xcd21db4f000000000000000000000000000000000000000000000000000000006790c645", - "dataType": "ERROR" - } const decodeResponse = await fireblocks.decodeContractData(baseAssetId, contractAddress, payload); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contractInteractions.decodeContractData(contractInteractionsApiDecodeContractDataRequest);" + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.setTicketExpiration(smartTransferApiSetTicketExpirationRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.contractInteractions().decodeContractData(contractDataDecodeRequest,\ - \ contractAddress, baseAssetId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().setTicketExpiration(smartTransferSetTicketExpiration,\ + \ ticketId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contract_interactions.decode_contract_data(contract_data_decode_request,\ - \ contract_address, base_asset_id, idempotency_key);" + code: "response = fireblocks.smart_transfer.set_ticket_expiration(smart_transfer_set_ticket_expiration,\ + \ ticket_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contractInteractions.decodeContractData(contractInteractionsApiDecodeContractDataRequest);" + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.setTicketExpiration(smartTransferApiSetTicketExpirationRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.contractInteractions().decodeContractData(contractDataDecodeRequest,\ - \ contractAddress, baseAssetId, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().setTicketExpiration(smartTransferSetTicketExpiration,\ + \ ticketId, idempotencyKey);" - lang: Python - source: "response = fireblocks.contract_interactions.decode_contract_data(contract_data_decode_request,\ - \ contract_address, base_asset_id, idempotency_key);" + source: "response = fireblocks.smart_transfer.set_ticket_expiration(smart_transfer_set_ticket_expiration,\ + \ ticket_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /contract_interactions/base_asset_id/{baseAssetId}/tx_hash/{txHash}: - get: - description: Retrieve the contract address by blockchain native asset ID and - transaction hash - operationId: getContractAddress + /smart-transfers/{ticketId}/external-id: + put: + description: "Set external id Smart Transfer ticket. Endpoint Permission: Admin,\ + \ Non-Signing Admin, Signer, Approver, Editor." + operationId: setExternalRefId parameters: + - explode: false + in: path + name: ticketId + required: true + schema: + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -19348,94 +19213,92 @@ paths: schema: type: string style: simple - - description: The blockchain base assetId - example: ETH_TEST3 - explode: false - in: path - name: baseAssetId - required: true - schema: - type: string - style: simple - - description: The transaction hash - example: 0x3b015ca0518c55d7bff4e3f5aa5d0431705771553ba8a95cf20e34cb597f57f6 - explode: false - in: path - name: txHash + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferSetTicketExternalId" required: true - schema: - type: string - style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ContractAddressResponse" - description: Retrieved The Contract Address Successfully - default: - $ref: "#/components/responses/Error" - summary: Get contract address by transaction hash + $ref: "#/components/schemas/SmartTransferTicketResponse" + description: Successfully set external id on Smart Transfer ticket + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Add external ref. ID tags: - - Contract Interactions - x-rate-limit-category: read + - Smart Transfer + x-rate-limit-category: write x-readme: code-samples: - - language: python - code: "contract_address = fireblocks.get_contract_address(base_asset_id,\ - \ tx_hash)" - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: "const contractAddress = await fireblocks.getContractAddress(baseAssetId,\ - \ txHash);" - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.contractInteractions.getContractAddress(contractInteractionsApiGetContractAddressRequest);" + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.setExternalRefId(smartTransferApiSetExternalRefIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.contractInteractions().getContractAddress(baseAssetId,\ - \ txHash, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().setExternalRefId(smartTransferSetTicketExternalId,\ + \ ticketId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.contract_interactions.get_contract_address(base_asset_id,\ - \ tx_hash, idempotency_key);" + code: "response = fireblocks.smart_transfer.set_external_ref_id(smart_transfer_set_ticket_external_id,\ + \ ticket_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.contractInteractions.getContractAddress(contractInteractionsApiGetContractAddressRequest);" + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.setExternalRefId(smartTransferApiSetExternalRefIdRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.contractInteractions().getContractAddress(baseAssetId, txHash,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().setExternalRefId(smartTransferSetTicketExternalId,\ + \ ticketId, idempotencyKey);" - lang: Python - source: "response = fireblocks.contract_interactions.get_contract_address(base_asset_id,\ - \ tx_hash, idempotency_key);" + source: "response = fireblocks.smart_transfer.set_external_ref_id(smart_transfer_set_ticket_external_id,\ + \ ticket_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/roles: - get: - description: Returns a list of currently active roles for the specified baseAssetId - and contractAddress. - operationId: getActiveRolesForContract + /smart-transfers/{ticketId}/fulfill: + put: + description: "Manually fulfill ticket, in case when all terms (legs) are funded\ + \ manually. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver,\ + \ Editor." + operationId: fulfillTicket parameters: - - description: The blockchain base assetId - example: ETH_TEST3 - explode: false + - explode: false in: path - name: baseAssetId + name: ticketId required: true schema: type: string style: simple - - description: The contract address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 + - 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: path - name: contractAddress - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple @@ -19444,846 +19307,1258 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ActiveRolesResponse-2" - description: Successfully retrieved the list of active roles - default: - $ref: "#/components/responses/Error" - summary: List of active roles for a given contract address and base asset ID + $ref: "#/components/schemas/SmartTransferTicketResponse" + description: Successfully fulfilled on Smart Transfer ticket + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Fund ticket manually tags: - - Onchain Data - x-rate-limit-category: read + - Smart Transfer + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.onchainData.getActiveRolesForContract(onchainDataApiGetActiveRolesForContractRequest);" + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.fulfillTicket(smartTransferApiFulfillTicketRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.onchainData().getActiveRolesForContract(baseAssetId,\ - \ contractAddress);" + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().fulfillTicket(ticketId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.onchain_data.get_active_roles_for_contract(base_asset_id,\ - \ contract_address);" + code: "response = fireblocks.smart_transfer.fulfill_ticket(ticket_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.onchainData.getActiveRolesForContract(onchainDataApiGetActiveRolesForContractRequest);" + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.fulfillTicket(smartTransferApiFulfillTicketRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.onchainData().getActiveRolesForContract(baseAssetId,\ - \ contractAddress);" + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().fulfillTicket(ticketId, idempotencyKey);" - lang: Python - source: "response = fireblocks.onchain_data.get_active_roles_for_contract(base_asset_id,\ - \ contract_address);" + source: "response = fireblocks.smart_transfer.fulfill_ticket(ticket_id, idempotency_key);" x-accepts: - application/json - /onchain_data/base_asset_id/{baseAssetId}/access_registry_address/{accessRegistryAddress}/list: - get: - description: Returns the current state of addresses in the specified access - registry. Only addresses that are currently active (added but not removed) - are included. - operationId: getAccessRegistryCurrentState + /smart-transfers/{ticketId}/submit: + put: + description: "Submit Smart Transfer ticket - change status into ready for approval\ + \ if auto approval is not turned on, or OPEN if auto approval is on. Endpoint\ + \ Permission: Admin, Non-Signing Admin, Signer, Approver, Editor." + operationId: submitTicket parameters: - - description: The blockchain base assetId - example: ETH_TEST3 - explode: false + - explode: false in: path - name: baseAssetId + name: ticketId required: true schema: type: string style: simple - - description: The access registry address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 + - 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: path - name: accessRegistryAddress - required: true - schema: - type: string - style: simple - - description: Page cursor to get the next page" - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor + in: header + name: Idempotency-Key required: false schema: type: string - style: form - - description: "Number of items per page (max 100), requesting more then 100\ - \ will return 100 items" - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Sorting field (enum). - explode: true - in: query - name: sortBy - required: false + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferSubmitTicket" + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferTicketResponse" + description: Successfully submitted Smart Transfer ticket + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Submit ticket + tags: + - Smart Transfer + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.submitTicket(smartTransferApiSubmitTicketRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().submitTicket(smartTransferSubmitTicket,\ + \ ticketId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.smart_transfer.submit_ticket(smart_transfer_submit_ticket,\ + \ ticket_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.submitTicket(smartTransferApiSubmitTicketRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().submitTicket(smartTransferSubmitTicket, ticketId,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.smart_transfer.submit_ticket(smart_transfer_submit_ticket,\ + \ ticket_id, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /smart-transfers/{ticketId}/terms: + post: + description: "Creates new smart transfer ticket term (when the ticket status\ + \ is DRAFT). Learn more about Fireblocks Smart Transfers in the following\ + \ [guide](https://developers.fireblocks.com/docs/execute-smart-transfers).\ + \ Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor." + operationId: createTicketTerm + parameters: + - explode: false + in: path + name: ticketId + required: true schema: - default: dateAdded - enum: - - dateAdded - - address type: string - style: form - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order + 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: - default: DESC - enum: - - ASC - - DESC type: string - style: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferCreateTicketTerm" + required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/AccessRegistryCurrentStateResponse-2" - description: Access registry current state retrieved successfully - default: - $ref: "#/components/responses/Error" - summary: Get the current state of addresses in an access registry + $ref: "#/components/schemas/SmartTransferTicketTermResponse" + description: Smart Transfer ticket term was created successfully + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Create leg (term) tags: - - Onchain Data - x-rate-limit-category: read + - Smart Transfer + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.onchainData.getAccessRegistryCurrentState(onchainDataApiGetAccessRegistryCurrentStateRequest);" + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.createTicketTerm(smartTransferApiCreateTicketTermRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.onchainData().getAccessRegistryCurrentState(baseAssetId,\ - \ accessRegistryAddress, pageCursor, pageSize, sortBy, order);" + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().createTicketTerm(smartTransferCreateTicketTerm,\ + \ ticketId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.onchain_data.get_access_registry_current_state(base_asset_id,\ - \ access_registry_address, page_cursor, page_size, sort_by, order);" + code: "response = fireblocks.smart_transfer.create_ticket_term(smart_transfer_create_ticket_term,\ + \ ticket_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.onchainData.getAccessRegistryCurrentState(onchainDataApiGetAccessRegistryCurrentStateRequest);" + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.createTicketTerm(smartTransferApiCreateTicketTermRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.onchainData().getAccessRegistryCurrentState(baseAssetId,\ - \ accessRegistryAddress, pageCursor, pageSize, sortBy, order);" + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().createTicketTerm(smartTransferCreateTicketTerm,\ + \ ticketId, idempotencyKey);" - lang: Python - source: "response = fireblocks.onchain_data.get_access_registry_current_state(base_asset_id,\ - \ access_registry_address, page_cursor, page_size, sort_by, order);" + source: "response = fireblocks.smart_transfer.create_ticket_term(smart_transfer_create_ticket_term,\ + \ ticket_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /onchain_data/base_asset_id/{baseAssetId}/access_registry_address/{accessRegistryAddress}/summary: - get: - description: Returns a summary of the current state of the access registry for - the specified baseAssetId and accessRegistryAddress. - operationId: getAccessRegistrySummary + /smart-transfers/{ticketId}/terms/{termId}: + delete: + description: Delete ticket term when ticket is in DRAFT status + operationId: removeTicketTerm parameters: - - description: The blockchain base assetId - example: ETH_TEST3 - explode: false + - explode: false in: path - name: baseAssetId + name: ticketId required: true schema: type: string style: simple - - description: The access registry address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 - explode: false + - explode: false in: path - name: accessRegistryAddress + name: termId required: true schema: type: string style: simple responses: - "200": + "204": + description: Smart Transfer ticket term successfully removed + "403": content: application/json: schema: - $ref: "#/components/schemas/AccessRegistrySummaryResponse" - description: Successfully retrieved the summary of the access registry state - default: - $ref: "#/components/responses/Error" - summary: Summary of access registry state + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + summary: Delete ticket leg (term) tags: - - Onchain Data - x-rate-limit-category: read + - Smart Transfer + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.onchainData.getAccessRegistrySummary(onchainDataApiGetAccessRegistrySummaryRequest);" + code: "const response: Promise> = fireblocks.smartTransfer.removeTicketTerm(smartTransferApiRemoveTicketTermRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.onchainData().getAccessRegistrySummary(baseAssetId, accessRegistryAddress);" + code: "CompletableFuture> response = fireblocks.smartTransfer().removeTicketTerm(ticketId,\ + \ termId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.onchain_data.get_access_registry_summary(base_asset_id,\ - \ access_registry_address);" + code: "response = fireblocks.smart_transfer.remove_ticket_term(ticket_id,\ + \ term_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.onchainData.getAccessRegistrySummary(onchainDataApiGetAccessRegistrySummaryRequest);" + source: "const response: Promise> = fireblocks.smartTransfer.removeTicketTerm(smartTransferApiRemoveTicketTermRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.onchainData().getAccessRegistrySummary(baseAssetId, accessRegistryAddress);" + source: "CompletableFuture> response = fireblocks.smartTransfer().removeTicketTerm(ticketId,\ + \ termId);" - lang: Python - source: "response = fireblocks.onchain_data.get_access_registry_summary(base_asset_id,\ - \ access_registry_address);" + source: "response = fireblocks.smart_transfer.remove_ticket_term(ticket_id,\ + \ term_id);" x-accepts: - application/json - /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/transactions: get: - description: "Returns a paginated list of onchain transactions for the specified\ - \ contract address and base asset ID, optionally filtered by date range." - operationId: getOnchainTransactions + description: "Find a specific term of a specific Smart Transfer ticket. Endpoint\ + \ Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer." + operationId: findTicketTermById parameters: - - description: The blockchain base assetId - example: ETH_TEST3 - explode: false + - explode: false in: path - name: baseAssetId + name: ticketId required: true schema: type: string style: simple - - description: The contract address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 - explode: false + - explode: false in: path - name: contractAddress + name: termId required: true schema: type: string style: simple - - description: Start date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: startDate - required: false - schema: - format: date-time - type: string - style: form - - description: End date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: endDate - required: false - schema: - format: date-time - type: string - style: form - - description: Page cursor to get the next page" - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: "Number of items per page (max 100), requesting more then 100\ - \ will return 100 items" - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Sorting field (enum). - explode: true - in: query - name: sortBy - required: false - schema: - default: blockTimestamp - enum: - - blockTimestamp - - blockNumber - - transactionHash - type: string - style: form - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order - required: false - schema: - default: DESC - enum: - - ASC - - DESC - type: string - style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/OnchainTransactionsPagedResponse-2" - description: Onchain transactions fetched successfully - default: - $ref: "#/components/responses/Error" - summary: Fetch onchain transactions for a contract + $ref: "#/components/schemas/SmartTransferTicketTermResponse" + description: Smart Transfer ticket term returned successfully + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + summary: Get Smart Transfer ticket term tags: - - Onchain Data + - Smart Transfer x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.onchainData.getOnchainTransactions(onchainDataApiGetOnchainTransactionsRequest);" + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.findTicketTermById(smartTransferApiFindTicketTermByIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.onchainData().getOnchainTransactions(baseAssetId,\ - \ contractAddress, startDate, endDate, pageCursor, pageSize, sortBy, order);" + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().findTicketTermById(ticketId, termId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.onchain_data.get_onchain_transactions(base_asset_id,\ - \ contract_address, start_date, end_date, page_cursor, page_size, sort_by,\ - \ order);" + code: "response = fireblocks.smart_transfer.find_ticket_term_by_id(ticket_id,\ + \ term_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.onchainData.getOnchainTransactions(onchainDataApiGetOnchainTransactionsRequest);" + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.findTicketTermById(smartTransferApiFindTicketTermByIdRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.onchainData().getOnchainTransactions(baseAssetId,\ - \ contractAddress, startDate, endDate, pageCursor, pageSize, sortBy, order);" + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().findTicketTermById(ticketId, termId);" - lang: Python - source: "response = fireblocks.onchain_data.get_onchain_transactions(base_asset_id,\ - \ contract_address, start_date, end_date, page_cursor, page_size, sort_by,\ - \ order);" + source: "response = fireblocks.smart_transfer.find_ticket_term_by_id(ticket_id,\ + \ term_id);" x-accepts: - application/json - /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/total_supply: - get: - description: Returns the paginated total supply history of the specified contract - with optional date range and interval filtering. - operationId: getContractTotalSupply + put: + description: Update ticket term (when ticket status is DRAFT) + operationId: updateTicketTerm parameters: - - description: The blockchain base assetId - example: ETH_TEST3 - explode: false + - explode: false in: path - name: baseAssetId + name: ticketId required: true schema: type: string style: simple - - description: The contract address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 - explode: false + - explode: false in: path - name: contractAddress + name: termId required: true schema: type: string style: simple - - description: Start date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: startDate - required: false - schema: - format: date-time - type: string - style: form - - description: End date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: endDate - required: false - schema: - format: date-time - type: string - style: form - - description: Time interval for grouping data - example: day - explode: true - in: query - name: interval - required: false - schema: - default: day - enum: - - hour - - day - - week - - month - type: string - style: form - - description: Page cursor to get the next page" - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: "Number of items per page (max 100), requesting more then 100\ - \ will return 100 items" - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Sorting field (enum). Sorting only supported by 'blockTimestamp' - explode: true - in: query - name: sortBy - required: false - schema: - default: blockTimestamp - enum: - - blockTimestamp - type: string - style: form - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order + - 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: - default: DESC - enum: - - ASC - - DESC type: string - style: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferUpdateTicketTerm" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TotalSupplyPagedResponse-2" - description: Successfully retrieved the contract total supply history - default: - $ref: "#/components/responses/Error" - summary: Get historical total supply data for a contract + $ref: "#/components/schemas/SmartTransferTicketTermResponse" + description: Smart Transfer ticket term updated successfully + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + summary: Update ticket leg (term) tags: - - Onchain Data - x-rate-limit-category: read + - Smart Transfer + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.onchainData.getContractTotalSupply(onchainDataApiGetContractTotalSupplyRequest);" + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.updateTicketTerm(smartTransferApiUpdateTicketTermRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.onchainData().getContractTotalSupply(baseAssetId, contractAddress,\ - \ startDate, endDate, interval, pageCursor, pageSize, sortBy, order);" + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().updateTicketTerm(smartTransferUpdateTicketTerm,\ + \ ticketId, termId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.onchain_data.get_contract_total_supply(base_asset_id,\ - \ contract_address, start_date, end_date, interval, page_cursor, page_size,\ - \ sort_by, order);" + code: "response = fireblocks.smart_transfer.update_ticket_term(smart_transfer_update_ticket_term,\ + \ ticket_id, term_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.onchainData.getContractTotalSupply(onchainDataApiGetContractTotalSupplyRequest);" + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.updateTicketTerm(smartTransferApiUpdateTicketTermRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.onchainData().getContractTotalSupply(baseAssetId, contractAddress,\ - \ startDate, endDate, interval, pageCursor, pageSize, sortBy, order);" + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().updateTicketTerm(smartTransferUpdateTicketTerm,\ + \ ticketId, termId, idempotencyKey);" - lang: Python - source: "response = fireblocks.onchain_data.get_contract_total_supply(base_asset_id,\ - \ contract_address, start_date, end_date, interval, page_cursor, page_size,\ - \ sort_by, order);" + source: "response = fireblocks.smart_transfer.update_ticket_term(smart_transfer_update_ticket_term,\ + \ ticket_id, term_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/account_address/{accountAddress}/balance_history: - get: - description: Returns the paginated balance history of the specified account - in a contract with optional date range and interval filtering. - operationId: getContractBalanceHistory + /smart-transfers/{ticketId}/terms/{termId}/fund: + put: + description: "Set funding source for ticket term (in case of ASYNC tickets,\ + \ this will execute transfer immediately). Endpoint Permission: Admin, Non-Signing\ + \ Admin, Signer, Approver, Editor." + operationId: fundTicketTerm parameters: - - description: The blockchain base assetId - example: ETH_TEST3 - explode: false + - explode: false in: path - name: baseAssetId + name: ticketId required: true schema: type: string style: simple - - description: The contract address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 - explode: false + - explode: false in: path - name: contractAddress + name: termId required: true schema: type: string style: simple - - description: The account address to get balance history for + - 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: path - name: accountAddress - required: true - schema: - example: 0x1234567890abcdef1234567890abcdef12345678 - type: string - style: simple - - description: Start date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: startDate + in: header + name: Idempotency-Key required: false schema: - format: date-time type: string - style: form - - description: End date of the time range in ISO 8601 format - example: 2025-01-16T15:45:00Z - explode: true - in: query - name: endDate - required: false + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferFundTerm" + required: true + responses: + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferTicketTermResponse" + description: Funding source for ticket term successfully done + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Define funding source + tags: + - Smart Transfer + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.fundTicketTerm(smartTransferApiFundTicketTermRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().fundTicketTerm(smartTransferFundTerm, ticketId,\ + \ termId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.smart_transfer.fund_ticket_term(smart_transfer_fund_term,\ + \ ticket_id, term_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.fundTicketTerm(smartTransferApiFundTicketTermRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().fundTicketTerm(smartTransferFundTerm, ticketId,\ + \ termId, idempotencyKey);" + - lang: Python + source: "response = fireblocks.smart_transfer.fund_ticket_term(smart_transfer_fund_term,\ + \ ticket_id, term_id, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /smart-transfers/{ticketId}/terms/{termId}/manually-fund: + put: + description: |- + Manually set ticket term transaction. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: manuallyFundTicketTerm + parameters: + - explode: false + in: path + name: ticketId + required: true schema: - format: date-time type: string - style: form - - description: Time interval for grouping data - example: day - explode: true - in: query - name: interval - required: false + style: simple + - explode: false + in: path + name: termId + required: true schema: - default: day - enum: - - hour - - day - - week - - month type: string - style: form - - description: Page cursor to get the next page" - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor + 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: form - - description: "Number of items per page (max 100), requesting more then 100\ - \ will return 100 items" - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Sorting field (enum). Sorting only supported by 'blockTimestamp' - explode: true - in: query - name: sortBy - required: false - schema: - default: blockTimestamp - enum: - - blockTimestamp - type: string - style: form - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferManuallyFundTerm" + required: true + responses: + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferTicketTermResponse" + description: Successfully manually set ticket term transaction + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferNotFoundResponse" + description: Not found + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Manually add term transaction + tags: + - Smart Transfer + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.manuallyFundTicketTerm(smartTransferApiManuallyFundTicketTermRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().manuallyFundTicketTerm(smartTransferManuallyFundTerm,\ + \ ticketId, termId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.smart_transfer.manually_fund_ticket_term(smart_transfer_manually_fund_term,\ + \ ticket_id, term_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.manuallyFundTicketTerm(smartTransferApiManuallyFundTicketTermRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().manuallyFundTicketTerm(smartTransferManuallyFundTerm,\ + \ ticketId, termId, idempotencyKey);" + - lang: Python + source: "response = fireblocks.smart_transfer.manually_fund_ticket_term(smart_transfer_manually_fund_term,\ + \ ticket_id, term_id, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /smart-transfers/settings/user-groups: + get: + description: |- + Get Smart Transfer user groups. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getSmartTransferUserGroups + parameters: [] + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferUserGroupsResponse" + description: User group settings were returned successfully + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Get user group + tags: + - Smart Transfer + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.getSmartTransferUserGroups();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response + = fireblocks.smartTransfer().getSmartTransferUserGroups(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.smart_transfer.get_smart_transfer_user_groups(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.getSmartTransferUserGroups();" + - lang: Java + source: CompletableFuture> response + = fireblocks.smartTransfer().getSmartTransferUserGroups(); + - lang: Python + source: response = fireblocks.smart_transfer.get_smart_transfer_user_groups(); + x-accepts: + - application/json + post: + description: |- + Set Smart Transfers user group to receive email notifications for Smart Transfers. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: setUserGroups + 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: - default: DESC - enum: - - ASC - - DESC type: string - style: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferSetUserGroups" + required: true + responses: + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferUserGroupsResponse" + description: User group settings were set successfully + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferForbiddenResponse" + description: Unauthorized + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/SmartTransferBadRequestResponse" + description: Bad Request + summary: Set user group + tags: + - Smart Transfer + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.smartTransfer.setUserGroups(smartTransferApiSetUserGroupsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().setUserGroups(smartTransferSetUserGroups,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.smart_transfer.set_user_groups(smart_transfer_set_user_groups,\ + \ idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.smartTransfer.setUserGroups(smartTransferApiSetUserGroupsRequest);" + - lang: Java + source: "CompletableFuture> response\ + \ = fireblocks.smartTransfer().setUserGroups(smartTransferSetUserGroups,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.smart_transfer.set_user_groups(smart_transfer_set_user_groups,\ + \ idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /staking/chains: + get: + description: |- + Returns an alphabetical list of blockchains supported for staking by the current workspace context. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: getChains responses: "200": content: application/json: schema: - $ref: "#/components/schemas/BalanceHistoryPagedResponse-2" - description: Successfully retrieved the contract balance history + $ref: "#/components/schemas/StakingGetChainsResponse" + description: An array of supported chains was returned successfully. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get historical balance data for a specific account in a contract + summary: List supported staking chains tags: - - Onchain Data - x-rate-limit-category: read + - Staking + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.onchainData.getContractBalanceHistory(onchainDataApiGetContractBalanceHistoryRequest);" + code: "const response: Promise>\ + \ = fireblocks.staking.getChains();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.onchainData().getContractBalanceHistory(baseAssetId, contractAddress,\ - \ accountAddress, startDate, endDate, interval, pageCursor, pageSize,\ - \ sortBy, order);" + code: CompletableFuture>> response = fireblocks.staking().getChains(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.onchain_data.get_contract_balance_history(base_asset_id,\ - \ contract_address, account_address, start_date, end_date, interval, page_cursor,\ - \ page_size, sort_by, order);" + code: response = fireblocks.staking.get_chains(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.onchainData.getContractBalanceHistory(onchainDataApiGetContractBalanceHistoryRequest);" + source: "const response: Promise>\ + \ = fireblocks.staking.getChains();" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.onchainData().getContractBalanceHistory(baseAssetId, contractAddress,\ - \ accountAddress, startDate, endDate, interval, pageCursor, pageSize, sortBy,\ - \ order);" + source: CompletableFuture>> response = fireblocks.staking().getChains(); - lang: Python - source: "response = fireblocks.onchain_data.get_contract_balance_history(base_asset_id,\ - \ contract_address, account_address, start_date, end_date, interval, page_cursor,\ - \ page_size, sort_by, order);" + source: response = fireblocks.staking.get_chains(); x-accepts: - application/json - /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/summary: + /staking/chains/{chainDescriptor}/chainInfo: get: - description: Returns the total number of unique addresses holding balances and - the total supply for the specified contract. - operationId: getContractBalancesSummary + description: "Returns chain-specific staking information such as epoch/slot\ + \ cadence, lockup or unbonding periods, fee/reward mechanics, and other operational\ + \ constraints." + operationId: getChainInfo parameters: - - description: The blockchain base assetId - example: ETH_TEST3 - explode: false - in: path - name: baseAssetId - required: true - schema: - type: string - style: simple - - description: The contract address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 + - description: "Protocol identifier for the chain info staking operation (e.g.,\ + \ ETH/MATIC/SOL)." explode: false in: path - name: contractAddress + name: chainDescriptor required: true schema: - type: string + $ref: "#/components/schemas/ChainDescriptor" style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TokenContractSummaryResponse" - description: Successfully retrieved the summary for the token contract + $ref: "#/components/schemas/ChainInfoResponse" + description: Chain-specific staking information returned successfully. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get summary for the token contract + summary: Get chain-level staking parameters tags: - - Onchain Data - x-rate-limit-category: read + - Staking + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.onchainData.getContractBalancesSummary(onchainDataApiGetContractBalancesSummaryRequest);" + code: "const response: Promise> =\ + \ fireblocks.staking.getChainInfo(stakingApiGetChainInfoRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.onchainData().getContractBalancesSummary(baseAssetId, contractAddress);" + code: CompletableFuture> response = fireblocks.staking().getChainInfo(chainDescriptor); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.onchain_data.get_contract_balances_summary(base_asset_id,\ - \ contract_address);" + code: response = fireblocks.staking.get_chain_info(chain_descriptor); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.onchainData.getContractBalancesSummary(onchainDataApiGetContractBalancesSummaryRequest);" + source: "const response: Promise> =\ + \ fireblocks.staking.getChainInfo(stakingApiGetChainInfoRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.onchainData().getContractBalancesSummary(baseAssetId, contractAddress);" + source: CompletableFuture> response = fireblocks.staking().getChainInfo(chainDescriptor); - lang: Python - source: "response = fireblocks.onchain_data.get_contract_balances_summary(base_asset_id,\ - \ contract_address);" + source: response = fireblocks.staking.get_chain_info(chain_descriptor); x-accepts: - application/json - /onchain_data/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/balances: - get: - description: Returns the latest balance for each unique address with support - for numeric balance sorting. The `prev` cursor is reserved for future support. - operationId: getLatestBalancesForContract + /staking/chains/{chainDescriptor}/claim_rewards: + post: + description: "Claims available staking rewards for the specified chain and vault.\ + \ Supported chains: Solana and Polygon (POL/Matic). Behavior depends on protocol\ + \ reward distribution." + operationId: claimRewards parameters: - - description: The blockchain base assetId - example: ETH_TEST3 + - description: "Protocol identifier for the claim rewards staking operation\ + \ (e.g., POL/MATIC/SOL)." + example: SOL explode: false in: path - name: baseAssetId + name: chainDescriptor required: true schema: + enum: + - SOL + - SOL_TEST + - MATIC + - POL + - POL_TEST type: string style: simple - - description: The contract address - example: 0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66 + - 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: path - name: contractAddress - required: true - schema: - type: string - style: simple - - description: Optional filter to get balance for a specific account address - explode: true - in: query - name: accountAddress - required: false - schema: - example: 0x1234567890abcdef1234567890abcdef12345678 - type: string - style: form - - description: Page cursor to get the next page" - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor + in: header + name: Idempotency-Key required: false schema: type: string - style: form - - description: "Number of items per page (max 100), requesting more then 100\ - \ will return 100 items" - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Sorting field for balances - explode: true - in: query - name: sortBy - required: false + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ClaimRewardsRequest" + required: true + responses: + "201": + description: Claim-rewards request accepted and created. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Claim accrued rewards + tags: + - Staking + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.staking.claimRewards(stakingApiClaimRewardsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.staking().claimRewards(claimRewardsRequest,\ + \ chainDescriptor, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.staking.claim_rewards(claim_rewards_request,\ + \ chain_descriptor, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.staking.claimRewards(stakingApiClaimRewardsRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.staking().claimRewards(claimRewardsRequest,\ + \ chainDescriptor, idempotencyKey);" + - lang: Python + source: "response = fireblocks.staking.claim_rewards(claim_rewards_request,\ + \ chain_descriptor, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /staking/chains/{chainDescriptor}/consolidate: + post: + description: |- + Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same vault account (i.e. same withdrawal credentials). On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only. + Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: consolidate + parameters: + - description: "Protocol identifier for the staking operation (e.g., ETH)." + example: ETH + explode: false + in: path + name: chainDescriptor + required: true schema: - default: blockTimestamp enum: - - accountAddress - - blockTimestamp + - ETH + - ETH_TEST6 + - ETH_TEST_HOODI type: string - style: form - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order + 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: - default: DESC - enum: - - ASC - - DESC type: string - style: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/MergeStakeAccountsRequest" + required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/AddressBalancePagedResponse-2" - description: Successfully retrieved the latest balances for the contract + $ref: "#/components/schemas/MergeStakeAccountsResponse" + description: Merge request accepted and created. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get latest balances for all addresses holding tokens from a contract + summary: Consolidate staking positions (ETH validator consolidation) tags: - - Onchain Data - x-rate-limit-category: read + - Staking + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.onchainData.getLatestBalancesForContract(onchainDataApiGetLatestBalancesForContractRequest);" + code: "const response: Promise>\ + \ = fireblocks.staking.consolidate(stakingApiConsolidateRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.onchainData().getLatestBalancesForContract(baseAssetId,\ - \ contractAddress, accountAddress, pageCursor, pageSize, sortBy, order);" + code: "CompletableFuture> response\ + \ = fireblocks.staking().consolidate(mergeStakeAccountsRequest, chainDescriptor,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.onchain_data.get_latest_balances_for_contract(base_asset_id,\ - \ contract_address, account_address, page_cursor, page_size, sort_by,\ - \ order);" + code: "response = fireblocks.staking.consolidate(merge_stake_accounts_request,\ + \ chain_descriptor, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.onchainData.getLatestBalancesForContract(onchainDataApiGetLatestBalancesForContractRequest);" + source: "const response: Promise>\ + \ = fireblocks.staking.consolidate(stakingApiConsolidateRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.onchainData().getLatestBalancesForContract(baseAssetId, contractAddress,\ - \ accountAddress, pageCursor, pageSize, sortBy, order);" + source: "CompletableFuture> response\ + \ = fireblocks.staking().consolidate(mergeStakeAccountsRequest, chainDescriptor,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.onchain_data.get_latest_balances_for_contract(base_asset_id,\ - \ contract_address, account_address, page_cursor, page_size, sort_by, order);" + source: "response = fireblocks.staking.consolidate(merge_stake_accounts_request,\ + \ chain_descriptor, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /staking/chains: - get: + /staking/chains/{chainDescriptor}/merge: + post: description: |- - Returns an alphabetical list of blockchains supported for staking by the current workspace context. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: getChains + Merges the source stake account into the destination, consolidating the balance into the destination and closing the source account once complete. Both accounts must be from the same validator provider and of same vault account.. Supported chains: Solana (SOL). + Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: mergeStakeAccounts + parameters: + - description: "Protocol identifier for the merge staking operation (e.g., SOL)." + example: SOL + explode: false + in: path + name: chainDescriptor + required: true + schema: + enum: + - SOL + - SOL_TEST + 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\ + \ 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/MergeStakeAccountsRequest" + required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/StakingGetChainsResponse" - description: An array of supported chains was returned successfully. + $ref: "#/components/schemas/MergeStakeAccountsResponse" + description: Merge request accepted and created. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/StakingErrorSchema" + description: "Bad request: missing/invalid fields, unsupported amount, or\ + \ malformed payload." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -20327,55 +20602,82 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List supported staking chains + summary: Merge staking positions tags: - Staking - x-rate-limit-category: query + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.staking.getChains();" + code: "const response: Promise>\ + \ = fireblocks.staking.mergeStakeAccounts(stakingApiMergeStakeAccountsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = fireblocks.staking().getChains(); + code: "CompletableFuture> response\ + \ = fireblocks.staking().mergeStakeAccounts(mergeStakeAccountsRequest,\ + \ chainDescriptor, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.staking.get_chains(); + code: "response = fireblocks.staking.merge_stake_accounts(merge_stake_accounts_request,\ + \ chain_descriptor, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.staking.getChains();" + source: "const response: Promise>\ + \ = fireblocks.staking.mergeStakeAccounts(stakingApiMergeStakeAccountsRequest);" - lang: Java - source: CompletableFuture>> response = fireblocks.staking().getChains(); + source: "CompletableFuture> response\ + \ = fireblocks.staking().mergeStakeAccounts(mergeStakeAccountsRequest, chainDescriptor,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.staking.get_chains(); + source: "response = fireblocks.staking.merge_stake_accounts(merge_stake_accounts_request,\ + \ chain_descriptor, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /staking/chains/{chainDescriptor}/chainInfo: - get: - description: "Returns chain-specific staking information such as epoch/slot\ - \ cadence, lockup or unbonding periods, fee/reward mechanics, and other operational\ - \ constraints." - operationId: getChainInfo + /staking/chains/{chainDescriptor}/split: + post: + description: "Splits a staking position by creating a new stake account with\ + \ the requested amount, while keeping the original account with the remaining\ + \ balance. Supported chains: Solana (SOL)." + operationId: split parameters: - - description: "Protocol identifier for the chain info staking operation (e.g.,\ - \ ETH/MATIC/SOL)." + - description: "Protocol identifier for the staking operation (e.g., SOL)." + example: SOL explode: false in: path name: chainDescriptor required: true schema: - $ref: "#/components/schemas/ChainDescriptor" + enum: + - SOL + - SOL_TEST + 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\ + \ 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/SplitRequest" + required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/ChainInfoResponse" - description: Chain-specific staking information returned successfully. + $ref: "#/components/schemas/SplitResponse" + description: Split request accepted and created. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -20429,30 +20731,33 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get chain-level staking parameters + summary: Split a staking position tags: - Staking - x-rate-limit-category: query + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.staking.getChainInfo(stakingApiGetChainInfoRequest);" + code: "const response: Promise> = fireblocks.staking.split(stakingApiSplitRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.staking().getChainInfo(chainDescriptor); + code: "CompletableFuture> response = fireblocks.staking().split(splitRequest,\ + \ chainDescriptor, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.staking.get_chain_info(chain_descriptor); + code: "response = fireblocks.staking.split(split_request, chain_descriptor,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.staking.getChainInfo(stakingApiGetChainInfoRequest);" + source: "const response: Promise> = fireblocks.staking.split(stakingApiSplitRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.staking().getChainInfo(chainDescriptor); + source: "CompletableFuture> response = fireblocks.staking().split(splitRequest,\ + \ chainDescriptor, idempotencyKey);" - lang: Python - source: response = fireblocks.staking.get_chain_info(chain_descriptor); + source: "response = fireblocks.staking.split(split_request, chain_descriptor,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json /staking/chains/{chainDescriptor}/stake: @@ -20817,174 +21122,40 @@ paths: x-content-type: application/json x-accepts: - application/json - /staking/chains/{chainDescriptor}/claim_rewards: - post: - description: "Claims available staking rewards for the specified chain and vault.\ - \ Supported chains: Solana and Polygon (POL/Matic). Behavior depends on protocol\ - \ reward distribution." - operationId: claimRewards - parameters: - - description: "Protocol identifier for the claim rewards staking operation\ - \ (e.g., POL/MATIC/SOL)." - example: SOL - explode: false - in: path - name: chainDescriptor - required: true - schema: - enum: - - SOL - - SOL_TEST - - MATIC - - POL - - POL_TEST - 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\ - \ 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/ClaimRewardsRequest" - required: true - responses: - "201": - description: Claim-rewards request accepted and created. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/StakingErrorSchema" - 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/StakingErrorSchema" - 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/StakingErrorSchema" - 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/StakingErrorSchema" - 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/StakingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Claim accrued rewards - tags: - - Staking - x-rate-limit-category: write - x-readme: - code-samples: - - language: typescript - code: "const response: Promise> = fireblocks.staking.claimRewards(stakingApiClaimRewardsRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response = fireblocks.staking().claimRewards(claimRewardsRequest,\ - \ chainDescriptor, idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.staking.claim_rewards(claim_rewards_request,\ - \ chain_descriptor, idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> = fireblocks.staking.claimRewards(stakingApiClaimRewardsRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.staking().claimRewards(claimRewardsRequest,\ - \ chainDescriptor, idempotencyKey);" - - lang: Python - source: "response = fireblocks.staking.claim_rewards(claim_rewards_request,\ - \ chain_descriptor, idempotency_key);" - x-content-type: application/json - x-accepts: - - application/json - /staking/chains/{chainDescriptor}/split: - post: - description: "Splits a staking position by creating a new stake account with\ - \ the requested amount, while keeping the original account with the remaining\ - \ balance. Supported chains: Solana (SOL)." - operationId: split + /staking/positions: + get: + description: |- + Returns all staking positions with core details: amounts, rewards, status, chain, and vault. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: getAllDelegations parameters: - - description: "Protocol identifier for the staking operation (e.g., SOL)." - example: SOL - explode: false - in: path + - description: "Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA).\ + \ If omitted, positions across all supported chains are returned." + explode: true + in: query name: chainDescriptor - required: true - schema: - enum: - - SOL - - SOL_TEST - 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\ - \ 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/SplitRequest" - required: true + $ref: "#/components/schemas/ChainDescriptor" + style: form + - description: Filter positions by vault account ID. + explode: true + in: query + name: vaultAccountId + required: false + schema: + example: "1" + format: numeric + type: string + x-fb-entity: vault_account + style: form responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/SplitResponse" - description: Split request accepted and created. + $ref: "#/components/schemas/StakingGetAllDelegationsResponse" + description: Positions retrieved successfully. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -21038,78 +21209,109 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Split a staking position + summary: List staking positions tags: - Staking - x-rate-limit-category: write + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.staking.split(stakingApiSplitRequest);" + code: "const response: Promise>\ + \ = fireblocks.staking.getAllDelegations(stakingApiGetAllDelegationsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.staking().split(splitRequest,\ - \ chainDescriptor, idempotencyKey);" + code: "CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor,\ + \ vaultAccountId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.staking.split(split_request, chain_descriptor,\ - \ idempotency_key);" + code: "response = fireblocks.staking.get_all_delegations(chain_descriptor,\ + \ vault_account_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.staking.split(stakingApiSplitRequest);" + source: "const response: Promise>\ + \ = fireblocks.staking.getAllDelegations(stakingApiGetAllDelegationsRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.staking().split(splitRequest,\ - \ chainDescriptor, idempotencyKey);" + source: "CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor,\ + \ vaultAccountId);" - lang: Python - source: "response = fireblocks.staking.split(split_request, chain_descriptor,\ - \ idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.staking.get_all_delegations(chain_descriptor,\ + \ vault_account_id);" x-accepts: - application/json - /staking/chains/{chainDescriptor}/merge: - post: + /staking/positions_paginated: + get: description: |- - Merges the source stake account into the destination, consolidating the balance into the destination and closing the source account once complete. Both accounts must be from the same validator provider and of same vault account.. Supported chains: Solana (SOL). - Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: mergeStakeAccounts + Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: getPositions parameters: - - description: "Protocol identifier for the merge staking operation (e.g., SOL)." - example: SOL - explode: false - in: path + - description: "Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA).\ + \ If omitted, positions across all supported chains are returned." + explode: true + in: query name: chainDescriptor + required: false + schema: + $ref: "#/components/schemas/ChainDescriptor" + style: form + - description: "Filter positions by Fireblocks vault account ID. If omitted,\ + \ positions across all vault accounts are returned." + example: "10" + explode: true + in: query + name: vaultAccountId + required: false + schema: + format: numeric + type: string + x-fb-entity: vault_account + style: form + - description: "Number of results per page. When provided, the response returns\ + \ a paginated object with {data, next}. If omitted, all results are returned\ + \ as an array." + explode: true + in: query + name: pageSize required: true schema: - enum: - - SOL - - SOL_TEST + default: 10 + example: 10 + format: int32 + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Cursor for the next page of results. Use the value from the 'next' + field in the previous response. + explode: true + in: query + name: pageCursor + required: false + schema: + example: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 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\ - \ same response as the first request. The idempotency key is valid for 24\ - \ hours." - explode: false - in: header - name: Idempotency-Key + style: form + - description: ASC / DESC ordering (default DESC) + explode: true + in: query + name: order required: false schema: + default: DESC + enum: + - ASC + - DESC + example: ASC type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/MergeStakeAccountsRequest" - required: true + style: form responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/MergeStakeAccountsResponse" - description: Merge request accepted and created. + $ref: "#/components/schemas/StakingPositionsPaginatedResponse" + description: Positions retrieved successfully with pagination. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -21163,84 +21365,59 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Merge staking positions + summary: List staking positions (Paginated) tags: - Staking - x-rate-limit-category: write + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.staking.mergeStakeAccounts(stakingApiMergeStakeAccountsRequest);" + code: "const response: Promise>\ + \ = fireblocks.staking.getPositions(stakingApiGetPositionsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.staking().mergeStakeAccounts(mergeStakeAccountsRequest,\ - \ chainDescriptor, idempotencyKey);" + code: "CompletableFuture>\ + \ response = fireblocks.staking().getPositions(pageSize, chainDescriptor,\ + \ vaultAccountId, pageCursor, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.staking.merge_stake_accounts(merge_stake_accounts_request,\ - \ chain_descriptor, idempotency_key);" + code: "response = fireblocks.staking.get_positions(page_size, chain_descriptor,\ + \ vault_account_id, page_cursor, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.staking.mergeStakeAccounts(stakingApiMergeStakeAccountsRequest);" + source: "const response: Promise>\ + \ = fireblocks.staking.getPositions(stakingApiGetPositionsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.staking().mergeStakeAccounts(mergeStakeAccountsRequest, chainDescriptor,\ - \ idempotencyKey);" + source: "CompletableFuture>\ + \ response = fireblocks.staking().getPositions(pageSize, chainDescriptor,\ + \ vaultAccountId, pageCursor, order);" - lang: Python - source: "response = fireblocks.staking.merge_stake_accounts(merge_stake_accounts_request,\ - \ chain_descriptor, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.staking.get_positions(page_size, chain_descriptor,\ + \ vault_account_id, page_cursor, order);" x-accepts: - application/json - /staking/chains/{chainDescriptor}/consolidate: - post: - description: |- - Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same vault account (i.e. same withdrawal credentials). On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only. - Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: consolidate + /staking/positions/{id}: + get: + description: "Returns full details for a single staking position: amounts, rewards,\ + \ status, chain, and vault." + operationId: getDelegationById parameters: - - description: "Protocol identifier for the staking operation (e.g., ETH)." - example: ETH + - description: Unique identifier of the staking position. explode: false in: path - name: chainDescriptor + name: id required: true - schema: - enum: - - ETH - - ETH_TEST6 - - ETH_TEST_HOODI - 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\ - \ 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/MergeStakeAccountsRequest" - required: true responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/MergeStakeAccountsResponse" - description: Merge request accepted and created. + $ref: "#/components/schemas/Delegation" + description: Position retrieved successfully. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -21294,73 +21471,90 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Consolidate staking positions (ETH validator consolidation) + summary: Get position details tags: - Staking - x-rate-limit-category: write + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.staking.consolidate(stakingApiConsolidateRequest);" + code: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.staking().consolidate(mergeStakeAccountsRequest, chainDescriptor,\ - \ idempotencyKey);" + code: CompletableFuture> response = fireblocks.staking().getDelegationById(id); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.staking.consolidate(merge_stake_accounts_request,\ - \ chain_descriptor, idempotency_key);" + code: response = fireblocks.staking.get_delegation_by_id(id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.staking.consolidate(stakingApiConsolidateRequest);" + source: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.staking().consolidate(mergeStakeAccountsRequest, chainDescriptor,\ - \ idempotencyKey);" + source: CompletableFuture> response = fireblocks.staking().getDelegationById(id); - lang: Python - source: "response = fireblocks.staking.consolidate(merge_stake_accounts_request,\ - \ chain_descriptor, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.staking.get_delegation_by_id(id); x-accepts: - application/json - /staking/positions: + /staking/positions/{id}/related_transactions: get: - description: |- - Returns all staking positions with core details: amounts, rewards, status, chain, and vault. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: getAllDelegations + description: Returns enriched transaction history for a staking position with + cursor-based pagination. Includes in-flight transactions with status pending. + The in-flight transaction is always returned first; completed and failed history + is ordered by the order parameter. + operationId: getPositionRelatedTransactions parameters: - - description: "Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA).\ - \ If omitted, positions across all supported chains are returned." + - description: Unique identifier of the staking position. + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: "Number of results per page (minimum: 1, maximum: 100)." explode: true in: query - name: chainDescriptor + name: pageSize + required: true + schema: + example: 10 + format: int32 + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Cursor for the next page of results. Use the value from the 'next' + field in the previous response. + explode: true + in: query + name: pageCursor required: false schema: - $ref: "#/components/schemas/ChainDescriptor" + example: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 + type: string style: form - - description: Filter positions by vault account ID. + - description: ASC / DESC ordering for completed/failed history (default DESC). + The in-flight transaction is always returned first. explode: true in: query - name: vaultAccountId + name: order required: false schema: - example: "1" - format: numeric + default: DESC + enum: + - ASC + - DESC + example: ASC type: string - x-fb-entity: vault_account style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/StakingGetAllDelegationsResponse" - description: Positions retrieved successfully. + $ref: "#/components/schemas/StakingPositionRelatedTransactionsPaginatedResponse" + description: Paginated list of related transactions for the position returned + successfully. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -21414,119 +21608,187 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List staking positions + summary: List related transactions for a position tags: - Staking x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.staking.getAllDelegations(stakingApiGetAllDelegationsRequest);" + code: "const response: Promise>\ + \ = fireblocks.staking.getPositionRelatedTransactions(stakingApiGetPositionRelatedTransactionsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor,\ - \ vaultAccountId);" + code: "CompletableFuture>\ + \ response = fireblocks.staking().getPositionRelatedTransactions(id, pageSize,\ + \ pageCursor, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.staking.get_all_delegations(chain_descriptor,\ - \ vault_account_id);" + code: "response = fireblocks.staking.get_position_related_transactions(id,\ + \ page_size, page_cursor, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.staking.getAllDelegations(stakingApiGetAllDelegationsRequest);" + source: "const response: Promise>\ + \ = fireblocks.staking.getPositionRelatedTransactions(stakingApiGetPositionRelatedTransactionsRequest);" - lang: Java - source: "CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor,\ - \ vaultAccountId);" + source: "CompletableFuture>\ + \ response = fireblocks.staking().getPositionRelatedTransactions(id, pageSize,\ + \ pageCursor, order);" - lang: Python - source: "response = fireblocks.staking.get_all_delegations(chain_descriptor,\ - \ vault_account_id);" + source: "response = fireblocks.staking.get_position_related_transactions(id,\ + \ page_size, page_cursor, order);" x-accepts: - application/json - /staking/positions_paginated: + /staking/positions/summary: get: - description: |- - Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: getPositions - parameters: - - description: "Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA).\ - \ If omitted, positions across all supported chains are returned." - explode: true - in: query - name: chainDescriptor - required: false - schema: - $ref: "#/components/schemas/ChainDescriptor" - style: form - - description: "Filter positions by Fireblocks vault account ID. If omitted,\ - \ positions across all vault accounts are returned." - example: "10" - explode: true - in: query - name: vaultAccountId - required: false - schema: - format: numeric - type: string - x-fb-entity: vault_account - style: form - - description: "Number of results per page. When provided, the response returns\ - \ a paginated object with {data, next}. If omitted, all results are returned\ - \ as an array." - explode: true - in: query - name: pageSize - required: true - schema: - default: 10 - example: 10 - format: int32 - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Cursor for the next page of results. Use the value from the 'next' - field in the previous response. - explode: true - in: query - name: pageCursor - required: false - schema: - example: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 - type: string - style: form - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order - required: false - schema: - default: DESC - enum: - - ASC - - DESC - example: ASC - type: string - style: form + description: "Returns an aggregated cross-vault summary: active/inactive counts,\ + \ total staked, and total rewards per chain." + operationId: getSummary responses: "200": content: application/json: + example: + active: + - chainDescriptor: ETH + amount: "64.036604667" + - chainDescriptor: SOL + amount: "0.077345939" + inactive: + - chainDescriptor: ETH + amount: "0" + - chainDescriptor: SOL + amount: "0" + rewardsAmount: + - chainDescriptor: ETH + amount: "0.036604667" + - chainDescriptor: SOL + amount: "0.001345939" + totalStaked: + - chainDescriptor: ETH + amount: "64.036604667" + - chainDescriptor: SOL + amount: "0.077345939" schema: - $ref: "#/components/schemas/StakingPositionsPaginatedResponse" - description: Positions retrieved successfully with pagination. + $ref: "#/components/schemas/DelegationSummary" + description: Summary across all vaults returned successfully. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "400": + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + 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/StakingErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get positions summary + tags: + - Staking + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> =\ + \ fireblocks.staking.getSummary();" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.staking().getSummary(); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.staking.get_summary(); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> =\ + \ fireblocks.staking.getSummary();" + - lang: Java + source: CompletableFuture> response = fireblocks.staking().getSummary(); + - lang: Python + source: response = fireblocks.staking.get_summary(); + x-accepts: + - application/json + /staking/positions/summary/vaults: + get: + description: "Returns per-vault aggregates: status breakdown, total staked,\ + \ and total rewards per chain." + operationId: getSummaryByVault + responses: + "200": content: application/json: + example: + "0": + active: + - chainDescriptor: SOL + amount: "0.015202376" + inactive: + - chainDescriptor: SOL + amount: "0" + rewardsAmount: + - chainDescriptor: SOL + amount: "0.000202376" + totalStaked: + - chainDescriptor: SOL + amount: "0.015202376" + "1": + active: + - chainDescriptor: ETH + amount: "64.036604667" + - chainDescriptor: SOL + amount: "0.011191566" + inactive: + - chainDescriptor: ETH + amount: "0" + - chainDescriptor: SOL + amount: "0" + rewardsAmount: + - chainDescriptor: ETH + amount: "0.036604667" + - chainDescriptor: SOL + amount: "0.000191566" + totalStaked: + - chainDescriptor: ETH + amount: "64.036604667" + - chainDescriptor: SOL + amount: "0.011191566" schema: - $ref: "#/components/schemas/StakingErrorSchema" - description: "Bad request: missing/invalid fields, unsupported amount, or\ - \ malformed payload." + $ref: "#/components/schemas/StakingGetSummaryByVaultResponse" + description: Per-vault summary returned successfully. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -21570,71 +21832,47 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List staking positions (Paginated) + 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.getPositions(stakingApiGetPositionsRequest);" + code: "const response: Promise>\ + \ = fireblocks.staking.getSummaryByVault();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.staking().getPositions(pageSize, chainDescriptor,\ - \ vaultAccountId, pageCursor, order);" + code: CompletableFuture> response + = fireblocks.staking().getSummaryByVault(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.staking.get_positions(page_size, chain_descriptor,\ - \ vault_account_id, page_cursor, order);" + code: response = fireblocks.staking.get_summary_by_vault(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.staking.getPositions(stakingApiGetPositionsRequest);" + source: "const response: Promise>\ + \ = fireblocks.staking.getSummaryByVault();" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.staking().getPositions(pageSize, chainDescriptor,\ - \ vaultAccountId, pageCursor, order);" + source: CompletableFuture> response + = fireblocks.staking().getSummaryByVault(); - lang: Python - source: "response = fireblocks.staking.get_positions(page_size, chain_descriptor,\ - \ vault_account_id, page_cursor, order);" + source: response = fireblocks.staking.get_summary_by_vault(); x-accepts: - application/json - /staking/positions/summary: + /staking/providers: get: - description: "Returns an aggregated cross-vault summary: active/inactive counts,\ - \ total staked, and total rewards per chain." - operationId: getSummary + 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: - example: - active: - - chainDescriptor: ETH - amount: "64.036604667" - - chainDescriptor: SOL - amount: "0.077345939" - inactive: - - chainDescriptor: ETH - amount: "0" - - chainDescriptor: SOL - amount: "0" - rewardsAmount: - - chainDescriptor: ETH - amount: "0.036604667" - - chainDescriptor: SOL - amount: "0.001345939" - totalStaked: - - chainDescriptor: ETH - amount: "64.036604667" - - chainDescriptor: SOL - amount: "0.077345939" schema: - $ref: "#/components/schemas/DelegationSummary" - description: Summary across all vaults returned successfully. + $ref: "#/components/schemas/StakingGetProvidersResponse" + description: Supported providers retrieved successfully. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -21678,79 +21916,70 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get positions summary + summary: List staking providers tags: - Staking x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.staking.getSummary();" + code: "const response: Promise>\ + \ = fireblocks.staking.getProviders();" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.staking().getSummary(); + code: CompletableFuture>> response = fireblocks.staking().getProviders(); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.staking.get_summary(); + code: response = fireblocks.staking.get_providers(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.staking.getSummary();" + source: "const response: Promise>\ + \ = fireblocks.staking.getProviders();" - lang: Java - source: CompletableFuture> response = fireblocks.staking().getSummary(); + source: CompletableFuture>> response = fireblocks.staking().getProviders(); - lang: Python - source: response = fireblocks.staking.get_summary(); + source: response = fireblocks.staking.get_providers(); x-accepts: - application/json - /staking/positions/summary/vaults: - get: - description: "Returns per-vault aggregates: status breakdown, total staked,\ - \ and total rewards per chain." - operationId: getSummaryByVault + /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: - "200": + "201": + description: Terms of service accepted. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": content: application/json: - example: - "0": - active: - - chainDescriptor: SOL - amount: "0.015202376" - inactive: - - chainDescriptor: SOL - amount: "0" - rewardsAmount: - - chainDescriptor: SOL - amount: "0.000202376" - totalStaked: - - chainDescriptor: SOL - amount: "0.015202376" - "1": - active: - - chainDescriptor: ETH - amount: "64.036604667" - - chainDescriptor: SOL - amount: "0.011191566" - inactive: - - chainDescriptor: ETH - amount: "0" - - chainDescriptor: SOL - amount: "0" - rewardsAmount: - - chainDescriptor: ETH - amount: "0.036604667" - - chainDescriptor: SOL - amount: "0.000191566" - totalStaked: - - chainDescriptor: ETH - amount: "64.036604667" - - chainDescriptor: SOL - amount: "0.011191566" schema: - $ref: "#/components/schemas/StakingGetSummaryByVaultResponse" - description: Per-vault summary returned successfully. + $ref: "#/components/schemas/StakingErrorSchema" + description: "Bad request: missing/invalid fields, unsupported amount, or\ + \ malformed payload." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -21794,46 +22023,382 @@ paths: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get positions summary by vault + 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 + /tags: + get: + description: Retrieve a paged list of all tags according to filters. + operationId: getTags + parameters: + - description: Page cursor to get the next page. + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: Maximum number of items in the page + explode: true + in: query + name: pageSize + required: false + schema: + default: 100 + maximum: 100 + minimum: 1 + type: number + style: form + - description: Label prefix to filter by. + example: VIP + explode: true + in: query + name: label + required: false + schema: + type: string + style: form + - description: List of tag IDs to filter by. + explode: true + in: query + name: tagIds + required: false + schema: + items: + format: uuid + type: string + maxItems: 100 + type: array + style: form + - description: Whether to include pending approval requests info. + explode: true + in: query + name: includePendingApprovalsInfo + required: false + schema: + default: false + type: boolean + style: form + - explode: true + in: query + name: isProtected + required: false + schema: + type: boolean + style: form + - description: Filter by tag type + explode: true + in: query + name: type + required: false + schema: + items: + $ref: "#/components/schemas/TagType" + type: array + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/TagsPagedResponse" + description: Tags fetched successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: Get list of tags + tags: + - Tags x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.staking.getSummaryByVault();" + code: "const response: Promise> =\ + \ fireblocks.tags.getTags(tagsApiGetTagsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.staking().getSummaryByVault(); + code: "CompletableFuture> response = fireblocks.tags().getTags(pageCursor,\ + \ pageSize, label, tagIds, includePendingApprovalsInfo, isProtected, type);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.tags.get_tags(page_cursor, page_size, label,\ + \ tag_ids, include_pending_approvals_info, is_protected, type);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> =\ + \ fireblocks.tags.getTags(tagsApiGetTagsRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.tags().getTags(pageCursor,\ + \ pageSize, label, tagIds, includePendingApprovalsInfo, isProtected, type);" + - lang: Python + source: "response = fireblocks.tags.get_tags(page_cursor, page_size, label,\ + \ tag_ids, include_pending_approvals_info, is_protected, type);" + x-accepts: + - application/json + post: + description: |- + Create a new tag. + Endpoint Permissions: For protected tags: ADMIN,NON_SIGNING_ADMIN,OWNER. For non protected tags: ADMIN,NON_SIGNING_ADMIN,OWNER,SIGNER,EDITOR,APPROVER. + operationId: createTag + 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/CreateTagRequest" + required: true + responses: + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/Tag" + description: Tag created successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: Create a new tag + tags: + - Tags + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.tags.createTag(tagsApiCreateTagRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.tags().createTag(createTagRequest,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.tags.create_tag(create_tag_request, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.tags.createTag(tagsApiCreateTagRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.tags().createTag(createTagRequest,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.tags.create_tag(create_tag_request, idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /tags/{tagId}: + delete: + description: |- + Delete the specified tag. + Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. + operationId: deleteTag + parameters: + - description: The ID of the tag to retrieve + explode: false + in: path + name: tagId + required: true + schema: + format: uuid + type: string + style: simple + responses: + "204": + description: Tag was deleted successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: Delete a tag + tags: + - Tags + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.tags.deleteTag(tagsApiDeleteTagRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.tags().deleteTag(tagId); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.tags.delete_tag(tag_id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.tags.deleteTag(tagsApiDeleteTagRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.tags().deleteTag(tagId); + - lang: Python + source: response = fireblocks.tags.delete_tag(tag_id); + x-accepts: + - application/json + get: + description: Retrieve an existing tag by ID. + operationId: getTag + parameters: + - description: The ID of the tag to retrieve + explode: false + in: path + name: tagId + required: true + schema: + format: uuid + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/Tag" + description: A tag object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: Get a tag + tags: + - Tags + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.tags.getTag(tagsApiGetTagRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.tags().getTag(tagId); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.tags.get_tag(tag_id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.tags.getTag(tagsApiGetTagRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.tags().getTag(tagId); + - lang: Python + source: response = fireblocks.tags.get_tag(tag_id); + x-accepts: + - application/json + patch: + description: |- + Update an existing specified tag. + Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. + operationId: updateTag + parameters: + - description: The ID of the tag to update + explode: false + in: path + name: tagId + required: true + schema: + format: uuid + 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\ + \ 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/UpdateTagRequest" + required: true + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/Tag" + description: A tag object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: Update a tag + tags: + - Tags + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.tags.updateTag(tagsApiUpdateTagRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.tags().updateTag(updateTagRequest,\ + \ tagId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.staking.get_summary_by_vault(); + code: "response = fireblocks.tags.update_tag(update_tag_request, tag_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.staking.getSummaryByVault();" + source: "const response: Promise> = fireblocks.tags.updateTag(tagsApiUpdateTagRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.staking().getSummaryByVault(); + source: "CompletableFuture> response = fireblocks.tags().updateTag(updateTagRequest,\ + \ tagId, idempotencyKey);" - lang: Python - source: response = fireblocks.staking.get_summary_by_vault(); + source: "response = fireblocks.tags.update_tag(update_tag_request, tag_id,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /staking/positions/{id}: + /tags/approval_requests/{id}: get: - description: "Returns full details for a single staking position: amounts, rewards,\ - \ status, chain, and vault." - operationId: getDelegationById + description: Get an approval request by id + operationId: getApprovalRequest parameters: - - description: Unique identifier of the staking position. - explode: false + - explode: false in: path name: id required: true schema: + example: "12345" + format: numeric type: string style: simple responses: @@ -21841,28 +22406,17 @@ paths: 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/StakingErrorSchema" - description: "Bad request: missing/invalid fields, unsupported amount, or\ - \ malformed payload." + $ref: "#/components/schemas/ApprovalRequest" + description: Approval request fetched successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "403": + "401": content: application/json: schema: - $ref: "#/components/schemas/StakingErrorSchema" - description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted provider/validator." + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -21870,65 +22424,45 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/StakingErrorSchema" - 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/StakingErrorSchema" - 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/StakingErrorSchema" - description: Internal error while processing the request. + $ref: "#/components/schemas/ErrorResponse" + description: Approval request not found headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get position details + summary: Get an approval request by id tags: - - Staking - x-rate-limit-category: query + - Tags + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);" + code: "const response: Promise> = fireblocks.tags.getApprovalRequest(tagsApiGetApprovalRequestRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.staking().getDelegationById(id); + code: CompletableFuture> response = fireblocks.tags().getApprovalRequest(id); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.staking.get_delegation_by_id(id); + code: response = fireblocks.tags.get_approval_request(id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.staking.getDelegationById(stakingApiGetDelegationByIdRequest);" + source: "const response: Promise> = fireblocks.tags.getApprovalRequest(tagsApiGetApprovalRequestRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.staking().getDelegationById(id); + source: CompletableFuture> response = fireblocks.tags().getApprovalRequest(id); - lang: Python - source: response = fireblocks.staking.get_delegation_by_id(id); + source: response = fireblocks.tags.get_approval_request(id); x-accepts: - application/json - /staking/positions/{id}/related_transactions: + /tokenization/access_registries/{id}/addresses: get: - description: Returns enriched transaction history for a staking position with - cursor-based pagination. Includes in-flight transactions with status pending. - The in-flight transaction is always returned first; completed and failed history - is ordered by the order parameter. - operationId: getPositionRelatedTransactions + description: Returns the currently active addresses in the access registry (added + but not removed). + operationId: getTokenAccessRegistryAddresses parameters: - - description: Unique identifier of the staking position. + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb explode: false in: path name: id @@ -21936,30 +22470,40 @@ paths: schema: type: string style: simple - - description: "Number of results per page (minimum: 1, maximum: 100)." + - description: Page cursor to get the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: "Number of items per page (max 100), requesting more than 100\ + \ will return 100 items" + example: 10 explode: true in: query name: pageSize - required: true + required: false schema: - example: 10 - format: int32 maximum: 100 minimum: 1 type: integer style: form - - description: Cursor for the next page of results. Use the value from the 'next' - field in the previous response. + - description: Sorting field (enum). explode: true in: query - name: pageCursor + name: sortBy required: false schema: - example: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 + default: dateAdded + enum: + - dateAdded + - address type: string style: form - - description: ASC / DESC ordering for completed/failed history (default DESC). - The in-flight transaction is always returned first. + - description: ASC / DESC ordering (default DESC) explode: true in: query name: order @@ -21969,7 +22513,6 @@ paths: enum: - ASC - DESC - example: ASC type: string style: form responses: @@ -21977,189 +22520,401 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/StakingPositionRelatedTransactionsPaginatedResponse" - description: Paginated list of related transactions for the position returned - successfully. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/StakingErrorSchema" - 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/StakingErrorSchema" - 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/StakingErrorSchema" - 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/StakingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "500": + $ref: "#/components/schemas/AccessRegistryCurrentStateResponse" + description: Access registry addresses retrieved successfully + default: + $ref: "#/components/responses/Error" + summary: Get current state of addresses in an access registry + tags: + - Tokenization + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenAccessRegistryAddresses(tokenizationApiGetTokenAccessRegistryAddressesRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.tokenization().getTokenAccessRegistryAddresses(id,\ + \ pageCursor, pageSize, sortBy, order);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.tokenization.get_token_access_registry_addresses(id,\ + \ page_cursor, page_size, sort_by, order);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenAccessRegistryAddresses(tokenizationApiGetTokenAccessRegistryAddressesRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.tokenization().getTokenAccessRegistryAddresses(id,\ + \ pageCursor, pageSize, sortBy, order);" + - lang: Python + source: "response = fireblocks.tokenization.get_token_access_registry_addresses(id,\ + \ page_cursor, page_size, sort_by, order);" + x-accepts: + - application/json + /tokenization/access_registries/{id}/summary: + get: + description: Returns a summary of the current state of the access registry. + operationId: getTokenAccessRegistrySummary + parameters: + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": content: application/json: schema: - $ref: "#/components/schemas/StakingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/AccessRegistrySummaryResponse" + description: Access registry summary retrieved successfully default: $ref: "#/components/responses/Error" - summary: List related transactions for a position + summary: Get summary of an access registry tags: - - Staking - x-rate-limit-category: query + - Tokenization + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.staking.getPositionRelatedTransactions(stakingApiGetPositionRelatedTransactionsRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenAccessRegistrySummary(tokenizationApiGetTokenAccessRegistrySummaryRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.staking().getPositionRelatedTransactions(id, pageSize,\ - \ pageCursor, order);" + code: CompletableFuture> response + = fireblocks.tokenization().getTokenAccessRegistrySummary(id); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.staking.get_position_related_transactions(id,\ - \ page_size, page_cursor, order);" + code: response = fireblocks.tokenization.get_token_access_registry_summary(id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.staking.getPositionRelatedTransactions(stakingApiGetPositionRelatedTransactionsRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenAccessRegistrySummary(tokenizationApiGetTokenAccessRegistrySummaryRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.staking().getPositionRelatedTransactions(id, pageSize,\ - \ pageCursor, order);" + source: CompletableFuture> response + = fireblocks.tokenization().getTokenAccessRegistrySummary(id); - lang: Python - source: "response = fireblocks.staking.get_position_related_transactions(id,\ - \ page_size, page_cursor, order);" + source: response = fireblocks.tokenization.get_token_access_registry_summary(id); x-accepts: - application/json - /staking/providers: + /tokenization/collections: 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 + Get collections (paginated). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getLinkedCollections + parameters: + - description: "Page cursor to get the next page, for example - \"MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==\"" + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: "Number of items per page (max 100), requesting more then 100\ + \ will return 100 items" + example: 10 + explode: true + in: query + name: pageSize + required: false + schema: + default: 100 + maximum: 100 + minimum: 1 + type: number + style: form + - description: A comma separated list of statuses to filter. Default is "COMPLETED" + example: COMPLETED + explode: true + in: query + name: status + required: false + schema: {} + style: form 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": + $ref: "#/components/schemas/GetLinkedCollectionsPaginatedResponse" + description: Collection fetched successfully + default: + $ref: "#/components/responses/Error" + summary: Get collections + tags: + - Tokenization + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.tokenization.getLinkedCollections(tokenizationApiGetLinkedCollectionsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.tokenization().getLinkedCollections(pageCursor,\ + \ pageSize, status);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.tokenization.get_linked_collections(page_cursor,\ + \ page_size, status);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.tokenization.getLinkedCollections(tokenizationApiGetLinkedCollectionsRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.tokenization().getLinkedCollections(pageCursor,\ + \ pageSize, status);" + - lang: Python + source: "response = fireblocks.tokenization.get_linked_collections(page_cursor,\ + \ page_size, status);" + x-accepts: + - application/json + post: + description: |- + Create a new collection and link it as a token. + Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor. + operationId: createNewCollection + 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/CollectionDeployRequestDto" + required: true + responses: + "201": content: application/json: schema: - $ref: "#/components/schemas/StakingErrorSchema" - description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted provider/validator." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/CollectionLinkDto" + description: Collection was created successfully + default: + $ref: "#/components/responses/Error" + summary: Create a new collection + tags: + - Tokenization + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> =\ + \ fireblocks.tokenization.createNewCollection(tokenizationApiCreateNewCollectionRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.tokenization().createNewCollection(collectionDeployRequestDto,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.tokenization.create_new_collection(collection_deploy_request_dto,\ + \ idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> =\ + \ fireblocks.tokenization.createNewCollection(tokenizationApiCreateNewCollectionRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.tokenization().createNewCollection(collectionDeployRequestDto,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.tokenization.create_new_collection(collection_deploy_request_dto,\ + \ idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /tokenization/collections/{id}: + delete: + description: Delete a collection link + operationId: unlinkCollection + parameters: + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "204": + description: Collection unlinked successfully "404": + description: Link for collection does not exist + default: + $ref: "#/components/responses/Error" + summary: Delete a collection link + tags: + - Tokenization + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.tokenization.unlinkCollection(tokenizationApiUnlinkCollectionRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.tokenization().unlinkCollection(id); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.tokenization.unlink_collection(id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.tokenization.unlinkCollection(tokenizationApiUnlinkCollectionRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.tokenization().unlinkCollection(id); + - lang: Python + source: response = fireblocks.tokenization.unlink_collection(id); + x-accepts: + - application/json + get: + description: Get a collection by id + operationId: getCollectionById + parameters: + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": content: application/json: schema: - $ref: "#/components/schemas/StakingErrorSchema" - 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/StakingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "500": + $ref: "#/components/schemas/CollectionLinkDto" + description: Collection fetched successfully + default: + $ref: "#/components/responses/Error" + summary: Get a collection by id + tags: + - Tokenization + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> =\ + \ fireblocks.tokenization.getCollectionById(tokenizationApiGetCollectionByIdRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.tokenization().getCollectionById(id); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.tokenization.get_collection_by_id(id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> =\ + \ fireblocks.tokenization.getCollectionById(tokenizationApiGetCollectionByIdRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.tokenization().getCollectionById(id); + - lang: Python + source: response = fireblocks.tokenization.get_collection_by_id(id); + x-accepts: + - application/json + /tokenization/collections/{id}/tokens/{tokenId}: + get: + description: Get collection token details by id + operationId: fetchCollectionTokenDetails + parameters: + - description: The collection link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: The tokenId as it appears on the blockchain + example: "1" + explode: false + in: path + name: tokenId + required: true + schema: + type: string + style: simple + responses: + "200": content: application/json: schema: - $ref: "#/components/schemas/StakingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/CollectionLinkDto" + description: Collection token details were fetched successfully default: $ref: "#/components/responses/Error" - summary: List staking providers + summary: Get collection token details tags: - - Staking - x-rate-limit-category: query + - Tokenization + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.staking.getProviders();" + code: "const response: Promise> =\ + \ fireblocks.tokenization.fetchCollectionTokenDetails(tokenizationApiFetchCollectionTokenDetailsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response = fireblocks.staking().getProviders(); + code: "CompletableFuture> response = fireblocks.tokenization().fetchCollectionTokenDetails(id,\ + \ tokenId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.staking.get_providers(); + code: "response = fireblocks.tokenization.fetch_collection_token_details(id,\ + \ token_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.staking.getProviders();" + source: "const response: Promise> =\ + \ fireblocks.tokenization.fetchCollectionTokenDetails(tokenizationApiFetchCollectionTokenDetailsRequest);" - lang: Java - source: CompletableFuture>> response = fireblocks.staking().getProviders(); + source: "CompletableFuture> response = fireblocks.tokenization().fetchCollectionTokenDetails(id,\ + \ tokenId);" - lang: Python - source: response = fireblocks.staking.get_providers(); + source: "response = fireblocks.tokenization.fetch_collection_token_details(id,\ + \ token_id);" x-accepts: - application/json - /staking/providers/{providerId}/approveTermsOfService: + /tokenization/collections/{id}/tokens/burn: post: - description: Approves the provider's terms of service. Must be called once before - performing any staking operation with this provider. - operationId: approveTermsOfServiceByProviderId + description: Burn tokens in a collection + operationId: burnCollectionToken parameters: - - description: Unique identifier of the staking provider. + - description: The collection link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb explode: false in: path - name: providerId + name: id required: true schema: - $ref: "#/components/schemas/StakingProvider" + 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\ @@ -22172,228 +22927,132 @@ paths: schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CollectionBurnRequestDto" + required: true 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/StakingErrorSchema" - 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/StakingErrorSchema" - 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/StakingErrorSchema" - 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/StakingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "500": + "202": content: application/json: schema: - $ref: "#/components/schemas/StakingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/CollectionBurnResponseDto" + description: Tokens burned successfully default: $ref: "#/components/responses/Error" - summary: Approve provider terms of service + summary: Burn tokens tags: - - Staking + - Tokenization x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.staking.approveTermsOfServiceByProviderId(stakingApiApproveTermsOfServiceByProviderIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.burnCollectionToken(tokenizationApiBurnCollectionTokenRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.staking().approveTermsOfServiceByProviderId(providerId,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().burnCollectionToken(collectionBurnRequestDto,\ + \ id, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.staking.approve_terms_of_service_by_provider_id(provider_id,\ - \ idempotency_key);" + code: "response = fireblocks.tokenization.burn_collection_token(collection_burn_request_dto,\ + \ 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.tokenization.burnCollectionToken(tokenizationApiBurnCollectionTokenRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.staking().approveTermsOfServiceByProviderId(providerId,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().burnCollectionToken(collectionBurnRequestDto,\ + \ id, idempotencyKey);" - lang: Python - source: "response = fireblocks.staking.approve_terms_of_service_by_provider_id(provider_id,\ - \ idempotency_key);" + source: "response = fireblocks.tokenization.burn_collection_token(collection_burn_request_dto,\ + \ id, idempotency_key);" + x-content-type: application/json 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 + /tokenization/collections/{id}/tokens/mint: + post: + description: Mint tokens and upload metadata + operationId: mintCollectionToken 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 + - description: The collection link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + explode: false + in: path + name: id + required: true schema: - enum: - - createdAt - - updatedAt type: string - style: form - - description: Sort order (ASC or DESC). - explode: true - in: query - name: order + 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: - default: DESC - enum: - - ASC - - DESC - example: ASC type: string - style: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CollectionMintRequestDto" + required: true 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": + "202": 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" + $ref: "#/components/schemas/CollectionMintResponseDto" + description: Tokens minted successfully default: $ref: "#/components/responses/Error" - summary: List earn lending actions + summary: Mint tokens tags: - - Earn (Beta) - x-rate-limit-category: query + - Tokenization + x-rate-limit-category: async x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.earnBeta.getEarnActions(earnBetaApiGetEarnActionsRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.mintCollectionToken(tokenizationApiMintCollectionTokenRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.earnBeta().getEarnActions(pageCursor,\ - \ pageSize, sortBy, order);" + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().mintCollectionToken(collectionMintRequestDto,\ + \ id, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.earn_beta.get_earn_actions(page_cursor, page_size,\ - \ sort_by, order);" + code: "response = fireblocks.tokenization.mint_collection_token(collection_mint_request_dto,\ + \ id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.earnBeta.getEarnActions(earnBetaApiGetEarnActionsRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.mintCollectionToken(tokenizationApiMintCollectionTokenRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.earnBeta().getEarnActions(pageCursor,\ - \ pageSize, sortBy, order);" + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().mintCollectionToken(collectionMintRequestDto,\ + \ id, idempotencyKey);" - lang: Python - source: "response = fireblocks.earn_beta.get_earn_actions(page_cursor, page_size,\ - \ sort_by, order);" + source: "response = fireblocks.tokenization.mint_collection_token(collection_mint_request_dto,\ + \ id, idempotency_key);" + x-content-type: application/json 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 + /tokenization/multichain/bridge/layerzero: + delete: + description: Remove LayerZero adapters by deactivating and unlinking them. This + endpoint revokes roles and deactivates the specified adapter contracts. + operationId: deactivateAndUnlinkAdapters 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\ @@ -22410,239 +23069,174 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CreateEarnActionRequest" + $ref: "#/components/schemas/RemoveLayerZeroAdaptersRequest" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/CreateEarnActionResponse" - description: OK - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/RemoveLayerZeroAdaptersResponse" + description: LayerZero adapters removal process completed "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" + $ref: "#/components/responses/BadRequestError" "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" + $ref: "#/components/responses/OriginalTokenLinkNotFoundError" + "409": + $ref: "#/components/responses/TokenLinkProcessingError" "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) + $ref: "#/components/responses/InternalServerError" + summary: Remove LayerZero adapters tags: - - Earn (Beta) + - Tokenization x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: |- + const payload = { + "vaultAccountId": "1", + "adapterTokenLinkIds": ["d290f1ee-6c54-4b01-90e6-d701748f0851", "e290f1ee-6c54-4b01-90e6-d701748f0852"] + } const removeResponse = await fireblocks.deactivateAndUnlinkAdapters(payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.earnBeta.createEarnAction(earnBetaApiCreateEarnActionRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.deactivateAndUnlinkAdapters(tokenizationApiDeactivateAndUnlinkAdaptersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.earnBeta().createEarnAction(createEarnActionRequest, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().deactivateAndUnlinkAdapters(removeLayerZeroAdaptersRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.earn_beta.create_earn_action(create_earn_action_request,\ + code: "response = fireblocks.tokenization.deactivate_and_unlink_adapters(remove_layer_zero_adapters_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.earnBeta.createEarnAction(earnBetaApiCreateEarnActionRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.deactivateAndUnlinkAdapters(tokenizationApiDeactivateAndUnlinkAdaptersRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.earnBeta().createEarnAction(createEarnActionRequest, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().deactivateAndUnlinkAdapters(removeLayerZeroAdaptersRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.earn_beta.create_earn_action(create_earn_action_request,\ + source: "response = fireblocks.tokenization.deactivate_and_unlink_adapters(remove_layer_zero_adapters_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 + post: + description: Deploy LayerZero adapters for multichain token bridging functionality. + This endpoint creates adapter contracts that enable cross-chain token transfers. + operationId: deployAndLinkAdapters parameters: - - description: Action sequence id (UUID). + - 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: path - name: id - required: true + in: header + name: Idempotency-Key + required: false schema: - minLength: 1 type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DeployLayerZeroAdaptersRequest" + required: true 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" + $ref: "#/components/schemas/DeployLayerZeroAdaptersResponse" + description: LayerZero adapters deployed successfully + "400": + $ref: "#/components/responses/BadRequestError" "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" + $ref: "#/components/responses/OriginalTokenLinkNotFoundError" + "409": + $ref: "#/components/responses/TokenLinkPreparationError" + "422": + $ref: "#/components/responses/OriginalTokenLinkNotFungibleError" "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 + $ref: "#/components/responses/InternalServerError" + summary: Deploy LayerZero adapters tags: - - Earn (Beta) - x-rate-limit-category: query + - Tokenization + x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: |- + const payload = { + "vaultAccountId": "0", + "createParams": [{ + "tokenLinkId": "123-432-1234-1234-123456789012", + "delegateAddress": "0xABCDEF123456789abcdef1234567890abcdef12345678", + "defaultAdminAddress": "0xABC123456789abcdef1234567890abcdef12345678", + "pauserAddress": "0xDEFABC123456789abcdef1234567890abcdef12345678" + }], + "displayName": "LayerZero", + "useGasless": true + } const deployResponse = await fireblocks.deployAndLinkAdapters(payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.earnBeta.getEarnAction(earnBetaApiGetEarnActionRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.deployAndLinkAdapters(tokenizationApiDeployAndLinkAdaptersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.earnBeta().getEarnAction(id); + code: "CompletableFuture>> response\ + \ = fireblocks.tokenization().deployAndLinkAdapters(deployLayerZeroAdaptersRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.earn_beta.get_earn_action(id); + code: "response = fireblocks.tokenization.deploy_and_link_adapters(deploy_layer_zero_adapters_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.earnBeta.getEarnAction(earnBetaApiGetEarnActionRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.deployAndLinkAdapters(tokenizationApiDeployAndLinkAdaptersRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.earnBeta().getEarnAction(id); + source: "CompletableFuture>> response\ + \ = fireblocks.tokenization().deployAndLinkAdapters(deployLayerZeroAdaptersRequest,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.earn_beta.get_earn_action(id); + source: "response = fireblocks.tokenization.deploy_and_link_adapters(deploy_layer_zero_adapters_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /earn/opportunities: + /tokenization/multichain/bridge/layerzero/config/{adapterTokenLinkId}/dvns: get: - description: | - Get list of earn opportunities (vaults). - - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: getEarnOpportunities + description: Retrieve the DVN (Data Verification Network) configuration for + a specific adapter. Returns DVN configurations for channels between the source + adapter and its peers. + operationId: getLayerZeroDvnConfig 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 + - description: The token link id of the adapter token link + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d + explode: false + in: path + name: adapterTokenLinkId + required: true schema: + format: uuid type: string - style: form - - description: Sort order (ASC or DESC). + style: simple + - description: Optional peer adapter token link ID to filter results + example: 6add4f2a-b206-4114-8f94-2882618ffbb4 explode: true in: query - name: order + name: peerAdapterTokenLinkId required: false schema: - default: DESC - enum: - - ASC - - DESC - example: ASC + format: uuid type: string style: form responses: @@ -22650,365 +23244,209 @@ paths: 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" + $ref: "#/components/schemas/GetLayerZeroDvnConfigResponse" + description: LayerZero DVN configuration retrieved successfully + "400": + $ref: "#/components/responses/BadRequestError" "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" + $ref: "#/components/responses/OriginalTokenLinkNotFoundError" "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 + $ref: "#/components/responses/InternalServerError" + summary: Get LayerZero DVN configuration tags: - - Earn (Beta) - x-rate-limit-category: query + - Tokenization + x-rate-limit-category: read x-readme: code-samples: + - language: javascript + code: "const adapterTokenLinkId = \"b70701f4-d7b1-4795-a8ee-b09cdb5b850d\"\ + ; const peerAdapterTokenLinkId = \"6add4f2a-b206-4114-8f94-2882618ffbb4\"\ + ; // optional const dvnConfigResponse = await fireblocks.getLayerZeroDvnConfig(adapterTokenLinkId,\ + \ { peerAdapterTokenLinkId });" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.earnBeta.getEarnOpportunities(earnBetaApiGetEarnOpportunitiesRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.getLayerZeroDvnConfig(tokenizationApiGetLayerZeroDvnConfigRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.earnBeta().getEarnOpportunities(pageCursor, pageSize, sortBy,\ - \ order);" + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().getLayerZeroDvnConfig(adapterTokenLinkId,\ + \ peerAdapterTokenLinkId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.earn_beta.get_earn_opportunities(page_cursor,\ - \ page_size, sort_by, order);" + code: "response = fireblocks.tokenization.get_layer_zero_dvn_config(adapter_token_link_id,\ + \ peer_adapter_token_link_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.earnBeta.getEarnOpportunities(earnBetaApiGetEarnOpportunitiesRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.getLayerZeroDvnConfig(tokenizationApiGetLayerZeroDvnConfigRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.earnBeta().getEarnOpportunities(pageCursor, pageSize, sortBy,\ - \ order);" + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().getLayerZeroDvnConfig(adapterTokenLinkId,\ + \ peerAdapterTokenLinkId);" - lang: Python - source: "response = fireblocks.earn_beta.get_earn_opportunities(page_cursor,\ - \ page_size, sort_by, order);" + source: "response = fireblocks.tokenization.get_layer_zero_dvn_config(adapter_token_link_id,\ + \ peer_adapter_token_link_id);" x-accepts: - application/json - /earn/positions: + /tokenization/multichain/bridge/layerzero/config/{adapterTokenLinkId}/peers: get: - 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 + description: Retrieve the LayerZero peers configured for a specific adapter. + Returns information about peer relationships for cross-chain communication. + operationId: getLayerZeroPeers parameters: - - 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: 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 + - description: The token link id of the adapter token link + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d + explode: false + in: path + name: adapterTokenLinkId + required: true schema: - default: DESC - enum: - - ASC - - DESC - example: ASC + format: uuid type: string - style: form + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetPositionsResponse" - 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" + $ref: "#/components/schemas/GetLayerZeroPeersResponse" + description: LayerZero peers retrieved successfully + "400": + $ref: "#/components/responses/BadRequestError" "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" + $ref: "#/components/responses/OriginalTokenLinkNotFoundError" "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 positions + $ref: "#/components/responses/InternalServerError" + summary: Get LayerZero peers tags: - - Earn (Beta) - x-rate-limit-category: query + - Tokenization + x-rate-limit-category: read x-readme: code-samples: + - language: javascript + code: const adapterTokenLinkId = "b70701f4-d7b1-4795-a8ee-b09cdb5b850d"; + const peersResponse = await fireblocks.getLayerZeroPeers(adapterTokenLinkId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.earnBeta.getEarnPositions(earnBetaApiGetEarnPositionsRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.getLayerZeroPeers(tokenizationApiGetLayerZeroPeersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.earnBeta().getEarnPositions(chainId,\ - \ providerId, pageCursor, pageSize, sortBy, order);" + code: CompletableFuture> response + = fireblocks.tokenization().getLayerZeroPeers(adapterTokenLinkId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.earn_beta.get_earn_positions(chain_id, provider_id,\ - \ page_cursor, page_size, sort_by, order);" + code: response = fireblocks.tokenization.get_layer_zero_peers(adapter_token_link_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.earnBeta.getEarnPositions(earnBetaApiGetEarnPositionsRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.getLayerZeroPeers(tokenizationApiGetLayerZeroPeersRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.earnBeta().getEarnPositions(chainId,\ - \ providerId, pageCursor, pageSize, sortBy, order);" + source: CompletableFuture> response + = fireblocks.tokenization().getLayerZeroPeers(adapterTokenLinkId); - lang: Python - source: "response = fireblocks.earn_beta.get_earn_positions(chain_id, provider_id,\ - \ page_cursor, page_size, sort_by, order);" + source: response = fireblocks.tokenization.get_layer_zero_peers(adapter_token_link_id); x-accepts: - application/json - /earn/providers: - get: - description: | - Get list of earn providers. - - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: getEarnProviders + /tokenization/multichain/bridge/layerzero/config/dvns: + post: + description: Configure DVN settings for LayerZero adapters. This endpoint sets + up the DVN configuration for message verification between source and destination + adapters. + operationId: setLayerZeroDvnConfig 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 + - 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: - default: DESC - enum: - - ASC - - DESC - example: ASC type: string - style: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SetLayerZeroDvnConfigRequest" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetProvidersResponse" - 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" + $ref: "#/components/schemas/SetLayerZeroDvnConfigResponse" + description: LayerZero DVN configuration set successfully + "400": + $ref: "#/components/responses/BadRequestError" "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" + $ref: "#/components/responses/OriginalTokenLinkNotFoundError" + "409": + $ref: "#/components/responses/TokenLinkPreparationError" + "422": + $ref: "#/components/responses/BridgingProtocolBlockchainMetadataNotFoundError" "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 providers + $ref: "#/components/responses/InternalServerError" + summary: Set LayerZero DVN configuration tags: - - Earn (Beta) - x-rate-limit-category: query + - Tokenization + x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: |- + const payload = { + "vaultAccountId": "0", + "sourceAdapterTokenLinkId": "b70701f4-d7b1-4795-a8ee-b09cdb5b850d", + "destinationAdapterTokenLinkId": "6add4f2a-b206-4114-8f94-2882618ffbb4", + "sendConfig": { + "dvnAddresses": ["0xABCDEF123456789abcdef1234567890abcdef12345678", "0xABC123456789abcdef1234567890abcdef12345678"], + "optionalDVNAddresses": ["0xDEFABC123456789abcdef1234567890abcdef12345678"], + "optionalThreshold": 2 + }, + "receiveConfig": { + "dvnAddresses": ["0xABCDEF123456789abcdef1234567890abcdef12345678", "0xABC123456789abcdef1234567890abcdef12345678"], + "optionalThreshold": 1 + } + } const dvnConfigResponse = await fireblocks.setLayerZeroDvnConfig(payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.earnBeta.getEarnProviders(earnBetaApiGetEarnProvidersRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.setLayerZeroDvnConfig(tokenizationApiSetLayerZeroDvnConfigRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.earnBeta().getEarnProviders(pageCursor,\ - \ pageSize, sortBy, order);" + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().setLayerZeroDvnConfig(setLayerZeroDvnConfigRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.earn_beta.get_earn_providers(page_cursor, page_size,\ - \ sort_by, order);" + code: "response = fireblocks.tokenization.set_layer_zero_dvn_config(set_layer_zero_dvn_config_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.earnBeta.getEarnProviders(earnBetaApiGetEarnProvidersRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.setLayerZeroDvnConfig(tokenizationApiSetLayerZeroDvnConfigRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.earnBeta().getEarnProviders(pageCursor,\ - \ pageSize, sortBy, order);" + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().setLayerZeroDvnConfig(setLayerZeroDvnConfigRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.earn_beta.get_earn_providers(page_cursor, page_size,\ - \ sort_by, order);" + source: "response = fireblocks.tokenization.set_layer_zero_dvn_config(set_layer_zero_dvn_config_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /earn/providers/approve_terms_of_service: - post: - description: | - Approves earn provider terms of service for this workspace (one-time per tenant). - When `isTermsApprovalRequired` is true on a provider (see list providers), - call this once before creating or executing earn actions with providers that require it. - After success, `GET /earn/providers` reflects `isTermsOfServiceApproved`. - - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: approveTermsOfService + /tokenization/multichain/bridge/layerzero/config/peers: + delete: + description: Remove LayerZero peers to disconnect adapter contracts. This endpoint + removes peer relationships between LayerZero adapters. + operationId: removeLayerZeroPeers 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\ @@ -23021,315 +23459,238 @@ paths: schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/RemoveLayerZeroPeersRequest" + required: true responses: - "204": - 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": + "200": 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" + $ref: "#/components/schemas/RemoveLayerZeroPeersResponse" + description: LayerZero peers removal process completed + "400": + $ref: "#/components/responses/BadRequestError" "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" + $ref: "#/components/responses/OriginalTokenLinkNotFoundError" + "409": + $ref: "#/components/responses/TokenLinkProcessingError" "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 earn provider terms of service + $ref: "#/components/responses/InternalServerError" + summary: Remove LayerZero peers tags: - - Earn (Beta) + - Tokenization x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: |- + const payload = { + "vaultAccountId": "0", + "sourceAdapterTokenLinkId": "123-432-1234-1234-123456789012", + "destinationAdapterTokenLinkIds": ["123-432-1234-1234-123456789012", "123-432-1234-1234-123456789012"], + "bidirectional": true + } const removePeersResponse = await fireblocks.removeLayerZeroPeers(payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.earnBeta.approveTermsOfService(earnBetaApiApproveTermsOfServiceRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.removeLayerZeroPeers(tokenizationApiRemoveLayerZeroPeersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.earnBeta().approveTermsOfService(idempotencyKey); + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().removeLayerZeroPeers(removeLayerZeroPeersRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.earn_beta.approve_terms_of_service(idempotency_key); + code: "response = fireblocks.tokenization.remove_layer_zero_peers(remove_layer_zero_peers_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.earnBeta.approveTermsOfService(earnBetaApiApproveTermsOfServiceRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.removeLayerZeroPeers(tokenizationApiRemoveLayerZeroPeersRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.earnBeta().approveTermsOfService(idempotencyKey); + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().removeLayerZeroPeers(removeLayerZeroPeersRequest,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.earn_beta.approve_terms_of_service(idempotency_key); + source: "response = fireblocks.tokenization.remove_layer_zero_peers(remove_layer_zero_peers_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /trading/providers: - get: - description: | - Retrieve a list of all available external providers supporting trading activities through the platform. - - **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). - operationId: getTradingProviders + post: + description: "Set LayerZero peers to establish connections between adapter contracts.\ + \ This endpoint creates peer relationships that enable cross-chain communication.\ + \ It sets the destination adapter as a peer of the source adapter. If `bidirectional`\ + \ is true, it also sets the source adapter as a peer of the destination adapter(s)." + operationId: setLayerZeroPeers parameters: - - description: Page size for pagination. - explode: true - in: query - name: pageSize - required: false - schema: - default: 20 - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Page cursor for pagination. - explode: true - in: query - name: pageCursor + - 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: form + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SetLayerZeroPeersRequest" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ProvidersListResponse" - description: Providers response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted access." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "429": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get providers + $ref: "#/components/schemas/SetLayerZeroPeersResponse" + description: LayerZero peers set successfully + "400": + $ref: "#/components/responses/BadRequestError" + "404": + $ref: "#/components/responses/OriginalTokenLinkNotFoundError" + "409": + $ref: "#/components/responses/TokenLinkPreparationError" + "422": + $ref: "#/components/responses/OriginalTokenLinkNotFungibleError" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Set LayerZero peers tags: - - Trading (Beta) - x-rate-limit-category: query + - Tokenization + x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: |- + const payload = { + "vaultAccountId": "0", + "sourceAdapterTokenLinkId": "123-432-1234-1234-123456789012", + "destinationAdapterTokenLinkIds": ["123-432-1234-1234-123456789012", "123-432-1234-1234-123456789012"], + "bidirectional": true + } const setPeersResponse = await fireblocks.setLayerZeroPeers(payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tradingBeta.getTradingProviders(tradingBetaApiGetTradingProvidersRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.setLayerZeroPeers(tokenizationApiSetLayerZeroPeersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.tradingBeta().getTradingProviders(pageSize, pageCursor);" + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().setLayerZeroPeers(setLayerZeroPeersRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.trading_beta.get_trading_providers(page_size,\ - \ page_cursor);" + code: "response = fireblocks.tokenization.set_layer_zero_peers(set_layer_zero_peers_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tradingBeta.getTradingProviders(tradingBetaApiGetTradingProvidersRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.setLayerZeroPeers(tokenizationApiSetLayerZeroPeersRequest);" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.tradingBeta().getTradingProviders(pageSize, pageCursor);" + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().setLayerZeroPeers(setLayerZeroPeersRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.trading_beta.get_trading_providers(page_size,\ - \ page_cursor);" + source: "response = fireblocks.tokenization.set_layer_zero_peers(set_layer_zero_peers_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /trading/providers/{providerId}: + /tokenization/multichain/bridge/layerzero/validate: get: - description: | - 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). - operationId: getTradingProviderById + description: Validate the LayerZero channel configuration between adapters. + This endpoint checks if the channel configuration is correct and returns any + validation errors. + operationId: validateLayerZeroChannelConfig parameters: - - description: The unique identifier of the provider. - explode: false - in: path - name: providerId + - description: The token link ID of the adapter + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d + explode: true + in: query + name: adapterTokenLinkId required: true schema: - minLength: 1 + format: uuid type: string - style: simple + style: form + - description: Peer adapter token link ID to validate against + example: 6add4f2a-b206-4114-8f94-2882618ffbb4 + explode: true + in: query + name: peerAdapterTokenLinkId + required: true + schema: + format: uuid + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TradingProvider" - description: Single provider details. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Forbidden - insufficient permissions, disabled feature, or\ - \ restricted access." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/ValidateLayerZeroChannelResponse" + description: LayerZero channel configuration validation completed + "400": + $ref: "#/components/responses/BadRequestError" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Provider not found. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "429": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Rate limit exceeded - slow down and retry later. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get trading provider by ID + $ref: "#/components/responses/OriginalTokenLinkNotFoundError" + "422": + $ref: "#/components/responses/BridgingProtocolBlockchainMetadataNotFoundError" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Validate LayerZero channel configuration tags: - - Trading (Beta) + - Tokenization x-rate-limit-category: read x-readme: code-samples: + - language: javascript + code: "const adapterTokenLinkId = \"b70701f4-d7b1-4795-a8ee-b09cdb5b850d\"\ + ; const peerAdapterTokenLinkId = \"6add4f2a-b206-4114-8f94-2882618ffbb4\"\ + ; const validationResponse = await fireblocks.validateLayerZeroChannelConfig({\ + \ \n adapterTokenLinkId,\n peerAdapterTokenLinkId \n});" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.validateLayerZeroChannelConfig(tokenizationApiValidateLayerZeroChannelConfigRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId); + code: "CompletableFuture>\ + \ response = fireblocks.tokenization().validateLayerZeroChannelConfig(adapterTokenLinkId,\ + \ peerAdapterTokenLinkId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id); + code: "response = fireblocks.tokenization.validate_layer_zero_channel_config(adapter_token_link_id,\ + \ peer_adapter_token_link_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.validateLayerZeroChannelConfig(tokenizationApiValidateLayerZeroChannelConfigRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId); + source: "CompletableFuture>\ + \ response = fireblocks.tokenization().validateLayerZeroChannelConfig(adapterTokenLinkId,\ + \ peerAdapterTokenLinkId);" - lang: Python - source: response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id); + source: "response = fireblocks.tokenization.validate_layer_zero_channel_config(adapter_token_link_id,\ + \ peer_adapter_token_link_id);" x-accepts: - application/json - /trading/rates: + /tokenization/multichain/deterministic_address: post: - description: |- - Retrieve indicative exchange rate from specified providers for a given asset pair. - Rates are non-executable price signals intended for discovery and display purposes. - - 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). - operationId: fetchRates + description: Get a deterministic address for contract deployment. The address + is derived from the contract's bytecode and provided salt. This endpoint + is used to get the address of a contract that will be deployed in the future. + operationId: getDeployableAddress 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\ @@ -23346,108 +23707,88 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/RatesRequest" + $ref: "#/components/schemas/GetDeployableAddressRequest" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/RatesResponse" - description: Rate response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/DeployableAddressResponse" + description: Deterministic address for contract deployment "400": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Bad request: invalid input parameters, malformed request body,\ - \ or validation failure." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted access." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "429": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": + $ref: "#/components/schemas/InvalidParamaterValueError" + description: Invalid parameters or template has no bytecode + "409": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/AddressNotAvailableError" + description: Address is already taken default: $ref: "#/components/responses/Error" - summary: Get rates + summary: Get deterministic address for contract deployment tags: - - Trading (Beta) - x-rate-limit-category: external_query + - Tokenization + x-rate-limit-category: read x-readme: code-samples: + - language: javascript + code: |- + const payload = { + chainDescriptor: "ETH", + templateId: "b70701f4-d7b1-4795-a8ee-b09cdb5b850d", + initParams: [ + { name: "name", type: "string", value: "TokenName" }, + { name: "symbol", type: "string", value: "TokenSymbol" }, + { + name: "customConfigProps", + type: "tuple", + components: [ + { name: "_isMintable", type: "bool" } + ], + value: [{ _isMintable: false }] + } + ], + salt: "123456789" + }; const address = await fireblocks.getDeterministicAddress(payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.tradingBeta.fetchRates(tradingBetaApiFetchRatesRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.getDeployableAddress(tokenizationApiGetDeployableAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tradingBeta().fetchRates(ratesRequest,\ + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().getDeployableAddress(getDeployableAddressRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.trading_beta.fetch_rates(rates_request, idempotency_key);" + code: "response = fireblocks.tokenization.get_deployable_address(get_deployable_address_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tradingBeta.fetchRates(tradingBetaApiFetchRatesRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.getDeployableAddress(tokenizationApiGetDeployableAddressRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tradingBeta().fetchRates(ratesRequest,\ + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().getDeployableAddress(getDeployableAddressRequest,\ \ idempotencyKey);" - - lang: Python - source: "response = fireblocks.trading_beta.fetch_rates(rates_request, idempotency_key);" - x-content-type: application/json - x-accepts: - - application/json - /trading/quotes: - post: - description: |- - Generate a time-limited quote for asset conversion, providing exchange rate and amount calculations. - - 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, Editor. - - For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - operationId: createQuote + - lang: Python + source: "response = fireblocks.tokenization.get_deployable_address(get_deployable_address_request,\ + \ idempotency_key);" + x-content-type: application/json + x-accepts: + - application/json + /tokenization/multichain/reissue/token/{tokenLinkId}: + post: + description: Reissue a multichain token. This endpoint allows you to reissue + a token on one or more blockchains. The token must be initially issued using + the issueTokenMultiChain endpoint. + operationId: reIssueTokenMultiChain 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\ @@ -23460,117 +23801,91 @@ paths: schema: type: string style: simple + - description: The ID of the token link + explode: false + in: path + name: tokenLinkId + required: true + schema: + type: string + style: simple requestBody: content: application/json: schema: - $ref: "#/components/schemas/CreateQuote" + $ref: "#/components/schemas/ReissueMultichainTokenRequest" required: true responses: "201": content: application/json: schema: - $ref: "#/components/schemas/QuotesResponse" - description: Quote created - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/IssueTokenMultichainResponse" + description: Successfully reissued multichain token "400": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Bad request: invalid input parameters, malformed request body,\ - \ or validation failure." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted access." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "429": + $ref: "#/components/schemas/TokenLinkNotMultichainCompatibleHttpError" + description: Invalid input + "404": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": + $ref: "#/components/schemas/DeployedContractNotFoundError" + description: Deployed contract not found + "409": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/AddressNotAvailableError" + description: Address is already taken default: $ref: "#/components/responses/Error" - summary: Create a quote + summary: Reissue a multichain token tags: - - Trading (Beta) + - Tokenization x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: |- + const payload = { + vaultAccountId: "0", + chains: "ETH", + salt: "123456789", + chains: ["ETH", "POLYGON"] + }; const token = await fireblocks.reIssueTokenMultiChain(tokenLinkId, payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.tradingBeta.createQuote(tradingBetaApiCreateQuoteRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.reIssueTokenMultiChain(tokenizationApiReIssueTokenMultiChainRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tradingBeta().createQuote(createQuote,\ - \ idempotencyKey);" + code: "CompletableFuture>> response = fireblocks.tokenization().reIssueTokenMultiChain(reissueMultichainTokenRequest,\ + \ tokenLinkId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.trading_beta.create_quote(create_quote, idempotency_key);" + code: "response = fireblocks.tokenization.re_issue_token_multi_chain(reissue_multichain_token_request,\ + \ token_link_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tradingBeta.createQuote(tradingBetaApiCreateQuoteRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.reIssueTokenMultiChain(tokenizationApiReIssueTokenMultiChainRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tradingBeta().createQuote(createQuote,\ - \ idempotencyKey);" + source: "CompletableFuture>> response = fireblocks.tokenization().reIssueTokenMultiChain(reissueMultichainTokenRequest,\ + \ tokenLinkId, idempotencyKey);" - lang: Python - source: "response = fireblocks.trading_beta.create_quote(create_quote, idempotency_key);" + source: "response = fireblocks.tokenization.re_issue_token_multi_chain(reissue_multichain_token_request,\ + \ token_link_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /trading/offers: + /tokenization/multichain/tokens: post: - description: |- - Retrieve all available offers across the workspace for a given asset pair. - Always operates in open scope — no provider or account selection required. - Returns a mix of indicative rates and committed quotes as applicable per provider. - - If no slippageBps is provided, it defaults to 50 bps (0.5%). - Slippage and settlement configuration do not affect the returned rate. - - 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, Editor. - - For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - operationId: fetchAllOffers + description: Facilitates the creation of a new token on one or more blockchains. + operationId: issueTokenMultiChain 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\ @@ -23587,1084 +23902,580 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CreateOffersRequest" + $ref: "#/components/schemas/CreateMultichainTokenRequest" required: true responses: "201": content: application/json: schema: - $ref: "#/components/schemas/OffersResponse" - description: Offers response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/IssueTokenMultichainResponse" + description: Tokens were created successfully "400": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Bad request: invalid input parameters, malformed request body,\ - \ or validation failure." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted access." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "429": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": + $ref: "#/components/schemas/InvalidParamaterValueError" + description: Invalid input. + "409": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get all offers + $ref: "#/components/schemas/AddressNotAvailableError" + description: Address is already taken. + summary: Issue a token on one or more blockchains tags: - - Trading (Beta) - x-rate-limit-category: external_query + - Tokenization + x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: |- + const payload = { + vaultAccountId: "0", + createParams: { + contractId: "b70701f4-d7b1-4795-a8ee-b09cdb5b850d", + deployFunctionParams: [ + { name: "name", type: "string", value: "TokenName" }, + { name: "symbol", type: "string", value: "TokenSymbol" }, + { + name: "customConfigProps", + type: "tuple", + components: [ + { name: "_isMintable", type: "bool" } + ], + value: [{ _isMintable: false }] + }, + ], + }, + salt: "123456789", + chains: ["ETH", "POLYGON"] + }; const token = await fireblocks.issueTokenMultiChain(payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.tradingBeta.fetchAllOffers(tradingBetaApiFetchAllOffersRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.issueTokenMultiChain(tokenizationApiIssueTokenMultiChainRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tradingBeta().fetchAllOffers(createOffersRequest,\ + code: "CompletableFuture>> response = fireblocks.tokenization().issueTokenMultiChain(createMultichainTokenRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.trading_beta.fetch_all_offers(create_offers_request,\ + code: "response = fireblocks.tokenization.issue_token_multi_chain(create_multichain_token_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tradingBeta.fetchAllOffers(tradingBetaApiFetchAllOffersRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.issueTokenMultiChain(tokenizationApiIssueTokenMultiChainRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tradingBeta().fetchAllOffers(createOffersRequest,\ + source: "CompletableFuture>> response = fireblocks.tokenization().issueTokenMultiChain(createMultichainTokenRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.trading_beta.fetch_all_offers(create_offers_request,\ + source: "response = fireblocks.tokenization.issue_token_multi_chain(create_multichain_token_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /trading/orders: + /tokenization/tokens: get: - description: |- - Retrieve a paginated list of orders with optional filtering by account, provider, status, and time range. - - 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). - operationId: getOrders + description: Return all linked tokens (paginated) + operationId: getLinkedTokens parameters: - - description: pageSize for pagination. + - description: Page cursor to get the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true - in: query - name: pageSize - required: true - schema: - maximum: 100 - minimum: 1 - type: integer - style: form - - explode: true in: query name: pageCursor required: false schema: - minLength: 1 - type: string - style: form - - description: ASC / DESC ordering (default DESC) - explode: true - in: query - name: order - required: false - schema: - default: DESC - enum: - - ASC - - DESC type: string style: form - - description: Filter by accountId. - explode: true - in: query - name: accountId - required: false - schema: - items: - minLength: 1 - type: string - type: array - style: form - - description: Filter by providerId. + - description: "Number of items per page, requesting more then max will return\ + \ max items" + example: 10 explode: true in: query - name: providerId + name: pageSize required: false schema: - items: - minLength: 1 - type: string - type: array + maximum: 100 + minimum: 1 + type: number style: form - - description: Filter by order status. + - description: A comma separated list of statuses to filter. Default is "COMPLETED" + example: COMPLETED explode: true in: query - name: statuses - required: false - schema: - items: - $ref: "#/components/schemas/OrderStatus" - type: array - style: form - - explode: true - in: query - name: startTime - required: false - schema: - minimum: 0 - type: integer - style: form - - explode: true - in: query - name: endTime - required: false - schema: - minimum: 0 - type: integer - style: form - - explode: true - in: query - name: assetConversionType + name: status required: false - schema: - description: Filter by asset conversion type. - enum: - - DIGITAL_ONLY - - FIAT - type: string + schema: {} style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetOrdersResponse" - description: Orders response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted access." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "429": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/TokensPaginatedResponse" + description: "" default: $ref: "#/components/responses/Error" - summary: Get orders + summary: List all linked tokens tags: - - Trading (Beta) - x-rate-limit-category: read + - Tokenization + x-rate-limit-category: query x-readme: code-samples: - - language: typescript - code: "const response: Promise> =\ - \ fireblocks.tradingBeta.getOrders(tradingBetaApiGetOrdersRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response = fireblocks.tradingBeta().getOrders(pageSize,\ - \ pageCursor, order, accountId, providerId, statuses, startTime, endTime,\ - \ assetConversionType);" - name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.trading_beta.get_orders(page_size, page_cursor,\ - \ order, account_id, provider_id, statuses, start_time, end_time, asset_conversion_type);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.tradingBeta.getOrders(tradingBetaApiGetOrdersRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.tradingBeta().getOrders(pageSize,\ - \ pageCursor, order, accountId, providerId, statuses, startTime, endTime,\ - \ assetConversionType);" - - lang: Python - source: "response = fireblocks.trading_beta.get_orders(page_size, page_cursor,\ - \ order, account_id, provider_id, statuses, start_time, end_time, asset_conversion_type);" - x-accepts: - - application/json - post: - description: |- - Create an order to buy or sell an asset. If no source is given, an external source will be use. - - 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, Editor. - - For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - operationId: createOrder - 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/CreateOrderRequest" - required: true - responses: - "202": - content: - application/json: - schema: - $ref: "#/components/schemas/OrderDetails" - description: Order creation response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Bad request: invalid input parameters, malformed request body,\ - \ or validation failure." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted access." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "429": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Create an order - tags: - - Trading (Beta) - x-rate-limit-category: write - x-readme: - code-samples: + code: linked_tokens = fireblocks.get_linked_tokens(payload) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const linkedTokens = await fireblocks.getLinkedTokens(payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.tradingBeta.createOrder(tradingBetaApiCreateOrderRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.getLinkedTokens(tokenizationApiGetLinkedTokensRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tradingBeta().createOrder(createOrderRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().getLinkedTokens(pageCursor, pageSize, status);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.trading_beta.create_order(create_order_request,\ - \ idempotency_key);" + code: "response = fireblocks.tokenization.get_linked_tokens(page_cursor,\ + \ page_size, status);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tradingBeta.createOrder(tradingBetaApiCreateOrderRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.getLinkedTokens(tokenizationApiGetLinkedTokensRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tradingBeta().createOrder(createOrderRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().getLinkedTokens(pageCursor, pageSize, status);" - lang: Python - source: "response = fireblocks.trading_beta.create_order(create_order_request,\ - \ idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.tokenization.get_linked_tokens(page_cursor,\ + \ page_size, status);" x-accepts: - application/json - /trading/orders/{orderId}: - get: + post: description: |- - Retrieve detailed information about a specific order by its 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). - operationId: getOrder + Facilitates the creation of a new token, supporting both EVM-based and Stellar/Ripple platforms. For EVM, it deploys the corresponding contract template to the blockchain and links the token to the workspace. For Stellar/Ripple, it links a newly created token directly to the workspace without deploying a contract. Returns the token link with status "PENDING" until the token is deployed or "SUCCESS" if no deployment is needed. + Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor. + operationId: issueNewToken parameters: - - description: The ID of the order to fetch. + - 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: path - name: orderId - required: true + in: header + name: Idempotency-Key + required: false schema: - minLength: 1 type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateTokenRequestDto" + required: true responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/OrderDetails" - description: Order response - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - 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/TradingErrorSchema" - description: "Not found: requested resource does not exist (e.g., order)." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "429": + "201": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": + $ref: "#/components/schemas/TokenLinkDto" + description: Token was created successfully + "409": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get order details + $ref: "#/components/schemas/AssetAlreadyExistHttpError" + description: Asset already exists + summary: Issue a new token tags: - - Trading (Beta) - x-rate-limit-category: read + - Tokenization + x-rate-limit-category: write x-readme: code-samples: + - language: python + code: token = fireblocks.issue_new_token(payload) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const token = await fireblocks.issueNewToken(payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.tradingBeta.getOrder(tradingBetaApiGetOrderRequest);" + code: "const response: Promise> = fireblocks.tokenization.issueNewToken(tokenizationApiIssueNewTokenRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.tradingBeta().getOrder(orderId); + code: "CompletableFuture> response = fireblocks.tokenization().issueNewToken(createTokenRequestDto,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.trading_beta.get_order(order_id); + code: "response = fireblocks.tokenization.issue_new_token(create_token_request_dto,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tradingBeta.getOrder(tradingBetaApiGetOrderRequest);" + source: "const response: Promise> = fireblocks.tokenization.issueNewToken(tokenizationApiIssueNewTokenRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.tradingBeta().getOrder(orderId); + source: "CompletableFuture> response = fireblocks.tokenization().issueNewToken(createTokenRequestDto,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.trading_beta.get_order(order_id); + source: "response = fireblocks.tokenization.issue_new_token(create_token_request_dto,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /trading/orders/{orderId}/requirement: - get: - description: |- - Fetch order requirement details for an order that is in `AWAITING_INFORMATION` status. - - The response includes `requirementId` and `dueBy` metadata, a - `requiredData` JSON Schema (Draft-7) describing the shape of the `data` object expected on - `POST /trading/orders/{orderId}/requirement/data`, and `requiredFiles` descriptors for any files the - provider requires (uploaded via `POST /trading/orders/{orderId}/requirement/file`). - - 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). - operationId: getOrderRequirements + /tokenization/tokens/{id}: + delete: + description: "Unlink a token. The token will be unlinked from the workspace.\ + \ The token will not be deleted on chain nor the refId, only the link to the\ + \ workspace will be removed." + operationId: unlink parameters: - - description: The ID of the order for which the order requirement is issued. + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb explode: false in: path - name: orderId + name: id required: true schema: - minLength: 1 type: string style: simple responses: "200": - content: - application/json: - schema: - $ref: "#/components/schemas/OrderRequirementDetails" - description: Order requirement details - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted access." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + content: {} + description: Token unlinked successfully + "204": + content: {} + description: "" "404": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Not found: the order does not exist." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Conflict: the order exists but does not have an active order\ - \ requirement (e.g., the order is not in `AWAITING_INFORMATION`)." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "429": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/NotFoundException" + description: Link did not exist default: $ref: "#/components/responses/Error" - summary: Get order requirement details for an order + summary: Unlink a token tags: - - Trading (Beta) - x-rate-limit-category: read + - Tokenization + x-rate-limit-category: write x-readme: code-samples: + - language: python + code: token = fireblocks.unlink_token(token_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const token = await fireblocks.unlinkToken(tokenId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tradingBeta.getOrderRequirements(tradingBetaApiGetOrderRequirementsRequest);" + code: "const response: Promise> = fireblocks.tokenization.unlink(tokenizationApiUnlinkRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = - fireblocks.tradingBeta().getOrderRequirements(orderId); + code: CompletableFuture> response = fireblocks.tokenization().unlink(id); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.trading_beta.get_order_requirements(order_id); + code: response = fireblocks.tokenization.unlink(id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tradingBeta.getOrderRequirements(tradingBetaApiGetOrderRequirementsRequest);" + source: "const response: Promise> = fireblocks.tokenization.unlink(tokenizationApiUnlinkRequest);" - lang: Java - source: CompletableFuture> response = - fireblocks.tradingBeta().getOrderRequirements(orderId); + source: CompletableFuture> response = fireblocks.tokenization().unlink(id); - lang: Python - source: response = fireblocks.trading_beta.get_order_requirements(order_id); + source: response = fireblocks.tokenization.unlink(id); x-accepts: - application/json - /trading/orders/{orderId}/requirement/data: - post: - description: |- - Submit the user's textual response to an order requirement on an order that is in `AWAITING_INFORMATION` status. - - The request body carries `data` — a free-form object conforming to the `requiredData` JSON Schema - returned by the GET endpoint. Any required files are uploaded separately via - `POST /trading/orders/{orderId}/requirement/file`. - - 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, Editor. - - For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - operationId: submitOrderRequirements + get: + description: "Return a linked token, with its status and metadata." + operationId: getLinkedToken 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 order to submit the order requirement response - for. + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb explode: false in: path - name: orderId + name: id required: true schema: - minLength: 1 type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SubmitOrderRequirementRequest" - required: true responses: - "202": - description: Order requirement submission accepted for processing. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Bad request: invalid input parameters, malformed request body,\ - \ or validation failure." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - 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/TradingErrorSchema" - description: "Not found: the order does not exist." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Conflict: the order exists but does not have an active order\ - \ requirement (e.g., the order is not in `AWAITING_INFORMATION`)." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "429": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": + "200": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/TokenLinkDto" + description: Token fetched successfully default: $ref: "#/components/responses/Error" - summary: Submit a response to an order requirement + summary: Return a linked token tags: - - Trading (Beta) - x-rate-limit-category: write + - Tokenization + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: token = fireblocks.get_linked_token(token_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const token = await fireblocks.getLinkedToken(tokenId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.tradingBeta.submitOrderRequirements(tradingBetaApiSubmitOrderRequirementsRequest);" + code: "const response: Promise> = fireblocks.tokenization.getLinkedToken(tokenizationApiGetLinkedTokenRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tradingBeta().submitOrderRequirements(submitOrderRequirementRequest,\ - \ orderId, idempotencyKey);" + code: CompletableFuture> response = fireblocks.tokenization().getLinkedToken(id); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.trading_beta.submit_order_requirements(submit_order_requirement_request,\ - \ order_id, idempotency_key);" + code: response = fireblocks.tokenization.get_linked_token(id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tradingBeta.submitOrderRequirements(tradingBetaApiSubmitOrderRequirementsRequest);" + source: "const response: Promise> = fireblocks.tokenization.getLinkedToken(tokenizationApiGetLinkedTokenRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tradingBeta().submitOrderRequirements(submitOrderRequirementRequest,\ - \ orderId, idempotencyKey);" + source: CompletableFuture> response = fireblocks.tokenization().getLinkedToken(id); - lang: Python - source: "response = fireblocks.trading_beta.submit_order_requirements(submit_order_requirement_request,\ - \ order_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.tokenization.get_linked_token(id); x-accepts: - application/json - /trading/orders/{orderId}/requirement/file: - post: - description: |- - Upload a single file (multipart/form-data) in response to an order requirement on an order that is in - `AWAITING_INFORMATION` status. Call this endpoint once per required file. - - Send `fileKey` (matching a `fileKey` from `requiredFiles` on the GET response) and the binary `file`. Its type - must be one of the supported file formats. Fireblocks encrypts each file and uploads it individually to the - underlying provider. The textual response is submitted separately via - `POST /trading/orders/{orderId}/requirement/data`. - - 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, Editor. - - For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). - operationId: uploadOrderRequirementFile + /tokenization/tokens/{id}/balances: + get: + description: Returns the latest balance for each unique address holding this + token. + operationId: getTokenBalances 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 order to upload the order requirement file for. + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb explode: false in: path - name: orderId + name: id required: true schema: - minLength: 1 type: string style: simple - requestBody: - content: - multipart/form-data: - schema: - $ref: "#/components/schemas/OrderRequirementFileUpload" - required: true - responses: - "202": - description: File accepted for processing. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Bad request: unsupported file type, missing fileKey, malformed\ - \ request, or validation failure." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": + - description: Page cursor to get the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + - description: "Number of items per page (max 100), requesting more than 100\ + \ will return 100 items" + example: 10 + explode: true + in: query + name: pageSize + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Sorting field for balances + explode: true + in: query + name: sortBy + required: false + schema: + default: blockTimestamp + enum: + - accountAddress + - blockTimestamp + type: string + style: form + - description: ASC / DESC ordering (default DESC) + explode: true + in: query + name: order + required: false + schema: + default: DESC + enum: + - ASC + - DESC + type: string + style: form + responses: + "200": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Forbidden: insufficient permissions, disabled feature, or\ - \ restricted access." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/AddressBalancePagedResponse" + description: Successfully retrieved the latest balances for the token "404": content: application/json: schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Not found: the order does not exist." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Conflict: the order exists but does not have an active order\ - \ requirement (e.g., the order is not in `AWAITING_INFORMATION`)." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "429": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: "Rate limit exceeded: slow down and retry later." - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": - content: - application/json: - schema: - $ref: "#/components/schemas/TradingErrorSchema" - description: Internal error while processing the request. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/NotFoundException" + description: Token not found default: $ref: "#/components/responses/Error" - summary: Upload a file for an order requirement + summary: Get latest balances for all holders of a token tags: - - Trading (Beta) - x-rate-limit-category: write + - Tokenization + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.tradingBeta.uploadOrderRequirementFile(tradingBetaApiUploadOrderRequirementFileRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenBalances(tokenizationApiGetTokenBalancesRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tradingBeta().uploadOrderRequirementFile(orderId,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().getTokenBalances(id, pageCursor, pageSize,\ + \ sortBy, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.trading_beta.upload_order_requirement_file(order_id,\ - \ idempotency_key);" + code: "response = fireblocks.tokenization.get_token_balances(id, page_cursor,\ + \ page_size, sort_by, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tradingBeta.uploadOrderRequirementFile(tradingBetaApiUploadOrderRequirementFileRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenBalances(tokenizationApiGetTokenBalancesRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tradingBeta().uploadOrderRequirementFile(orderId,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().getTokenBalances(id, pageCursor, pageSize,\ + \ sortBy, order);" - lang: Python - source: "response = fireblocks.trading_beta.upload_order_requirement_file(order_id,\ - \ idempotency_key);" - x-content-type: multipart/form-data + source: "response = fireblocks.tokenization.get_token_balances(id, page_cursor,\ + \ page_size, sort_by, order);" x-accepts: - application/json - /admin_quorum: - put: - description: Update admin quorum threshold - operationId: setAdminQuorumThreshold + /tokenization/tokens/{id}/balances/{accountAddress}: + get: + description: Returns the latest token balance for the specified account address. + operationId: getTokenBalanceForAccount 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." + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: id + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SetAdminQuorumThresholdRequest" + - description: The account address to get balance history for + explode: false + in: path + name: accountAddress required: true + schema: + example: 0x1234567890abcdef1234567890abcdef12345678 + type: string + style: simple responses: - "202": + "200": content: application/json: schema: - $ref: "#/components/schemas/SetAdminQuorumThresholdResponse" - description: OK - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/AddressBalanceItemDto" + description: Successfully retrieved the balance for the account + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/NotFoundException" + description: Token not found default: $ref: "#/components/responses/Error" - summary: Update admin quorum threshold + summary: Get the latest balance for a specific account tags: - - Admin Quorum - x-internal: true - x-rate-limit-category: write + - Tokenization + x-rate-limit-category: read x-readme: code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenBalanceForAccount(tokenizationApiGetTokenBalanceForAccountRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response =\ + \ fireblocks.tokenization().getTokenBalanceForAccount(id, accountAddress);" + name: Fireblocks SDK Java example - language: python - code: result = fireblocks.set_admin_quorum_threshold(adminQuorumThreshold) - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const result = await fireblocks.setAdminQuorumThreshold(adminQuorumThreshold) - name: Fireblocks SDK Javascript example - x-content-type: application/json + code: "response = fireblocks.tokenization.get_token_balance_for_account(id,\ + \ account_address);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenBalanceForAccount(tokenizationApiGetTokenBalanceForAccountRequest);" + - lang: Java + source: "CompletableFuture> response =\ + \ fireblocks.tokenization().getTokenBalanceForAccount(id, accountAddress);" + - lang: Python + source: "response = fireblocks.tokenization.get_token_balance_for_account(id,\ + \ account_address);" x-accepts: - application/json - /nfts/ownership/tokens: + /tokenization/tokens/{id}/balances/{accountAddress}/history: get: - description: | - Returns all tokens and their data in your workspace. - operationId: getOwnershipTokens + description: Returns paginated balance history for the specified account address + with optional time-range filtering. + operationId: getTokenBalanceHistory parameters: - - description: Blockchain descriptor filter - explode: true - in: query - name: blockchainDescriptor - required: false + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + explode: false + in: path + name: id + required: true schema: - enum: - - ETH - - ETH_TEST3 - - ETH_TEST5 - - ETH_TEST6 - - POLYGON - - POLYGON_TEST_MUMBAI - - AMOY_POLYGON_TEST - - XTZ - - XTZ_TEST - - BASECHAIN_ETH - - BASECHAIN_ETH_TEST3 - - BASECHAIN_ETH_TEST5 - - ETHERLINK - - ETHERLINK_TEST - - MANTLE - - MANTLE_TEST - - GUN_GUNZILLA - - GUN_GUNZILLA_TEST - - ETH_SONEIUM - - SONEIUM_MINATO_TEST - - IOTX_IOTEX - - KLAY_KAIA - - KLAY_KAIA_TEST - - APECHAIN - - APECHAIN_TEST - - CRONOS - - CRONOS_TEST - - ROBINHOOD_CHAIN_TESTNET_TEST - - ARB type: string - style: form - - description: A comma separated list of Vault Account IDs. Up to 100 are allowed - in a single request. This field will be ignored when walletType=END_USER_WALLET - or ncwId is provided. - explode: true - in: query - name: vaultAccountIds - required: false + style: simple + - description: The account address to get balance history for + explode: false + in: path + name: accountAddress + required: true schema: + example: 0x1234567890abcdef1234567890abcdef12345678 type: string - style: form - - description: Tenant's Non-Custodial Wallet ID + style: simple + - description: Start date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z explode: true in: query - name: ncwId + name: startDate required: false schema: + format: date-time type: string style: form - - description: A comma separated list of Non-Custodial account IDs. Up to 100 - are allowed in a single request. This field will be ignored when walletType=VAULT_ACCOUNT - or ncwId is not provided. + - description: End date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z explode: true in: query - name: ncwAccountIds + name: endDate required: false schema: + format: date-time type: string style: form - - description: "Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`" + - description: Time interval for grouping data + example: DAY explode: true in: query - name: walletType + name: interval required: false schema: - default: VAULT_ACCOUNT + default: DAY enum: - - VAULT_ACCOUNT - - END_USER_WALLET - type: string - style: form - - description: A comma separated list of NFT IDs. Up to 100 are allowed in a - single request. - explode: true - in: query - name: ids - required: false - schema: - type: string - style: form - - description: A comma separated list of collection IDs. Up to 100 are allowed - in a single request. - explode: true - in: query - name: collectionIds - required: false - schema: + - HOUR + - DAY + - WEEK + - MONTH type: string style: form - - description: Page cursor to fetch + - description: Page cursor to get the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true in: query name: pageCursor @@ -24672,7 +24483,9 @@ paths: schema: type: string style: form - - description: Items per page (max 100) + - description: "Number of items per page (max 100), requesting more than 100\ + \ will return 100 items" + example: 10 explode: true in: query name: pageSize @@ -24680,70 +24493,29 @@ paths: schema: maximum: 100 minimum: 1 - type: number - style: form - - description: "Sort by param, it can be one param or a list of params separated\ - \ by comma" - explode: true - in: query - name: sort - required: false - schema: - items: - enum: - - ownershipLastUpdateTime - - name - - collection.name - - blockchainDescriptor - type: string - type: array - style: form - - description: "Order direction, it can be `ASC` for ascending or `DESC` for\ - \ descending" - explode: true - in: query - name: order - required: false - schema: - default: ASC - enum: - - DESC - - ASC - type: string + type: integer style: form - - description: Token ownership status + - description: Sorting field (enum). Sorting only supported by 'blockTimestamp' explode: true in: query - name: status + name: sortBy required: false schema: - default: LISTED + default: blockTimestamp enum: - - LISTED - - ARCHIVED - type: string - style: form - - description: "Search owned tokens and their collections. Possible criteria\ - \ for search: token name and id within the contract/collection, collection\ - \ name, blockchain descriptor and name." - explode: true - in: query - name: search - required: false - schema: - maximum: 100 + - blockTimestamp type: string style: form - - description: Token ownership spam status. + - description: ASC / DESC ordering (default DESC) explode: true in: query - name: spam + name: order required: false schema: + default: DESC enum: - - "true" - - "false" - - all + - ASC + - DESC type: string style: form responses: @@ -24751,240 +24523,255 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GetOwnershipTokensResponse" - description: "" - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - summary: List all owned tokens (paginated) + $ref: "#/components/schemas/BalanceHistoryPagedResponse" + description: Successfully retrieved the balance history + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/NotFoundException" + description: Token not found + default: + $ref: "#/components/responses/Error" + summary: Get balance history for a specific account tags: - - NFTs + - Tokenization x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.nFTs.getOwnershipTokens(nFTsApiGetOwnershipTokensRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenBalanceHistory(tokenizationApiGetTokenBalanceHistoryRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.nFTs().getOwnershipTokens(blockchainDescriptor, vaultAccountIds,\ - \ ncwId, ncwAccountIds, walletType, ids, collectionIds, pageCursor, pageSize,\ - \ sort, order, status, search, spam);" + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().getTokenBalanceHistory(id, accountAddress,\ + \ startDate, endDate, interval, pageCursor, pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.n_f_ts.get_ownership_tokens(blockchain_descriptor,\ - \ vault_account_ids, ncw_id, ncw_account_ids, wallet_type, ids, collection_ids,\ - \ page_cursor, page_size, sort, order, status, search, spam);" + code: "response = fireblocks.tokenization.get_token_balance_history(id,\ + \ account_address, start_date, end_date, interval, page_cursor, page_size,\ + \ sort_by, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.nFTs.getOwnershipTokens(nFTsApiGetOwnershipTokensRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenBalanceHistory(tokenizationApiGetTokenBalanceHistoryRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.nFTs().getOwnershipTokens(blockchainDescriptor, vaultAccountIds,\ - \ ncwId, ncwAccountIds, walletType, ids, collectionIds, pageCursor, pageSize,\ - \ sort, order, status, search, spam);" + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().getTokenBalanceHistory(id, accountAddress,\ + \ startDate, endDate, interval, pageCursor, pageSize, sortBy, order);" - lang: Python - source: "response = fireblocks.n_f_ts.get_ownership_tokens(blockchain_descriptor,\ - \ vault_account_ids, ncw_id, ncw_account_ids, wallet_type, ids, collection_ids,\ - \ page_cursor, page_size, sort, order, status, search, spam);" + source: "response = fireblocks.tokenization.get_token_balance_history(id,\ + \ account_address, start_date, end_date, interval, page_cursor, page_size,\ + \ sort_by, order);" x-accepts: - application/json - put: - description: |- - Updates all tokens and balances per blockchain and vault account. - Learn more about Fireblocks NFT management in the following [guide](https://developers.fireblocks.com/reference/deploy-an-nft-collection). - - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: updateOwnershipTokens + /tokenization/tokens/{id}/rbac: + get: + description: Returns a list of currently active roles for the token contract. + operationId: getTokenRbac parameters: - - description: Blockchain descriptor filter - explode: true - in: query - name: blockchainDescriptor - required: true - schema: - enum: - - ETH - - ETH_TEST5 - - ETH_TEST6 - - POLYGON - - POLYGON_TEST_MUMBAI - - AMOY_POLYGON_TEST - - BASECHAIN_ETH - - BASECHAIN_ETH_TEST5 - - ETHERLINK - - ETHERLINK_TEST - - MANTLE - - MANTLE_TEST - - GUN_GUNZILLA - - GUN_GUNZILLA_TEST - - ETH_SONEIUM - - SONEIUM_MINATO_TEST - - IOTX_IOTEX - - KLAY_KAIA - - KLAY_KAIA_TEST - - APECHAIN - - APECHAIN_TEST - - ROBINHOOD_CHAIN_TESTNET_TEST - type: string - style: form - - description: Vault account filter - explode: true - in: query - name: vaultAccountId + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + explode: false + in: path + name: id required: true schema: type: string - style: form - - 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." + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ActiveRolesResponse" + description: Successfully retrieved the list of active roles + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/NotFoundException" + description: Token not found + default: + $ref: "#/components/responses/Error" + summary: Get active RBAC roles for a token + tags: + - Tokenization + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenRbac(tokenizationApiGetTokenRbacRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.tokenization().getTokenRbac(id); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.tokenization.get_token_rbac(id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenRbac(tokenizationApiGetTokenRbacRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.tokenization().getTokenRbac(id); + - lang: Python + source: response = fireblocks.tokenization.get_token_rbac(id); + x-accepts: + - application/json + /tokenization/tokens/{id}/summary: + get: + description: Returns the total number of unique holders and the total supply + for the token contract. + operationId: getTokenContractSummary + parameters: + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: id + required: true schema: type: string style: simple responses: - "202": - description: "" - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - summary: Refresh vault account tokens + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/TokenContractSummaryResponse" + description: Successfully retrieved the summary for the token contract + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/NotFoundException" + description: Token not found + default: + $ref: "#/components/responses/Error" + summary: Get onchain summary for a token tags: - - NFTs - x-rate-limit-category: write + - Tokenization + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.nFTs.updateOwnershipTokens(nFTsApiUpdateOwnershipTokensRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenContractSummary(tokenizationApiGetTokenContractSummaryRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.nFTs().updateOwnershipTokens(blockchainDescriptor,\ - \ vaultAccountId, idempotencyKey);" + code: CompletableFuture> response + = fireblocks.tokenization().getTokenContractSummary(id); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.n_f_ts.update_ownership_tokens(blockchain_descriptor,\ - \ vault_account_id, idempotency_key);" + code: response = fireblocks.tokenization.get_token_contract_summary(id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.nFTs.updateOwnershipTokens(nFTsApiUpdateOwnershipTokensRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenContractSummary(tokenizationApiGetTokenContractSummaryRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.nFTs().updateOwnershipTokens(blockchainDescriptor,\ - \ vaultAccountId, idempotencyKey);" + source: CompletableFuture> response + = fireblocks.tokenization().getTokenContractSummary(id); - lang: Python - source: "response = fireblocks.n_f_ts.update_ownership_tokens(blockchain_descriptor,\ - \ vault_account_id, idempotency_key);" + source: response = fireblocks.tokenization.get_token_contract_summary(id); x-accepts: - application/json - /nfts/ownership/assets: + /tokenization/tokens/{id}/total_supply: get: - description: | - Returns all owned distinct tokens (for your tenant) and their data in your workspace. - operationId: listOwnedTokens + description: Returns paginated total supply history for the token contract with + optional time-range filtering and binning. + operationId: getTokenTotalSupply parameters: - - description: Tenant's Non-Custodial Wallet ID - explode: true - in: query - name: ncwId - required: false + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + explode: false + in: path + name: id + required: true schema: type: string - style: form - - description: "Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`" + style: simple + - description: Start date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z explode: true in: query - name: walletType + name: startDate required: false schema: - default: VAULT_ACCOUNT - enum: - - VAULT_ACCOUNT - - END_USER_WALLET + format: date-time type: string style: form - - description: Page cursor to fetch + - description: End date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z explode: true in: query - name: pageCursor + name: endDate required: false schema: + format: date-time type: string style: form - - description: Items per page (max 100) - explode: true - in: query - name: pageSize - required: false - schema: - maximum: 100 - minimum: 1 - type: number - style: form - - description: "Sort by param, it can be one param or a list of params separated\ - \ by comma" + - description: Time interval for grouping data + example: DAY explode: true in: query - name: sort + name: interval required: false schema: - items: - enum: - - name - type: string - type: array + default: DAY + enum: + - HOUR + - DAY + - WEEK + - MONTH + type: string style: form - - description: "Order direction, it can be `ASC` for ascending or `DESC` for\ - \ descending" + - description: Page cursor to get the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true in: query - name: order + name: pageCursor required: false schema: - default: ASC - enum: - - DESC - - ASC type: string style: form - - description: Token ownership status + - description: "Number of items per page (max 100), requesting more than 100\ + \ will return 100 items" + example: 10 explode: true in: query - name: status + name: pageSize required: false schema: - default: LISTED - enum: - - LISTED - - ARCHIVED - type: string + maximum: 100 + minimum: 1 + type: integer style: form - - description: Search owned tokens by token name + - description: Sorting field (enum). Sorting only supported by 'blockTimestamp' explode: true in: query - name: search + name: sortBy required: false schema: - maximum: 100 + default: blockTimestamp + enum: + - blockTimestamp type: string style: form - - description: Token ownership spam status. + - description: ASC / DESC ordering (default DESC) explode: true in: query - name: spam + name: order required: false schema: + default: DESC enum: - - "true" - - "false" - - all + - ASC + - DESC type: string style: form responses: @@ -24992,80 +24779,85 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ListOwnedTokensResponse" - description: "" - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - summary: List all distinct owned tokens (paginated) + $ref: "#/components/schemas/TotalSupplyPagedResponse" + description: Successfully retrieved the token total supply history + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/NotFoundException" + description: Token not found + default: + $ref: "#/components/responses/Error" + summary: Get historical total supply for a token tags: - - NFTs + - Tokenization x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.nFTs.listOwnedTokens(nFTsApiListOwnedTokensRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenTotalSupply(tokenizationApiGetTokenTotalSupplyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.nFTs().listOwnedTokens(ncwId, walletType, pageCursor, pageSize,\ - \ sort, order, status, search, spam);" + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().getTokenTotalSupply(id, startDate, endDate,\ + \ interval, pageCursor, pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.n_f_ts.list_owned_tokens(ncw_id, wallet_type,\ - \ page_cursor, page_size, sort, order, status, search, spam);" + code: "response = fireblocks.tokenization.get_token_total_supply(id, start_date,\ + \ end_date, interval, page_cursor, page_size, sort_by, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.nFTs.listOwnedTokens(nFTsApiListOwnedTokensRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenTotalSupply(tokenizationApiGetTokenTotalSupplyRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.nFTs().listOwnedTokens(ncwId, walletType, pageCursor, pageSize,\ - \ sort, order, status, search, spam);" + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().getTokenTotalSupply(id, startDate, endDate,\ + \ interval, pageCursor, pageSize, sortBy, order);" - lang: Python - source: "response = fireblocks.n_f_ts.list_owned_tokens(ncw_id, wallet_type,\ - \ page_cursor, page_size, sort, order, status, search, spam);" + source: "response = fireblocks.tokenization.get_token_total_supply(id, start_date,\ + \ end_date, interval, page_cursor, page_size, sort_by, order);" x-accepts: - application/json - /nfts/ownership/collections: + /tokenization/tokens/{id}/transactions: get: - description: | - Returns all collections in your workspace - operationId: listOwnedCollections + description: "Returns a paginated list of onchain transactions for the token\ + \ contract, optionally filtered by date range." + operationId: getTokenTransactions parameters: - - description: Tenant's Non-Custodial Wallet ID - explode: true - in: query - name: ncwId - required: false + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb + explode: false + in: path + name: id + required: true schema: type: string - style: form - - description: "Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`" + style: simple + - description: Start date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z explode: true in: query - name: walletType + name: startDate required: false schema: - default: VAULT_ACCOUNT - enum: - - VAULT_ACCOUNT - - END_USER_WALLET + format: date-time type: string style: form - - description: "Search owned collections. Possible criteria for search: collection\ - \ name, collection contract address." + - description: End date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z explode: true in: query - name: search + name: endDate required: false schema: - maximum: 100 + format: date-time type: string style: form - - description: Page cursor to fetch + - description: Page cursor to get the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true in: query name: pageCursor @@ -25073,7 +24865,9 @@ paths: schema: type: string style: form - - description: Items per page (max 100) + - description: "Number of items per page (max 100), requesting more than 100\ + \ will return 100 items" + example: 10 explode: true in: query name: pageSize @@ -25081,44 +24875,31 @@ paths: schema: maximum: 100 minimum: 1 - type: number - style: form - - description: "Sort by param, it can be one param or a list of params separated\ - \ by comma" - explode: true - in: query - name: sort - required: false - schema: - items: - enum: - - name - type: string - type: array + type: integer style: form - - description: "Order direction, it can be `ASC` for ascending or `DESC` for\ - \ descending" + - description: Sorting field (enum). explode: true in: query - name: order + name: sortBy required: false schema: - default: ASC + default: blockTimestamp enum: - - DESC - - ASC + - blockTimestamp + - blockNumber + - transactionHash type: string style: form - - description: Token ownership status + - description: ASC / DESC ordering (default DESC) explode: true in: query - name: status + name: order required: false schema: - default: LISTED + default: DESC enum: - - LISTED - - ARCHIVED + - ASC + - DESC type: string style: form responses: @@ -25126,109 +24907,56 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ListOwnedCollectionsResponse" - description: "" - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - summary: List owned collections (paginated) - tags: - - NFTs - x-rate-limit-category: query - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.nFTs.listOwnedCollections(nFTsApiListOwnedCollectionsRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response\ - \ = fireblocks.nFTs().listOwnedCollections(ncwId, walletType, search,\ - \ pageCursor, pageSize, sort, order, status);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.n_f_ts.list_owned_collections(ncw_id, wallet_type,\ - \ search, page_cursor, page_size, sort, order, status);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.nFTs.listOwnedCollections(nFTsApiListOwnedCollectionsRequest);" - - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.nFTs().listOwnedCollections(ncwId, walletType, search, pageCursor,\ - \ pageSize, sort, order, status);" - - lang: Python - source: "response = fireblocks.n_f_ts.list_owned_collections(ncw_id, wallet_type,\ - \ search, page_cursor, page_size, sort, order, status);" - x-accepts: - - application/json - /nfts/tokens/{id}: - get: - description: | - Returns the requested token data. - operationId: getNFT - parameters: - - description: NFT ID - example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - responses: - "200": + $ref: "#/components/schemas/OnchainTransactionsPagedResponse" + description: Onchain transactions fetched successfully + "404": content: application/json: schema: - $ref: "#/components/schemas/TokenResponse" - description: "" - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - summary: List token data by ID + $ref: "#/components/schemas/NotFoundException" + description: Token not found + default: + $ref: "#/components/responses/Error" + summary: Get onchain transactions for a token tags: - - NFTs + - Tokenization x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.nFTs.getNFT(nFTsApiGetNFTRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenTransactions(tokenizationApiGetTokenTransactionsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.nFTs().getNFT(id); + code: "CompletableFuture>\ + \ response = fireblocks.tokenization().getTokenTransactions(id, startDate,\ + \ endDate, pageCursor, pageSize, sortBy, order);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.n_f_ts.get_n_f_t(id); + code: "response = fireblocks.tokenization.get_token_transactions(id, start_date,\ + \ end_date, page_cursor, page_size, sort_by, order);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.nFTs.getNFT(nFTsApiGetNFTRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenTransactions(tokenizationApiGetTokenTransactionsRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.nFTs().getNFT(id); + source: "CompletableFuture>\ + \ response = fireblocks.tokenization().getTokenTransactions(id, startDate,\ + \ endDate, pageCursor, pageSize, sortBy, order);" - lang: Python - source: response = fireblocks.n_f_ts.get_n_f_t(id); + source: "response = fireblocks.tokenization.get_token_transactions(id, start_date,\ + \ end_date, page_cursor, page_size, sort_by, order);" x-accepts: - application/json - put: - description: | - Updates the latest token metadata. - operationId: refreshNFTMetadata + /tokenization/tokens/{id}/transfers: + get: + description: "Returns a paginated list of ERC20 transfer events for the token\ + \ contract, optionally filtered by date range." + operationId: getTokenTransfers parameters: - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: false - schema: - format: uuid - type: string - style: simple - - description: NFT ID - example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd + - description: The token link id + example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb explode: false in: path name: id @@ -25236,67 +24964,28 @@ paths: schema: 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\ - \ same response as the first request. The idempotency key is valid for 24\ - \ hours." - explode: false - in: header - name: Idempotency-Key + - description: Start date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z + explode: true + in: query + name: startDate required: false schema: + format: date-time type: string - style: simple - responses: - "202": - description: "" - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - summary: Refresh token metadata - tags: - - NFTs - x-rate-limit-category: write - x-readme: - code-samples: - - language: typescript - code: "const response: Promise> = fireblocks.nFTs.refreshNFTMetadata(nFTsApiRefreshNFTMetadataRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response = fireblocks.nFTs().refreshNFTMetadata(id,\ - \ xEndUserWalletId, idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.n_f_ts.refresh_n_f_t_metadata(id, x_end_user_wallet_id,\ - \ idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> = fireblocks.nFTs.refreshNFTMetadata(nFTsApiRefreshNFTMetadataRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.nFTs().refreshNFTMetadata(id,\ - \ xEndUserWalletId, idempotencyKey);" - - lang: Python - source: "response = fireblocks.n_f_ts.refresh_n_f_t_metadata(id, x_end_user_wallet_id,\ - \ idempotency_key);" - x-accepts: - - application/json - /nfts/tokens: - get: - description: | - Returns the requested tokens data. - operationId: getNFTs - parameters: - - description: A comma separated list of NFT IDs. Up to 100 are allowed in a - single request. + style: form + - description: End date of the time range in ISO 8601 format + example: 2025-01-16T15:45:00Z explode: true in: query - name: ids - required: true + name: endDate + required: false schema: + format: date-time type: string style: form - - description: Page cursor to fetch + - description: Page cursor to get the next page + example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== explode: true in: query name: pageCursor @@ -25304,7 +24993,9 @@ paths: schema: type: string style: form - - description: Items per page (max 100) + - description: "Number of items per page (max 100), requesting more than 100\ + \ will return 100 items" + example: 10 explode: true in: query name: pageSize @@ -25312,34 +25003,47 @@ paths: schema: maximum: 100 minimum: 1 - type: number + type: integer style: form - - description: "Sort by param, it can be one param or a list of params separated\ - \ by comma" + - description: Sorting field for transfers explode: true in: query - name: sort + name: sortBy required: false schema: - items: - enum: - - collection.name - - name - - blockchainDescriptor - type: string - type: array + default: blockTimeStamp + enum: + - blockTimeStamp + type: string style: form - - description: "Order direction, it can be `ASC` for ascending or `DESC` for\ - \ descending" + - description: ASC / DESC ordering (default DESC) explode: true in: query name: order required: false schema: - default: ASC + default: DESC enum: - - DESC - ASC + - DESC + type: string + style: form + - description: Filter transfers by sender address + explode: true + in: query + name: sender + required: false + schema: + example: 0xabcdef1234567890abcdef1234567890abcdef12 + type: string + style: form + - description: Filter transfers by receiver address + explode: true + in: query + name: receiver + required: false + schema: + example: 0x1234567890abcdef1234567890abcdef12345678 type: string style: form responses: @@ -25347,131 +25051,98 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/GetNFTsResponse" - description: "" - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - summary: List tokens by IDs + $ref: "#/components/schemas/OnchainTransfersPagedResponse" + description: Onchain transfers fetched successfully + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/NotFoundException" + description: Token not found + default: + $ref: "#/components/responses/Error" + summary: Get onchain transfers for a token tags: - - NFTs + - Tokenization x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.nFTs.getNFTs(nFTsApiGetNFTsRequest);" + code: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenTransfers(tokenizationApiGetTokenTransfersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.nFTs().getNFTs(ids,\ - \ pageCursor, pageSize, sort, order);" + code: "CompletableFuture> response\ + \ = fireblocks.tokenization().getTokenTransfers(id, startDate, endDate,\ + \ pageCursor, pageSize, sortBy, order, sender, receiver);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.n_f_ts.get_n_f_ts(ids, page_cursor, page_size,\ - \ sort, order);" + code: "response = fireblocks.tokenization.get_token_transfers(id, start_date,\ + \ end_date, page_cursor, page_size, sort_by, order, sender, receiver);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.nFTs.getNFTs(nFTsApiGetNFTsRequest);" + source: "const response: Promise>\ + \ = fireblocks.tokenization.getTokenTransfers(tokenizationApiGetTokenTransfersRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.nFTs().getNFTs(ids,\ - \ pageCursor, pageSize, sort, order);" + source: "CompletableFuture> response\ + \ = fireblocks.tokenization().getTokenTransfers(id, startDate, endDate,\ + \ pageCursor, pageSize, sortBy, order, sender, receiver);" - lang: Python - source: "response = fireblocks.n_f_ts.get_n_f_ts(ids, page_cursor, page_size,\ - \ sort, order);" + source: "response = fireblocks.tokenization.get_token_transfers(id, start_date,\ + \ end_date, page_cursor, page_size, sort_by, order, sender, receiver);" x-accepts: - application/json - /nfts/ownership/tokens/{id}/status: - put: - description: | - Updates token status for a tenant, in all tenant vaults. - operationId: updateTokenOwnershipStatus - parameters: - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: false - schema: - format: uuid - type: string - style: simple - - description: NFT ID - example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd - explode: false - in: path - name: id - required: true - schema: - 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\ - \ 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/UpdateTokenOwnershipStatusDto" - required: true + /tokenization/tokens/count: + get: + description: Get the total count of linked tokens + operationId: getLinkedTokensCount responses: "200": - description: "" - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - summary: Update token ownership status + content: + application/json: + schema: + $ref: "#/components/schemas/LinkedTokensCount" + description: Count fetched successfully + default: + $ref: "#/components/responses/Error" + summary: Get the total count of linked tokens tags: - - NFTs - x-rate-limit-category: write + - Tokenization + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: tokens_count = fireblocks.get_linked_tokens_count() + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const tokensCount = await fireblocks.getLinkedTokensCount(); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.nFTs.updateTokenOwnershipStatus(nFTsApiUpdateTokenOwnershipStatusRequest);" + code: "const response: Promise> =\ + \ fireblocks.tokenization.getLinkedTokensCount();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.nFTs().updateTokenOwnershipStatus(updateTokenOwnershipStatusDto,\ - \ id, xEndUserWalletId, idempotencyKey);" + code: CompletableFuture> response = fireblocks.tokenization().getLinkedTokensCount(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.n_f_ts.update_token_ownership_status(update_token_ownership_status_dto,\ - \ id, x_end_user_wallet_id, idempotency_key);" + code: response = fireblocks.tokenization.get_linked_tokens_count(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.nFTs.updateTokenOwnershipStatus(nFTsApiUpdateTokenOwnershipStatusRequest);" + source: "const response: Promise> =\ + \ fireblocks.tokenization.getLinkedTokensCount();" - lang: Java - source: "CompletableFuture> response = fireblocks.nFTs().updateTokenOwnershipStatus(updateTokenOwnershipStatusDto,\ - \ id, xEndUserWalletId, idempotencyKey);" + source: CompletableFuture> response = fireblocks.tokenization().getLinkedTokensCount(); - lang: Python - source: "response = fireblocks.n_f_ts.update_token_ownership_status(update_token_ownership_status_dto,\ - \ id, x_end_user_wallet_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.tokenization.get_linked_tokens_count(); x-accepts: - application/json - /nfts/ownership/tokens/status: - put: - description: "Updates tokens status for a tenant, in all tenant vaults." - operationId: updateTokensOwnershipStatus + /tokenization/tokens/link: + post: + description: Link an a contract + operationId: link parameters: - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: false - schema: - format: uuid - 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -25487,69 +25158,77 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UpdateTokensOwnershipStatusRequest" + $ref: "#/components/schemas/TokenLinkRequestDto" required: true responses: "200": - description: All token statuses have been updated - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - description: Invalid data sent - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + content: + application/json: + schema: + $ref: "#/components/schemas/TokenLinkDto" + description: Token linked successfully + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/TokenLinkDto" + description: "" "404": - description: When ownership for token ID is not found - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - summary: Update tokens ownership status + description: Could not find the underlying contract to link to + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/TokenLinkExistsHttpError" + description: "Token link for {refId} already exists" + default: + $ref: "#/components/responses/Error" + summary: Link a contract tags: - - NFTs + - Tokenization x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.nFTs.updateTokensOwnershipStatus(nFTsApiUpdateTokensOwnershipStatusRequest);" + code: "const response: Promise> = fireblocks.tokenization.link(tokenizationApiLinkRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.nFTs().updateTokensOwnershipStatus(tokenOwnershipStatusUpdatePayload,\ - \ xEndUserWalletId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.tokenization().link(tokenLinkRequestDto,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.n_f_ts.update_tokens_ownership_status(token_ownership_status_update_payload,\ - \ x_end_user_wallet_id, idempotency_key);" + code: "response = fireblocks.tokenization.link(token_link_request_dto, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.nFTs.updateTokensOwnershipStatus(nFTsApiUpdateTokensOwnershipStatusRequest);" + source: "const response: Promise> = fireblocks.tokenization.link(tokenizationApiLinkRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.nFTs().updateTokensOwnershipStatus(tokenOwnershipStatusUpdatePayload,\ - \ xEndUserWalletId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.tokenization().link(tokenLinkRequestDto,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.n_f_ts.update_tokens_ownership_status(token_ownership_status_update_payload,\ - \ x_end_user_wallet_id, idempotency_key);" + source: "response = fireblocks.tokenization.link(token_link_request_dto, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /nfts/ownership/tokens/spam: - put: - description: "Updates tokens spam property for a tenant's token ownerships,\ - \ in all tenant vaults." - operationId: updateTokensOwnershipSpam + /trading/offers: + post: + description: |- + Retrieve all available offers across the workspace for a given asset pair. + Always operates in open scope — no provider or account selection required. + Returns a mix of indicative rates and committed quotes as applicable per provider. + + If no slippageBps is provided, it defaults to 50 bps (0.5%). + Slippage and settlement configuration do not affect the returned rate. + + 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, Editor. + + For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + operationId: fetchAllOffers parameters: - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: false - schema: - format: uuid - 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -25565,363 +25244,295 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UpdateTokensOwnershipSpamRequest" + $ref: "#/components/schemas/CreateOffersRequest" required: true responses: - "200": - description: All token spam properties have been updated + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/OffersResponse" + description: Offers response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" "400": - description: Invalid data sent + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Bad request: invalid input parameters, malformed request body,\ + \ or validation failure." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": - description: When ownership for token ID is not found + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Update tokens ownership spam property + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted access." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get all offers tags: - - NFTs - x-rate-limit-category: write + - Trading (Beta) + x-rate-limit-category: external_query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.nFTs.updateTokensOwnershipSpam(nFTsApiUpdateTokensOwnershipSpamRequest);" + code: "const response: Promise> = fireblocks.tradingBeta.fetchAllOffers(tradingBetaApiFetchAllOffersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.nFTs().updateTokensOwnershipSpam(tokenOwnershipSpamUpdatePayload,\ - \ xEndUserWalletId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.tradingBeta().fetchAllOffers(createOffersRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.n_f_ts.update_tokens_ownership_spam(token_ownership_spam_update_payload,\ - \ x_end_user_wallet_id, idempotency_key);" + code: "response = fireblocks.trading_beta.fetch_all_offers(create_offers_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.nFTs.updateTokensOwnershipSpam(nFTsApiUpdateTokensOwnershipSpamRequest);" + source: "const response: Promise> = fireblocks.tradingBeta.fetchAllOffers(tradingBetaApiFetchAllOffersRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.nFTs().updateTokensOwnershipSpam(tokenOwnershipSpamUpdatePayload,\ - \ xEndUserWalletId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.tradingBeta().fetchAllOffers(createOffersRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.n_f_ts.update_tokens_ownership_spam(token_ownership_spam_update_payload,\ - \ x_end_user_wallet_id, idempotency_key);" + source: "response = fireblocks.trading_beta.fetch_all_offers(create_offers_request,\ + \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /connections: + /trading/orders: get: - description: Get open Web3 connections. - operationId: get + description: |- + Retrieve a paginated list of orders with optional filtering by account, provider, status, and time range. + + 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). + operationId: getOrders parameters: - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id + - description: pageSize for pagination. + explode: true + in: query + name: pageSize + required: true + schema: + maximum: 100 + minimum: 1 + type: integer + style: form + - explode: true + in: query + name: pageCursor required: false schema: - format: uuid + minLength: 1 type: string - style: simple - - description: List order; ascending or descending. + style: form + - description: ASC / DESC ordering (default DESC) explode: true in: query name: order required: false schema: - default: ASC + default: DESC enum: - ASC - DESC type: string style: form - - description: Parsed filter object - examples: - object: - description: "" - summary: The filter object - value: - id: string - userId: string - vaultAccountId: number - connectionMethod: string - feeLevel: string - appUrl: string - appName: string - stringified: - description: |- - About stringified parsed objects: - - * Each key-value pair is separated by '=', and each pair is separated by ',' (you can use [`qs`](https://www.npmjs.com/package/qs) package for this) - summary: The stringified parsed object - value: "id=string,userId=string,vaultAccountId=number,connectionMethod=string,feeLevel=string,appUrl=string,appName=string" + - description: Filter by accountId. explode: true in: query - name: filter + name: accountId required: false schema: - $ref: "#/components/schemas/get_filter_parameter" + items: + minLength: 1 + type: string + type: array style: form - - description: Property to sort Web3 connections by. + - description: Filter by providerId. explode: true in: query - name: sort + name: providerId required: false schema: - default: createdAt - enum: - - id - - userId - - vaultAccountId - - createdAt - - feeLevel - - appUrl - - appName - type: string + items: + minLength: 1 + type: string + type: array style: form - - description: Amount of results to return in the next page. + - description: Filter by order status. explode: true in: query - name: pageSize + name: statuses required: false schema: - default: 10 - maximum: 50 - type: number + items: + $ref: "#/components/schemas/OrderStatus" + type: array style: form - - description: Cursor to the next page - explode: true + - explode: true in: query - name: next + name: startTime required: false schema: - type: string + minimum: 0 + type: integer style: form - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/GetConnectionsResponse" - description: "" - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - description: Query parameters were invalid - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "500": - description: Something went wrong - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - summary: List all open Web3 connections. - tags: - - Web3 connections - x-rate-limit-category: query - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.web3Connections.get(web3ConnectionsApiGetRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response =\ - \ fireblocks.web3Connections().get(order, filter, sort, pageSize, next,\ - \ xEndUserWalletId);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.web3_connections.get(order, filter, sort, page_size,\ - \ next, x_end_user_wallet_id);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.web3Connections.get(web3ConnectionsApiGetRequest);" - - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.web3Connections().get(order, filter, sort, pageSize, next,\ - \ xEndUserWalletId);" - - lang: Python - source: "response = fireblocks.web3_connections.get(order, filter, sort, page_size,\ - \ next, x_end_user_wallet_id);" - x-accepts: - - application/json - /connections/wc: - post: - description: |- - Initiate a new Web3 connection. - - * Note: After this succeeds, make a request to `PUT /v1/connections/wc/{id}` (below) to approve or reject the new Web3 connection. - operationId: create - 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 + - explode: true + in: query + name: endTime required: false schema: - type: string - style: simple - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id + minimum: 0 + type: integer + style: form + - explode: true + in: query + name: assetConversionType required: false schema: - format: uuid + description: Filter by asset conversion type. + enum: + - DIGITAL_ONLY + - FIAT type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateConnectionRequest" - required: true + style: form responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/CreateConnectionResponse" - description: Web3 connection initiated successfully - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - description: Invalid data sent + $ref: "#/components/schemas/GetOrdersResponse" + description: Orders response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "500": - description: Something went wrong + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Create a new Web3 connection. - tags: - - Web3 connections - x-rate-limit-category: high_compute - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.web3Connections.create(web3ConnectionsApiCreateRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response\ - \ = fireblocks.web3Connections().create(createConnectionRequest, idempotencyKey,\ - \ xEndUserWalletId);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.web3_connections.create(create_connection_request,\ - \ idempotency_key, x_end_user_wallet_id);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.web3Connections.create(web3ConnectionsApiCreateRequest);" - - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.web3Connections().create(createConnectionRequest, idempotencyKey,\ - \ xEndUserWalletId);" - - lang: Python - source: "response = fireblocks.web3_connections.create(create_connection_request,\ - \ idempotency_key, x_end_user_wallet_id);" - x-content-type: application/json - x-accepts: - - application/json - /connections/wc/{id}: - delete: - description: Remove a Web3 connection - operationId: remove - parameters: - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: false - schema: - format: uuid - type: string - style: simple - - description: The ID of the existing Web3 connection to remove. - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - responses: - "200": - description: Connection removed successfully + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted access." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": - description: Connection not found + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Rate limit exceeded: slow down and retry later." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "500": - description: Something went wrong + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Remove an existing Web3 connection. + default: + $ref: "#/components/responses/Error" + summary: Get orders tags: - - Web3 connections - x-rate-limit-category: high_compute + - Trading (Beta) + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.web3Connections.remove(web3ConnectionsApiRemoveRequest);" + code: "const response: Promise> =\ + \ fireblocks.tradingBeta.getOrders(tradingBetaApiGetOrdersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.web3Connections().remove(id,\ - \ xEndUserWalletId);" + code: "CompletableFuture> response = fireblocks.tradingBeta().getOrders(pageSize,\ + \ pageCursor, order, accountId, providerId, statuses, startTime, endTime,\ + \ assetConversionType);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.web3_connections.remove(id, x_end_user_wallet_id);" + code: "response = fireblocks.trading_beta.get_orders(page_size, page_cursor,\ + \ order, account_id, provider_id, statuses, start_time, end_time, asset_conversion_type);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.web3Connections.remove(web3ConnectionsApiRemoveRequest);" + source: "const response: Promise> =\ + \ fireblocks.tradingBeta.getOrders(tradingBetaApiGetOrdersRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.web3Connections().remove(id,\ - \ xEndUserWalletId);" + source: "CompletableFuture> response = fireblocks.tradingBeta().getOrders(pageSize,\ + \ pageCursor, order, accountId, providerId, statuses, startTime, endTime,\ + \ assetConversionType);" - lang: Python - source: "response = fireblocks.web3_connections.remove(id, x_end_user_wallet_id);" + source: "response = fireblocks.trading_beta.get_orders(page_size, page_cursor,\ + \ order, account_id, provider_id, statuses, start_time, end_time, asset_conversion_type);" x-accepts: - application/json - put: + post: description: |- - Submit a response to *approve* or *reject* an initiated Web3 connection. - * Note: This call is used to complete your `POST /v1/connections/wc/` request. + Create an order to buy or sell an asset. If no source is given, an external source will be use. - After this succeeds, your new Web3 connection is created and functioning. - operationId: submit + 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, Editor. + + For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + operationId: createOrder parameters: - - description: The ID of the initiated Web3 connection to approve. - explode: false - in: path - name: id - required: true - schema: - 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -25933,86 +25544,122 @@ paths: schema: type: string style: simple - - description: Unique ID of the End-User wallet to the API request. Required - for end-user wallet operations. - explode: false - in: header - name: X-End-User-Wallet-Id - required: false - schema: - format: uuid - type: string - style: simple requestBody: content: application/json: schema: - $ref: "#/components/schemas/RespondToConnectionRequest" + $ref: "#/components/schemas/CreateOrderRequest" required: true responses: - "200": - description: Connection submitted successfully + "202": + content: + application/json: + schema: + $ref: "#/components/schemas/OrderDetails" + description: Order creation response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" "400": - description: Invalid data sent + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Bad request: invalid input parameters, malformed request body,\ + \ or validation failure." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": - description: Connection not found + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "500": - description: Something went wrong + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted access." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Respond to a pending Web3 connection request. + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Create an order tags: - - Web3 connections - x-rate-limit-category: high_compute + - Trading (Beta) + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.web3Connections.submit(web3ConnectionsApiSubmitRequest);" + code: "const response: Promise> = fireblocks.tradingBeta.createOrder(tradingBetaApiCreateOrderRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.web3Connections().submit(respondToConnectionRequest,\ - \ id, idempotencyKey, xEndUserWalletId);" + code: "CompletableFuture> response = fireblocks.tradingBeta().createOrder(createOrderRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.web3_connections.submit(respond_to_connection_request,\ - \ id, idempotency_key, x_end_user_wallet_id);" + code: "response = fireblocks.trading_beta.create_order(create_order_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.web3Connections.submit(web3ConnectionsApiSubmitRequest);" + source: "const response: Promise> = fireblocks.tradingBeta.createOrder(tradingBetaApiCreateOrderRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.web3Connections().submit(respondToConnectionRequest,\ - \ id, idempotencyKey, xEndUserWalletId);" + source: "CompletableFuture> response = fireblocks.tradingBeta().createOrder(createOrderRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.web3_connections.submit(respond_to_connection_request,\ - \ id, idempotency_key, x_end_user_wallet_id);" + source: "response = fireblocks.trading_beta.create_order(create_order_request,\ + \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /address_registry/legal_entities/{address}: + /trading/orders/{orderId}: get: - 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 + description: |- + Retrieve detailed information about a specific order by its 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). + operationId: getOrder parameters: - - description: Blockchain address to look up + - description: The ID of the order to fetch. explode: false in: path - name: address + name: orderId required: true schema: - example: 0x742d35cc6634c0532925a3b844bc9e7595f0beb0 + minLength: 1 type: string style: simple responses: @@ -26020,21 +25667,28 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryLegalEntity" - description: Legal entity found + $ref: "#/components/schemas/OrderDetails" + description: Order response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "400": + "401": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryError" - 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." + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted access." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" @@ -26042,146 +25696,81 @@ paths: 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." + $ref: "#/components/schemas/TradingErrorSchema" + description: "Not found: requested resource does not exist (e.g., order)." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Look up legal entity by blockchain address - tags: - - Compliance - x-rate-limit-category: high_compute - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getLegalEntityForAddress(complianceApiGetLegalEntityForAddressRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response - = fireblocks.compliance().getLegalEntityForAddress(address); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.compliance.get_legal_entity_for_address(address); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.getLegalEntityForAddress(complianceApiGetLegalEntityForAddressRequest);" - - lang: Java - source: CompletableFuture> response - = fireblocks.compliance().getLegalEntityForAddress(address); - - lang: Python - source: response = fireblocks.compliance.get_legal_entity_for_address(address); - x-accepts: - - application/json - /address_registry/tenant: - delete: - description: Opts the workspace out. No request body. Response uses the same - JSON shape as GET; status is OPTED_OUT. - operationId: optOutAddressRegistryTenant - responses: - "200": + "429": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryTenantRegistryResponse" - description: Success; response body includes status OPTED_OUT + $ref: "#/components/schemas/TradingErrorSchema" + description: "Rate limit exceeded: slow down and retry later." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Opt the workspace out of the address registry - tags: - - Compliance - x-rate-limit-category: write - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.optOutAddressRegistryTenant();" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> - response = fireblocks.compliance().optOutAddressRegistryTenant(); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.compliance.opt_out_address_registry_tenant(); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.optOutAddressRegistryTenant();" - - lang: Java - source: CompletableFuture> - response = fireblocks.compliance().optOutAddressRegistryTenant(); - - lang: Python - source: response = fireblocks.compliance.opt_out_address_registry_tenant(); - x-accepts: - - application/json - get: - description: Returns whether the workspace is `OPTED_IN` or `OPTED_OUT` of the - address registry. - operationId: getAddressRegistryTenantParticipationStatus - responses: - "200": + "5XX": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryTenantRegistryResponse" - description: Participation status in the response body + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get address registry participation status for the authenticated workspace + summary: Get order details tags: - - Compliance + - Trading (Beta) x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getAddressRegistryTenantParticipationStatus();" + code: "const response: Promise> = fireblocks.tradingBeta.getOrder(tradingBetaApiGetOrderRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> - response = fireblocks.compliance().getAddressRegistryTenantParticipationStatus(); + code: CompletableFuture> response = fireblocks.tradingBeta().getOrder(orderId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.get_address_registry_tenant_participation_status(); + code: response = fireblocks.trading_beta.get_order(order_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.getAddressRegistryTenantParticipationStatus();" + source: "const response: Promise> = fireblocks.tradingBeta.getOrder(tradingBetaApiGetOrderRequest);" - lang: Java - source: CompletableFuture> - response = fireblocks.compliance().getAddressRegistryTenantParticipationStatus(); + source: CompletableFuture> response = fireblocks.tradingBeta().getOrder(orderId); - lang: Python - source: response = fireblocks.compliance.get_address_registry_tenant_participation_status(); + source: response = fireblocks.trading_beta.get_order(order_id); x-accepts: - application/json - post: - description: Opts the workspace in. No request body. Response uses the same - JSON shape as GET; status is OPTED_IN. - operationId: optInAddressRegistryTenant + /trading/orders/{orderId}/requirement: + get: + description: |- + Fetch order requirement details for an order that is in `AWAITING_INFORMATION` status. + + The response includes `requirementId` and `dueBy` metadata, a + `requiredData` JSON Schema (Draft-7) describing the shape of the `data` object expected on + `POST /trading/orders/{orderId}/requirement/data`, and `requiredFiles` descriptors for any files the + provider requires (uploaded via `POST /trading/orders/{orderId}/requirement/file`). + + 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). + operationId: getOrderRequirements 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." + - description: The ID of the order for which the order requirement is issued. explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: orderId + required: true schema: + minLength: 1 type: string style: simple responses: @@ -26189,182 +25778,266 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryTenantRegistryResponse" - description: Success; response body includes status OPTED_IN + $ref: "#/components/schemas/OrderRequirementDetails" + description: Order requirement details headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Opt the workspace in to the address registry - tags: - - Compliance - x-rate-limit-category: write - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.optInAddressRegistryTenant(complianceApiOptInAddressRegistryTenantRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> - response = fireblocks.compliance().optInAddressRegistryTenant(idempotencyKey); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.compliance.opt_in_address_registry_tenant(idempotency_key); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.optInAddressRegistryTenant(complianceApiOptInAddressRegistryTenantRequest);" - - lang: Java - source: CompletableFuture> - response = fireblocks.compliance().optInAddressRegistryTenant(idempotencyKey); - - lang: Python - source: response = fireblocks.compliance.opt_in_address_registry_tenant(idempotency_key); - x-accepts: - - application/json - /address_registry/vaults: - delete: - description: Removes all vault accounts from the workspace opt-out list. - operationId: removeAllAddressRegistryVaultOptOuts - responses: - "200": + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + 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/TradingErrorSchema" + description: "Not found: the order does not exist." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "409": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryRemoveAllVaultOptOutsResponse" - description: All opt-outs cleared; response body includes `removedCount`. + $ref: "#/components/schemas/TradingErrorSchema" + description: "Conflict: the order exists but does not have an active order\ + \ requirement (e.g., the order is not in `AWAITING_INFORMATION`)." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Remove all vault-level address registry opt-outs for the workspace + summary: Get order requirement details for an order tags: - - Compliance - x-rate-limit-category: write + - Trading (Beta) + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.removeAllAddressRegistryVaultOptOuts();" + code: "const response: Promise>\ + \ = fireblocks.tradingBeta.getOrderRequirements(tradingBetaApiGetOrderRequirementsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> - response = fireblocks.compliance().removeAllAddressRegistryVaultOptOuts(); + code: CompletableFuture> response = + fireblocks.tradingBeta().getOrderRequirements(orderId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.remove_all_address_registry_vault_opt_outs(); + code: response = fireblocks.trading_beta.get_order_requirements(order_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.removeAllAddressRegistryVaultOptOuts();" + source: "const response: Promise>\ + \ = fireblocks.tradingBeta.getOrderRequirements(tradingBetaApiGetOrderRequirementsRequest);" - lang: Java - source: CompletableFuture> - response = fireblocks.compliance().removeAllAddressRegistryVaultOptOuts(); + source: CompletableFuture> response = + fireblocks.tradingBeta().getOrderRequirements(orderId); - lang: Python - source: response = fireblocks.compliance.remove_all_address_registry_vault_opt_outs(); + source: response = fireblocks.trading_beta.get_order_requirements(order_id); x-accepts: - application/json - get: - description: "Lists vault accounts that are opted out of the address registry\ - \ for this workspace. Pagination uses `next` and `prev` cursors from the response.\ - \ If `pageSize` is omitted, **50** items are returned per page; allowed range\ - \ is **1–100** per request." - operationId: listAddressRegistryVaultOptOuts + /trading/orders/{orderId}/requirement/data: + post: + description: |- + Submit the user's textual response to an order requirement on an order that is in `AWAITING_INFORMATION` status. + + The request body carries `data` — a free-form object conforming to the `requiredData` JSON Schema + returned by the GET endpoint. Any required files are uploaded separately via + `POST /trading/orders/{orderId}/requirement/file`. + + 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, Editor. + + For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + operationId: submitOrderRequirements parameters: - - description: Opaque cursor from a previous response (`next` or `prev`). Omit - for the first page. - explode: true - in: query - name: pageCursor + - 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: - example: eyJvZmZzZXQiOjAsInBhZ2VTaXplIjoxMH0 type: string - style: form - - description: Page size. Default **50** if omitted; must be between **1** and - **100**. - explode: true - in: query - name: pageSize - required: false - schema: - default: 50 - example: 50 - format: int32 - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Sort direction by vault account id. Omit for ascending; use the - enum value for descending. - explode: true - in: query - name: order - required: false + style: simple + - description: The ID of the order to submit the order requirement response + for. + explode: false + in: path + name: orderId + required: true schema: - $ref: "#/components/schemas/AddressRegistryVaultListOrder" - style: form + minLength: 1 + type: string + style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SubmitOrderRequirementRequest" + required: true responses: - "200": + "202": + description: Order requirement submission accepted for processing. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryListVaultOptOutsResponse" - description: Page of vault opt-out rows + $ref: "#/components/schemas/TradingErrorSchema" + description: "Bad request: invalid input parameters, malformed request body,\ + \ or validation failure." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "400": + "401": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryError" - description: Validation error (e.g. invalid or malformed pageCursor) + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + 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/TradingErrorSchema" + description: "Not found: the order does not exist." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Conflict: the order exists but does not have an active order\ + \ requirement (e.g., the order is not in `AWAITING_INFORMATION`)." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List vault-level address registry opt-outs (paginated) + summary: Submit a response to an order requirement tags: - - Compliance - x-rate-limit-category: read + - Trading (Beta) + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.listAddressRegistryVaultOptOuts(complianceApiListAddressRegistryVaultOptOutsRequest);" + code: "const response: Promise> = fireblocks.tradingBeta.submitOrderRequirements(tradingBetaApiSubmitOrderRequirementsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.compliance().listAddressRegistryVaultOptOuts(pageCursor,\ - \ pageSize, order);" + code: "CompletableFuture> response = fireblocks.tradingBeta().submitOrderRequirements(submitOrderRequirementRequest,\ + \ orderId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.list_address_registry_vault_opt_outs(page_cursor,\ - \ page_size, order);" + code: "response = fireblocks.trading_beta.submit_order_requirements(submit_order_requirement_request,\ + \ order_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.listAddressRegistryVaultOptOuts(complianceApiListAddressRegistryVaultOptOutsRequest);" + source: "const response: Promise> = fireblocks.tradingBeta.submitOrderRequirements(tradingBetaApiSubmitOrderRequirementsRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.compliance().listAddressRegistryVaultOptOuts(pageCursor,\ - \ pageSize, order);" + source: "CompletableFuture> response = fireblocks.tradingBeta().submitOrderRequirements(submitOrderRequirementRequest,\ + \ orderId, idempotencyKey);" - lang: Python - source: "response = fireblocks.compliance.list_address_registry_vault_opt_outs(page_cursor,\ - \ page_size, order);" + source: "response = fireblocks.trading_beta.submit_order_requirements(submit_order_requirement_request,\ + \ order_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json + /trading/orders/{orderId}/requirement/file: post: - description: Adds one or more vault account ids to the workspace opt-out list - for the address registry. - operationId: addAddressRegistryVaultOptOuts + description: |- + Upload a single file (multipart/form-data) in response to an order requirement on an order that is in + `AWAITING_INFORMATION` status. Call this endpoint once per required file. + + Send `fileKey` (matching a `fileKey` from `requiredFiles` on the GET response) and the binary `file`. Its type + must be one of the supported file formats. Fireblocks encrypts each file and uploads it individually to the + underlying provider. The textual response is submitted separately via + `POST /trading/orders/{orderId}/requirement/data`. + + 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, Editor. + + For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + operationId: uploadOrderRequirementFile 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\ @@ -26377,224 +26050,354 @@ paths: schema: type: string style: simple + - description: The ID of the order to upload the order requirement file for. + explode: false + in: path + name: orderId + required: true + schema: + minLength: 1 + type: string + style: simple requestBody: content: - application/json: + multipart/form-data: schema: - $ref: "#/components/schemas/AddressRegistryAddVaultOptOutsRequest" + $ref: "#/components/schemas/OrderRequirementFileUpload" required: true responses: - "200": + "202": + description: File accepted for processing. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryAddVaultOptOutsResponse" - description: Opt-outs recorded; response body includes `acceptedCount`. + $ref: "#/components/schemas/TradingErrorSchema" + description: "Bad request: unsupported file type, missing fileKey, malformed\ + \ request, or validation failure." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "400": + "401": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryError" - description: Validation error (e.g. empty list or invalid vault ids) + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + 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/TradingErrorSchema" + description: "Not found: the order does not exist." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Conflict: the order exists but does not have an active order\ + \ requirement (e.g., the order is not in `AWAITING_INFORMATION`)." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Add vault accounts to the address registry opt-out list + summary: Upload a file for an order requirement tags: - - Compliance + - Trading (Beta) x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.addAddressRegistryVaultOptOuts(complianceApiAddAddressRegistryVaultOptOutsRequest);" + code: "const response: Promise> = fireblocks.tradingBeta.uploadOrderRequirementFile(tradingBetaApiUploadOrderRequirementFileRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.compliance().addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest,\ + code: "CompletableFuture> response = fireblocks.tradingBeta().uploadOrderRequirementFile(orderId,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.add_address_registry_vault_opt_outs(address_registry_add_vault_opt_outs_request,\ + code: "response = fireblocks.trading_beta.upload_order_requirement_file(order_id,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.addAddressRegistryVaultOptOuts(complianceApiAddAddressRegistryVaultOptOutsRequest);" + source: "const response: Promise> = fireblocks.tradingBeta.uploadOrderRequirementFile(tradingBetaApiUploadOrderRequirementFileRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.compliance().addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest,\ + source: "CompletableFuture> response = fireblocks.tradingBeta().uploadOrderRequirementFile(orderId,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.compliance.add_address_registry_vault_opt_outs(address_registry_add_vault_opt_outs_request,\ + source: "response = fireblocks.trading_beta.upload_order_requirement_file(order_id,\ \ idempotency_key);" - x-content-type: application/json + x-content-type: multipart/form-data x-accepts: - application/json - /address_registry/vaults/{vaultAccountId}: - delete: - description: "Removes this vault account id from the workspace opt-out list\ - \ if it is present; otherwise the call still succeeds. Response body matches\ - \ GET (`optedOut` is `false` after success). To clear the whole list, use\ - \ `DELETE /v1/address_registry/vaults`." - operationId: removeAddressRegistryVaultOptOut + /trading/providers: + get: + description: | + Retrieve a list of all available external providers supporting trading activities through the platform. + + **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). + operationId: getTradingProviders parameters: - - description: Vault account id (non-negative integer). - explode: false - in: path - name: vaultAccountId - required: true + - description: Page size for pagination. + explode: true + in: query + name: pageSize + required: false schema: - example: 10001 - format: int32 - minimum: 0 + default: 20 + maximum: 100 + minimum: 1 type: integer - style: simple + style: form + - description: Page cursor for pagination. + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryRemoveVaultOptOutResponse" - description: Success; `optedOut` is false (list entry removed if it existed) + $ref: "#/components/schemas/ProvidersListResponse" + description: Providers response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "400": + "401": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryError" - description: Invalid path parameter (e.g. negative or out-of-range vault - account id) + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted access." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Remove a single vault account from the address registry opt-out list + summary: Get providers tags: - - Compliance - x-rate-limit-category: write + - Trading (Beta) + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.removeAddressRegistryVaultOptOut(complianceApiRemoveAddressRegistryVaultOptOutRequest);" + code: "const response: Promise>\ + \ = fireblocks.tradingBeta.getTradingProviders(tradingBetaApiGetTradingProvidersRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> - response = fireblocks.compliance().removeAddressRegistryVaultOptOut(vaultAccountId); + code: "CompletableFuture> response =\ + \ fireblocks.tradingBeta().getTradingProviders(pageSize, pageCursor);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.remove_address_registry_vault_opt_out(vault_account_id); + code: "response = fireblocks.trading_beta.get_trading_providers(page_size,\ + \ page_cursor);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.removeAddressRegistryVaultOptOut(complianceApiRemoveAddressRegistryVaultOptOutRequest);" + source: "const response: Promise>\ + \ = fireblocks.tradingBeta.getTradingProviders(tradingBetaApiGetTradingProvidersRequest);" - lang: Java - source: CompletableFuture> - response = fireblocks.compliance().removeAddressRegistryVaultOptOut(vaultAccountId); + source: "CompletableFuture> response =\ + \ fireblocks.tradingBeta().getTradingProviders(pageSize, pageCursor);" - lang: Python - source: response = fireblocks.compliance.remove_address_registry_vault_opt_out(vault_account_id); + source: "response = fireblocks.trading_beta.get_trading_providers(page_size,\ + \ page_cursor);" x-accepts: - application/json + /trading/providers/{providerId}: get: - description: "Returns whether this vault account is on the workspace opt-out\ - \ list (`optedOut` true or false). List, add, and clear-all are available\ - \ on `/v1/address_registry/vaults`; this path reads or removes one vault." - operationId: getAddressRegistryVaultOptOut + description: | + 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). + operationId: getTradingProviderById parameters: - - description: Vault account id (non-negative integer). + - description: The unique identifier of the provider. explode: false in: path - name: vaultAccountId + name: providerId required: true schema: - example: 10001 - format: int32 - minimum: 0 - type: integer + minLength: 1 + type: string style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryGetVaultOptOutResponse" - description: Current opt-out flag for the vault + $ref: "#/components/schemas/TradingProvider" + description: Single provider details. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + 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/TradingErrorSchema" + description: Provider not found. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "400": + "429": content: application/json: schema: - $ref: "#/components/schemas/AddressRegistryError" - description: Invalid path parameter (e.g. negative or out-of-range vault - account id) + $ref: "#/components/schemas/TradingErrorSchema" + description: Rate limit exceeded - slow down and retry later. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get whether a vault account is opted out of the address registry + summary: Get trading provider by ID tags: - - Compliance + - Trading (Beta) x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getAddressRegistryVaultOptOut(complianceApiGetAddressRegistryVaultOptOutRequest);" + code: "const response: Promise> = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> - response = fireblocks.compliance().getAddressRegistryVaultOptOut(vaultAccountId); + code: CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.get_address_registry_vault_opt_out(vault_account_id); + 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.compliance.getAddressRegistryVaultOptOut(complianceApiGetAddressRegistryVaultOptOutRequest);" + source: "const response: Promise> = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);" - lang: Java - source: CompletableFuture> - response = fireblocks.compliance().getAddressRegistryVaultOptOut(vaultAccountId); + source: CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId); - lang: Python - source: response = fireblocks.compliance.get_address_registry_vault_opt_out(vault_account_id); + source: response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id); x-accepts: - application/json - /screening/travel_rule/transaction/validate: + /trading/quotes: post: description: |- - Validate Travel Rule transactions. - Checks what beneficiary VASP details are required by your jurisdiction and the beneficiary's jurisdiction. - **Deprecation Notice** This endpoint will be deprecated soon in favor of the [validate full](https://developers.fireblocks.com/reference/validatefulltravelruletransaction) endpoint. Please update your integrations to use the [validate full](https://developers.fireblocks.com/reference/validatefulltravelruletransaction) endpoint to ensure compatibility with future releases. - Checks what beneficiary VASP details are required by your jurisdiction and the beneficiary's jurisdiction. - Learn more about Fireblocks Travel Rule management in the following [guide](https://developers.fireblocks.com/docs/define-travel-rule-policies). + Generate a time-limited quote for asset conversion, providing exchange rate and amount calculations. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: validateTravelRuleTransaction + 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, Editor. + + For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes). + operationId: createQuote parameters: - - description: |- - Specifies the notation of the transaction. Possible values are: - `notabene`: Uses Notabene notation (default behavior). - `fireblocks`: Uses Fireblocks notation, with automatic translation of asset tickers and amounts. - ``: Defaults to `notabene` for backward compatibility. - **Note:** The default value for the `notation` parameter will change from `notabene` to `fireblocks` Update your integrations accordingly. - explode: true - in: query - name: notation - required: false - schema: - $ref: "#/components/schemas/TravelRuleNotationEnum" - style: form - 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\ @@ -26610,43 +26413,110 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TravelRuleValidateTransactionRequest" + $ref: "#/components/schemas/CreateQuote" required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/TravelRuleValidateTransactionResponse" - description: Transaction validated successfully + $ref: "#/components/schemas/QuotesResponse" + description: Quote created + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Bad request: invalid input parameters, malformed request body,\ + \ or validation failure." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted access." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Validate Travel Rule Transaction + summary: Create a quote tags: - - Travel Rule - x-internal: true + - Trading (Beta) x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.tradingBeta.createQuote(tradingBetaApiCreateQuoteRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.tradingBeta().createQuote(createQuote,\ + \ idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.trading_beta.create_quote(create_quote, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.tradingBeta.createQuote(tradingBetaApiCreateQuoteRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.tradingBeta().createQuote(createQuote,\ + \ idempotencyKey);" + - lang: Python + source: "response = fireblocks.trading_beta.create_quote(create_quote, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /screening/travel_rule/transaction/validate/full: + /trading/rates: post: description: |- - Validate Full Travel Rule transactions. + Retrieve indicative exchange rate from specified providers for a given asset pair. + Rates are non-executable price signals intended for discovery and display purposes. - Checks for all required information on the originator and beneficiary VASPs. - operationId: validateFullTravelRuleTransaction + 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). + operationId: fetchRates parameters: - - description: |- - Specifies the notation of the transaction. Possible values are: - `notabene`: Uses Notabene notation (default behavior). - `fireblocks`: Uses Fireblocks notation, with automatic translation of asset tickers and amounts. - ``: Defaults to `notabene` for backward compatibility. - **Note:** The default value for the `notation` parameter will change from `notabene` to `fireblocks` Update your integrations accordingly. - explode: true - in: query - name: notation - required: false - schema: - $ref: "#/components/schemas/TravelRuleNotationEnum" - style: form - 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\ @@ -26662,123 +26532,242 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TravelRuleValidateFullTransactionRequest" + $ref: "#/components/schemas/RatesRequest" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TravelRuleValidateTransactionResponse" - description: Transaction validated successfully + $ref: "#/components/schemas/RatesResponse" + description: Rate response + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Bad request: invalid input parameters, malformed request body,\ + \ or validation failure." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Forbidden: insufficient permissions, disabled feature, or\ + \ restricted access." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "429": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: "Rate limit exceeded: slow down and retry later." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/TradingErrorSchema" + description: Internal error while processing the request. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Validate Full Travel Rule Transaction + summary: Get rates tags: - - Travel Rule - x-rate-limit-category: write + - Trading (Beta) + x-rate-limit-category: external_query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.travelRule.validateFullTravelRuleTransaction(travelRuleApiValidateFullTravelRuleTransactionRequest);" + code: "const response: Promise> = fireblocks.tradingBeta.fetchRates(tradingBetaApiFetchRatesRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.travelRule().validateFullTravelRuleTransaction(travelRuleValidateFullTransactionRequest,\ - \ notation, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.tradingBeta().fetchRates(ratesRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.travel_rule.validate_full_travel_rule_transaction(travel_rule_validate_full_transaction_request,\ - \ notation, idempotency_key);" + code: "response = fireblocks.trading_beta.fetch_rates(rates_request, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.travelRule.validateFullTravelRuleTransaction(travelRuleApiValidateFullTravelRuleTransactionRequest);" + source: "const response: Promise> = fireblocks.tradingBeta.fetchRates(tradingBetaApiFetchRatesRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.travelRule().validateFullTravelRuleTransaction(travelRuleValidateFullTransactionRequest,\ - \ notation, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.tradingBeta().fetchRates(ratesRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.travel_rule.validate_full_travel_rule_transaction(travel_rule_validate_full_transaction_request,\ - \ notation, idempotency_key);" + source: "response = fireblocks.trading_beta.fetch_rates(rates_request, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /screening/travel_rule/vasp/{did}: + /estimate_network_fee: get: description: |- - Get VASP Details. + Gets the estimated required fee for an asset. + Fireblocks fetches, calculates and caches the result every 30 seconds. + Customers should query this API while taking the caching interval into consideration. + Notes: + - The `networkFee` parameter is the `gasPrice` with a given delta added, multiplied by the gasLimit plus the delta. - The estimation provided depends on the asset type. + - For UTXO-based assets, the response contains the `feePerByte` parameter + - For ETH-based and all EVM based assets, the response will contain `gasPrice` parameter. This is calculated by adding the `baseFee` to the `actualPriority` based on the latest 12 blocks. The response for ETH-based contains the `baseFee`, `gasPrice`, and `priorityFee` parameters. + - For ADA-based assets, the response will contain the parameter `networkFee` and `feePerByte` parameters. + - For XRP and XLM, the response will contain the transaction fee. + - For other assets, the response will contain the `networkFee` parameter. - Returns information about a VASP that has the specified DID. - operationId: getVASPByDID + Learn more about Fireblocks Fee Management in the following [guide](https://developers.fireblocks.com/reference/estimate-transaction-fee). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: estimateNetworkFee parameters: - - explode: false - in: path - name: did - required: true - schema: - type: string - style: simple - - description: "A CSV of fields to return. Choose from the following options:" + - description: The asset for which to estimate the fee explode: true in: query - name: fields - required: false + name: assetId + required: true schema: - $ref: "#/components/schemas/TravelRuleFieldsEnum" + type: string + x-fb-entity: asset style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TravelRuleVASP" - description: Transaction validated successfully - "400": - description: Invalid request body - "500": - description: Internal server error - summary: Get VASP details + $ref: "#/components/schemas/EstimatedNetworkFeeResponse" + description: Estimated fees response + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Estimate the required fee for an asset tags: - - Travel Rule - x-rate-limit-category: query + - Transactions + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: fee_result = fireblocks.get_fee_for_asset(asset_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const feeResult = await fireblocks.getFeeForAsset(assetId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.travelRule.getVASPByDID(travelRuleApiGetVASPByDIDRequest);" + code: "const response: Promise>\ + \ = fireblocks.transactions.estimateNetworkFee(transactionsApiEstimateNetworkFeeRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.travelRule().getVASPByDID(did,\ - \ fields);" + code: CompletableFuture> response + = fireblocks.transactions().estimateNetworkFee(assetId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.travel_rule.get_v_a_s_p_by_d_i_d(did, fields);" + code: response = fireblocks.transactions.estimate_network_fee(asset_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.travelRule.getVASPByDID(travelRuleApiGetVASPByDIDRequest);" + source: "const response: Promise>\ + \ = fireblocks.transactions.estimateNetworkFee(transactionsApiEstimateNetworkFeeRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.travelRule().getVASPByDID(did,\ - \ fields);" + source: CompletableFuture> response + = fireblocks.transactions().estimateNetworkFee(assetId); - lang: Python - source: "response = fireblocks.travel_rule.get_v_a_s_p_by_d_i_d(did, fields);" + source: response = fireblocks.transactions.estimate_network_fee(asset_id); x-accepts: - application/json - /screening/travel_rule/vasp: + /transactions: get: - description: |- - Get All VASPs. + description: | + Get the transaction history for your workspace. - Returns a list of VASPs. VASPs can be searched and sorted. - operationId: getVASPs + **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getTransactions parameters: - - description: Field to order by - example: ASC + - description: Cursor returned in next-page header that can be used to fetch + the next page of results explode: true in: query - name: order + name: next + required: false + schema: + type: string + style: form + - description: Cursor returned in prev-page header that can be used to fetch + the previous page of results + explode: true + in: query + name: prev + required: false + schema: + type: string + style: form + - description: "Unix timestamp in milliseconds. Returns only transactions created\ + \ before the specified date.\nProvides an explicit end time. If not provided,\ + \ default value will be applied, and may change over time. \nThe current\ + \ default value is the past 90 days.\n" + explode: true + in: query + name: before + required: false + schema: + type: string + style: form + - description: "Unix timestamp in milliseconds. Returns only transactions created\ + \ after the specified date.\nProvides an explicit start time. If not provided,\ + \ default value will be applied, and may change over time. \nThe current\ + \ default value is the past 90 days.\n" + explode: true + in: query + name: after + required: false + schema: + type: string + style: form + - description: You can filter by one of the statuses. + explode: true + in: query + name: status + required: false + schema: + type: string + style: form + - description: | + The field to order the results by. + + **Note:** Ordering by a field that is not `createdAt` may result in transactions that receive updates as you request the next or previous pages of results, resulting in missing those transactions. + explode: true + in: query + name: orderBy + required: false + schema: + enum: + - createdAt + - lastUpdated + type: string + style: form + - description: The direction to order the results by + explode: true + in: query + name: sort required: false schema: enum: @@ -26786,59 +26775,103 @@ paths: - DESC type: string style: form - - description: Records per page - example: 10 + - description: "Limits the number of results. If not provided, a limit of 200\ + \ will be used. The maximum allowed limit is 500" explode: true in: query - name: pageSize + name: limit required: false schema: - default: 500 - maximum: 1000 - minimum: 100 - type: number + default: 200 + minimum: 1 + type: integer style: form - - description: "CSV of fields to return (all, \"blank\" or see list of all field\ - \ names below)" + - description: The source type of the transaction explode: true in: query - name: fields + name: sourceType required: false schema: - $ref: "#/components/schemas/TravelRuleFieldsEnum" + enum: + - VAULT_ACCOUNT + - EXCHANGE_ACCOUNT + - INTERNAL_WALLET + - EXTERNAL_WALLET + - CONTRACT + - FIAT_ACCOUNT + - NETWORK_CONNECTION + - COMPOUND + - UNKNOWN + - GAS_STATION + - END_USER_WALLET + - WALLET_POOL + type: string style: form - - description: Search query - example: Fireblocks + - description: The source ID of the transaction explode: true in: query - name: search + name: sourceId required: false schema: type: string style: form - - description: "Filter by the VASP's review status. Possible values include:\ - \ \"TRUSTED\", \"BLOCKED\", \"MANUAL\", or \"NULL\". When provided, only\ - \ VASPs that match the specified reviewValue will be returned (i.e., VASPs\ - \ that have already been reviewed to this status)." - example: TRUSTED + - description: The destination type of the transaction explode: true in: query - name: reviewValue + name: destType required: false schema: enum: - - TRUSTED - - BLOCKED - - MANUAL - - null + - VAULT_ACCOUNT + - EXCHANGE_ACCOUNT + - INTERNAL_WALLET + - EXTERNAL_WALLET + - CONTRACT + - FIAT_ACCOUNT + - NETWORK_CONNECTION + - COMPOUND + - ONE_TIME_ADDRESS + - END_USER_WALLET type: string style: form - - description: "Cursor for pagination. When provided, the response will include\ - \ the next page of results." - example: 100 + - description: The destination ID of the transaction + explode: true + in: query + name: destId + required: false + schema: + type: string + style: form + - description: "A list of assets to filter by, seperated by commas" + explode: true + in: query + name: assets + required: false + schema: + type: string + style: form + - description: Returns only results with a specified txHash + explode: true + in: query + name: txHash + required: false + schema: + type: string + style: form + - description: Returns only results where the source is a specific end user + wallet + explode: true + in: query + name: sourceWalletId + required: false + schema: + type: string + style: form + - description: Returns only results where the destination is a specific end + user wallet explode: true in: query - name: pageCursor + name: destWalletId required: false schema: type: string @@ -26848,50 +26881,80 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TravelRuleGetAllVASPsResponse" - description: Get all VASPs + $ref: "#/components/schemas/GetTransactionsResponse" + description: A list of transactions + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + next-page: + $ref: "#/components/headers/next-page" + prev-page: + $ref: "#/components/headers/prev-page" default: $ref: "#/components/responses/Error" - summary: Get All VASPs + summary: Get transaction history tags: - - Travel Rule + - Transactions x-rate-limit-category: query x-readme: code-samples: + - language: python + code: "transactions = fireblocks.get_transactions(status, after)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: | + const transactions = await fireblocks.getTransactions({ + status: args.status, + after: from }); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.travelRule.getVASPs(travelRuleApiGetVASPsRequest);" + code: "const response: Promise>\ + \ = fireblocks.transactions.getTransactions(transactionsApiGetTransactionsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.travelRule().getVASPs(order, pageSize, fields, search,\ - \ reviewValue, pageCursor);" + code: "CompletableFuture>> response\ + \ = fireblocks.transactions().getTransactions(next, prev, before, after,\ + \ status, orderBy, sort, limit, sourceType, sourceId, destType, destId,\ + \ assets, txHash, sourceWalletId, destWalletId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.travel_rule.get_v_a_s_ps(order, page_size,\ - \ fields, search, review_value, page_cursor);" + code: "response = fireblocks.transactions.get_transactions(next, prev, before,\ + \ after, status, order_by, sort, limit, source_type, source_id, dest_type,\ + \ dest_id, assets, tx_hash, source_wallet_id, dest_wallet_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.travelRule.getVASPs(travelRuleApiGetVASPsRequest);" + source: "const response: Promise>\ + \ = fireblocks.transactions.getTransactions(transactionsApiGetTransactionsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.travelRule().getVASPs(order, pageSize, fields, search, reviewValue,\ - \ pageCursor);" + source: "CompletableFuture>> response\ + \ = fireblocks.transactions().getTransactions(next, prev, before, after,\ + \ status, orderBy, sort, limit, sourceType, sourceId, destType, destId,\ + \ assets, txHash, sourceWalletId, destWalletId);" - lang: Python - source: "response = fireblocks.travel_rule.get_v_a_s_ps(order, page_size,\ - \ fields, search, review_value, page_cursor);" + source: "response = fireblocks.transactions.get_transactions(next, prev, before,\ + \ after, status, order_by, sort, limit, source_type, source_id, dest_type,\ + \ dest_id, assets, tx_hash, source_wallet_id, dest_wallet_id);" x-accepts: - application/json - /screening/travel_rule/vasp/update: - put: - description: |- - Update VASP Details. - - Updates a VASP with the provided parameters. Use this endpoint to add your public jsonDIDkey generated by Notabene. - operationId: updateVasp + post: + description: "Creates a new transaction. This endpoint can be used for regular\ + \ Transfers, Contract Calls, Raw & Typed message signing. - For Transfers,\ + \ the required parameters are: `assetId`, `source`, `destination` and `amount`.\ + \ - For Contract Calls, the required parameters are: `operation.CONTRACT_CALL`,\ + \ `assetId` (Base Asset), `source`," + operationId: createTransaction parameters: + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: false + schema: + format: uuid + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -26907,124 +26970,148 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TravelRuleUpdateVASPDetails" - required: true + $ref: "#/components/schemas/TransactionRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TravelRuleUpdateVASPDetails" - description: VASP updated successfully - "400": - description: Invalid request body - "500": - description: Internal server error - summary: Add jsonDidKey to VASP details + $ref: "#/components/schemas/CreateTransactionResponse" + description: A transaction object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Create a new transaction tags: - - Travel Rule - x-rate-limit-category: write + - Transactions + x-rate-limit-category: async x-readme: code-samples: + - language: python + code: | + tx_result = client.create_transaction( asset_id="BTC", amount="50", source=TransferPeerPath(VAULT_ACCOUNT, from_vault_account_id), destination=DestinationTransferPeerPath(VAULT_ACCOUNT, to_vault_account_id), external_tx_id="unique-id-123" ) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: | + const payload: TransactionArguments = { assetId: asset, source: { type: sourceType, id: sourceId || 0 }, destination: { type: destinationType, id: String(destinationId) }, amount: String(amount), fee: String(fee), note: "Created by fireblocks SDK", externalTxId: "unique-id-123" }; const result = await fireblocks.createTransaction(payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.travelRule.updateVasp(travelRuleApiUpdateVaspRequest);" + code: "const response: Promise>\ + \ = fireblocks.transactions.createTransaction(transactionsApiCreateTransactionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.travelRule().updateVasp(travelRuleUpdateVASPDetails, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.transactions().createTransaction(transactionRequest, xEndUserWalletId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.travel_rule.update_vasp(travel_rule_update_v_a_s_p_details,\ - \ idempotency_key);" + code: "response = fireblocks.transactions.create_transaction(transaction_request,\ + \ x_end_user_wallet_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.travelRule.updateVasp(travelRuleApiUpdateVaspRequest);" + source: "const response: Promise>\ + \ = fireblocks.transactions.createTransaction(transactionsApiCreateTransactionRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.travelRule().updateVasp(travelRuleUpdateVASPDetails, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.transactions().createTransaction(transactionRequest, xEndUserWalletId,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.travel_rule.update_vasp(travel_rule_update_v_a_s_p_details,\ - \ idempotency_key);" + source: "response = fireblocks.transactions.create_transaction(transaction_request,\ + \ x_end_user_wallet_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /screening/travel_rule/vault/{vaultAccountId}/vasp: + /transactions/{txId}: get: - description: Get assigned VASP Did for a specific vault. Returns empty string - vaspDid value in response if none assigned. - operationId: getVaspForVault + description: |- + Get a specific transaction data by Fireblocks Transaction ID + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getTransaction parameters: - - description: The ID of the vault account - example: 1 + - description: The ID of the transaction to return + example: 00000000-0000-0000-0000-000000000000 explode: false in: path - name: vaultAccountId + name: txId required: true schema: - format: numeric type: string - x-fb-entity: vault_account style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TravelRuleVaspForVault" - description: OK + $ref: "#/components/schemas/TransactionResponse" + description: An Transaction object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" + "400": + $ref: "#/components/responses/Error" default: $ref: "#/components/responses/Error" - summary: Get assigned VASP to vault + summary: Get a specific transaction by Fireblocks transaction ID tags: - - Travel Rule + - Transactions x-rate-limit-category: read x-readme: code-samples: + - language: python + code: tx = fireblocks.get_transaction_by_id(txId) + name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const vaultAsset = await fireblocks.getVaspForVault(vaultAccountId); + code: const tx = await fireblocks.getTransactionById(txId); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.travelRule.getVaspForVault(travelRuleApiGetVaspForVaultRequest);" + code: "const response: Promise>\ + \ = fireblocks.transactions.getTransaction(transactionsApiGetTransactionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = - fireblocks.travelRule().getVaspForVault(vaultAccountId); + code: CompletableFuture> response = fireblocks.transactions().getTransaction(txId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.travel_rule.get_vasp_for_vault(vault_account_id); + code: response = fireblocks.transactions.get_transaction(tx_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.travelRule.getVaspForVault(travelRuleApiGetVaspForVaultRequest);" + source: "const response: Promise>\ + \ = fireblocks.transactions.getTransaction(transactionsApiGetTransactionRequest);" - lang: Java - source: CompletableFuture> response = - fireblocks.travelRule().getVaspForVault(vaultAccountId); + source: CompletableFuture> response = fireblocks.transactions().getTransaction(txId); - lang: Python - source: response = fireblocks.travel_rule.get_vasp_for_vault(vault_account_id); + source: response = fireblocks.transactions.get_transaction(tx_id); x-accepts: - application/json + /transactions/{txId}/cancel: post: - description: Sets the VASP Did for a specific vault. Pass empty string to remove - existing one. - operationId: setVaspForVault + description: |- + Cancels a transaction by Fireblocks Transaction ID. + + Can be used only for transactions that did not get to the BROADCASTING state. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: cancelTransaction parameters: - - description: The ID of the vault account + - description: The ID of the transaction to cancel explode: false in: path - name: vaultAccountId + name: txId required: true schema: - format: numeric type: string - x-fb-entity: vault_account + style: simple + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: false + schema: + format: uuid + 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\ @@ -27037,186 +27124,175 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/TravelRuleVaspForVault" - required: true responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/TravelRuleVaspForVault" - description: OK + $ref: "#/components/schemas/CancelTransactionResponse" + description: An Transaction object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Assign VASP to vault + summary: Cancel a transaction tags: - - Travel Rule + - Transactions x-rate-limit-category: write x-readme: code-samples: + - language: python + code: result = fireblocks.cancel_transaction_by_id(txId) + name: Fireblocks SDK Python example (Legacy) - language: javascript - code: "const vaultAsset = await fireblocks.setVaspForVault(vaultAccountId,\ - \ vaspDid);" + code: const result = await fireblocks.cancelTransactionById(txId); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.travelRule.setVaspForVault(travelRuleApiSetVaspForVaultRequest);" + code: "const response: Promise>\ + \ = fireblocks.transactions.cancelTransaction(transactionsApiCancelTransactionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.travelRule().setVaspForVault(travelRuleVaspForVault, vaultAccountId,\ + code: "CompletableFuture> response\ + \ = fireblocks.transactions().cancelTransaction(txId, xEndUserWalletId,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.travel_rule.set_vasp_for_vault(travel_rule_vasp_for_vault,\ - \ vault_account_id, idempotency_key);" + code: "response = fireblocks.transactions.cancel_transaction(tx_id, x_end_user_wallet_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.travelRule.setVaspForVault(travelRuleApiSetVaspForVaultRequest);" + source: "const response: Promise>\ + \ = fireblocks.transactions.cancelTransaction(transactionsApiCancelTransactionRequest);" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.travelRule().setVaspForVault(travelRuleVaspForVault, vaultAccountId,\ + source: "CompletableFuture> response\ + \ = fireblocks.transactions().cancelTransaction(txId, xEndUserWalletId,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.travel_rule.set_vasp_for_vault(travel_rule_vasp_for_vault,\ - \ vault_account_id, idempotency_key);" - x-content-type: application/json - x-accepts: - - application/json - /screening/travel_rule/post_screening_policy: - get: - description: Get the post-screening policy for Travel Rule. - operationId: getPostScreeningPolicy - parameters: [] - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ScreeningPolicyResponse" - description: Post-screening policy retrieved successfully. - summary: Travel Rule - View Post-Screening Policy - tags: - - Compliance - x-rate-limit-category: query - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getPostScreeningPolicy();" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response = - fireblocks.compliance().getPostScreeningPolicy(); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.compliance.get_post_screening_policy(); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.getPostScreeningPolicy();" - - lang: Java - source: CompletableFuture> response = - fireblocks.compliance().getPostScreeningPolicy(); - - lang: Python - source: response = fireblocks.compliance.get_post_screening_policy(); - x-accepts: - - application/json - /screening/travel_rule/screening_policy: - get: - description: Get the screening policy for Travel Rule. - operationId: getScreeningPolicy - parameters: [] - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ScreeningProviderRulesConfigurationResponse" - description: Screening policy retrieved successfully. - summary: Travel Rule - View Screening Policy - tags: - - Compliance - x-rate-limit-category: query - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getScreeningPolicy();" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> - response = fireblocks.compliance().getScreeningPolicy(); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.compliance.get_screening_policy(); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.getScreeningPolicy();" - - lang: Java - source: CompletableFuture> - response = fireblocks.compliance().getScreeningPolicy(); - - lang: Python - source: response = fireblocks.compliance.get_screening_policy(); + source: "response = fireblocks.transactions.cancel_transaction(tx_id, x_end_user_wallet_id,\ + \ idempotency_key);" x-accepts: - application/json - /screening/travel_rule/policy_configuration: - get: - description: Retrieves the configuration for Travel Rule screening policy. - operationId: getScreeningConfiguration - parameters: [] + /transactions/{txId}/drop: + post: + description: |- + Drops a stuck ETH (EVM) transaction and creates a replacement transaction with 0 amount. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: dropTransaction + parameters: + - description: The ID of the transaction + explode: false + in: path + name: txId + required: true + schema: + type: string + style: simple + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: false + schema: + format: uuid + 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\ + \ 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/DropTransactionRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ScreeningConfigurationsRequest" - description: Screening policy configuration retrieved successfully. - summary: Get Travel Rule Screening Policy Configuration + $ref: "#/components/schemas/DropTransactionResponse" + description: Operation completed successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Drop ETH (EVM) transaction by ID tags: - - Compliance Screening Configuration + - Transactions x-rate-limit-category: write x-readme: code-samples: + - language: python + code: "result = fireblocks.drop_transaction(txId, fee_level)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const result = await fireblocks.dropTransaction(txId, feeLevel);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.complianceScreeningConfiguration.getScreeningConfiguration();" + code: "const response: Promise>\ + \ = fireblocks.transactions.dropTransaction(transactionsApiDropTransactionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.complianceScreeningConfiguration().getScreeningConfiguration(); + code: "CompletableFuture> response\ + \ = fireblocks.transactions().dropTransaction(txId, dropTransactionRequest,\ + \ xEndUserWalletId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance_screening_configuration.get_screening_configuration(); + code: "response = fireblocks.transactions.drop_transaction(tx_id, drop_transaction_request,\ + \ x_end_user_wallet_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.complianceScreeningConfiguration.getScreeningConfiguration();" + source: "const response: Promise>\ + \ = fireblocks.transactions.dropTransaction(transactionsApiDropTransactionRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.complianceScreeningConfiguration().getScreeningConfiguration(); + source: "CompletableFuture> response\ + \ = fireblocks.transactions().dropTransaction(txId, dropTransactionRequest,\ + \ xEndUserWalletId, idempotencyKey);" - lang: Python - source: response = fireblocks.compliance_screening_configuration.get_screening_configuration(); + source: "response = fireblocks.transactions.drop_transaction(tx_id, drop_transaction_request,\ + \ x_end_user_wallet_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - put: - description: "Updates bypass screening, inbound delay, or outbound delay configurations\ - \ for Travel Rule." - operationId: updateTravelRuleConfig + /transactions/{txId}/freeze: + post: + description: "Freezes a transaction by ID.\n\nUsually used for AML integrations\ + \ when the incoming funds should be quarantined.\nFor account based assets\ + \ - the entire amount of the transaction is frozen \nFor UTXO based assets\ + \ - all UTXOs of the specified transaction are frozen\nEndpoint Permission:\ + \ Admin, Non-Signing Admin." + operationId: freezeTransaction parameters: + - description: The ID of the transaction to freeze + explode: false + in: path + name: txId + required: true + schema: + type: string + style: simple + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: false + schema: + format: uuid + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -27233,41 +27309,64 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ScreeningConfigurationsRequest" - description: Configuration updated successfully. - summary: Update Travel Rule Configuration + $ref: "#/components/schemas/FreezeTransactionResponse" + description: freeze response + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: Freeze a transaction tags: - - Compliance + - Transactions x-rate-limit-category: write x-readme: code-samples: + - language: python + code: result = fireblocks.freeze_transaction_by_id(txId); + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const result = await fireblocks.freezeTransactionById(txId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.updateTravelRuleConfig(complianceApiUpdateTravelRuleConfigRequest);" + code: "const response: Promise>\ + \ = fireblocks.transactions.freezeTransaction(transactionsApiFreezeTransactionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.compliance().updateTravelRuleConfig(idempotencyKey); + code: "CompletableFuture> response\ + \ = fireblocks.transactions().freezeTransaction(txId, xEndUserWalletId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.update_travel_rule_config(idempotency_key); + code: "response = fireblocks.transactions.freeze_transaction(tx_id, x_end_user_wallet_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.updateTravelRuleConfig(complianceApiUpdateTravelRuleConfigRequest);" + source: "const response: Promise>\ + \ = fireblocks.transactions.freezeTransaction(transactionsApiFreezeTransactionRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.compliance().updateTravelRuleConfig(idempotencyKey); + source: "CompletableFuture> response\ + \ = fireblocks.transactions().freezeTransaction(txId, xEndUserWalletId,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.compliance.update_travel_rule_config(idempotency_key); + source: "response = fireblocks.transactions.freeze_transaction(tx_id, x_end_user_wallet_id,\ + \ idempotency_key);" x-accepts: - application/json - /screening/travel_rule/providers/trust/proof_of_address: + /transactions/{txId}/set_confirmation_threshold: post: - description: Creates a cryptographic proof of address ownership for TRUST network. - operationId: createTrustProofOfAddress + description: |- + Overrides the required number of confirmations for transaction completion Fireblocks Transaction ID. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: setTransactionConfirmationThreshold parameters: + - description: The ID of the transaction + explode: false + in: path + name: txId + required: true + schema: + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -27283,153 +27382,152 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TrustProofOfAddressRequest" - required: true + $ref: "#/components/schemas/SetConfirmationsThresholdRequest" responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/TrustProofOfAddressCreateResponse" - description: Proof of address transaction created successfully + $ref: "#/components/schemas/SetConfirmationsThresholdResponse" + description: Set successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create Trust Network Proof of Address + summary: Set confirmation threshold by Fireblocks Transaction ID tags: - - Travel Rule - x-rate-limit-category: async + - Transactions + x-rate-limit-category: write x-readme: code-samples: + - language: python + code: set_conf_threshold = client.set_confirmation_threshold_by_tx_id(body) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const setConfThreshold = await fireblocks.setConfirmationThresholdByTxId(body); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.travelRule.createTrustProofOfAddress(travelRuleApiCreateTrustProofOfAddressRequest);" + code: "const response: Promise>\ + \ = fireblocks.transactions.setTransactionConfirmationThreshold(transactionsApiSetTransactionConfirmationThresholdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.travelRule().createTrustProofOfAddress(trustProofOfAddressRequest,\ - \ idempotencyKey);" + code: "CompletableFuture>\ + \ response = fireblocks.transactions().setTransactionConfirmationThreshold(txId,\ + \ setConfirmationsThresholdRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.travel_rule.create_trust_proof_of_address(trust_proof_of_address_request,\ - \ idempotency_key);" + code: "response = fireblocks.transactions.set_transaction_confirmation_threshold(tx_id,\ + \ set_confirmations_threshold_request, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.travelRule.createTrustProofOfAddress(travelRuleApiCreateTrustProofOfAddressRequest);" + source: "const response: Promise>\ + \ = fireblocks.transactions.setTransactionConfirmationThreshold(transactionsApiSetTransactionConfirmationThresholdRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.travelRule().createTrustProofOfAddress(trustProofOfAddressRequest,\ - \ idempotencyKey);" + source: "CompletableFuture>\ + \ response = fireblocks.transactions().setTransactionConfirmationThreshold(txId,\ + \ setConfirmationsThresholdRequest, idempotencyKey);" - lang: Python - source: "response = fireblocks.travel_rule.create_trust_proof_of_address(trust_proof_of_address_request,\ - \ idempotency_key);" + source: "response = fireblocks.transactions.set_transaction_confirmation_threshold(tx_id,\ + \ set_confirmations_threshold_request, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /screening/travel_rule/providers/trust/proof_of_address/{transactionId}: - get: - description: Retrieves the TRUST-compatible encoded signature for a proof of - address transaction. Send this signature directly to TRUST for verification. - operationId: getTrustProofOfAddress + /transactions/{txId}/unfreeze: + post: + description: |- + Unfreezes a transaction by Fireblocks Transaction ID and makes the transaction available again. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: unfreezeTransaction parameters: - - description: Fireblocks transaction ID (UUID format) - example: 550e8400-e29b-41d4-a716-446655440000 + - description: The ID of the transaction to unfreeze explode: false in: path - name: transactionId + name: txId required: true + schema: + type: string + style: simple + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: false schema: format: uuid 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\ + \ 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/TrustProofOfAddressResponse" - description: Encoded signature retrieved successfully + $ref: "#/components/schemas/UnfreezeTransactionResponse" + description: Unfreeze response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Retrieve Trust Network Proof of Address Signature + summary: Unfreeze a transaction tags: - - Travel Rule - x-rate-limit-category: query + - Transactions + x-rate-limit-category: write x-readme: code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.travelRule.getTrustProofOfAddress(travelRuleApiGetTrustProofOfAddressRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response - = fireblocks.travelRule().getTrustProofOfAddress(transactionId); - name: Fireblocks SDK Java example - language: python - code: response = fireblocks.travel_rule.get_trust_proof_of_address(transaction_id); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.travelRule.getTrustProofOfAddress(travelRuleApiGetTrustProofOfAddressRequest);" - - lang: Java - source: CompletableFuture> response - = fireblocks.travelRule().getTrustProofOfAddress(transactionId); - - lang: Python - source: response = fireblocks.travel_rule.get_trust_proof_of_address(transaction_id); - x-accepts: - - application/json - /screening/aml/policy_configuration: - get: - description: Retrieves the configuration for Travel Rule screening policy. - operationId: getAmlScreeningConfiguration - parameters: [] - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ScreeningConfigurationsRequest" - description: Screening policy configuration retrieved successfully. - summary: Get AML Screening Policy Configuration - tags: - - Compliance Screening Configuration - x-rate-limit-category: query - x-readme: - code-samples: + code: result = fireblocks.unfreeze_transaction_by_id(txId) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const result = await fireblocks.unfreezeTransactionById(txId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.complianceScreeningConfiguration.getAmlScreeningConfiguration();" + code: "const response: Promise>\ + \ = fireblocks.transactions.unfreezeTransaction(transactionsApiUnfreezeTransactionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.complianceScreeningConfiguration().getAmlScreeningConfiguration(); + code: "CompletableFuture> response\ + \ = fireblocks.transactions().unfreezeTransaction(txId, xEndUserWalletId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance_screening_configuration.get_aml_screening_configuration(); + code: "response = fireblocks.transactions.unfreeze_transaction(tx_id, x_end_user_wallet_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.complianceScreeningConfiguration.getAmlScreeningConfiguration();" + source: "const response: Promise>\ + \ = fireblocks.transactions.unfreezeTransaction(transactionsApiUnfreezeTransactionRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.complianceScreeningConfiguration().getAmlScreeningConfiguration(); + source: "CompletableFuture> response\ + \ = fireblocks.transactions().unfreezeTransaction(txId, xEndUserWalletId,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.compliance_screening_configuration.get_aml_screening_configuration(); + source: "response = fireblocks.transactions.unfreeze_transaction(tx_id, x_end_user_wallet_id,\ + \ idempotency_key);" x-accepts: - application/json - put: - description: "Updates bypass screening, inbound delay, or outbound delay configurations\ - \ for AML." - operationId: updateAmlScreeningConfiguration + /transactions/estimate_fee: + post: + description: |- + Estimates the transaction fee for a specific transaction request. + This endpoint simulates a transaction which means that the system will expect to have the requested asset and balance in the specified wallet. + **Note**: Supports all Fireblocks assets except ZCash (ZEC). + The PROGRAM_CALL operation is not supported by this endpoint — fee estimation for Solana program calls is not available. + Learn more about Fireblocks Fee Management in the following [guide](https://developers.fireblocks.com/reference/estimate-transaction-fee). + Endpoint Permission: Admin, Signer, Approver, Editor. + operationId: estimateTransactionFee 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\ @@ -27442,316 +27540,280 @@ paths: schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ScreeningConfigurationsRequest" - description: Configuration updated successfully. - summary: Update AML Configuration + $ref: "#/components/schemas/EstimatedTransactionFeeResponse" + description: Estimated fees response + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Estimate transaction fee tags: - - Compliance - x-rate-limit-category: write + - Transactions + x-rate-limit-category: async x-readme: code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.updateAmlScreeningConfiguration(complianceApiUpdateAmlScreeningConfigurationRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response - = fireblocks.compliance().updateAmlScreeningConfiguration(idempotencyKey); - name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.update_aml_screening_configuration(idempotency_key); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.updateAmlScreeningConfiguration(complianceApiUpdateAmlScreeningConfigurationRequest);" - - lang: Java - source: CompletableFuture> response - = fireblocks.compliance().updateAmlScreeningConfiguration(idempotencyKey); - - lang: Python - source: response = fireblocks.compliance.update_aml_screening_configuration(idempotency_key); - x-accepts: - - application/json - /screening/aml/screening_policy: - get: - description: Get the screening policy for AML. - operationId: getAmlScreeningPolicy - parameters: [] - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ScreeningProviderRulesConfigurationResponse" - description: Screening policy retrieved successfully. - summary: AML - View Screening Policy - tags: - - Compliance - x-rate-limit-category: query - x-readme: - code-samples: + code: | + estimated_fee = client.estimate_fee_for_transaction( asset_id="BTC", amount="50", source=TransferPeerPath(VAULT_ACCOUNT, from_vault_account_id), destination=DestinationTransferPeerPath(VAULT_ACCOUNT, to_vault_account_id) ) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: | + const payload: TransactionArguments = { assetId: asset, source: { type: sourceType, id: sourceId || 0 }, destination: { type: destinationType, id: String(destinationId) }, amount: Number(amount) }; const estimatedFee = await fireblocks.estimateFeeForTransaction(payload); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getAmlScreeningPolicy();" + code: "const response: Promise>\ + \ = fireblocks.transactions.estimateTransactionFee(transactionsApiEstimateTransactionFeeRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> - response = fireblocks.compliance().getAmlScreeningPolicy(); + code: "CompletableFuture> response\ + \ = fireblocks.transactions().estimateTransactionFee(transactionRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.get_aml_screening_policy(); + code: "response = fireblocks.transactions.estimate_transaction_fee(transaction_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.getAmlScreeningPolicy();" + source: "const response: Promise>\ + \ = fireblocks.transactions.estimateTransactionFee(transactionsApiEstimateTransactionFeeRequest);" - lang: Java - source: CompletableFuture> - response = fireblocks.compliance().getAmlScreeningPolicy(); + source: "CompletableFuture> response\ + \ = fireblocks.transactions().estimateTransactionFee(transactionRequest,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.compliance.get_aml_screening_policy(); + source: "response = fireblocks.transactions.estimate_transaction_fee(transaction_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /screening/aml/post_screening_policy: + /transactions/external_tx_id/{externalTxId}: get: - description: Get the post-screening policy for AML. - operationId: getAmlPostScreeningPolicy - parameters: [] - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ScreeningPolicyResponse" - description: Post-screening policy retrieved successfully. - summary: AML - View Post-Screening Policy - tags: - - Compliance - x-rate-limit-category: query - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getAmlPostScreeningPolicy();" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response = - fireblocks.compliance().getAmlPostScreeningPolicy(); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.compliance.get_aml_post_screening_policy(); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.getAmlPostScreeningPolicy();" - - lang: Java - source: CompletableFuture> response = - fireblocks.compliance().getAmlPostScreeningPolicy(); - - lang: Python - source: response = fireblocks.compliance.get_aml_post_screening_policy(); - x-accepts: - - application/json - /screening/configurations: - put: - description: Update tenant screening configuration. - operationId: updateScreeningConfiguration + description: |- + Returns transaction by external transaction ID. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getTransactionByExternalId 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." + - description: The external ID of the transaction to return + example: 00000000-0000-0000-0000-000000000000 explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: externalTxId + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/ScreeningUpdateConfigurations" - required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ScreeningUpdateConfigurations" - description: Tenant Screening configuration updated successfully. - summary: Tenant - Screening Configuration + $ref: "#/components/schemas/TransactionResponse" + description: An Transaction object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get a specific transaction by external transaction ID tags: - - Compliance - x-rate-limit-category: write + - Transactions + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: tx = fireblocks.get_transaction_by_external_tx_id(externalTxId) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const tx = await fireblocks.getTransactionByExternalTxId(externalTxId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.updateScreeningConfiguration(complianceApiUpdateScreeningConfigurationRequest);" + code: "const response: Promise>\ + \ = fireblocks.transactions.getTransactionByExternalId(transactionsApiGetTransactionByExternalIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.compliance().updateScreeningConfiguration(screeningUpdateConfigurations,\ - \ idempotencyKey);" + code: CompletableFuture> response = fireblocks.transactions().getTransactionByExternalId(externalTxId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.update_screening_configuration(screening_update_configurations,\ - \ idempotency_key);" + code: response = fireblocks.transactions.get_transaction_by_external_id(external_tx_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.updateScreeningConfiguration(complianceApiUpdateScreeningConfigurationRequest);" + source: "const response: Promise>\ + \ = fireblocks.transactions.getTransactionByExternalId(transactionsApiGetTransactionByExternalIdRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.compliance().updateScreeningConfiguration(screeningUpdateConfigurations,\ - \ idempotencyKey);" + source: CompletableFuture> response = fireblocks.transactions().getTransactionByExternalId(externalTxId); - lang: Python - source: "response = fireblocks.compliance.update_screening_configuration(screening_update_configurations,\ - \ idempotency_key);" - x-content-type: application/json + source: response = fireblocks.transactions.get_transaction_by_external_id(external_tx_id); x-accepts: - application/json - /screening/transaction/{txId}/bypass_screening_policy: - post: - description: "Triggers a new transaction, with the API user as the initiator,\ - \ bypassing the screening policy checks. This endpoint is restricted to Admin\ - \ API users and is only applicable to outgoing transactions." - operationId: retryRejectedTransactionBypassScreeningChecks + /transactions/validate_address/{assetId}/{address}: + get: + description: |- + Checks if an address is valid and active (for XRP, DOT, XLM, and EOS). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: validateAddress parameters: - - description: The transaction id that was rejected by screening checks - example: 550e8400-e29b-41d4-a716-446655440000 + - description: The asset of the address explode: false in: path - name: txId + 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." + - description: The address to validate explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: address + required: true schema: type: string style: simple responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/CreateTransactionResponse" - description: A transaction object + $ref: "#/components/schemas/ValidateAddressResponse" + description: An Transaction object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Bypass Screening Policy + summary: Validate destination address tags: - - Compliance - x-rate-limit-category: write + - Transactions + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: "result = fireblocks.(asset_id, address)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const result = await fireblocks.(assetId, address);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.retryRejectedTransactionBypassScreeningChecks(complianceApiRetryRejectedTransactionBypassScreeningChecksRequest);" + code: "const response: Promise>\ + \ = fireblocks.transactions.validateAddress(transactionsApiValidateAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.compliance().retryRejectedTransactionBypassScreeningChecks(txId,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.transactions().validateAddress(assetId, address);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.retry_rejected_transaction_bypass_screening_checks(tx_id,\ - \ idempotency_key);" + code: "response = fireblocks.transactions.validate_address(asset_id, address);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.retryRejectedTransactionBypassScreeningChecks(complianceApiRetryRejectedTransactionBypassScreeningChecksRequest);" + source: "const response: Promise>\ + \ = fireblocks.transactions.validateAddress(transactionsApiValidateAddressRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.compliance().retryRejectedTransactionBypassScreeningChecks(txId,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.transactions().validateAddress(assetId, address);" - lang: Python - source: "response = fireblocks.compliance.retry_rejected_transaction_bypass_screening_checks(tx_id,\ - \ idempotency_key);" + source: "response = fireblocks.transactions.validate_address(asset_id, address);" x-accepts: - application/json - /screening/transaction/{txId}: - get: - description: Provides all the compliance details for the given screened transaction. - operationId: getScreeningFullDetails + /txHash/{txHash}/set_confirmation_threshold: + post: + description: |- + Overrides the required number of confirmations for transaction completion by transaction hash. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: setConfirmationThresholdByTransactionHash parameters: - - description: Fireblocks transaction ID of the screened transaction - example: 550e8400-e29b-41d4-a716-446655440000 + - description: The TxHash explode: false in: path - name: txId + name: txHash required: true schema: 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\ + \ 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/SetConfirmationsThresholdRequest" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ComplianceResultFullPayload" - description: A compliance object + $ref: "#/components/schemas/SetConfirmationsThresholdResponse" + description: A list of transactions affected by the change headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Provides all the compliance details for the given screened transaction. + summary: Set confirmation threshold by transaction hash tags: - - Compliance - x-rate-limit-category: query + - Transactions + x-rate-limit-category: write x-readme: code-samples: + - language: python + code: set_conf_threshold = client.set_confirmation_threshold_by_tx_hash(body) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const setConfThreshold = await fireblocks.setConfirmationThresholdByTxHash(body); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getScreeningFullDetails(complianceApiGetScreeningFullDetailsRequest);" + code: "const response: Promise>\ + \ = fireblocks.transactions.setConfirmationThresholdByTransactionHash(transactionsApiSetConfirmationThresholdByTransactionHashRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.compliance().getScreeningFullDetails(txId); + code: "CompletableFuture>\ + \ response = fireblocks.transactions().setConfirmationThresholdByTransactionHash(txHash,\ + \ setConfirmationsThresholdRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.get_screening_full_details(tx_id); + code: "response = fireblocks.transactions.set_confirmation_threshold_by_transaction_hash(tx_hash,\ + \ set_confirmations_threshold_request, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.getScreeningFullDetails(complianceApiGetScreeningFullDetailsRequest);" + source: "const response: Promise>\ + \ = fireblocks.transactions.setConfirmationThresholdByTransactionHash(transactionsApiSetConfirmationThresholdByTransactionHashRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.compliance().getScreeningFullDetails(txId); + source: "CompletableFuture>\ + \ response = fireblocks.transactions().setConfirmationThresholdByTransactionHash(txHash,\ + \ setConfirmationsThresholdRequest, idempotencyKey);" - lang: Python - source: response = fireblocks.compliance.get_screening_full_details(tx_id); + source: "response = fireblocks.transactions.set_confirmation_threshold_by_transaction_hash(tx_hash,\ + \ set_confirmations_threshold_request, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /screening/aml/verdict/manual: + /screening/travel_rule/providers/trust/proof_of_address: post: - 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 + description: Creates a cryptographic proof of address ownership for TRUST network. + operationId: createTrustProofOfAddress 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\ @@ -27768,167 +27830,131 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/AmlVerdictManualRequest" + $ref: "#/components/schemas/TrustProofOfAddressRequest" required: true responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/AmlVerdictManualResponse" - description: AML verdict set successfully. - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorSchema" - description: Feature not enabled for tenant. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "425": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorSchema" - description: Too Early - transaction not yet in pending screening. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "500": + "201": content: application/json: schema: - $ref: "#/components/schemas/ErrorSchema" - description: Internal server error. + $ref: "#/components/schemas/TrustProofOfAddressCreateResponse" + description: Proof of address transaction created successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Set AML Verdict (BYORK Super Light) + summary: Create Trust Network Proof of Address tags: - - Compliance - x-rate-limit-category: write + - Travel Rule + x-rate-limit-category: async x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.setAmlVerdict(complianceApiSetAmlVerdictRequest);" + code: "const response: Promise>\ + \ = fireblocks.travelRule.createTrustProofOfAddress(travelRuleApiCreateTrustProofOfAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.compliance().setAmlVerdict(amlVerdictManualRequest, idempotencyKey);" + code: "CompletableFuture>\ + \ response = fireblocks.travelRule().createTrustProofOfAddress(trustProofOfAddressRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.set_aml_verdict(aml_verdict_manual_request,\ + code: "response = fireblocks.travel_rule.create_trust_proof_of_address(trust_proof_of_address_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.setAmlVerdict(complianceApiSetAmlVerdictRequest);" + source: "const response: Promise>\ + \ = fireblocks.travelRule.createTrustProofOfAddress(travelRuleApiCreateTrustProofOfAddressRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.compliance().setAmlVerdict(amlVerdictManualRequest, idempotencyKey);" + source: "CompletableFuture>\ + \ response = fireblocks.travelRule().createTrustProofOfAddress(trustProofOfAddressRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.compliance.set_aml_verdict(aml_verdict_manual_request,\ + source: "response = fireblocks.travel_rule.create_trust_proof_of_address(trust_proof_of_address_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /screening/byork/verdict: + /screening/travel_rule/providers/trust/proof_of_address/{transactionId}: 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 + description: Retrieves the TRUST-compatible encoded signature for a proof of + address transaction. Send this signature directly to TRUST for verification. + operationId: getTrustProofOfAddress parameters: - - description: Transaction ID - explode: true - in: query - name: txId + - description: Fireblocks transaction ID (UUID format) + example: 550e8400-e29b-41d4-a716-446655440000 + explode: false + in: path + name: transactionId required: true schema: - example: 550e8400-e29b-41d4-a716-446655440000 + format: uuid type: string - style: form + style: simple 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. + $ref: "#/components/schemas/TrustProofOfAddressResponse" + description: Encoded signature retrieved successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get BYORK Light verdict + summary: Retrieve Trust Network Proof of Address Signature tags: - - Compliance - x-rate-limit-category: read + - Travel Rule + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getByorkVerdict(complianceApiGetByorkVerdictRequest);" + code: "const response: Promise>\ + \ = fireblocks.travelRule.getTrustProofOfAddress(travelRuleApiGetTrustProofOfAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = - fireblocks.compliance().getByorkVerdict(txId); + code: CompletableFuture> response + = fireblocks.travelRule().getTrustProofOfAddress(transactionId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.get_byork_verdict(tx_id); + code: response = fireblocks.travel_rule.get_trust_proof_of_address(transaction_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.getByorkVerdict(complianceApiGetByorkVerdictRequest);" + source: "const response: Promise>\ + \ = fireblocks.travelRule.getTrustProofOfAddress(travelRuleApiGetTrustProofOfAddressRequest);" - lang: Java - source: CompletableFuture> response = - fireblocks.compliance().getByorkVerdict(txId); + source: CompletableFuture> response + = fireblocks.travelRule().getTrustProofOfAddress(transactionId); - lang: Python - source: response = fireblocks.compliance.get_byork_verdict(tx_id); + source: response = fireblocks.travel_rule.get_trust_proof_of_address(transaction_id); x-accepts: - application/json + /screening/travel_rule/transaction/validate: 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 + description: |- + Validate Travel Rule transactions. + Checks what beneficiary VASP details are required by your jurisdiction and the beneficiary's jurisdiction. + **Deprecation Notice** This endpoint will be deprecated soon in favor of the [validate full](https://developers.fireblocks.com/reference/validatefulltravelruletransaction) endpoint. Please update your integrations to use the [validate full](https://developers.fireblocks.com/reference/validatefulltravelruletransaction) endpoint to ensure compatibility with future releases. + Checks what beneficiary VASP details are required by your jurisdiction and the beneficiary's jurisdiction. + Learn more about Fireblocks Travel Rule management in the following [guide](https://developers.fireblocks.com/docs/define-travel-rule-policies). + + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: validateTravelRuleTransaction parameters: + - description: |- + Specifies the notation of the transaction. Possible values are: - `notabene`: Uses Notabene notation (default behavior). - `fireblocks`: Uses Fireblocks notation, with automatic translation of asset tickers and amounts. - ``: Defaults to `notabene` for backward compatibility. + **Note:** The default value for the `notation` parameter will change from `notabene` to `fireblocks` Update your integrations accordingly. + explode: true + in: query + name: notation + required: false + schema: + $ref: "#/components/schemas/TravelRuleNotationEnum" + style: form - 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\ @@ -27944,280 +27970,287 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ByorkVerdictRequest" + $ref: "#/components/schemas/TravelRuleValidateTransactionRequest" 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" + $ref: "#/components/schemas/TravelRuleValidateTransactionResponse" + description: Transaction validated successfully default: $ref: "#/components/responses/Error" - summary: Set BYORK Light verdict + summary: Validate Travel Rule Transaction tags: - - Compliance + - Travel Rule + x-internal: true 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 + /screening/travel_rule/transaction/validate/full: + post: + description: |- + Validate Full Travel Rule transactions. + + Checks for all required information on the originator and beneficiary VASPs. + operationId: validateFullTravelRuleTransaction + parameters: + - description: |- + Specifies the notation of the transaction. Possible values are: - `notabene`: Uses Notabene notation (default behavior). - `fireblocks`: Uses Fireblocks notation, with automatic translation of asset tickers and amounts. - ``: Defaults to `notabene` for backward compatibility. + **Note:** The default value for the `notation` parameter will change from `notabene` to `fireblocks` Update your integrations accordingly. + explode: true + in: query + name: notation + required: false + schema: + $ref: "#/components/schemas/TravelRuleNotationEnum" + style: form + - 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/TravelRuleValidateFullTransactionRequest" + required: true 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" + $ref: "#/components/schemas/TravelRuleValidateTransactionResponse" + description: Transaction validated successfully default: $ref: "#/components/responses/Error" - summary: Get BYORK Light configuration + summary: Validate Full Travel Rule Transaction tags: - - Compliance - x-rate-limit-category: read + - Travel Rule + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getByorkConfig();" + code: "const response: Promise>\ + \ = fireblocks.travelRule.validateFullTravelRuleTransaction(travelRuleApiValidateFullTravelRuleTransactionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.compliance().getByorkConfig(); + code: "CompletableFuture>\ + \ response = fireblocks.travelRule().validateFullTravelRuleTransaction(travelRuleValidateFullTransactionRequest,\ + \ notation, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.get_byork_config(); + code: "response = fireblocks.travel_rule.validate_full_travel_rule_transaction(travel_rule_validate_full_transaction_request,\ + \ notation, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.getByorkConfig();" + source: "const response: Promise>\ + \ = fireblocks.travelRule.validateFullTravelRuleTransaction(travelRuleApiValidateFullTravelRuleTransactionRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.compliance().getByorkConfig(); + source: "CompletableFuture>\ + \ response = fireblocks.travelRule().validateFullTravelRuleTransaction(travelRuleValidateFullTransactionRequest,\ + \ notation, idempotencyKey);" - lang: Python - source: response = fireblocks.compliance.get_byork_config(); + source: "response = fireblocks.travel_rule.validate_full_travel_rule_transaction(travel_rule_validate_full_transaction_request,\ + \ notation, idempotency_key);" + x-content-type: application/json 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 + /screening/travel_rule/vasp: + get: + description: |- + Get All VASPs. + + Returns a list of VASPs. VASPs can be searched and sorted. + operationId: getVASPs 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 + - description: Field to order by + example: ASC + explode: true + in: query + name: order + required: false + schema: + enum: + - ASC + - DESC + type: string + style: form + - description: Records per page + example: 10 + explode: true + in: query + name: pageSize + required: false + schema: + default: 500 + maximum: 1000 + minimum: 100 + type: number + style: form + - description: "CSV of fields to return (all, \"blank\" or see list of all field\ + \ names below)" + explode: true + in: query + name: fields + required: false + schema: + $ref: "#/components/schemas/TravelRuleFieldsEnum" + style: form + - description: Search query + example: Fireblocks + explode: true + in: query + name: search required: false schema: type: string - style: simple + style: form + - description: "Filter by the VASP's review status. Possible values include:\ + \ \"TRUSTED\", \"BLOCKED\", \"MANUAL\", or \"NULL\". When provided, only\ + \ VASPs that match the specified reviewValue will be returned (i.e., VASPs\ + \ that have already been reviewed to this status)." + example: TRUSTED + explode: true + in: query + name: reviewValue + required: false + schema: + enum: + - TRUSTED + - BLOCKED + - MANUAL + - null + type: string + style: form + - description: "Cursor for pagination. When provided, the response will include\ + \ the next page of results." + example: 100 + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form 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" + $ref: "#/components/schemas/TravelRuleGetAllVASPsResponse" + description: Get all VASPs default: $ref: "#/components/responses/Error" - summary: Activate BYORK Light + summary: Get All VASPs tags: - - Compliance - x-rate-limit-category: write + - Travel Rule + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.activateByorkConfig(complianceApiActivateByorkConfigRequest);" + code: "const response: Promise>\ + \ = fireblocks.travelRule.getVASPs(travelRuleApiGetVASPsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.compliance().activateByorkConfig(idempotencyKey); + code: "CompletableFuture> response\ + \ = fireblocks.travelRule().getVASPs(order, pageSize, fields, search,\ + \ reviewValue, pageCursor);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.activate_byork_config(idempotency_key); + code: "response = fireblocks.travel_rule.get_v_a_s_ps(order, page_size,\ + \ fields, search, review_value, page_cursor);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.activateByorkConfig(complianceApiActivateByorkConfigRequest);" + source: "const response: Promise>\ + \ = fireblocks.travelRule.getVASPs(travelRuleApiGetVASPsRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.compliance().activateByorkConfig(idempotencyKey); + source: "CompletableFuture> response\ + \ = fireblocks.travelRule().getVASPs(order, pageSize, fields, search, reviewValue,\ + \ pageCursor);" - lang: Python - source: response = fireblocks.compliance.activate_byork_config(idempotency_key); + source: "response = fireblocks.travel_rule.get_v_a_s_ps(order, page_size,\ + \ fields, search, review_value, page_cursor);" 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 + /screening/travel_rule/vasp/{did}: + get: + description: |- + Get VASP Details. + + Returns information about a VASP that has the specified DID. + operationId: getVASPByDID + parameters: + - explode: false + in: path + name: did + required: true schema: type: string style: simple + - description: "A CSV of fields to return. Choose from the following options:" + explode: true + in: query + name: fields + required: false + schema: + $ref: "#/components/schemas/TravelRuleFieldsEnum" + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ByorkConfigResponse" - description: BYORK configuration deactivated. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/TravelRuleVASP" + description: Transaction validated successfully "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 + description: Invalid request body + "500": + description: Internal server error + summary: Get VASP details tags: - - Compliance - x-rate-limit-category: write + - Travel Rule + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.deactivateByorkConfig(complianceApiDeactivateByorkConfigRequest);" + code: "const response: Promise> = fireblocks.travelRule.getVASPByDID(travelRuleApiGetVASPByDIDRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.compliance().deactivateByorkConfig(idempotencyKey); + code: "CompletableFuture> response = fireblocks.travelRule().getVASPByDID(did,\ + \ fields);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.deactivate_byork_config(idempotency_key); + code: "response = fireblocks.travel_rule.get_v_a_s_p_by_d_i_d(did, fields);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.deactivateByorkConfig(complianceApiDeactivateByorkConfigRequest);" + source: "const response: Promise> = fireblocks.travelRule.getVASPByDID(travelRuleApiGetVASPByDIDRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.compliance().deactivateByorkConfig(idempotencyKey); + source: "CompletableFuture> response = fireblocks.travelRule().getVASPByDID(did,\ + \ fields);" - lang: Python - source: response = fireblocks.compliance.deactivate_byork_config(idempotency_key); + source: "response = fireblocks.travel_rule.get_v_a_s_p_by_d_i_d(did, fields);" x-accepts: - application/json - /screening/byork/config/timeouts: + /screening/travel_rule/vasp/update: 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 + description: |- + Update VASP Details. + + Updates a VASP with the provided parameters. Use this endpoint to add your public jsonDIDkey generated by Notabene. + operationId: updateVasp 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\ @@ -28234,133 +28267,125 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ByorkSetTimeoutsRequest" + $ref: "#/components/schemas/TravelRuleUpdateVASPDetails" 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" + $ref: "#/components/schemas/TravelRuleUpdateVASPDetails" + description: VASP updated successfully "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 + description: Invalid request body + "500": + description: Internal server error + summary: Add jsonDidKey to VASP details tags: - - Compliance + - Travel Rule x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.setByorkTimeouts(complianceApiSetByorkTimeoutsRequest);" + code: "const response: Promise>\ + \ = fireblocks.travelRule.updateVasp(travelRuleApiUpdateVaspRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.compliance().setByorkTimeouts(byorkSetTimeoutsRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.travelRule().updateVasp(travelRuleUpdateVASPDetails, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.set_byork_timeouts(byork_set_timeouts_request,\ + code: "response = fireblocks.travel_rule.update_vasp(travel_rule_update_v_a_s_p_details,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.setByorkTimeouts(complianceApiSetByorkTimeoutsRequest);" + source: "const response: Promise>\ + \ = fireblocks.travelRule.updateVasp(travelRuleApiUpdateVaspRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.compliance().setByorkTimeouts(byorkSetTimeoutsRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.travelRule().updateVasp(travelRuleUpdateVASPDetails, idempotencyKey);" - lang: Python - source: "response = fireblocks.compliance.set_byork_timeouts(byork_set_timeouts_request,\ + source: "response = fireblocks.travel_rule.update_vasp(travel_rule_update_v_a_s_p_details,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /screening/ars/config/activate: - post: - description: "Activates ARS (Address Registry Screening) for the authenticated\ - \ tenant (sets config.active to true). Once activated, ARS screening applies\ - \ to matching transactions." - operationId: activateArsConfig + /screening/travel_rule/vault/{vaultAccountId}/vasp: + get: + description: Get assigned VASP Did for a specific vault. Returns empty string + vaspDid value in response if none assigned. + operationId: getVaspForVault 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." + - description: The ID of the vault account + example: 1 explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: vaultAccountId + required: true schema: + format: numeric type: string + x-fb-entity: vault_account style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ArsConfigResponse" - description: ARS configuration activated. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorSchema" - description: Tenant not opted-in for address registry. + $ref: "#/components/schemas/TravelRuleVaspForVault" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Activate ARS (Address Registry Screening) + summary: Get assigned VASP to vault tags: - - Compliance - x-rate-limit-category: write + - Travel Rule + x-rate-limit-category: read x-readme: code-samples: + - language: javascript + code: const vaultAsset = await fireblocks.getVaspForVault(vaultAccountId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.compliance.activateArsConfig(complianceApiActivateArsConfigRequest);" + code: "const response: Promise>\ + \ = fireblocks.travelRule.getVaspForVault(travelRuleApiGetVaspForVaultRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.compliance().activateArsConfig(idempotencyKey); + code: CompletableFuture> response = + fireblocks.travelRule().getVaspForVault(vaultAccountId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.activate_ars_config(idempotency_key); + code: response = fireblocks.travel_rule.get_vasp_for_vault(vault_account_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.compliance.activateArsConfig(complianceApiActivateArsConfigRequest);" + source: "const response: Promise>\ + \ = fireblocks.travelRule.getVaspForVault(travelRuleApiGetVaspForVaultRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.compliance().activateArsConfig(idempotencyKey); + source: CompletableFuture> response = + fireblocks.travelRule().getVaspForVault(vaultAccountId); - lang: Python - source: response = fireblocks.compliance.activate_ars_config(idempotency_key); + source: response = fireblocks.travel_rule.get_vasp_for_vault(vault_account_id); x-accepts: - application/json - /screening/ars/config/deactivate: post: - description: "Deactivates ARS (Address Registry Screening) for the authenticated\ - \ tenant (sets config.active to false). Once deactivated, ARS screening no\ - \ longer applies until activated again." - operationId: deactivateArsConfig + description: Sets the VASP Did for a specific vault. Pass empty string to remove + existing one. + operationId: setVaspForVault 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: "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\ @@ -28372,97 +28397,59 @@ paths: schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/TravelRuleVaspForVault" + required: true responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/ArsConfigResponse" - description: ARS configuration deactivated. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": + "201": content: application/json: schema: - $ref: "#/components/schemas/ErrorSchema" - description: Tenant not opted-in for address registry. + $ref: "#/components/schemas/TravelRuleVaspForVault" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Deactivate ARS (Address Registry Screening) + summary: Assign VASP to vault tags: - - Compliance + - Travel Rule x-rate-limit-category: write x-readme: code-samples: + - language: javascript + code: "const vaultAsset = await fireblocks.setVaspForVault(vaultAccountId,\ + \ vaspDid);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.compliance.deactivateArsConfig(complianceApiDeactivateArsConfigRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response = fireblocks.compliance().deactivateArsConfig(idempotencyKey); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.compliance.deactivate_ars_config(idempotency_key); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.compliance.deactivateArsConfig(complianceApiDeactivateArsConfigRequest);" - - lang: Java - source: CompletableFuture> response = fireblocks.compliance().deactivateArsConfig(idempotencyKey); - - lang: Python - source: response = fireblocks.compliance.deactivate_ars_config(idempotency_key); - x-accepts: - - application/json - /screening/trlink/partners: - get: - description: "Retrieves a list of all available Travel Rule Support integration\ - \ partners. Partners provide Travel Rule compliance services such as VASP\ - \ discovery, TRM exchange, and PII encryption." - operationId: getTRLinkPartners - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/TRLinkPartnersListResponse" - description: List of partners retrieved successfully - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: List available TRSupport partners - tags: - - TRLink - x-rate-limit-category: query - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.getTRLinkPartners();" + code: "const response: Promise>\ + \ = fireblocks.travelRule.setVaspForVault(travelRuleApiSetVaspForVaultRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture>> response - = fireblocks.tRLink().getTRLinkPartners(); + code: "CompletableFuture> response =\ + \ fireblocks.travelRule().setVaspForVault(travelRuleVaspForVault, vaultAccountId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.t_r_link.get_t_r_link_partners(); + code: "response = fireblocks.travel_rule.set_vasp_for_vault(travel_rule_vasp_for_vault,\ + \ vault_account_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.getTRLinkPartners();" + source: "const response: Promise>\ + \ = fireblocks.travelRule.setVaspForVault(travelRuleApiSetVaspForVaultRequest);" - lang: Java - source: CompletableFuture>> response - = fireblocks.tRLink().getTRLinkPartners(); + source: "CompletableFuture> response =\ + \ fireblocks.travelRule().setVaspForVault(travelRuleVaspForVault, vaultAccountId,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.t_r_link.get_t_r_link_partners(); + source: "response = fireblocks.travel_rule.set_vasp_for_vault(travel_rule_vasp_for_vault,\ + \ vault_account_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json /screening/trlink/customers: @@ -29082,141 +29069,12 @@ paths: x-content-type: application/json x-accepts: - application/json - /screening/trlink/customers/integration/{customerIntegrationId}/public_key: - get: - description: Retrieves the partner's public key in JWK format for encrypting - PII data in Travel Rule Messages. Use this key to encrypt sensitive originator - and beneficiary information before sending Travel Rule messages. - operationId: getTRLinkIntegrationPublicKey - parameters: - - description: Customer integration unique identifier - example: 123e4567-e89b-12d3-a456-426614174000 - explode: false - in: path - name: customerIntegrationId - required: true - schema: - format: uuid - type: string - style: simple - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/TRLinkPublicKeyResponse" - description: Public key retrieved successfully - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get public key for PII encryption - tags: - - TRLink - x-rate-limit-category: read - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.getTRLinkIntegrationPublicKey(tRLinkApiGetTRLinkIntegrationPublicKeyRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response = - fireblocks.tRLink().getTRLinkIntegrationPublicKey(customerIntegrationId); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.t_r_link.get_t_r_link_integration_public_key(customer_integration_id); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.getTRLinkIntegrationPublicKey(tRLinkApiGetTRLinkIntegrationPublicKeyRequest);" - - lang: Java - source: CompletableFuture> response = - fireblocks.tRLink().getTRLinkIntegrationPublicKey(customerIntegrationId); - - lang: Python - source: response = fireblocks.t_r_link.get_t_r_link_integration_public_key(customer_integration_id); - x-accepts: - - application/json - /screening/trlink/customers/integration/{customerIntegrationId}/test_connection: - post: - description: Tests the connection to a customer integration by validating stored - credentials and attempting communication with the Travel Rule partner. Returns - connection status and any error messages. - operationId: testTRLinkIntegrationConnection - parameters: - - description: Customer integration unique identifier - example: 123e4567-e89b-12d3-a456-426614174000 - explode: false - in: path - name: customerIntegrationId - required: true - schema: - format: uuid - 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\ - \ 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/TRLinkTestConnectionResponse" - description: Connection test completed (success or failure details in response - body) - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Test connection - tags: - - TRLink - x-rate-limit-category: write - x-readme: - code-samples: - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.testTRLinkIntegrationConnection(tRLinkApiTestTRLinkIntegrationConnectionRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tRLink().testTRLinkIntegrationConnection(customerIntegrationId,\ - \ idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.t_r_link.test_t_r_link_integration_connection(customer_integration_id,\ - \ idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.testTRLinkIntegrationConnection(tRLinkApiTestTRLinkIntegrationConnectionRequest);" - - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tRLink().testTRLinkIntegrationConnection(customerIntegrationId,\ - \ idempotencyKey);" - - lang: Python - source: "response = fireblocks.t_r_link.test_t_r_link_integration_connection(customer_integration_id,\ - \ idempotency_key);" - x-accepts: - - application/json - /screening/trlink/customers/integration/{customerIntegrationId}/vasps: + /screening/trlink/customers/integration/{customerIntegrationId}/assets: get: - description: Retrieves a paginated list of VASPs (Virtual Asset Service Providers) - available through the partner integration. Supports cursor-based pagination. - operationId: listTRLinkVasps + description: Retrieves a paginated list of assets supported by the partner integration. + Includes a flag indicating whether the partner can handle assets not explicitly + listed. Supports cursor-based pagination. + operationId: listTRLinkSupportedAssets parameters: - description: Customer integration unique identifier explode: false @@ -29251,49 +29109,51 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TRLinkAPIPagedResponse" - description: VASPs retrieved successfully + $ref: "#/components/schemas/TRLinkAssetsListPagedResponse" + description: Supported assets retrieved successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List VASPs + summary: List supported assets tags: - TRLink x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.listTRLinkVasps(tRLinkApiListTRLinkVaspsRequest);" + code: "const response: Promise>\ + \ = fireblocks.tRLink.listTRLinkSupportedAssets(tRLinkApiListTRLinkSupportedAssetsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.tRLink().listTRLinkVasps(customerIntegrationId, pageSize,\ - \ pageCursor);" + code: "CompletableFuture> response\ + \ = fireblocks.tRLink().listTRLinkSupportedAssets(customerIntegrationId,\ + \ pageSize, pageCursor);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.t_r_link.list_t_r_link_vasps(customer_integration_id,\ + code: "response = fireblocks.t_r_link.list_t_r_link_supported_assets(customer_integration_id,\ \ page_size, page_cursor);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.listTRLinkVasps(tRLinkApiListTRLinkVaspsRequest);" + source: "const response: Promise>\ + \ = fireblocks.tRLink.listTRLinkSupportedAssets(tRLinkApiListTRLinkSupportedAssetsRequest);" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.tRLink().listTRLinkVasps(customerIntegrationId, pageSize, pageCursor);" + source: "CompletableFuture> response\ + \ = fireblocks.tRLink().listTRLinkSupportedAssets(customerIntegrationId,\ + \ pageSize, pageCursor);" - lang: Python - source: "response = fireblocks.t_r_link.list_t_r_link_vasps(customer_integration_id,\ + source: "response = fireblocks.t_r_link.list_t_r_link_supported_assets(customer_integration_id,\ \ page_size, page_cursor);" x-accepts: - application/json - /screening/trlink/customers/integration/{customerIntegrationId}/vasps/{vaspId}: + /screening/trlink/customers/integration/{customerIntegrationId}/assets/{assetId}: get: - description: Retrieves detailed information about a specific VASP by its unique - identifier. Returns VASP details including public key if available. - operationId: getTRLinkVaspById + description: "Retrieves detailed information about a specific asset by its Fireblocks\ + \ asset ID. Returns the transformed Fireblocks asset data, raw partner response,\ + \ and support status." + operationId: getTRLinkSupportedAsset parameters: - description: Customer integration unique identifier explode: false @@ -29304,10 +29164,10 @@ paths: format: uuid type: string style: simple - - description: VASP unique identifier (DID format) + - description: Fireblocks asset ID explode: false in: path - name: vaspId + name: assetId required: true schema: type: string @@ -29317,49 +29177,53 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TRLinkVaspDto" - description: VASP retrieved successfully + $ref: "#/components/schemas/TRLinkGetSupportedAssetResponse" + description: Asset retrieved successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get VASP by ID + summary: Get supported asset by ID tags: - TRLink x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.tRLink.getTRLinkVaspById(tRLinkApiGetTRLinkVaspByIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.tRLink.getTRLinkSupportedAsset(tRLinkApiGetTRLinkSupportedAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tRLink().getTRLinkVaspById(customerIntegrationId,\ - \ vaspId);" + code: "CompletableFuture> response\ + \ = fireblocks.tRLink().getTRLinkSupportedAsset(customerIntegrationId,\ + \ assetId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.t_r_link.get_t_r_link_vasp_by_id(customer_integration_id,\ - \ vasp_id);" + code: "response = fireblocks.t_r_link.get_t_r_link_supported_asset(customer_integration_id,\ + \ asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tRLink.getTRLinkVaspById(tRLinkApiGetTRLinkVaspByIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.tRLink.getTRLinkSupportedAsset(tRLinkApiGetTRLinkSupportedAssetRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tRLink().getTRLinkVaspById(customerIntegrationId,\ - \ vaspId);" + source: "CompletableFuture> response\ + \ = fireblocks.tRLink().getTRLinkSupportedAsset(customerIntegrationId, assetId);" - lang: Python - source: "response = fireblocks.t_r_link.get_t_r_link_vasp_by_id(customer_integration_id,\ - \ vasp_id);" + source: "response = fireblocks.t_r_link.get_t_r_link_supported_asset(customer_integration_id,\ + \ asset_id);" x-accepts: - application/json - /screening/trlink/customers/integration/{customerIntegrationId}/assets: - get: - description: Retrieves a paginated list of assets supported by the partner integration. - Includes a flag indicating whether the partner can handle assets not explicitly - listed. Supports cursor-based pagination. - operationId: listTRLinkSupportedAssets + /screening/trlink/customers/integration/{customerIntegrationId}/public_key: + get: + description: Retrieves the partner's public key in JWK format for encrypting + PII data in Travel Rule Messages. Use this key to encrypt sensitive originator + and beneficiary information before sending Travel Rule messages. + operationId: getTRLinkIntegrationPublicKey parameters: - description: Customer integration unique identifier + example: 123e4567-e89b-12d3-a456-426614174000 explode: false in: path name: customerIntegrationId @@ -29368,77 +29232,55 @@ paths: format: uuid type: string style: simple - - description: Number of results per page (max 100) - explode: true - in: query - name: pageSize - required: false - schema: - default: 100 - maximum: 100 - minimum: 1 - type: integer - style: form - - description: Cursor for pagination (from previous response) - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TRLinkAssetsListPagedResponse" - description: Supported assets retrieved successfully + $ref: "#/components/schemas/TRLinkPublicKeyResponse" + description: Public key retrieved successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List supported assets + summary: Get public key for PII encryption tags: - TRLink - x-rate-limit-category: query + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.listTRLinkSupportedAssets(tRLinkApiListTRLinkSupportedAssetsRequest);" + code: "const response: Promise>\ + \ = fireblocks.tRLink.getTRLinkIntegrationPublicKey(tRLinkApiGetTRLinkIntegrationPublicKeyRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tRLink().listTRLinkSupportedAssets(customerIntegrationId,\ - \ pageSize, pageCursor);" + code: CompletableFuture> response = + fireblocks.tRLink().getTRLinkIntegrationPublicKey(customerIntegrationId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.t_r_link.list_t_r_link_supported_assets(customer_integration_id,\ - \ page_size, page_cursor);" + code: response = fireblocks.t_r_link.get_t_r_link_integration_public_key(customer_integration_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.listTRLinkSupportedAssets(tRLinkApiListTRLinkSupportedAssetsRequest);" + source: "const response: Promise>\ + \ = fireblocks.tRLink.getTRLinkIntegrationPublicKey(tRLinkApiGetTRLinkIntegrationPublicKeyRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tRLink().listTRLinkSupportedAssets(customerIntegrationId,\ - \ pageSize, pageCursor);" + source: CompletableFuture> response = + fireblocks.tRLink().getTRLinkIntegrationPublicKey(customerIntegrationId); - lang: Python - source: "response = fireblocks.t_r_link.list_t_r_link_supported_assets(customer_integration_id,\ - \ page_size, page_cursor);" + source: response = fireblocks.t_r_link.get_t_r_link_integration_public_key(customer_integration_id); x-accepts: - application/json - /screening/trlink/customers/integration/{customerIntegrationId}/assets/{assetId}: - get: - description: "Retrieves detailed information about a specific asset by its Fireblocks\ - \ asset ID. Returns the transformed Fireblocks asset data, raw partner response,\ - \ and support status." - operationId: getTRLinkSupportedAsset + /screening/trlink/customers/integration/{customerIntegrationId}/test_connection: + post: + description: Tests the connection to a customer integration by validating stored + credentials and attempting communication with the Travel Rule partner. Returns + connection status and any error messages. + operationId: testTRLinkIntegrationConnection parameters: - description: Customer integration unique identifier + example: 123e4567-e89b-12d3-a456-426614174000 explode: false in: path name: customerIntegrationId @@ -29447,11 +29289,14 @@ paths: format: uuid type: string style: simple - - description: Fireblocks asset ID + - 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: path - name: assetId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple @@ -29460,52 +29305,54 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TRLinkGetSupportedAssetResponse" - description: Asset retrieved successfully + $ref: "#/components/schemas/TRLinkTestConnectionResponse" + description: Connection test completed (success or failure details in response + body) headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get supported asset by ID + summary: Test connection tags: - TRLink - x-rate-limit-category: read + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.getTRLinkSupportedAsset(tRLinkApiGetTRLinkSupportedAssetRequest);" + code: "const response: Promise>\ + \ = fireblocks.tRLink.testTRLinkIntegrationConnection(tRLinkApiTestTRLinkIntegrationConnectionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tRLink().getTRLinkSupportedAsset(customerIntegrationId,\ - \ assetId);" + code: "CompletableFuture> response\ + \ = fireblocks.tRLink().testTRLinkIntegrationConnection(customerIntegrationId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.t_r_link.get_t_r_link_supported_asset(customer_integration_id,\ - \ asset_id);" + code: "response = fireblocks.t_r_link.test_t_r_link_integration_connection(customer_integration_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.getTRLinkSupportedAsset(tRLinkApiGetTRLinkSupportedAssetRequest);" + source: "const response: Promise>\ + \ = fireblocks.tRLink.testTRLinkIntegrationConnection(tRLinkApiTestTRLinkIntegrationConnectionRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tRLink().getTRLinkSupportedAsset(customerIntegrationId, assetId);" + source: "CompletableFuture> response\ + \ = fireblocks.tRLink().testTRLinkIntegrationConnection(customerIntegrationId,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.t_r_link.get_t_r_link_supported_asset(customer_integration_id,\ - \ asset_id);" + source: "response = fireblocks.t_r_link.test_t_r_link_integration_connection(customer_integration_id,\ + \ idempotency_key);" x-accepts: - application/json - /screening/trlink/customers/integration/{customerIntegrationId}/trm/assess: + /screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision: post: - description: "Assesses travel rule requirement for a transaction by validating\ - \ stored credentials and determining whether Travel Rule compliance is required\ - \ based on amount, jurisdiction, and partner thresholds." - operationId: assessTRLinkTravelRuleRequirement + description: Accept or reject destinations stuck in NoTRM step without waiting + for TRP webhook or policy timeout. + operationId: createTRLinkManualDecision parameters: - description: Customer integration unique identifier + example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 explode: false in: path name: customerIntegrationId @@ -29514,6 +29361,16 @@ paths: format: uuid type: string style: simple + - description: Fireblocks transaction unique identifier + example: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + explode: false + in: path + name: txId + required: true + schema: + format: uuid + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -29529,50 +29386,47 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TRLinkAssessTravelRuleRequest" + $ref: "#/components/schemas/TRLinkManualDecisionRequest" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TRLinkAssessTravelRuleResponse" - description: Travel rule assessment completed - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/TRLinkManualDecisionResponse" + description: Decision applied successfully default: $ref: "#/components/responses/Error" - summary: Assess Travel Rule requirement + summary: Manual decision for missing TRM tags: - TRLink x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.assessTRLinkTravelRuleRequirement(tRLinkApiAssessTRLinkTravelRuleRequirementRequest);" + code: "const response: Promise>\ + \ = fireblocks.tRLink.createTRLinkManualDecision(tRLinkApiCreateTRLinkManualDecisionRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tRLink().assessTRLinkTravelRuleRequirement(tRLinkAssessTravelRuleRequest,\ - \ customerIntegrationId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.tRLink().createTRLinkManualDecision(tRLinkManualDecisionRequest,\ + \ customerIntegrationId, txId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.t_r_link.assess_t_r_link_travel_rule_requirement(t_r_link_assess_travel_rule_request,\ - \ customer_integration_id, idempotency_key);" + code: "response = fireblocks.t_r_link.create_t_r_link_manual_decision(t_r_link_manual_decision_request,\ + \ customer_integration_id, tx_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.assessTRLinkTravelRuleRequirement(tRLinkApiAssessTRLinkTravelRuleRequirementRequest);" + source: "const response: Promise>\ + \ = fireblocks.tRLink.createTRLinkManualDecision(tRLinkApiCreateTRLinkManualDecisionRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tRLink().assessTRLinkTravelRuleRequirement(tRLinkAssessTravelRuleRequest,\ - \ customerIntegrationId, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.tRLink().createTRLinkManualDecision(tRLinkManualDecisionRequest,\ + \ customerIntegrationId, txId, idempotencyKey);" - lang: Python - source: "response = fireblocks.t_r_link.assess_t_r_link_travel_rule_requirement(t_r_link_assess_travel_rule_request,\ - \ customer_integration_id, idempotency_key);" + source: "response = fireblocks.t_r_link.create_t_r_link_manual_decision(t_r_link_manual_decision_request,\ + \ customer_integration_id, tx_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json @@ -29890,14 +29744,13 @@ paths: x-content-type: application/json x-accepts: - application/json - /screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision: - post: - description: Accept or reject destinations stuck in NoTRM step without waiting - for TRP webhook or policy timeout. - operationId: createTRLinkManualDecision + /screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId}/required_actions: + get: + description: "Retrieves the list of required actions (e.g., PII fields) needed\ + \ to process the Travel Rule Message." + operationId: getTRLinkTrmRequiredActions parameters: - description: Customer integration unique identifier - example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 explode: false in: path name: customerIntegrationId @@ -29906,16 +29759,78 @@ paths: format: uuid type: string style: simple - - description: Fireblocks transaction unique identifier - example: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + - description: Travel Rule Message unique identifier explode: false in: path - name: txId + name: trmId + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/TRLinkGetRequiredActionsResponse" + description: Required actions retrieved successfully + default: + $ref: "#/components/responses/Error" + summary: Get required actions for a TRM + tags: + - TRLink + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.tRLink.getTRLinkTrmRequiredActions(tRLinkApiGetTRLinkTrmRequiredActionsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.tRLink().getTRLinkTrmRequiredActions(customerIntegrationId,\ + \ trmId);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.t_r_link.get_t_r_link_trm_required_actions(customer_integration_id,\ + \ trm_id);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.tRLink.getTRLinkTrmRequiredActions(tRLinkApiGetTRLinkTrmRequiredActionsRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.tRLink().getTRLinkTrmRequiredActions(customerIntegrationId,\ + \ trmId);" + - lang: Python + source: "response = fireblocks.t_r_link.get_t_r_link_trm_required_actions(customer_integration_id,\ + \ trm_id);" + x-accepts: + - application/json + /screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId}/resolve_action: + post: + description: "Submits required data (e.g., beneficiary PII) to resolve a pending\ + \ Travel Rule Message action." + operationId: resolveActionTRLinkTrm + parameters: + - description: Customer integration unique identifier + explode: false + in: path + name: customerIntegrationId required: true schema: format: uuid type: string style: simple + - description: Travel Rule Message unique identifier + explode: false + in: path + name: trmId + required: true + schema: + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -29931,55 +29846,56 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TRLinkManualDecisionRequest" + $ref: "#/components/schemas/TRLinkResolveActionRequest" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TRLinkManualDecisionResponse" - description: Decision applied successfully + $ref: "#/components/schemas/TRLinkTrmInfoResponse" + description: Action resolved successfully default: $ref: "#/components/responses/Error" - summary: Manual decision for missing TRM + summary: Resolve action for a TRM tags: - TRLink x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.createTRLinkManualDecision(tRLinkApiCreateTRLinkManualDecisionRequest);" + code: "const response: Promise>\ + \ = fireblocks.tRLink.resolveActionTRLinkTrm(tRLinkApiResolveActionTRLinkTrmRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.tRLink().createTRLinkManualDecision(tRLinkManualDecisionRequest,\ - \ customerIntegrationId, txId, idempotencyKey);" + code: "CompletableFuture> response =\ + \ fireblocks.tRLink().resolveActionTRLinkTrm(tRLinkResolveActionRequest,\ + \ customerIntegrationId, trmId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.t_r_link.create_t_r_link_manual_decision(t_r_link_manual_decision_request,\ - \ customer_integration_id, tx_id, idempotency_key);" + code: "response = fireblocks.t_r_link.resolve_action_t_r_link_trm(t_r_link_resolve_action_request,\ + \ customer_integration_id, trm_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.createTRLinkManualDecision(tRLinkApiCreateTRLinkManualDecisionRequest);" + source: "const response: Promise>\ + \ = fireblocks.tRLink.resolveActionTRLinkTrm(tRLinkApiResolveActionTRLinkTrmRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.tRLink().createTRLinkManualDecision(tRLinkManualDecisionRequest,\ - \ customerIntegrationId, txId, idempotencyKey);" + source: "CompletableFuture> response =\ + \ fireblocks.tRLink().resolveActionTRLinkTrm(tRLinkResolveActionRequest,\ + \ customerIntegrationId, trmId, idempotencyKey);" - lang: Python - source: "response = fireblocks.t_r_link.create_t_r_link_manual_decision(t_r_link_manual_decision_request,\ - \ customer_integration_id, tx_id, idempotency_key);" + source: "response = fireblocks.t_r_link.resolve_action_t_r_link_trm(t_r_link_resolve_action_request,\ + \ customer_integration_id, trm_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId}/required_actions: - get: - description: "Retrieves the list of required actions (e.g., PII fields) needed\ - \ to process the Travel Rule Message." - operationId: getTRLinkTrmRequiredActions + /screening/trlink/customers/integration/{customerIntegrationId}/trm/assess: + post: + description: "Assesses travel rule requirement for a transaction by validating\ + \ stored credentials and determining whether Travel Rule compliance is required\ + \ based on amount, jurisdiction, and partner thresholds." + operationId: assessTRLinkTravelRuleRequirement parameters: - description: Customer integration unique identifier explode: false @@ -29990,60 +29906,73 @@ paths: format: uuid type: string style: simple - - description: Travel Rule Message unique identifier + - 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: path - name: trmId - required: true + in: header + name: Idempotency-Key + required: false schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/TRLinkAssessTravelRuleRequest" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TRLinkGetRequiredActionsResponse" - description: Required actions retrieved successfully + $ref: "#/components/schemas/TRLinkAssessTravelRuleResponse" + description: Travel rule assessment completed + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get required actions for a TRM + summary: Assess Travel Rule requirement tags: - TRLink - x-rate-limit-category: query + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.getTRLinkTrmRequiredActions(tRLinkApiGetTRLinkTrmRequiredActionsRequest);" + code: "const response: Promise>\ + \ = fireblocks.tRLink.assessTRLinkTravelRuleRequirement(tRLinkApiAssessTRLinkTravelRuleRequirementRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.tRLink().getTRLinkTrmRequiredActions(customerIntegrationId,\ - \ trmId);" + code: "CompletableFuture> response\ + \ = fireblocks.tRLink().assessTRLinkTravelRuleRequirement(tRLinkAssessTravelRuleRequest,\ + \ customerIntegrationId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.t_r_link.get_t_r_link_trm_required_actions(customer_integration_id,\ - \ trm_id);" + code: "response = fireblocks.t_r_link.assess_t_r_link_travel_rule_requirement(t_r_link_assess_travel_rule_request,\ + \ customer_integration_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.getTRLinkTrmRequiredActions(tRLinkApiGetTRLinkTrmRequiredActionsRequest);" + source: "const response: Promise>\ + \ = fireblocks.tRLink.assessTRLinkTravelRuleRequirement(tRLinkApiAssessTRLinkTravelRuleRequirementRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.tRLink().getTRLinkTrmRequiredActions(customerIntegrationId,\ - \ trmId);" + source: "CompletableFuture> response\ + \ = fireblocks.tRLink().assessTRLinkTravelRuleRequirement(tRLinkAssessTravelRuleRequest,\ + \ customerIntegrationId, idempotencyKey);" - lang: Python - source: "response = fireblocks.t_r_link.get_t_r_link_trm_required_actions(customer_integration_id,\ - \ trm_id);" + source: "response = fireblocks.t_r_link.assess_t_r_link_travel_rule_requirement(t_r_link_assess_travel_rule_request,\ + \ customer_integration_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /screening/trlink/customers/integration/{customerIntegrationId}/trm/{trmId}/resolve_action: - post: - description: "Submits required data (e.g., beneficiary PII) to resolve a pending\ - \ Travel Rule Message action." - operationId: resolveActionTRLinkTrm + /screening/trlink/customers/integration/{customerIntegrationId}/vasps: + get: + description: Retrieves a paginated list of VASPs (Virtual Asset Service Providers) + available through the partner integration. Supports cursor-based pagination. + operationId: listTRLinkVasps parameters: - description: Customer integration unique identifier explode: false @@ -30054,71 +29983,175 @@ paths: format: uuid type: string style: simple - - description: Travel Rule Message unique identifier + - description: Number of results per page (max 100) + explode: true + in: query + name: pageSize + required: false + schema: + default: 100 + maximum: 100 + minimum: 1 + type: integer + style: form + - description: Cursor for pagination (from previous response) + explode: true + in: query + name: pageCursor + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/TRLinkAPIPagedResponse" + description: VASPs retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: List VASPs + tags: + - TRLink + x-rate-limit-category: query + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.tRLink.listTRLinkVasps(tRLinkApiListTRLinkVaspsRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response =\ + \ fireblocks.tRLink().listTRLinkVasps(customerIntegrationId, pageSize,\ + \ pageCursor);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.t_r_link.list_t_r_link_vasps(customer_integration_id,\ + \ page_size, page_cursor);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.tRLink.listTRLinkVasps(tRLinkApiListTRLinkVaspsRequest);" + - lang: Java + source: "CompletableFuture> response =\ + \ fireblocks.tRLink().listTRLinkVasps(customerIntegrationId, pageSize, pageCursor);" + - lang: Python + source: "response = fireblocks.t_r_link.list_t_r_link_vasps(customer_integration_id,\ + \ page_size, page_cursor);" + x-accepts: + - application/json + /screening/trlink/customers/integration/{customerIntegrationId}/vasps/{vaspId}: + get: + description: Retrieves detailed information about a specific VASP by its unique + identifier. Returns VASP details including public key if available. + operationId: getTRLinkVaspById + parameters: + - description: Customer integration unique identifier explode: false in: path - name: trmId + name: customerIntegrationId required: true schema: + format: uuid 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\ - \ same response as the first request. The idempotency key is valid for 24\ - \ hours." + - description: VASP unique identifier (DID format) explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: vaspId + required: true schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/TRLinkResolveActionRequest" - required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TRLinkTrmInfoResponse" - description: Action resolved successfully + $ref: "#/components/schemas/TRLinkVaspDto" + description: VASP retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get VASP by ID + tags: + - TRLink + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.tRLink.getTRLinkVaspById(tRLinkApiGetTRLinkVaspByIdRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.tRLink().getTRLinkVaspById(customerIntegrationId,\ + \ vaspId);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.t_r_link.get_t_r_link_vasp_by_id(customer_integration_id,\ + \ vasp_id);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.tRLink.getTRLinkVaspById(tRLinkApiGetTRLinkVaspByIdRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.tRLink().getTRLinkVaspById(customerIntegrationId,\ + \ vaspId);" + - lang: Python + source: "response = fireblocks.t_r_link.get_t_r_link_vasp_by_id(customer_integration_id,\ + \ vasp_id);" + x-accepts: + - application/json + /screening/trlink/partners: + get: + description: "Retrieves a list of all available Travel Rule Support integration\ + \ partners. Partners provide Travel Rule compliance services such as VASP\ + \ discovery, TRM exchange, and PII encryption." + operationId: getTRLinkPartners + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/TRLinkPartnersListResponse" + description: List of partners retrieved successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Resolve action for a TRM + summary: List available TRSupport partners tags: - TRLink - x-rate-limit-category: write + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.resolveActionTRLinkTrm(tRLinkApiResolveActionTRLinkTrmRequest);" + code: "const response: Promise>\ + \ = fireblocks.tRLink.getTRLinkPartners();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response =\ - \ fireblocks.tRLink().resolveActionTRLinkTrm(tRLinkResolveActionRequest,\ - \ customerIntegrationId, trmId, idempotencyKey);" + code: CompletableFuture>> response + = fireblocks.tRLink().getTRLinkPartners(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.t_r_link.resolve_action_t_r_link_trm(t_r_link_resolve_action_request,\ - \ customer_integration_id, trm_id, idempotency_key);" + code: response = fireblocks.t_r_link.get_t_r_link_partners(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.resolveActionTRLinkTrm(tRLinkApiResolveActionTRLinkTrmRequest);" + source: "const response: Promise>\ + \ = fireblocks.tRLink.getTRLinkPartners();" - lang: Java - source: "CompletableFuture> response =\ - \ fireblocks.tRLink().resolveActionTRLinkTrm(tRLinkResolveActionRequest,\ - \ customerIntegrationId, trmId, idempotencyKey);" + source: CompletableFuture>> response + = fireblocks.tRLink().getTRLinkPartners(); - lang: Python - source: "response = fireblocks.t_r_link.resolve_action_t_r_link_trm(t_r_link_resolve_action_request,\ - \ customer_integration_id, trm_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.t_r_link.get_t_r_link_partners(); x-accepts: - application/json /screening/trlink/policy: @@ -30167,11 +30200,12 @@ paths: source: response = fireblocks.t_r_link.get_t_r_link_policy(); x-accepts: - application/json - /screening/trlink/transaction/{txId}/travel_rule_message_id: + /screening/trlink/transaction/{txId}/destination/travel_rule_message_id: post: - description: Associates a Travel Rule Message ID with a Fireblocks transaction. - This links the TRM compliance data to the blockchain transaction. - operationId: setTRLinkTransactionTravelRuleMessageId + description: Associates a Travel Rule Message ID with a specific destination + in a multi-destination Fireblocks transaction. Matches destinations by amount + and peer path. + operationId: setTRLinkDestinationTravelRuleMessageId parameters: - description: Fireblocks transaction unique identifier explode: false @@ -30197,59 +30231,58 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TRLinkSetTransactionTravelRuleMessageIdRequest" + $ref: "#/components/schemas/TRLinkSetDestinationTravelRuleMessageIdRequest" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TRLinkSetTransactionTravelRuleMessageIdResponse" - description: Travel rule message ID set successfully + $ref: "#/components/schemas/TRLinkSetDestinationTravelRuleMessageIdResponse" + description: Destination travel rule message ID set successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Set transaction travel rule message ID + summary: Set destination travel rule message ID tags: - TRLink x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.setTRLinkTransactionTravelRuleMessageId(tRLinkApiSetTRLinkTransactionTravelRuleMessageIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.tRLink.setTRLinkDestinationTravelRuleMessageId(tRLinkApiSetTRLinkDestinationTravelRuleMessageIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.tRLink().setTRLinkTransactionTravelRuleMessageId(tRLinkSetTransactionTravelRuleMessageIdRequest,\ + code: "CompletableFuture>\ + \ response = fireblocks.tRLink().setTRLinkDestinationTravelRuleMessageId(tRLinkSetDestinationTravelRuleMessageIdRequest,\ \ txId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.t_r_link.set_t_r_link_transaction_travel_rule_message_id(t_r_link_set_transaction_travel_rule_message_id_request,\ + code: "response = fireblocks.t_r_link.set_t_r_link_destination_travel_rule_message_id(t_r_link_set_destination_travel_rule_message_id_request,\ \ tx_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.setTRLinkTransactionTravelRuleMessageId(tRLinkApiSetTRLinkTransactionTravelRuleMessageIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.tRLink.setTRLinkDestinationTravelRuleMessageId(tRLinkApiSetTRLinkDestinationTravelRuleMessageIdRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.tRLink().setTRLinkTransactionTravelRuleMessageId(tRLinkSetTransactionTravelRuleMessageIdRequest,\ + source: "CompletableFuture>\ + \ response = fireblocks.tRLink().setTRLinkDestinationTravelRuleMessageId(tRLinkSetDestinationTravelRuleMessageIdRequest,\ \ txId, idempotencyKey);" - lang: Python - source: "response = fireblocks.t_r_link.set_t_r_link_transaction_travel_rule_message_id(t_r_link_set_transaction_travel_rule_message_id_request,\ + source: "response = fireblocks.t_r_link.set_t_r_link_destination_travel_rule_message_id(t_r_link_set_destination_travel_rule_message_id_request,\ \ tx_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /screening/trlink/transaction/{txId}/destination/travel_rule_message_id: + /screening/trlink/transaction/{txId}/travel_rule_message_id: post: - description: Associates a Travel Rule Message ID with a specific destination - in a multi-destination Fireblocks transaction. Matches destinations by amount - and peer path. - operationId: setTRLinkDestinationTravelRuleMessageId + description: Associates a Travel Rule Message ID with a Fireblocks transaction. + This links the TRM compliance data to the blockchain transaction. + operationId: setTRLinkTransactionTravelRuleMessageId parameters: - description: Fireblocks transaction unique identifier explode: false @@ -30275,97 +30308,106 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/TRLinkSetDestinationTravelRuleMessageIdRequest" + $ref: "#/components/schemas/TRLinkSetTransactionTravelRuleMessageIdRequest" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TRLinkSetDestinationTravelRuleMessageIdResponse" - description: Destination travel rule message ID set successfully + $ref: "#/components/schemas/TRLinkSetTransactionTravelRuleMessageIdResponse" + description: Travel rule message ID set successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Set destination travel rule message ID + summary: Set transaction travel rule message ID tags: - TRLink x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.tRLink.setTRLinkDestinationTravelRuleMessageId(tRLinkApiSetTRLinkDestinationTravelRuleMessageIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.tRLink.setTRLinkTransactionTravelRuleMessageId(tRLinkApiSetTRLinkTransactionTravelRuleMessageIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.tRLink().setTRLinkDestinationTravelRuleMessageId(tRLinkSetDestinationTravelRuleMessageIdRequest,\ + code: "CompletableFuture>\ + \ response = fireblocks.tRLink().setTRLinkTransactionTravelRuleMessageId(tRLinkSetTransactionTravelRuleMessageIdRequest,\ \ txId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.t_r_link.set_t_r_link_destination_travel_rule_message_id(t_r_link_set_destination_travel_rule_message_id_request,\ + code: "response = fireblocks.t_r_link.set_t_r_link_transaction_travel_rule_message_id(t_r_link_set_transaction_travel_rule_message_id_request,\ \ tx_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.tRLink.setTRLinkDestinationTravelRuleMessageId(tRLinkApiSetTRLinkDestinationTravelRuleMessageIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.tRLink.setTRLinkTransactionTravelRuleMessageId(tRLinkApiSetTRLinkTransactionTravelRuleMessageIdRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.tRLink().setTRLinkDestinationTravelRuleMessageId(tRLinkSetDestinationTravelRuleMessageIdRequest,\ + source: "CompletableFuture>\ + \ response = fireblocks.tRLink().setTRLinkTransactionTravelRuleMessageId(tRLinkSetTransactionTravelRuleMessageIdRequest,\ \ txId, idempotencyKey);" - lang: Python - source: "response = fireblocks.t_r_link.set_t_r_link_destination_travel_rule_message_id(t_r_link_set_destination_travel_rule_message_id_request,\ + source: "response = fireblocks.t_r_link.set_t_r_link_transaction_travel_rule_message_id(t_r_link_set_transaction_travel_rule_message_id_request,\ \ tx_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /management/ota: + /management/user_groups: get: - description: Returns current OTA status - operationId: getOtaStatus + description: |- + Get all user groups in your workspace + + - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: getUserGroups responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetOtaStatusResponse" - description: Current OTA status - "404": - description: Configuration not found for tenant - summary: Returns current OTA status + $ref: "#/components/schemas/UserGroupsResponse" + description: List of the user groups in your workspace + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: List user groups tags: - - OTA (Beta) - x-rate-limit-category: write + - User groups (Beta) + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.oTABeta.getOtaStatus();" + code: "const response: Promise> =\ + \ fireblocks.userGroupsBeta.getUserGroups();" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.oTABeta().getOtaStatus(); + code: CompletableFuture>> response = + fireblocks.userGroupsBeta().getUserGroups(); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.o_t_a_beta.get_ota_status(); + code: response = fireblocks.user_groups_beta.get_user_groups(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.oTABeta.getOtaStatus();" + source: "const response: Promise> =\ + \ fireblocks.userGroupsBeta.getUserGroups();" - lang: Java - source: CompletableFuture> response = fireblocks.oTABeta().getOtaStatus(); + source: CompletableFuture>> response = + fireblocks.userGroupsBeta().getUserGroups(); - lang: Python - source: response = fireblocks.o_t_a_beta.get_ota_status(); + source: response = fireblocks.user_groups_beta.get_user_groups(); x-accepts: - application/json - put: + post: description: |- - Enable or disable transactions to One Time Addresses (Non Whitelisted addresses). - Learn more about [One Time Addresses](https://support.fireblocks.io/hc/en-us/articles/4409104568338-One-Time-Address-OTA-feature) - operationId: setOtaStatus + Create a new user group. Users with the Viewer role cannot be added to groups. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: createUserGroup 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\ @@ -30382,376 +30424,642 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SetOtaStatusRequest" + $ref: "#/components/schemas/UserGroupCreateRequest" required: true responses: - "202": + "201": content: application/json: schema: - $ref: "#/components/schemas/SetOtaStatusResponse" - description: Successfully updated OTA status + $ref: "#/components/schemas/CreateUserGroupResponse" + description: User group created and pending approval headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "400": - description: Bad request - "409": - description: Similar request already pending - "500": - description: Internal server error - summary: Enable or disable transactions to OTA + default: + $ref: "#/components/responses/Error" + summary: Create user group tags: - - OTA (Beta) - x-rate-limit-category: query + - User groups (Beta) + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.oTABeta.setOtaStatus(oTABetaApiSetOtaStatusRequest);" + code: "const response: Promise>\ + \ = fireblocks.userGroupsBeta.createUserGroup(userGroupsBetaApiCreateUserGroupRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.oTABeta().setOtaStatus(setOtaStatusRequest,\ + code: "CompletableFuture> response\ + \ = fireblocks.userGroupsBeta().createUserGroup(userGroupCreateRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.o_t_a_beta.set_ota_status(set_ota_status_request,\ + code: "response = fireblocks.user_groups_beta.create_user_group(user_group_create_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.oTABeta.setOtaStatus(oTABetaApiSetOtaStatusRequest);" + source: "const response: Promise>\ + \ = fireblocks.userGroupsBeta.createUserGroup(userGroupsBetaApiCreateUserGroupRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.oTABeta().setOtaStatus(setOtaStatusRequest,\ + source: "CompletableFuture> response\ + \ = fireblocks.userGroupsBeta().createUserGroup(userGroupCreateRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.o_t_a_beta.set_ota_status(set_ota_status_request,\ + source: "response = fireblocks.user_groups_beta.create_user_group(user_group_create_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /management/workspace_status: + /management/user_groups/{groupId}: + delete: + description: | + Delete a user group by ID. + + **Note**: + - This endpoint is now in Beta, disabled for general availability at this time. + - Please note that this endpoint is available only for API keys with Admin permissions. + operationId: deleteUserGroup + parameters: + - description: The ID of the user group + explode: false + in: path + name: groupId + required: true + schema: + type: string + style: simple + responses: + "204": + description: Request to delete user group submitted for approval + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Delete user group + tags: + - User groups (Beta) + x-rate-limit-category: write + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.userGroupsBeta.deleteUserGroup(userGroupsBetaApiDeleteUserGroupRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.userGroupsBeta().deleteUserGroup(groupId); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.user_groups_beta.delete_user_group(group_id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.userGroupsBeta.deleteUserGroup(userGroupsBetaApiDeleteUserGroupRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.userGroupsBeta().deleteUserGroup(groupId); + - lang: Python + source: response = fireblocks.user_groups_beta.delete_user_group(group_id); + x-accepts: + - application/json get: - description: |- - Returns current workspace status (Beta). + description: | + Get a user group by ID. + **Note**: - This endpoint is now in Beta, disabled for general availability at this time. - - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. + - Please note that this endpoint is available only for API keys with Admin permissions. + operationId: getUserGroup + parameters: + - description: The ID of the user group + explode: false + in: path + name: groupId + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/UserGroupResponse" + description: User group + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get user group + tags: + - User groups (Beta) + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> =\ + \ fireblocks.userGroupsBeta.getUserGroup(userGroupsBetaApiGetUserGroupRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: CompletableFuture> response = fireblocks.userGroupsBeta().getUserGroup(groupId); + name: Fireblocks SDK Java example + - language: python + code: response = fireblocks.user_groups_beta.get_user_group(group_id); + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> =\ + \ fireblocks.userGroupsBeta.getUserGroup(userGroupsBetaApiGetUserGroupRequest);" + - lang: Java + source: CompletableFuture> response = fireblocks.userGroupsBeta().getUserGroup(groupId); + - lang: Python + source: response = fireblocks.user_groups_beta.get_user_group(group_id); + x-accepts: + - application/json + put: + description: | + Update a user group by ID. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: getWorkspaceStatus + **Note**: + - This endpoint is now in Beta, disabled for general availability at this time. + - Please note that this endpoint is available only for API keys with Admin permissions. + operationId: updateUserGroup + parameters: + - description: The ID of the user group + explode: false + in: path + name: groupId + required: true + schema: + 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\ + \ 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/UserGroupUpdateRequest" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetWorkspaceStatusResponse" - description: Current workspace status - "404": - description: Workspace not found - summary: Returns current workspace status + $ref: "#/components/schemas/UserGroupCreateResponse" + description: User group updated and the changes are pending approval + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Update user group tags: - - Workspace Status (Beta) - x-rate-limit-category: query + - User groups (Beta) + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.workspaceStatusBeta.getWorkspaceStatus();" + code: "const response: Promise>\ + \ = fireblocks.userGroupsBeta.updateUserGroup(userGroupsBetaApiUpdateUserGroupRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.workspaceStatusBeta().getWorkspaceStatus(); + code: "CompletableFuture> response\ + \ = fireblocks.userGroupsBeta().updateUserGroup(userGroupUpdateRequest,\ + \ groupId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.workspace_status_beta.get_workspace_status(); + code: "response = fireblocks.user_groups_beta.update_user_group(user_group_update_request,\ + \ group_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.workspaceStatusBeta.getWorkspaceStatus();" + source: "const response: Promise>\ + \ = fireblocks.userGroupsBeta.updateUserGroup(userGroupsBetaApiUpdateUserGroupRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.workspaceStatusBeta().getWorkspaceStatus(); + source: "CompletableFuture> response\ + \ = fireblocks.userGroupsBeta().updateUserGroup(userGroupUpdateRequest,\ + \ groupId, idempotencyKey);" - lang: Python - source: response = fireblocks.workspace_status_beta.get_workspace_status(); + source: "response = fireblocks.user_groups_beta.update_user_group(user_group_update_request,\ + \ group_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /tap/active_policy: + /users: get: - description: "Legacy Endpoint – Returns the active policy and its validation.\ - \ \n**Note:** \n- This endpoint will remain available for the foreseeable\ - \ future and is not deprecated. - The `getActivePolicy` endpoint under policy/paths\ - \ provides policy type-specific operations and improved functionality. - These\ - \ endpoints are currently in beta and might be subject to changes.\nIf you\ - \ want to participate and learn more about the Fireblocks TAP, please contact\ - \ your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.\n" - operationId: getActivePolicyLegacy + description: | + List all users for the workspace. + + Please note that this endpoint is available only for API keys with Admin permissions. + operationId: getUsers responses: "200": content: application/json: schema: - $ref: "#/components/schemas/LegacyPolicyAndValidationResponse" - description: A policy object + $ref: "#/components/schemas/GetUsersResponse" + description: List of users headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get the active policy and its validation + summary: List users tags: - - Policy Editor (Beta) + - Users x-rate-limit-category: query x-readme: code-samples: - language: python - code: policy = fireblocks.get_active_policy() + code: users = fireblocks.get_users() name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const policy = await fireblocks.getActivePolicy(); + code: const users = await fireblocks.getUsers(); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.policyEditorBeta.getActivePolicyLegacy();" + code: "const response: Promise> = fireblocks.users.getUsers();" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> - response = fireblocks.policyEditorBeta().getActivePolicyLegacy(); + code: CompletableFuture>> response = fireblocks.users().getUsers(); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.policy_editor_beta.get_active_policy_legacy(); + code: response = fireblocks.users.get_users(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.policyEditorBeta.getActivePolicyLegacy();" + source: "const response: Promise> = fireblocks.users.getUsers();" - lang: Java - source: CompletableFuture> - response = fireblocks.policyEditorBeta().getActivePolicyLegacy(); + source: CompletableFuture>> response = fireblocks.users().getUsers(); - lang: Python - source: response = fireblocks.policy_editor_beta.get_active_policy_legacy(); + source: response = fireblocks.users.get_users(); x-accepts: - application/json - /tap/draft: - get: - description: "Legacy Endpoint – Returns the active draft and its validation.\ - \ \n**Note:** \n- This endpoint will remain available for the foreseeable\ - \ future and is not deprecated. - The `getDraft` endpoint under policy/paths\ - \ provides policy type-specific operations and improved functionality. - These\ - \ endpoints are currently in beta and might be subject to changes.\nIf you\ - \ want to participate and learn more about the Fireblocks TAP, please contact\ - \ your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.\n" - operationId: getDraftLegacy + /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/LegacyDraftReviewAndValidationResponse" - description: A draft validation response object + $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: Get the active draft + summary: Attach or detach labels to/from UTXOs tags: - - Policy Editor (Beta) - x-rate-limit-category: read + - UTXO Management (Beta) + x-rate-limit-category: write x-readme: code-samples: - - language: python - code: policy = fireblocks.get_draft() - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const policy = await fireblocks.getDraft(); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.policyEditorBeta.getDraftLegacy();" + code: "const response: Promise>\ + \ = fireblocks.uTXOManagementBeta.updateUtxoLabels(uTXOManagementBetaApiUpdateUtxoLabelsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> - response = fireblocks.policyEditorBeta().getDraftLegacy(); + code: "CompletableFuture> response\ + \ = fireblocks.uTXOManagementBeta().updateUtxoLabels(attachDetachUtxoLabelsRequest,\ + \ vaultAccountId, assetId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.policy_editor_beta.get_draft_legacy(); + 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.policyEditorBeta.getDraftLegacy();" + source: "const response: Promise>\ + \ = fireblocks.uTXOManagementBeta.updateUtxoLabels(uTXOManagementBetaApiUpdateUtxoLabelsRequest);" - lang: Java - source: CompletableFuture> - response = fireblocks.policyEditorBeta().getDraftLegacy(); + source: "CompletableFuture> response\ + \ = fireblocks.uTXOManagementBeta().updateUtxoLabels(attachDetachUtxoLabelsRequest,\ + \ vaultAccountId, assetId, idempotencyKey);" - lang: Python - source: response = fireblocks.policy_editor_beta.get_draft_legacy(); + 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 - post: - description: "Legacy Endpoint – Send publish request of certain draft id and\ - \ returns the response. \n**Note:** \n- This endpoint will remain available\ - \ for the foreseeable future and is not deprecated. - The `publishDraft` endpoint\ - \ under policy/paths provides improved functionality and better performance.\ - \ - These endpoints are currently in beta and might be subject to changes.\n\ - If you want to participate and learn more about the Fireblocks TAP, please\ - \ contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.\n" - operationId: publishDraftLegacy + /utxo_management/{vaultAccountId}/{assetId}/unspent_outputs: + get: + description: |- + 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: getUtxos 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." + - description: The ID of the vault account explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: vaultAccountId + required: true schema: + format: numeric type: string + x-fb-entity: vault_account style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/LegacyPublishDraftRequest" + - 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 + required: false + schema: + type: string + style: form + - description: "Number of results per page (max 250, default 50)" + example: 50 + explode: true + in: query + name: pageSize + required: false + schema: + default: 50 + maximum: 250 + minimum: 1 + type: integer + style: form + - description: Field to sort by + example: AMOUNT + explode: true + in: query + name: sort + required: false + schema: + enum: + - AMOUNT + - CONFIRMATIONS + type: string + style: form + - description: Sort order + example: ASC + explode: true + in: query + name: order + required: false + schema: + 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 responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/LegacyPublishResult" - description: A policy publish result object + $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: Send publish request for a certain draft id + summary: List unspent outputs (UTXOs) tags: - - Policy Editor (Beta) - x-rate-limit-category: write + - UTXO Management (Beta) + x-rate-limit-category: read x-readme: code-samples: - - language: python - code: policy = fireblocks.publish_draft() - name: Fireblocks SDK Python example (Legacy) - - language: javascript - code: const policy = await fireblocks.publishDraft(); - name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.policyEditorBeta.publishDraftLegacy(policyEditorBetaApiPublishDraftLegacyRequest);" + code: "const response: Promise> =\ + \ fireblocks.uTXOManagementBeta.getUtxos(uTXOManagementBetaApiGetUtxosRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.policyEditorBeta().publishDraftLegacy(legacyPublishDraftRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response = fireblocks.uTXOManagementBeta().getUtxos(vaultAccountId,\ + \ assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels,\ + \ excludeAnyLabels, includeStatuses, address, minAmount, maxAmount);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.policy_editor_beta.publish_draft_legacy(legacy_publish_draft_request,\ - \ idempotency_key);" + 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);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.policyEditorBeta.publishDraftLegacy(policyEditorBetaApiPublishDraftLegacyRequest);" + source: "const response: Promise> =\ + \ fireblocks.uTXOManagementBeta.getUtxos(uTXOManagementBetaApiGetUtxosRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.policyEditorBeta().publishDraftLegacy(legacyPublishDraftRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response = fireblocks.uTXOManagementBeta().getUtxos(vaultAccountId,\ + \ assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels,\ + \ excludeAnyLabels, includeStatuses, address, minAmount, maxAmount);" - lang: Python - source: "response = fireblocks.policy_editor_beta.publish_draft_legacy(legacy_publish_draft_request,\ - \ idempotency_key);" - x-content-type: application/json + 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);" x-accepts: - application/json - put: - description: "Legacy Endpoint – Update the draft and return its validation.\ - \ \n**Note:** \n- This endpoint will remain available for the foreseeable\ - \ future and is not deprecated. - The `updateDraft` endpoint under policy/paths\ - \ provides policy type-specific operations and improved functionality. - These\ - \ endpoints are currently in beta and might be subject to changes.\nIf you\ - \ want to participate and learn more about the Fireblocks TAP, please contact\ - \ your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.\n" - operationId: updateDraftLegacy + /vault/accounts: + get: + deprecated: true + description: |- + DEPRECATED - Please use `/vault/accounts_paged` endpoint instead. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getVaultAccounts 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 + - explode: true + in: query + name: namePrefix required: false schema: type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/LegacyPolicyRules" - required: true + style: form + - explode: true + in: query + name: nameSuffix + required: false + schema: + type: string + style: form + - explode: true + in: query + name: minAmountThreshold + required: false + schema: + type: number + style: form + - explode: true + in: query + name: assetId + required: false + schema: + type: string + x-fb-entity: asset + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/LegacyDraftReviewAndValidationResponse" - description: A draft validation response object + $ref: "#/components/schemas/GetVaultAccountsResponse" + description: A list of vault accounts headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Update the draft with a new set of rules + summary: Get vault accounts tags: - - Policy Editor (Beta) - x-rate-limit-category: write + - Vaults + x-internal: true + x-rate-limit-category: high_compute x-readme: code-samples: - language: python - code: policy = fireblocks.update_draft() + code: vault_accounts = fireblocks.get_vault_accounts() name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const policy = await fireblocks.updateDraft(); + code: const vaultAccounts = await fireblocks.getVaultAccounts(); name: Fireblocks SDK Javascript example - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.policyEditorBeta.updateDraftLegacy(policyEditorBetaApiUpdateDraftLegacyRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture>\ - \ response = fireblocks.policyEditorBeta().updateDraftLegacy(legacyPolicyRules,\ - \ idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.policy_editor_beta.update_draft_legacy(legacy_policy_rules,\ - \ idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.policyEditorBeta.updateDraftLegacy(policyEditorBetaApiUpdateDraftLegacyRequest);" - - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.policyEditorBeta().updateDraftLegacy(legacyPolicyRules,\ - \ idempotencyKey);" - - lang: Python - source: "response = fireblocks.policy_editor_beta.update_draft_legacy(legacy_policy_rules,\ - \ idempotency_key);" - x-content-type: application/json x-accepts: - application/json - /tap/publish: post: - description: "Send publish request of set of policy rules and returns the response.\ - \ \n**Note:** These endpoints are currently in beta and might be subject to\ - \ changes.\nIf you want to participate and learn more about the Fireblocks\ - \ TAP, please contact your Fireblocks Customer Success Manager or send an\ - \ email to CSM@fireblocks.com.\n" - operationId: publishPolicyRules + description: |- + Creates a new vault account with the requested name. + **Note: ** Vault account names should consist of ASCII characters only. + Learn more about Fireblocks Vault Accounts in the following [guide](https://developers.fireblocks.com/reference/create-vault-account). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: createVaultAccount 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\ @@ -30768,262 +31076,298 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/LegacyPolicyRules" + $ref: "#/components/schemas/CreateVaultAccountRequest" required: true responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/LegacyPublishResult" - description: A policy publish result object + $ref: "#/components/schemas/VaultAccount" + description: A Vault Account object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Send publish request for a set of policy rules + summary: Create a new vault account tags: - - Policy Editor (Beta) + - Vaults x-rate-limit-category: write x-readme: code-samples: - language: python - code: policy = fireblocks.publish_rules() + code: "vaultAccount = fireblocks.create_vault_account(name, hiddenOnUI,\ + \ customer_ref_id, auto_fueling)" name: Fireblocks SDK Python example (Legacy) - language: javascript - code: const policy = await fireblocks.publishRules(); + code: "const vaultAccount = await fireblocks.createVaultAccount(name, hiddenOnUI,\ + \ customerRefId, autoFueling);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.policyEditorBeta.publishPolicyRules(policyEditorBetaApiPublishPolicyRulesRequest);" + code: "const response: Promise> = fireblocks.vaults.createVaultAccount(vaultsApiCreateVaultAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.policyEditorBeta().publishPolicyRules(legacyPolicyRules,\ + code: "CompletableFuture> response = fireblocks.vaults().createVaultAccount(createVaultAccountRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.policy_editor_beta.publish_policy_rules(legacy_policy_rules,\ + code: "response = fireblocks.vaults.create_vault_account(create_vault_account_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.policyEditorBeta.publishPolicyRules(policyEditorBetaApiPublishPolicyRulesRequest);" + source: "const response: Promise> = fireblocks.vaults.createVaultAccount(vaultsApiCreateVaultAccountRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.policyEditorBeta().publishPolicyRules(legacyPolicyRules,\ + source: "CompletableFuture> response = fireblocks.vaults().createVaultAccount(createVaultAccountRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.policy_editor_beta.publish_policy_rules(legacy_policy_rules,\ + source: "response = fireblocks.vaults.create_vault_account(create_vault_account_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /policy/active_policy: + /vault/accounts_paged: get: - description: | - Returns the active policy and its validation for a specific policy type. - - **Note:** This endpoint is currently in beta and subject to change. If you want to participate in the Policies beta, contact your Fireblocks Customer Success Manager or send an email to csm@fireblocks.com. - - Endpoint Permissions: Owner, Admin, Non-Signing Admin. - operationId: getActivePolicy + description: |- + Gets all vault accounts in your workspace. This endpoint returns a limited amount of results with a quick response time. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getPagedVaultAccounts parameters: - - description: "The policy type(s) to retrieve. Can be a single type or multiple\ - \ types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT)." + - explode: true + in: query + name: namePrefix + required: false + schema: + type: string + style: form + - explode: true + in: query + name: nameSuffix + required: false + schema: + type: string + style: form + - description: "Specifying minAmountThreshold will filter accounts whose total\ + \ balance is greater than this value; otherwise, it returns all accounts.\ + \ The amount set in this parameter represents the native asset amount, not\ + \ its USD value." explode: true in: query - name: policyType - required: true + name: minAmountThreshold + required: false schema: - $ref: "#/components/schemas/PolicyType" + example: 10 + type: number style: form - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/PolicyAndValidationResponse" - description: A policy object with validation - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get the active policy and its validation by policy type - tags: - - Policy Editor V2 (Beta) - x-rate-limit-category: query - x-readme: - code-samples: - - language: javascript - code: | - // Single policy type - const policy = await fireblocks.getActivePolicy({policyType: "TRANSFER"}); - // Multiple policy types - const policy = await fireblocks.getActivePolicy({policyType: ["TRANSFER", "MINT"]}); - name: Fireblocks SDK Javascript example - - language: typescript - code: "const response: Promise>\ - \ = fireblocks.policyEditorV2Beta.getActivePolicy(policyEditorV2BetaApiGetActivePolicyRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: CompletableFuture> response - = fireblocks.policyEditorV2Beta().getActivePolicy(policyType); - name: Fireblocks SDK Java example - - language: python - code: response = fireblocks.policy_editor_v2_beta.get_active_policy(policy_type); - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.policyEditorV2Beta.getActivePolicy(policyEditorV2BetaApiGetActivePolicyRequest);" - - lang: Java - source: CompletableFuture> response - = fireblocks.policyEditorV2Beta().getActivePolicy(policyType); - - lang: Python - source: response = fireblocks.policy_editor_v2_beta.get_active_policy(policy_type); - x-accepts: - - application/json - /policy/draft: - get: - description: "Returns the active draft and its validation for a specific policy\ - \ type. \n**Note:** These endpoints are currently in beta and might be subject\ - \ to changes.\n" - operationId: getDraft - parameters: - - description: "The policy type(s) to retrieve. Can be a single type or multiple\ - \ types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT)." + - explode: true + in: query + name: assetId + required: false + schema: + type: string + x-fb-entity: asset + style: form + - explode: true + in: query + name: orderBy + required: false + schema: + default: DESC + enum: + - ASC + - DESC + type: string + style: form + - explode: true + in: query + name: before + required: false + schema: + type: string + style: form + - explode: true + in: query + name: after + required: false + schema: + type: string + style: form + - explode: true + in: query + name: limit + required: false + schema: + default: 200 + maximum: 500 + minimum: 1 + type: number + style: form + - deprecated: true + description: DEPRECATED - use includeTagIds instead + explode: true + in: query + name: tagIds + required: false + schema: + items: + format: uuid + type: string + maxItems: 50 + type: array + style: form + - description: List of tag IDs to include. Vault accounts with any of these + tags will be included + explode: true + in: query + name: includeTagIds + required: false + schema: + items: + format: uuid + type: string + maxItems: 50 + type: array + style: form + - description: List of tag IDs to exclude. Vault accounts with any of these + tags will be filtered out explode: true in: query - name: policyType - required: true + name: excludeTagIds + required: false schema: - $ref: "#/components/schemas/PolicyType" + items: + format: uuid + type: string + maxItems: 50 + type: array style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/DraftReviewAndValidationResponse" - description: A draft validation response object + $ref: "#/components/schemas/VaultAccountsPagedResponse" + description: A VaultAccountsPagedResponse object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get the active draft by policy type + summary: Get vault accounts (Paginated) tags: - - Policy Editor V2 (Beta) - x-rate-limit-category: read + - Vaults + x-rate-limit-category: external_query x-readme: code-samples: + - language: python + code: vault_accounts = fireblocks.get_vault_accounts_with_page_info(filters) + name: Fireblocks SDK Python example (Legacy) - language: javascript - code: | - // Single policy type - const draft = await fireblocks.getDraft({policyType: "TRANSFER"}); - // Multiple policy types - const draft = await fireblocks.getDraft({policyType: ["TRANSFER", "MINT"]}); + code: const vaultAccounts = await fireblocks.getVaultAccountsWithPageInfo(filters); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.policyEditorV2Beta.getDraft(policyEditorV2BetaApiGetDraftRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getPagedVaultAccounts(vaultsApiGetPagedVaultAccountsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.policyEditorV2Beta().getDraft(policyType); + code: "CompletableFuture> response\ + \ = fireblocks.vaults().getPagedVaultAccounts(namePrefix, nameSuffix,\ + \ minAmountThreshold, assetId, orderBy, before, after, limit, tagIds,\ + \ includeTagIds, excludeTagIds);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.policy_editor_v2_beta.get_draft(policy_type); + code: "response = fireblocks.vaults.get_paged_vault_accounts(name_prefix,\ + \ name_suffix, min_amount_threshold, asset_id, order_by, before, after,\ + \ limit, tag_ids, include_tag_ids, exclude_tag_ids);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.policyEditorV2Beta.getDraft(policyEditorV2BetaApiGetDraftRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getPagedVaultAccounts(vaultsApiGetPagedVaultAccountsRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.policyEditorV2Beta().getDraft(policyType); + source: "CompletableFuture> response\ + \ = fireblocks.vaults().getPagedVaultAccounts(namePrefix, nameSuffix, minAmountThreshold,\ + \ assetId, orderBy, before, after, limit, tagIds, includeTagIds, excludeTagIds);" - lang: Python - source: response = fireblocks.policy_editor_v2_beta.get_draft(policy_type); + source: "response = fireblocks.vaults.get_paged_vault_accounts(name_prefix,\ + \ name_suffix, min_amount_threshold, asset_id, order_by, before, after,\ + \ limit, tag_ids, include_tag_ids, exclude_tag_ids);" x-accepts: - application/json - post: - description: "Send publish request of certain draft id and returns the response.\ - \ \n**Note:** These endpoints are currently in beta and might be subject to\ - \ changes.\nIf you want to participate and learn more about the Fireblocks\ - \ Policy Editor, please contact your Fireblocks Customer Success Manager or\ - \ send an email to CSM@fireblocks.com.\n" - operationId: publishDraft + /vault/accounts/{vaultAccountId}: + get: + description: |- + Get a vault account by its unique ID. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getVaultAccount 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." + - description: The ID of the vault account explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: vaultAccountId + required: true schema: + format: numeric type: string + x-fb-entity: vault_account style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/PublishDraftRequest" - required: true responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/PublishResult" - description: A policy publish result object + $ref: "#/components/schemas/VaultAccount" + description: A Vault Account object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Send publish request for a certain draft id + summary: Get a vault account by ID tags: - - Policy Editor V2 (Beta) - x-rate-limit-category: write + - Vaults + x-rate-limit-category: external_query x-readme: code-samples: + - language: python + code: vault_account = fireblocks.get_vault_account(vault_account_id) + name: Fireblocks SDK Python example (Legacy) - language: javascript - code: | - const policy = await fireblocks.publishDraft({policyTypes: ["TRANSFER"], draftId: "draft-123"}); + code: const vaultAccount = await fireblocks.getVaultAccount(vault_account_id); name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.policyEditorV2Beta.publishDraft(policyEditorV2BetaApiPublishDraftRequest);" + code: "const response: Promise> = fireblocks.vaults.getVaultAccount(vaultsApiGetVaultAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.policyEditorV2Beta().publishDraft(publishDraftRequest,\ - \ idempotencyKey);" + code: CompletableFuture> response = fireblocks.vaults().getVaultAccount(vaultAccountId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.policy_editor_v2_beta.publish_draft(publish_draft_request,\ - \ idempotency_key);" + code: response = fireblocks.vaults.get_vault_account(vault_account_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.policyEditorV2Beta.publishDraft(policyEditorV2BetaApiPublishDraftRequest);" + source: "const response: Promise> = fireblocks.vaults.getVaultAccount(vaultsApiGetVaultAccountRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.policyEditorV2Beta().publishDraft(publishDraftRequest,\ - \ idempotencyKey);" + source: CompletableFuture> response = fireblocks.vaults().getVaultAccount(vaultAccountId); - lang: Python - source: "response = fireblocks.policy_editor_v2_beta.publish_draft(publish_draft_request,\ - \ idempotency_key);" - x-content-type: application/json + source: response = fireblocks.vaults.get_vault_account(vault_account_id); x-accepts: - application/json put: - description: "Update the draft and return its validation for specific policy\ - \ types. \n**Note:** These endpoints are currently in beta and might be subject\ - \ to changes.\n" - operationId: updateDraft + description: |- + Renames the requested vault account. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. + operationId: updateVaultAccount parameters: + - description: The ID of the vault account to edit + explode: false + in: path + name: vaultAccountId + required: true + schema: + format: numeric + type: string + x-fb-entity: vault_account + 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\ @@ -31039,146 +31383,161 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/UpdateDraftRequest" + $ref: "#/components/schemas/UpdateVaultAccountRequest" required: true responses: - "200": + "201": content: application/json: schema: - $ref: "#/components/schemas/DraftReviewAndValidationResponse" - description: A draft validation response object + $ref: "#/components/schemas/RenameVaultAccountResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Update the draft with a new set of rules by policy types + summary: Rename a vault account tags: - - Policy Editor V2 (Beta) + - Vaults x-rate-limit-category: write x-readme: code-samples: + - language: python + code: "vaultAccount = fireblocks.update_vault_account(vault_account_id,\ + \ name)" + name: Fireblocks SDK Python example (Legacy) - language: javascript - code: | - const draft = await fireblocks.updateDraft({policyTypes: ["TRANSFER"], rules: rules}); + code: "const vaultAccount = await fireblocks.updateVaultAccount(vautlAccountId,\ + \ name);" name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.policyEditorV2Beta.updateDraft(policyEditorV2BetaApiUpdateDraftRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.updateVaultAccount(vaultsApiUpdateVaultAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.policyEditorV2Beta().updateDraft(updateDraftRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.vaults().updateVaultAccount(updateVaultAccountRequest,\ + \ vaultAccountId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.policy_editor_v2_beta.update_draft(update_draft_request,\ - \ idempotency_key);" + code: "response = fireblocks.vaults.update_vault_account(update_vault_account_request,\ + \ vault_account_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.policyEditorV2Beta.updateDraft(policyEditorV2BetaApiUpdateDraftRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.updateVaultAccount(vaultsApiUpdateVaultAccountRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.policyEditorV2Beta().updateDraft(updateDraftRequest,\ + source: "CompletableFuture> response\ + \ = fireblocks.vaults().updateVaultAccount(updateVaultAccountRequest, vaultAccountId,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.policy_editor_v2_beta.update_draft(update_draft_request,\ - \ idempotency_key);" + source: "response = fireblocks.vaults.update_vault_account(update_vault_account_request,\ + \ vault_account_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /management/users: + /vault/accounts/{vaultAccountId}/{assetId}: get: description: |- - Get console users for your workspace. - - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: getConsoleUsers + Returns a specific vault wallet balance information for a specific asset. + + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, + Viewer. + operationId: getVaultAccountAsset + parameters: + - description: The ID of the vault account to return + 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 responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetConsoleUsersResponse" - description: got console users - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Lacking permissions. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Internal error. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" + $ref: "#/components/schemas/VaultAsset" + description: A VaultAsset object default: $ref: "#/components/responses/Error" - summary: Get console users + summary: Get the asset balance for a vault account tags: - - Console User - x-rate-limit-category: query + - Vaults + x-rate-limit-category: read x-readme: code-samples: - - language: javascript - code: const consoleUsers = await fireblocks.getConsoleUsers(); - name: Fireblocks SDK Javascript example - language: python - code: consoleUsers = fireblocks.get_console_users() + code: "vaultAsset = fireblocks.get_vault_account_asset(vault_account_id,\ + \ asset_id)" name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const vaultAsset = await fireblocks.getVaultAccountAsset(vaultAccountId,\ + \ assetId);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.consoleUser.getConsoleUsers();" + code: "const response: Promise> = fireblocks.vaults.getVaultAccountAsset(vaultsApiGetVaultAccountAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = - fireblocks.consoleUser().getConsoleUsers(); + code: "CompletableFuture> response = fireblocks.vaults().getVaultAccountAsset(vaultAccountId,\ + \ assetId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.console_user.get_console_users(); + code: "response = fireblocks.vaults.get_vault_account_asset(vault_account_id,\ + \ asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.consoleUser.getConsoleUsers();" + source: "const response: Promise> = fireblocks.vaults.getVaultAccountAsset(vaultsApiGetVaultAccountAssetRequest);" - lang: Java - source: CompletableFuture> response = - fireblocks.consoleUser().getConsoleUsers(); + source: "CompletableFuture> response = fireblocks.vaults().getVaultAccountAsset(vaultAccountId,\ + \ assetId);" - lang: Python - source: response = fireblocks.console_user.get_console_users(); + source: "response = fireblocks.vaults.get_vault_account_asset(vault_account_id,\ + \ asset_id);" x-accepts: - application/json post: description: |- - Create console users in your workspace - - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. - Learn more about Fireblocks Users management in the following [guide](https://developers.fireblocks.com/docs/manage-users). - Endpoint Permission: Admin, Non-Signing Admin. - operationId: createConsoleUser + Creates a wallet for a specific asset in a vault account. + Learn more about Fireblocks Vault Wallets in the following [guide](https://developers.fireblocks.com/reference/create-vault-wallet). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: createVaultAccountAsset parameters: + - description: "The ID of the vault account to return, or 'default' for the\ + \ default 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\ @@ -31190,284 +31549,194 @@ paths: schema: type: string style: simple + - description: Optional immutable blockchain wallet type to store per tenant+vault + explode: true + in: query + name: blockchainWalletType + required: false + schema: + type: string + style: form requestBody: content: application/json: schema: - $ref: "#/components/schemas/CreateConsoleUser" + $ref: "#/components/schemas/CreateAssetsRequest" + required: false responses: "200": - description: User creation approval request has been sent - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - description: bad request - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Lacking permissions. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" - description: Internal error. + $ref: "#/components/schemas/CreateVaultAssetResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create console user + summary: Create a new vault wallet tags: - - Console User + - Vaults x-rate-limit-category: write x-readme: code-samples: - - language: javascript - code: "const res = await fireblocks.createConsoleUser(firstName, lastName,\ - \ email, role);" - name: Fireblocks SDK Javascript example - language: python - code: "res = fireblocks.create_console_user(first_name, last_name, email,\ - \ role)" + code: "vaultAsset = fireblocks.create_vault_asset(vault_account_id, asset_id)" name: Fireblocks SDK Python example (Legacy) - - language: typescript - code: "const response: Promise> = fireblocks.consoleUser.createConsoleUser(consoleUserApiCreateConsoleUserRequest);" - name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture> response = fireblocks.consoleUser().createConsoleUser(createConsoleUser,\ - \ idempotencyKey);" - name: Fireblocks SDK Java example - - language: python - code: "response = fireblocks.console_user.create_console_user(create_console_user,\ - \ idempotency_key);" - name: Fireblocks SDK Python example - x-codeSamples: - - lang: TypeScript - source: "const response: Promise> = fireblocks.consoleUser.createConsoleUser(consoleUserApiCreateConsoleUserRequest);" - - lang: Java - source: "CompletableFuture> response = fireblocks.consoleUser().createConsoleUser(createConsoleUser,\ - \ idempotencyKey);" - - lang: Python - source: "response = fireblocks.console_user.create_console_user(create_console_user,\ - \ idempotency_key);" - x-content-type: application/json - x-accepts: - - application/json - /management/api_users: - get: - description: |- - List all API keys in your workspace. - - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: getApiUsers - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/GetAPIUsersResponse" - description: got api users - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Lacking permissions. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Internal error. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get API Keys - tags: - - Api User - x-rate-limit-category: query - x-readme: - code-samples: - language: javascript - code: const apiUsers = await fireblocks.getApiUsers(); + code: "const vaultAsset = await fireblocks.createVaultAsset(vaultAccountId,\ + \ assetId);" name: Fireblocks SDK Javascript example - - language: python - code: apiUsers = fireblocks.get_api_users() - name: Fireblocks SDK Python example (Legacy) - language: typescript - code: "const response: Promise>\ - \ = fireblocks.apiUser.getApiUsers();" + code: "const response: Promise>\ + \ = fireblocks.vaults.createVaultAccountAsset(vaultsApiCreateVaultAccountAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.apiUser().getApiUsers(); + code: "CompletableFuture> response\ + \ = fireblocks.vaults().createVaultAccountAsset(vaultAccountId, assetId,\ + \ createAssetsRequest, blockchainWalletType, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.api_user.get_api_users(); + code: "response = fireblocks.vaults.create_vault_account_asset(vault_account_id,\ + \ asset_id, create_assets_request, blockchain_wallet_type, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.apiUser.getApiUsers();" + source: "const response: Promise>\ + \ = fireblocks.vaults.createVaultAccountAsset(vaultsApiCreateVaultAccountAssetRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.apiUser().getApiUsers(); + source: "CompletableFuture> response\ + \ = fireblocks.vaults().createVaultAccountAsset(vaultAccountId, assetId,\ + \ createAssetsRequest, blockchainWalletType, idempotencyKey);" - lang: Python - source: response = fireblocks.api_user.get_api_users(); + source: "response = fireblocks.vaults.create_vault_account_asset(vault_account_id,\ + \ asset_id, create_assets_request, blockchain_wallet_type, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - post: + /vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info: + get: description: |- - Create a new API key in your workspace. - Learn more about Fireblocks API Keys management in the following [guide](https://developers.fireblocks.com/docs/manage-api-keys). + Get the public key information for a specific asset in a vault account. Endpoint Permission: Admin, Non-Signing Admin. - operationId: createApiUser + operationId: getPublicKeyInfoForAddress 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 + - explode: false + in: path + name: vaultAccountId + required: true schema: + format: numeric type: string + x-fb-entity: vault_account style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateAPIUser" + - explode: false + in: path + name: assetId + required: true + schema: + type: string + x-fb-entity: asset + style: simple + - explode: false + in: path + name: change + required: true + schema: + type: number + style: simple + - explode: false + in: path + name: addressIndex + required: true + schema: + type: number + style: simple + - explode: true + in: query + name: compressed + required: false + schema: + type: boolean + style: form responses: "200": - description: User creation approval request has been sent - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - description: bad request - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Lacking permissions. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" - description: Internal error. + $ref: "#/components/schemas/PublicKeyInformation" + description: Public Key Information headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create API Key + summary: Get an asset's public key tags: - - Api User - x-rate-limit-category: write + - Vaults + x-rate-limit-category: read x-readme: code-samples: - - language: javascript - code: "const res = await fireblocks.createApiUser(name, role, csrForNewUser,\ - \ coSignerType, isFirstUser);" - name: Fireblocks SDK Javascript example - language: python - code: "res = fireblocks.create_api_user(name, role, csr_pem, co_signer_setup,\ - \ co_signer_setup_is_first_user)" + code: "pubKey = fireblocks.get_public_key_info_for_vault_account(asset_id,\ + \ vault_account_id, change, address_index, compressed)" name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: | + const PublicKeyInfoArgs = { assetId: 'ETH', vaultAccountId: 0, change: 0, addressIndex: 0, compressed: true } const pubKey = await fireblocks.getPublicKeyInfoForVaultAccount(PublicKeyInfoArgs); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.apiUser.createApiUser(apiUserApiCreateApiUserRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getPublicKeyInfoForAddress(vaultsApiGetPublicKeyInfoForAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.apiUser().createApiUser(createAPIUser,\ - \ idempotencyKey);" + code: "CompletableFuture> response = fireblocks.vaults().getPublicKeyInfoForAddress(vaultAccountId,\ + \ assetId, change, addressIndex, compressed);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.api_user.create_api_user(create_a_p_i_user,\ - \ idempotency_key);" + code: "response = fireblocks.vaults.get_public_key_info_for_address(vault_account_id,\ + \ asset_id, change, address_index, compressed);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.apiUser.createApiUser(apiUserApiCreateApiUserRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getPublicKeyInfoForAddress(vaultsApiGetPublicKeyInfoForAddressRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.apiUser().createApiUser(createAPIUser,\ - \ idempotencyKey);" + source: "CompletableFuture> response = fireblocks.vaults().getPublicKeyInfoForAddress(vaultAccountId,\ + \ assetId, change, addressIndex, compressed);" - lang: Python - source: "response = fireblocks.api_user.create_api_user(create_a_p_i_user,\ - \ idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.vaults.get_public_key_info_for_address(vault_account_id,\ + \ asset_id, change, address_index, compressed);" x-accepts: - application/json - /management/users/{id}/reset_device: + /vault/accounts/{vaultAccountId}/{assetId}/activate: post: - description: |- - Resets mobile device for given console user, that user will need to do mobile onboarding again. - - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: resetDevice + description: "Initiates activation for a wallet in a vault account. \nActivation\ + \ is required for tokens that need an on-chain transaction for creation (XLM\ + \ tokens, SOL tokens etc).\nEndpoint Permission: Admin, Non-Signing Admin,\ + \ Signer, Approver, Editor." + operationId: activateAssetForVaultAccount parameters: - - description: The ID of the console user + - description: "The ID of the vault account to return, or 'default' for the\ + \ default vault account" explode: false in: path - name: id + 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\ @@ -31480,301 +31749,263 @@ paths: schema: type: string style: simple + - description: Optional immutable blockchain wallet type to store per tenant+vault + explode: true + in: query + name: blockchainWalletType + required: false + schema: + type: string + style: form responses: "200": - description: Reset device approval request has been sent - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Lacking permissions. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "5XX": content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" - description: Internal error. + $ref: "#/components/schemas/CreateVaultAssetResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Resets device + summary: Activate a wallet in a vault account tags: - - Reset device + - Vaults x-rate-limit-category: write x-readme: code-samples: - - language: javascript - code: const res = await fireblocks.resetDeviceRequest(consoleUserId); - name: Fireblocks SDK Javascript example - - language: python - code: res = fireblocks.reset_device_request(console_user_id) - name: Fireblocks SDK Python example (Legacy) - language: typescript - code: "const response: Promise> = fireblocks.resetDevice.resetDevice(resetDeviceApiResetDeviceRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.activateAssetForVaultAccount(vaultsApiActivateAssetForVaultAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.resetDevice().resetDevice(id,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.vaults().activateAssetForVaultAccount(vaultAccountId, assetId,\ + \ blockchainWalletType, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.reset_device.reset_device(id, idempotency_key);" + code: "response = fireblocks.vaults.activate_asset_for_vault_account(vault_account_id,\ + \ asset_id, blockchain_wallet_type, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.resetDevice.resetDevice(resetDeviceApiResetDeviceRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.activateAssetForVaultAccount(vaultsApiActivateAssetForVaultAccountRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.resetDevice().resetDevice(id,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.vaults().activateAssetForVaultAccount(vaultAccountId, assetId,\ + \ blockchainWalletType, idempotencyKey);" - lang: Python - source: "response = fireblocks.reset_device.reset_device(id, idempotency_key);" + source: "response = fireblocks.vaults.activate_asset_for_vault_account(vault_account_id,\ + \ asset_id, blockchain_wallet_type, idempotency_key);" x-accepts: - application/json - /management/api_users/{userId}/whitelist_ip_addresses: + /vault/accounts/{vaultAccountId}/{assetId}/addresses: get: + deprecated: true description: |- - Get a list of the whitelisted IP addresses for a specific API Key - - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: getWhitelistIpAddresses + DEPRECATED! + + - If your application logic or scripts rely on the deprecated endpoint, you should update to account for GET/V1/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated before Mar 31,2024. + - All workspaces created after Mar 31,2024. will have it disabled. If it is disabled for your workspace and you attempt to use it, you will receive the following error message: "This endpoint is unavailable. + - Please use the GET /v1/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated endpoint to return all the wallet addresses associated with the specified vault account and asset in a paginated list. + + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getVaultAccountAssetAddresses parameters: - - description: The ID of the api user + - description: The ID of the vault account to return explode: false in: path - name: userId + 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 responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GetWhitelistIpAddressesResponse" - description: successfully got whitelisted ip addresses - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized. Missing / invalid JWT token in Authorization - header. - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Lacking permissions. + $ref: "#/components/schemas/GetVaultAccountAssetAddressesResponse" + description: A list of deposit addresses headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "5XX": + default: + $ref: "#/components/responses/Error" + summary: Get asset addresses + tags: + - Vaults + x-internal: true + x-rate-limit-category: query + x-readme: + code-samples: + - language: python + code: "depositAddresses = fireblocks.get_deposit_addresses(vault_account_id,\ + \ asset_id)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const depositAddresses = await fireblocks.getDepositAddresses(vaultAccountId,\ + \ assetId);" + name: Fireblocks SDK Javascript example + x-accepts: + - application/json + post: + description: |- + Creates a new deposit address for an asset of a vault account. + Should be used for UTXO or Tag/Memo based assets ONLY. + + Requests with account based assets will fail. + + Endpoint Permission: Admin, Non-Signing Admin. + operationId: createVaultAccountAssetAddress + parameters: + - description: The ID of the vault account to return + 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/CreateAddressRequest" + required: false + responses: + "200": content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" - description: Internal error. + $ref: "#/components/schemas/CreateAddressResponse" + description: The created address headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get whitelisted ip addresses for an API Key + summary: Create new asset deposit address tags: - - whitelist ip addresses - x-rate-limit-category: read + - Vaults + x-rate-limit-category: write x-readme: code-samples: - - language: javascript - code: const whitelistedAddresses = await fireblocks.getWhitelistedAddresses(apiUserId); - name: Fireblocks SDK Javascript example - language: python - code: whitelisted_addresses = fireblocks.get_whitelisted_ip_addresses(api_user_id) + code: "address = fireblocks.generate_new_address(vault_account_id, asset_id,\ + \ description, customer_ref_id)" name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const address = await fireblocks.generateNewAddress(vaultAccountId,\ + \ assetId, description, customerRefId);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.whitelistIpAddresses.getWhitelistIpAddresses(whitelistIpAddressesApiGetWhitelistIpAddressesRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.createVaultAccountAssetAddress(vaultsApiCreateVaultAccountAssetAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.whitelistIpAddresses().getWhitelistIpAddresses(userId); + code: "CompletableFuture> response =\ + \ fireblocks.vaults().createVaultAccountAssetAddress(vaultAccountId, assetId,\ + \ createAddressRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.whitelist_ip_addresses.get_whitelist_ip_addresses(user_id); + code: "response = fireblocks.vaults.create_vault_account_asset_address(vault_account_id,\ + \ asset_id, create_address_request, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.whitelistIpAddresses.getWhitelistIpAddresses(whitelistIpAddressesApiGetWhitelistIpAddressesRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.createVaultAccountAssetAddress(vaultsApiCreateVaultAccountAssetAddressRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.whitelistIpAddresses().getWhitelistIpAddresses(userId); + source: "CompletableFuture> response =\ + \ fireblocks.vaults().createVaultAccountAssetAddress(vaultAccountId, assetId,\ + \ createAddressRequest, idempotencyKey);" - lang: Python - source: response = fireblocks.whitelist_ip_addresses.get_whitelist_ip_addresses(user_id); + source: "response = fireblocks.vaults.create_vault_account_asset_address(vault_account_id,\ + \ asset_id, create_address_request, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /smart-transfers: + /vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated: get: description: |- - Find tickets by their title or ticker. You can also query all tickets without filters by not providing any input parameters. - **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: searchTickets + Returns a paginated response of the addresses for a given vault account and asset. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getVaultAccountAssetAddressesPaginated parameters: - - description: Search string - counterparty name or asset or ticketId. Optional - explode: true - in: query - name: q - required: false - schema: - minLength: 1 - type: string - style: form - - description: Ticket statuses for Smart Transfer tickets. Optional - example: - - DRAFT - - OPEN - explode: true - in: query - name: statuses - required: false - schema: - default: [] - items: - enum: - - DRAFT - - PENDING_APPROVAL - - OPEN - - IN_SETTLEMENT - - FULFILLED - - EXPIRED - - CANCELED - type: string - type: array - style: form - - description: "NetworkId that is used in the ticket\t. Optional" - explode: true - in: query - name: networkId - required: false - schema: - type: string - style: form - - description: Filter created tickets by created by self or by others. Optional - explode: true - in: query - name: createdByMe - required: false - schema: - type: boolean - style: form - - description: Lower bound of search range. Optional - explode: true - in: query - name: expiresAfter - required: false - schema: - format: date-time - type: string - style: form - - description: Upper bound of search range. Optional - explode: true - in: query - name: expiresBefore - required: false - schema: - format: date-time - type: string - style: form - - description: "Type of transfer. ASYNC executes transfers as they are funded,\ - \ DVP executes all terms (legs) as one dvp transfer" - explode: true - in: query - name: type - required: false - schema: - enum: - - ASYNC - - DVP - type: string - style: form - - description: External ref. ID that workspace can use to identify ticket outside - of Fireblocks system. - explode: true - in: query - name: externalRefId - required: false + - description: The ID of the vault account to return + explode: false + in: path + name: vaultAccountId + required: true schema: - maxLength: 64 - minLength: 1 + format: numeric type: string - style: form - - description: ID of the record after which to fetch $limit records - explode: true - in: query - name: after - required: false + x-fb-entity: vault_account + style: simple + - description: The ID of the asset + explode: false + in: path + name: assetId + required: true schema: type: string - style: form - - description: "Number of records to fetch. By default, it is 100" - explode: true + x-fb-entity: asset + style: simple + - explode: true in: query name: limit required: false schema: - minimum: 1 type: number style: form - - description: Sort by field - explode: true + - explode: true in: query - name: sortBy + name: before required: false schema: - default: createdAt - enum: - - createdAt - - updatedAt - - submittedAt - example: createdAt type: string style: form - - description: ASC / DESC ordering (default DESC) - explode: true + - explode: true in: query - name: order + name: after required: false schema: - default: DESC - enum: - - ASC - - DESC - example: DESC type: string style: form responses: @@ -31782,59 +32013,88 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SmartTransferTicketFilteredResponse" - description: Smart Transfer tickets were returned successfully - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - summary: Find Ticket + $ref: "#/components/schemas/PaginatedAddressResponse" + description: "A paginated list of addresses, and pagination info." + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get addresses (Paginated) tags: - - Smart Transfer + - Vaults x-rate-limit-category: query x-readme: code-samples: + - language: python + code: "addresses = vault_accounts = fireblocks.get_paginated_addresses(\"\ + 0\",\"ETH_TEST3\")" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const addresses = await fireblocks.getPaginatedAddresses(\"0\",\"\ + ETH_TEST3\");" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.searchTickets(smartTransferApiSearchTicketsRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getVaultAccountAssetAddressesPaginated(vaultsApiGetVaultAccountAssetAddressesPaginatedRequest);" name: Fireblocks SDK TypeScript example - - language: java - code: "CompletableFuture>\ - \ response = fireblocks.smartTransfer().searchTickets(q, statuses, networkId,\ - \ createdByMe, expiresAfter, expiresBefore, type, externalRefId, after,\ - \ limit, sortBy, order);" + - language: java + code: "CompletableFuture> response\ + \ = fireblocks.vaults().getVaultAccountAssetAddressesPaginated(vaultAccountId,\ + \ assetId, limit, before, after);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.search_tickets(q, statuses,\ - \ network_id, created_by_me, expires_after, expires_before, type, external_ref_id,\ - \ after, limit, sort_by, order);" + code: "response = fireblocks.vaults.get_vault_account_asset_addresses_paginated(vault_account_id,\ + \ asset_id, limit, before, after);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.searchTickets(smartTransferApiSearchTicketsRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getVaultAccountAssetAddressesPaginated(vaultsApiGetVaultAccountAssetAddressesPaginatedRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.smartTransfer().searchTickets(q, statuses, networkId,\ - \ createdByMe, expiresAfter, expiresBefore, type, externalRefId, after,\ - \ limit, sortBy, order);" + source: "CompletableFuture> response\ + \ = fireblocks.vaults().getVaultAccountAssetAddressesPaginated(vaultAccountId,\ + \ assetId, limit, before, after);" - lang: Python - source: "response = fireblocks.smart_transfer.search_tickets(q, statuses,\ - \ network_id, created_by_me, expires_after, expires_before, type, external_ref_id,\ - \ after, limit, sort_by, order);" + source: "response = fireblocks.vaults.get_vault_account_asset_addresses_paginated(vault_account_id,\ + \ asset_id, limit, before, after);" x-accepts: - application/json - post: - description: | - Creates a new Smart Transfer ticket. Learn more about Fireblocks Smart Transfers [here](https://developers.fireblocks.com/docs/execute-smart-transfers). - - **Note:** The `DVP` value is in Early Access and should only be used if Fireblocks has enabled it in your workspace. Contact your Customer Success Manager for more information. - - **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: createTicket + /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}: + put: + description: |- + Updates the description of an existing address of an asset in a vault account. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: updateVaultAccountAssetAddress 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: "The address for which to add a description. For XRP, use
:,\ + \ for all other assets, use only the address" + explode: false + in: path + name: addressId + required: true + schema: + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -31850,128 +32110,179 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SmartTransferCreateTicket" - required: true + $ref: "#/components/schemas/UpdateVaultAccountAssetAddressRequest" + required: false responses: "201": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferTicketResponse" - description: Smart Transfer ticket was created successfully - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "422": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Create Ticket + $ref: "#/components/schemas/VaultActionStatus" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Update address description tags: - - Smart Transfer - x-rate-limit-category: async + - Vaults + x-rate-limit-category: write x-readme: code-samples: + - language: python + code: "address = fireblocks.set_address_description(vault_account_id, asset_id,\ + \ address, tag, description)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const address = await fireblocks.setAddressDescription(vaultAccountId,\ + \ assetId, address, tag, description);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.createTicket(smartTransferApiCreateTicketRequest);" + code: "const response: Promise> =\ + \ fireblocks.vaults.updateVaultAccountAssetAddress(vaultsApiUpdateVaultAccountAssetAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().createTicket(smartTransferCreateTicket,\ - \ idempotencyKey);" + code: "CompletableFuture> response = fireblocks.vaults().updateVaultAccountAssetAddress(vaultAccountId,\ + \ assetId, addressId, updateVaultAccountAssetAddressRequest, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.create_ticket(smart_transfer_create_ticket,\ - \ idempotency_key);" + code: "response = fireblocks.vaults.update_vault_account_asset_address(vault_account_id,\ + \ asset_id, address_id, update_vault_account_asset_address_request, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.createTicket(smartTransferApiCreateTicketRequest);" + source: "const response: Promise> =\ + \ fireblocks.vaults.updateVaultAccountAssetAddress(vaultsApiUpdateVaultAccountAssetAddressRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().createTicket(smartTransferCreateTicket, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.vaults().updateVaultAccountAssetAddress(vaultAccountId,\ + \ assetId, addressId, updateVaultAccountAssetAddressRequest, idempotencyKey);" - lang: Python - source: "response = fireblocks.smart_transfer.create_ticket(smart_transfer_create_ticket,\ - \ idempotency_key);" + source: "response = fireblocks.vaults.update_vault_account_asset_address(vault_account_id,\ + \ asset_id, address_id, update_vault_account_asset_address_request, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /smart-transfers/{ticketId}: - get: - description: "Find Smart Transfer ticket by id. Endpoint Permission: Admin,\ - \ Non-Signing Admin, Signer, Approver, Editor, Viewer." - operationId: findTicketById + /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy: + post: + description: |- + Converts an existing segwit address to the legacy format. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: createLegacyAddress parameters: - - explode: false + - description: The ID of the vault account + explode: false in: path - name: ticketId + 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: The segwit address to translate + explode: false + in: path + name: addressId required: true schema: 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\ + \ 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/SmartTransferTicketResponse" - description: Smart Transfer ticket returned successfully - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - summary: Search Ticket by ID + $ref: "#/components/schemas/CreateAddressResponse" + description: The created address + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Convert a segwit address to legacy format tags: - - Smart Transfer - x-rate-limit-category: query + - Vaults + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.findTicketById(smartTransferApiFindTicketByIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.createLegacyAddress(vaultsApiCreateLegacyAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.smartTransfer().findTicketById(ticketId); + code: "CompletableFuture> response =\ + \ fireblocks.vaults().createLegacyAddress(vaultAccountId, assetId, addressId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.smart_transfer.find_ticket_by_id(ticket_id); + code: "response = fireblocks.vaults.create_legacy_address(vault_account_id,\ + \ asset_id, address_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.findTicketById(smartTransferApiFindTicketByIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.createLegacyAddress(vaultsApiCreateLegacyAddressRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.smartTransfer().findTicketById(ticketId); + source: "CompletableFuture> response =\ + \ fireblocks.vaults().createLegacyAddress(vaultAccountId, assetId, addressId,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.smart_transfer.find_ticket_by_id(ticket_id); + source: "response = fireblocks.vaults.create_legacy_address(vault_account_id,\ + \ asset_id, address_id, idempotency_key);" x-accepts: - application/json - /smart-transfers/{ticketId}/expires-in: - put: - description: "Set expiration date on Smart Transfer ticket. Endpoint Permission:\ - \ Admin, Non-Signing Admin, Signer, Approver, Editor." - operationId: setTicketExpiration + /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id: + post: + description: |- + Sets an AML/KYT customer reference ID for a specific address. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: setCustomerRefIdForAddress parameters: - - explode: false + - description: The ID of the vault account + explode: false in: path - name: ticketId + 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: "The address for which to add a description. For XRP, use
:,\ + \ for all other assets, use only the address" + explode: false + in: path + name: addressId required: true schema: type: string @@ -31991,78 +32302,88 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SmartTransferSetTicketExpiration" + $ref: "#/components/schemas/SetCustomerRefIdForAddressRequest" required: true responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferTicketResponse" - description: Successfully set expiration date on Smart Transfer ticket - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - "422": + "201": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Set expiration + $ref: "#/components/schemas/VaultActionStatus" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Assign AML customer reference ID tags: - - Smart Transfer + - Vaults x-rate-limit-category: write x-readme: code-samples: + - language: python + code: "vaultAsset = fireblocks.set_customer_ref_id_for_address(vault_account_id,\ + \ asset_id, address_id, customer_ref_id)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const vaultAsset = await fireblocks.setCustomerRefIdForAddress(vaultAccountId,\ + \ assetId, addressId, customerRefId);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.setTicketExpiration(smartTransferApiSetTicketExpirationRequest);" + code: "const response: Promise> =\ + \ fireblocks.vaults.setCustomerRefIdForAddress(vaultsApiSetCustomerRefIdForAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().setTicketExpiration(smartTransferSetTicketExpiration,\ - \ ticketId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.vaults().setCustomerRefIdForAddress(setCustomerRefIdForAddressRequest,\ + \ vaultAccountId, assetId, addressId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.set_ticket_expiration(smart_transfer_set_ticket_expiration,\ - \ ticket_id, idempotency_key);" + code: "response = fireblocks.vaults.set_customer_ref_id_for_address(set_customer_ref_id_for_address_request,\ + \ vault_account_id, asset_id, address_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.setTicketExpiration(smartTransferApiSetTicketExpirationRequest);" + source: "const response: Promise> =\ + \ fireblocks.vaults.setCustomerRefIdForAddress(vaultsApiSetCustomerRefIdForAddressRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().setTicketExpiration(smartTransferSetTicketExpiration,\ - \ ticketId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.vaults().setCustomerRefIdForAddress(setCustomerRefIdForAddressRequest,\ + \ vaultAccountId, assetId, addressId, idempotencyKey);" - lang: Python - source: "response = fireblocks.smart_transfer.set_ticket_expiration(smart_transfer_set_ticket_expiration,\ - \ ticket_id, idempotency_key);" + source: "response = fireblocks.vaults.set_customer_ref_id_for_address(set_customer_ref_id_for_address_request,\ + \ vault_account_id, asset_id, address_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /smart-transfers/{ticketId}/external-id: - put: - description: "Set external id Smart Transfer ticket. Endpoint Permission: Admin,\ - \ Non-Signing Admin, Signer, Approver, Editor." - operationId: setExternalRefId + /vault/accounts/{vaultAccountId}/{assetId}/balance: + post: + description: |- + Updates the balance of a specific asset in a vault account. + + This API endpoint is subject to a strict rate limit. + Should be used by clients in very specific scenarios. + + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: updateVaultAccountAssetBalance parameters: - - explode: false + - description: The ID of the vault account to return + explode: false in: path - name: ticketId + 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\ @@ -32075,248 +32396,308 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferSetTicketExternalId" - required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferTicketResponse" - description: Successfully set external id on Smart Transfer ticket - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - "422": + $ref: "#/components/schemas/VaultAsset" + description: A VaultAsset object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Refresh asset balance data + tags: + - Vaults + x-rate-limit-category: high_compute + x-readme: + code-samples: + - language: python + code: "vaultAsset = fireblocks.refresh_vault_asset_balance(vault_account_id,\ + \ asset_id)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const vaultAsset = await fireblocks.refreshVaultAssetBalance(vaultAccountId,\ + \ assetId);" + name: Fireblocks SDK Javascript example + - language: typescript + code: "const response: Promise> = fireblocks.vaults.updateVaultAccountAssetBalance(vaultsApiUpdateVaultAccountAssetBalanceRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.vaults().updateVaultAccountAssetBalance(vaultAccountId,\ + \ assetId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.vaults.update_vault_account_asset_balance(vault_account_id,\ + \ asset_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.vaults.updateVaultAccountAssetBalance(vaultsApiUpdateVaultAccountAssetBalanceRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.vaults().updateVaultAccountAssetBalance(vaultAccountId,\ + \ assetId, idempotencyKey);" + - lang: Python + source: "response = fireblocks.vaults.update_vault_account_asset_balance(vault_account_id,\ + \ asset_id, idempotency_key);" + x-accepts: + - application/json + /vault/accounts/{vaultAccountId}/{assetId}/max_bip44_index_used: + get: + description: Retrieves the maximum BIP44 address index and change address index + used for a specific asset in a vault account (BIP44 standard). + operationId: getMaxBipIndexUsed + 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 + responses: + "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Add external ref. ID + $ref: "#/components/schemas/GetMaxBipIndexUsedResponse" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get maximum BIP44 index used tags: - - Smart Transfer - x-rate-limit-category: write + - Vaults + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.setExternalRefId(smartTransferApiSetExternalRefIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getMaxBipIndexUsed(vaultsApiGetMaxBipIndexUsedRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().setExternalRefId(smartTransferSetTicketExternalId,\ - \ ticketId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.vaults().getMaxBipIndexUsed(vaultAccountId, assetId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.set_external_ref_id(smart_transfer_set_ticket_external_id,\ - \ ticket_id, idempotency_key);" + code: "response = fireblocks.vaults.get_max_bip_index_used(vault_account_id,\ + \ asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.setExternalRefId(smartTransferApiSetExternalRefIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getMaxBipIndexUsed(vaultsApiGetMaxBipIndexUsedRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().setExternalRefId(smartTransferSetTicketExternalId,\ - \ ticketId, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.vaults().getMaxBipIndexUsed(vaultAccountId, assetId);" - lang: Python - source: "response = fireblocks.smart_transfer.set_external_ref_id(smart_transfer_set_ticket_external_id,\ - \ ticket_id, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.vaults.get_max_bip_index_used(vault_account_id,\ + \ asset_id);" x-accepts: - application/json - /smart-transfers/{ticketId}/submit: - put: - description: "Submit Smart Transfer ticket - change status into ready for approval\ - \ if auto approval is not turned on, or OPEN if auto approval is on. Endpoint\ - \ Permission: Admin, Non-Signing Admin, Signer, Approver, Editor." - operationId: submitTicket + /vault/accounts/{vaultAccountId}/{assetId}/max_spendable_amount: + get: + description: | + **UTXO assets only.** + + Retrieve the maximum amount of the specified asset that can be spent in a single transaction from the specified vault account. + + **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getMaxSpendableAmount parameters: - - explode: false + - description: "The ID of the vault account, or 'default' for the default vault\ + \ account" + explode: false in: path - name: ticketId + name: vaultAccountId required: true schema: + format: numeric type: string + x-fb-entity: vault_account 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." + - description: The ID of the asset explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: assetId + required: true schema: type: string + x-fb-entity: asset style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferSubmitTicket" - required: true + - description: False by default. The maximum number of inputs depends if the + transaction will be signed by an automated co-signer server or on a mobile + device. + explode: true + in: query + name: manualSignging + required: false + schema: + type: boolean + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferTicketResponse" - description: Successfully submitted Smart Transfer ticket - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - "422": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Submit ticket + $ref: "#/components/schemas/GetMaxSpendableAmountResponse" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get max spendable amount in a transaction tags: - - Smart Transfer - x-rate-limit-category: write + - Vaults + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: "address = fireblocks.set_address_description(vault_account_id, asset_id,\ + \ address, tag, description)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const address = await fireblocks.setAddressDescription(vaultAccountId,\ + \ assetId, address, tag, description);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.submitTicket(smartTransferApiSubmitTicketRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getMaxSpendableAmount(vaultsApiGetMaxSpendableAmountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().submitTicket(smartTransferSubmitTicket,\ - \ ticketId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.vaults().getMaxSpendableAmount(vaultAccountId, assetId,\ + \ manualSignging);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.submit_ticket(smart_transfer_submit_ticket,\ - \ ticket_id, idempotency_key);" + code: "response = fireblocks.vaults.get_max_spendable_amount(vault_account_id,\ + \ asset_id, manual_signging);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.submitTicket(smartTransferApiSubmitTicketRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getMaxSpendableAmount(vaultsApiGetMaxSpendableAmountRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().submitTicket(smartTransferSubmitTicket, ticketId,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.vaults().getMaxSpendableAmount(vaultAccountId, assetId, manualSignging);" - lang: Python - source: "response = fireblocks.smart_transfer.submit_ticket(smart_transfer_submit_ticket,\ - \ ticket_id, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.vaults.get_max_spendable_amount(vault_account_id,\ + \ asset_id, manual_signging);" x-accepts: - application/json - /smart-transfers/{ticketId}/fulfill: - put: - description: "Manually fulfill ticket, in case when all terms (legs) are funded\ - \ manually. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver,\ - \ Editor." - operationId: fulfillTicket + /vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs: + get: + description: |- + Returns unspent inputs information of an UTXO asset in a vault account. + + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getUnspentInputs parameters: - - explode: false + - description: The ID of the vault account + explode: false in: path - name: ticketId + name: vaultAccountId required: true schema: + format: numeric type: string + x-fb-entity: vault_account 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." + - description: The ID of the asset explode: false - in: header - name: Idempotency-Key - required: false + in: path + name: assetId + required: true schema: type: string + x-fb-entity: asset style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferTicketResponse" - description: Successfully fulfilled on Smart Transfer ticket - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - "422": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Fund ticket manually + $ref: "#/components/schemas/GetUnspentInputsResponse" + description: List of Unspent information per input + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get UTXO unspent inputs information tags: - - Smart Transfer - x-rate-limit-category: write + - Vaults + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: "vaultAsset = fireblocks.get_unspent_inputs(vault_account_id, asset_id)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const vaultAsset = await fireblocks.getUnspentInputs(vaultAccountId,\ + \ assetId);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.fulfillTicket(smartTransferApiFulfillTicketRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getUnspentInputs(vaultsApiGetUnspentInputsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().fulfillTicket(ticketId, idempotencyKey);" + code: "CompletableFuture>> response\ + \ = fireblocks.vaults().getUnspentInputs(vaultAccountId, assetId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.fulfill_ticket(ticket_id, idempotency_key);" + code: "response = fireblocks.vaults.get_unspent_inputs(vault_account_id,\ + \ asset_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.fulfillTicket(smartTransferApiFulfillTicketRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getUnspentInputs(vaultsApiGetUnspentInputsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().fulfillTicket(ticketId, idempotencyKey);" + source: "CompletableFuture>> response\ + \ = fireblocks.vaults().getUnspentInputs(vaultAccountId, assetId);" - lang: Python - source: "response = fireblocks.smart_transfer.fulfill_ticket(ticket_id, idempotency_key);" + source: "response = fireblocks.vaults.get_unspent_inputs(vault_account_id,\ + \ asset_id);" x-accepts: - application/json - /smart_transfers/{ticketId}/dvp/fund: - put: - description: Create or fulfill dvp ticket order - operationId: fundDvpTicket + /vault/accounts/{vaultAccountId}/hide: + post: + description: |- + Hides the requested vault account from the web console view. + This operation is required when creating thousands of vault accounts to serve your end-users. + Used for preventing the web console to be swamped with too much vault accounts. + Learn more in the following [guide](https://developers.fireblocks.com/docs/create-direct-custody-wallets#hiding-vault-accounts). + NOTE: Hiding the vault account from the web console will also hide all the related transactions to/from this vault. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: hideVaultAccount parameters: - - explode: false + - description: The vault account to hide + explode: false in: path - name: ticketId + name: vaultAccountId required: true schema: + format: numeric type: string + x-fb-entity: vault_account 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\ @@ -32329,83 +32710,72 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferFundDvpTicket" - required: true responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferTicketResponse" - description: Successfully started creating or fulfilling order on dvp Smart - Transfer ticket - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - "422": + "201": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Fund dvp ticket + $ref: "#/components/schemas/VaultActionStatus" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Hide a vault account in the console tags: - - Smart Transfer + - Vaults x-rate-limit-category: write x-readme: code-samples: + - language: python + code: vaultAsset = fireblocks.hide_vault_account(vault_account_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const vaultAsset = await fireblocks.hideVaultAccount(vaultAccountId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.fundDvpTicket(smartTransferApiFundDvpTicketRequest);" + code: "const response: Promise> =\ + \ fireblocks.vaults.hideVaultAccount(vaultsApiHideVaultAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().fundDvpTicket(smartTransferFundDvpTicket,\ - \ ticketId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.vaults().hideVaultAccount(vaultAccountId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.fund_dvp_ticket(smart_transfer_fund_dvp_ticket,\ - \ ticket_id, idempotency_key);" + code: "response = fireblocks.vaults.hide_vault_account(vault_account_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.fundDvpTicket(smartTransferApiFundDvpTicketRequest);" + source: "const response: Promise> =\ + \ fireblocks.vaults.hideVaultAccount(vaultsApiHideVaultAccountRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().fundDvpTicket(smartTransferFundDvpTicket,\ - \ ticketId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.vaults().hideVaultAccount(vaultAccountId,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.smart_transfer.fund_dvp_ticket(smart_transfer_fund_dvp_ticket,\ - \ ticket_id, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.vaults.hide_vault_account(vault_account_id,\ + \ idempotency_key);" x-accepts: - application/json - /smart-transfers/{ticketId}/cancel: - put: - description: "Cancel Smart Transfer ticket. Endpoint Permission: Admin, Non-Signing\ - \ Admin, Signer, Approver, Editor." - operationId: cancelTicket + /vault/accounts/{vaultAccountId}/set_auto_fuel: + post: + description: |- + Toggles the auto fueling property of the vault account to enabled or disabled. + Vault Accounts with 'autoFuel=true' are monitored and auto fueled by the Fireblocks Gas Station. + Learn more about the Fireblocks Gas Station in the following [guide](https://developers.fireblocks.com/docs/work-with-gas-station). + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: setVaultAccountAutoFuel parameters: - - explode: false + - description: The vault account ID + explode: false in: path - name: ticketId + name: vaultAccountId required: true schema: + format: numeric type: string + x-fb-entity: vault_account 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\ @@ -32418,73 +32788,71 @@ paths: schema: type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SetAutoFuelRequest" + required: true responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferTicketResponse" - description: Smart Transfer ticket successfully canceled - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - "422": + "201": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Cancel Ticket + $ref: "#/components/schemas/VaultActionStatus" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Set auto fueling to on or off tags: - - Smart Transfer + - Vaults x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.cancelTicket(smartTransferApiCancelTicketRequest);" + code: "const response: Promise> =\ + \ fireblocks.vaults.setVaultAccountAutoFuel(vaultsApiSetVaultAccountAutoFuelRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().cancelTicket(ticketId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.vaults().setVaultAccountAutoFuel(setAutoFuelRequest,\ + \ vaultAccountId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.cancel_ticket(ticket_id, idempotency_key);" + code: "response = fireblocks.vaults.set_vault_account_auto_fuel(set_auto_fuel_request,\ + \ vault_account_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.cancelTicket(smartTransferApiCancelTicketRequest);" + source: "const response: Promise> =\ + \ fireblocks.vaults.setVaultAccountAutoFuel(vaultsApiSetVaultAccountAutoFuelRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().cancelTicket(ticketId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.vaults().setVaultAccountAutoFuel(setAutoFuelRequest,\ + \ vaultAccountId, idempotencyKey);" - lang: Python - source: "response = fireblocks.smart_transfer.cancel_ticket(ticket_id, idempotency_key);" + source: "response = fireblocks.vaults.set_vault_account_auto_fuel(set_auto_fuel_request,\ + \ vault_account_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - /smart-transfers/{ticketId}/terms: + /vault/accounts/{vaultAccountId}/set_customer_ref_id: post: - description: "Creates new smart transfer ticket term (when the ticket status\ - \ is DRAFT). Learn more about Fireblocks Smart Transfers in the following\ - \ [guide](https://developers.fireblocks.com/docs/execute-smart-transfers).\ - \ Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor." - operationId: createTicketTerm + description: "Assigns an AML/KYT customer reference ID for the vault account.\ + \ Learn more about Fireblocks AML management in the following [guide](https://developers.fireblocks.com/docs/define-aml-policies).\ + \ Endpoint Permission: Admin, Non-Signing Admin." + operationId: setVaultAccountCustomerRefId parameters: - - explode: false + - description: The vault account ID + explode: false in: path - name: ticketId + name: vaultAccountId required: true schema: + format: numeric type: string + x-fb-entity: vault_account 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\ @@ -32501,207 +32869,210 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SmartTransferCreateTicketTerm" + $ref: "#/components/schemas/SetCustomerRefIdRequest" required: true responses: "201": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferTicketTermResponse" - description: Smart Transfer ticket term was created successfully - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "422": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Create leg (term) + $ref: "#/components/schemas/VaultActionStatus" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Set an AML/KYT ID for a vault account tags: - - Smart Transfer + - Vaults x-rate-limit-category: write x-readme: code-samples: + - language: python + code: "vaultAsset = fireblocks.set_vault_account_customer_ref_id(vault_account_id,\ + \ customer_ref_id)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const vaultAsset = await fireblocks.setCustomerRefIdForVaultAccount(vaultAccountId,\ + \ customerRefId);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.createTicketTerm(smartTransferApiCreateTicketTermRequest);" + code: "const response: Promise> =\ + \ fireblocks.vaults.setVaultAccountCustomerRefId(vaultsApiSetVaultAccountCustomerRefIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().createTicketTerm(smartTransferCreateTicketTerm,\ - \ ticketId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.vaults().setVaultAccountCustomerRefId(setCustomerRefIdRequest,\ + \ vaultAccountId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.create_ticket_term(smart_transfer_create_ticket_term,\ - \ ticket_id, idempotency_key);" + code: "response = fireblocks.vaults.set_vault_account_customer_ref_id(set_customer_ref_id_request,\ + \ vault_account_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.createTicketTerm(smartTransferApiCreateTicketTermRequest);" + source: "const response: Promise> =\ + \ fireblocks.vaults.setVaultAccountCustomerRefId(vaultsApiSetVaultAccountCustomerRefIdRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().createTicketTerm(smartTransferCreateTicketTerm,\ - \ ticketId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.vaults().setVaultAccountCustomerRefId(setCustomerRefIdRequest,\ + \ vaultAccountId, idempotencyKey);" - lang: Python - source: "response = fireblocks.smart_transfer.create_ticket_term(smart_transfer_create_ticket_term,\ - \ ticket_id, idempotency_key);" + source: "response = fireblocks.vaults.set_vault_account_customer_ref_id(set_customer_ref_id_request,\ + \ vault_account_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /smart-transfers/{ticketId}/terms/{termId}: - delete: - description: Delete ticket term when ticket is in DRAFT status - operationId: removeTicketTerm + /vault/accounts/{vaultAccountId}/unhide: + post: + description: |- + Makes a hidden vault account visible in web console view. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: unhideVaultAccount parameters: - - explode: false + - description: The vault account to unhide + explode: false in: path - name: ticketId + name: vaultAccountId required: true schema: + format: numeric type: string + x-fb-entity: vault_account style: simple - - explode: false - in: path - name: termId - required: true + - 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: - "204": - description: Smart Transfer ticket term successfully removed - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": + "201": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - summary: Delete ticket leg (term) + $ref: "#/components/schemas/VaultActionStatus" + description: OK + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Unhide a vault account in the console tags: - - Smart Transfer + - Vaults x-rate-limit-category: write x-readme: code-samples: + - language: python + code: vaultAsset = fireblocks.unhide_vault_account(vault_account_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const vaultAsset = await fireblocks.unhideVaultAccount(vaultAccountId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.smartTransfer.removeTicketTerm(smartTransferApiRemoveTicketTermRequest);" + code: "const response: Promise> =\ + \ fireblocks.vaults.unhideVaultAccount(vaultsApiUnhideVaultAccountRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.smartTransfer().removeTicketTerm(ticketId,\ - \ termId);" + code: "CompletableFuture> response = fireblocks.vaults().unhideVaultAccount(vaultAccountId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.remove_ticket_term(ticket_id,\ - \ term_id);" + code: "response = fireblocks.vaults.unhide_vault_account(vault_account_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.smartTransfer.removeTicketTerm(smartTransferApiRemoveTicketTermRequest);" + source: "const response: Promise> =\ + \ fireblocks.vaults.unhideVaultAccount(vaultsApiUnhideVaultAccountRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.smartTransfer().removeTicketTerm(ticketId,\ - \ termId);" + source: "CompletableFuture> response = fireblocks.vaults().unhideVaultAccount(vaultAccountId,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.smart_transfer.remove_ticket_term(ticket_id,\ - \ term_id);" + source: "response = fireblocks.vaults.unhide_vault_account(vault_account_id,\ + \ idempotency_key);" x-accepts: - application/json + /vault/accounts/{vaultAccountId}/usdc_gateway: get: - description: "Find a specific term of a specific Smart Transfer ticket. Endpoint\ - \ Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer." - operationId: findTicketTermById + description: |- + Returns the USDC Gateway wallet information associated with the given vault account. + **Note:** This endpoint is currently in beta and might be subject to changes. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getUsdcGatewayWalletInfoBeta parameters: - - explode: false - in: path - name: ticketId - required: true - schema: - type: string - style: simple - - explode: false + - description: The ID of the vault account + explode: false in: path - name: termId + name: vaultAccountId required: true schema: + format: numeric type: string + x-fb-entity: vault_account style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferTicketTermResponse" - description: Smart Transfer ticket term returned successfully - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - summary: Get Smart Transfer ticket term + $ref: "#/components/schemas/UsdcGatewayWalletInfoResponse" + description: USDC Gateway wallet information + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get USDC Gateway wallet info tags: - - Smart Transfer + - Vaults x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.findTicketTermById(smartTransferApiFindTicketTermByIdRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getUsdcGatewayWalletInfoBeta(vaultsApiGetUsdcGatewayWalletInfoBetaRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().findTicketTermById(ticketId, termId);" + code: CompletableFuture> response + = fireblocks.vaults().getUsdcGatewayWalletInfoBeta(vaultAccountId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.find_ticket_term_by_id(ticket_id,\ - \ term_id);" + code: response = fireblocks.vaults.get_usdc_gateway_wallet_info_beta(vault_account_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.findTicketTermById(smartTransferApiFindTicketTermByIdRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getUsdcGatewayWalletInfoBeta(vaultsApiGetUsdcGatewayWalletInfoBetaRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().findTicketTermById(ticketId, termId);" + source: CompletableFuture> response + = fireblocks.vaults().getUsdcGatewayWalletInfoBeta(vaultAccountId); - lang: Python - source: "response = fireblocks.smart_transfer.find_ticket_term_by_id(ticket_id,\ - \ term_id);" + source: response = fireblocks.vaults.get_usdc_gateway_wallet_info_beta(vault_account_id); x-accepts: - application/json - put: - description: Update ticket term (when ticket status is DRAFT) - operationId: updateTicketTerm + /vault/accounts/{vaultAccountId}/usdc_gateway/activate: + post: + description: |- + Activates the USDC Gateway wallet associated with the given vault account. If the wallet does not yet exist it is created in an activated state. + **Note:** This endpoint is currently in beta and might be subject to changes. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. + operationId: activateUsdcGatewayWalletBeta parameters: - - explode: false - in: path - name: ticketId - required: true - schema: - type: string - style: simple - - explode: false + - description: The ID of the vault account + explode: false in: path - name: termId + name: vaultAccountId required: true schema: + format: numeric type: string + x-fb-entity: vault_account 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\ @@ -32714,84 +33085,66 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferUpdateTicketTerm" - required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferTicketTermResponse" - description: Smart Transfer ticket term updated successfully - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - summary: Update ticket leg (term) + $ref: "#/components/schemas/UsdcGatewayWalletStatusResponse" + description: USDC Gateway wallet activated successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Activate a USDC Gateway wallet tags: - - Smart Transfer + - Vaults x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.updateTicketTerm(smartTransferApiUpdateTicketTermRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.activateUsdcGatewayWalletBeta(vaultsApiActivateUsdcGatewayWalletBetaRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().updateTicketTerm(smartTransferUpdateTicketTerm,\ - \ ticketId, termId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.vaults().activateUsdcGatewayWalletBeta(vaultAccountId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.update_ticket_term(smart_transfer_update_ticket_term,\ - \ ticket_id, term_id, idempotency_key);" + code: "response = fireblocks.vaults.activate_usdc_gateway_wallet_beta(vault_account_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.updateTicketTerm(smartTransferApiUpdateTicketTermRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.activateUsdcGatewayWalletBeta(vaultsApiActivateUsdcGatewayWalletBetaRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().updateTicketTerm(smartTransferUpdateTicketTerm,\ - \ ticketId, termId, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.vaults().activateUsdcGatewayWalletBeta(vaultAccountId, idempotencyKey);" - lang: Python - source: "response = fireblocks.smart_transfer.update_ticket_term(smart_transfer_update_ticket_term,\ - \ ticket_id, term_id, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.vaults.activate_usdc_gateway_wallet_beta(vault_account_id,\ + \ idempotency_key);" x-accepts: - application/json - /smart-transfers/{ticketId}/terms/{termId}/fund: - put: - description: "Set funding source for ticket term (in case of ASYNC tickets,\ - \ this will execute transfer immediately). Endpoint Permission: Admin, Non-Signing\ - \ Admin, Signer, Approver, Editor." - operationId: fundTicketTerm + /vault/accounts/{vaultAccountId}/usdc_gateway/deactivate: + post: + description: |- + Deactivates the USDC Gateway wallet associated with the given vault account. + **Note:** This endpoint is currently in beta and might be subject to changes. + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver. + operationId: deactivateUsdcGatewayWalletBeta parameters: - - explode: false - in: path - name: ticketId - required: true - schema: - type: string - style: simple - - explode: false + - description: The ID of the vault account + explode: false in: path - name: termId + name: vaultAccountId required: true schema: + format: numeric type: string + x-fb-entity: vault_account 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\ @@ -32804,90 +33157,62 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferFundTerm" - required: true responses: - "201": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferTicketTermResponse" - description: Funding source for ticket term successfully done - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - "422": + "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Define funding source + $ref: "#/components/schemas/UsdcGatewayWalletStatusResponse" + description: USDC Gateway wallet deactivated successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Deactivate a USDC Gateway wallet tags: - - Smart Transfer + - Vaults x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.fundTicketTerm(smartTransferApiFundTicketTermRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.deactivateUsdcGatewayWalletBeta(vaultsApiDeactivateUsdcGatewayWalletBetaRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().fundTicketTerm(smartTransferFundTerm, ticketId,\ - \ termId, idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.vaults().deactivateUsdcGatewayWalletBeta(vaultAccountId,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.fund_ticket_term(smart_transfer_fund_term,\ - \ ticket_id, term_id, idempotency_key);" + code: "response = fireblocks.vaults.deactivate_usdc_gateway_wallet_beta(vault_account_id,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.fundTicketTerm(smartTransferApiFundTicketTermRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.deactivateUsdcGatewayWalletBeta(vaultsApiDeactivateUsdcGatewayWalletBetaRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().fundTicketTerm(smartTransferFundTerm, ticketId,\ - \ termId, idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.vaults().deactivateUsdcGatewayWalletBeta(vaultAccountId,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.smart_transfer.fund_ticket_term(smart_transfer_fund_term,\ - \ ticket_id, term_id, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.vaults.deactivate_usdc_gateway_wallet_beta(vault_account_id,\ + \ idempotency_key);" x-accepts: - application/json - /smart_transfers/{ticketId}/terms/{termId}/dvp/approve: - put: - description: Set funding source for ticket term and creating approving transaction - for contract to transfer asset - operationId: approveDvPTicketTerm + /vault/accounts/addresses/bulk: + post: + description: | + **For UTXO blockchains only.** + + Create multiple deposit addresses by running an async job. + - The target Vault account should already have a UTXO asset wallet with a permanent address. + - Limited to a maximum of 10,000 addresses per operation. Use multiple operations for the same Vault account/permanent address if needed. + + **Endpoint Permissions:** Admin, Non-Signing Admin. + operationId: createMultipleDepositAddresses parameters: - - explode: false - in: path - name: ticketId - required: true - schema: - type: string - style: simple - - explode: false - in: path - name: termId - required: true - schema: - 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -32903,221 +33228,204 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SmartTransferApproveTerm" + $ref: "#/components/schemas/CreateMultipleDepositAddressesRequest" required: true responses: - "201": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferTicketTermResponse" - description: Creating approval transaction started - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - "422": + "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Set funding source and approval + $ref: "#/components/schemas/JobCreated" + description: A JobCreated object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Bulk creation of new deposit addresses tags: - - Smart Transfer - x-rate-limit-category: write + - Vaults + x-rate-limit-category: async x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.approveDvPTicketTerm(smartTransferApiApproveDvPTicketTermRequest);" + code: "const response: Promise> = fireblocks.vaults.createMultipleDepositAddresses(vaultsApiCreateMultipleDepositAddressesRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().approveDvPTicketTerm(smartTransferApproveTerm,\ - \ ticketId, termId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.vaults().createMultipleDepositAddresses(createMultipleDepositAddressesRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.approve_dv_p_ticket_term(smart_transfer_approve_term,\ - \ ticket_id, term_id, idempotency_key);" + code: "response = fireblocks.vaults.create_multiple_deposit_addresses(create_multiple_deposit_addresses_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.approveDvPTicketTerm(smartTransferApiApproveDvPTicketTermRequest);" + source: "const response: Promise> = fireblocks.vaults.createMultipleDepositAddresses(vaultsApiCreateMultipleDepositAddressesRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().approveDvPTicketTerm(smartTransferApproveTerm,\ - \ ticketId, termId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.vaults().createMultipleDepositAddresses(createMultipleDepositAddressesRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.smart_transfer.approve_dv_p_ticket_term(smart_transfer_approve_term,\ - \ ticket_id, term_id, idempotency_key);" + source: "response = fireblocks.vaults.create_multiple_deposit_addresses(create_multiple_deposit_addresses_request,\ + \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /smart-transfers/{ticketId}/terms/{termId}/manually-fund: - put: - description: |- - Manually set ticket term transaction. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: manuallyFundTicketTerm + /vault/accounts/addresses/bulk/{jobId}: + get: + description: | + Returns the current status of (or an error for) the specified deposit addresss bulk creation job. + + **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer. + operationId: getCreateMultipleDepositAddressesJobStatus parameters: - - explode: false - in: path - name: ticketId - required: true - schema: - type: string - style: simple - - explode: false + - description: The ID of the job to create addresses + example: 019681b4-107d-7243-942d-4c3c30e36fae + explode: false in: path - name: termId + name: jobId required: true schema: 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\ - \ 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/SmartTransferManuallyFundTerm" - required: true responses: - "201": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferTicketTermResponse" - description: Successfully manually set ticket term transaction - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferNotFoundResponse" - description: Not found - "422": + "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Manually add term transaction + $ref: "#/components/schemas/CreateMultipleDepositAddressesJobStatus" + description: A Job with status + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Get the job status of the bulk deposit address creation tags: - - Smart Transfer - x-rate-limit-category: write + - Vaults + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.manuallyFundTicketTerm(smartTransferApiManuallyFundTicketTermRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getCreateMultipleDepositAddressesJobStatus(vaultsApiGetCreateMultipleDepositAddressesJobStatusRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().manuallyFundTicketTerm(smartTransferManuallyFundTerm,\ - \ ticketId, termId, idempotencyKey);" + code: CompletableFuture> + response = fireblocks.vaults().getCreateMultipleDepositAddressesJobStatus(jobId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.manually_fund_ticket_term(smart_transfer_manually_fund_term,\ - \ ticket_id, term_id, idempotency_key);" + code: response = fireblocks.vaults.get_create_multiple_deposit_addresses_job_status(job_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.manuallyFundTicketTerm(smartTransferApiManuallyFundTicketTermRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getCreateMultipleDepositAddressesJobStatus(vaultsApiGetCreateMultipleDepositAddressesJobStatusRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().manuallyFundTicketTerm(smartTransferManuallyFundTerm,\ - \ ticketId, termId, idempotencyKey);" + source: CompletableFuture> + response = fireblocks.vaults().getCreateMultipleDepositAddressesJobStatus(jobId); - lang: Python - source: "response = fireblocks.smart_transfer.manually_fund_ticket_term(smart_transfer_manually_fund_term,\ - \ ticket_id, term_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.vaults.get_create_multiple_deposit_addresses_job_status(job_id); x-accepts: - application/json - /smart-transfers/settings/user-groups: - get: + /vault/accounts/attached_tags: + post: description: |- - Get Smart Transfer user groups. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getSmartTransferUserGroups - parameters: [] + Attach or detach one or more tags from the requested vault accounts. + Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. + operationId: attachOrDetachTagsFromVaultAccounts + 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/VaultAccountsTagAttachmentOperationsRequest" + required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferUserGroupsResponse" - description: User group settings were returned successfully - "403": + $ref: "#/components/schemas/VaultAccountsTagAttachmentOperationsResponse" + description: Tags were attached/detached successfully + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "400": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "422": + $ref: "#/components/schemas/ErrorSchema" + description: | + - Invalid request parameters. + - Same tag ID is provided in both tagIdsToAttach and tagIdsToDetach. + - Vault accounts are archived. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Get user group + $ref: "#/components/schemas/ErrorSchema" + description: | + - Tags with the requested ID not found. + - Vault accounts with the requested ID not found. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: Attach or detach tags from vault accounts tags: - - Smart Transfer - x-rate-limit-category: query + - Vaults + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.getSmartTransferUserGroups();" + code: "const response: Promise>\ + \ = fireblocks.vaults.attachOrDetachTagsFromVaultAccounts(vaultsApiAttachOrDetachTagsFromVaultAccountsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.smartTransfer().getSmartTransferUserGroups(); + code: "CompletableFuture>\ + \ response = fireblocks.vaults().attachOrDetachTagsFromVaultAccounts(vaultAccountsTagAttachmentOperationsRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.smart_transfer.get_smart_transfer_user_groups(); + code: "response = fireblocks.vaults.attach_or_detach_tags_from_vault_accounts(vault_accounts_tag_attachment_operations_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.getSmartTransferUserGroups();" + source: "const response: Promise>\ + \ = fireblocks.vaults.attachOrDetachTagsFromVaultAccounts(vaultsApiAttachOrDetachTagsFromVaultAccountsRequest);" - lang: Java - source: CompletableFuture> response - = fireblocks.smartTransfer().getSmartTransferUserGroups(); + source: "CompletableFuture>\ + \ response = fireblocks.vaults().attachOrDetachTagsFromVaultAccounts(vaultAccountsTagAttachmentOperationsRequest,\ + \ idempotencyKey);" - lang: Python - source: response = fireblocks.smart_transfer.get_smart_transfer_user_groups(); + source: "response = fireblocks.vaults.attach_or_detach_tags_from_vault_accounts(vault_accounts_tag_attachment_operations_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json + /vault/accounts/bulk: post: - description: |- - Set Smart Transfers user group to receive email notifications for Smart Transfers. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. - operationId: setUserGroups + description: "Create multiple vault accounts by running an async job. \n\ + - The HBAR, TON, SUI, TERRA, ALGO, and DOT blockchains are not supported.\n\ + - These endpoints are currently in beta and might be subject to changes.\n\ + - Limited to a maximum of 10,000 accounts per operation.\n\n**Endpoint Permissions:**\ + \ Admin, Non-Signing Admin, Signer, Approver, Editor.\n" + operationId: createMultipleAccounts 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\ @@ -33134,516 +33442,654 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/SmartTransferSetUserGroups" + $ref: "#/components/schemas/CreateMultipleAccountsRequest" required: true responses: - "201": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferUserGroupsResponse" - description: User group settings were set successfully - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized - "422": + "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferBadRequestResponse" - description: Bad Request - summary: Set user group + $ref: "#/components/schemas/JobCreated" + description: A JobCreated object + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Bulk creation of new vault accounts tags: - - Smart Transfer + - Vaults x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.setUserGroups(smartTransferApiSetUserGroupsRequest);" + code: "const response: Promise> = fireblocks.vaults.createMultipleAccounts(vaultsApiCreateMultipleAccountsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().setUserGroups(smartTransferSetUserGroups,\ + code: "CompletableFuture> response = fireblocks.vaults().createMultipleAccounts(createMultipleAccountsRequest,\ \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.smart_transfer.set_user_groups(smart_transfer_set_user_groups,\ + code: "response = fireblocks.vaults.create_multiple_accounts(create_multiple_accounts_request,\ \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.setUserGroups(smartTransferApiSetUserGroupsRequest);" + source: "const response: Promise> = fireblocks.vaults.createMultipleAccounts(vaultsApiCreateMultipleAccountsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.smartTransfer().setUserGroups(smartTransferSetUserGroups,\ + source: "CompletableFuture> response = fireblocks.vaults().createMultipleAccounts(createMultipleAccountsRequest,\ \ idempotencyKey);" - lang: Python - source: "response = fireblocks.smart_transfer.set_user_groups(smart_transfer_set_user_groups,\ + source: "response = fireblocks.vaults.create_multiple_accounts(create_multiple_accounts_request,\ \ idempotency_key);" x-content-type: application/json x-accepts: - application/json - /smart_transfers/statistic: + /vault/accounts/bulk/{jobId}: get: - description: Get smart transfer statistic - operationId: getSmartTransferStatistic + description: | + Returns the current status of (or error for) the specified vault account bulk creation job. + + **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getCreateMultipleVaultAccountsJobStatus + parameters: + - description: The ID of the job to create addresses + example: 019681b4-107d-7243-942d-4c3c30e36fae + explode: false + in: path + name: jobId + required: true + schema: + type: string + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/SmartTransferStatistic" - description: Smart Transfer ticket statistic returned successfully - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/SmartTransferForbiddenResponse" - description: Unauthorized + $ref: "#/components/schemas/CreateMultipleVaultAccountsJobStatus" + description: A Job with status + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get smart transfers statistic + summary: Get job status of bulk creation of new vault accounts tags: - - Smart Transfer - x-rate-limit-category: query + - Vaults + x-rate-limit-category: async x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.smartTransfer.getSmartTransferStatistic();" + code: "const response: Promise>\ + \ = fireblocks.vaults.getCreateMultipleVaultAccountsJobStatus(vaultsApiGetCreateMultipleVaultAccountsJobStatusRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = - fireblocks.smartTransfer().getSmartTransferStatistic(); + code: CompletableFuture> + response = fireblocks.vaults().getCreateMultipleVaultAccountsJobStatus(jobId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.smart_transfer.get_smart_transfer_statistic(); + code: response = fireblocks.vaults.get_create_multiple_vault_accounts_job_status(job_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.smartTransfer.getSmartTransferStatistic();" + source: "const response: Promise>\ + \ = fireblocks.vaults.getCreateMultipleVaultAccountsJobStatus(vaultsApiGetCreateMultipleVaultAccountsJobStatusRequest);" - lang: Java - source: CompletableFuture> response = - fireblocks.smartTransfer().getSmartTransferStatistic(); + source: CompletableFuture> + response = fireblocks.vaults().getCreateMultipleVaultAccountsJobStatus(jobId); - lang: Python - source: response = fireblocks.smart_transfer.get_smart_transfer_statistic(); + source: response = fireblocks.vaults.get_create_multiple_vault_accounts_job_status(job_id); x-accepts: - application/json - /tags: + /vault/asset_wallets: get: - description: Retrieve a paged list of all tags according to filters. - operationId: getTags + description: "Get all vault wallets of the vault accounts in your workspace.\ + \ \nA vault wallet is an asset in a vault account. \n\nThis method allows\ + \ fast traversal of all account balances.\nEndpoint Permission: Admin, Non-Signing\ + \ Admin, Signer, Approver, Editor, Viewer." + operationId: getAssetWallets parameters: - - description: Page cursor to get the next page. - example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA== - explode: true - in: query - name: pageCursor - required: false - schema: - type: string - style: form - - description: Maximum number of items in the page + - description: "When specified, only vault wallets with total balance greater\ + \ than this amount are returned." explode: true in: query - name: pageSize + name: totalAmountLargerThan required: false schema: - default: 100 - maximum: 100 - minimum: 1 type: number style: form - - description: Label prefix to filter by. - example: VIP + - description: "When specified, only vault wallets with the specified ID are\ + \ returned." explode: true in: query - name: label + name: assetId required: false schema: type: string + x-fb-entity: asset style: form - - description: List of tag IDs to filter by. - explode: true + - explode: true in: query - name: tagIds + name: orderBy required: false schema: - items: - format: uuid - type: string - maxItems: 100 - type: array + default: DESC + enum: + - ASC + - DESC + type: string style: form - - description: Whether to include pending approval requests info. + - description: "Fetches the next paginated response before this element. \n\ + This element is a cursor and is returned at the response of the previous\ + \ page.\n" explode: true in: query - name: includePendingApprovalsInfo + name: before required: false schema: - default: false - type: boolean + type: string style: form - - explode: true + - description: Fetches the next paginated response after this element. This + element is a cursor and is returned at the response of the previous page. + explode: true in: query - name: isProtected + name: after required: false schema: - type: boolean + type: string style: form - - description: Filter by tag type + - description: "The maximum number of vault wallets in a single response. \n\ + \nThe default is 200 and the maximum is 1000.\n" explode: true in: query - name: type + name: limit required: false schema: - items: - $ref: "#/components/schemas/TagType" - type: array + default: 200 + maximum: 1000 + minimum: 1 + type: number style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/TagsPagedResponse" - description: Tags fetched successfully + $ref: "#/components/schemas/PaginatedAssetWalletResponse" + description: A PaginatedAssetWalletResponse object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Get list of tags + summary: Get vault wallets (Paginated) tags: - - Tags + - Vaults x-rate-limit-category: query x-readme: code-samples: + - language: python + code: vault_accounts = fireblocks.get_asset_wallets(filters) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const vaultAccounts = await fireblocks.getAssetWallets(filters); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> =\ - \ fireblocks.tags.getTags(tagsApiGetTagsRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getAssetWallets(vaultsApiGetAssetWalletsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tags().getTags(pageCursor,\ - \ pageSize, label, tagIds, includePendingApprovalsInfo, isProtected, type);" + code: "CompletableFuture> response\ + \ = fireblocks.vaults().getAssetWallets(totalAmountLargerThan, assetId,\ + \ orderBy, before, after, limit);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tags.get_tags(page_cursor, page_size, label,\ - \ tag_ids, include_pending_approvals_info, is_protected, type);" + code: "response = fireblocks.vaults.get_asset_wallets(total_amount_larger_than,\ + \ asset_id, order_by, before, after, limit);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.tags.getTags(tagsApiGetTagsRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getAssetWallets(vaultsApiGetAssetWalletsRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tags().getTags(pageCursor,\ - \ pageSize, label, tagIds, includePendingApprovalsInfo, isProtected, type);" + source: "CompletableFuture> response\ + \ = fireblocks.vaults().getAssetWallets(totalAmountLargerThan, assetId,\ + \ orderBy, before, after, limit);" - lang: Python - source: "response = fireblocks.tags.get_tags(page_cursor, page_size, label,\ - \ tag_ids, include_pending_approvals_info, is_protected, type);" + source: "response = fireblocks.vaults.get_asset_wallets(total_amount_larger_than,\ + \ asset_id, order_by, before, after, limit);" x-accepts: - application/json - post: + /vault/assets: + get: description: |- - Create a new tag. - Endpoint Permissions: For protected tags: ADMIN,NON_SIGNING_ADMIN,OWNER. For non protected tags: ADMIN,NON_SIGNING_ADMIN,OWNER,SIGNER,EDITOR,APPROVER. - operationId: createTag + Gets the assets amount summary for all accounts or filtered accounts. + + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getVaultAssets 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 + - explode: true + in: query + name: accountNamePrefix required: false schema: type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateTagRequest" - required: true + style: form + - explode: true + in: query + name: accountNameSuffix + required: false + schema: + type: string + style: form responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/Tag" - description: Tag created successfully + $ref: "#/components/schemas/GetVaultAssetsResponse" + description: Amount by asset headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Create a new tag + default: + $ref: "#/components/responses/Error" + summary: Get asset balance for chosen assets tags: - - Tags - x-rate-limit-category: write + - Vaults + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: "assets_balance = fireblocks.get_vault_assets_balance(accout_name_prefix,\ + \ account_name_suffix)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const assetsBalance = await fireblocks.getVaultAssetsBalance(accountNamePrefix,\ + \ accountNameSuffix);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.tags.createTag(tagsApiCreateTagRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getVaultAssets(vaultsApiGetVaultAssetsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tags().createTag(createTagRequest,\ - \ idempotencyKey);" + code: "CompletableFuture>> response = fireblocks.vaults().getVaultAssets(accountNamePrefix,\ + \ accountNameSuffix);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tags.create_tag(create_tag_request, idempotency_key);" + code: "response = fireblocks.vaults.get_vault_assets(account_name_prefix,\ + \ account_name_suffix);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tags.createTag(tagsApiCreateTagRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getVaultAssets(vaultsApiGetVaultAssetsRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tags().createTag(createTagRequest,\ - \ idempotencyKey);" + source: "CompletableFuture>> response = fireblocks.vaults().getVaultAssets(accountNamePrefix,\ + \ accountNameSuffix);" - lang: Python - source: "response = fireblocks.tags.create_tag(create_tag_request, idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.vaults.get_vault_assets(account_name_prefix,\ + \ account_name_suffix);" x-accepts: - application/json - /tags/{tagId}: - delete: + /vault/assets/{assetId}: + get: description: |- - Delete the specified tag. - Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. - operationId: deleteTag + Get the total balance of an asset across all the vault accounts. + + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. + operationId: getVaultBalanceByAsset parameters: - - description: The ID of the tag to retrieve - explode: false + - explode: false in: path - name: tagId + name: assetId required: true schema: - format: uuid type: string + x-fb-entity: asset style: simple responses: - "204": - description: Tag was deleted successfully + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/VaultAsset" + description: Vault amount by asset headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Delete a tag + default: + $ref: "#/components/responses/Error" + summary: Get vault balance by an asset tags: - - Tags - x-rate-limit-category: write + - Vaults + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: assets_balance = fireblocks.get_vault_balance_by_asset(asset_id) + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const assetsBalance = await fireblocks.getVaultBalanceByAsset(assetId); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.tags.deleteTag(tagsApiDeleteTagRequest);" + code: "const response: Promise> = fireblocks.vaults.getVaultBalanceByAsset(vaultsApiGetVaultBalanceByAssetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.tags().deleteTag(tagId); + code: CompletableFuture> response = fireblocks.vaults().getVaultBalanceByAsset(assetId); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.tags.delete_tag(tag_id); + code: response = fireblocks.vaults.get_vault_balance_by_asset(asset_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tags.deleteTag(tagsApiDeleteTagRequest);" + source: "const response: Promise> = fireblocks.vaults.getVaultBalanceByAsset(vaultsApiGetVaultBalanceByAssetRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.tags().deleteTag(tagId); + source: CompletableFuture> response = fireblocks.vaults().getVaultBalanceByAsset(assetId); - lang: Python - source: response = fireblocks.tags.delete_tag(tag_id); + source: response = fireblocks.vaults.get_vault_balance_by_asset(asset_id); x-accepts: - application/json + /vault/lookup_by_address: get: - description: Retrieve an existing tag by ID. - operationId: getTag + description: | + Resolves a blockchain address to the vault account that owns it. Returns the vault account ID and the blockchains associated with the address. + **Note:** This endpoint is currently in beta and might be subject to changes. + operationId: lookupVaultByAddress parameters: - - description: The ID of the tag to retrieve - explode: false - in: path - name: tagId + - description: The blockchain address to resolve. + explode: true + in: query + name: address required: true schema: - format: uuid type: string - style: simple + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/Tag" - description: A tag object + $ref: "#/components/schemas/AddressReverseLookupResponse" + description: "Vault account that owns the address, with associated blockchains." headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Get a tag + "401": + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + description: Feature is not enabled for the workspace. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorSchema" + description: Vault account not found for the supplied address + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Look up a vault account by blockchain address tags: - - Tags + - Vaults x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.tags.getTag(tagsApiGetTagRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.lookupVaultByAddress(vaultsApiLookupVaultByAddressRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.tags().getTag(tagId); + code: CompletableFuture> response + = fireblocks.vaults().lookupVaultByAddress(address); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.tags.get_tag(tag_id); + code: response = fireblocks.vaults.lookup_vault_by_address(address); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tags.getTag(tagsApiGetTagRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.lookupVaultByAddress(vaultsApiLookupVaultByAddressRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.tags().getTag(tagId); + source: CompletableFuture> response + = fireblocks.vaults().lookupVaultByAddress(address); - lang: Python - source: response = fireblocks.tags.get_tag(tag_id); + source: response = fireblocks.vaults.lookup_vault_by_address(address); x-accepts: - application/json - patch: + /vault/public_key_info: + get: description: |- - Update an existing specified tag. - Endpoint Permission: For protected tags: Owner, Admin, Non-Signing Admin. For non protected tags: Owner, Admin, Non-Signing Admin, Signer, Editor, Approver. - operationId: updateTag + Gets the public key information based on derivation path and signing algorithm. + Endpoint Permission: Admin, Non-Signing Admin. + operationId: getPublicKeyInfo parameters: - - description: The ID of the tag to update - explode: false - in: path - name: tagId + - explode: true + in: query + name: derivationPath required: true schema: - format: uuid 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\ - \ same response as the first request. The idempotency key is valid for 24\ - \ hours." - explode: false - in: header - name: Idempotency-Key - required: false + style: form + - explode: true + in: query + name: algorithm + required: true schema: type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/UpdateTagRequest" - required: true + style: form + - explode: true + in: query + name: compressed + required: false + schema: + type: boolean + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/Tag" - description: A tag object + $ref: "#/components/schemas/PublicKeyInformation" + description: Public key information headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - summary: Update a tag + default: + $ref: "#/components/responses/Error" + summary: Get the public key for a derivation path tags: - - Tags - x-rate-limit-category: write + - Vaults + x-rate-limit-category: read x-readme: code-samples: + - language: python + code: "pubKey = fireblocks.get_public_key_info(algorithm, derivation_path,\ + \ compressed)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: | + const PublicKeyInfoArgs = { algorithm: 'MPC_ECDSA_SECP256K1', derivationPath: '[44,0,0,0,0]' } const pubKey = await fireblocks.getPublicKeyInfo(PublicKeyInfoArgs); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.tags.updateTag(tagsApiUpdateTagRequest);" + code: "const response: Promise>\ + \ = fireblocks.vaults.getPublicKeyInfo(vaultsApiGetPublicKeyInfoRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tags().updateTag(updateTagRequest,\ - \ tagId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.vaults().getPublicKeyInfo(derivationPath,\ + \ algorithm, compressed);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tags.update_tag(update_tag_request, tag_id,\ - \ idempotency_key);" + code: "response = fireblocks.vaults.get_public_key_info(derivation_path,\ + \ algorithm, compressed);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tags.updateTag(tagsApiUpdateTagRequest);" + source: "const response: Promise>\ + \ = fireblocks.vaults.getPublicKeyInfo(vaultsApiGetPublicKeyInfoRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tags().updateTag(updateTagRequest,\ - \ tagId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.vaults().getPublicKeyInfo(derivationPath,\ + \ algorithm, compressed);" - lang: Python - source: "response = fireblocks.tags.update_tag(update_tag_request, tag_id,\ - \ idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.vaults.get_public_key_info(derivation_path,\ + \ algorithm, compressed);" x-accepts: - application/json - /tags/approval_requests/{id}: + /connections: get: - description: Get an approval request by id - operationId: getApprovalRequest + description: Get open Web3 connections. + operationId: get parameters: - - explode: false - in: path - name: id - required: true + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: false schema: - example: "12345" - format: numeric + format: uuid type: string style: simple + - description: List order; ascending or descending. + explode: true + in: query + name: order + required: false + schema: + default: ASC + enum: + - ASC + - DESC + type: string + style: form + - description: Parsed filter object + examples: + object: + description: "" + summary: The filter object + value: + id: string + userId: string + vaultAccountId: number + connectionMethod: string + feeLevel: string + appUrl: string + appName: string + stringified: + description: |- + About stringified parsed objects: + + * Each key-value pair is separated by '=', and each pair is separated by ',' (you can use [`qs`](https://www.npmjs.com/package/qs) package for this) + summary: The stringified parsed object + value: "id=string,userId=string,vaultAccountId=number,connectionMethod=string,feeLevel=string,appUrl=string,appName=string" + explode: true + in: query + name: filter + required: false + schema: + $ref: "#/components/schemas/get_filter_parameter" + style: form + - description: Property to sort Web3 connections by. + explode: true + in: query + name: sort + required: false + schema: + default: createdAt + enum: + - id + - userId + - vaultAccountId + - createdAt + - feeLevel + - appUrl + - appName + type: string + style: form + - description: Amount of results to return in the next page. + explode: true + in: query + name: pageSize + required: false + schema: + default: 10 + maximum: 50 + type: number + style: form + - description: Cursor to the next page + explode: true + in: query + name: next + required: false + schema: + type: string + style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ApprovalRequest" - description: Approval request fetched successfully + $ref: "#/components/schemas/GetConnectionsResponse" + description: "" headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "401": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized + "400": + description: Query parameters were invalid headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Approval request not found + "500": + description: Something went wrong headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get an approval request by id + summary: List all open Web3 connections. tags: - - Tags - x-rate-limit-category: read + - Web3 connections + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.tags.getApprovalRequest(tagsApiGetApprovalRequestRequest);" + code: "const response: Promise>\ + \ = fireblocks.web3Connections.get(web3ConnectionsApiGetRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.tags().getApprovalRequest(id); + code: "CompletableFuture> response =\ + \ fireblocks.web3Connections().get(order, filter, sort, pageSize, next,\ + \ xEndUserWalletId);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.tags.get_approval_request(id); + code: "response = fireblocks.web3_connections.get(order, filter, sort, page_size,\ + \ next, x_end_user_wallet_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tags.getApprovalRequest(tagsApiGetApprovalRequestRequest);" + source: "const response: Promise>\ + \ = fireblocks.web3Connections.get(web3ConnectionsApiGetRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.tags().getApprovalRequest(id); + source: "CompletableFuture> response =\ + \ fireblocks.web3Connections().get(order, filter, sort, pageSize, next,\ + \ xEndUserWalletId);" - lang: Python - source: response = fireblocks.tags.get_approval_request(id); + source: "response = fireblocks.web3_connections.get(order, filter, sort, page_size,\ + \ next, x_end_user_wallet_id);" x-accepts: - application/json - /tags/approval_requests/{id}/cancel: + /connections/wc: post: - description: Cancel an approval request by id. Can only cancel requests in PENDING - status. Returns 202 Accepted when the cancellation is processed. - operationId: cancelApprovalRequest + description: |- + Initiate a new Web3 connection. + + * Note: After this succeeds, make a request to `PUT /v1/connections/wc/{id}` (below) to approve or reject the new Web3 connection. + operationId: create 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\ @@ -33656,162 +34102,156 @@ paths: schema: type: string style: simple - - explode: false - in: path - name: id - required: true + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: false schema: - example: "12345" - format: numeric + format: uuid type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateConnectionRequest" + required: true responses: - "202": - description: Approval request cancellation processed - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "401": + "201": content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" - description: Unauthorized + $ref: "#/components/schemas/CreateConnectionResponse" + description: Web3 connection initiated successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": - description: Approval request not found + "400": + description: Invalid data sent headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - description: Invalid approval request state - cannot cancel request that - is not in PENDING status + "500": + description: Something went wrong headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Cancel an approval request by id + summary: Create a new Web3 connection. tags: - - Tags - x-rate-limit-category: write + - Web3 connections + x-rate-limit-category: high_compute x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.tags.cancelApprovalRequest(tagsApiCancelApprovalRequestRequest);" + code: "const response: Promise>\ + \ = fireblocks.web3Connections.create(web3ConnectionsApiCreateRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.tags().cancelApprovalRequest(id,\ - \ idempotencyKey);" + code: "CompletableFuture> response\ + \ = fireblocks.web3Connections().create(createConnectionRequest, idempotencyKey,\ + \ xEndUserWalletId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.tags.cancel_approval_request(id, idempotency_key);" + code: "response = fireblocks.web3_connections.create(create_connection_request,\ + \ idempotency_key, x_end_user_wallet_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.tags.cancelApprovalRequest(tagsApiCancelApprovalRequestRequest);" + source: "const response: Promise>\ + \ = fireblocks.web3Connections.create(web3ConnectionsApiCreateRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.tags().cancelApprovalRequest(id,\ - \ idempotencyKey);" + source: "CompletableFuture> response\ + \ = fireblocks.web3Connections().create(createConnectionRequest, idempotencyKey,\ + \ xEndUserWalletId);" - lang: Python - source: "response = fireblocks.tags.cancel_approval_request(id, idempotency_key);" + source: "response = fireblocks.web3_connections.create(create_connection_request,\ + \ idempotency_key, x_end_user_wallet_id);" + x-content-type: application/json x-accepts: - application/json - /cosigners: - get: - description: |- - Get all workspace cosigners (paginated). - **Note:** These endpoints are currently in beta and might be subject to changes. - Endpoint Permission: Admin and Non-Signing Admin. - operationId: getCosigners + /connections/wc/{id}: + delete: + description: Remove a Web3 connection + operationId: remove parameters: - - description: ASC / DESC ordering (default DESC) - example: ASC - explode: true - in: query - name: order + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id required: false schema: - default: DESC - enum: - - ASC - - DESC + format: uuid type: string - style: form - - description: Cursor of the required page - explode: true - in: query - name: pageCursor - required: false + style: simple + - description: The ID of the existing Web3 connection to remove. + explode: false + in: path + name: id + required: true schema: type: string - style: form - - description: Maximum number of items in the page - example: 10 - explode: true - in: query - name: pageSize - required: false - schema: - default: 10 - maximum: 100 - minimum: 1 - type: number - style: form + style: simple responses: "200": - content: - application/json: - schema: - $ref: "#/components/schemas/CosignersPaginatedResponse" - description: A paginated response containing Cosigner objects + description: Connection removed successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Get all cosigners + "404": + description: Connection not found + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "500": + description: Something went wrong + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: Remove an existing Web3 connection. tags: - - Cosigners (Beta) - x-rate-limit-category: query + - Web3 connections + x-rate-limit-category: high_compute x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.cosignersBeta.getCosigners(cosignersBetaApiGetCosignersRequest);" + code: "const response: Promise> = fireblocks.web3Connections.remove(web3ConnectionsApiRemoveRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().getCosigners(order, pageCursor, pageSize);" + code: "CompletableFuture> response = fireblocks.web3Connections().remove(id,\ + \ xEndUserWalletId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.get_cosigners(order, page_cursor,\ - \ page_size);" + code: "response = fireblocks.web3_connections.remove(id, x_end_user_wallet_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.cosignersBeta.getCosigners(cosignersBetaApiGetCosignersRequest);" + source: "const response: Promise> = fireblocks.web3Connections.remove(web3ConnectionsApiRemoveRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().getCosigners(order, pageCursor, pageSize);" + source: "CompletableFuture> response = fireblocks.web3Connections().remove(id,\ + \ xEndUserWalletId);" - lang: Python - source: "response = fireblocks.cosigners_beta.get_cosigners(order, page_cursor,\ - \ page_size);" + source: "response = fireblocks.web3_connections.remove(id, x_end_user_wallet_id);" x-accepts: - application/json - post: + put: description: |- - Add a new cosigner. The cosigner will be pending pairing until the API key is manually paired - Endpoint Permission: Admin and Non-Signing Admin. - operationId: addCosigner + Submit a response to *approve* or *reject* an initiated Web3 connection. + * Note: This call is used to complete your `POST /v1/connections/wc/` request. + + After this succeeds, your new Web3 connection is created and functioning. + operationId: submit parameters: + - description: The ID of the initiated Web3 connection to approve. + explode: false + in: path + name: id + required: true + schema: + 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -33823,71 +34263,91 @@ paths: schema: type: string style: simple + - description: Unique ID of the End-User wallet to the API request. Required + for end-user wallet operations. + explode: false + in: header + name: X-End-User-Wallet-Id + required: false + schema: + format: uuid + type: string + style: simple requestBody: content: application/json: schema: - $ref: "#/components/schemas/AddCosignerRequest" + $ref: "#/components/schemas/RespondToConnectionRequest" required: true responses: - "201": - content: - application/json: - schema: - $ref: "#/components/schemas/AddCosignerResponse" - description: Pending cosigner added + "200": + description: Connection submitted successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - default: - $ref: "#/components/responses/Error" - summary: Add cosigner + "400": + description: Invalid data sent + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "404": + description: Connection not found + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "500": + description: Something went wrong + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + summary: Respond to a pending Web3 connection request. tags: - - Cosigners (Beta) - x-rate-limit-category: write + - Web3 connections + x-rate-limit-category: high_compute x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.cosignersBeta.addCosigner(cosignersBetaApiAddCosignerRequest);" + code: "const response: Promise> = fireblocks.web3Connections.submit(web3ConnectionsApiSubmitRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().addCosigner(addCosignerRequest,\ - \ idempotencyKey);" + code: "CompletableFuture> response = fireblocks.web3Connections().submit(respondToConnectionRequest,\ + \ id, idempotencyKey, xEndUserWalletId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.add_cosigner(add_cosigner_request,\ - \ idempotency_key);" + code: "response = fireblocks.web3_connections.submit(respond_to_connection_request,\ + \ id, idempotency_key, x_end_user_wallet_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.cosignersBeta.addCosigner(cosignersBetaApiAddCosignerRequest);" + source: "const response: Promise> = fireblocks.web3Connections.submit(web3ConnectionsApiSubmitRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().addCosigner(addCosignerRequest,\ - \ idempotencyKey);" + source: "CompletableFuture> response = fireblocks.web3Connections().submit(respondToConnectionRequest,\ + \ id, idempotencyKey, xEndUserWalletId);" - lang: Python - source: "response = fireblocks.cosigners_beta.add_cosigner(add_cosigner_request,\ - \ idempotency_key);" + source: "response = fireblocks.web3_connections.submit(respond_to_connection_request,\ + \ id, idempotency_key, x_end_user_wallet_id);" x-content-type: application/json x-accepts: - application/json - /cosigners/{cosignerId}: - get: + /webhooks/resend: + post: description: |- - Get a cosigner by ID. - **Note:** These endpoints are currently in beta and might be subject to changes. - Endpoint Permission: Admin and Non-Signing Admin. - operationId: getCosigner + Resends all failed webhook notifications. + + Learn more about Fireblocks Webhooks in the following [guide](https://developers.fireblocks.com/docs/configure-webhooks). + + Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: resendWebhooks parameters: - - description: The unique identifier of the cosigner - example: 44fcead0-7053-4831-a53a-df7fb90d440f + - 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: path - name: cosignerId - required: true + in: header + name: Idempotency-Key + required: false schema: - format: uuid type: string style: simple responses: @@ -33895,121 +34355,142 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Cosigner" - description: A cosigner object + $ref: "#/components/schemas/ResendWebhooksResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get cosigner + summary: Resend failed webhooks tags: - - Cosigners (Beta) - x-rate-limit-category: read + - Webhooks + x-rate-limit-category: async x-readme: code-samples: + - language: python + code: result = fireblocks.resend_webhooks() + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: const result = await fireblocks.resendWebhooks(); + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.cosignersBeta.getCosigner(cosignersBetaApiGetCosignerRequest);" + code: "const response: Promise>\ + \ = fireblocks.webhooks.resendWebhooks(webhooksApiResendWebhooksRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = fireblocks.cosignersBeta().getCosigner(cosignerId); + code: CompletableFuture> response = + fireblocks.webhooks().resendWebhooks(idempotencyKey); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.cosigners_beta.get_cosigner(cosigner_id); + code: response = fireblocks.webhooks.resend_webhooks(idempotency_key); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.cosignersBeta.getCosigner(cosignersBetaApiGetCosignerRequest);" + source: "const response: Promise>\ + \ = fireblocks.webhooks.resendWebhooks(webhooksApiResendWebhooksRequest);" - lang: Java - source: CompletableFuture> response = fireblocks.cosignersBeta().getCosigner(cosignerId); + source: CompletableFuture> response = + fireblocks.webhooks().resendWebhooks(idempotencyKey); - lang: Python - source: response = fireblocks.cosigners_beta.get_cosigner(cosigner_id); + source: response = fireblocks.webhooks.resend_webhooks(idempotency_key); x-accepts: - application/json - patch: - description: |- - Rename a cosigner by ID. - **Note:** These endpoints are currently in beta and might be subject to changes. - Endpoint Permission: Admin and Non-Signing Admin. - operationId: renameCosigner + /webhooks/resend/{txId}: + post: + description: | + Resends webhook notifications for a transaction by its unique identifier. + + Learn more about Fireblocks Webhooks in the following [guide](https://developers.fireblocks.com/docs/configure-webhooks). + + **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor. + operationId: resendTransactionWebhooks parameters: - - description: The unique identifier of the cosigner - example: 44fcead0-7053-4831-a53a-df7fb90d440f + - description: The ID of the transaction for webhooks explode: false in: path - name: cosignerId + name: txId required: true schema: - format: uuid + 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\ + \ 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/RenameCosigner" + $ref: "#/components/schemas/ResendTransactionWebhooksRequest" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/Cosigner" - description: A cosigner object + $ref: "#/components/schemas/ResendWebhooksByTransactionIdResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Rename cosigner + summary: Resend webhooks for a transaction by ID tags: - - Cosigners (Beta) - x-rate-limit-category: write + - Webhooks + x-rate-limit-category: async x-readme: code-samples: + - language: python + code: "result = fireblocks.resend_transaction_webhooks_by_id(txId, resend_created,\ + \ resend_status_updated)" + name: Fireblocks SDK Python example (Legacy) + - language: javascript + code: "const result = await fireblocks.resendTransactionWebhooksById(txId,\ + \ resendCreated, resendStatusUpdated);" + name: Fireblocks SDK Javascript example - language: typescript - code: "const response: Promise> = fireblocks.cosignersBeta.renameCosigner(cosignersBetaApiRenameCosignerRequest);" + code: "const response: Promise>\ + \ = fireblocks.webhooks.resendTransactionWebhooks(webhooksApiResendTransactionWebhooksRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().renameCosigner(renameCosigner,\ - \ cosignerId);" + code: "CompletableFuture>\ + \ response = fireblocks.webhooks().resendTransactionWebhooks(resendTransactionWebhooksRequest,\ + \ txId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.rename_cosigner(rename_cosigner,\ - \ cosigner_id);" + code: "response = fireblocks.webhooks.resend_transaction_webhooks(resend_transaction_webhooks_request,\ + \ tx_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.cosignersBeta.renameCosigner(cosignersBetaApiRenameCosignerRequest);" + source: "const response: Promise>\ + \ = fireblocks.webhooks.resendTransactionWebhooks(webhooksApiResendTransactionWebhooksRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().renameCosigner(renameCosigner,\ - \ cosignerId);" + source: "CompletableFuture>\ + \ response = fireblocks.webhooks().resendTransactionWebhooks(resendTransactionWebhooksRequest,\ + \ txId, idempotencyKey);" - lang: Python - source: "response = fireblocks.cosigners_beta.rename_cosigner(rename_cosigner,\ - \ cosigner_id);" + source: "response = fireblocks.webhooks.resend_transaction_webhooks(resend_transaction_webhooks_request,\ + \ tx_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /cosigners/{cosignerId}/api_keys: + /webhooks: get: - description: |- - Get all cosigner paired API keys (paginated). - **Note:** These endpoints are currently in beta and might be subject to changes. - Endpoint Permission: Admin and Non-Signing Admin. - operationId: getApiKeys + description: | + Get all webhooks (paginated). + operationId: getWebhooks parameters: - - description: The unique identifier of the cosigner - example: 44fcead0-7053-4831-a53a-df7fb90d440f - explode: false - in: path - name: cosignerId - required: true - schema: - format: uuid - type: string - style: simple - description: ASC / DESC ordering (default DESC) - example: ASC explode: true in: query name: order @@ -34019,6 +34500,7 @@ paths: enum: - ASC - DESC + example: ASC type: string style: form - description: Cursor of the required page @@ -34030,13 +34512,13 @@ paths: type: string style: form - description: Maximum number of items in the page - example: 10 explode: true in: query name: pageSize required: false schema: default: 10 + example: 10 maximum: 100 minimum: 1 type: number @@ -34046,373 +34528,301 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ApiKeysPaginatedResponse" - description: A paginated response containing ApiKey objects + $ref: "#/components/schemas/WebhookPaginatedResponse" + description: A paginated response containing WebhookDto objects headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get all API keys + summary: Get all webhooks tags: - - Cosigners (Beta) + - Webhooks V2 x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.cosignersBeta.getApiKeys(cosignersBetaApiGetApiKeysRequest);" + code: "const response: Promise>\ + \ = fireblocks.webhooksV2.getWebhooks(webhooksV2ApiGetWebhooksRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().getApiKeys(cosignerId, order, pageCursor,\ - \ pageSize);" + code: "CompletableFuture> response\ + \ = fireblocks.webhooksV2().getWebhooks(order, pageCursor, pageSize);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.get_api_keys(cosigner_id, order,\ - \ page_cursor, page_size);" + code: "response = fireblocks.webhooks_v2.get_webhooks(order, page_cursor,\ + \ page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.cosignersBeta.getApiKeys(cosignersBetaApiGetApiKeysRequest);" + source: "const response: Promise>\ + \ = fireblocks.webhooksV2.getWebhooks(webhooksV2ApiGetWebhooksRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().getApiKeys(cosignerId, order, pageCursor,\ - \ pageSize);" + source: "CompletableFuture> response\ + \ = fireblocks.webhooksV2().getWebhooks(order, pageCursor, pageSize);" - lang: Python - source: "response = fireblocks.cosigners_beta.get_api_keys(cosigner_id, order,\ - \ page_cursor, page_size);" + source: "response = fireblocks.webhooks_v2.get_webhooks(order, page_cursor,\ + \ page_size);" x-accepts: - application/json - /cosigners/{cosignerId}/api_keys/{apiKeyId}: - delete: - description: |- - Unpair an API key from a cosigner - Endpoint Permission: Admin and Non-Signing Admin. - operationId: unpairApiKey + post: + description: | + Creates a new webhook, which will be triggered on the specified events + + **Endpoint Permissions:** Owner, Admin, Non-Signing Admin. + operationId: createWebhook parameters: - - description: The unique identifier of the cosigner - example: 44fcead0-7053-4831-a53a-df7fb90d440f + - 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: path - name: cosignerId - required: true + in: header + name: Idempotency-Key + required: false schema: - format: uuid type: string style: simple - - description: The unique identifier of the API key - example: 44fcead0-7053-4831-a53a-df7fb90d440f - explode: false - in: path - name: apiKeyId + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateWebhookRequest" required: true - schema: - type: string - style: simple responses: - "202": + "201": content: application/json: schema: - $ref: "#/components/schemas/ApiKey" - description: The API key object to be unpaired + $ref: "#/components/schemas/Webhook" + description: created new webhook successfully headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - Location: - $ref: "#/components/headers/Location" default: $ref: "#/components/responses/Error" - summary: Unpair API key + summary: Create a new webhook tags: - - Cosigners (Beta) + - Webhooks V2 x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.cosignersBeta.unpairApiKey(cosignersBetaApiUnpairApiKeyRequest);" + code: "const response: Promise> = fireblocks.webhooksV2.createWebhook(webhooksV2ApiCreateWebhookRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().unpairApiKey(cosignerId,\ - \ apiKeyId);" + code: "CompletableFuture> response = fireblocks.webhooksV2().createWebhook(createWebhookRequest,\ + \ idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.unpair_api_key(cosigner_id,\ - \ api_key_id);" + code: "response = fireblocks.webhooks_v2.create_webhook(create_webhook_request,\ + \ idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.cosignersBeta.unpairApiKey(cosignersBetaApiUnpairApiKeyRequest);" + source: "const response: Promise> = fireblocks.webhooksV2.createWebhook(webhooksV2ApiCreateWebhookRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().unpairApiKey(cosignerId,\ - \ apiKeyId);" + source: "CompletableFuture> response = fireblocks.webhooksV2().createWebhook(createWebhookRequest,\ + \ idempotencyKey);" - lang: Python - source: "response = fireblocks.cosigners_beta.unpair_api_key(cosigner_id,\ - \ api_key_id);" + source: "response = fireblocks.webhooks_v2.create_webhook(create_webhook_request,\ + \ idempotency_key);" + x-content-type: application/json x-accepts: - application/json - get: - description: |- - Get an API key by ID. - **Note:** These endpoints are currently in beta and might be subject to changes. - Endpoint Permission: Admin and Non-Signing Admin. - operationId: getApiKey + /webhooks/{webhookId}: + delete: + description: | + Delete a webhook by its id + + Endpoint Permission: Owner, Admin, Non-Signing Admin. + operationId: deleteWebhook parameters: - - description: The unique identifier of the cosigner - example: 44fcead0-7053-4831-a53a-df7fb90d440f + - description: The unique identifier of the webhook explode: false in: path - name: cosignerId + name: webhookId required: true schema: + example: 44fcead0-7053-4831-a53a-df7fb90d440f format: uuid type: string style: simple - - description: The unique identifier of the API key - example: 44fcead0-7053-4831-a53a-df7fb90d440f - explode: false - in: path - name: apiKeyId - required: true - schema: - type: string - style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ApiKey" - description: An ApiKey object + $ref: "#/components/schemas/Webhook" + description: Deleted webhook object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get API key + summary: Delete webhook tags: - - Cosigners (Beta) - x-rate-limit-category: read + - Webhooks V2 + x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.cosignersBeta.getApiKey(cosignersBetaApiGetApiKeyRequest);" + code: "const response: Promise> = fireblocks.webhooksV2.deleteWebhook(webhooksV2ApiDeleteWebhookRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().getApiKey(cosignerId,\ - \ apiKeyId);" + code: CompletableFuture> response = fireblocks.webhooksV2().deleteWebhook(webhookId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.get_api_key(cosigner_id, api_key_id);" + code: response = fireblocks.webhooks_v2.delete_webhook(webhook_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.cosignersBeta.getApiKey(cosignersBetaApiGetApiKeyRequest);" + source: "const response: Promise> = fireblocks.webhooksV2.deleteWebhook(webhooksV2ApiDeleteWebhookRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().getApiKey(cosignerId,\ - \ apiKeyId);" + source: CompletableFuture> response = fireblocks.webhooksV2().deleteWebhook(webhookId); - lang: Python - source: "response = fireblocks.cosigners_beta.get_api_key(cosigner_id, api_key_id);" + source: response = fireblocks.webhooks_v2.delete_webhook(webhook_id); x-accepts: - application/json - patch: - description: |- - Update the callback handler of an API key - Endpoint Permission: Admin and Non-Signing Admin. - operationId: updateCallbackHandler + get: + description: | + Retrieve a webhook by its id + operationId: getWebhook parameters: - - description: The unique identifier of the cosigner - example: 44fcead0-7053-4831-a53a-df7fb90d440f + - description: The unique identifier of the webhook explode: false in: path - name: cosignerId + name: webhookId required: true schema: + example: 44fcead0-7053-4831-a53a-df7fb90d440f format: uuid type: string style: simple - - description: The unique identifier of the API key - example: 44fcead0-7053-4831-a53a-df7fb90d440f - explode: false - in: path - name: apiKeyId - required: true - schema: - type: string - style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/UpdateCallbackHandlerRequest" - required: true responses: - "202": + "200": content: application/json: schema: - $ref: "#/components/schemas/UpdateCallbackHandlerResponse" - description: The API key object with the new callback handler + $ref: "#/components/schemas/Webhook" + description: A webhook object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - Location: - $ref: "#/components/headers/Location" default: $ref: "#/components/responses/Error" - summary: Update API key callback handler + summary: Get webhook by id tags: - - Cosigners (Beta) - x-rate-limit-category: write + - Webhooks V2 + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.cosignersBeta.updateCallbackHandler(cosignersBetaApiUpdateCallbackHandlerRequest);" + code: "const response: Promise> = fireblocks.webhooksV2.getWebhook(webhooksV2ApiGetWebhookRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().updateCallbackHandler(updateCallbackHandlerRequest,\ - \ cosignerId, apiKeyId);" + code: CompletableFuture> response = fireblocks.webhooksV2().getWebhook(webhookId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.update_callback_handler(update_callback_handler_request,\ - \ cosigner_id, api_key_id);" + code: response = fireblocks.webhooks_v2.get_webhook(webhook_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.cosignersBeta.updateCallbackHandler(cosignersBetaApiUpdateCallbackHandlerRequest);" + source: "const response: Promise> = fireblocks.webhooksV2.getWebhook(webhooksV2ApiGetWebhookRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.cosignersBeta().updateCallbackHandler(updateCallbackHandlerRequest,\ - \ cosignerId, apiKeyId);" + source: CompletableFuture> response = fireblocks.webhooksV2().getWebhook(webhookId); - lang: Python - source: "response = fireblocks.cosigners_beta.update_callback_handler(update_callback_handler_request,\ - \ cosigner_id, api_key_id);" - x-content-type: application/json + source: response = fireblocks.webhooks_v2.get_webhook(webhook_id); x-accepts: - application/json - put: - description: |- - Pair an API key to a cosigner - Endpoint Permission: Admin and Non-Signing Admin. - operationId: pairApiKey + patch: + description: | + Update a webhook by its id + + Endpoint Permission: Owner, Admin, Non-Signing Admin. + operationId: updateWebhook parameters: - - description: The unique identifier of the cosigner - example: 44fcead0-7053-4831-a53a-df7fb90d440f + - description: The unique identifier of the webhook explode: false in: path - name: cosignerId + name: webhookId required: true schema: + example: 44fcead0-7053-4831-a53a-df7fb90d440f format: uuid type: string style: simple - - description: The unique identifier of the API key - example: 44fcead0-7053-4831-a53a-df7fb90d440f - explode: false - in: path - name: apiKeyId - required: true - schema: - 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\ - \ 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/PairApiKeyRequest" + $ref: "#/components/schemas/UpdateWebhookRequest" required: true responses: - "202": + "200": content: application/json: schema: - $ref: "#/components/schemas/PairApiKeyResponse" - description: The API key object to be paired + $ref: "#/components/schemas/Webhook" + description: Updated webhook object headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - Location: - $ref: "#/components/headers/Location" default: $ref: "#/components/responses/Error" - summary: Pair API key + summary: Update webhook tags: - - Cosigners (Beta) + - Webhooks V2 x-rate-limit-category: write x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.cosignersBeta.pairApiKey(cosignersBetaApiPairApiKeyRequest);" + code: "const response: Promise> = fireblocks.webhooksV2.updateWebhook(webhooksV2ApiUpdateWebhookRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().pairApiKey(pairApiKeyRequest,\ - \ cosignerId, apiKeyId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.webhooksV2().updateWebhook(updateWebhookRequest,\ + \ webhookId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.pair_api_key(pair_api_key_request,\ - \ cosigner_id, api_key_id, idempotency_key);" + code: "response = fireblocks.webhooks_v2.update_webhook(update_webhook_request,\ + \ webhook_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.cosignersBeta.pairApiKey(cosignersBetaApiPairApiKeyRequest);" + source: "const response: Promise> = fireblocks.webhooksV2.updateWebhook(webhooksV2ApiUpdateWebhookRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().pairApiKey(pairApiKeyRequest,\ - \ cosignerId, apiKeyId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.webhooksV2().updateWebhook(updateWebhookRequest,\ + \ webhookId);" - lang: Python - source: "response = fireblocks.cosigners_beta.pair_api_key(pair_api_key_request,\ - \ cosigner_id, api_key_id, idempotency_key);" + source: "response = fireblocks.webhooks_v2.update_webhook(update_webhook_request,\ + \ webhook_id);" x-content-type: application/json x-accepts: - application/json - /cosigners/{cosignerId}/api_keys/{apiKeyId}/{requestId}: + /webhooks/{webhookId}/metrics/{metricName}: get: - description: |- - Get the status of an asynchronous request - Endpoint Permission: Admin and Non-Signing Admin. - operationId: getRequestStatus + description: | + Get webhook metrics by webhook id and metric name + operationId: getMetrics parameters: - - description: The unique identifier of the cosigner - example: 44fcead0-7053-4831-a53a-df7fb90d440f - explode: false + - explode: false in: path - name: cosignerId + name: webhookId required: true schema: + example: 44fcead0-7053-4831-a53a-df7fb90d440f format: uuid type: string style: simple - - description: The unique identifier of the API key - example: 44fcead0-7053-4831-a53a-df7fb90d440f + - description: Name of the metric to retrieve explode: false in: path - name: apiKeyId - required: true - schema: - type: string - style: simple - - explode: false - in: path - name: requestId + name: metricName required: true schema: + enum: + - LAST_ACTIVE_HOUR_ERROR_RATE + example: LAST_ACTIVE_HOUR_ERROR_RATE type: string style: simple responses: @@ -34420,188 +34830,151 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Status" - description: The status of the request + $ref: "#/components/schemas/WebhookMetric" + description: Webhook metrics headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get request status + summary: Get webhook metrics tags: - - Cosigners (Beta) + - Webhooks V2 x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise> = fireblocks.cosignersBeta.getRequestStatus(cosignersBetaApiGetRequestStatusRequest);" + code: "const response: Promise> = fireblocks.webhooksV2.getMetrics(webhooksV2ApiGetMetricsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response = fireblocks.cosignersBeta().getRequestStatus(cosignerId,\ - \ apiKeyId, requestId);" + code: "CompletableFuture> response = fireblocks.webhooksV2().getMetrics(webhookId,\ + \ metricName);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.cosigners_beta.get_request_status(cosigner_id,\ - \ api_key_id, request_id);" + code: "response = fireblocks.webhooks_v2.get_metrics(webhook_id, metric_name);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> = fireblocks.cosignersBeta.getRequestStatus(cosignersBetaApiGetRequestStatusRequest);" + source: "const response: Promise> = fireblocks.webhooksV2.getMetrics(webhooksV2ApiGetMetricsRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.cosignersBeta().getRequestStatus(cosignerId,\ - \ apiKeyId, requestId);" + source: "CompletableFuture> response = fireblocks.webhooksV2().getMetrics(webhookId,\ + \ metricName);" - lang: Python - source: "response = fireblocks.cosigners_beta.get_request_status(cosigner_id,\ - \ api_key_id, request_id);" + source: "response = fireblocks.webhooks_v2.get_metrics(webhook_id, metric_name);" x-accepts: - application/json - /utxo_management/{vaultAccountId}/{assetId}/unspent_outputs: + /webhooks/{webhookId}/notifications: get: - description: |- - 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: getUtxos + description: | + Get all notifications by webhook id (paginated) + operationId: getNotifications 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 + - explode: false in: path - name: assetId + name: webhookId required: true schema: + example: 44fcead0-7053-4831-a53a-df7fb90d440f + format: uuid 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 - required: false - schema: - type: string - style: form - - description: "Number of results per page (max 250, default 50)" - example: 50 - explode: true - in: query - name: pageSize - required: false - schema: - default: 50 - maximum: 250 - minimum: 1 - type: integer - style: form - - description: Field to sort by - example: AMOUNT + - description: ASC / DESC ordering (default DESC) explode: true in: query - name: sort + name: order required: false schema: + default: DESC enum: - - AMOUNT - - CONFIRMATIONS + - ASC + - DESC + example: ASC type: string style: form - - description: Sort order - example: ASC + - description: Sort by field explode: true in: query - name: order + name: sortBy required: false schema: + default: updatedAt enum: - - ASC - - DESC + - id + - createdAt + - updatedAt + - status + - eventType + - resourceId + example: id type: string - style: form - - description: Only return UTXOs that have ALL of these labels (AND logic). - example: - - cold-storage + style: form + - description: Cursor of the required page explode: true in: query - name: includeAllLabels + name: pageCursor required: false schema: - items: - type: string - type: array + type: string style: form - - description: Return UTXOs that have ANY of these labels (OR logic). - example: - - vip - - high-value + - description: Maximum number of items in the page explode: true in: query - name: includeAnyLabels + name: pageSize required: false schema: - items: - type: string - type: array + default: 100 + example: 10 + maximum: 100 + minimum: 1 + type: number style: form - - description: Exclude UTXOs that have ANY of these labels. - example: - - deprecated + - description: Start time in milliseconds since epoch to filter by notifications + created after this time (default 31 days ago) explode: true in: query - name: excludeAnyLabels + name: startTime required: false schema: - items: - type: string - type: array + example: 1625097600000 + type: number style: form - - description: Filter by UTXO statuses to include. - example: - - AVAILABLE - - PENDING + - description: End time in milliseconds since epoch to filter by notifications + created before this time (default current time) explode: true in: query - name: includeStatuses + name: endTime required: false schema: - items: - type: string - type: array + example: 1625017600000 + type: number style: form - - description: Filter by address - example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa + - description: List of notification statuses to filter by explode: true in: query - name: address + name: statuses required: false schema: - type: string + items: + $ref: "#/components/schemas/NotificationStatus" + type: array style: form - - description: Minimum amount filter - example: "0.001" + - description: List of webhook event types to filter by explode: true in: query - name: minAmount + name: events required: false schema: - type: string + items: + $ref: "#/components/schemas/WebhookEvent" + type: array style: form - - description: Maximum amount filter - example: "1.0" + - description: Resource ID to filter by explode: true in: query - name: maxAmount + name: resourceId required: false schema: + example: 44fcead0-7053-4831-a53a-df7fb90d440f type: string style: form responses: @@ -34609,159 +34982,142 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ListUtxosResponse" - description: A paginated list of UTXOs + $ref: "#/components/schemas/NotificationPaginatedResponse" + description: A paginated response containing NotificationExternalDTO objects headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List unspent outputs (UTXOs) + summary: Get all notifications by webhook id tags: - - UTXO Management (Beta) - x-rate-limit-category: read + - Webhooks V2 + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise> =\ - \ fireblocks.uTXOManagementBeta.getUtxos(uTXOManagementBetaApiGetUtxosRequest);" + code: "const response: Promise>\ + \ = fireblocks.webhooksV2.getNotifications(webhooksV2ApiGetNotificationsRequest);" 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);" + code: "CompletableFuture> response\ + \ = fireblocks.webhooksV2().getNotifications(webhookId, order, sortBy,\ + \ pageCursor, pageSize, startTime, endTime, statuses, events, resourceId);" 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);" + code: "response = fireblocks.webhooks_v2.get_notifications(webhook_id, order,\ + \ sort_by, page_cursor, page_size, start_time, end_time, statuses, events,\ + \ resource_id);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise> =\ - \ fireblocks.uTXOManagementBeta.getUtxos(uTXOManagementBetaApiGetUtxosRequest);" + source: "const response: Promise>\ + \ = fireblocks.webhooksV2.getNotifications(webhooksV2ApiGetNotificationsRequest);" - lang: Java - source: "CompletableFuture> response = fireblocks.uTXOManagementBeta().getUtxos(vaultAccountId,\ - \ assetId, pageCursor, pageSize, sort, order, includeAllLabels, includeAnyLabels,\ - \ excludeAnyLabels, includeStatuses, address, minAmount, maxAmount);" + source: "CompletableFuture> response\ + \ = fireblocks.webhooksV2().getNotifications(webhookId, order, sortBy, pageCursor,\ + \ pageSize, startTime, endTime, statuses, events, resourceId);" - 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);" + source: "response = fireblocks.webhooks_v2.get_notifications(webhook_id, order,\ + \ sort_by, page_cursor, page_size, start_time, end_time, statuses, events,\ + \ resource_id);" 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 + /webhooks/{webhookId}/notifications/{notificationId}: + get: + description: | + Get notification by id + operationId: getNotification parameters: - - description: The ID of the vault account + - description: Include the data of the notification + explode: true + in: query + name: includeData + required: false + schema: + type: boolean + style: form + - description: The ID of the webhook to fetch explode: false in: path - name: vaultAccountId + name: webhookId required: true schema: - format: numeric type: string - x-fb-entity: vault_account style: simple - - description: The ID of the asset + - description: The ID of the notification to fetch explode: false in: path - name: assetId + name: notificationId 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 + $ref: "#/components/schemas/NotificationWithData" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Attach or detach labels to/from UTXOs + summary: Get notification by id tags: - - UTXO Management (Beta) - x-rate-limit-category: write + - Webhooks V2 + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.uTXOManagementBeta.updateUtxoLabels(uTXOManagementBetaApiUpdateUtxoLabelsRequest);" + code: "const response: Promise>\ + \ = fireblocks.webhooksV2.getNotification(webhooksV2ApiGetNotificationRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.uTXOManagementBeta().updateUtxoLabels(attachDetachUtxoLabelsRequest,\ - \ vaultAccountId, assetId, idempotencyKey);" + code: "CompletableFuture> response = fireblocks.webhooksV2().getNotification(webhookId,\ + \ notificationId, includeData);" 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);" + code: "response = fireblocks.webhooks_v2.get_notification(webhook_id, notification_id,\ + \ include_data);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.uTXOManagementBeta.updateUtxoLabels(uTXOManagementBetaApiUpdateUtxoLabelsRequest);" + source: "const response: Promise>\ + \ = fireblocks.webhooksV2.getNotification(webhooksV2ApiGetNotificationRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.uTXOManagementBeta().updateUtxoLabels(attachDetachUtxoLabelsRequest,\ - \ vaultAccountId, assetId, idempotencyKey);" + source: "CompletableFuture> response = fireblocks.webhooksV2().getNotification(webhookId,\ + \ notificationId, includeData);" - 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 + source: "response = fireblocks.webhooks_v2.get_notification(webhook_id, notification_id,\ + \ include_data);" x-accepts: - application/json - /legal_entities: + /webhooks/{webhookId}/notifications/{notificationId}/attempts: 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 + description: | + Get notification attempts by notification id + operationId: getNotificationAttempts 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 + - description: The ID of the webhook to fetch + explode: false + in: path + name: webhookId + 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 notification to fetch + explode: false + in: path + name: notificationId + required: true + schema: + type: string + style: simple + - description: Cursor of the required page explode: true in: query name: pageCursor @@ -34769,68 +35125,140 @@ paths: schema: type: string style: form - - description: Maximum number of registrations to return. Ignored when `vaultAccountId` - is provided. + - description: Maximum number of items in the page explode: true in: query name: pageSize required: false schema: - default: 50 + default: 10 + example: 10 maximum: 100 minimum: 1 - type: integer + type: number style: form responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ListLegalEntitiesResponse" - description: "A paginated list of legal entity registrations. When `vaultAccountId`\ - \ is provided, `data` contains at most one item." + $ref: "#/components/schemas/NotificationAttemptsPaginatedResponse" + description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List legal entities (Paginated) + summary: Get notification attempts tags: - - Compliance + - Webhooks V2 x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.listLegalEntities(complianceApiListLegalEntitiesRequest);" + code: "const response: Promise>\ + \ = fireblocks.webhooksV2.getNotificationAttempts(webhooksV2ApiGetNotificationAttemptsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\ - \ pageSize);" + code: "CompletableFuture>\ + \ response = fireblocks.webhooksV2().getNotificationAttempts(webhookId,\ + \ notificationId, pageCursor, pageSize);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\ - \ page_cursor, page_size);" + code: "response = fireblocks.webhooks_v2.get_notification_attempts(webhook_id,\ + \ notification_id, page_cursor, page_size);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.listLegalEntities(complianceApiListLegalEntitiesRequest);" + source: "const response: Promise>\ + \ = fireblocks.webhooksV2.getNotificationAttempts(webhooksV2ApiGetNotificationAttemptsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\ - \ pageSize);" + source: "CompletableFuture>\ + \ response = fireblocks.webhooksV2().getNotificationAttempts(webhookId,\ + \ notificationId, pageCursor, pageSize);" - lang: Python - source: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\ - \ page_cursor, page_size);" + source: "response = fireblocks.webhooks_v2.get_notification_attempts(webhook_id,\ + \ notification_id, page_cursor, page_size);" x-accepts: - application/json + /webhooks/{webhookId}/notifications/{notificationId}/resend: post: - description: |- - Registers a new legal entity for the workspace using its LEI (Legal Entity Identifier) code. The LEI is validated against the GLEIF registry. Each workspace can register multiple legal entities. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: registerLegalEntity + description: | + Resend notification by ID + + Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. + operationId: resendNotificationById + 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 notification + explode: false + in: path + name: notificationId + required: true + schema: + 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\ + \ 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: + "202": + description: Resend notification request was accepted and is being processed + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + default: + $ref: "#/components/responses/Error" + summary: Resend notification by id + tags: + - Webhooks V2 + x-rate-limit-category: async + x-readme: + code-samples: + - language: typescript + code: "const response: Promise> = fireblocks.webhooksV2.resendNotificationById(webhooksV2ApiResendNotificationByIdRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture> response = fireblocks.webhooksV2().resendNotificationById(webhookId,\ + \ notificationId, idempotencyKey);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.webhooks_v2.resend_notification_by_id(webhook_id,\ + \ notification_id, idempotency_key);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise> = fireblocks.webhooksV2.resendNotificationById(webhooksV2ApiResendNotificationByIdRequest);" + - lang: Java + source: "CompletableFuture> response = fireblocks.webhooksV2().resendNotificationById(webhookId,\ + \ notificationId, idempotencyKey);" + - lang: Python + source: "response = fireblocks.webhooks_v2.resend_notification_by_id(webhook_id,\ + \ notification_id, idempotency_key);" + 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\ @@ -34843,174 +35271,221 @@ paths: 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/RegisterLegalEntityRequest" + $ref: "#/components/schemas/ResendByQueryRequest" required: true responses: - "201": - content: - application/json: - schema: - $ref: "#/components/schemas/LegalEntityRegistration" - description: Legal entity registered successfully - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorSchema" - description: Invalid LEI or request parameters - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "404": + "200": content: application/json: schema: - $ref: "#/components/schemas/ErrorSchema" - description: LEI not found in the GLEIF registry + $ref: "#/components/schemas/ResendByQueryResponse" + description: No matching notifications to resend headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "409": + "202": content: application/json: schema: - $ref: "#/components/schemas/ErrorSchema" - description: A legal entity with this LEI is already registered for the - workspace + $ref: "#/components/schemas/ResendByQueryResponse" + description: Resend notifications request was accepted and is being processed headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "500": + 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/ErrorSchema" - description: Internal Server Error + $ref: "#/components/schemas/ResendFailedNotificationsJobStatusResponse" + description: Job status headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Register a new legal entity + summary: Get resend by query job status tags: - - Compliance - x-rate-limit-category: write + - Webhooks V2 + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.registerLegalEntity(complianceApiRegisterLegalEntityRequest);" + code: "const response: Promise>\ + \ = fireblocks.webhooksV2.getResendByQueryJobStatus(webhooksV2ApiGetResendByQueryJobStatusRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.compliance().registerLegalEntity(registerLegalEntityRequest,\ - \ idempotencyKey);" + code: "CompletableFuture>\ + \ response = fireblocks.webhooksV2().getResendByQueryJobStatus(webhookId,\ + \ jobId);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.register_legal_entity(register_legal_entity_request,\ - \ idempotency_key);" + 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.compliance.registerLegalEntity(complianceApiRegisterLegalEntityRequest);" + source: "const response: Promise>\ + \ = fireblocks.webhooksV2.getResendByQueryJobStatus(webhooksV2ApiGetResendByQueryJobStatusRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.compliance().registerLegalEntity(registerLegalEntityRequest,\ - \ idempotencyKey);" + source: "CompletableFuture>\ + \ response = fireblocks.webhooksV2().getResendByQueryJobStatus(webhookId,\ + \ jobId);" - lang: Python - source: "response = fireblocks.compliance.register_legal_entity(register_legal_entity_request,\ - \ idempotency_key);" - x-content-type: application/json + source: "response = fireblocks.webhooks_v2.get_resend_by_query_job_status(webhook_id,\ + \ job_id);" x-accepts: - application/json - /legal_entities/{legalEntityId}: - get: - description: |- - Returns details of a specific legal entity registration, including GLEIF data when available. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: getLegalEntity + /webhooks/{webhookId}/notifications/resend_by_resource: + post: + description: | + Resend notifications by resource Id + + Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. + operationId: resendNotificationsByResourceId parameters: - - description: The unique ID of the legal entity registration + - 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: legalEntityId + name: webhookId required: true schema: - format: uuid type: string style: simple + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ResendNotificationsByResourceIdRequest" + required: true responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/LegalEntityRegistration" - description: Legal entity registration details - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorSchema" - description: Legal entity registration not found + "202": + description: Resend notifications by resource request was accepted and is + being processed headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Get a legal entity + summary: Resend notifications by resource Id tags: - - Compliance - x-rate-limit-category: read + - Webhooks V2 + x-rate-limit-category: async x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.getLegalEntity(complianceApiGetLegalEntityRequest);" + code: "const response: Promise> = fireblocks.webhooksV2.resendNotificationsByResourceId(webhooksV2ApiResendNotificationsByResourceIdRequest);" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response = - fireblocks.compliance().getLegalEntity(legalEntityId); + code: "CompletableFuture> response = fireblocks.webhooksV2().resendNotificationsByResourceId(resendNotificationsByResourceIdRequest,\ + \ webhookId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: response = fireblocks.compliance.get_legal_entity(legal_entity_id); + code: "response = fireblocks.webhooks_v2.resend_notifications_by_resource_id(resend_notifications_by_resource_id_request,\ + \ webhook_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.getLegalEntity(complianceApiGetLegalEntityRequest);" + source: "const response: Promise> = fireblocks.webhooksV2.resendNotificationsByResourceId(webhooksV2ApiResendNotificationsByResourceIdRequest);" - lang: Java - source: CompletableFuture> response = - fireblocks.compliance().getLegalEntity(legalEntityId); + source: "CompletableFuture> response = fireblocks.webhooksV2().resendNotificationsByResourceId(resendNotificationsByResourceIdRequest,\ + \ webhookId, idempotencyKey);" - lang: Python - source: response = fireblocks.compliance.get_legal_entity(legal_entity_id); + source: "response = fireblocks.webhooks_v2.resend_notifications_by_resource_id(resend_notifications_by_resource_id_request,\ + \ webhook_id, idempotency_key);" + x-content-type: application/json x-accepts: - application/json - put: - description: |- - Updates the status of a legal entity registration. Setting isDefault to true marks the registration as the workspace default, which is applied to vault accounts that have no explicit legal entity mapping. - Endpoint Permission: Admin, Non-Signing Admin. - operationId: updateLegalEntity + /webhooks/{webhookId}/notifications/resend_failed: + post: + description: | + Resend all failed notifications for a webhook in the last 24 hours + + Endpoint Permission: Owner, Admin, Non-Signing Admin, Editor, Signer. + operationId: resendFailedNotifications parameters: - - description: The unique ID of the legal entity registration - explode: false - in: path - name: legalEntityId - required: true - schema: - format: uuid - 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -35022,325 +35497,328 @@ paths: 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/UpdateLegalEntityRequest" + $ref: "#/components/schemas/ResendFailedNotificationsRequest" required: true responses: "200": content: application/json: schema: - $ref: "#/components/schemas/LegalEntityRegistration" - description: Updated legal entity registration - headers: - X-Request-ID: - $ref: "#/components/headers/X-Request-ID" - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorSchema" - description: Registration is not in APPROVED status + $ref: "#/components/schemas/ResendFailedNotificationsResponse" + description: No failed notifications to resend headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": + "202": content: application/json: schema: - $ref: "#/components/schemas/ErrorSchema" - description: Legal entity registration not found + $ref: "#/components/schemas/ResendFailedNotificationsResponse" + description: Resend failed 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: Update legal entity + summary: Resend failed notifications tags: - - Compliance - x-rate-limit-category: write + - Webhooks V2 + x-rate-limit-category: high_compute x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.updateLegalEntity(complianceApiUpdateLegalEntityRequest);" + code: "const response: Promise>\ + \ = fireblocks.webhooksV2.resendFailedNotifications(webhooksV2ApiResendFailedNotificationsRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.compliance().updateLegalEntity(updateLegalEntityRequest,\ - \ legalEntityId, idempotencyKey);" + code: "CompletableFuture>\ + \ response = fireblocks.webhooksV2().resendFailedNotifications(resendFailedNotificationsRequest,\ + \ webhookId, idempotencyKey);" name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.update_legal_entity(update_legal_entity_request,\ - \ legal_entity_id, idempotency_key);" + code: "response = fireblocks.webhooks_v2.resend_failed_notifications(resend_failed_notifications_request,\ + \ webhook_id, idempotency_key);" name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.updateLegalEntity(complianceApiUpdateLegalEntityRequest);" + source: "const response: Promise>\ + \ = fireblocks.webhooksV2.resendFailedNotifications(webhooksV2ApiResendFailedNotificationsRequest);" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.compliance().updateLegalEntity(updateLegalEntityRequest,\ - \ legalEntityId, idempotencyKey);" + source: "CompletableFuture>\ + \ response = fireblocks.webhooksV2().resendFailedNotifications(resendFailedNotificationsRequest,\ + \ webhookId, idempotencyKey);" - lang: Python - source: "response = fireblocks.compliance.update_legal_entity(update_legal_entity_request,\ - \ legal_entity_id, idempotency_key);" + source: "response = fireblocks.webhooks_v2.resend_failed_notifications(resend_failed_notifications_request,\ + \ webhook_id, idempotency_key);" x-content-type: application/json x-accepts: - application/json - /legal_entities/{legalEntityId}/vaults: + /webhooks/{webhookId}/notifications/resend_failed/jobs/{jobId}: get: - description: |- - Returns vault account IDs explicitly assigned to a specific legal entity registration, with cursor-based pagination. - Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. - operationId: listVaultsForLegalEntity + description: | + Get the status of a resend job + operationId: getResendJobStatus parameters: - - description: The unique ID of the legal entity registration + - description: The ID of the webhook explode: false in: path - name: legalEntityId + name: webhookId required: true schema: - format: uuid type: string style: simple - - description: Cursor string returned in `next` or `prev` of a previous response - explode: true - in: query - name: pageCursor - required: false + - description: The ID of the resend job + explode: false + in: path + name: jobId + required: true schema: type: string - style: form - - description: Maximum number of registrations to return - explode: true - in: query - name: pageSize - required: false - schema: - default: 50 - maximum: 100 - minimum: 1 - type: integer - style: form + style: simple responses: "200": content: application/json: schema: - $ref: "#/components/schemas/ListVaultsForRegistrationResponse" - description: Paginated list of vault account IDs assigned to the legal entity + $ref: "#/components/schemas/ResendFailedNotificationsJobStatusResponse" + description: Job status headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": + default: + $ref: "#/components/responses/Error" + summary: Get resend job status + tags: + - Webhooks V2 + x-rate-limit-category: read + x-readme: + code-samples: + - language: typescript + code: "const response: Promise>\ + \ = fireblocks.webhooksV2.getResendJobStatus(webhooksV2ApiGetResendJobStatusRequest);" + name: Fireblocks SDK TypeScript example + - language: java + code: "CompletableFuture>\ + \ response = fireblocks.webhooksV2().getResendJobStatus(webhookId, jobId);" + name: Fireblocks SDK Java example + - language: python + code: "response = fireblocks.webhooks_v2.get_resend_job_status(webhook_id,\ + \ job_id);" + name: Fireblocks SDK Python example + x-codeSamples: + - lang: TypeScript + source: "const response: Promise>\ + \ = fireblocks.webhooksV2.getResendJobStatus(webhooksV2ApiGetResendJobStatusRequest);" + - lang: Java + source: "CompletableFuture>\ + \ response = fireblocks.webhooksV2().getResendJobStatus(webhookId, jobId);" + - lang: Python + source: "response = fireblocks.webhooks_v2.get_resend_job_status(webhook_id,\ + \ job_id);" + x-accepts: + - application/json + /webhooks/mtls/csr: + get: + description: | + Returns the Fireblocks Certificate Signing Request (CSR) PEM that customers use to generate their signed client certificate. + operationId: getMtlsCsr + responses: + "200": content: application/json: schema: - $ref: "#/components/schemas/ErrorSchema" - description: Legal entity registration not found + $ref: "#/components/schemas/WebhookMtlsCsrResponse" + description: The mTLS CSR PEM headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: List vault accounts for a legal entity (Paginated) + summary: Get mTLS CSR tags: - - Compliance + - Webhooks V2 x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.listVaultsForLegalEntity(complianceApiListVaultsForLegalEntityRequest);" + code: "const response: Promise>\ + \ = fireblocks.webhooksV2.getMtlsCsr();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.compliance().listVaultsForLegalEntity(legalEntityId,\ - \ pageCursor, pageSize);" + code: CompletableFuture> response = + fireblocks.webhooksV2().getMtlsCsr(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.list_vaults_for_legal_entity(legal_entity_id,\ - \ page_cursor, page_size);" + code: response = fireblocks.webhooks_v2.get_mtls_csr(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.listVaultsForLegalEntity(complianceApiListVaultsForLegalEntityRequest);" + source: "const response: Promise>\ + \ = fireblocks.webhooksV2.getMtlsCsr();" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.compliance().listVaultsForLegalEntity(legalEntityId,\ - \ pageCursor, pageSize);" + source: CompletableFuture> response = + fireblocks.webhooksV2().getMtlsCsr(); - lang: Python - source: "response = fireblocks.compliance.list_vaults_for_legal_entity(legal_entity_id,\ - \ page_cursor, page_size);" + source: response = fireblocks.webhooks_v2.get_mtls_csr(); x-accepts: - application/json - post: + /management/api_users/{userId}/whitelist_ip_addresses: + get: description: |- - Assigns one or more vault accounts to a specific legal entity registration. Explicitly mapped vault accounts take precedence over the workspace default legal entity. + Get a list of the whitelisted IP addresses for a specific API Key + - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. Endpoint Permission: Admin, Non-Signing Admin. - operationId: assignVaultsToLegalEntity + operationId: getWhitelistIpAddresses parameters: - - description: The unique ID of the legal entity registration + - description: The ID of the api user explode: false in: path - name: legalEntityId + name: userId required: true - schema: - format: uuid - 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\ - \ 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/AssignVaultsToLegalEntityRequest" - required: true responses: - "201": + "200": content: application/json: schema: - $ref: "#/components/schemas/AssignVaultsToLegalEntityResponse" - description: Vault accounts assigned successfully + $ref: "#/components/schemas/GetWhitelistIpAddressesResponse" + description: successfully got whitelisted ip addresses headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" - "404": + "401": content: application/json: schema: - $ref: "#/components/schemas/ErrorSchema" - description: Legal entity registration not found + $ref: "#/components/schemas/ErrorResponse" + description: Unauthorized. Missing / invalid JWT token in Authorization + header. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Lacking permissions. + headers: + X-Request-ID: + $ref: "#/components/headers/X-Request-ID" + "5XX": + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Internal error. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Assign vault accounts to a legal entity + summary: Get whitelisted ip addresses for an API Key tags: - - Compliance - x-rate-limit-category: write + - whitelist ip addresses + x-rate-limit-category: read x-readme: code-samples: + - language: javascript + code: const whitelistedAddresses = await fireblocks.getWhitelistedAddresses(apiUserId); + name: Fireblocks SDK Javascript example + - language: python + code: whitelisted_addresses = fireblocks.get_whitelisted_ip_addresses(api_user_id) + name: Fireblocks SDK Python example (Legacy) - language: typescript - code: "const response: Promise>\ - \ = fireblocks.compliance.assignVaultsToLegalEntity(complianceApiAssignVaultsToLegalEntityRequest);" + code: "const response: Promise>\ + \ = fireblocks.whitelistIpAddresses.getWhitelistIpAddresses(whitelistIpAddressesApiGetWhitelistIpAddressesRequest);" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture>\ - \ response = fireblocks.compliance().assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest,\ - \ legalEntityId, idempotencyKey);" + code: CompletableFuture> response + = fireblocks.whitelistIpAddresses().getWhitelistIpAddresses(userId); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.compliance.assign_vaults_to_legal_entity(assign_vaults_to_legal_entity_request,\ - \ legal_entity_id, idempotency_key);" + code: response = fireblocks.whitelist_ip_addresses.get_whitelist_ip_addresses(user_id); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.compliance.assignVaultsToLegalEntity(complianceApiAssignVaultsToLegalEntityRequest);" + source: "const response: Promise>\ + \ = fireblocks.whitelistIpAddresses.getWhitelistIpAddresses(whitelistIpAddressesApiGetWhitelistIpAddressesRequest);" - lang: Java - source: "CompletableFuture>\ - \ response = fireblocks.compliance().assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest,\ - \ legalEntityId, idempotencyKey);" + source: CompletableFuture> response + = fireblocks.whitelistIpAddresses().getWhitelistIpAddresses(userId); - lang: Python - source: "response = fireblocks.compliance.assign_vaults_to_legal_entity(assign_vaults_to_legal_entity_request,\ - \ legal_entity_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.whitelist_ip_addresses.get_whitelist_ip_addresses(user_id); x-accepts: - application/json - /genie/sessions: - post: + /workspace: + get: description: | - Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a `sessionId` — pass it when sending messages, and reuse it across calls to keep one continuous conversation. - - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: createGenieSession - 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 + Returns the workspace ID and name for the authenticated user. + operationId: getWorkspace responses: "200": content: application/json: schema: - $ref: "#/components/schemas/GenieCreateSessionResponse" - description: Session created + $ref: "#/components/schemas/Workspace" + description: Workspace details headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Create a Genie session + summary: Get workspace tags: - - Genie (Beta) - x-rate-limit-category: write + - Workspace + x-rate-limit-category: read x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.genieBeta.createGenieSession(genieBetaApiCreateGenieSessionRequest);" + code: "const response: Promise> = fireblocks.workspace.getWorkspace();" name: Fireblocks SDK TypeScript example - language: java - code: CompletableFuture> response - = fireblocks.genieBeta().createGenieSession(idempotencyKey); + code: CompletableFuture> response = fireblocks.workspace().getWorkspace(); name: Fireblocks SDK Java example - language: python - code: response = fireblocks.genie_beta.create_genie_session(idempotency_key); + code: response = fireblocks.workspace.get_workspace(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.genieBeta.createGenieSession(genieBetaApiCreateGenieSessionRequest);" + source: "const response: Promise> = fireblocks.workspace.getWorkspace();" - lang: Java - source: CompletableFuture> response - = fireblocks.genieBeta().createGenieSession(idempotencyKey); + source: CompletableFuture> response = fireblocks.workspace().getWorkspace(); - lang: Python - source: response = fireblocks.genie_beta.create_genie_session(idempotency_key); + source: response = fireblocks.workspace.get_workspace(); x-accepts: - application/json - /genie/sessions/{sessionId}/messages: + /workspace/freeze: post: - description: | - Sends a question to Genie and returns a single answer. Reuse the `sessionId` from the original session on follow-up messages to continue the conversation with prior context. - - **Note:** This endpoint is currently in beta and might be subject to changes. - operationId: sendGenieMessage + description: "Freezes a Workspace so that ALL operations by ANY user are blocked.\n\ + You should only perform this action when the workspace faces imminent risk,\ + \ such as when you have a security breach.\nTo unfreeze a workspace, the workspace\ + \ Owner must submit a request to Fireblocks Support.\n**NOTE:** \n- This operation\ + \ can only be performed by the workspace Admins - Your workspace continues\ + \ to receive incoming transfers during this time.\nEndpoint Permission: Admin,\ + \ Non-Signing Admin." + operationId: freezeWorkspace parameters: - - description: The Genie session ID returned from `POST /genie/sessions`. - explode: false - in: path - name: sessionId - required: true - schema: - example: 7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a - 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\ \ same response as the first request. The idempotency key is valid for 24\ @@ -35352,55 +35830,66 @@ paths: schema: type: string style: simple - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/GenieSendMessageRequest" - required: true responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/GenieChatMessage" - description: Genie response + "204": + description: Indicates that the workspace is now frozen headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" - summary: Send a message to a Genie session + summary: Freeze tags: - - Genie (Beta) + - Workspace + x-internal: true x-rate-limit-category: write + x-accepts: + - application/json + /management/workspace_status: + get: + description: |- + Returns current workspace status (Beta). + **Note**: + - This endpoint is now in Beta, disabled for general availability at this time. + - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions. + + Endpoint Permission: Admin, Non-Signing Admin. + operationId: getWorkspaceStatus + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/GetWorkspaceStatusResponse" + description: Current workspace status + "404": + description: Workspace not found + summary: Returns current workspace status + tags: + - Workspace Status (Beta) + x-rate-limit-category: query x-readme: code-samples: - language: typescript - code: "const response: Promise>\ - \ = fireblocks.genieBeta.sendGenieMessage(genieBetaApiSendGenieMessageRequest);" + code: "const response: Promise>\ + \ = fireblocks.workspaceStatusBeta.getWorkspaceStatus();" name: Fireblocks SDK TypeScript example - language: java - code: "CompletableFuture> response\ - \ = fireblocks.genieBeta().sendGenieMessage(genieSendMessageRequest, sessionId,\ - \ idempotencyKey);" + code: CompletableFuture> response + = fireblocks.workspaceStatusBeta().getWorkspaceStatus(); name: Fireblocks SDK Java example - language: python - code: "response = fireblocks.genie_beta.send_genie_message(genie_send_message_request,\ - \ session_id, idempotency_key);" + code: response = fireblocks.workspace_status_beta.get_workspace_status(); name: Fireblocks SDK Python example x-codeSamples: - lang: TypeScript - source: "const response: Promise>\ - \ = fireblocks.genieBeta.sendGenieMessage(genieBetaApiSendGenieMessageRequest);" + source: "const response: Promise>\ + \ = fireblocks.workspaceStatusBeta.getWorkspaceStatus();" - lang: Java - source: "CompletableFuture> response\ - \ = fireblocks.genieBeta().sendGenieMessage(genieSendMessageRequest, sessionId,\ - \ idempotencyKey);" + source: CompletableFuture> response + = fireblocks.workspaceStatusBeta().getWorkspaceStatus(); - lang: Python - source: "response = fireblocks.genie_beta.send_genie_message(genie_send_message_request,\ - \ session_id, idempotency_key);" - x-content-type: application/json + source: response = fireblocks.workspace_status_beta.get_workspace_status(); x-accepts: - application/json components: @@ -36843,25 +37332,29 @@ components: "0": BTC_TEST: bcrt1qs0zzqytuw49w2jqkmfhzgdh2lylzde2uw4zncz ETH_TEST: 0x460395Edb2338023c6f137259C6e20B6C37dDE95 + name: My Vault Account errorMessage: Asset not supported status: Success properties: status: description: "Status of the job. Possible values - Success, In Progress,\ - \ Failed, Pending Approval, Cancelled" + \ Error, Pending Approval, Canceled" example: Success type: string vaultAccounts: additionalProperties: additionalProperties: type: string - description: Mapping between asset (key) to address (value) + description: Mapping between asset (key) to address (value). Also includes + a "name" key holding the vault account name. type: object - description: Mapping between VaultAccountId to a mapping of asset to address + description: "Mapping between VaultAccountId to a mapping of asset to address,\ + \ and the vault account name" example: "0": BTC_TEST: bcrt1qs0zzqytuw49w2jqkmfhzgdh2lylzde2uw4zncz ETH_TEST: 0x460395Edb2338023c6f137259C6e20B6C37dDE95 + name: My Vault Account type: object tagIds: description: List of tag IDs successfully attached to each of the created @@ -38764,6 +39257,125 @@ components: required: - data type: object + CreateConnectedAccountRequest: + example: + accountId: provider-acc-001 + apiKey: api_key_abc123 + providerId: BINANCE + displayName: My Binance Account + onPremiseServerId: on-prem-server-001 + creds: !!binary |- + YmFzZTY0ZW5jb2RlZGVuY3J5cHRlZGNyZWRlbnRpYWxzPT0= + mainAccountId: acc-parent-001 + properties: + providerId: + description: "Integration key identifying the provider (e.g. BINANCE, KINGDOM_BANK,\ + \ GEMINI_NLV2)." + example: BINANCE + type: string + displayName: + description: Human-readable account name. Required for non-NLV2 providers. + example: My Binance Account + type: string + creds: + description: Base64-encoded RSA-encrypted credential blob. Encrypt using + the public key from GET /exchange_accounts/credentials_public_key. + example: !!binary |- + YmFzZTY0ZW5jb2RlZGVuY3J5cHRlZGNyZWRlbnRpYWxzPT0= + format: byte + type: string + apiKey: + description: Account-level API key. + example: api_key_abc123 + type: string + mainAccountId: + description: Parent main account ID for sub-account creation. Not allowed + for NLV2 providers. + example: acc-parent-001 + type: string + accountId: + description: Optional provider-side account ID to associate with the created + account. + example: provider-acc-001 + type: string + onPremiseServerId: + description: On-premise server ID for self-hosted integrations. + example: on-prem-server-001 + type: string + required: + - apiKey + - creds + - providerId + type: object + CreatedConnectedAccountItem: + properties: + accountId: + description: ID of the created account. + example: acc-789012 + type: string + name: + description: Human-readable account name. + example: My Exchange Account + type: string + parentAccountId: + description: Parent account ID — present only for sub-accounts in an NLV2 + hierarchy. + example: acc-parent-001 + type: string + status: + $ref: "#/components/schemas/ConnectedAccountApprovalStatus" + required: + - accountId + - name + - status + type: object + CreateConnectedAccountResponse: + example: + accounts: + - accountId: acc-789012 + name: My Exchange Account + status: WAITING_FOR_APPROVAL + properties: + accounts: + description: "Created accounts — main account first, sub-accounts after\ + \ (NLV2 hierarchy)." + example: + - accountId: acc-789012 + name: My Exchange Account + status: WAITING_FOR_APPROVAL + items: + $ref: "#/components/schemas/CreatedConnectedAccountItem" + type: array + required: + - accounts + type: object + ConnectedAccountErrorResponse: + example: + code: 3228 + errorMessage: Insufficient permissions to rename connected account + errorCode: INSUFFICIENT_PERMISSIONS + message: Provider 'BINANCE' not found + properties: + message: + description: Error message describing what went wrong. + example: Provider 'BINANCE' not found + type: string + code: + description: Numeric error code identifying the type of error. + example: 3228 + type: integer + errorMessage: + description: Error message describing what went wrong + example: Insufficient permissions to rename connected account + type: string + errorCode: + description: Error code identifying the type of error + example: INSUFFICIENT_PERMISSIONS + type: string + required: + - code + - message + type: object ConnectedSingleAccount: properties: subAccountsIds: @@ -38851,23 +39463,6 @@ components: - UNKNOWN_ERROR example: SUCCESS type: string - ConnectedAccountErrorResponse: - example: - errorMessage: Insufficient permissions to rename connected account - errorCode: INSUFFICIENT_PERMISSIONS - properties: - errorMessage: - description: Error message describing what went wrong - example: Insufficient permissions to rename connected account - type: string - errorCode: - description: Error code identifying the type of error - example: INSUFFICIENT_PERMISSIONS - type: string - required: - - errorCode - - errorMessage - type: object ConnectedAccountBalances: properties: assetId: @@ -39243,6 +39838,37 @@ components: - data - total type: object + AllowlistEntryResponse: + description: "Single allowlist entry envelope, paired with the account-level\ + \ allowlist sync metadata." + example: + metadata: + lastSyncedAt: 2026-05-01T15:30:00Z + syncStatus: SUCCESS + data: + providerReferenceId: CB-SAMPLE-001 + addedAt: 2024-01-15T10:30:00Z + address: 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb + assets: + - BTC + - ETH + providerMetadata: + coinbase_exchange_id: "1234567890" + id: 550e8400-e29b-41d4-a716-446655440000 + label: Coinbase Hot Wallet + addressIdentifier: addressIdentifier + networks: + - ETHEREUM + - POLYGON + status: ACTIVE + properties: + data: + $ref: "#/components/schemas/AllowlistEntry" + metadata: + $ref: "#/components/schemas/AllowlistMetadata" + required: + - data + type: object CounterpartyGroup: description: A counterparty group used to classify counterparties for compliance and routing purposes @@ -40662,6 +41288,14 @@ components: code) example: FR type: string + accountHolderPostalCode: + description: The postal code of the account holder's address + example: "75001" + type: string + accountHolderCity: + description: The city where the account holder resides + example: Paris + type: string accountHolderAddress: description: The address of the account holder example: 123 Rue de la Paix @@ -41058,6 +41692,7 @@ components: - accountHolderSurname - accountNumber - addressingSystem + - bsb - country - rail - type @@ -41086,6 +41721,19 @@ components: description: The surname (last name) of the account holder example: Smith type: string + accountHolderCity: + description: The city where the account holder resides + example: London + type: string + accountHolderCountry: + description: The country where the account holder resides (ISO 3166-1 alpha-2 + code) + example: GB + type: string + accountHolderPostalCode: + description: The postal code of the account holder's address + example: SW1A 1AA + type: string country: description: The country for the transfer (ISO 3166-1 alpha-2 code) example: GB @@ -42197,6 +42845,21 @@ components: - OEC_PARTNER - WALLET_POOL type: string + TransactionTag: + properties: + id: + description: The unique identifier of the tag + example: df4c0987-30da-4976-8dcf-bc2dd41ae331 + format: uuid + type: string + label: + description: The tag label + example: VIP + type: string + required: + - id + - label + type: object SourceTransferPeerPathResponse: description: Source of the transaction. example: @@ -42206,6 +42869,9 @@ components: subType: subType id: id type: VAULT_ACCOUNT + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP properties: type: $ref: "#/components/schemas/TransferPeerPathType" @@ -42237,6 +42903,16 @@ components: \ field will be populated with the type of that trading account." nullable: true type: string + tags: + description: Tags associated with the transaction's source. + example: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP + items: + $ref: "#/components/schemas/TransactionTag" + maxItems: 20 + minItems: 1 + type: array required: - type type: object @@ -42252,6 +42928,9 @@ components: subType: subType id: id type: null + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP properties: type: $ref: "#/components/schemas/TransferPeerPathType" @@ -42283,6 +42962,16 @@ components: \ field will be populated with the type of that trading account." nullable: true type: string + tags: + description: Tags associated with the transaction's destination. + example: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP + items: + $ref: "#/components/schemas/TransactionTag" + maxItems: 20 + minItems: 1 + type: array required: - type type: object @@ -42364,6 +43053,9 @@ components: subType: subType id: id type: null + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP travelRuleMessageId: trm_12345678-1234-1234-1234-123456789012 properties: amount: @@ -42494,6 +43186,9 @@ components: subType: subType id: id type: null + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP source: walletId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 tradingAccount: tradingAccount @@ -42501,6 +43196,9 @@ components: subType: subType id: id type: VAULT_ACCOUNT + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP type: type txHash: txHash isDropped: true @@ -44682,6 +45380,9 @@ components: subType: subType id: id type: VAULT_ACCOUNT + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP createdAt: 6.027456183070403 lastUpdated: 1.4658129805029452 gasLimit: "21000" @@ -44729,6 +45430,9 @@ components: subType: subType id: id type: null + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP travelRuleMessageId: trm_12345678-1234-1234-1234-123456789012 - amount: amount amountUSD: amountUSD @@ -44752,6 +45456,9 @@ components: subType: subType id: id type: null + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP travelRuleMessageId: trm_12345678-1234-1234-1234-123456789012 signedMessages: - derivationPath: @@ -44816,6 +45523,9 @@ components: subType: subType id: id type: null + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP extraParameters: piiData: key: "" @@ -44847,6 +45557,9 @@ components: subType: subType id: id type: null + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP source: walletId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 tradingAccount: tradingAccount @@ -44854,6 +45567,9 @@ components: subType: subType id: id type: VAULT_ACCOUNT + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP type: type txHash: txHash isDropped: true @@ -44872,6 +45588,9 @@ components: subType: subType id: id type: null + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP source: walletId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 tradingAccount: tradingAccount @@ -44879,6 +45598,9 @@ components: subType: subType id: id type: VAULT_ACCOUNT + tags: + - id: df4c0987-30da-4976-8dcf-bc2dd41ae331 + label: VIP type: type txHash: txHash isDropped: true @@ -45988,37 +46710,38 @@ components: type: object UtxoInput: example: + index: 0 txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 properties: txHash: example: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c type: string - vout: + index: + description: The output index (vout) example: 0 type: integer required: + - index - 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 + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c fillFeeForSelectedInputs: true inputsToSpend: - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c properties: inputsToSpend: - description: Force-include specific UTXOs by txHash and vout. + description: Force-include specific UTXOs by txHash and index. items: $ref: "#/components/schemas/UtxoInput" type: array @@ -46040,16 +46763,16 @@ components: selectionStrategy: AMOUNT_ASC inputSelection: inputsToExclude: - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c fillFeeForSelectedInputs: true inputsToSpend: - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c filters: minAmount: "0.001" includeAnyLabels: @@ -49801,16 +50524,16 @@ components: selectionStrategy: AMOUNT_ASC inputSelection: inputsToExclude: - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c fillFeeForSelectedInputs: true inputsToSpend: - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c filters: minAmount: "0.001" includeAnyLabels: @@ -53023,16 +53746,16 @@ components: selectionStrategy: AMOUNT_ASC inputSelection: inputsToExclude: - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c fillFeeForSelectedInputs: true inputsToSpend: - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c filters: minAmount: "0.001" includeAnyLabels: @@ -54288,16 +55011,16 @@ components: selectionStrategy: AMOUNT_ASC inputSelection: inputsToExclude: - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c fillFeeForSelectedInputs: true inputsToSpend: - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - - txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c + - index: 0 + txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c filters: minAmount: "0.001" includeAnyLabels: @@ -60373,6 +61096,33 @@ components: - completed - txId type: object + SolanaRewardsBreakdown: + description: A breakdown of the staking rewards earned by the position. + example: + issuance: "0.000856038" + mev: "0.000123456" + lastRewardSyncedAt: 2023-07-13T15:55:34.256Z + properties: + issuance: + description: "The issuance reward amount earned by the position, measured\ + \ in the staked asset unit." + example: "0.000856038" + type: string + mev: + description: "The MEV reward amount earned by the position, measured in\ + \ the staked asset unit." + example: "0.000123456" + type: string + lastRewardSyncedAt: + description: The last time the rewards were synced (ISO Date). + example: 2023-07-13T15:55:34.256Z + format: date-time + type: string + required: + - issuance + - lastRewardSyncedAt + - mev + type: object SolanaBlockchainData: description: "Additional fields per blockchain - can be empty or missing if\ \ not initialized or no additional info exists. The type depends on the chainDescriptor\ @@ -60380,6 +61130,10 @@ components: \ object is returned as no specific data is available." example: stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq + rewardsBreakdown: + issuance: "0.000856038" + mev: "0.000123456" + lastRewardSyncedAt: 2023-07-13T15:55:34.256Z properties: stakeAccountAddress: description: The stake account address matching the stakeAccountId. @@ -60390,6 +61144,8 @@ components: to derive the stake account address. example: 7 type: number + rewardsBreakdown: + $ref: "#/components/schemas/SolanaRewardsBreakdown" required: - stakeAccountAddress - stakeAccountDerivationChangeValue @@ -60455,6 +61211,10 @@ components: - unstake blockchainPositionInfo: stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq + rewardsBreakdown: + issuance: "0.000856038" + mev: "0.000123456" + lastRewardSyncedAt: 2023-07-13T15:55:34.256Z chainDescriptor: SOL amount: "0.05" relatedRequests: @@ -60601,6 +61361,10 @@ components: - UNSTAKE blockchainPositionInfo: stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq + rewardsBreakdown: + issuance: "0.000856038" + mev: "0.000123456" + lastRewardSyncedAt: 2023-07-13T15:55:34.256Z chainDescriptor: SOL amount: "0.05" inProgress: true @@ -60734,6 +61498,10 @@ components: - UNSTAKE blockchainPositionInfo: stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq + rewardsBreakdown: + issuance: "0.000856038" + mev: "0.000123456" + lastRewardSyncedAt: 2023-07-13T15:55:34.256Z chainDescriptor: SOL amount: "0.05" inProgress: true @@ -60752,6 +61520,10 @@ components: - UNSTAKE blockchainPositionInfo: stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq + rewardsBreakdown: + issuance: "0.000856038" + mev: "0.000123456" + lastRewardSyncedAt: 2023-07-13T15:55:34.256Z chainDescriptor: SOL amount: "0.05" inProgress: true @@ -61112,7 +61884,9 @@ components: status: COMPLETED updatedAt: 2025-03-20T08:30:00Z providerId: MORPHO + vaultAccountId: "0" id: 660e8400-e29b-41d4-a716-446655440001 + userId: 550e8400-e29b-41d4-a716-446655440000 status: IN_PROGRESS updatedAt: 2025-03-20T08:30:00Z properties: @@ -61120,6 +61894,14 @@ components: description: Action sequence id (UUID). example: 660e8400-e29b-41d4-a716-446655440001 type: string + vaultAccountId: + description: Fireblocks vault account that executed the action. + example: "0" + type: string + userId: + description: User who initiated the action. + example: 550e8400-e29b-41d4-a716-446655440000 + type: string status: description: "Intent status (e.g. CREATED, IN_PROGRESS, COMPLETED)." example: IN_PROGRESS @@ -61175,6 +61957,8 @@ components: - records - status - updatedAt + - userId + - vaultAccountId type: object GetActionsResponse: example: @@ -61182,6 +61966,8 @@ components: total: 1 data: - id: 660e8400-e29b-41d4-a716-446655440001 + vaultAccountId: "0" + userId: 550e8400-e29b-41d4-a716-446655440000 status: IN_PROGRESS providerId: MORPHO actionType: DEPOSIT @@ -61201,6 +61987,8 @@ components: description: Page of lending actions for this query. example: - id: 660e8400-e29b-41d4-a716-446655440001 + vaultAccountId: "0" + userId: 550e8400-e29b-41d4-a716-446655440000 status: IN_PROGRESS providerId: MORPHO actionType: DEPOSIT @@ -61334,20 +62122,37 @@ components: type: number type: object Exposure: + description: Vault allocation exposure item (Morpho MetaMorpho allocation slice). properties: - assetAddress: - description: On-chain address of the exposure asset. - example: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + address: + description: Contract address of the exposure token on-chain. + example: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + type: string + amount: + description: Human-readable token amount (raw on-chain value scaled by 10^decimals). + example: "10.0" type: string symbol: - description: Ticker for the exposure asset. - example: WETH + description: Human-readable ticker (e.g. USDC). + example: USDC type: string - amount: - description: Human-readable decimal string (raw on-chain value scaled by - 10^decimals). - example: "125.5" + 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);\ + \ only present when resolved via asset-service." + example: USDC_ETH type: string + amountUsd: + description: USD notional value of the exposure amount. + example: "10.0" + type: string + required: + - address + - amount type: object Opportunity: properties: @@ -61414,12 +62219,22 @@ components: description: Management fee as a human-readable decimal string. example: "0.01" type: string + exposureType: + description: What the `exposure` rows represent; `UNSPECIFIED` when there + is no exposure. + enum: + - UNSPECIFIED + - VAULT_ALLOCATION + - MARKET_COLLATERAL + example: VAULT_ALLOCATION + type: string exposure: - description: Optional per-asset exposure breakdown. + description: "Per-asset exposure breakdown (vault allocation slices, top\ + \ 20 by USD notional). Empty when not applicable." example: [] items: $ref: "#/components/schemas/Exposure" - maxItems: 10 + maxItems: 20 minItems: 0 type: array type: object @@ -61597,6 +62412,28 @@ components: - WITHDRAW type: string type: array + yield: + description: Accrued yield in principal token units (decimal string). Only + present for Morpho positions. + example: "1.23" + type: string + required: + - availableActions + - chainId + - createdAt + - id + - inFlight + - opportunityId + - origin + - positionAssetId + - positionBalance + - positionType + - principalAssetId + - principalBalance + - providerId + - status + - updatedAt + - vaultAccountId type: object GetPositionsResponse: example: @@ -61759,89 +62596,19 @@ components: - data - total type: object - ManifestBase: - description: Base manifest schema with common properties - properties: - supported: - description: Indicates whether the endpoint is supported by the provider - type: boolean - required: - - supported - type: object - SettlementTypeEnum: - description: Settlement type supported by the provider - enum: - - DVP - - PREFUNDED - type: string - ExecutionRequestDetailsType: - description: Execution type supported by the provider - enum: - - QUOTE - - MARKET - type: string - ManifestOrderInfo: - description: Defines requirements for the POST /orders endpoint. - properties: - settlementTypes: - description: | - Supported settlement types when creating an order. - If present - settlement is required. If absent - no need to provide settlement. - items: - $ref: "#/components/schemas/SettlementTypeEnum" - type: array - executionTypes: - description: Supported execution types when creating an order. - items: - $ref: "#/components/schemas/ExecutionRequestDetailsType" - type: array - required: - - executionTypes - type: object - ManifestOrder: - allOf: - - $ref: "#/components/schemas/ManifestBase" - - $ref: "#/components/schemas/ManifestOrderInfo" - DVPSettlementType: - enum: - - DVP - type: string - ManifestQuoteInfo: - description: Defines requirements for the POST /quotes endpoint. - properties: - settlementTypes: - description: | - Supported settlement types when requesting a quote. - If present - settlement is required. If absent - no need to provide settlement. - items: - $ref: "#/components/schemas/DVPSettlementType" - type: array - type: object - ManifestQuote: - 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" + \ object on requests where\nthe provider manifest declares a `participantsIdentificationPolicy`\ + \ for that endpoint (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#", @@ -62007,8 +62774,8 @@ components: 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\ + \ declares a `participantsIdentificationPolicy` for that endpoint (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,\ @@ -62119,18 +62886,17 @@ components: 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`. + When present on a provider manifest, specifies KYC/AML identification requirements as JSON Schemas. - 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. + `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`. + 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 @@ -62138,9 +62904,6 @@ components: 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\"\ @@ -62201,21 +62964,11 @@ components: 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\ + \ declares a `participantsIdentificationPolicy` for that endpoint (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,\ @@ -62330,8 +63083,95 @@ components: type: array required: - defaultSchema - - supportedEndpoints type: object + ParticipantRelationshipType: + enum: + - FirstParty + - SecondParty + - ThirdParty + example: FirstParty + type: string + ManifestBase: + description: Base manifest schema with common properties + properties: + supported: + description: Indicates whether the endpoint is supported by the provider + type: boolean + participantsIdentificationPolicy: + $ref: "#/components/schemas/ParticipantsIdentificationPolicy" + supportedParties: + description: | + The participant party types the provider supports for this endpoint. + example: + - FirstParty + - ThirdParty + items: + $ref: "#/components/schemas/ParticipantRelationshipType" + type: array + required: + - supported + type: object + SettlementTypeEnum: + description: Settlement type supported by the provider + enum: + - DVP + - PREFUNDED + type: string + ExecutionRequestDetailsType: + description: Execution type supported by the provider + enum: + - QUOTE + - MARKET + type: string + ManifestOrderInfo: + description: Defines requirements for the POST /orders endpoint. + properties: + settlementTypes: + description: | + Supported settlement types when creating an order. + If present - settlement is required. If absent - no need to provide settlement. + items: + $ref: "#/components/schemas/SettlementTypeEnum" + type: array + executionTypes: + description: Supported execution types when creating an order. + items: + $ref: "#/components/schemas/ExecutionRequestDetailsType" + type: array + requiresReasonForPayment: + description: | + Information about the source and purpose of the funds being transacted. + Used by providers that require additional context for compliance and + reporting. Provide this field when the provider manifest indicates it is + required. + example: true + type: boolean + required: + - executionTypes + type: object + ManifestOrder: + allOf: + - $ref: "#/components/schemas/ManifestBase" + - $ref: "#/components/schemas/ManifestOrderInfo" + DVPSettlementType: + enum: + - DVP + type: string + ManifestQuoteInfo: + description: Defines requirements for the POST /quotes endpoint. + properties: + settlementTypes: + description: | + Supported settlement types when requesting a quote. + If present - settlement is required. If absent - no need to provide settlement. + items: + $ref: "#/components/schemas/DVPSettlementType" + type: array + type: object + ManifestQuote: + allOf: + - $ref: "#/components/schemas/ManifestBase" + - $ref: "#/components/schemas/ManifestQuoteInfo" Manifest: description: "The manifest of the provider, describing its supported order,\ \ quote, and rate requirements." @@ -62343,34 +63183,34 @@ components: - QUOTE settlementTypes: - DVP + participantsIdentificationPolicy: + 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\"]}]}}}" + supportedParties: + - FirstParty + - ThirdParty quote: supported: true settlementTypes: - 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" @@ -62378,8 +63218,6 @@ components: $ref: "#/components/schemas/ManifestQuote" rate: $ref: "#/components/schemas/ManifestBase" - participantsIdentificationPolicy: - $ref: "#/components/schemas/ParticipantsIdentificationPolicy" required: - order - quote @@ -62974,13 +63812,6 @@ components: enum: - INDIVIDUAL type: string - ParticipantRelationshipType: - enum: - - FirstParty - - SecondParty - - ThirdParty - example: FirstParty - type: string PostalAddress: example: streetName: Fifth Avenue @@ -64026,7 +64857,7 @@ components: type: string SourceOfFunds: description: | - Information about the source and purpose of the funds being transacted. Used by providers that require additional context for compliance and reporting (e.g. CPN cross-border payments). + Information about the source and purpose of the funds being transacted. Used by providers that require additional context for compliance and reporting. Provide this field when the provider manifest indicates it is required. example: reasonForPayment: INVOICE_PAYMENT properties: @@ -65143,7 +65974,6 @@ components: type: string required: - accountHolder - - accountNumber - type - value type: object @@ -66389,15 +67219,16 @@ components: lei: 254900GC33RBE6FQA817 entityName: ACME Corporation jurisdiction: US - verified: true + leiData: true travelRuleProviders: - TRAVEL_RULE_PROVIDER_NOTABENE - TRAVEL_RULE_PROVIDER_SYGNA email: compliance@example.com properties: - verified: - description: Whether the entity was resolved from verified public registry - data (e.g. LEI sources). + leiData: + description: Indicates whether LEI (Legal Entity Identifier) data is available + for this address from a verified public registry. A value of `false` means + no LEI record was found. example: true type: boolean entityName: @@ -66409,7 +67240,8 @@ components: example: US type: string lei: - description: Legal Entity Identifier when available; may be empty when unverified. + description: Legal Entity Identifier when available. Empty when `leiData` + is `false`. example: 254900GC33RBE6FQA817 type: string travelRuleProviders: @@ -66428,8 +67260,8 @@ components: - entityName - jurisdiction - lei + - leiData - travelRuleProviders - - verified type: object AddressRegistryError: description: Error body for address registry operations (4xx and 5xx). @@ -78320,14 +79152,8 @@ components: - type - verdict type: object - PolicyMetadata: - description: Policy metadata - example: - publishedBy: user456 - editedBy: user123 - publishedAt: 2024-01-15T11:00:00Z - policyType: TRANSFER - editedAt: 2024-01-15T10:30:00Z + PolicyMetadataEntry: + description: Policy metadata entry (per policy type) properties: editedBy: description: The user ID of the user who last edited the policy @@ -78345,20 +79171,27 @@ components: description: The timestamp of the last publish of the policy example: 2024-01-15T11:00:00Z type: string - policyType: - $ref: "#/components/schemas/PolicyType" - required: - - policyType + type: object + PolicyMetadata: + additionalProperties: + $ref: "#/components/schemas/PolicyMetadataEntry" + description: Policy metadata keyed by policy type + example: + TRANSFER: + editedBy: user123 + editedAt: 2024-01-15T10:30:00Z + publishedBy: user456 + publishedAt: 2024-01-15T11:00:00Z type: object PolicyResponse: description: Response object for policy operations example: metadata: - publishedBy: user456 - editedBy: user123 - publishedAt: 2024-01-15T11:00:00Z - policyType: TRANSFER - editedAt: 2024-01-15T10:30:00Z + TRANSFER: + editedBy: user123 + editedAt: 2024-01-15T10:30:00Z + publishedBy: user456 + publishedAt: 2024-01-15T11:00:00Z rules: - initiator: '*' destination: @@ -78709,7 +79542,16 @@ components: $ref: "#/components/schemas/PolicyRule" type: array metadata: - $ref: "#/components/schemas/PolicyMetadata" + additionalProperties: + $ref: "#/components/schemas/PolicyMetadataEntry" + description: Policy metadata keyed by policy type + example: + TRANSFER: + editedBy: user123 + editedAt: 2024-01-15T10:30:00Z + publishedBy: user456 + publishedAt: 2024-01-15T11:00:00Z + type: object required: - metadata - rules @@ -78905,11 +79747,11 @@ components: status: status policy: metadata: - publishedBy: user456 - editedBy: user123 - publishedAt: 2024-01-15T11:00:00Z - policyType: TRANSFER - editedAt: 2024-01-15T10:30:00Z + TRANSFER: + editedBy: user123 + editedAt: 2024-01-15T10:30:00Z + publishedBy: user456 + publishedAt: 2024-01-15T11:00:00Z rules: - initiator: '*' destination: @@ -79267,11 +80109,11 @@ components: example: draftId: draftId metadata: - publishedBy: user456 - editedBy: user123 - publishedAt: 2024-01-15T11:00:00Z - policyType: TRANSFER - editedAt: 2024-01-15T10:30:00Z + TRANSFER: + editedBy: user123 + editedAt: 2024-01-15T10:30:00Z + publishedBy: user456 + publishedAt: 2024-01-15T11:00:00Z rules: - initiator: '*' destination: @@ -79629,7 +80471,16 @@ components: description: Draft unique id type: string metadata: - $ref: "#/components/schemas/PolicyMetadata" + additionalProperties: + $ref: "#/components/schemas/PolicyMetadataEntry" + description: Policy metadata keyed by policy type + example: + TRANSFER: + editedBy: user123 + editedAt: 2024-01-15T10:30:00Z + publishedBy: user456 + publishedAt: 2024-01-15T11:00:00Z + type: object required: - draftId - metadata @@ -79642,11 +80493,11 @@ components: draftResponse: draftId: draftId metadata: - publishedBy: user456 - editedBy: user123 - publishedAt: 2024-01-15T11:00:00Z - policyType: TRANSFER - editedAt: 2024-01-15T10:30:00Z + TRANSFER: + editedBy: user123 + editedAt: 2024-01-15T10:30:00Z + publishedBy: user456 + publishedAt: 2024-01-15T11:00:00Z rules: - initiator: '*' destination: @@ -80433,11 +81284,11 @@ components: description: Response object of the publish policy operation example: metadata: - publishedBy: user456 - editedBy: user123 - publishedAt: 2024-01-15T11:00:00Z - policyType: TRANSFER - editedAt: 2024-01-15T10:30:00Z + TRANSFER: + editedBy: user123 + editedAt: 2024-01-15T10:30:00Z + publishedBy: user456 + publishedAt: 2024-01-15T11:00:00Z rules: - initiator: '*' destination: @@ -80817,7 +81668,16 @@ components: checkResult: $ref: "#/components/schemas/PolicyCheckResult" metadata: - $ref: "#/components/schemas/PolicyMetadata" + additionalProperties: + $ref: "#/components/schemas/PolicyMetadataEntry" + description: Policy metadata keyed by policy type + example: + TRANSFER: + editedBy: user123 + editedAt: 2024-01-15T10:30:00Z + publishedBy: user456 + publishedAt: 2024-01-15T11:00:00Z + type: object required: - checkResult - metadata @@ -81033,6 +81893,42 @@ components: - name - role type: object + IssueApiUserPairingTokenResponse: + example: + role: OWNER + name: John Doe + pairingToken: access-token-for-pairing + id: id + userType: API + enabled: true + status: PENDING_ACTIVATION + properties: + id: + description: The unique identifier of the user + type: string + name: + description: The name of the user + example: John Doe + type: string + role: + $ref: "#/components/schemas/UserRole" + enabled: + description: Whether the user is enabled + type: boolean + userType: + $ref: "#/components/schemas/UserType" + status: + $ref: "#/components/schemas/UserStatus" + pairingToken: + description: The device pairing token issued for the given user + example: access-token-for-pairing + type: string + required: + - enabled + - id + - pairingToken + - role + type: object GetWhitelistIpAddressesResponse: example: whitelistedIps: @@ -82713,11 +83609,11 @@ components: 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. + or a specific on-chain UTXO (txHash + index). Exactly one of these two forms must be provided. example: txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + index: 0 txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 properties: txId: description: Fireblocks transaction ID @@ -82727,8 +83623,8 @@ components: description: On-chain transaction hash example: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c type: string - vout: - description: Output index + index: + description: Output index (vout) example: 0 type: integer type: object @@ -82739,20 +83635,20 @@ components: - vip utxoIdentifiers: - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + index: 0 txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + index: 0 txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + index: 0 txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + index: 0 txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 - txId: b70701f4-d7b1-4795-a8ee-b09cdb5b850e + index: 0 txHash: b34f0c3ce612f1e5a5c19d6b1e6b5e3e7f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c - vout: 0 labelsToDetach: - deprecated properties: @@ -83247,6 +84143,323 @@ components: - role - sessionId type: object + ReportStatus: + description: The current lifecycle state of a report job + enum: + - QUEUED + - PROCESSING + - COMPLETED + - FAILED + example: QUEUED + type: string + ReportType: + description: The type of report to generate + enum: + - ADDRESSES + example: ADDRESSES + type: string + ReportOutputFormat: + description: The output file format of the report + enum: + - CSV + example: CSV + type: string + ReportJob: + description: "A report job. Optional fields are status-dependent: `completedAt`,\ + \ `rowCount`, and `fileSizeBytes` are present only when `status` is `COMPLETED`;\ + \ `failedAt` is present only when `status` is `FAILED`." + properties: + id: + description: Unique identifier of the report job + example: 0190b3c2-7e4a-7c31-9f2a-1b6d8e5a0c11 + type: string + status: + $ref: "#/components/schemas/ReportStatus" + reportType: + $ref: "#/components/schemas/ReportType" + outputFormat: + $ref: "#/components/schemas/ReportOutputFormat" + compress: + description: Whether the output file is gzip-compressed + example: true + type: boolean + requestedByUserId: + description: ID of the user who requested the report + example: 44fcead0-7053-4831-a53a-df7fb90d440f + type: string + createdAt: + description: Epoch milliseconds (UTC) when the job was created + example: 1717190000000 + format: int64 + type: integer + completedAt: + description: Epoch milliseconds (UTC) when the report completed. Only present + when `status` is `COMPLETED`. + example: 1717191800000 + format: int64 + type: integer + failedAt: + description: Epoch milliseconds (UTC) when the report failed. Only present + when `status` is `FAILED`. + example: 1717191500000 + format: int64 + type: integer + rowCount: + description: Number of rows in the report file. Only present when `status` + is `COMPLETED`. + example: 42500 + type: integer + fileSizeBytes: + description: Size of the report file in bytes (includes compression when + `compress` is `true`). Only present when `status` is `COMPLETED`. + example: 1048576 + format: int64 + type: integer + required: + - compress + - createdAt + - id + - outputFormat + - reportType + - requestedByUserId + - status + type: object + ReportListResponse: + description: "Paginated list of report jobs. Download URLs are not included\ + \ in list items — call `GET /v1/reports/{reportId}` to retrieve the download\ + \ URL for a specific completed report." + example: + next: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 + data: [] + prev: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 + properties: + data: + description: Page of report jobs + example: [] + items: + $ref: "#/components/schemas/ReportJob" + type: array + next: + description: Opaque cursor for the next page. Null on the last page. + example: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 + nullable: true + type: string + prev: + description: Opaque cursor for the previous page. Null on the first page. + example: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9 + nullable: true + type: string + required: + - data + - next + - prev + type: object + AddressesFilters: + additionalProperties: false + description: Filter options for the `addresses` report type. + example: + assets: + - BTC + - ETH + vaultAccountIds: + - "1" + - "2" + properties: + vaultAccountIds: + description: Restrict to the listed vault account IDs. Max 1000 items. Pass + a single ID as a one-element array. + example: + - "1" + - "2" + items: + type: string + maxItems: 1000 + type: array + assets: + description: "Filter by asset symbol (e.g., BTC, ETH). Max 1000 items. Pass\ + \ a single symbol as a one-element array." + example: + - BTC + - ETH + items: + type: string + maxItems: 1000 + type: array + type: object + CreateAddressesReportRequest: + description: Request body for creating a new ADDRESSES report job + example: + reportType: ADDRESSES + compress: true + filters: + assets: + - BTC + - ETH + vaultAccountIds: + - "1" + - "2" + outputFormat: CSV + properties: + reportType: + description: The type of report to generate. + enum: + - ADDRESSES + example: ADDRESSES + type: string + outputFormat: + $ref: "#/components/schemas/ReportOutputFormat" + compress: + default: false + description: Gzip the output file. Defaults to true. + example: true + type: boolean + filters: + $ref: "#/components/schemas/AddressesFilters" + required: + - outputFormat + - reportType + type: object + CreateReportRequest: + $ref: "#/components/schemas/CreateAddressesReportRequest" + CreateReportResponse: + description: "Returned when a report job is successfully created. Use the `id`\ + \ to poll for status via `GET /v1/reports/{reportId}`." + example: + id: 0190b3c2-7e4a-7c31-9f2a-1b6d8e5a0c11 + properties: + id: + description: Unique identifier of the report job + example: 0190b3c2-7e4a-7c31-9f2a-1b6d8e5a0c11 + type: string + required: + - id + type: object + ReportConflictResponse: + description: Returned when a report with the same type and filters is already + being processed for your workspace + example: + name: REPORT_ALREADY_IN_FLIGHT + errorCode: 12005 + id: 0190b3c2-7e4a-7c31-9f2a-1b6d8e5a0c11 + properties: + errorCode: + description: Fireblocks error code for this conflict + example: 12005 + type: integer + name: + description: Error name + example: REPORT_ALREADY_IN_FLIGHT + type: string + id: + description: The ID of the report currently being processed. Use this ID + to poll for status. + example: 0190b3c2-7e4a-7c31-9f2a-1b6d8e5a0c11 + type: string + required: + - errorCode + - id + - name + type: object + ReportJobLinks: + description: "Download URL for the report. Present only when `status` is `COMPLETED`,\ + \ and only on `GET /v1/reports/{reportId}` — not included in list responses." + example: + downloadUrlExpiresAt: 1717200000000 + downloadUrl: https://s3.amazonaws.com/fireblocks-reports/report-0190b3c2.csv.gz?X-Amz-Expires=3600&... + properties: + downloadUrl: + description: "URL to download the report file. A new URL is generated on\ + \ each request to `GET /v1/reports/{reportId}` while `status` is `COMPLETED`.\ + \ Re-poll to obtain a fresh URL after the previous one expires (approximately\ + \ 1 hour)." + example: https://s3.amazonaws.com/fireblocks-reports/report-0190b3c2.csv.gz?X-Amz-Expires=3600&... + type: string + downloadUrlExpiresAt: + description: Epoch milliseconds (UTC) when the download URL expires + example: 1717200000000 + format: int64 + type: integer + required: + - downloadUrl + - downloadUrlExpiresAt + type: object + ReportJobResponse: + description: "A report job. Optional fields are status-dependent: `completedAt`,\ + \ `rowCount`, `fileSizeBytes`, and `links` are present only when `status`\ + \ is `COMPLETED`; `failedAt` is present only when `status` is `FAILED`." + example: + reportType: ADDRESSES + fileSizeBytes: 1048576 + createdAt: 1717190000000 + completedAt: 1717191800000 + failedAt: 1717191500000 + compress: true + requestedByUserId: 44fcead0-7053-4831-a53a-df7fb90d440f + links: + downloadUrlExpiresAt: 1717200000000 + downloadUrl: https://s3.amazonaws.com/fireblocks-reports/report-0190b3c2.csv.gz?X-Amz-Expires=3600&... + id: 0190b3c2-7e4a-7c31-9f2a-1b6d8e5a0c11 + rowCount: 42500 + outputFormat: CSV + status: QUEUED + properties: + id: + description: Unique identifier of the report job + example: 0190b3c2-7e4a-7c31-9f2a-1b6d8e5a0c11 + type: string + status: + $ref: "#/components/schemas/ReportStatus" + reportType: + $ref: "#/components/schemas/ReportType" + outputFormat: + $ref: "#/components/schemas/ReportOutputFormat" + compress: + description: Whether the output file is gzip-compressed + example: true + type: boolean + requestedByUserId: + description: ID of the user who requested the report + example: 44fcead0-7053-4831-a53a-df7fb90d440f + type: string + createdAt: + description: Epoch milliseconds (UTC) when the job was created + example: 1717190000000 + format: int64 + type: integer + completedAt: + description: Epoch milliseconds (UTC) when the report completed. Only present + when `status` is `COMPLETED`. + example: 1717191800000 + format: int64 + type: integer + failedAt: + description: Epoch milliseconds (UTC) when the report failed. Only present + when `status` is `FAILED`. + example: 1717191500000 + format: int64 + type: integer + rowCount: + description: Number of rows in the report file. Only present when `status` + is `COMPLETED`. + example: 42500 + type: integer + fileSizeBytes: + description: Size of the report file in bytes (includes compression when + `compress` is `true`). Only present when `status` is `COMPLETED`. + example: 1048576 + format: int64 + type: integer + links: + $ref: "#/components/schemas/ReportJobLinks" + required: + - compress + - createdAt + - id + - outputFormat + - reportType + - requestedByUserId + - status + type: object get_filter_parameter: properties: id: diff --git a/build.gradle b/build.gradle index f2786cf3..d43e483e 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'eclipse' apply plugin: 'com.diffplug.spotless' group = 'com.fireblocks.sdk' -version = '21.0.0' +version = '0.0.0' buildscript { repositories { diff --git a/docs/AddressRegistryLegalEntity.md b/docs/AddressRegistryLegalEntity.md index 7db67ac7..ae155535 100644 --- a/docs/AddressRegistryLegalEntity.md +++ b/docs/AddressRegistryLegalEntity.md @@ -8,10 +8,10 @@ Legal entity details for a blockchain address. | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**verified** | **Boolean** | Whether the entity was resolved from verified public registry data (e.g. LEI sources). | | +|**leiData** | **Boolean** | Indicates whether LEI (Legal Entity Identifier) data is available for this address from a verified public registry. A value of `false` means no LEI record was found. | | |**entityName** | **String** | Legal entity display name. | | |**jurisdiction** | **String** | Jurisdiction (e.g. ISO 3166-1 alpha-2 country code). | | -|**lei** | **String** | Legal Entity Identifier when available; may be empty when unverified. | | +|**lei** | **String** | Legal Entity Identifier when available. Empty when `leiData` is `false`. | | |**travelRuleProviders** | **List<AddressRegistryTravelRuleProvider>** | | | |**email** | **String** | Travel Rule contact email when available. | | diff --git a/docs/AddressesFilters.md b/docs/AddressesFilters.md new file mode 100644 index 00000000..102fbddf --- /dev/null +++ b/docs/AddressesFilters.md @@ -0,0 +1,15 @@ + + +# AddressesFilters + +Filter options for the `addresses` report type. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**vaultAccountIds** | **List<String>** | Restrict to the listed vault account IDs. Max 1000 items. Pass a single ID as a one-element array. | [optional] | +|**assets** | **List<String>** | Filter by asset symbol (e.g., BTC, ETH). Max 1000 items. Pass a single symbol as a one-element array. | [optional] | + + + diff --git a/docs/AllowlistEntryResponse.md b/docs/AllowlistEntryResponse.md new file mode 100644 index 00000000..49ab254d --- /dev/null +++ b/docs/AllowlistEntryResponse.md @@ -0,0 +1,15 @@ + + +# AllowlistEntryResponse + +Single allowlist entry envelope, paired with the account-level allowlist sync metadata. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**AllowlistEntry**](AllowlistEntry.md) | | | +|**metadata** | [**AllowlistMetadata**](AllowlistMetadata.md) | | [optional] | + + + diff --git a/docs/ApiUserApi.md b/docs/ApiUserApi.md index 4f5f48c9..0c93dbbb 100644 --- a/docs/ApiUserApi.md +++ b/docs/ApiUserApi.md @@ -6,6 +6,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ |------------- | ------------- | -------------| | [**createApiUser**](ApiUserApi.md#createApiUser) | **POST** /management/api_users | Create API Key | | [**getApiUsers**](ApiUserApi.md#getApiUsers) | **GET** /management/api_users | Get API Keys | +| [**issueApiUserPairingToken**](ApiUserApi.md#issueApiUserPairingToken) | **POST** /management/api_users/{userId}/pairing_token | Issue API user pairing token | @@ -178,3 +179,93 @@ No authorization required | **5XX** | Internal error. | * X-Request-ID -
| | **0** | Error Response | * X-Request-ID -
| + +## issueApiUserPairingToken + +> CompletableFuture> issueApiUserPairingToken issueApiUserPairingToken(userId, idempotencyKey) + +Issue API user pairing token + +Issues a device pairing token for the given user and returns the user's info along with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. Endpoint Permission: Owner, Admin, Non-Signing Admin. + +### 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.ApiUserApi; +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 userId = "userId_example"; // String | The ID of the api user + 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.apiUser().issueApiUserPairingToken(userId, 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 ApiUserApi#issueApiUserPairingToken"); + 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 ApiUserApi#issueApiUserPairingToken"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **userId** | **String**| The ID of the api user | | +| **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 | +|-------------|-------------|------------------| +| **201** | Pairing token issued | * X-Request-ID -
| +| **401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
| +| **403** | Lacking permissions. | * X-Request-ID -
| +| **404** | API user not found for the given userId. | * X-Request-ID -
| +| **409** | Conflict. The API user is not in PENDING_ACTIVATION status (e.g. already set up / enabled). | * X-Request-ID -
| +| **5XX** | Internal error. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + diff --git a/docs/ChapsPaymentInfo.md b/docs/ChapsPaymentInfo.md index a68a625e..45cd26ad 100644 --- a/docs/ChapsPaymentInfo.md +++ b/docs/ChapsPaymentInfo.md @@ -12,6 +12,9 @@ CHAPS payment information for UK pound sterling same-day transfers |**addressingSystem** | [**AddressingSystemEnum**](#AddressingSystemEnum) | The addressing system used for CHAPS transfers | | |**accountHolderGivenName** | **String** | The given name (first name) of the account holder | | |**accountHolderSurname** | **String** | The surname (last name) of the account holder | | +|**accountHolderCity** | **String** | The city where the account holder resides | [optional] | +|**accountHolderCountry** | **String** | The country where the account holder resides (ISO 3166-1 alpha-2 code) | [optional] | +|**accountHolderPostalCode** | **String** | The postal code of the account holder's address | [optional] | |**country** | **String** | The country for the transfer (ISO 3166-1 alpha-2 code) | | |**sortCode** | **String** | UK bank sort code (format XX-XX-XX) | | |**accountNumber** | **String** | UK bank account number | | diff --git a/docs/ComplianceApi.md b/docs/ComplianceApi.md index fbf139e6..0bdc3047 100644 --- a/docs/ComplianceApi.md +++ b/docs/ComplianceApi.md @@ -12,6 +12,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | [**deactivateArsConfig**](ComplianceApi.md#deactivateArsConfig) | **POST** /screening/ars/config/deactivate | Deactivate ARS (Address Registry Screening) | | [**deactivateByorkConfig**](ComplianceApi.md#deactivateByorkConfig) | **POST** /screening/byork/config/deactivate | Deactivate BYORK Light | | [**deleteCounterpartyGroup**](ComplianceApi.md#deleteCounterpartyGroup) | **DELETE** /counterparty_groups/{groupId} | Delete a counterparty group | +| [**deleteLegalEntity**](ComplianceApi.md#deleteLegalEntity) | **DELETE** /legal_entities/{legalEntityId} | Delete a legal entity | | [**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 | @@ -723,6 +724,90 @@ No authorization required | **0** | Error Response | * X-Request-ID -
| +## deleteLegalEntity + +> CompletableFuture> deleteLegalEntity deleteLegalEntity(legalEntityId) + +Delete a legal entity + +Delete a legal entity will change the status of a legal entity registration to REVOKED. Endpoint Permission: Admin, Non-Signing Admin. + +### 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); + + UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration to delete + try { + CompletableFuture> response = fireblocks.compliance().deleteLegalEntity(legalEntityId); + 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 ComplianceApi#deleteLegalEntity"); + 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#deleteLegalEntity"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **legalEntityId** | **UUID**| The unique ID of the legal entity registration to delete | | + +### 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** | Legal entity deleted successfully | * X-Request-ID -
| +| **400** | Legal entity registration is not in deletable status (PENDING or APPROVED) | * X-Request-ID -
| +| **404** | Legal entity registration not found | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## getAddressRegistryTenantParticipationStatus > CompletableFuture> getAddressRegistryTenantParticipationStatus getAddressRegistryTenantParticipationStatus() @@ -1382,7 +1467,7 @@ No authorization required Look up legal entity by blockchain address -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. +Returns legal entity information for the given blockchain address (LEI data availability, LEI identifier, Travel Rule providers, contact email, and related fields — see response schema). URL-encode `{address}` when required. ### Example diff --git a/docs/ConnectedAccountErrorResponse.md b/docs/ConnectedAccountErrorResponse.md index 8cfa54de..22ff585f 100644 --- a/docs/ConnectedAccountErrorResponse.md +++ b/docs/ConnectedAccountErrorResponse.md @@ -7,8 +7,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**errorMessage** | **String** | Error message describing what went wrong | | -|**errorCode** | **String** | Error code identifying the type of error | | +|**message** | **String** | Error message describing what went wrong. | | +|**code** | **Integer** | Numeric error code identifying the type of error. | | +|**errorMessage** | **String** | Error message describing what went wrong | [optional] | +|**errorCode** | **String** | Error code identifying the type of error | [optional] | diff --git a/docs/ConnectedAccountsBetaApi.md b/docs/ConnectedAccountsBetaApi.md index 179159f0..7b450bb3 100644 --- a/docs/ConnectedAccountsBetaApi.md +++ b/docs/ConnectedAccountsBetaApi.md @@ -4,6 +4,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | Method | HTTP request | Description | |------------- | ------------- | -------------| +| [**createConnectedAccount**](ConnectedAccountsBetaApi.md#createConnectedAccount) | **POST** /connected_accounts | Create a connected account | | [**disconnectConnectedAccount**](ConnectedAccountsBetaApi.md#disconnectConnectedAccount) | **DELETE** /connected_accounts/{accountId} | Disconnect connected account | | [**getConnectedAccount**](ConnectedAccountsBetaApi.md#getConnectedAccount) | **GET** /connected_accounts/{accountId} | Get connected account | | [**getConnectedAccountAllowlist**](ConnectedAccountsBetaApi.md#getConnectedAccountAllowlist) | **GET** /connected_accounts/{accountId}/allowlist | Get allowlist for connected account | @@ -17,6 +18,96 @@ All URIs are relative to https://developers.fireblocks.com/reference/ +## createConnectedAccount + +> CompletableFuture> createConnectedAccount createConnectedAccount(createConnectedAccountRequest, idempotencyKey) + +Create a connected account + +Creates a new connected account for the authenticated tenant. The `creds` field must be a Base64-encoded RSA-encrypted credential blob. Use `GET /exchange_accounts/credentials_public_key` to retrieve the public key for encryption. The `providerType` is derived server-side from the `providerId` — callers do not supply it. Endpoint Permission: Editor, Admin, Non-Signing Admin. **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.ConnectedAccountsBetaApi; +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); + + CreateConnectedAccountRequest createConnectedAccountRequest = new CreateConnectedAccountRequest(); // CreateConnectedAccountRequest | + 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.connectedAccountsBeta().createConnectedAccount(createConnectedAccountRequest, 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 ConnectedAccountsBetaApi#createConnectedAccount"); + 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 ConnectedAccountsBetaApi#createConnectedAccount"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **createConnectedAccountRequest** | [**CreateConnectedAccountRequest**](CreateConnectedAccountRequest.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 | +|-------------|-------------|------------------| +| **201** | Account created (or pending approval). | * X-Request-ID -
| +| **400** | Bad request — invalid field or provider constraints violated. | * X-Request-ID -
| +| **401** | Unauthorized. Missing / invalid JWT token, or insufficient role (Editor or higher required). | * X-Request-ID -
| +| **403** | Feature not enabled for this tenant. | * X-Request-ID -
| +| **404** | mainAccountId not found. | * X-Request-ID -
| +| **422** | Invalid credentials. | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + ## disconnectConnectedAccount > CompletableFuture> disconnectConnectedAccount disconnectConnectedAccount(accountId) @@ -188,7 +279,7 @@ No authorization required Get allowlist for connected account -Retrieves the address allowlist for a specified connected account. **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only. +Retrieves the address allowlist for a specified connected account. **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange/Binance accounts only. ### Example @@ -284,11 +375,11 @@ No authorization required ## getConnectedAccountAllowlistEntry -> CompletableFuture> getConnectedAccountAllowlistEntry getConnectedAccountAllowlistEntry(accountId, allowlistId) +> CompletableFuture> getConnectedAccountAllowlistEntry getConnectedAccountAllowlistEntry(accountId, allowlistId) Get a single allowlist entry for a connected account -Retrieves a single allowlist entry by its Fireblocks identifier for a specified connected account. **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only. +Retrieves a single allowlist entry by its Fireblocks identifier for a specified connected account. **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange/Binance accounts only. ### Example @@ -316,7 +407,7 @@ public class Example { String accountId = "accountId_example"; // String | The connected account identifier String allowlistId = "allowlistId_example"; // String | The Fireblocks allowlist entry identifier try { - CompletableFuture> response = fireblocks.connectedAccountsBeta().getConnectedAccountAllowlistEntry(accountId, allowlistId); + CompletableFuture> response = fireblocks.connectedAccountsBeta().getConnectedAccountAllowlistEntry(accountId, allowlistId); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); @@ -348,7 +439,7 @@ public class Example { ### Return type -CompletableFuture> +CompletableFuture> ### Authorization @@ -814,7 +905,7 @@ No authorization required Sync allowlist for connected account -Triggers an on-demand sync from the exchange, bypassing the cache and fetching live data immediately. **Rate limit:** 1 request per minute per connected account. **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange accounts only. +Triggers an on-demand sync from the exchange, bypassing the cache and fetching live data immediately. **Rate limit:** 1 request per minute per connected account. **Note:** This endpoint is currently in beta and might be subject to changes. Currently supports CoinbaseExchange/Binance accounts only. ### Example diff --git a/docs/CreateAddressesReportRequest.md b/docs/CreateAddressesReportRequest.md new file mode 100644 index 00000000..3848bfe6 --- /dev/null +++ b/docs/CreateAddressesReportRequest.md @@ -0,0 +1,25 @@ + + +# CreateAddressesReportRequest + +Request body for creating a new ADDRESSES report job + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**reportType** | [**ReportTypeEnum**](#ReportTypeEnum) | The type of report to generate. | | +|**outputFormat** | **ReportOutputFormat** | | | +|**compress** | **Boolean** | Gzip the output file. Defaults to true. | [optional] | +|**filters** | [**AddressesFilters**](AddressesFilters.md) | | [optional] | + + + +## Enum: ReportTypeEnum + +| Name | Value | +|---- | -----| +| ADDRESSES | "ADDRESSES" | + + + diff --git a/docs/CreateConnectedAccountRequest.md b/docs/CreateConnectedAccountRequest.md new file mode 100644 index 00000000..d1ea2acb --- /dev/null +++ b/docs/CreateConnectedAccountRequest.md @@ -0,0 +1,19 @@ + + +# CreateConnectedAccountRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**providerId** | **String** | Integration key identifying the provider (e.g. BINANCE, KINGDOM_BANK, GEMINI_NLV2). | | +|**displayName** | **String** | Human-readable account name. Required for non-NLV2 providers. | [optional] | +|**creds** | **byte[]** | Base64-encoded RSA-encrypted credential blob. Encrypt using the public key from GET /exchange_accounts/credentials_public_key. | | +|**apiKey** | **String** | Account-level API key. | | +|**mainAccountId** | **String** | Parent main account ID for sub-account creation. Not allowed for NLV2 providers. | [optional] | +|**accountId** | **String** | Optional provider-side account ID to associate with the created account. | [optional] | +|**onPremiseServerId** | **String** | On-premise server ID for self-hosted integrations. | [optional] | + + + diff --git a/docs/CreateConnectedAccountResponse.md b/docs/CreateConnectedAccountResponse.md new file mode 100644 index 00000000..cf8e7665 --- /dev/null +++ b/docs/CreateConnectedAccountResponse.md @@ -0,0 +1,13 @@ + + +# CreateConnectedAccountResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**accounts** | [**List<CreatedConnectedAccountItem>**](CreatedConnectedAccountItem.md) | Created accounts — main account first, sub-accounts after (NLV2 hierarchy). | | + + + diff --git a/docs/CreateMultipleVaultAccountsJobStatus.md b/docs/CreateMultipleVaultAccountsJobStatus.md index 10de9522..58160ad8 100644 --- a/docs/CreateMultipleVaultAccountsJobStatus.md +++ b/docs/CreateMultipleVaultAccountsJobStatus.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**status** | **String** | Status of the job. Possible values - Success, In Progress, Failed, Pending Approval, Cancelled | | -|**vaultAccounts** | **Map<String, Map<String, String>>** | Mapping between VaultAccountId to a mapping of asset to address | [optional] | +|**status** | **String** | Status of the job. Possible values - Success, In Progress, Error, Pending Approval, Canceled | | +|**vaultAccounts** | **Map<String, Map<String, String>>** | Mapping between VaultAccountId to a mapping of asset to address, and the vault account name | [optional] | |**tagIds** | **List<UUID>** | List of tag IDs successfully attached to each of the created vault accounts | [optional] | |**errorMessage** | **String** | | [optional] | |**approvalRequestId** | **String** | Approval request ID if the job has protected tags to attach to the vault accounts | [optional] | diff --git a/docs/CreateReportResponse.md b/docs/CreateReportResponse.md new file mode 100644 index 00000000..47c5f7e7 --- /dev/null +++ b/docs/CreateReportResponse.md @@ -0,0 +1,14 @@ + + +# CreateReportResponse + +Returned when a report job is successfully created. Use the `id` to poll for status via `GET /v1/reports/{reportId}`. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique identifier of the report job | | + + + diff --git a/docs/CreatedConnectedAccountItem.md b/docs/CreatedConnectedAccountItem.md new file mode 100644 index 00000000..ae60eb2b --- /dev/null +++ b/docs/CreatedConnectedAccountItem.md @@ -0,0 +1,16 @@ + + +# CreatedConnectedAccountItem + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**accountId** | **String** | ID of the created account. | | +|**name** | **String** | Human-readable account name. | | +|**parentAccountId** | **String** | Parent account ID — present only for sub-accounts in an NLV2 hierarchy. | [optional] | +|**status** | **ConnectedAccountApprovalStatus** | | | + + + diff --git a/docs/DestinationTransferPeerPathResponse.md b/docs/DestinationTransferPeerPathResponse.md index 34f5e756..4619ea40 100644 --- a/docs/DestinationTransferPeerPathResponse.md +++ b/docs/DestinationTransferPeerPathResponse.md @@ -14,6 +14,7 @@ Destination of the transaction. **Note:** In case the transaction is sent to mu |**name** | **String** | The name of the peer. | [optional] | |**walletId** | **UUID** | | [optional] | |**tradingAccount** | **String** | If this transaction is an exchange internal transfer, this field will be populated with the type of that trading account. | [optional] | +|**tags** | [**List<TransactionTag>**](TransactionTag.md) | Tags associated with the transaction's destination. | [optional] | diff --git a/docs/DraftResponse.md b/docs/DraftResponse.md index 23d5dc67..6679d864 100644 --- a/docs/DraftResponse.md +++ b/docs/DraftResponse.md @@ -11,7 +11,7 @@ Response object for draft operations |**status** | **String** | Operation status | | |**rules** | [**List<PolicyRule>**](PolicyRule.md) | Draft rules | | |**draftId** | **String** | Draft unique id | | -|**metadata** | [**PolicyMetadata**](PolicyMetadata.md) | | | +|**metadata** | [**Map<String, PolicyMetadataEntry>**](PolicyMetadataEntry.md) | Policy metadata keyed by policy type | | diff --git a/docs/Exposure.md b/docs/Exposure.md index 79703e9f..965aab37 100644 --- a/docs/Exposure.md +++ b/docs/Exposure.md @@ -2,14 +2,18 @@ # Exposure +Vault allocation exposure item (Morpho MetaMorpho allocation slice). ## 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] | +|**address** | **String** | Contract address of the exposure token on-chain. | | +|**amount** | **String** | Human-readable token amount (raw on-chain value scaled by 10^decimals). | | +|**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); only present when resolved via asset-service. | [optional] | +|**amountUsd** | **String** | USD notional value of the exposure amount. | [optional] | diff --git a/docs/GetActionResponse.md b/docs/GetActionResponse.md index 1b57bde7..18c2fc4b 100644 --- a/docs/GetActionResponse.md +++ b/docs/GetActionResponse.md @@ -9,6 +9,8 @@ Single lending action (intent plus per-step execution rows). | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**id** | **String** | Action sequence id (UUID). | | +|**vaultAccountId** | **String** | Fireblocks vault account that executed the action. | | +|**userId** | **String** | User who initiated the action. | | |**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. | | diff --git a/docs/IdentificationPolicyOverride.md b/docs/IdentificationPolicyOverride.md index 66d95b18..72be2376 100644 --- a/docs/IdentificationPolicyOverride.md +++ b/docs/IdentificationPolicyOverride.md @@ -11,7 +11,7 @@ Override scoped by one or more dimensions. More dimensions = higher priority. Eq |**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). | | +|**schema** | **String** | A JSON Schema (draft-07) in string format that validates the ParticipantsIdentification object on requests where the provider manifest declares a `participantsIdentificationPolicy` for that endpoint (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/IssueApiUserPairingTokenResponse.md b/docs/IssueApiUserPairingTokenResponse.md new file mode 100644 index 00000000..bafcfb1f --- /dev/null +++ b/docs/IssueApiUserPairingTokenResponse.md @@ -0,0 +1,19 @@ + + +# IssueApiUserPairingTokenResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | The unique identifier of the user | | +|**name** | **String** | The name of the user | [optional] | +|**role** | **UserRole** | | | +|**enabled** | **Boolean** | Whether the user is enabled | | +|**userType** | **UserType** | | [optional] | +|**status** | **UserStatus** | | [optional] | +|**pairingToken** | **String** | The device pairing token issued for the given user | | + + + diff --git a/docs/Manifest.md b/docs/Manifest.md index b4248ab3..769ea00c 100644 --- a/docs/Manifest.md +++ b/docs/Manifest.md @@ -11,7 +11,6 @@ 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/ManifestBase.md b/docs/ManifestBase.md index 1efaa4f4..cb94a3d2 100644 --- a/docs/ManifestBase.md +++ b/docs/ManifestBase.md @@ -9,6 +9,8 @@ Base manifest schema with common properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**supported** | **Boolean** | Indicates whether the endpoint is supported by the provider | | +|**participantsIdentificationPolicy** | [**ParticipantsIdentificationPolicy**](ParticipantsIdentificationPolicy.md) | | [optional] | +|**supportedParties** | **List<ParticipantRelationshipType>** | The participant party types the provider supports for this endpoint. | [optional] | diff --git a/docs/ManifestOrder.md b/docs/ManifestOrder.md index 4fd56c5d..498f43ba 100644 --- a/docs/ManifestOrder.md +++ b/docs/ManifestOrder.md @@ -8,8 +8,11 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**supported** | **Boolean** | Indicates whether the endpoint is supported by the provider | | +|**participantsIdentificationPolicy** | [**ParticipantsIdentificationPolicy**](ParticipantsIdentificationPolicy.md) | | [optional] | +|**supportedParties** | **List<ParticipantRelationshipType>** | The participant party types the provider supports for this endpoint. | [optional] | |**settlementTypes** | **List<SettlementTypeEnum>** | Supported settlement types when creating an order. If present - settlement is required. If absent - no need to provide settlement. | [optional] | |**executionTypes** | **List<ExecutionRequestDetailsType>** | Supported execution types when creating an order. | | +|**requiresReasonForPayment** | **Boolean** | Information about the source and purpose of the funds being transacted. Used by providers that require additional context for compliance and reporting. Provide this field when the provider manifest indicates it is required. | [optional] | diff --git a/docs/ManifestOrderInfo.md b/docs/ManifestOrderInfo.md index 003d8b63..65c96ce2 100644 --- a/docs/ManifestOrderInfo.md +++ b/docs/ManifestOrderInfo.md @@ -10,6 +10,7 @@ Defines requirements for the POST /orders endpoint. |------------ | ------------- | ------------- | -------------| |**settlementTypes** | **List<SettlementTypeEnum>** | Supported settlement types when creating an order. If present - settlement is required. If absent - no need to provide settlement. | [optional] | |**executionTypes** | **List<ExecutionRequestDetailsType>** | Supported execution types when creating an order. | | +|**requiresReasonForPayment** | **Boolean** | Information about the source and purpose of the funds being transacted. Used by providers that require additional context for compliance and reporting. Provide this field when the provider manifest indicates it is required. | [optional] | diff --git a/docs/ManifestQuote.md b/docs/ManifestQuote.md index 18306b0b..d92895a3 100644 --- a/docs/ManifestQuote.md +++ b/docs/ManifestQuote.md @@ -8,6 +8,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**supported** | **Boolean** | Indicates whether the endpoint is supported by the provider | | +|**participantsIdentificationPolicy** | [**ParticipantsIdentificationPolicy**](ParticipantsIdentificationPolicy.md) | | [optional] | +|**supportedParties** | **List<ParticipantRelationshipType>** | The participant party types the provider supports for this endpoint. | [optional] | |**settlementTypes** | **List<DVPSettlementType>** | Supported settlement types when requesting a quote. If present - settlement is required. If absent - no need to provide settlement. | [optional] | diff --git a/docs/Opportunity.md b/docs/Opportunity.md index 91bf3b96..23bf4bbf 100644 --- a/docs/Opportunity.md +++ b/docs/Opportunity.md @@ -21,7 +21,8 @@ |**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] | +|**exposureType** | [**ExposureTypeEnum**](#ExposureTypeEnum) | What the `exposure` rows represent; `UNSPECIFIED` when there is no exposure. | [optional] | +|**exposure** | [**List<Exposure>**](Exposure.md) | Per-asset exposure breakdown (vault allocation slices, top 20 by USD notional). Empty when not applicable. | [optional] | @@ -43,3 +44,13 @@ +## Enum: ExposureTypeEnum + +| Name | Value | +|---- | -----| +| UNSPECIFIED | "UNSPECIFIED" | +| VAULT_ALLOCATION | "VAULT_ALLOCATION" | +| MARKET_COLLATERAL | "MARKET_COLLATERAL" | + + + diff --git a/docs/ParticipantsIdentificationPolicy.md b/docs/ParticipantsIdentificationPolicy.md index affebffd..75f73c30 100644 --- a/docs/ParticipantsIdentificationPolicy.md +++ b/docs/ParticipantsIdentificationPolicy.md @@ -2,14 +2,13 @@ # 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) +When present on a provider manifest, specifies KYC/AML identification requirements as JSON Schemas. `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). | | +|**defaultSchema** | **String** | A JSON Schema (draft-07) in string format that validates the ParticipantsIdentification object on requests where the provider manifest declares a `participantsIdentificationPolicy` for that endpoint (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 deleted file mode 100644 index af275e01..00000000 --- a/docs/ParticipantsIdentificationSupportedEndpoint.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# ParticipantsIdentificationSupportedEndpoint - -## Enum - - -* `ORDER` (value: `"ORDER"`) - -* `QUOTE` (value: `"QUOTE"`) - -* `RATE` (value: `"RATE"`) - - - diff --git a/docs/PayidAddress.md b/docs/PayidAddress.md index 6197a436..d73192da 100644 --- a/docs/PayidAddress.md +++ b/docs/PayidAddress.md @@ -11,7 +11,7 @@ |**value** | **String** | The PayID identifier (email, phone, ABN, or organization ID) | | |**type** | [**TypeEnum**](#TypeEnum) | The type of PayID being used | | |**bsb** | **String** | Bank State Branch (BSB) number (6 digits, format XXX-XXX) | [optional] | -|**accountNumber** | **String** | Australian bank account number | | +|**accountNumber** | **String** | Australian bank account number | [optional] | diff --git a/docs/PayidPaymentInfo.md b/docs/PayidPaymentInfo.md index 78f9dfd2..25b82384 100644 --- a/docs/PayidPaymentInfo.md +++ b/docs/PayidPaymentInfo.md @@ -15,7 +15,7 @@ PayID payment information for Australian dollar transfers |**country** | **String** | The country for the transfer (ISO 3166-1 alpha-2 code) | | |**value** | **String** | The PayID identifier (email, phone, ABN, or organization ID) | | |**type** | [**TypeEnum**](#TypeEnum) | The type of PayID being used | | -|**bsb** | **String** | Bank State Branch (BSB) number (6 digits, format XXX-XXX) | [optional] | +|**bsb** | **String** | Bank State Branch (BSB) number (6 digits, format XXX-XXX) | | |**accountNumber** | **String** | Australian bank account number | | diff --git a/docs/PolicyEditorV2BetaApi.md b/docs/PolicyEditorV2Api.md similarity index 85% rename from docs/PolicyEditorV2BetaApi.md rename to docs/PolicyEditorV2Api.md index 52db0833..91b2d02f 100644 --- a/docs/PolicyEditorV2BetaApi.md +++ b/docs/PolicyEditorV2Api.md @@ -1,13 +1,13 @@ -# PolicyEditorV2BetaApi +# PolicyEditorV2Api All URIs are relative to https://developers.fireblocks.com/reference/ | Method | HTTP request | Description | |------------- | ------------- | -------------| -| [**getActivePolicy**](PolicyEditorV2BetaApi.md#getActivePolicy) | **GET** /policy/active_policy | Get the active policy and its validation by policy type | -| [**getDraft**](PolicyEditorV2BetaApi.md#getDraft) | **GET** /policy/draft | Get the active draft by policy type | -| [**publishDraft**](PolicyEditorV2BetaApi.md#publishDraft) | **POST** /policy/draft | Send publish request for a certain draft id | -| [**updateDraft**](PolicyEditorV2BetaApi.md#updateDraft) | **PUT** /policy/draft | Update the draft with a new set of rules by policy types | +| [**getActivePolicy**](PolicyEditorV2Api.md#getActivePolicy) | **GET** /policy/active_policy | Get the active policy and its validation by policy type | +| [**getDraft**](PolicyEditorV2Api.md#getDraft) | **GET** /policy/draft | Get the active draft by policy type | +| [**publishDraft**](PolicyEditorV2Api.md#publishDraft) | **POST** /policy/draft | Send publish request for a certain draft id | +| [**updateDraft**](PolicyEditorV2Api.md#updateDraft) | **PUT** /policy/draft | Update the draft with a new set of rules by policy types | @@ -17,7 +17,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/ Get the active policy and its validation by policy type -Returns the active policy and its validation for a specific policy type. **Note:** This endpoint is currently in beta and subject to change. If you want to participate in the Policies beta, contact your Fireblocks Customer Success Manager or send an email to csm@fireblocks.com. Endpoint Permissions: Owner, Admin, Non-Signing Admin. +Returns the active policy and its validation for a specific policy type. Endpoint Permissions: Owner, Admin, Non-Signing Admin. ### Example @@ -30,7 +30,7 @@ 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.PolicyEditorV2BetaApi; +import com.fireblocks.sdk.api.PolicyEditorV2Api; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -44,19 +44,19 @@ public class Example { PolicyType policyType = PolicyType.fromValue("TRANSFER"); // PolicyType | The policy type(s) to retrieve. Can be a single type or multiple types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT). try { - CompletableFuture> response = fireblocks.policyEditorV2Beta().getActivePolicy(policyType); + CompletableFuture> response = fireblocks.policyEditorV2().getActivePolicy(policyType); 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 PolicyEditorV2BetaApi#getActivePolicy"); + System.err.println("Exception when calling PolicyEditorV2Api#getActivePolicy"); 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 PolicyEditorV2BetaApi#getActivePolicy"); + System.err.println("Exception when calling PolicyEditorV2Api#getActivePolicy"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -100,7 +100,7 @@ No authorization required Get the active draft by policy type -Returns the active draft and its validation for a specific policy type. **Note:** These endpoints are currently in beta and might be subject to changes. +Returns the active draft and its validation for a specific policy type. ### Example @@ -113,7 +113,7 @@ 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.PolicyEditorV2BetaApi; +import com.fireblocks.sdk.api.PolicyEditorV2Api; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -127,19 +127,19 @@ public class Example { PolicyType policyType = PolicyType.fromValue("TRANSFER"); // PolicyType | The policy type(s) to retrieve. Can be a single type or multiple types by repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT). try { - CompletableFuture> response = fireblocks.policyEditorV2Beta().getDraft(policyType); + CompletableFuture> response = fireblocks.policyEditorV2().getDraft(policyType); 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 PolicyEditorV2BetaApi#getDraft"); + System.err.println("Exception when calling PolicyEditorV2Api#getDraft"); 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 PolicyEditorV2BetaApi#getDraft"); + System.err.println("Exception when calling PolicyEditorV2Api#getDraft"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -183,7 +183,7 @@ No authorization required Send publish request for a certain draft id -Send publish request of certain draft id and returns the response. **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Policy Editor, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. +Send publish request of certain draft id and returns the response. **⚠️ IMPORTANT SECURITY NOTICE:** The Fireblocks Policy is a critical security guardrail. Programmatically modifying your policy via the API introduces significant security risks. As an industry best practice, Fireblocks strongly recommends manual editing accompanied by strict human oversight and approval workflows for all policy changes. Programmatic updates should only be implemented by advanced users with comprehensive, multi-layer security controls in place. If you want to learn more about the Fireblocks Policy Editor, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. ### Example @@ -196,7 +196,7 @@ 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.PolicyEditorV2BetaApi; +import com.fireblocks.sdk.api.PolicyEditorV2Api; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -211,19 +211,19 @@ public class Example { PublishDraftRequest publishDraftRequest = new PublishDraftRequest(); // PublishDraftRequest | 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.policyEditorV2Beta().publishDraft(publishDraftRequest, idempotencyKey); + CompletableFuture> response = fireblocks.policyEditorV2().publishDraft(publishDraftRequest, 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 PolicyEditorV2BetaApi#publishDraft"); + System.err.println("Exception when calling PolicyEditorV2Api#publishDraft"); 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 PolicyEditorV2BetaApi#publishDraft"); + System.err.println("Exception when calling PolicyEditorV2Api#publishDraft"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); @@ -268,7 +268,7 @@ No authorization required Update the draft with a new set of rules by policy types -Update the draft and return its validation for specific policy types. **Note:** These endpoints are currently in beta and might be subject to changes. +Update the draft and return its validation for specific policy types. **⚠️ IMPORTANT SECURITY NOTICE:** The Fireblocks Policy is a critical security guardrail. Programmatically modifying your policy via the API introduces significant security risks. As an industry best practice, Fireblocks strongly recommends manual editing accompanied by strict human oversight and approval workflows for all policy changes. Programmatic updates should only be implemented by advanced users with comprehensive, multi-layer security controls in place. ### Example @@ -281,7 +281,7 @@ 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.PolicyEditorV2BetaApi; +import com.fireblocks.sdk.api.PolicyEditorV2Api; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -296,19 +296,19 @@ public class Example { UpdateDraftRequest updateDraftRequest = new UpdateDraftRequest(); // UpdateDraftRequest | 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.policyEditorV2Beta().updateDraft(updateDraftRequest, idempotencyKey); + CompletableFuture> response = fireblocks.policyEditorV2().updateDraft(updateDraftRequest, 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 PolicyEditorV2BetaApi#updateDraft"); + System.err.println("Exception when calling PolicyEditorV2Api#updateDraft"); 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 PolicyEditorV2BetaApi#updateDraft"); + System.err.println("Exception when calling PolicyEditorV2Api#updateDraft"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); diff --git a/docs/PolicyMetadata.md b/docs/PolicyMetadataEntry.md similarity index 87% rename from docs/PolicyMetadata.md rename to docs/PolicyMetadataEntry.md index ed1fb95a..2513a583 100644 --- a/docs/PolicyMetadata.md +++ b/docs/PolicyMetadataEntry.md @@ -1,8 +1,8 @@ -# PolicyMetadata +# PolicyMetadataEntry -Policy metadata +Policy metadata entry (per policy type) ## Properties @@ -12,7 +12,6 @@ Policy metadata |**editedAt** | **String** | The timestamp of the last edit of the policy | [optional] | |**publishedBy** | **String** | The user ID of the user who last published the policy | [optional] | |**publishedAt** | **String** | The timestamp of the last publish of the policy | [optional] | -|**policyType** | **PolicyType** | | | diff --git a/docs/PolicyResponse.md b/docs/PolicyResponse.md index 9fb014a7..03bfa3ab 100644 --- a/docs/PolicyResponse.md +++ b/docs/PolicyResponse.md @@ -9,7 +9,7 @@ Response object for policy operations | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**rules** | [**List<PolicyRule>**](PolicyRule.md) | A set of policy rules | | -|**metadata** | [**PolicyMetadata**](PolicyMetadata.md) | | | +|**metadata** | [**Map<String, PolicyMetadataEntry>**](PolicyMetadataEntry.md) | Policy metadata keyed by policy type | | diff --git a/docs/Position2.md b/docs/Position2.md index be47bf13..1316990a 100644 --- a/docs/Position2.md +++ b/docs/Position2.md @@ -7,23 +7,24 @@ | 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] | +|**id** | **String** | Position UUID. | | +|**status** | [**StatusEnum**](#StatusEnum) | Lifecycle status of the position. | | +|**inFlight** | **Boolean** | True while an action is in progress for this position. | | +|**positionType** | [**PositionTypeEnum**](#PositionTypeEnum) | Whether the position is lend- or borrow-side. | | +|**vaultAccountId** | **String** | Fireblocks vault account holding the position. | | +|**opportunityId** | **String** | Opportunity / vault or market identifier. | | +|**chainId** | **String** | Chain identifier as a string (e.g. \"1\"). | | +|**providerId** | [**ProviderIdEnum**](#ProviderIdEnum) | Lending protocol. | | +|**origin** | [**OriginEnum**](#OriginEnum) | Whether the position was opened natively in Fireblocks or imported externally. | | +|**principalAssetId** | **String** | Fireblocks asset id for the principal (underlying) asset. | | +|**positionAssetId** | **String** | Fireblocks asset id for the position / share token. | | +|**principalBalance** | **String** | Human-readable principal balance. | | +|**positionBalance** | **String** | Human-readable position token balance. | | +|**createdAt** | **String** | Creation time (ISO-8601). | | +|**updatedAt** | **String** | Last update time (ISO-8601). | | |**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] | +|**availableActions** | [**List<AvailableActionsEnum>**](#List<AvailableActionsEnum>) | Actions the API allows next for this position. | | +|**yield** | **String** | Accrued yield in principal token units (decimal string). Only present for Morpho positions. | [optional] | diff --git a/docs/PublishResult.md b/docs/PublishResult.md index 5e7b02a0..b50d4c94 100644 --- a/docs/PublishResult.md +++ b/docs/PublishResult.md @@ -11,7 +11,7 @@ Response object of the publish policy operation |**status** | **PolicyStatus** | | | |**rules** | [**List<PolicyRule>**](PolicyRule.md) | | | |**checkResult** | [**PolicyCheckResult**](PolicyCheckResult.md) | | | -|**metadata** | [**PolicyMetadata**](PolicyMetadata.md) | | | +|**metadata** | [**Map<String, PolicyMetadataEntry>**](PolicyMetadataEntry.md) | Policy metadata keyed by policy type | | diff --git a/docs/ReportConflictResponse.md b/docs/ReportConflictResponse.md new file mode 100644 index 00000000..f11c70bf --- /dev/null +++ b/docs/ReportConflictResponse.md @@ -0,0 +1,16 @@ + + +# ReportConflictResponse + +Returned when a report with the same type and filters is already being processed for your workspace + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errorCode** | **Integer** | Fireblocks error code for this conflict | | +|**name** | **String** | Error name | | +|**id** | **String** | The ID of the report currently being processed. Use this ID to poll for status. | | + + + diff --git a/docs/ReportJob.md b/docs/ReportJob.md new file mode 100644 index 00000000..f486316b --- /dev/null +++ b/docs/ReportJob.md @@ -0,0 +1,24 @@ + + +# ReportJob + +A report job. Optional fields are status-dependent: `completedAt`, `rowCount`, and `fileSizeBytes` are present only when `status` is `COMPLETED`; `failedAt` is present only when `status` is `FAILED`. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique identifier of the report job | | +|**status** | **ReportStatus** | | | +|**reportType** | **ReportType** | | | +|**outputFormat** | **ReportOutputFormat** | | | +|**compress** | **Boolean** | Whether the output file is gzip-compressed | | +|**requestedByUserId** | **String** | ID of the user who requested the report | | +|**createdAt** | **Long** | Epoch milliseconds (UTC) when the job was created | | +|**completedAt** | **Long** | Epoch milliseconds (UTC) when the report completed. Only present when `status` is `COMPLETED`. | [optional] | +|**failedAt** | **Long** | Epoch milliseconds (UTC) when the report failed. Only present when `status` is `FAILED`. | [optional] | +|**rowCount** | **Integer** | Number of rows in the report file. Only present when `status` is `COMPLETED`. | [optional] | +|**fileSizeBytes** | **Long** | Size of the report file in bytes (includes compression when `compress` is `true`). Only present when `status` is `COMPLETED`. | [optional] | + + + diff --git a/docs/ReportJobLinks.md b/docs/ReportJobLinks.md new file mode 100644 index 00000000..4ea47b7f --- /dev/null +++ b/docs/ReportJobLinks.md @@ -0,0 +1,15 @@ + + +# ReportJobLinks + +Download URL for the report. Present only when `status` is `COMPLETED`, and only on `GET /v1/reports/{reportId}` — not included in list responses. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**downloadUrl** | **String** | URL to download the report file. A new URL is generated on each request to `GET /v1/reports/{reportId}` while `status` is `COMPLETED`. Re-poll to obtain a fresh URL after the previous one expires (approximately 1 hour). | | +|**downloadUrlExpiresAt** | **Long** | Epoch milliseconds (UTC) when the download URL expires | | + + + diff --git a/docs/ReportJobResponse.md b/docs/ReportJobResponse.md new file mode 100644 index 00000000..5c4567bd --- /dev/null +++ b/docs/ReportJobResponse.md @@ -0,0 +1,25 @@ + + +# ReportJobResponse + +A report job. Optional fields are status-dependent: `completedAt`, `rowCount`, `fileSizeBytes`, and `links` are present only when `status` is `COMPLETED`; `failedAt` is present only when `status` is `FAILED`. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique identifier of the report job | | +|**status** | **ReportStatus** | | | +|**reportType** | **ReportType** | | | +|**outputFormat** | **ReportOutputFormat** | | | +|**compress** | **Boolean** | Whether the output file is gzip-compressed | | +|**requestedByUserId** | **String** | ID of the user who requested the report | | +|**createdAt** | **Long** | Epoch milliseconds (UTC) when the job was created | | +|**completedAt** | **Long** | Epoch milliseconds (UTC) when the report completed. Only present when `status` is `COMPLETED`. | [optional] | +|**failedAt** | **Long** | Epoch milliseconds (UTC) when the report failed. Only present when `status` is `FAILED`. | [optional] | +|**rowCount** | **Integer** | Number of rows in the report file. Only present when `status` is `COMPLETED`. | [optional] | +|**fileSizeBytes** | **Long** | Size of the report file in bytes (includes compression when `compress` is `true`). Only present when `status` is `COMPLETED`. | [optional] | +|**links** | [**ReportJobLinks**](ReportJobLinks.md) | | [optional] | + + + diff --git a/docs/ReportListResponse.md b/docs/ReportListResponse.md new file mode 100644 index 00000000..2c4ef773 --- /dev/null +++ b/docs/ReportListResponse.md @@ -0,0 +1,16 @@ + + +# ReportListResponse + +Paginated list of report jobs. Download URLs are not included in list items — call `GET /v1/reports/{reportId}` to retrieve the download URL for a specific completed report. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<ReportJob>**](ReportJob.md) | Page of report jobs | | +|**next** | **String** | Opaque cursor for the next page. Null on the last page. | | +|**prev** | **String** | Opaque cursor for the previous page. Null on the first page. | | + + + diff --git a/docs/ReportOutputFormat.md b/docs/ReportOutputFormat.md new file mode 100644 index 00000000..9cee5f3b --- /dev/null +++ b/docs/ReportOutputFormat.md @@ -0,0 +1,11 @@ + + +# ReportOutputFormat + +## Enum + + +* `CSV` (value: `"CSV"`) + + + diff --git a/docs/ReportStatus.md b/docs/ReportStatus.md new file mode 100644 index 00000000..521c33ef --- /dev/null +++ b/docs/ReportStatus.md @@ -0,0 +1,17 @@ + + +# ReportStatus + +## Enum + + +* `QUEUED` (value: `"QUEUED"`) + +* `PROCESSING` (value: `"PROCESSING"`) + +* `COMPLETED` (value: `"COMPLETED"`) + +* `FAILED` (value: `"FAILED"`) + + + diff --git a/docs/ReportType.md b/docs/ReportType.md new file mode 100644 index 00000000..b9a79390 --- /dev/null +++ b/docs/ReportType.md @@ -0,0 +1,11 @@ + + +# ReportType + +## Enum + + +* `ADDRESSES` (value: `"ADDRESSES"`) + + + diff --git a/docs/ReportsBetaApi.md b/docs/ReportsBetaApi.md new file mode 100644 index 00000000..d8d46dc5 --- /dev/null +++ b/docs/ReportsBetaApi.md @@ -0,0 +1,273 @@ +# ReportsBetaApi + +All URIs are relative to https://developers.fireblocks.com/reference/ + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createReport**](ReportsBetaApi.md#createReport) | **POST** /reports | Create a report | +| [**getReport**](ReportsBetaApi.md#getReport) | **GET** /reports/{reportId} | Get report status | +| [**listReports**](ReportsBetaApi.md#listReports) | **GET** /reports | List reports | + + + +## createReport + +> CompletableFuture> createReport createReport(body, idempotencyKey) + +Create a report + +Creates a new asynchronous report job and returns a receipt containing the report ID. Poll `GET /v1/reports/{reportId}` to check status. When `status` is `COMPLETED`, the poll response includes a fresh pre-signed download URL in `links.downloadUrl`. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Viewer and above. + +### 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.ReportsBetaApi; +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); + + CreateAddressesReportRequest body = new CreateAddressesReportRequest(); // CreateAddressesReportRequest | + 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.reportsBeta().createReport(body, 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 ReportsBetaApi#createReport"); + 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 ReportsBetaApi#createReport"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **body** | **CreateAddressesReportRequest**| | | +| **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 | +|-------------|-------------|------------------| +| **202** | Report job accepted and queued for processing | * X-Request-ID -
| +| **409** | A report with the same type and filters is already being processed | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## getReport + +> CompletableFuture> getReport getReport(reportId) + +Get report status + +Returns the current status of a report job. Check the `status` field to determine the outcome. When `status` is `COMPLETED`, the response includes a fresh pre-signed download URL in `links.downloadUrl` (TTL ~1 hour). Re-poll this endpoint to obtain a new URL after expiry. When `status` is `FAILED`, the `failedAt` timestamp indicates when the failure occurred. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Viewer and above. + +### 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.ReportsBetaApi; +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 reportId = "0190b3c2-7e4a-7c31-9f2a-1b6d8e5a0c11"; // String | The unique identifier of the report job + try { + CompletableFuture> response = fireblocks.reportsBeta().getReport(reportId); + 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 ReportsBetaApi#getReport"); + 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 ReportsBetaApi#getReport"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **reportId** | **String**| The unique identifier of the report 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** | Report job details | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + + +## listReports + +> CompletableFuture> listReports listReports(pageCursor, pageSize, sortBy, order, status, reportType) + +List reports + +Returns a paginated list of report jobs scoped to the calling tenant. **Note:** Download URLs are not included in list responses. Call `GET /v1/reports/{reportId}` to obtain a fresh signed download URL for a specific completed report. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Viewer and above. + +### 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.ReportsBetaApi; +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 | Opaque cursor returned from a previous list call + Integer pageSize = 20; // Integer | Maximum number of items per page + String sortBy = "createdAt"; // String | Field to sort by + String order = "ASC"; // String | Sort direction + List status = Arrays.asList(); // List | Filter by lifecycle status. Repeat the parameter to filter on multiple statuses (e.g., ?status=QUEUED&status=PROCESSING). + List reportType = Arrays.asList(); // List | Filter by report type. Repeat the parameter to filter on multiple types. + try { + CompletableFuture> response = fireblocks.reportsBeta().listReports(pageCursor, pageSize, sortBy, order, status, reportType); + 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 ReportsBetaApi#listReports"); + 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 ReportsBetaApi#listReports"); + 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**| Opaque cursor returned from a previous list call | [optional] | +| **pageSize** | **Integer**| Maximum number of items per page | [optional] [default to 20] | +| **sortBy** | **String**| Field to sort by | [optional] [default to createdAt] [enum: createdAt, completedAt] | +| **order** | **String**| Sort direction | [optional] [default to DESC] [enum: ASC, DESC] | +| **status** | [**List<ReportStatus>**](ReportStatus.md)| Filter by lifecycle status. Repeat the parameter to filter on multiple statuses (e.g., ?status=QUEUED&status=PROCESSING). | [optional] | +| **reportType** | [**List<ReportType>**](ReportType.md)| Filter by report type. Repeat the parameter to filter on multiple types. | [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** | Paginated list of report jobs | * X-Request-ID -
| +| **0** | Error Response | * X-Request-ID -
| + diff --git a/docs/SepaPaymentInfo.md b/docs/SepaPaymentInfo.md index 4a3d5f30..46e0d7ae 100644 --- a/docs/SepaPaymentInfo.md +++ b/docs/SepaPaymentInfo.md @@ -13,6 +13,8 @@ SEPA payment information for European Single Euro Payments Area transfers |**accountHolderGivenName** | **String** | The given name (first name) of the account holder | | |**accountHolderSurname** | **String** | The surname (last name) of the account holder | | |**accountHolderCountry** | **String** | The country where the account holder resides (ISO 3166-1 alpha-2 code) | [optional] | +|**accountHolderPostalCode** | **String** | The postal code of the account holder's address | [optional] | +|**accountHolderCity** | **String** | The city where the account holder resides | [optional] | |**accountHolderAddress** | **String** | The address of the account holder | [optional] | |**iban** | **String** | The International Bank Account Number (IBAN) | | |**country** | **String** | The country for the transfer (ISO 3166-1 alpha-2 code) | | diff --git a/docs/SolanaBlockchainData.md b/docs/SolanaBlockchainData.md index ae101fec..2e015af0 100644 --- a/docs/SolanaBlockchainData.md +++ b/docs/SolanaBlockchainData.md @@ -10,6 +10,7 @@ Additional fields per blockchain - can be empty or missing if not initialized or |------------ | ------------- | ------------- | -------------| |**stakeAccountAddress** | **String** | The stake account address matching the stakeAccountId. | | |**stakeAccountDerivationChangeValue** | **BigDecimal** | The value of the change level in the BIP32 path which was used to derive the stake account address. | | +|**rewardsBreakdown** | [**SolanaRewardsBreakdown**](SolanaRewardsBreakdown.md) | | [optional] | diff --git a/docs/SolanaRewardsBreakdown.md b/docs/SolanaRewardsBreakdown.md new file mode 100644 index 00000000..0290d6de --- /dev/null +++ b/docs/SolanaRewardsBreakdown.md @@ -0,0 +1,16 @@ + + +# SolanaRewardsBreakdown + +A breakdown of the staking rewards earned by the position. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**issuance** | **String** | The issuance reward amount earned by the position, measured in the staked asset unit. | | +|**mev** | **String** | The MEV reward amount earned by the position, measured in the staked asset unit. | | +|**lastRewardSyncedAt** | **OffsetDateTime** | The last time the rewards were synced (ISO Date). | | + + + diff --git a/docs/SourceOfFunds.md b/docs/SourceOfFunds.md index e487504e..2f17b54c 100644 --- a/docs/SourceOfFunds.md +++ b/docs/SourceOfFunds.md @@ -2,7 +2,7 @@ # SourceOfFunds -Information about the source and purpose of the funds being transacted. Used by providers that require additional context for compliance and reporting (e.g. CPN cross-border payments). +Information about the source and purpose of the funds being transacted. Used by providers that require additional context for compliance and reporting. Provide this field when the provider manifest indicates it is required. ## Properties diff --git a/docs/SourceTransferPeerPathResponse.md b/docs/SourceTransferPeerPathResponse.md index f1d4ea45..a1711ee7 100644 --- a/docs/SourceTransferPeerPathResponse.md +++ b/docs/SourceTransferPeerPathResponse.md @@ -14,6 +14,7 @@ Source of the transaction. |**name** | **String** | The name of the peer. | [optional] | |**walletId** | **UUID** | | [optional] | |**tradingAccount** | **String** | If this transaction is an exchange internal transfer, this field will be populated with the type of that trading account. | [optional] | +|**tags** | [**List<TransactionTag>**](TransactionTag.md) | Tags associated with the transaction's source. | [optional] | diff --git a/docs/TagsApi.md b/docs/TagsApi.md index c2b9b70e..837e5e99 100644 --- a/docs/TagsApi.md +++ b/docs/TagsApi.md @@ -4,7 +4,6 @@ All URIs are relative to https://developers.fireblocks.com/reference/ | Method | HTTP request | Description | |------------- | ------------- | -------------| -| [**cancelApprovalRequest**](TagsApi.md#cancelApprovalRequest) | **POST** /tags/approval_requests/{id}/cancel | Cancel an approval request by id | | [**createTag**](TagsApi.md#createTag) | **POST** /tags | Create a new tag | | [**deleteTag**](TagsApi.md#deleteTag) | **DELETE** /tags/{tagId} | Delete a tag | | [**getApprovalRequest**](TagsApi.md#getApprovalRequest) | **GET** /tags/approval_requests/{id} | Get an approval request by id | @@ -14,93 +13,6 @@ All URIs are relative to https://developers.fireblocks.com/reference/ -## cancelApprovalRequest - -> CompletableFuture> cancelApprovalRequest cancelApprovalRequest(id, idempotencyKey) - -Cancel an approval request by id - -Cancel an approval request by id. Can only cancel requests in PENDING status. Returns 202 Accepted when the cancellation is processed. - -### 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.TagsApi; -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 = "12345"; // String | - 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.tags().cancelApprovalRequest(id, 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 TagsApi#cancelApprovalRequest"); - 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 TagsApi#cancelApprovalRequest"); - 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**| | | -| **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 | -|-------------|-------------|------------------| -| **202** | Approval request cancellation processed | * X-Request-ID -
| -| **401** | Unauthorized | * X-Request-ID -
| -| **404** | Approval request not found | * X-Request-ID -
| -| **409** | Invalid approval request state - cannot cancel request that is not in PENDING status | * X-Request-ID -
| -| **0** | Error Response | * X-Request-ID -
| - - ## createTag > CompletableFuture> createTag createTag(createTagRequest, idempotencyKey) diff --git a/docs/TransactionTag.md b/docs/TransactionTag.md new file mode 100644 index 00000000..1d551d71 --- /dev/null +++ b/docs/TransactionTag.md @@ -0,0 +1,14 @@ + + +# TransactionTag + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | The unique identifier of the tag | | +|**label** | **String** | The tag label | | + + + diff --git a/docs/UtxoIdentifier.md b/docs/UtxoIdentifier.md index 0348b1d3..a96f55de 100644 --- a/docs/UtxoIdentifier.md +++ b/docs/UtxoIdentifier.md @@ -2,7 +2,7 @@ # 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. +Identifies a UTXO by either a Fireblocks transaction ID (targets all outputs of that transaction) or a specific on-chain UTXO (txHash + index). Exactly one of these two forms must be provided. ## Properties @@ -10,7 +10,7 @@ Identifies a UTXO by either a Fireblocks transaction ID (targets all outputs of |------------ | ------------- | ------------- | -------------| |**txId** | **String** | Fireblocks transaction ID | [optional] | |**txHash** | **String** | On-chain transaction hash | [optional] | -|**vout** | **Integer** | Output index | [optional] | +|**index** | **Integer** | Output index (vout) | [optional] | diff --git a/docs/UtxoInput.md b/docs/UtxoInput.md index 52e11066..df0f6f97 100644 --- a/docs/UtxoInput.md +++ b/docs/UtxoInput.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**txHash** | **String** | | | -|**vout** | **Integer** | | | +|**index** | **Integer** | The output index (vout) | | diff --git a/docs/UtxoInputSelection.md b/docs/UtxoInputSelection.md index d93c6832..ce9357b6 100644 --- a/docs/UtxoInputSelection.md +++ b/docs/UtxoInputSelection.md @@ -8,7 +8,7 @@ Explicitly control which UTXOs to include or exclude. This feature is currently | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**inputsToSpend** | [**List<UtxoInput>**](UtxoInput.md) | Force-include specific UTXOs by txHash and vout. | [optional] | +|**inputsToSpend** | [**List<UtxoInput>**](UtxoInput.md) | Force-include specific UTXOs by txHash and index. | [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/pom.xml b/pom.xml index 61b31950..5c58d835 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ fireblocks-sdk jar fireblocks-sdk - 21.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 7a31cb1d..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 = "21.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 cdd91d71..da6fd37a 100644 --- a/src/main/java/com/fireblocks/sdk/Fireblocks.java +++ b/src/main/java/com/fireblocks/sdk/Fireblocks.java @@ -65,7 +65,8 @@ public class Fireblocks { private OtaBetaApi otaBeta; private PaymentsPayoutApi paymentsPayout; private PolicyEditorBetaApi policyEditorBeta; - private PolicyEditorV2BetaApi policyEditorV2Beta; + private PolicyEditorV2Api policyEditorV2; + private ReportsBetaApi reportsBeta; private ResetDeviceApi resetDevice; private SmartTransferApi smartTransfer; private StakingApi staking; @@ -427,11 +428,18 @@ public PolicyEditorBetaApi policyEditorBeta() { return policyEditorBeta; } - public PolicyEditorV2BetaApi policyEditorV2Beta() { - if (policyEditorV2Beta == null) { - policyEditorV2Beta = new PolicyEditorV2BetaApi(apiClient); + public PolicyEditorV2Api policyEditorV2() { + if (policyEditorV2 == null) { + policyEditorV2 = new PolicyEditorV2Api(apiClient); } - return policyEditorV2Beta; + return policyEditorV2; + } + + public ReportsBetaApi reportsBeta() { + if (reportsBeta == null) { + reportsBeta = new ReportsBetaApi(apiClient); + } + return reportsBeta; } public ResetDeviceApi resetDevice() { diff --git a/src/main/java/com/fireblocks/sdk/api/ApiUserApi.java b/src/main/java/com/fireblocks/sdk/api/ApiUserApi.java index 99fba0aa..64e798a9 100644 --- a/src/main/java/com/fireblocks/sdk/api/ApiUserApi.java +++ b/src/main/java/com/fireblocks/sdk/api/ApiUserApi.java @@ -18,8 +18,10 @@ import com.fireblocks.sdk.ApiClient; import com.fireblocks.sdk.ApiException; import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.ValidationUtils; import com.fireblocks.sdk.model.CreateAPIUser; import com.fireblocks.sdk.model.GetAPIUsersResponse; +import com.fireblocks.sdk.model.IssueApiUserPairingTokenResponse; import java.io.IOException; import java.io.InputStream; import java.net.URI; @@ -201,4 +203,82 @@ private HttpRequest.Builder getApiUsersRequestBuilder() throws ApiException { } return localVarRequestBuilder; } + /** + * Issue API user pairing token Issues a device pairing token for the given user and returns the + * user's info along with the token. - The API user must be in PENDING_ACTIVATION status. If + * the user is already set up (enabled), the request is rejected with a 409 Conflict. - Please + * note that this endpoint is available only for API keys with Owner/Admin/Non Signing Admin + * permissions. Endpoint Permission: Owner, Admin, Non-Signing Admin. + * + * @param userId The ID of the api user (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<IssueApiUserPairingTokenResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> + issueApiUserPairingToken(String userId, String idempotencyKey) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + issueApiUserPairingTokenRequestBuilder(userId, 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( + "issueApiUserPairingToken", 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< + IssueApiUserPairingTokenResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder issueApiUserPairingTokenRequestBuilder( + String userId, String idempotencyKey) throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty("issueApiUserPairingToken", "userId", userId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/management/api_users/{userId}/pairing_token" + .replace("{userId}", ApiClient.urlEncode(userId.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; + } } diff --git a/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java index 8e40c2e5..15da6909 100644 --- a/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java +++ b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java @@ -731,6 +731,65 @@ private HttpRequest.Builder deleteCounterpartyGroupRequestBuilder(UUID groupId) } return localVarRequestBuilder; } + /** + * Delete a legal entity Delete a legal entity will change the status of a legal entity + * registration to REVOKED. Endpoint Permission: Admin, Non-Signing Admin. + * + * @param legalEntityId The unique ID of the legal entity registration to delete (required) + * @return CompletableFuture<ApiResponse<Void>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> deleteLegalEntity(UUID legalEntityId) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + deleteLegalEntityRequestBuilder(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("deleteLegalEntity", localVarResponse)); + } + return CompletableFuture.completedFuture( + new ApiResponse( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + null)); + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder deleteLegalEntityRequestBuilder(UUID legalEntityId) + throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty( + "deleteLegalEntity", "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("DELETE", 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. @@ -1284,8 +1343,9 @@ private HttpRequest.Builder getLegalEntityRequestBuilder(UUID legalEntityId) } /** * Look up legal entity by blockchain address 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. + * blockchain address (LEI data availability, LEI identifier, 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>> diff --git a/src/main/java/com/fireblocks/sdk/api/ConnectedAccountsBetaApi.java b/src/main/java/com/fireblocks/sdk/api/ConnectedAccountsBetaApi.java index c50010ab..89113481 100644 --- a/src/main/java/com/fireblocks/sdk/api/ConnectedAccountsBetaApi.java +++ b/src/main/java/com/fireblocks/sdk/api/ConnectedAccountsBetaApi.java @@ -20,7 +20,7 @@ import com.fireblocks.sdk.ApiResponse; import com.fireblocks.sdk.Pair; import com.fireblocks.sdk.ValidationUtils; -import com.fireblocks.sdk.model.AllowlistEntry; +import com.fireblocks.sdk.model.AllowlistEntryResponse; import com.fireblocks.sdk.model.AllowlistEntryStatus; import com.fireblocks.sdk.model.AllowlistResponse; import com.fireblocks.sdk.model.ConnectedAccountBalancesResponse; @@ -28,6 +28,8 @@ import com.fireblocks.sdk.model.ConnectedAccountTradingPairsResponse; import com.fireblocks.sdk.model.ConnectedAccountsResponse; import com.fireblocks.sdk.model.ConnectedSingleAccountResponse; +import com.fireblocks.sdk.model.CreateConnectedAccountRequest; +import com.fireblocks.sdk.model.CreateConnectedAccountResponse; import com.fireblocks.sdk.model.RenameConnectedAccountRequest; import com.fireblocks.sdk.model.RenameConnectedAccountResponse; import java.io.IOException; @@ -83,6 +85,97 @@ private String formatExceptionMessage(String operationId, int statusCode, String return operationId + " call failed with: " + statusCode + " - " + body; } + /** + * Create a connected account Creates a new connected account for the authenticated tenant. The + * `creds` field must be a Base64-encoded RSA-encrypted credential blob. Use `GET + * /exchange_accounts/credentials_public_key` to retrieve the public key for encryption. + * The `providerType` is derived server-side from the `providerId` — callers + * do not supply it. Endpoint Permission: Editor, Admin, Non-Signing Admin. **Note:** This + * endpoint is currently in beta and might be subject to changes. + * + * @param createConnectedAccountRequest (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<CreateConnectedAccountResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> createConnectedAccount( + CreateConnectedAccountRequest createConnectedAccountRequest, String idempotencyKey) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + createConnectedAccountRequestBuilder( + createConnectedAccountRequest, 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( + "createConnectedAccount", 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< + CreateConnectedAccountResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder createConnectedAccountRequestBuilder( + CreateConnectedAccountRequest createConnectedAccountRequest, String idempotencyKey) + throws ApiException { + ValidationUtils.assertParamExists( + "createConnectedAccount", + "createConnectedAccountRequest", + createConnectedAccountRequest); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/connected_accounts"; + + 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(createConnectedAccountRequest); + 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; + } /** * Disconnect connected account Disconnect a connected account by ID. **Note**: - This endpoint * is currently in beta and might be subject to changes. @@ -216,7 +309,7 @@ private HttpRequest.Builder getConnectedAccountRequestBuilder(String accountId) /** * Get allowlist for connected account Retrieves the address allowlist for a specified connected * account. **Note:** This endpoint is currently in beta and might be subject to changes. - * Currently supports CoinbaseExchange accounts only. + * Currently supports CoinbaseExchange/Binance accounts only. * * @param accountId The connected account identifier (required) * @param status Filter by allowlist entry status (optional) @@ -357,15 +450,15 @@ private HttpRequest.Builder getConnectedAccountAllowlistRequestBuilder( /** * Get a single allowlist entry for a connected account Retrieves a single allowlist entry by * its Fireblocks identifier for a specified connected account. **Note:** This endpoint is - * currently in beta and might be subject to changes. Currently supports CoinbaseExchange - * accounts only. + * currently in beta and might be subject to changes. Currently supports + * CoinbaseExchange/Binance accounts only. * * @param accountId The connected account identifier (required) * @param allowlistId The Fireblocks allowlist entry identifier (required) - * @return CompletableFuture<ApiResponse<AllowlistEntry>> + * @return CompletableFuture<ApiResponse<AllowlistEntryResponse>> * @throws ApiException if fails to make API call */ - public CompletableFuture> getConnectedAccountAllowlistEntry( + public CompletableFuture> getConnectedAccountAllowlistEntry( String accountId, String allowlistId) throws ApiException { try { HttpRequest.Builder localVarRequestBuilder = @@ -386,7 +479,7 @@ public CompletableFuture> getConnectedAccountAllowli try { String responseBody = localVarResponse.body(); return CompletableFuture.completedFuture( - new ApiResponse( + new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), responseBody == null || responseBody.isBlank() @@ -394,7 +487,7 @@ public CompletableFuture> getConnectedAccountAllowli : memberVarObjectMapper.readValue( responseBody, new TypeReference< - AllowlistEntry>() {}))); + AllowlistEntryResponse>() {}))); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); } @@ -902,7 +995,7 @@ private HttpRequest.Builder renameConnectedAccountRequestBuilder( * Sync allowlist for connected account Triggers an on-demand sync from the exchange, bypassing * the cache and fetching live data immediately. **Rate limit:** 1 request per minute per * connected account. **Note:** This endpoint is currently in beta and might be subject to - * changes. Currently supports CoinbaseExchange accounts only. + * changes. Currently supports CoinbaseExchange/Binance accounts only. * * @param accountId The connected account identifier (required) * @param idempotencyKey A unique identifier for the request. If the request is sent multiple diff --git a/src/main/java/com/fireblocks/sdk/api/PolicyEditorV2BetaApi.java b/src/main/java/com/fireblocks/sdk/api/PolicyEditorV2Api.java similarity index 93% rename from src/main/java/com/fireblocks/sdk/api/PolicyEditorV2BetaApi.java rename to src/main/java/com/fireblocks/sdk/api/PolicyEditorV2Api.java index 09cc50c7..34471d37 100644 --- a/src/main/java/com/fireblocks/sdk/api/PolicyEditorV2BetaApi.java +++ b/src/main/java/com/fireblocks/sdk/api/PolicyEditorV2Api.java @@ -42,7 +42,7 @@ @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class PolicyEditorV2BetaApi { +public class PolicyEditorV2Api { private final HttpClient memberVarHttpClient; private final ObjectMapper memberVarObjectMapper; private final String memberVarBaseUri; @@ -51,11 +51,11 @@ public class PolicyEditorV2BetaApi { private final Consumer> memberVarResponseInterceptor; private final Consumer> memberVarAsyncResponseInterceptor; - public PolicyEditorV2BetaApi() { + public PolicyEditorV2Api() { this(new ApiClient()); } - public PolicyEditorV2BetaApi(ApiClient apiClient) { + public PolicyEditorV2Api(ApiClient apiClient) { memberVarHttpClient = apiClient.getHttpClient(); memberVarObjectMapper = apiClient.getObjectMapper(); memberVarBaseUri = apiClient.getBaseUri(); @@ -81,10 +81,7 @@ private String formatExceptionMessage(String operationId, int statusCode, String /** * Get the active policy and its validation by policy type Returns the active policy and its - * validation for a specific policy type. **Note:** This endpoint is currently in beta and - * subject to change. If you want to participate in the Policies beta, contact your Fireblocks - * Customer Success Manager or send an email to csm@fireblocks.com. Endpoint Permissions: Owner, - * Admin, Non-Signing Admin. + * validation for a specific policy type. Endpoint Permissions: Owner, Admin, Non-Signing Admin. * * @param policyType The policy type(s) to retrieve. Can be a single type or multiple types by * repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT). @@ -167,8 +164,7 @@ private HttpRequest.Builder getActivePolicyRequestBuilder(PolicyType policyType) } /** * Get the active draft by policy type Returns the active draft and its validation for a - * specific policy type. **Note:** These endpoints are currently in beta and might be subject to - * changes. + * specific policy type. * * @param policyType The policy type(s) to retrieve. Can be a single type or multiple types by * repeating the parameter (e.g., ?policyType=TRANSFER&policyType=MINT). @@ -250,9 +246,14 @@ private HttpRequest.Builder getDraftRequestBuilder(PolicyType policyType) throws } /** * Send publish request for a certain draft id Send publish request of certain draft id and - * returns the response. **Note:** These endpoints are currently in beta and might be subject to - * changes. If you want to participate and learn more about the Fireblocks Policy Editor, please - * contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. + * returns the response. **⚠️ IMPORTANT SECURITY NOTICE:** The Fireblocks Policy is a critical + * security guardrail. Programmatically modifying your policy via the API introduces significant + * security risks. As an industry best practice, Fireblocks strongly recommends manual editing + * accompanied by strict human oversight and approval workflows for all policy changes. + * Programmatic updates should only be implemented by advanced users with comprehensive, + * multi-layer security controls in place. If you want to learn more about the Fireblocks Policy + * Editor, please contact your Fireblocks Customer Success Manager or send an email to + * CSM@fireblocks.com. * * @param publishDraftRequest (required) * @param idempotencyKey A unique identifier for the request. If the request is sent multiple @@ -332,8 +333,12 @@ private HttpRequest.Builder publishDraftRequestBuilder( } /** * Update the draft with a new set of rules by policy types Update the draft and return its - * validation for specific policy types. **Note:** These endpoints are currently in beta and - * might be subject to changes. + * validation for specific policy types. **⚠️ IMPORTANT SECURITY NOTICE:** The Fireblocks Policy + * is a critical security guardrail. Programmatically modifying your policy via the API + * introduces significant security risks. As an industry best practice, Fireblocks strongly + * recommends manual editing accompanied by strict human oversight and approval workflows for + * all policy changes. Programmatic updates should only be implemented by advanced users with + * comprehensive, multi-layer security controls in place. * * @param updateDraftRequest (required) * @param idempotencyKey A unique identifier for the request. If the request is sent multiple diff --git a/src/main/java/com/fireblocks/sdk/api/ReportsBetaApi.java b/src/main/java/com/fireblocks/sdk/api/ReportsBetaApi.java new file mode 100644 index 00000000..072168b7 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/api/ReportsBetaApi.java @@ -0,0 +1,349 @@ +/* + * 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.CreateAddressesReportRequest; +import com.fireblocks.sdk.model.CreateReportResponse; +import com.fireblocks.sdk.model.ReportJobResponse; +import com.fireblocks.sdk.model.ReportListResponse; +import com.fireblocks.sdk.model.ReportStatus; +import com.fireblocks.sdk.model.ReportType; +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 ReportsBetaApi { + 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 ReportsBetaApi() { + this(new ApiClient()); + } + + public ReportsBetaApi(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; + } + + /** + * Create a report Creates a new asynchronous report job and returns a receipt containing the + * report ID. Poll `GET /v1/reports/{reportId}` to check status. When + * `status` is `COMPLETED`, the poll response includes a fresh pre-signed + * download URL in `links.downloadUrl`. **Note:** These endpoints are currently in + * beta and might be subject to changes. Endpoint Permission: Viewer and above. + * + * @param body (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<CreateReportResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> createReport( + CreateAddressesReportRequest body, String idempotencyKey) throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + createReportRequestBuilder(body, 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("createReport", 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< + CreateReportResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder createReportRequestBuilder( + CreateAddressesReportRequest body, String idempotencyKey) throws ApiException { + ValidationUtils.assertParamExists("createReport", "body", body); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/reports"; + + 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(body); + 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 report status Returns the current status of a report job. Check the `status` + * field to determine the outcome. When `status` is `COMPLETED`, the + * response includes a fresh pre-signed download URL in `links.downloadUrl` (TTL ~1 + * hour). Re-poll this endpoint to obtain a new URL after expiry. When `status` is + * `FAILED`, the `failedAt` timestamp indicates when the failure occurred. + * **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint + * Permission: Viewer and above. + * + * @param reportId The unique identifier of the report job (required) + * @return CompletableFuture<ApiResponse<ReportJobResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> getReport(String reportId) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = getReportRequestBuilder(reportId); + 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("getReport", 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< + ReportJobResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder getReportRequestBuilder(String reportId) throws ApiException { + ValidationUtils.assertParamExistsAndNotEmpty("getReport", "reportId", reportId); + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = + "/reports/{reportId}" + .replace("{reportId}", ApiClient.urlEncode(reportId.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 reports Returns a paginated list of report jobs scoped to the calling tenant. **Note:** + * Download URLs are not included in list responses. Call `GET /v1/reports/{reportId}` + * to obtain a fresh signed download URL for a specific completed report. **Note:** These + * endpoints are currently in beta and might be subject to changes. Endpoint Permission: Viewer + * and above. + * + * @param pageCursor Opaque cursor returned from a previous list call (optional) + * @param pageSize Maximum number of items per page (optional, default to 20) + * @param sortBy Field to sort by (optional, default to createdAt) + * @param order Sort direction (optional, default to DESC) + * @param status Filter by lifecycle status. Repeat the parameter to filter on multiple statuses + * (e.g., ?status=QUEUED&status=PROCESSING). (optional + * @param reportType Filter by report type. Repeat the parameter to filter on multiple types. + * (optional + * @return CompletableFuture<ApiResponse<ReportListResponse>> + * @throws ApiException if fails to make API call + */ + public CompletableFuture> listReports( + String pageCursor, + Integer pageSize, + String sortBy, + String order, + List status, + List reportType) + throws ApiException { + try { + HttpRequest.Builder localVarRequestBuilder = + listReportsRequestBuilder( + pageCursor, pageSize, sortBy, order, status, reportType); + 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("listReports", 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< + ReportListResponse>() {}))); + } catch (IOException e) { + return CompletableFuture.failedFuture(new ApiException(e)); + } + }); + } catch (ApiException e) { + return CompletableFuture.failedFuture(e); + } + } + + private HttpRequest.Builder listReportsRequestBuilder( + String pageCursor, + Integer pageSize, + String sortBy, + String order, + List status, + List reportType) + throws ApiException { + + HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); + + String localVarPath = "/reports"; + + 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)); + localVarQueryParameterBaseName = "status"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("multi", "status", status)); + localVarQueryParameterBaseName = "reportType"; + localVarQueryParams.addAll(ApiClient.parameterToPairs("multi", "reportType", reportType)); + + 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/TagsApi.java b/src/main/java/com/fireblocks/sdk/api/TagsApi.java index 85cd2570..cae7509f 100644 --- a/src/main/java/com/fireblocks/sdk/api/TagsApi.java +++ b/src/main/java/com/fireblocks/sdk/api/TagsApi.java @@ -81,71 +81,6 @@ private String formatExceptionMessage(String operationId, int statusCode, String return operationId + " call failed with: " + statusCode + " - " + body; } - /** - * Cancel an approval request by id Cancel an approval request by id. Can only cancel requests - * in PENDING status. Returns 202 Accepted when the cancellation is processed. - * - * @param id (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> cancelApprovalRequest( - String id, String idempotencyKey) throws ApiException { - try { - HttpRequest.Builder localVarRequestBuilder = - cancelApprovalRequestRequestBuilder(id, 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( - "cancelApprovalRequest", localVarResponse)); - } - return CompletableFuture.completedFuture( - new ApiResponse( - localVarResponse.statusCode(), - localVarResponse.headers().map(), - null)); - }); - } catch (ApiException e) { - return CompletableFuture.failedFuture(e); - } - } - - private HttpRequest.Builder cancelApprovalRequestRequestBuilder( - String id, String idempotencyKey) throws ApiException { - ValidationUtils.assertParamExistsAndNotEmpty("cancelApprovalRequest", "id", id); - - HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder(); - - String localVarPath = - "/tags/approval_requests/{id}/cancel" - .replace("{id}", ApiClient.urlEncode(id.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 a new tag Create a new tag. Endpoint Permissions: For protected tags: * ADMIN,NON_SIGNING_ADMIN,OWNER. For non protected tags: diff --git a/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntity.java b/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntity.java index 77112673..0aa11d71 100644 --- a/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntity.java +++ b/src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntity.java @@ -25,7 +25,7 @@ /** Legal entity details for a blockchain address. */ @JsonPropertyOrder({ - AddressRegistryLegalEntity.JSON_PROPERTY_VERIFIED, + AddressRegistryLegalEntity.JSON_PROPERTY_LEI_DATA, AddressRegistryLegalEntity.JSON_PROPERTY_ENTITY_NAME, AddressRegistryLegalEntity.JSON_PROPERTY_JURISDICTION, AddressRegistryLegalEntity.JSON_PROPERTY_LEI, @@ -36,8 +36,8 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class AddressRegistryLegalEntity { - public static final String JSON_PROPERTY_VERIFIED = "verified"; - @jakarta.annotation.Nonnull private Boolean verified; + public static final String JSON_PROPERTY_LEI_DATA = "leiData"; + @jakarta.annotation.Nonnull private Boolean leiData; public static final String JSON_PROPERTY_ENTITY_NAME = "entityName"; @jakarta.annotation.Nonnull private String entityName; @@ -58,14 +58,14 @@ public AddressRegistryLegalEntity() {} @JsonCreator public AddressRegistryLegalEntity( - @JsonProperty(value = JSON_PROPERTY_VERIFIED, required = true) Boolean verified, + @JsonProperty(value = JSON_PROPERTY_LEI_DATA, required = true) Boolean leiData, @JsonProperty(value = JSON_PROPERTY_ENTITY_NAME, required = true) String entityName, @JsonProperty(value = JSON_PROPERTY_JURISDICTION, required = true) String jurisdiction, @JsonProperty(value = JSON_PROPERTY_LEI, required = true) String lei, @JsonProperty(value = JSON_PROPERTY_TRAVEL_RULE_PROVIDERS, required = true) List travelRuleProviders, @JsonProperty(value = JSON_PROPERTY_EMAIL, required = true) String email) { - this.verified = verified; + this.leiData = leiData; this.entityName = entityName; this.jurisdiction = jurisdiction; this.lei = lei; @@ -73,27 +73,28 @@ public AddressRegistryLegalEntity( this.email = email; } - public AddressRegistryLegalEntity verified(@jakarta.annotation.Nonnull Boolean verified) { - this.verified = verified; + public AddressRegistryLegalEntity leiData(@jakarta.annotation.Nonnull Boolean leiData) { + this.leiData = leiData; return this; } /** - * Whether the entity was resolved from verified public registry data (e.g. LEI sources). + * Indicates whether LEI (Legal Entity Identifier) data is available for this address from a + * verified public registry. A value of `false` means no LEI record was found. * - * @return verified + * @return leiData */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_VERIFIED) + @JsonProperty(JSON_PROPERTY_LEI_DATA) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Boolean getVerified() { - return verified; + public Boolean getLeiData() { + return leiData; } - @JsonProperty(JSON_PROPERTY_VERIFIED) + @JsonProperty(JSON_PROPERTY_LEI_DATA) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setVerified(@jakarta.annotation.Nonnull Boolean verified) { - this.verified = verified; + public void setLeiData(@jakarta.annotation.Nonnull Boolean leiData) { + this.leiData = leiData; } public AddressRegistryLegalEntity entityName(@jakarta.annotation.Nonnull String entityName) { @@ -149,7 +150,7 @@ public AddressRegistryLegalEntity lei(@jakarta.annotation.Nonnull String lei) { } /** - * Legal Entity Identifier when available; may be empty when unverified. + * Legal Entity Identifier when available. Empty when `leiData` is `false`. * * @return lei */ @@ -235,7 +236,7 @@ public boolean equals(Object o) { return false; } AddressRegistryLegalEntity addressRegistryLegalEntity = (AddressRegistryLegalEntity) o; - return Objects.equals(this.verified, addressRegistryLegalEntity.verified) + return Objects.equals(this.leiData, addressRegistryLegalEntity.leiData) && Objects.equals(this.entityName, addressRegistryLegalEntity.entityName) && Objects.equals(this.jurisdiction, addressRegistryLegalEntity.jurisdiction) && Objects.equals(this.lei, addressRegistryLegalEntity.lei) @@ -246,14 +247,14 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(verified, entityName, jurisdiction, lei, travelRuleProviders, email); + return Objects.hash(leiData, entityName, jurisdiction, lei, travelRuleProviders, email); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AddressRegistryLegalEntity {\n"); - sb.append(" verified: ").append(toIndentedString(verified)).append("\n"); + sb.append(" leiData: ").append(toIndentedString(leiData)).append("\n"); sb.append(" entityName: ").append(toIndentedString(entityName)).append("\n"); sb.append(" jurisdiction: ").append(toIndentedString(jurisdiction)).append("\n"); sb.append(" lei: ").append(toIndentedString(lei)).append("\n"); @@ -308,14 +309,14 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // add `verified` to the URL query string - if (getVerified() != null) { + // add `leiData` to the URL query string + if (getLeiData() != null) { joiner.add( String.format( - "%sverified%s=%s", + "%sleiData%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getVerified())))); + ApiClient.urlEncode(ApiClient.valueToString(getLeiData())))); } // add `entityName` to the URL query string diff --git a/src/main/java/com/fireblocks/sdk/model/AddressesFilters.java b/src/main/java/com/fireblocks/sdk/model/AddressesFilters.java new file mode 100644 index 00000000..3c1851bc --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AddressesFilters.java @@ -0,0 +1,214 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** Filter options for the `addresses` report type. */ +@JsonPropertyOrder({ + AddressesFilters.JSON_PROPERTY_VAULT_ACCOUNT_IDS, + AddressesFilters.JSON_PROPERTY_ASSETS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AddressesFilters { + public static final String JSON_PROPERTY_VAULT_ACCOUNT_IDS = "vaultAccountIds"; + @jakarta.annotation.Nullable private List vaultAccountIds; + + public static final String JSON_PROPERTY_ASSETS = "assets"; + @jakarta.annotation.Nullable private List assets; + + public AddressesFilters() {} + + public AddressesFilters vaultAccountIds( + @jakarta.annotation.Nullable List vaultAccountIds) { + this.vaultAccountIds = vaultAccountIds; + return this; + } + + public AddressesFilters addVaultAccountIdsItem(String vaultAccountIdsItem) { + if (this.vaultAccountIds == null) { + this.vaultAccountIds = new ArrayList<>(); + } + this.vaultAccountIds.add(vaultAccountIdsItem); + return this; + } + + /** + * Restrict to the listed vault account IDs. Max 1000 items. Pass a single ID as a one-element + * array. + * + * @return vaultAccountIds + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_IDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getVaultAccountIds() { + return vaultAccountIds; + } + + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_IDS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVaultAccountIds(@jakarta.annotation.Nullable List vaultAccountIds) { + this.vaultAccountIds = vaultAccountIds; + } + + public AddressesFilters assets(@jakarta.annotation.Nullable List assets) { + this.assets = assets; + return this; + } + + public AddressesFilters addAssetsItem(String assetsItem) { + if (this.assets == null) { + this.assets = new ArrayList<>(); + } + this.assets.add(assetsItem); + return this; + } + + /** + * Filter by asset symbol (e.g., BTC, ETH). Max 1000 items. Pass a single symbol as a + * one-element array. + * + * @return assets + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ASSETS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getAssets() { + return assets; + } + + @JsonProperty(JSON_PROPERTY_ASSETS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAssets(@jakarta.annotation.Nullable List assets) { + this.assets = assets; + } + + /** Return true if this AddressesFilters object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddressesFilters addressesFilters = (AddressesFilters) o; + return Objects.equals(this.vaultAccountIds, addressesFilters.vaultAccountIds) + && Objects.equals(this.assets, addressesFilters.assets); + } + + @Override + public int hashCode() { + return Objects.hash(vaultAccountIds, assets); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddressesFilters {\n"); + sb.append(" vaultAccountIds: ").append(toIndentedString(vaultAccountIds)).append("\n"); + sb.append(" assets: ").append(toIndentedString(assets)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `vaultAccountIds` to the URL query string + if (getVaultAccountIds() != null) { + for (int i = 0; i < getVaultAccountIds().size(); i++) { + joiner.add( + String.format( + "%svaultAccountIds%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString(getVaultAccountIds().get(i))))); + } + } + + // add `assets` to the URL query string + if (getAssets() != null) { + for (int i = 0; i < getAssets().size(); i++) { + joiner.add( + String.format( + "%sassets%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode(ApiClient.valueToString(getAssets().get(i))))); + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/AllowlistEntryResponse.java b/src/main/java/com/fireblocks/sdk/model/AllowlistEntryResponse.java new file mode 100644 index 00000000..ed6bb845 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/AllowlistEntryResponse.java @@ -0,0 +1,177 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Objects; +import java.util.StringJoiner; + +/** Single allowlist entry envelope, paired with the account-level allowlist sync metadata. */ +@JsonPropertyOrder({ + AllowlistEntryResponse.JSON_PROPERTY_DATA, + AllowlistEntryResponse.JSON_PROPERTY_METADATA +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class AllowlistEntryResponse { + public static final String JSON_PROPERTY_DATA = "data"; + @jakarta.annotation.Nonnull private AllowlistEntry data; + + public static final String JSON_PROPERTY_METADATA = "metadata"; + @jakarta.annotation.Nullable private AllowlistMetadata metadata; + + public AllowlistEntryResponse() {} + + @JsonCreator + public AllowlistEntryResponse( + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) AllowlistEntry data) { + this.data = data; + } + + public AllowlistEntryResponse data(@jakarta.annotation.Nonnull AllowlistEntry data) { + this.data = data; + return this; + } + + /** + * Get data + * + * @return data + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AllowlistEntry getData() { + return data; + } + + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setData(@jakarta.annotation.Nonnull AllowlistEntry data) { + this.data = data; + } + + public AllowlistEntryResponse metadata( + @jakarta.annotation.Nullable AllowlistMetadata metadata) { + this.metadata = metadata; + return this; + } + + /** + * Get metadata + * + * @return metadata + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METADATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public AllowlistMetadata getMetadata() { + return metadata; + } + + @JsonProperty(JSON_PROPERTY_METADATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setMetadata(@jakarta.annotation.Nullable AllowlistMetadata metadata) { + this.metadata = metadata; + } + + /** Return true if this AllowlistEntryResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AllowlistEntryResponse allowlistEntryResponse = (AllowlistEntryResponse) o; + return Objects.equals(this.data, allowlistEntryResponse.data) + && Objects.equals(this.metadata, allowlistEntryResponse.metadata); + } + + @Override + public int hashCode() { + return Objects.hash(data, metadata); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AllowlistEntryResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `data` to the URL query string + if (getData() != null) { + joiner.add(getData().toUrlQueryString(prefix + "data" + suffix)); + } + + // add `metadata` to the URL query string + if (getMetadata() != null) { + joiner.add(getMetadata().toUrlQueryString(prefix + "metadata" + suffix)); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ChapsPaymentInfo.java b/src/main/java/com/fireblocks/sdk/model/ChapsPaymentInfo.java index 3efeee90..8835a86d 100644 --- a/src/main/java/com/fireblocks/sdk/model/ChapsPaymentInfo.java +++ b/src/main/java/com/fireblocks/sdk/model/ChapsPaymentInfo.java @@ -28,6 +28,9 @@ ChapsPaymentInfo.JSON_PROPERTY_ADDRESSING_SYSTEM, ChapsPaymentInfo.JSON_PROPERTY_ACCOUNT_HOLDER_GIVEN_NAME, ChapsPaymentInfo.JSON_PROPERTY_ACCOUNT_HOLDER_SURNAME, + ChapsPaymentInfo.JSON_PROPERTY_ACCOUNT_HOLDER_CITY, + ChapsPaymentInfo.JSON_PROPERTY_ACCOUNT_HOLDER_COUNTRY, + ChapsPaymentInfo.JSON_PROPERTY_ACCOUNT_HOLDER_POSTAL_CODE, ChapsPaymentInfo.JSON_PROPERTY_COUNTRY, ChapsPaymentInfo.JSON_PROPERTY_SORT_CODE, ChapsPaymentInfo.JSON_PROPERTY_ACCOUNT_NUMBER, @@ -113,6 +116,15 @@ public static AddressingSystemEnum fromValue(String value) { public static final String JSON_PROPERTY_ACCOUNT_HOLDER_SURNAME = "accountHolderSurname"; @jakarta.annotation.Nonnull private String accountHolderSurname; + public static final String JSON_PROPERTY_ACCOUNT_HOLDER_CITY = "accountHolderCity"; + @jakarta.annotation.Nullable private String accountHolderCity; + + public static final String JSON_PROPERTY_ACCOUNT_HOLDER_COUNTRY = "accountHolderCountry"; + @jakarta.annotation.Nullable private String accountHolderCountry; + + public static final String JSON_PROPERTY_ACCOUNT_HOLDER_POSTAL_CODE = "accountHolderPostalCode"; + @jakarta.annotation.Nullable private String accountHolderPostalCode; + public static final String JSON_PROPERTY_COUNTRY = "country"; @jakarta.annotation.Nonnull private String country; @@ -258,6 +270,79 @@ public void setAccountHolderSurname(@jakarta.annotation.Nonnull String accountHo this.accountHolderSurname = accountHolderSurname; } + public ChapsPaymentInfo accountHolderCity( + @jakarta.annotation.Nullable String accountHolderCity) { + this.accountHolderCity = accountHolderCity; + return this; + } + + /** + * The city where the account holder resides + * + * @return accountHolderCity + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ACCOUNT_HOLDER_CITY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAccountHolderCity() { + return accountHolderCity; + } + + @JsonProperty(JSON_PROPERTY_ACCOUNT_HOLDER_CITY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAccountHolderCity(@jakarta.annotation.Nullable String accountHolderCity) { + this.accountHolderCity = accountHolderCity; + } + + public ChapsPaymentInfo accountHolderCountry( + @jakarta.annotation.Nullable String accountHolderCountry) { + this.accountHolderCountry = accountHolderCountry; + return this; + } + + /** + * The country where the account holder resides (ISO 3166-1 alpha-2 code) + * + * @return accountHolderCountry + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ACCOUNT_HOLDER_COUNTRY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAccountHolderCountry() { + return accountHolderCountry; + } + + @JsonProperty(JSON_PROPERTY_ACCOUNT_HOLDER_COUNTRY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAccountHolderCountry(@jakarta.annotation.Nullable String accountHolderCountry) { + this.accountHolderCountry = accountHolderCountry; + } + + public ChapsPaymentInfo accountHolderPostalCode( + @jakarta.annotation.Nullable String accountHolderPostalCode) { + this.accountHolderPostalCode = accountHolderPostalCode; + return this; + } + + /** + * The postal code of the account holder's address + * + * @return accountHolderPostalCode + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ACCOUNT_HOLDER_POSTAL_CODE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAccountHolderPostalCode() { + return accountHolderPostalCode; + } + + @JsonProperty(JSON_PROPERTY_ACCOUNT_HOLDER_POSTAL_CODE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAccountHolderPostalCode( + @jakarta.annotation.Nullable String accountHolderPostalCode) { + this.accountHolderPostalCode = accountHolderPostalCode; + } + public ChapsPaymentInfo country(@jakarta.annotation.Nonnull String country) { this.country = country; return this; @@ -413,6 +498,10 @@ public boolean equals(Object o) { && Objects.equals( this.accountHolderGivenName, chapsPaymentInfo.accountHolderGivenName) && Objects.equals(this.accountHolderSurname, chapsPaymentInfo.accountHolderSurname) + && Objects.equals(this.accountHolderCity, chapsPaymentInfo.accountHolderCity) + && Objects.equals(this.accountHolderCountry, chapsPaymentInfo.accountHolderCountry) + && Objects.equals( + this.accountHolderPostalCode, chapsPaymentInfo.accountHolderPostalCode) && Objects.equals(this.country, chapsPaymentInfo.country) && Objects.equals(this.sortCode, chapsPaymentInfo.sortCode) && Objects.equals(this.accountNumber, chapsPaymentInfo.accountNumber) @@ -429,6 +518,9 @@ public int hashCode() { addressingSystem, accountHolderGivenName, accountHolderSurname, + accountHolderCity, + accountHolderCountry, + accountHolderPostalCode, country, sortCode, accountNumber, @@ -449,6 +541,15 @@ public String toString() { sb.append(" accountHolderSurname: ") .append(toIndentedString(accountHolderSurname)) .append("\n"); + sb.append(" accountHolderCity: ") + .append(toIndentedString(accountHolderCity)) + .append("\n"); + sb.append(" accountHolderCountry: ") + .append(toIndentedString(accountHolderCountry)) + .append("\n"); + sb.append(" accountHolderPostalCode: ") + .append(toIndentedString(accountHolderPostalCode)) + .append("\n"); sb.append(" country: ").append(toIndentedString(country)).append("\n"); sb.append(" sortCode: ").append(toIndentedString(sortCode)).append("\n"); sb.append(" accountNumber: ").append(toIndentedString(accountNumber)).append("\n"); @@ -548,6 +649,38 @@ public String toUrlQueryString(String prefix) { ApiClient.valueToString(getAccountHolderSurname())))); } + // add `accountHolderCity` to the URL query string + if (getAccountHolderCity() != null) { + joiner.add( + String.format( + "%saccountHolderCity%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAccountHolderCity())))); + } + + // add `accountHolderCountry` to the URL query string + if (getAccountHolderCountry() != null) { + joiner.add( + String.format( + "%saccountHolderCountry%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getAccountHolderCountry())))); + } + + // add `accountHolderPostalCode` to the URL query string + if (getAccountHolderPostalCode() != null) { + joiner.add( + String.format( + "%saccountHolderPostalCode%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getAccountHolderPostalCode())))); + } + // add `country` to the URL query string if (getCountry() != null) { joiner.add( diff --git a/src/main/java/com/fireblocks/sdk/model/ConnectedAccountErrorResponse.java b/src/main/java/com/fireblocks/sdk/model/ConnectedAccountErrorResponse.java index 2b21ed75..b49200d4 100644 --- a/src/main/java/com/fireblocks/sdk/model/ConnectedAccountErrorResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/ConnectedAccountErrorResponse.java @@ -23,6 +23,8 @@ /** ConnectedAccountErrorResponse */ @JsonPropertyOrder({ + ConnectedAccountErrorResponse.JSON_PROPERTY_MESSAGE, + ConnectedAccountErrorResponse.JSON_PROPERTY_CODE, ConnectedAccountErrorResponse.JSON_PROPERTY_ERROR_MESSAGE, ConnectedAccountErrorResponse.JSON_PROPERTY_ERROR_CODE }) @@ -30,24 +32,76 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class ConnectedAccountErrorResponse { + public static final String JSON_PROPERTY_MESSAGE = "message"; + @jakarta.annotation.Nonnull private String message; + + public static final String JSON_PROPERTY_CODE = "code"; + @jakarta.annotation.Nonnull private Integer code; + public static final String JSON_PROPERTY_ERROR_MESSAGE = "errorMessage"; - @jakarta.annotation.Nonnull private String errorMessage; + @jakarta.annotation.Nullable private String errorMessage; public static final String JSON_PROPERTY_ERROR_CODE = "errorCode"; - @jakarta.annotation.Nonnull private String errorCode; + @jakarta.annotation.Nullable private String errorCode; public ConnectedAccountErrorResponse() {} @JsonCreator public ConnectedAccountErrorResponse( - @JsonProperty(value = JSON_PROPERTY_ERROR_MESSAGE, required = true) String errorMessage, - @JsonProperty(value = JSON_PROPERTY_ERROR_CODE, required = true) String errorCode) { - this.errorMessage = errorMessage; - this.errorCode = errorCode; + @JsonProperty(value = JSON_PROPERTY_MESSAGE, required = true) String message, + @JsonProperty(value = JSON_PROPERTY_CODE, required = true) Integer code) { + this.message = message; + this.code = code; + } + + public ConnectedAccountErrorResponse message(@jakarta.annotation.Nonnull String message) { + this.message = message; + return this; + } + + /** + * Error message describing what went wrong. + * + * @return message + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_MESSAGE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getMessage() { + return message; + } + + @JsonProperty(JSON_PROPERTY_MESSAGE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setMessage(@jakarta.annotation.Nonnull String message) { + this.message = message; + } + + public ConnectedAccountErrorResponse code(@jakarta.annotation.Nonnull Integer code) { + this.code = code; + return this; + } + + /** + * Numeric error code identifying the type of error. + * + * @return code + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_CODE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getCode() { + return code; + } + + @JsonProperty(JSON_PROPERTY_CODE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setCode(@jakarta.annotation.Nonnull Integer code) { + this.code = code; } public ConnectedAccountErrorResponse errorMessage( - @jakarta.annotation.Nonnull String errorMessage) { + @jakarta.annotation.Nullable String errorMessage) { this.errorMessage = errorMessage; return this; } @@ -57,20 +111,20 @@ public ConnectedAccountErrorResponse errorMessage( * * @return errorMessage */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_ERROR_MESSAGE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public String getErrorMessage() { return errorMessage; } @JsonProperty(JSON_PROPERTY_ERROR_MESSAGE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setErrorMessage(@jakarta.annotation.Nonnull String errorMessage) { + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setErrorMessage(@jakarta.annotation.Nullable String errorMessage) { this.errorMessage = errorMessage; } - public ConnectedAccountErrorResponse errorCode(@jakarta.annotation.Nonnull String errorCode) { + public ConnectedAccountErrorResponse errorCode(@jakarta.annotation.Nullable String errorCode) { this.errorCode = errorCode; return this; } @@ -80,16 +134,16 @@ public ConnectedAccountErrorResponse errorCode(@jakarta.annotation.Nonnull Strin * * @return errorCode */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_ERROR_CODE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public String getErrorCode() { return errorCode; } @JsonProperty(JSON_PROPERTY_ERROR_CODE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setErrorCode(@jakarta.annotation.Nonnull String errorCode) { + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setErrorCode(@jakarta.annotation.Nullable String errorCode) { this.errorCode = errorCode; } @@ -104,19 +158,23 @@ public boolean equals(Object o) { } ConnectedAccountErrorResponse connectedAccountErrorResponse = (ConnectedAccountErrorResponse) o; - return Objects.equals(this.errorMessage, connectedAccountErrorResponse.errorMessage) + return Objects.equals(this.message, connectedAccountErrorResponse.message) + && Objects.equals(this.code, connectedAccountErrorResponse.code) + && Objects.equals(this.errorMessage, connectedAccountErrorResponse.errorMessage) && Objects.equals(this.errorCode, connectedAccountErrorResponse.errorCode); } @Override public int hashCode() { - return Objects.hash(errorMessage, errorCode); + return Objects.hash(message, code, errorMessage, errorCode); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ConnectedAccountErrorResponse {\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" code: ").append(toIndentedString(code)).append("\n"); sb.append(" errorMessage: ").append(toIndentedString(errorMessage)).append("\n"); sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n"); sb.append("}"); @@ -166,6 +224,26 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); + // add `message` to the URL query string + if (getMessage() != null) { + joiner.add( + String.format( + "%smessage%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getMessage())))); + } + + // add `code` to the URL query string + if (getCode() != null) { + joiner.add( + String.format( + "%scode%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCode())))); + } + // add `errorMessage` to the URL query string if (getErrorMessage() != null) { joiner.add( diff --git a/src/main/java/com/fireblocks/sdk/model/CreateAddressesReportRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateAddressesReportRequest.java new file mode 100644 index 00000000..2a2bce5e --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/CreateAddressesReportRequest.java @@ -0,0 +1,300 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** Request body for creating a new ADDRESSES report job */ +@JsonPropertyOrder({ + CreateAddressesReportRequest.JSON_PROPERTY_REPORT_TYPE, + CreateAddressesReportRequest.JSON_PROPERTY_OUTPUT_FORMAT, + CreateAddressesReportRequest.JSON_PROPERTY_COMPRESS, + CreateAddressesReportRequest.JSON_PROPERTY_FILTERS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class CreateAddressesReportRequest { + /** The type of report to generate. */ + public enum ReportTypeEnum { + ADDRESSES(String.valueOf("ADDRESSES")); + + private String value; + + ReportTypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ReportTypeEnum fromValue(String value) { + for (ReportTypeEnum b : ReportTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_REPORT_TYPE = "reportType"; + @jakarta.annotation.Nonnull private ReportTypeEnum reportType; + + public static final String JSON_PROPERTY_OUTPUT_FORMAT = "outputFormat"; + @jakarta.annotation.Nonnull private ReportOutputFormat outputFormat; + + public static final String JSON_PROPERTY_COMPRESS = "compress"; + @jakarta.annotation.Nullable private Boolean compress = false; + + public static final String JSON_PROPERTY_FILTERS = "filters"; + @jakarta.annotation.Nullable private AddressesFilters filters; + + public CreateAddressesReportRequest() {} + + @JsonCreator + public CreateAddressesReportRequest( + @JsonProperty(value = JSON_PROPERTY_REPORT_TYPE, required = true) + ReportTypeEnum reportType, + @JsonProperty(value = JSON_PROPERTY_OUTPUT_FORMAT, required = true) + ReportOutputFormat outputFormat) { + this.reportType = reportType; + this.outputFormat = outputFormat; + } + + public CreateAddressesReportRequest reportType( + @jakarta.annotation.Nonnull ReportTypeEnum reportType) { + this.reportType = reportType; + return this; + } + + /** + * The type of report to generate. + * + * @return reportType + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_REPORT_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ReportTypeEnum getReportType() { + return reportType; + } + + @JsonProperty(JSON_PROPERTY_REPORT_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setReportType(@jakarta.annotation.Nonnull ReportTypeEnum reportType) { + this.reportType = reportType; + } + + public CreateAddressesReportRequest outputFormat( + @jakarta.annotation.Nonnull ReportOutputFormat outputFormat) { + this.outputFormat = outputFormat; + return this; + } + + /** + * Get outputFormat + * + * @return outputFormat + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OUTPUT_FORMAT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ReportOutputFormat getOutputFormat() { + return outputFormat; + } + + @JsonProperty(JSON_PROPERTY_OUTPUT_FORMAT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOutputFormat(@jakarta.annotation.Nonnull ReportOutputFormat outputFormat) { + this.outputFormat = outputFormat; + } + + public CreateAddressesReportRequest compress(@jakarta.annotation.Nullable Boolean compress) { + this.compress = compress; + return this; + } + + /** + * Gzip the output file. Defaults to true. + * + * @return compress + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPRESS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getCompress() { + return compress; + } + + @JsonProperty(JSON_PROPERTY_COMPRESS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setCompress(@jakarta.annotation.Nullable Boolean compress) { + this.compress = compress; + } + + public CreateAddressesReportRequest filters( + @jakarta.annotation.Nullable AddressesFilters filters) { + this.filters = filters; + return this; + } + + /** + * Get filters + * + * @return filters + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FILTERS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public AddressesFilters getFilters() { + return filters; + } + + @JsonProperty(JSON_PROPERTY_FILTERS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFilters(@jakarta.annotation.Nullable AddressesFilters filters) { + this.filters = filters; + } + + /** Return true if this CreateAddressesReportRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateAddressesReportRequest createAddressesReportRequest = + (CreateAddressesReportRequest) o; + return Objects.equals(this.reportType, createAddressesReportRequest.reportType) + && Objects.equals(this.outputFormat, createAddressesReportRequest.outputFormat) + && Objects.equals(this.compress, createAddressesReportRequest.compress) + && Objects.equals(this.filters, createAddressesReportRequest.filters); + } + + @Override + public int hashCode() { + return Objects.hash(reportType, outputFormat, compress, filters); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateAddressesReportRequest {\n"); + sb.append(" reportType: ").append(toIndentedString(reportType)).append("\n"); + sb.append(" outputFormat: ").append(toIndentedString(outputFormat)).append("\n"); + sb.append(" compress: ").append(toIndentedString(compress)).append("\n"); + sb.append(" filters: ").append(toIndentedString(filters)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `reportType` to the URL query string + if (getReportType() != null) { + joiner.add( + String.format( + "%sreportType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getReportType())))); + } + + // add `outputFormat` to the URL query string + if (getOutputFormat() != null) { + joiner.add( + String.format( + "%soutputFormat%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOutputFormat())))); + } + + // add `compress` to the URL query string + if (getCompress() != null) { + joiner.add( + String.format( + "%scompress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCompress())))); + } + + // add `filters` to the URL query string + if (getFilters() != null) { + joiner.add(getFilters().toUrlQueryString(prefix + "filters" + suffix)); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/CreateConnectedAccountRequest.java b/src/main/java/com/fireblocks/sdk/model/CreateConnectedAccountRequest.java new file mode 100644 index 00000000..b615a74d --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/CreateConnectedAccountRequest.java @@ -0,0 +1,402 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Arrays; +import java.util.Objects; +import java.util.StringJoiner; + +/** CreateConnectedAccountRequest */ +@JsonPropertyOrder({ + CreateConnectedAccountRequest.JSON_PROPERTY_PROVIDER_ID, + CreateConnectedAccountRequest.JSON_PROPERTY_DISPLAY_NAME, + CreateConnectedAccountRequest.JSON_PROPERTY_CREDS, + CreateConnectedAccountRequest.JSON_PROPERTY_API_KEY, + CreateConnectedAccountRequest.JSON_PROPERTY_MAIN_ACCOUNT_ID, + CreateConnectedAccountRequest.JSON_PROPERTY_ACCOUNT_ID, + CreateConnectedAccountRequest.JSON_PROPERTY_ON_PREMISE_SERVER_ID +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class CreateConnectedAccountRequest { + public static final String JSON_PROPERTY_PROVIDER_ID = "providerId"; + @jakarta.annotation.Nonnull private String providerId; + + public static final String JSON_PROPERTY_DISPLAY_NAME = "displayName"; + @jakarta.annotation.Nullable private String displayName; + + public static final String JSON_PROPERTY_CREDS = "creds"; + @jakarta.annotation.Nonnull private byte[] creds; + + public static final String JSON_PROPERTY_API_KEY = "apiKey"; + @jakarta.annotation.Nonnull private String apiKey; + + public static final String JSON_PROPERTY_MAIN_ACCOUNT_ID = "mainAccountId"; + @jakarta.annotation.Nullable private String mainAccountId; + + public static final String JSON_PROPERTY_ACCOUNT_ID = "accountId"; + @jakarta.annotation.Nullable private String accountId; + + public static final String JSON_PROPERTY_ON_PREMISE_SERVER_ID = "onPremiseServerId"; + @jakarta.annotation.Nullable private String onPremiseServerId; + + public CreateConnectedAccountRequest() {} + + @JsonCreator + public CreateConnectedAccountRequest( + @JsonProperty(value = JSON_PROPERTY_PROVIDER_ID, required = true) String providerId, + @JsonProperty(value = JSON_PROPERTY_CREDS, required = true) byte[] creds, + @JsonProperty(value = JSON_PROPERTY_API_KEY, required = true) String apiKey) { + this.providerId = providerId; + this.creds = creds; + this.apiKey = apiKey; + } + + public CreateConnectedAccountRequest providerId(@jakarta.annotation.Nonnull String providerId) { + this.providerId = providerId; + return this; + } + + /** + * Integration key identifying the provider (e.g. BINANCE, KINGDOM_BANK, GEMINI_NLV2). + * + * @return providerId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getProviderId() { + return providerId; + } + + @JsonProperty(JSON_PROPERTY_PROVIDER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setProviderId(@jakarta.annotation.Nonnull String providerId) { + this.providerId = providerId; + } + + public CreateConnectedAccountRequest displayName( + @jakarta.annotation.Nullable String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Human-readable account name. Required for non-NLV2 providers. + * + * @return displayName + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DISPLAY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDisplayName() { + return displayName; + } + + @JsonProperty(JSON_PROPERTY_DISPLAY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDisplayName(@jakarta.annotation.Nullable String displayName) { + this.displayName = displayName; + } + + public CreateConnectedAccountRequest creds(@jakarta.annotation.Nonnull byte[] creds) { + this.creds = creds; + return this; + } + + /** + * Base64-encoded RSA-encrypted credential blob. Encrypt using the public key from GET + * /exchange_accounts/credentials_public_key. + * + * @return creds + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_CREDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public byte[] getCreds() { + return creds; + } + + @JsonProperty(JSON_PROPERTY_CREDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setCreds(@jakarta.annotation.Nonnull byte[] creds) { + this.creds = creds; + } + + public CreateConnectedAccountRequest apiKey(@jakarta.annotation.Nonnull String apiKey) { + this.apiKey = apiKey; + return this; + } + + /** + * Account-level API key. + * + * @return apiKey + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_API_KEY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getApiKey() { + return apiKey; + } + + @JsonProperty(JSON_PROPERTY_API_KEY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setApiKey(@jakarta.annotation.Nonnull String apiKey) { + this.apiKey = apiKey; + } + + public CreateConnectedAccountRequest mainAccountId( + @jakarta.annotation.Nullable String mainAccountId) { + this.mainAccountId = mainAccountId; + return this; + } + + /** + * Parent main account ID for sub-account creation. Not allowed for NLV2 providers. + * + * @return mainAccountId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MAIN_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getMainAccountId() { + return mainAccountId; + } + + @JsonProperty(JSON_PROPERTY_MAIN_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setMainAccountId(@jakarta.annotation.Nullable String mainAccountId) { + this.mainAccountId = mainAccountId; + } + + public CreateConnectedAccountRequest accountId(@jakarta.annotation.Nullable String accountId) { + this.accountId = accountId; + return this; + } + + /** + * Optional provider-side account ID to associate with the created account. + * + * @return accountId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAccountId() { + return accountId; + } + + @JsonProperty(JSON_PROPERTY_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAccountId(@jakarta.annotation.Nullable String accountId) { + this.accountId = accountId; + } + + public CreateConnectedAccountRequest onPremiseServerId( + @jakarta.annotation.Nullable String onPremiseServerId) { + this.onPremiseServerId = onPremiseServerId; + return this; + } + + /** + * On-premise server ID for self-hosted integrations. + * + * @return onPremiseServerId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ON_PREMISE_SERVER_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getOnPremiseServerId() { + return onPremiseServerId; + } + + @JsonProperty(JSON_PROPERTY_ON_PREMISE_SERVER_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOnPremiseServerId(@jakarta.annotation.Nullable String onPremiseServerId) { + this.onPremiseServerId = onPremiseServerId; + } + + /** Return true if this CreateConnectedAccountRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateConnectedAccountRequest createConnectedAccountRequest = + (CreateConnectedAccountRequest) o; + return Objects.equals(this.providerId, createConnectedAccountRequest.providerId) + && Objects.equals(this.displayName, createConnectedAccountRequest.displayName) + && Arrays.equals(this.creds, createConnectedAccountRequest.creds) + && Objects.equals(this.apiKey, createConnectedAccountRequest.apiKey) + && Objects.equals(this.mainAccountId, createConnectedAccountRequest.mainAccountId) + && Objects.equals(this.accountId, createConnectedAccountRequest.accountId) + && Objects.equals( + this.onPremiseServerId, createConnectedAccountRequest.onPremiseServerId); + } + + @Override + public int hashCode() { + return Objects.hash( + providerId, + displayName, + Arrays.hashCode(creds), + apiKey, + mainAccountId, + accountId, + onPremiseServerId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateConnectedAccountRequest {\n"); + sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" creds: ").append(toIndentedString(creds)).append("\n"); + sb.append(" apiKey: ").append(toIndentedString(apiKey)).append("\n"); + sb.append(" mainAccountId: ").append(toIndentedString(mainAccountId)).append("\n"); + sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n"); + sb.append(" onPremiseServerId: ") + .append(toIndentedString(onPremiseServerId)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `providerId` to the URL query string + if (getProviderId() != null) { + joiner.add( + String.format( + "%sproviderId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getProviderId())))); + } + + // add `displayName` to the URL query string + if (getDisplayName() != null) { + joiner.add( + String.format( + "%sdisplayName%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getDisplayName())))); + } + + // add `creds` to the URL query string + if (getCreds() != null) { + joiner.add( + String.format( + "%screds%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCreds())))); + } + + // add `apiKey` to the URL query string + if (getApiKey() != null) { + joiner.add( + String.format( + "%sapiKey%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getApiKey())))); + } + + // add `mainAccountId` to the URL query string + if (getMainAccountId() != null) { + joiner.add( + String.format( + "%smainAccountId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getMainAccountId())))); + } + + // add `accountId` to the URL query string + if (getAccountId() != null) { + joiner.add( + String.format( + "%saccountId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAccountId())))); + } + + // add `onPremiseServerId` to the URL query string + if (getOnPremiseServerId() != null) { + joiner.add( + String.format( + "%sonPremiseServerId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOnPremiseServerId())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/CreateConnectedAccountResponse.java b/src/main/java/com/fireblocks/sdk/model/CreateConnectedAccountResponse.java new file mode 100644 index 00000000..dfa14b89 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/CreateConnectedAccountResponse.java @@ -0,0 +1,173 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** CreateConnectedAccountResponse */ +@JsonPropertyOrder({CreateConnectedAccountResponse.JSON_PROPERTY_ACCOUNTS}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class CreateConnectedAccountResponse { + public static final String JSON_PROPERTY_ACCOUNTS = "accounts"; + @jakarta.annotation.Nonnull private List accounts; + + public CreateConnectedAccountResponse() {} + + @JsonCreator + public CreateConnectedAccountResponse( + @JsonProperty(value = JSON_PROPERTY_ACCOUNTS, required = true) + List accounts) { + this.accounts = accounts; + } + + public CreateConnectedAccountResponse accounts( + @jakarta.annotation.Nonnull List accounts) { + this.accounts = accounts; + return this; + } + + public CreateConnectedAccountResponse addAccountsItem( + CreatedConnectedAccountItem accountsItem) { + if (this.accounts == null) { + this.accounts = new ArrayList<>(); + } + this.accounts.add(accountsItem); + return this; + } + + /** + * Created accounts — main account first, sub-accounts after (NLV2 hierarchy). + * + * @return accounts + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ACCOUNTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getAccounts() { + return accounts; + } + + @JsonProperty(JSON_PROPERTY_ACCOUNTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAccounts( + @jakarta.annotation.Nonnull List accounts) { + this.accounts = accounts; + } + + /** Return true if this CreateConnectedAccountResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateConnectedAccountResponse createConnectedAccountResponse = + (CreateConnectedAccountResponse) o; + return Objects.equals(this.accounts, createConnectedAccountResponse.accounts); + } + + @Override + public int hashCode() { + return Objects.hash(accounts); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateConnectedAccountResponse {\n"); + sb.append(" accounts: ").append(toIndentedString(accounts)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `accounts` to the URL query string + if (getAccounts() != null) { + for (int i = 0; i < getAccounts().size(); i++) { + if (getAccounts().get(i) != null) { + joiner.add( + getAccounts() + .get(i) + .toUrlQueryString( + String.format( + "%saccounts%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/CreateMultipleVaultAccountsJobStatus.java b/src/main/java/com/fireblocks/sdk/model/CreateMultipleVaultAccountsJobStatus.java index fd0204ed..2156b7fd 100644 --- a/src/main/java/com/fireblocks/sdk/model/CreateMultipleVaultAccountsJobStatus.java +++ b/src/main/java/com/fireblocks/sdk/model/CreateMultipleVaultAccountsJobStatus.java @@ -67,8 +67,7 @@ public CreateMultipleVaultAccountsJobStatus status(@jakarta.annotation.Nonnull S } /** - * Status of the job. Possible values - Success, In Progress, Failed, Pending Approval, - * Cancelled + * Status of the job. Possible values - Success, In Progress, Error, Pending Approval, Canceled * * @return status */ @@ -101,7 +100,7 @@ public CreateMultipleVaultAccountsJobStatus putVaultAccountsItem( } /** - * Mapping between VaultAccountId to a mapping of asset to address + * Mapping between VaultAccountId to a mapping of asset to address, and the vault account name * * @return vaultAccounts */ diff --git a/src/main/java/com/fireblocks/sdk/model/CreateReportResponse.java b/src/main/java/com/fireblocks/sdk/model/CreateReportResponse.java new file mode 100644 index 00000000..3ab2840d --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/CreateReportResponse.java @@ -0,0 +1,147 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * Returned when a report job is successfully created. Use the `id` to poll for status via + * `GET /v1/reports/{reportId}`. + */ +@JsonPropertyOrder({CreateReportResponse.JSON_PROPERTY_ID}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class CreateReportResponse { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private String id; + + public CreateReportResponse() {} + + @JsonCreator + public CreateReportResponse( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id) { + this.id = id; + } + + public CreateReportResponse id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the report job + * + * @return id + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + /** Return true if this CreateReportResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateReportResponse createReportResponse = (CreateReportResponse) o; + return Objects.equals(this.id, createReportResponse.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateReportResponse {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `id` to the URL query string + if (getId() != null) { + joiner.add( + String.format( + "%sid%s=%s", + prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/CreatedConnectedAccountItem.java b/src/main/java/com/fireblocks/sdk/model/CreatedConnectedAccountItem.java new file mode 100644 index 00000000..5b3ba6f3 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/CreatedConnectedAccountItem.java @@ -0,0 +1,272 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** CreatedConnectedAccountItem */ +@JsonPropertyOrder({ + CreatedConnectedAccountItem.JSON_PROPERTY_ACCOUNT_ID, + CreatedConnectedAccountItem.JSON_PROPERTY_NAME, + CreatedConnectedAccountItem.JSON_PROPERTY_PARENT_ACCOUNT_ID, + CreatedConnectedAccountItem.JSON_PROPERTY_STATUS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class CreatedConnectedAccountItem { + public static final String JSON_PROPERTY_ACCOUNT_ID = "accountId"; + @jakarta.annotation.Nonnull private String accountId; + + public static final String JSON_PROPERTY_NAME = "name"; + @jakarta.annotation.Nonnull private String name; + + public static final String JSON_PROPERTY_PARENT_ACCOUNT_ID = "parentAccountId"; + @jakarta.annotation.Nullable private String parentAccountId; + + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nonnull private ConnectedAccountApprovalStatus status; + + public CreatedConnectedAccountItem() {} + + @JsonCreator + public CreatedConnectedAccountItem( + @JsonProperty(value = JSON_PROPERTY_ACCOUNT_ID, required = true) String accountId, + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name, + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) + ConnectedAccountApprovalStatus status) { + this.accountId = accountId; + this.name = name; + this.status = status; + } + + public CreatedConnectedAccountItem accountId(@jakarta.annotation.Nonnull String accountId) { + this.accountId = accountId; + return this; + } + + /** + * ID of the created account. + * + * @return accountId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getAccountId() { + return accountId; + } + + @JsonProperty(JSON_PROPERTY_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAccountId(@jakarta.annotation.Nonnull String accountId) { + this.accountId = accountId; + } + + public CreatedConnectedAccountItem name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Human-readable account name. + * + * @return name + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; + } + + public CreatedConnectedAccountItem parentAccountId( + @jakarta.annotation.Nullable String parentAccountId) { + this.parentAccountId = parentAccountId; + return this; + } + + /** + * Parent account ID — present only for sub-accounts in an NLV2 hierarchy. + * + * @return parentAccountId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PARENT_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getParentAccountId() { + return parentAccountId; + } + + @JsonProperty(JSON_PROPERTY_PARENT_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setParentAccountId(@jakarta.annotation.Nullable String parentAccountId) { + this.parentAccountId = parentAccountId; + } + + public CreatedConnectedAccountItem status( + @jakarta.annotation.Nonnull ConnectedAccountApprovalStatus status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ConnectedAccountApprovalStatus getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus(@jakarta.annotation.Nonnull ConnectedAccountApprovalStatus status) { + this.status = status; + } + + /** Return true if this CreatedConnectedAccountItem object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreatedConnectedAccountItem createdConnectedAccountItem = (CreatedConnectedAccountItem) o; + return Objects.equals(this.accountId, createdConnectedAccountItem.accountId) + && Objects.equals(this.name, createdConnectedAccountItem.name) + && Objects.equals(this.parentAccountId, createdConnectedAccountItem.parentAccountId) + && Objects.equals(this.status, createdConnectedAccountItem.status); + } + + @Override + public int hashCode() { + return Objects.hash(accountId, name, parentAccountId, status); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreatedConnectedAccountItem {\n"); + sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" parentAccountId: ").append(toIndentedString(parentAccountId)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `accountId` to the URL query string + if (getAccountId() != null) { + joiner.add( + String.format( + "%saccountId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAccountId())))); + } + + // add `name` to the URL query string + if (getName() != null) { + joiner.add( + String.format( + "%sname%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getName())))); + } + + // add `parentAccountId` to the URL query string + if (getParentAccountId() != null) { + joiner.add( + String.format( + "%sparentAccountId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getParentAccountId())))); + } + + // add `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponse.java b/src/main/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponse.java index 1e0509b4..f93a1364 100644 --- a/src/main/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponse.java @@ -18,6 +18,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; import java.util.StringJoiner; import java.util.UUID; @@ -32,7 +34,8 @@ DestinationTransferPeerPathResponse.JSON_PROPERTY_ID, DestinationTransferPeerPathResponse.JSON_PROPERTY_NAME, DestinationTransferPeerPathResponse.JSON_PROPERTY_WALLET_ID, - DestinationTransferPeerPathResponse.JSON_PROPERTY_TRADING_ACCOUNT + DestinationTransferPeerPathResponse.JSON_PROPERTY_TRADING_ACCOUNT, + DestinationTransferPeerPathResponse.JSON_PROPERTY_TAGS }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -56,6 +59,9 @@ public class DestinationTransferPeerPathResponse { public static final String JSON_PROPERTY_TRADING_ACCOUNT = "tradingAccount"; @jakarta.annotation.Nullable private String tradingAccount; + public static final String JSON_PROPERTY_TAGS = "tags"; + @jakarta.annotation.Nullable private List tags; + public DestinationTransferPeerPathResponse() {} @JsonCreator @@ -218,6 +224,38 @@ public void setTradingAccount(@jakarta.annotation.Nullable String tradingAccount this.tradingAccount = tradingAccount; } + public DestinationTransferPeerPathResponse tags( + @jakarta.annotation.Nullable List tags) { + this.tags = tags; + return this; + } + + public DestinationTransferPeerPathResponse addTagsItem(TransactionTag tagsItem) { + if (this.tags == null) { + this.tags = new ArrayList<>(); + } + this.tags.add(tagsItem); + return this; + } + + /** + * Tags associated with the transaction's destination. + * + * @return tags + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TAGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getTags() { + return tags; + } + + @JsonProperty(JSON_PROPERTY_TAGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTags(@jakarta.annotation.Nullable List tags) { + this.tags = tags; + } + /** Return true if this DestinationTransferPeerPathResponse object is equal to o. */ @Override public boolean equals(Object o) { @@ -235,12 +273,13 @@ public boolean equals(Object o) { && Objects.equals(this.name, destinationTransferPeerPathResponse.name) && Objects.equals(this.walletId, destinationTransferPeerPathResponse.walletId) && Objects.equals( - this.tradingAccount, destinationTransferPeerPathResponse.tradingAccount); + this.tradingAccount, destinationTransferPeerPathResponse.tradingAccount) + && Objects.equals(this.tags, destinationTransferPeerPathResponse.tags); } @Override public int hashCode() { - return Objects.hash(type, subType, id, name, walletId, tradingAccount); + return Objects.hash(type, subType, id, name, walletId, tradingAccount, tags); } @Override @@ -253,6 +292,7 @@ public String toString() { sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" walletId: ").append(toIndentedString(walletId)).append("\n"); sb.append(" tradingAccount: ").append(toIndentedString(tradingAccount)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); sb.append("}"); return sb.toString(); } @@ -358,6 +398,29 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getTradingAccount())))); } + // add `tags` to the URL query string + if (getTags() != null) { + for (int i = 0; i < getTags().size(); i++) { + if (getTags().get(i) != null) { + joiner.add( + getTags() + .get(i) + .toUrlQueryString( + String.format( + "%stags%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/DraftResponse.java b/src/main/java/com/fireblocks/sdk/model/DraftResponse.java index d6c5395b..6f142346 100644 --- a/src/main/java/com/fireblocks/sdk/model/DraftResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/DraftResponse.java @@ -19,7 +19,9 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fireblocks.sdk.ApiClient; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.StringJoiner; @@ -44,7 +46,7 @@ public class DraftResponse { @jakarta.annotation.Nonnull private String draftId; public static final String JSON_PROPERTY_METADATA = "metadata"; - @jakarta.annotation.Nonnull private PolicyMetadata metadata; + @jakarta.annotation.Nonnull private Map metadata; public DraftResponse() {} @@ -54,7 +56,7 @@ public DraftResponse( @JsonProperty(value = JSON_PROPERTY_RULES, required = true) List rules, @JsonProperty(value = JSON_PROPERTY_DRAFT_ID, required = true) String draftId, @JsonProperty(value = JSON_PROPERTY_METADATA, required = true) - PolicyMetadata metadata) { + Map metadata) { this.status = status; this.rules = rules; this.draftId = draftId; @@ -138,26 +140,35 @@ public void setDraftId(@jakarta.annotation.Nonnull String draftId) { this.draftId = draftId; } - public DraftResponse metadata(@jakarta.annotation.Nonnull PolicyMetadata metadata) { + public DraftResponse metadata( + @jakarta.annotation.Nonnull Map metadata) { this.metadata = metadata; return this; } + public DraftResponse putMetadataItem(String key, PolicyMetadataEntry metadataItem) { + if (this.metadata == null) { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, metadataItem); + return this; + } + /** - * Get metadata + * Policy metadata keyed by policy type * * @return metadata */ @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_METADATA) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public PolicyMetadata getMetadata() { + public Map getMetadata() { return metadata; } @JsonProperty(JSON_PROPERTY_METADATA) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setMetadata(@jakarta.annotation.Nonnull PolicyMetadata metadata) { + public void setMetadata(@jakarta.annotation.Nonnull Map metadata) { this.metadata = metadata; } @@ -282,7 +293,25 @@ public String toUrlQueryString(String prefix) { // add `metadata` to the URL query string if (getMetadata() != null) { - joiner.add(getMetadata().toUrlQueryString(prefix + "metadata" + suffix)); + for (String _key : getMetadata().keySet()) { + if (getMetadata().get(_key) != null) { + joiner.add( + getMetadata() + .get(_key) + .toUrlQueryString( + String.format( + "%smetadata%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + _key, + containerSuffix)))); + } + } } return joiner.toString(); diff --git a/src/main/java/com/fireblocks/sdk/model/Exposure.java b/src/main/java/com/fireblocks/sdk/model/Exposure.java index e2bf9ba7..14a820a0 100644 --- a/src/main/java/com/fireblocks/sdk/model/Exposure.java +++ b/src/main/java/com/fireblocks/sdk/model/Exposure.java @@ -13,6 +13,7 @@ package com.fireblocks.sdk.model; +import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; @@ -20,48 +21,91 @@ import java.util.Objects; import java.util.StringJoiner; -/** Exposure */ +/** Vault allocation exposure item (Morpho MetaMorpho allocation slice). */ @JsonPropertyOrder({ - Exposure.JSON_PROPERTY_ASSET_ADDRESS, + Exposure.JSON_PROPERTY_ADDRESS, + Exposure.JSON_PROPERTY_AMOUNT, Exposure.JSON_PROPERTY_SYMBOL, - Exposure.JSON_PROPERTY_AMOUNT + Exposure.JSON_PROPERTY_DECIMALS, + Exposure.JSON_PROPERTY_ASSET_ID, + Exposure.JSON_PROPERTY_AMOUNT_USD }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class Exposure { - public static final String JSON_PROPERTY_ASSET_ADDRESS = "assetAddress"; - @jakarta.annotation.Nullable private String assetAddress; + public static final String JSON_PROPERTY_ADDRESS = "address"; + @jakarta.annotation.Nonnull private String address; + + public static final String JSON_PROPERTY_AMOUNT = "amount"; + @jakarta.annotation.Nonnull private String amount; public static final String JSON_PROPERTY_SYMBOL = "symbol"; @jakarta.annotation.Nullable private String symbol; - public static final String JSON_PROPERTY_AMOUNT = "amount"; - @jakarta.annotation.Nullable private String amount; + public static final String JSON_PROPERTY_DECIMALS = "decimals"; + @jakarta.annotation.Nullable private Integer decimals; + + public static final String JSON_PROPERTY_ASSET_ID = "assetId"; + @jakarta.annotation.Nullable private String assetId; + + public static final String JSON_PROPERTY_AMOUNT_USD = "amountUsd"; + @jakarta.annotation.Nullable private String amountUsd; public Exposure() {} - public Exposure assetAddress(@jakarta.annotation.Nullable String assetAddress) { - this.assetAddress = assetAddress; + @JsonCreator + public Exposure( + @JsonProperty(value = JSON_PROPERTY_ADDRESS, required = true) String address, + @JsonProperty(value = JSON_PROPERTY_AMOUNT, required = true) String amount) { + this.address = address; + this.amount = amount; + } + + public Exposure address(@jakarta.annotation.Nonnull String address) { + this.address = address; return this; } /** - * On-chain address of the exposure asset. + * Contract address of the exposure token on-chain. * - * @return assetAddress + * @return address */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_ASSET_ADDRESS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getAssetAddress() { - return assetAddress; + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getAddress() { + return address; } - @JsonProperty(JSON_PROPERTY_ASSET_ADDRESS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAssetAddress(@jakarta.annotation.Nullable String assetAddress) { - this.assetAddress = assetAddress; + @JsonProperty(JSON_PROPERTY_ADDRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAddress(@jakarta.annotation.Nonnull String address) { + this.address = address; + } + + public Exposure amount(@jakarta.annotation.Nonnull String amount) { + this.amount = amount; + return this; + } + + /** + * Human-readable token amount (raw on-chain value scaled by 10^decimals). + * + * @return amount + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getAmount() { + return amount; + } + + @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setAmount(@jakarta.annotation.Nonnull String amount) { + this.amount = amount; } public Exposure symbol(@jakarta.annotation.Nullable String symbol) { @@ -70,7 +114,7 @@ public Exposure symbol(@jakarta.annotation.Nullable String symbol) { } /** - * Ticker for the exposure asset. + * Human-readable ticker (e.g. USDC). * * @return symbol */ @@ -87,27 +131,74 @@ public void setSymbol(@jakarta.annotation.Nullable String symbol) { this.symbol = symbol; } - public Exposure amount(@jakarta.annotation.Nullable String amount) { - this.amount = amount; + public Exposure decimals(@jakarta.annotation.Nullable Integer decimals) { + this.decimals = decimals; return this; } /** - * Human-readable decimal string (raw on-chain value scaled by 10^decimals). + * Token decimals used when interpreting on-chain amounts. * - * @return amount + * @return decimals */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonProperty(JSON_PROPERTY_DECIMALS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public String getAmount() { - return amount; + public Integer getDecimals() { + return decimals; } - @JsonProperty(JSON_PROPERTY_AMOUNT) + @JsonProperty(JSON_PROPERTY_DECIMALS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setAmount(@jakarta.annotation.Nullable String amount) { - this.amount = amount; + public void setDecimals(@jakarta.annotation.Nullable Integer decimals) { + this.decimals = decimals; + } + + public Exposure assetId(@jakarta.annotation.Nullable String assetId) { + this.assetId = assetId; + return this; + } + + /** + * Fireblocks legacy asset identifier (e.g. USDC_ETH, PYUSD); only present when resolved via + * asset-service. + * + * @return assetId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAssetId() { + return assetId; + } + + @JsonProperty(JSON_PROPERTY_ASSET_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAssetId(@jakarta.annotation.Nullable String assetId) { + this.assetId = assetId; + } + + public Exposure amountUsd(@jakarta.annotation.Nullable String amountUsd) { + this.amountUsd = amountUsd; + return this; + } + + /** + * USD notional value of the exposure amount. + * + * @return amountUsd + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_AMOUNT_USD) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAmountUsd() { + return amountUsd; + } + + @JsonProperty(JSON_PROPERTY_AMOUNT_USD) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAmountUsd(@jakarta.annotation.Nullable String amountUsd) { + this.amountUsd = amountUsd; } /** Return true if this Exposure object is equal to o. */ @@ -120,23 +211,29 @@ public boolean equals(Object o) { return false; } Exposure exposure = (Exposure) o; - return Objects.equals(this.assetAddress, exposure.assetAddress) + return Objects.equals(this.address, exposure.address) + && Objects.equals(this.amount, exposure.amount) && Objects.equals(this.symbol, exposure.symbol) - && Objects.equals(this.amount, exposure.amount); + && Objects.equals(this.decimals, exposure.decimals) + && Objects.equals(this.assetId, exposure.assetId) + && Objects.equals(this.amountUsd, exposure.amountUsd); } @Override public int hashCode() { - return Objects.hash(assetAddress, symbol, amount); + return Objects.hash(address, amount, symbol, decimals, assetId, amountUsd); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class Exposure {\n"); - sb.append(" assetAddress: ").append(toIndentedString(assetAddress)).append("\n"); - sb.append(" symbol: ").append(toIndentedString(symbol)).append("\n"); + sb.append(" address: ").append(toIndentedString(address)).append("\n"); sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" symbol: ").append(toIndentedString(symbol)).append("\n"); + sb.append(" decimals: ").append(toIndentedString(decimals)).append("\n"); + sb.append(" assetId: ").append(toIndentedString(assetId)).append("\n"); + sb.append(" amountUsd: ").append(toIndentedString(amountUsd)).append("\n"); sb.append("}"); return sb.toString(); } @@ -184,14 +281,24 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // add `assetAddress` to the URL query string - if (getAssetAddress() != null) { + // add `address` to the URL query string + if (getAddress() != null) { + joiner.add( + String.format( + "%saddress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAddress())))); + } + + // add `amount` to the URL query string + if (getAmount() != null) { joiner.add( String.format( - "%sassetAddress%s=%s", + "%samount%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getAssetAddress())))); + ApiClient.urlEncode(ApiClient.valueToString(getAmount())))); } // add `symbol` to the URL query string @@ -204,14 +311,34 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getSymbol())))); } - // add `amount` to the URL query string - if (getAmount() != null) { + // add `decimals` to the URL query string + if (getDecimals() != null) { joiner.add( String.format( - "%samount%s=%s", + "%sdecimals%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getAmount())))); + ApiClient.urlEncode(ApiClient.valueToString(getDecimals())))); + } + + // add `assetId` to the URL query string + if (getAssetId() != null) { + joiner.add( + String.format( + "%sassetId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAssetId())))); + } + + // add `amountUsd` to the URL query string + if (getAmountUsd() != null) { + joiner.add( + String.format( + "%samountUsd%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAmountUsd())))); } return joiner.toString(); diff --git a/src/main/java/com/fireblocks/sdk/model/GetActionResponse.java b/src/main/java/com/fireblocks/sdk/model/GetActionResponse.java index 5de02ba3..df5f90ff 100644 --- a/src/main/java/com/fireblocks/sdk/model/GetActionResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/GetActionResponse.java @@ -27,6 +27,8 @@ /** Single lending action (intent plus per-step execution rows). */ @JsonPropertyOrder({ GetActionResponse.JSON_PROPERTY_ID, + GetActionResponse.JSON_PROPERTY_VAULT_ACCOUNT_ID, + GetActionResponse.JSON_PROPERTY_USER_ID, GetActionResponse.JSON_PROPERTY_STATUS, GetActionResponse.JSON_PROPERTY_PROVIDER_ID, GetActionResponse.JSON_PROPERTY_ACTION_TYPE, @@ -44,6 +46,12 @@ public class GetActionResponse { public static final String JSON_PROPERTY_ID = "id"; @jakarta.annotation.Nonnull private String id; + public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId"; + @jakarta.annotation.Nonnull private String vaultAccountId; + + public static final String JSON_PROPERTY_USER_ID = "userId"; + @jakarta.annotation.Nonnull private String userId; + public static final String JSON_PROPERTY_STATUS = "status"; @jakarta.annotation.Nonnull private String status; @@ -142,6 +150,9 @@ public GetActionResponse() {} @JsonCreator public GetActionResponse( @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, + @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_ID, required = true) + String vaultAccountId, + @JsonProperty(value = JSON_PROPERTY_USER_ID, required = true) String userId, @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) String status, @JsonProperty(value = JSON_PROPERTY_PROVIDER_ID, required = true) ProviderIdEnum providerId, @@ -155,6 +166,8 @@ public GetActionResponse( @JsonProperty(value = JSON_PROPERTY_RECORDS, required = true) List records) { this.id = id; + this.vaultAccountId = vaultAccountId; + this.userId = userId; this.status = status; this.providerId = providerId; this.actionType = actionType; @@ -188,6 +201,52 @@ public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } + public GetActionResponse vaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) { + this.vaultAccountId = vaultAccountId; + return this; + } + + /** + * Fireblocks vault account that executed the action. + * + * @return vaultAccountId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getVaultAccountId() { + return vaultAccountId; + } + + @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) { + this.vaultAccountId = vaultAccountId; + } + + public GetActionResponse userId(@jakarta.annotation.Nonnull String userId) { + this.userId = userId; + return this; + } + + /** + * User who initiated the action. + * + * @return userId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_USER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getUserId() { + return userId; + } + + @JsonProperty(JSON_PROPERTY_USER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setUserId(@jakarta.annotation.Nonnull String userId) { + this.userId = userId; + } + public GetActionResponse status(@jakarta.annotation.Nonnull String status) { this.status = status; return this; @@ -414,6 +473,8 @@ public boolean equals(Object o) { } GetActionResponse getActionResponse = (GetActionResponse) o; return Objects.equals(this.id, getActionResponse.id) + && Objects.equals(this.vaultAccountId, getActionResponse.vaultAccountId) + && Objects.equals(this.userId, getActionResponse.userId) && Objects.equals(this.status, getActionResponse.status) && Objects.equals(this.providerId, getActionResponse.providerId) && Objects.equals(this.actionType, getActionResponse.actionType) @@ -429,6 +490,8 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash( id, + vaultAccountId, + userId, status, providerId, actionType, @@ -445,6 +508,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class GetActionResponse {\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" vaultAccountId: ").append(toIndentedString(vaultAccountId)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" providerId: ").append(toIndentedString(providerId)).append("\n"); sb.append(" actionType: ").append(toIndentedString(actionType)).append("\n"); @@ -509,6 +574,26 @@ public String toUrlQueryString(String prefix) { prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId())))); } + // add `vaultAccountId` to the URL query string + if (getVaultAccountId() != null) { + joiner.add( + String.format( + "%svaultAccountId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getVaultAccountId())))); + } + + // add `userId` to the URL query string + if (getUserId() != null) { + joiner.add( + String.format( + "%suserId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getUserId())))); + } + // add `status` to the URL query string if (getStatus() != null) { joiner.add( diff --git a/src/main/java/com/fireblocks/sdk/model/IdentificationPolicyOverride.java b/src/main/java/com/fireblocks/sdk/model/IdentificationPolicyOverride.java index cfa0b80a..d03415a1 100644 --- a/src/main/java/com/fireblocks/sdk/model/IdentificationPolicyOverride.java +++ b/src/main/java/com/fireblocks/sdk/model/IdentificationPolicyOverride.java @@ -135,8 +135,8 @@ public IdentificationPolicyOverride schema(@jakarta.annotation.Nonnull String sc /** * 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 + * object on requests where the provider manifest declares a + * `participantsIdentificationPolicy` for that endpoint (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, diff --git a/src/main/java/com/fireblocks/sdk/model/IssueApiUserPairingTokenResponse.java b/src/main/java/com/fireblocks/sdk/model/IssueApiUserPairingTokenResponse.java new file mode 100644 index 00000000..395df730 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/IssueApiUserPairingTokenResponse.java @@ -0,0 +1,390 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** IssueApiUserPairingTokenResponse */ +@JsonPropertyOrder({ + IssueApiUserPairingTokenResponse.JSON_PROPERTY_ID, + IssueApiUserPairingTokenResponse.JSON_PROPERTY_NAME, + IssueApiUserPairingTokenResponse.JSON_PROPERTY_ROLE, + IssueApiUserPairingTokenResponse.JSON_PROPERTY_ENABLED, + IssueApiUserPairingTokenResponse.JSON_PROPERTY_USER_TYPE, + IssueApiUserPairingTokenResponse.JSON_PROPERTY_STATUS, + IssueApiUserPairingTokenResponse.JSON_PROPERTY_PAIRING_TOKEN +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class IssueApiUserPairingTokenResponse { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private String id; + + public static final String JSON_PROPERTY_NAME = "name"; + @jakarta.annotation.Nullable private String name; + + public static final String JSON_PROPERTY_ROLE = "role"; + @jakarta.annotation.Nonnull private UserRole role; + + public static final String JSON_PROPERTY_ENABLED = "enabled"; + @jakarta.annotation.Nonnull private Boolean enabled; + + public static final String JSON_PROPERTY_USER_TYPE = "userType"; + @jakarta.annotation.Nullable private UserType userType; + + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nullable private UserStatus status; + + public static final String JSON_PROPERTY_PAIRING_TOKEN = "pairingToken"; + @jakarta.annotation.Nonnull private String pairingToken; + + public IssueApiUserPairingTokenResponse() {} + + @JsonCreator + public IssueApiUserPairingTokenResponse( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, + @JsonProperty(value = JSON_PROPERTY_ROLE, required = true) UserRole role, + @JsonProperty(value = JSON_PROPERTY_ENABLED, required = true) Boolean enabled, + @JsonProperty(value = JSON_PROPERTY_PAIRING_TOKEN, required = true) + String pairingToken) { + this.id = id; + this.role = role; + this.enabled = enabled; + this.pairingToken = pairingToken; + } + + public IssueApiUserPairingTokenResponse id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * The unique identifier of the user + * + * @return id + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + public IssueApiUserPairingTokenResponse name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * The name of the user + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + public IssueApiUserPairingTokenResponse role(@jakarta.annotation.Nonnull UserRole role) { + this.role = role; + return this; + } + + /** + * Get role + * + * @return role + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ROLE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UserRole getRole() { + return role; + } + + @JsonProperty(JSON_PROPERTY_ROLE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRole(@jakarta.annotation.Nonnull UserRole role) { + this.role = role; + } + + public IssueApiUserPairingTokenResponse enabled(@jakarta.annotation.Nonnull Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Whether the user is enabled + * + * @return enabled + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ENABLED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getEnabled() { + return enabled; + } + + @JsonProperty(JSON_PROPERTY_ENABLED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setEnabled(@jakarta.annotation.Nonnull Boolean enabled) { + this.enabled = enabled; + } + + public IssueApiUserPairingTokenResponse userType( + @jakarta.annotation.Nullable UserType userType) { + this.userType = userType; + return this; + } + + /** + * Get userType + * + * @return userType + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_USER_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public UserType getUserType() { + return userType; + } + + @JsonProperty(JSON_PROPERTY_USER_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setUserType(@jakarta.annotation.Nullable UserType userType) { + this.userType = userType; + } + + public IssueApiUserPairingTokenResponse status(@jakarta.annotation.Nullable UserStatus status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public UserStatus getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setStatus(@jakarta.annotation.Nullable UserStatus status) { + this.status = status; + } + + public IssueApiUserPairingTokenResponse pairingToken( + @jakarta.annotation.Nonnull String pairingToken) { + this.pairingToken = pairingToken; + return this; + } + + /** + * The device pairing token issued for the given user + * + * @return pairingToken + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_PAIRING_TOKEN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getPairingToken() { + return pairingToken; + } + + @JsonProperty(JSON_PROPERTY_PAIRING_TOKEN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setPairingToken(@jakarta.annotation.Nonnull String pairingToken) { + this.pairingToken = pairingToken; + } + + /** Return true if this IssueApiUserPairingTokenResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IssueApiUserPairingTokenResponse issueApiUserPairingTokenResponse = + (IssueApiUserPairingTokenResponse) o; + return Objects.equals(this.id, issueApiUserPairingTokenResponse.id) + && Objects.equals(this.name, issueApiUserPairingTokenResponse.name) + && Objects.equals(this.role, issueApiUserPairingTokenResponse.role) + && Objects.equals(this.enabled, issueApiUserPairingTokenResponse.enabled) + && Objects.equals(this.userType, issueApiUserPairingTokenResponse.userType) + && Objects.equals(this.status, issueApiUserPairingTokenResponse.status) + && Objects.equals(this.pairingToken, issueApiUserPairingTokenResponse.pairingToken); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, role, enabled, userType, status, pairingToken); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IssueApiUserPairingTokenResponse {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" userType: ").append(toIndentedString(userType)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" pairingToken: ").append(toIndentedString(pairingToken)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `id` to the URL query string + if (getId() != null) { + joiner.add( + String.format( + "%sid%s=%s", + prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId())))); + } + + // add `name` to the URL query string + if (getName() != null) { + joiner.add( + String.format( + "%sname%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getName())))); + } + + // add `role` to the URL query string + if (getRole() != null) { + joiner.add( + String.format( + "%srole%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRole())))); + } + + // add `enabled` to the URL query string + if (getEnabled() != null) { + joiner.add( + String.format( + "%senabled%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getEnabled())))); + } + + // add `userType` to the URL query string + if (getUserType() != null) { + joiner.add( + String.format( + "%suserType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getUserType())))); + } + + // add `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + // add `pairingToken` to the URL query string + if (getPairingToken() != null) { + joiner.add( + String.format( + "%spairingToken%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPairingToken())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/Manifest.java b/src/main/java/com/fireblocks/sdk/model/Manifest.java index d3ba6010..bc8dc455 100644 --- a/src/main/java/com/fireblocks/sdk/model/Manifest.java +++ b/src/main/java/com/fireblocks/sdk/model/Manifest.java @@ -24,8 +24,7 @@ @JsonPropertyOrder({ Manifest.JSON_PROPERTY_ORDER, Manifest.JSON_PROPERTY_QUOTE, - Manifest.JSON_PROPERTY_RATE, - Manifest.JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY + Manifest.JSON_PROPERTY_RATE }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -40,12 +39,6 @@ public class Manifest { public static final String JSON_PROPERTY_RATE = "rate"; @jakarta.annotation.Nonnull private ManifestBase rate; - public static final String JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY = - "participantsIdentificationPolicy"; - - @jakarta.annotation.Nullable - private ParticipantsIdentificationPolicy participantsIdentificationPolicy; - public Manifest() {} @JsonCreator @@ -127,33 +120,6 @@ public void setRate(@jakarta.annotation.Nonnull ManifestBase rate) { this.rate = rate; } - public Manifest participantsIdentificationPolicy( - @jakarta.annotation.Nullable - ParticipantsIdentificationPolicy participantsIdentificationPolicy) { - this.participantsIdentificationPolicy = participantsIdentificationPolicy; - return this; - } - - /** - * Get participantsIdentificationPolicy - * - * @return participantsIdentificationPolicy - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public ParticipantsIdentificationPolicy getParticipantsIdentificationPolicy() { - return participantsIdentificationPolicy; - } - - @JsonProperty(JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setParticipantsIdentificationPolicy( - @jakarta.annotation.Nullable - ParticipantsIdentificationPolicy participantsIdentificationPolicy) { - this.participantsIdentificationPolicy = participantsIdentificationPolicy; - } - /** Return true if this Manifest object is equal to o. */ @Override public boolean equals(Object o) { @@ -166,15 +132,12 @@ public boolean equals(Object o) { Manifest manifest = (Manifest) o; return Objects.equals(this.order, manifest.order) && Objects.equals(this.quote, manifest.quote) - && Objects.equals(this.rate, manifest.rate) - && Objects.equals( - this.participantsIdentificationPolicy, - manifest.participantsIdentificationPolicy); + && Objects.equals(this.rate, manifest.rate); } @Override public int hashCode() { - return Objects.hash(order, quote, rate, participantsIdentificationPolicy); + return Objects.hash(order, quote, rate); } @Override @@ -184,9 +147,6 @@ public String toString() { sb.append(" order: ").append(toIndentedString(order)).append("\n"); sb.append(" quote: ").append(toIndentedString(quote)).append("\n"); sb.append(" rate: ").append(toIndentedString(rate)).append("\n"); - sb.append(" participantsIdentificationPolicy: ") - .append(toIndentedString(participantsIdentificationPolicy)) - .append("\n"); sb.append("}"); return sb.toString(); } @@ -249,14 +209,6 @@ public String toUrlQueryString(String prefix) { joiner.add(getRate().toUrlQueryString(prefix + "rate" + suffix)); } - // add `participantsIdentificationPolicy` to the URL query string - if (getParticipantsIdentificationPolicy() != null) { - joiner.add( - getParticipantsIdentificationPolicy() - .toUrlQueryString( - prefix + "participantsIdentificationPolicy" + suffix)); - } - return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/ManifestBase.java b/src/main/java/com/fireblocks/sdk/model/ManifestBase.java index ebbfcff1..cde0a374 100644 --- a/src/main/java/com/fireblocks/sdk/model/ManifestBase.java +++ b/src/main/java/com/fireblocks/sdk/model/ManifestBase.java @@ -18,11 +18,17 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; import java.util.StringJoiner; /** Base manifest schema with common properties */ -@JsonPropertyOrder({ManifestBase.JSON_PROPERTY_SUPPORTED}) +@JsonPropertyOrder({ + ManifestBase.JSON_PROPERTY_SUPPORTED, + ManifestBase.JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY, + ManifestBase.JSON_PROPERTY_SUPPORTED_PARTIES +}) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") @@ -30,6 +36,15 @@ public class ManifestBase { public static final String JSON_PROPERTY_SUPPORTED = "supported"; @jakarta.annotation.Nonnull private Boolean supported; + public static final String JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY = + "participantsIdentificationPolicy"; + + @jakarta.annotation.Nullable + private ParticipantsIdentificationPolicy participantsIdentificationPolicy; + + public static final String JSON_PROPERTY_SUPPORTED_PARTIES = "supportedParties"; + @jakarta.annotation.Nullable private List supportedParties; + public ManifestBase() {} @JsonCreator @@ -61,6 +76,66 @@ public void setSupported(@jakarta.annotation.Nonnull Boolean supported) { this.supported = supported; } + public ManifestBase participantsIdentificationPolicy( + @jakarta.annotation.Nullable + ParticipantsIdentificationPolicy participantsIdentificationPolicy) { + this.participantsIdentificationPolicy = participantsIdentificationPolicy; + return this; + } + + /** + * Get participantsIdentificationPolicy + * + * @return participantsIdentificationPolicy + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ParticipantsIdentificationPolicy getParticipantsIdentificationPolicy() { + return participantsIdentificationPolicy; + } + + @JsonProperty(JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setParticipantsIdentificationPolicy( + @jakarta.annotation.Nullable + ParticipantsIdentificationPolicy participantsIdentificationPolicy) { + this.participantsIdentificationPolicy = participantsIdentificationPolicy; + } + + public ManifestBase supportedParties( + @jakarta.annotation.Nullable List supportedParties) { + this.supportedParties = supportedParties; + return this; + } + + public ManifestBase addSupportedPartiesItem(ParticipantRelationshipType supportedPartiesItem) { + if (this.supportedParties == null) { + this.supportedParties = new ArrayList<>(); + } + this.supportedParties.add(supportedPartiesItem); + return this; + } + + /** + * The participant party types the provider supports for this endpoint. + * + * @return supportedParties + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SUPPORTED_PARTIES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getSupportedParties() { + return supportedParties; + } + + @JsonProperty(JSON_PROPERTY_SUPPORTED_PARTIES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSupportedParties( + @jakarta.annotation.Nullable List supportedParties) { + this.supportedParties = supportedParties; + } + /** Return true if this ManifestBase object is equal to o. */ @Override public boolean equals(Object o) { @@ -71,12 +146,16 @@ public boolean equals(Object o) { return false; } ManifestBase manifestBase = (ManifestBase) o; - return Objects.equals(this.supported, manifestBase.supported); + return Objects.equals(this.supported, manifestBase.supported) + && Objects.equals( + this.participantsIdentificationPolicy, + manifestBase.participantsIdentificationPolicy) + && Objects.equals(this.supportedParties, manifestBase.supportedParties); } @Override public int hashCode() { - return Objects.hash(supported); + return Objects.hash(supported, participantsIdentificationPolicy, supportedParties); } @Override @@ -84,6 +163,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ManifestBase {\n"); sb.append(" supported: ").append(toIndentedString(supported)).append("\n"); + sb.append(" participantsIdentificationPolicy: ") + .append(toIndentedString(participantsIdentificationPolicy)) + .append("\n"); + sb.append(" supportedParties: ").append(toIndentedString(supportedParties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -141,6 +224,34 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getSupported())))); } + // add `participantsIdentificationPolicy` to the URL query string + if (getParticipantsIdentificationPolicy() != null) { + joiner.add( + getParticipantsIdentificationPolicy() + .toUrlQueryString( + prefix + "participantsIdentificationPolicy" + suffix)); + } + + // add `supportedParties` to the URL query string + if (getSupportedParties() != null) { + for (int i = 0; i < getSupportedParties().size(); i++) { + if (getSupportedParties().get(i) != null) { + joiner.add( + String.format( + "%ssupportedParties%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString( + getSupportedParties().get(i))))); + } + } + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/ManifestOrder.java b/src/main/java/com/fireblocks/sdk/model/ManifestOrder.java index 9e238114..ac55683c 100644 --- a/src/main/java/com/fireblocks/sdk/model/ManifestOrder.java +++ b/src/main/java/com/fireblocks/sdk/model/ManifestOrder.java @@ -26,8 +26,11 @@ /** ManifestOrder */ @JsonPropertyOrder({ ManifestOrder.JSON_PROPERTY_SUPPORTED, + ManifestOrder.JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY, + ManifestOrder.JSON_PROPERTY_SUPPORTED_PARTIES, ManifestOrder.JSON_PROPERTY_SETTLEMENT_TYPES, - ManifestOrder.JSON_PROPERTY_EXECUTION_TYPES + ManifestOrder.JSON_PROPERTY_EXECUTION_TYPES, + ManifestOrder.JSON_PROPERTY_REQUIRES_REASON_FOR_PAYMENT }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -36,12 +39,25 @@ public class ManifestOrder { public static final String JSON_PROPERTY_SUPPORTED = "supported"; @jakarta.annotation.Nonnull private Boolean supported; + public static final String JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY = + "participantsIdentificationPolicy"; + + @jakarta.annotation.Nullable + private ParticipantsIdentificationPolicy participantsIdentificationPolicy; + + public static final String JSON_PROPERTY_SUPPORTED_PARTIES = "supportedParties"; + @jakarta.annotation.Nullable private List supportedParties; + public static final String JSON_PROPERTY_SETTLEMENT_TYPES = "settlementTypes"; @jakarta.annotation.Nullable private List settlementTypes; public static final String JSON_PROPERTY_EXECUTION_TYPES = "executionTypes"; @jakarta.annotation.Nonnull private List executionTypes; + public static final String JSON_PROPERTY_REQUIRES_REASON_FOR_PAYMENT = + "requiresReasonForPayment"; + @jakarta.annotation.Nullable private Boolean requiresReasonForPayment; + public ManifestOrder() {} @JsonCreator @@ -76,6 +92,66 @@ public void setSupported(@jakarta.annotation.Nonnull Boolean supported) { this.supported = supported; } + public ManifestOrder participantsIdentificationPolicy( + @jakarta.annotation.Nullable + ParticipantsIdentificationPolicy participantsIdentificationPolicy) { + this.participantsIdentificationPolicy = participantsIdentificationPolicy; + return this; + } + + /** + * Get participantsIdentificationPolicy + * + * @return participantsIdentificationPolicy + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ParticipantsIdentificationPolicy getParticipantsIdentificationPolicy() { + return participantsIdentificationPolicy; + } + + @JsonProperty(JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setParticipantsIdentificationPolicy( + @jakarta.annotation.Nullable + ParticipantsIdentificationPolicy participantsIdentificationPolicy) { + this.participantsIdentificationPolicy = participantsIdentificationPolicy; + } + + public ManifestOrder supportedParties( + @jakarta.annotation.Nullable List supportedParties) { + this.supportedParties = supportedParties; + return this; + } + + public ManifestOrder addSupportedPartiesItem(ParticipantRelationshipType supportedPartiesItem) { + if (this.supportedParties == null) { + this.supportedParties = new ArrayList<>(); + } + this.supportedParties.add(supportedPartiesItem); + return this; + } + + /** + * The participant party types the provider supports for this endpoint. + * + * @return supportedParties + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SUPPORTED_PARTIES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getSupportedParties() { + return supportedParties; + } + + @JsonProperty(JSON_PROPERTY_SUPPORTED_PARTIES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSupportedParties( + @jakarta.annotation.Nullable List supportedParties) { + this.supportedParties = supportedParties; + } + public ManifestOrder settlementTypes( @jakarta.annotation.Nullable List settlementTypes) { this.settlementTypes = settlementTypes; @@ -143,6 +219,33 @@ public void setExecutionTypes( this.executionTypes = executionTypes; } + public ManifestOrder requiresReasonForPayment( + @jakarta.annotation.Nullable Boolean requiresReasonForPayment) { + this.requiresReasonForPayment = requiresReasonForPayment; + return this; + } + + /** + * Information about the source and purpose of the funds being transacted. Used by providers + * that require additional context for compliance and reporting. Provide this field when the + * provider manifest indicates it is required. + * + * @return requiresReasonForPayment + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_REQUIRES_REASON_FOR_PAYMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getRequiresReasonForPayment() { + return requiresReasonForPayment; + } + + @JsonProperty(JSON_PROPERTY_REQUIRES_REASON_FOR_PAYMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setRequiresReasonForPayment( + @jakarta.annotation.Nullable Boolean requiresReasonForPayment) { + this.requiresReasonForPayment = requiresReasonForPayment; + } + /** Return true if this ManifestOrder object is equal to o. */ @Override public boolean equals(Object o) { @@ -154,13 +257,25 @@ public boolean equals(Object o) { } ManifestOrder manifestOrder = (ManifestOrder) o; return Objects.equals(this.supported, manifestOrder.supported) + && Objects.equals( + this.participantsIdentificationPolicy, + manifestOrder.participantsIdentificationPolicy) + && Objects.equals(this.supportedParties, manifestOrder.supportedParties) && Objects.equals(this.settlementTypes, manifestOrder.settlementTypes) - && Objects.equals(this.executionTypes, manifestOrder.executionTypes); + && Objects.equals(this.executionTypes, manifestOrder.executionTypes) + && Objects.equals( + this.requiresReasonForPayment, manifestOrder.requiresReasonForPayment); } @Override public int hashCode() { - return Objects.hash(supported, settlementTypes, executionTypes); + return Objects.hash( + supported, + participantsIdentificationPolicy, + supportedParties, + settlementTypes, + executionTypes, + requiresReasonForPayment); } @Override @@ -168,8 +283,15 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ManifestOrder {\n"); sb.append(" supported: ").append(toIndentedString(supported)).append("\n"); + sb.append(" participantsIdentificationPolicy: ") + .append(toIndentedString(participantsIdentificationPolicy)) + .append("\n"); + sb.append(" supportedParties: ").append(toIndentedString(supportedParties)).append("\n"); sb.append(" settlementTypes: ").append(toIndentedString(settlementTypes)).append("\n"); sb.append(" executionTypes: ").append(toIndentedString(executionTypes)).append("\n"); + sb.append(" requiresReasonForPayment: ") + .append(toIndentedString(requiresReasonForPayment)) + .append("\n"); sb.append("}"); return sb.toString(); } @@ -227,6 +349,34 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getSupported())))); } + // add `participantsIdentificationPolicy` to the URL query string + if (getParticipantsIdentificationPolicy() != null) { + joiner.add( + getParticipantsIdentificationPolicy() + .toUrlQueryString( + prefix + "participantsIdentificationPolicy" + suffix)); + } + + // add `supportedParties` to the URL query string + if (getSupportedParties() != null) { + for (int i = 0; i < getSupportedParties().size(); i++) { + if (getSupportedParties().get(i) != null) { + joiner.add( + String.format( + "%ssupportedParties%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString( + getSupportedParties().get(i))))); + } + } + } + // add `settlementTypes` to the URL query string if (getSettlementTypes() != null) { for (int i = 0; i < getSettlementTypes().size(); i++) { @@ -265,6 +415,17 @@ public String toUrlQueryString(String prefix) { } } + // add `requiresReasonForPayment` to the URL query string + if (getRequiresReasonForPayment() != null) { + joiner.add( + String.format( + "%srequiresReasonForPayment%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getRequiresReasonForPayment())))); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/ManifestOrderInfo.java b/src/main/java/com/fireblocks/sdk/model/ManifestOrderInfo.java index db89c718..5818085a 100644 --- a/src/main/java/com/fireblocks/sdk/model/ManifestOrderInfo.java +++ b/src/main/java/com/fireblocks/sdk/model/ManifestOrderInfo.java @@ -26,7 +26,8 @@ /** Defines requirements for the POST /orders endpoint. */ @JsonPropertyOrder({ ManifestOrderInfo.JSON_PROPERTY_SETTLEMENT_TYPES, - ManifestOrderInfo.JSON_PROPERTY_EXECUTION_TYPES + ManifestOrderInfo.JSON_PROPERTY_EXECUTION_TYPES, + ManifestOrderInfo.JSON_PROPERTY_REQUIRES_REASON_FOR_PAYMENT }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -38,6 +39,10 @@ public class ManifestOrderInfo { public static final String JSON_PROPERTY_EXECUTION_TYPES = "executionTypes"; @jakarta.annotation.Nonnull private List executionTypes; + public static final String JSON_PROPERTY_REQUIRES_REASON_FOR_PAYMENT = + "requiresReasonForPayment"; + @jakarta.annotation.Nullable private Boolean requiresReasonForPayment; + public ManifestOrderInfo() {} @JsonCreator @@ -114,6 +119,33 @@ public void setExecutionTypes( this.executionTypes = executionTypes; } + public ManifestOrderInfo requiresReasonForPayment( + @jakarta.annotation.Nullable Boolean requiresReasonForPayment) { + this.requiresReasonForPayment = requiresReasonForPayment; + return this; + } + + /** + * Information about the source and purpose of the funds being transacted. Used by providers + * that require additional context for compliance and reporting. Provide this field when the + * provider manifest indicates it is required. + * + * @return requiresReasonForPayment + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_REQUIRES_REASON_FOR_PAYMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getRequiresReasonForPayment() { + return requiresReasonForPayment; + } + + @JsonProperty(JSON_PROPERTY_REQUIRES_REASON_FOR_PAYMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setRequiresReasonForPayment( + @jakarta.annotation.Nullable Boolean requiresReasonForPayment) { + this.requiresReasonForPayment = requiresReasonForPayment; + } + /** Return true if this ManifestOrderInfo object is equal to o. */ @Override public boolean equals(Object o) { @@ -125,12 +157,14 @@ public boolean equals(Object o) { } ManifestOrderInfo manifestOrderInfo = (ManifestOrderInfo) o; return Objects.equals(this.settlementTypes, manifestOrderInfo.settlementTypes) - && Objects.equals(this.executionTypes, manifestOrderInfo.executionTypes); + && Objects.equals(this.executionTypes, manifestOrderInfo.executionTypes) + && Objects.equals( + this.requiresReasonForPayment, manifestOrderInfo.requiresReasonForPayment); } @Override public int hashCode() { - return Objects.hash(settlementTypes, executionTypes); + return Objects.hash(settlementTypes, executionTypes, requiresReasonForPayment); } @Override @@ -139,6 +173,9 @@ public String toString() { sb.append("class ManifestOrderInfo {\n"); sb.append(" settlementTypes: ").append(toIndentedString(settlementTypes)).append("\n"); sb.append(" executionTypes: ").append(toIndentedString(executionTypes)).append("\n"); + sb.append(" requiresReasonForPayment: ") + .append(toIndentedString(requiresReasonForPayment)) + .append("\n"); sb.append("}"); return sb.toString(); } @@ -224,6 +261,17 @@ public String toUrlQueryString(String prefix) { } } + // add `requiresReasonForPayment` to the URL query string + if (getRequiresReasonForPayment() != null) { + joiner.add( + String.format( + "%srequiresReasonForPayment%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getRequiresReasonForPayment())))); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/ManifestQuote.java b/src/main/java/com/fireblocks/sdk/model/ManifestQuote.java index ffbf1b71..0e1be8fe 100644 --- a/src/main/java/com/fireblocks/sdk/model/ManifestQuote.java +++ b/src/main/java/com/fireblocks/sdk/model/ManifestQuote.java @@ -26,6 +26,8 @@ /** ManifestQuote */ @JsonPropertyOrder({ ManifestQuote.JSON_PROPERTY_SUPPORTED, + ManifestQuote.JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY, + ManifestQuote.JSON_PROPERTY_SUPPORTED_PARTIES, ManifestQuote.JSON_PROPERTY_SETTLEMENT_TYPES }) @jakarta.annotation.Generated( @@ -35,6 +37,15 @@ public class ManifestQuote { public static final String JSON_PROPERTY_SUPPORTED = "supported"; @jakarta.annotation.Nonnull private Boolean supported; + public static final String JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY = + "participantsIdentificationPolicy"; + + @jakarta.annotation.Nullable + private ParticipantsIdentificationPolicy participantsIdentificationPolicy; + + public static final String JSON_PROPERTY_SUPPORTED_PARTIES = "supportedParties"; + @jakarta.annotation.Nullable private List supportedParties; + public static final String JSON_PROPERTY_SETTLEMENT_TYPES = "settlementTypes"; @jakarta.annotation.Nullable private List settlementTypes; @@ -69,6 +80,66 @@ public void setSupported(@jakarta.annotation.Nonnull Boolean supported) { this.supported = supported; } + public ManifestQuote participantsIdentificationPolicy( + @jakarta.annotation.Nullable + ParticipantsIdentificationPolicy participantsIdentificationPolicy) { + this.participantsIdentificationPolicy = participantsIdentificationPolicy; + return this; + } + + /** + * Get participantsIdentificationPolicy + * + * @return participantsIdentificationPolicy + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ParticipantsIdentificationPolicy getParticipantsIdentificationPolicy() { + return participantsIdentificationPolicy; + } + + @JsonProperty(JSON_PROPERTY_PARTICIPANTS_IDENTIFICATION_POLICY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setParticipantsIdentificationPolicy( + @jakarta.annotation.Nullable + ParticipantsIdentificationPolicy participantsIdentificationPolicy) { + this.participantsIdentificationPolicy = participantsIdentificationPolicy; + } + + public ManifestQuote supportedParties( + @jakarta.annotation.Nullable List supportedParties) { + this.supportedParties = supportedParties; + return this; + } + + public ManifestQuote addSupportedPartiesItem(ParticipantRelationshipType supportedPartiesItem) { + if (this.supportedParties == null) { + this.supportedParties = new ArrayList<>(); + } + this.supportedParties.add(supportedPartiesItem); + return this; + } + + /** + * The participant party types the provider supports for this endpoint. + * + * @return supportedParties + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SUPPORTED_PARTIES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getSupportedParties() { + return supportedParties; + } + + @JsonProperty(JSON_PROPERTY_SUPPORTED_PARTIES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setSupportedParties( + @jakarta.annotation.Nullable List supportedParties) { + this.supportedParties = supportedParties; + } + public ManifestQuote settlementTypes( @jakarta.annotation.Nullable List settlementTypes) { this.settlementTypes = settlementTypes; @@ -114,12 +185,17 @@ public boolean equals(Object o) { } ManifestQuote manifestQuote = (ManifestQuote) o; return Objects.equals(this.supported, manifestQuote.supported) + && Objects.equals( + this.participantsIdentificationPolicy, + manifestQuote.participantsIdentificationPolicy) + && Objects.equals(this.supportedParties, manifestQuote.supportedParties) && Objects.equals(this.settlementTypes, manifestQuote.settlementTypes); } @Override public int hashCode() { - return Objects.hash(supported, settlementTypes); + return Objects.hash( + supported, participantsIdentificationPolicy, supportedParties, settlementTypes); } @Override @@ -127,6 +203,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ManifestQuote {\n"); sb.append(" supported: ").append(toIndentedString(supported)).append("\n"); + sb.append(" participantsIdentificationPolicy: ") + .append(toIndentedString(participantsIdentificationPolicy)) + .append("\n"); + sb.append(" supportedParties: ").append(toIndentedString(supportedParties)).append("\n"); sb.append(" settlementTypes: ").append(toIndentedString(settlementTypes)).append("\n"); sb.append("}"); return sb.toString(); @@ -185,6 +265,34 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getSupported())))); } + // add `participantsIdentificationPolicy` to the URL query string + if (getParticipantsIdentificationPolicy() != null) { + joiner.add( + getParticipantsIdentificationPolicy() + .toUrlQueryString( + prefix + "participantsIdentificationPolicy" + suffix)); + } + + // add `supportedParties` to the URL query string + if (getSupportedParties() != null) { + for (int i = 0; i < getSupportedParties().size(); i++) { + if (getSupportedParties().get(i) != null) { + joiner.add( + String.format( + "%ssupportedParties%s%s=%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", containerPrefix, i, containerSuffix), + ApiClient.urlEncode( + ApiClient.valueToString( + getSupportedParties().get(i))))); + } + } + } + // add `settlementTypes` to the URL query string if (getSettlementTypes() != null) { for (int i = 0; i < getSettlementTypes().size(); i++) { diff --git a/src/main/java/com/fireblocks/sdk/model/Opportunity.java b/src/main/java/com/fireblocks/sdk/model/Opportunity.java index 466efbe3..7761d4de 100644 --- a/src/main/java/com/fireblocks/sdk/model/Opportunity.java +++ b/src/main/java/com/fireblocks/sdk/model/Opportunity.java @@ -40,6 +40,7 @@ Opportunity.JSON_PROPERTY_APY, Opportunity.JSON_PROPERTY_PERFORMANCE_FEE, Opportunity.JSON_PROPERTY_MANAGEMENT_FEE, + Opportunity.JSON_PROPERTY_EXPOSURE_TYPE, Opportunity.JSON_PROPERTY_EXPOSURE }) @jakarta.annotation.Generated( @@ -154,6 +155,47 @@ public static TypeEnum fromValue(String value) { public static final String JSON_PROPERTY_MANAGEMENT_FEE = "managementFee"; @jakarta.annotation.Nullable private String managementFee; + /** + * What the `exposure` rows represent; `UNSPECIFIED` when there is no + * exposure. + */ + public enum ExposureTypeEnum { + UNSPECIFIED(String.valueOf("UNSPECIFIED")), + + VAULT_ALLOCATION(String.valueOf("VAULT_ALLOCATION")), + + MARKET_COLLATERAL(String.valueOf("MARKET_COLLATERAL")); + + private String value; + + ExposureTypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ExposureTypeEnum fromValue(String value) { + for (ExposureTypeEnum b : ExposureTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + } + + public static final String JSON_PROPERTY_EXPOSURE_TYPE = "exposureType"; + @jakarta.annotation.Nullable private ExposureTypeEnum exposureType; + public static final String JSON_PROPERTY_EXPOSURE = "exposure"; @jakarta.annotation.Nullable private List exposure; @@ -481,6 +523,30 @@ public void setManagementFee(@jakarta.annotation.Nullable String managementFee) this.managementFee = managementFee; } + public Opportunity exposureType(@jakarta.annotation.Nullable ExposureTypeEnum exposureType) { + this.exposureType = exposureType; + return this; + } + + /** + * What the `exposure` rows represent; `UNSPECIFIED` when there is no + * exposure. + * + * @return exposureType + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EXPOSURE_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ExposureTypeEnum getExposureType() { + return exposureType; + } + + @JsonProperty(JSON_PROPERTY_EXPOSURE_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setExposureType(@jakarta.annotation.Nullable ExposureTypeEnum exposureType) { + this.exposureType = exposureType; + } + public Opportunity exposure(@jakarta.annotation.Nullable List exposure) { this.exposure = exposure; return this; @@ -495,7 +561,8 @@ public Opportunity addExposureItem(Exposure exposureItem) { } /** - * Optional per-asset exposure breakdown. + * Per-asset exposure breakdown (vault allocation slices, top 20 by USD notional). Empty when + * not applicable. * * @return exposure */ @@ -536,6 +603,7 @@ public boolean equals(Object o) { && Objects.equals(this.apy, opportunity.apy) && Objects.equals(this.performanceFee, opportunity.performanceFee) && Objects.equals(this.managementFee, opportunity.managementFee) + && Objects.equals(this.exposureType, opportunity.exposureType) && Objects.equals(this.exposure, opportunity.exposure); } @@ -556,6 +624,7 @@ public int hashCode() { apy, performanceFee, managementFee, + exposureType, exposure); } @@ -577,6 +646,7 @@ public String toString() { sb.append(" apy: ").append(toIndentedString(apy)).append("\n"); sb.append(" performanceFee: ").append(toIndentedString(performanceFee)).append("\n"); sb.append(" managementFee: ").append(toIndentedString(managementFee)).append("\n"); + sb.append(" exposureType: ").append(toIndentedString(exposureType)).append("\n"); sb.append(" exposure: ").append(toIndentedString(exposure)).append("\n"); sb.append("}"); return sb.toString(); @@ -748,6 +818,16 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getManagementFee())))); } + // add `exposureType` to the URL query string + if (getExposureType() != null) { + joiner.add( + String.format( + "%sexposureType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getExposureType())))); + } + // add `exposure` to the URL query string if (getExposure() != null) { for (int i = 0; i < getExposure().size(); i++) { diff --git a/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicy.java b/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicy.java index 6b2db094..a6e832ce 100644 --- a/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicy.java +++ b/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicy.java @@ -17,35 +17,28 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fireblocks.sdk.ApiClient; import java.util.ArrayList; -import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; -import java.util.Set; import java.util.StringJoiner; /** * 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) + * Schemas. `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) */ @JsonPropertyOrder({ - ParticipantsIdentificationPolicy.JSON_PROPERTY_SUPPORTED_ENDPOINTS, ParticipantsIdentificationPolicy.JSON_PROPERTY_DEFAULT_SCHEMA, ParticipantsIdentificationPolicy.JSON_PROPERTY_OVERRIDES }) @@ -53,11 +46,6 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class ParticipantsIdentificationPolicy { - public static final String JSON_PROPERTY_SUPPORTED_ENDPOINTS = "supportedEndpoints"; - - @jakarta.annotation.Nonnull - private Set supportedEndpoints; - public static final String JSON_PROPERTY_DEFAULT_SCHEMA = "defaultSchema"; @jakarta.annotation.Nonnull private String defaultSchema; @@ -68,54 +56,11 @@ public ParticipantsIdentificationPolicy() {} @JsonCreator public ParticipantsIdentificationPolicy( - @JsonProperty(value = JSON_PROPERTY_SUPPORTED_ENDPOINTS, required = true) - Set supportedEndpoints, @JsonProperty(value = JSON_PROPERTY_DEFAULT_SCHEMA, required = true) String defaultSchema) { - this.supportedEndpoints = supportedEndpoints; this.defaultSchema = defaultSchema; } - public ParticipantsIdentificationPolicy supportedEndpoints( - @jakarta.annotation.Nonnull - Set supportedEndpoints) { - this.supportedEndpoints = supportedEndpoints; - return this; - } - - public ParticipantsIdentificationPolicy addSupportedEndpointsItem( - ParticipantsIdentificationSupportedEndpoint supportedEndpointsItem) { - if (this.supportedEndpoints == null) { - this.supportedEndpoints = new LinkedHashSet<>(); - } - this.supportedEndpoints.add(supportedEndpointsItem); - return this; - } - - /** - * 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. - * - * @return supportedEndpoints - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SUPPORTED_ENDPOINTS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Set getSupportedEndpoints() { - return supportedEndpoints; - } - - @JsonDeserialize(as = LinkedHashSet.class) - @JsonProperty(JSON_PROPERTY_SUPPORTED_ENDPOINTS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setSupportedEndpoints( - @jakarta.annotation.Nonnull - Set supportedEndpoints) { - this.supportedEndpoints = supportedEndpoints; - } - public ParticipantsIdentificationPolicy defaultSchema( @jakarta.annotation.Nonnull String defaultSchema) { this.defaultSchema = defaultSchema; @@ -124,8 +69,8 @@ public ParticipantsIdentificationPolicy defaultSchema( /** * 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 + * object on requests where the provider manifest declares a + * `participantsIdentificationPolicy` for that endpoint (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, @@ -198,26 +143,19 @@ public boolean equals(Object o) { } ParticipantsIdentificationPolicy participantsIdentificationPolicy = (ParticipantsIdentificationPolicy) o; - return Objects.equals( - this.supportedEndpoints, - participantsIdentificationPolicy.supportedEndpoints) - && Objects.equals( - this.defaultSchema, participantsIdentificationPolicy.defaultSchema) + return Objects.equals(this.defaultSchema, participantsIdentificationPolicy.defaultSchema) && Objects.equals(this.overrides, participantsIdentificationPolicy.overrides); } @Override public int hashCode() { - return Objects.hash(supportedEndpoints, defaultSchema, overrides); + return Objects.hash(defaultSchema, overrides); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ParticipantsIdentificationPolicy {\n"); - sb.append(" supportedEndpoints: ") - .append(toIndentedString(supportedEndpoints)) - .append("\n"); sb.append(" defaultSchema: ").append(toIndentedString(defaultSchema)).append("\n"); sb.append(" overrides: ").append(toIndentedString(overrides)).append("\n"); sb.append("}"); @@ -267,26 +205,6 @@ public String toUrlQueryString(String prefix) { StringJoiner joiner = new StringJoiner("&"); - // add `supportedEndpoints` to the URL query string - if (getSupportedEndpoints() != null) { - int i = 0; - for (ParticipantsIdentificationSupportedEndpoint _item : getSupportedEndpoints()) { - if (_item != null) { - joiner.add( - String.format( - "%ssupportedEndpoints%s%s=%s", - prefix, - suffix, - "".equals(suffix) - ? "" - : String.format( - "%s%d%s", containerPrefix, i, containerSuffix), - ApiClient.urlEncode(ApiClient.valueToString(_item)))); - } - i++; - } - } - // add `defaultSchema` to the URL query string if (getDefaultSchema() != null) { joiner.add( diff --git a/src/main/java/com/fireblocks/sdk/model/PayidAddress.java b/src/main/java/com/fireblocks/sdk/model/PayidAddress.java index 3af6e308..543f0fb8 100644 --- a/src/main/java/com/fireblocks/sdk/model/PayidAddress.java +++ b/src/main/java/com/fireblocks/sdk/model/PayidAddress.java @@ -78,7 +78,7 @@ public static TypeEnum fromValue(String value) { @jakarta.annotation.Nullable private String bsb; public static final String JSON_PROPERTY_ACCOUNT_NUMBER = "accountNumber"; - @jakarta.annotation.Nonnull private String accountNumber; + @jakarta.annotation.Nullable private String accountNumber; public PayidAddress() {} @@ -87,13 +87,10 @@ public PayidAddress( @JsonProperty(value = JSON_PROPERTY_ACCOUNT_HOLDER, required = true) AccountHolderDetails accountHolder, @JsonProperty(value = JSON_PROPERTY_VALUE, required = true) String value, - @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type, - @JsonProperty(value = JSON_PROPERTY_ACCOUNT_NUMBER, required = true) - String accountNumber) { + @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type) { this.accountHolder = accountHolder; this.value = value; this.type = type; - this.accountNumber = accountNumber; } public PayidAddress accountHolder( @@ -189,7 +186,7 @@ public void setBsb(@jakarta.annotation.Nullable String bsb) { this.bsb = bsb; } - public PayidAddress accountNumber(@jakarta.annotation.Nonnull String accountNumber) { + public PayidAddress accountNumber(@jakarta.annotation.Nullable String accountNumber) { this.accountNumber = accountNumber; return this; } @@ -199,16 +196,16 @@ public PayidAddress accountNumber(@jakarta.annotation.Nonnull String accountNumb * * @return accountNumber */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_ACCOUNT_NUMBER) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public String getAccountNumber() { return accountNumber; } @JsonProperty(JSON_PROPERTY_ACCOUNT_NUMBER) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setAccountNumber(@jakarta.annotation.Nonnull String accountNumber) { + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAccountNumber(@jakarta.annotation.Nullable String accountNumber) { this.accountNumber = accountNumber; } diff --git a/src/main/java/com/fireblocks/sdk/model/PayidPaymentInfo.java b/src/main/java/com/fireblocks/sdk/model/PayidPaymentInfo.java index 2024318c..3285a2cb 100644 --- a/src/main/java/com/fireblocks/sdk/model/PayidPaymentInfo.java +++ b/src/main/java/com/fireblocks/sdk/model/PayidPaymentInfo.java @@ -153,7 +153,7 @@ public static TypeEnum fromValue(String value) { @jakarta.annotation.Nonnull private TypeEnum type; public static final String JSON_PROPERTY_BSB = "bsb"; - @jakarta.annotation.Nullable private String bsb; + @jakarta.annotation.Nonnull private String bsb; public static final String JSON_PROPERTY_ACCOUNT_NUMBER = "accountNumber"; @jakarta.annotation.Nonnull private String accountNumber; @@ -172,6 +172,7 @@ public PayidPaymentInfo( @JsonProperty(value = JSON_PROPERTY_COUNTRY, required = true) String country, @JsonProperty(value = JSON_PROPERTY_VALUE, required = true) String value, @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) TypeEnum type, + @JsonProperty(value = JSON_PROPERTY_BSB, required = true) String bsb, @JsonProperty(value = JSON_PROPERTY_ACCOUNT_NUMBER, required = true) String accountNumber) { this.rail = rail; @@ -181,6 +182,7 @@ public PayidPaymentInfo( this.country = country; this.value = value; this.type = type; + this.bsb = bsb; this.accountNumber = accountNumber; } @@ -350,7 +352,7 @@ public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public PayidPaymentInfo bsb(@jakarta.annotation.Nullable String bsb) { + public PayidPaymentInfo bsb(@jakarta.annotation.Nonnull String bsb) { this.bsb = bsb; return this; } @@ -360,16 +362,16 @@ public PayidPaymentInfo bsb(@jakarta.annotation.Nullable String bsb) { * * @return bsb */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_BSB) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getBsb() { return bsb; } @JsonProperty(JSON_PROPERTY_BSB) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setBsb(@jakarta.annotation.Nullable String bsb) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setBsb(@jakarta.annotation.Nonnull String bsb) { this.bsb = bsb; } diff --git a/src/main/java/com/fireblocks/sdk/model/PolicyMetadata.java b/src/main/java/com/fireblocks/sdk/model/PolicyMetadataEntry.java similarity index 74% rename from src/main/java/com/fireblocks/sdk/model/PolicyMetadata.java rename to src/main/java/com/fireblocks/sdk/model/PolicyMetadataEntry.java index e8e35f44..5f211037 100644 --- a/src/main/java/com/fireblocks/sdk/model/PolicyMetadata.java +++ b/src/main/java/com/fireblocks/sdk/model/PolicyMetadataEntry.java @@ -13,7 +13,6 @@ package com.fireblocks.sdk.model; -import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; @@ -21,18 +20,17 @@ import java.util.Objects; import java.util.StringJoiner; -/** Policy metadata */ +/** Policy metadata entry (per policy type) */ @JsonPropertyOrder({ - PolicyMetadata.JSON_PROPERTY_EDITED_BY, - PolicyMetadata.JSON_PROPERTY_EDITED_AT, - PolicyMetadata.JSON_PROPERTY_PUBLISHED_BY, - PolicyMetadata.JSON_PROPERTY_PUBLISHED_AT, - PolicyMetadata.JSON_PROPERTY_POLICY_TYPE + PolicyMetadataEntry.JSON_PROPERTY_EDITED_BY, + PolicyMetadataEntry.JSON_PROPERTY_EDITED_AT, + PolicyMetadataEntry.JSON_PROPERTY_PUBLISHED_BY, + PolicyMetadataEntry.JSON_PROPERTY_PUBLISHED_AT }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") -public class PolicyMetadata { +public class PolicyMetadataEntry { public static final String JSON_PROPERTY_EDITED_BY = "editedBy"; @jakarta.annotation.Nullable private String editedBy; @@ -45,19 +43,9 @@ public class PolicyMetadata { public static final String JSON_PROPERTY_PUBLISHED_AT = "publishedAt"; @jakarta.annotation.Nullable private String publishedAt; - public static final String JSON_PROPERTY_POLICY_TYPE = "policyType"; - @jakarta.annotation.Nonnull private PolicyType policyType; + public PolicyMetadataEntry() {} - public PolicyMetadata() {} - - @JsonCreator - public PolicyMetadata( - @JsonProperty(value = JSON_PROPERTY_POLICY_TYPE, required = true) - PolicyType policyType) { - this.policyType = policyType; - } - - public PolicyMetadata editedBy(@jakarta.annotation.Nullable String editedBy) { + public PolicyMetadataEntry editedBy(@jakarta.annotation.Nullable String editedBy) { this.editedBy = editedBy; return this; } @@ -80,7 +68,7 @@ public void setEditedBy(@jakarta.annotation.Nullable String editedBy) { this.editedBy = editedBy; } - public PolicyMetadata editedAt(@jakarta.annotation.Nullable String editedAt) { + public PolicyMetadataEntry editedAt(@jakarta.annotation.Nullable String editedAt) { this.editedAt = editedAt; return this; } @@ -103,7 +91,7 @@ public void setEditedAt(@jakarta.annotation.Nullable String editedAt) { this.editedAt = editedAt; } - public PolicyMetadata publishedBy(@jakarta.annotation.Nullable String publishedBy) { + public PolicyMetadataEntry publishedBy(@jakarta.annotation.Nullable String publishedBy) { this.publishedBy = publishedBy; return this; } @@ -126,7 +114,7 @@ public void setPublishedBy(@jakarta.annotation.Nullable String publishedBy) { this.publishedBy = publishedBy; } - public PolicyMetadata publishedAt(@jakarta.annotation.Nullable String publishedAt) { + public PolicyMetadataEntry publishedAt(@jakarta.annotation.Nullable String publishedAt) { this.publishedAt = publishedAt; return this; } @@ -149,30 +137,7 @@ public void setPublishedAt(@jakarta.annotation.Nullable String publishedAt) { this.publishedAt = publishedAt; } - public PolicyMetadata policyType(@jakarta.annotation.Nonnull PolicyType policyType) { - this.policyType = policyType; - return this; - } - - /** - * Get policyType - * - * @return policyType - */ - @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_POLICY_TYPE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public PolicyType getPolicyType() { - return policyType; - } - - @JsonProperty(JSON_PROPERTY_POLICY_TYPE) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setPolicyType(@jakarta.annotation.Nonnull PolicyType policyType) { - this.policyType = policyType; - } - - /** Return true if this PolicyMetadata object is equal to o. */ + /** Return true if this PolicyMetadataEntry object is equal to o. */ @Override public boolean equals(Object o) { if (this == o) { @@ -181,28 +146,26 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - PolicyMetadata policyMetadata = (PolicyMetadata) o; - return Objects.equals(this.editedBy, policyMetadata.editedBy) - && Objects.equals(this.editedAt, policyMetadata.editedAt) - && Objects.equals(this.publishedBy, policyMetadata.publishedBy) - && Objects.equals(this.publishedAt, policyMetadata.publishedAt) - && Objects.equals(this.policyType, policyMetadata.policyType); + PolicyMetadataEntry policyMetadataEntry = (PolicyMetadataEntry) o; + return Objects.equals(this.editedBy, policyMetadataEntry.editedBy) + && Objects.equals(this.editedAt, policyMetadataEntry.editedAt) + && Objects.equals(this.publishedBy, policyMetadataEntry.publishedBy) + && Objects.equals(this.publishedAt, policyMetadataEntry.publishedAt); } @Override public int hashCode() { - return Objects.hash(editedBy, editedAt, publishedBy, publishedAt, policyType); + return Objects.hash(editedBy, editedAt, publishedBy, publishedAt); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class PolicyMetadata {\n"); + sb.append("class PolicyMetadataEntry {\n"); sb.append(" editedBy: ").append(toIndentedString(editedBy)).append("\n"); sb.append(" editedAt: ").append(toIndentedString(editedAt)).append("\n"); sb.append(" publishedBy: ").append(toIndentedString(publishedBy)).append("\n"); sb.append(" publishedAt: ").append(toIndentedString(publishedAt)).append("\n"); - sb.append(" policyType: ").append(toIndentedString(policyType)).append("\n"); sb.append("}"); return sb.toString(); } @@ -290,16 +253,6 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getPublishedAt())))); } - // add `policyType` to the URL query string - if (getPolicyType() != null) { - joiner.add( - String.format( - "%spolicyType%s=%s", - prefix, - suffix, - ApiClient.urlEncode(ApiClient.valueToString(getPolicyType())))); - } - return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/PolicyResponse.java b/src/main/java/com/fireblocks/sdk/model/PolicyResponse.java index d9b45943..83db21c7 100644 --- a/src/main/java/com/fireblocks/sdk/model/PolicyResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/PolicyResponse.java @@ -18,7 +18,9 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.StringJoiner; @@ -32,7 +34,7 @@ public class PolicyResponse { @jakarta.annotation.Nonnull private List rules; public static final String JSON_PROPERTY_METADATA = "metadata"; - @jakarta.annotation.Nonnull private PolicyMetadata metadata; + @jakarta.annotation.Nonnull private Map metadata; public PolicyResponse() {} @@ -40,7 +42,7 @@ public PolicyResponse() {} public PolicyResponse( @JsonProperty(value = JSON_PROPERTY_RULES, required = true) List rules, @JsonProperty(value = JSON_PROPERTY_METADATA, required = true) - PolicyMetadata metadata) { + Map metadata) { this.rules = rules; this.metadata = metadata; } @@ -76,26 +78,35 @@ public void setRules(@jakarta.annotation.Nonnull List rules) { this.rules = rules; } - public PolicyResponse metadata(@jakarta.annotation.Nonnull PolicyMetadata metadata) { + public PolicyResponse metadata( + @jakarta.annotation.Nonnull Map metadata) { this.metadata = metadata; return this; } + public PolicyResponse putMetadataItem(String key, PolicyMetadataEntry metadataItem) { + if (this.metadata == null) { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, metadataItem); + return this; + } + /** - * Get metadata + * Policy metadata keyed by policy type * * @return metadata */ @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_METADATA) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public PolicyMetadata getMetadata() { + public Map getMetadata() { return metadata; } @JsonProperty(JSON_PROPERTY_METADATA) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setMetadata(@jakarta.annotation.Nonnull PolicyMetadata metadata) { + public void setMetadata(@jakarta.annotation.Nonnull Map metadata) { this.metadata = metadata; } @@ -196,7 +207,25 @@ public String toUrlQueryString(String prefix) { // add `metadata` to the URL query string if (getMetadata() != null) { - joiner.add(getMetadata().toUrlQueryString(prefix + "metadata" + suffix)); + for (String _key : getMetadata().keySet()) { + if (getMetadata().get(_key) != null) { + joiner.add( + getMetadata() + .get(_key) + .toUrlQueryString( + String.format( + "%smetadata%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + _key, + containerSuffix)))); + } + } } return joiner.toString(); diff --git a/src/main/java/com/fireblocks/sdk/model/Position2.java b/src/main/java/com/fireblocks/sdk/model/Position2.java index cd1e4d76..50acc4e5 100644 --- a/src/main/java/com/fireblocks/sdk/model/Position2.java +++ b/src/main/java/com/fireblocks/sdk/model/Position2.java @@ -42,14 +42,15 @@ Position2.JSON_PROPERTY_CREATED_AT, Position2.JSON_PROPERTY_UPDATED_AT, Position2.JSON_PROPERTY_LAST_SYNCED_AT, - Position2.JSON_PROPERTY_AVAILABLE_ACTIONS + Position2.JSON_PROPERTY_AVAILABLE_ACTIONS, + Position2.JSON_PROPERTY_YIELD }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") public class Position2 { public static final String JSON_PROPERTY_ID = "id"; - @jakarta.annotation.Nullable private String id; + @jakarta.annotation.Nonnull private String id; /** Lifecycle status of the position. */ public enum StatusEnum { @@ -85,10 +86,10 @@ public static StatusEnum fromValue(String value) { } public static final String JSON_PROPERTY_STATUS = "status"; - @jakarta.annotation.Nullable private StatusEnum status; + @jakarta.annotation.Nonnull private StatusEnum status; public static final String JSON_PROPERTY_IN_FLIGHT = "inFlight"; - @jakarta.annotation.Nullable private Boolean inFlight; + @jakarta.annotation.Nonnull private Boolean inFlight; /** Whether the position is lend- or borrow-side. */ public enum PositionTypeEnum { @@ -124,16 +125,16 @@ public static PositionTypeEnum fromValue(String value) { } public static final String JSON_PROPERTY_POSITION_TYPE = "positionType"; - @jakarta.annotation.Nullable private PositionTypeEnum positionType; + @jakarta.annotation.Nonnull private PositionTypeEnum positionType; public static final String JSON_PROPERTY_VAULT_ACCOUNT_ID = "vaultAccountId"; - @jakarta.annotation.Nullable private String vaultAccountId; + @jakarta.annotation.Nonnull private String vaultAccountId; public static final String JSON_PROPERTY_OPPORTUNITY_ID = "opportunityId"; - @jakarta.annotation.Nullable private String opportunityId; + @jakarta.annotation.Nonnull private String opportunityId; public static final String JSON_PROPERTY_CHAIN_ID = "chainId"; - @jakarta.annotation.Nullable private String chainId; + @jakarta.annotation.Nonnull private String chainId; /** Lending protocol. */ public enum ProviderIdEnum { @@ -169,7 +170,7 @@ public static ProviderIdEnum fromValue(String value) { } public static final String JSON_PROPERTY_PROVIDER_ID = "providerId"; - @jakarta.annotation.Nullable private ProviderIdEnum providerId; + @jakarta.annotation.Nonnull private ProviderIdEnum providerId; /** Whether the position was opened natively in Fireblocks or imported externally. */ public enum OriginEnum { @@ -205,25 +206,25 @@ public static OriginEnum fromValue(String value) { } public static final String JSON_PROPERTY_ORIGIN = "origin"; - @jakarta.annotation.Nullable private OriginEnum origin; + @jakarta.annotation.Nonnull private OriginEnum origin; public static final String JSON_PROPERTY_PRINCIPAL_ASSET_ID = "principalAssetId"; - @jakarta.annotation.Nullable private String principalAssetId; + @jakarta.annotation.Nonnull private String principalAssetId; public static final String JSON_PROPERTY_POSITION_ASSET_ID = "positionAssetId"; - @jakarta.annotation.Nullable private String positionAssetId; + @jakarta.annotation.Nonnull private String positionAssetId; public static final String JSON_PROPERTY_PRINCIPAL_BALANCE = "principalBalance"; - @jakarta.annotation.Nullable private String principalBalance; + @jakarta.annotation.Nonnull private String principalBalance; public static final String JSON_PROPERTY_POSITION_BALANCE = "positionBalance"; - @jakarta.annotation.Nullable private String positionBalance; + @jakarta.annotation.Nonnull private String positionBalance; public static final String JSON_PROPERTY_CREATED_AT = "createdAt"; - @jakarta.annotation.Nullable private String createdAt; + @jakarta.annotation.Nonnull private String createdAt; public static final String JSON_PROPERTY_UPDATED_AT = "updatedAt"; - @jakarta.annotation.Nullable private String updatedAt; + @jakarta.annotation.Nonnull private String updatedAt; public static final String JSON_PROPERTY_LAST_SYNCED_AT = "lastSyncedAt"; @jakarta.annotation.Nullable private String lastSyncedAt; @@ -262,11 +263,59 @@ public static AvailableActionsEnum fromValue(String value) { } public static final String JSON_PROPERTY_AVAILABLE_ACTIONS = "availableActions"; - @jakarta.annotation.Nullable private List availableActions; + @jakarta.annotation.Nonnull private List availableActions; + + public static final String JSON_PROPERTY_YIELD = "yield"; + @jakarta.annotation.Nullable private String yield; public Position2() {} - public Position2 id(@jakarta.annotation.Nullable String id) { + @JsonCreator + public Position2( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) StatusEnum status, + @JsonProperty(value = JSON_PROPERTY_IN_FLIGHT, required = true) Boolean inFlight, + @JsonProperty(value = JSON_PROPERTY_POSITION_TYPE, required = true) + PositionTypeEnum positionType, + @JsonProperty(value = JSON_PROPERTY_VAULT_ACCOUNT_ID, required = true) + String vaultAccountId, + @JsonProperty(value = JSON_PROPERTY_OPPORTUNITY_ID, required = true) + String opportunityId, + @JsonProperty(value = JSON_PROPERTY_CHAIN_ID, required = true) String chainId, + @JsonProperty(value = JSON_PROPERTY_PROVIDER_ID, required = true) + ProviderIdEnum providerId, + @JsonProperty(value = JSON_PROPERTY_ORIGIN, required = true) OriginEnum origin, + @JsonProperty(value = JSON_PROPERTY_PRINCIPAL_ASSET_ID, required = true) + String principalAssetId, + @JsonProperty(value = JSON_PROPERTY_POSITION_ASSET_ID, required = true) + String positionAssetId, + @JsonProperty(value = JSON_PROPERTY_PRINCIPAL_BALANCE, required = true) + String principalBalance, + @JsonProperty(value = JSON_PROPERTY_POSITION_BALANCE, required = true) + String positionBalance, + @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true) String createdAt, + @JsonProperty(value = JSON_PROPERTY_UPDATED_AT, required = true) String updatedAt, + @JsonProperty(value = JSON_PROPERTY_AVAILABLE_ACTIONS, required = true) + List availableActions) { + this.id = id; + this.status = status; + this.inFlight = inFlight; + this.positionType = positionType; + this.vaultAccountId = vaultAccountId; + this.opportunityId = opportunityId; + this.chainId = chainId; + this.providerId = providerId; + this.origin = origin; + this.principalAssetId = principalAssetId; + this.positionAssetId = positionAssetId; + this.principalBalance = principalBalance; + this.positionBalance = positionBalance; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.availableActions = availableActions; + } + + public Position2 id(@jakarta.annotation.Nonnull String id) { this.id = id; return this; } @@ -276,20 +325,20 @@ public Position2 id(@jakarta.annotation.Nullable String id) { * * @return id */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getId() { return id; } @JsonProperty(JSON_PROPERTY_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setId(@jakarta.annotation.Nullable String id) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } - public Position2 status(@jakarta.annotation.Nullable StatusEnum status) { + public Position2 status(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; return this; } @@ -299,20 +348,20 @@ public Position2 status(@jakarta.annotation.Nullable StatusEnum status) { * * @return status */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public StatusEnum getStatus() { return status; } @JsonProperty(JSON_PROPERTY_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setStatus(@jakarta.annotation.Nullable StatusEnum status) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; } - public Position2 inFlight(@jakarta.annotation.Nullable Boolean inFlight) { + public Position2 inFlight(@jakarta.annotation.Nonnull Boolean inFlight) { this.inFlight = inFlight; return this; } @@ -322,20 +371,20 @@ public Position2 inFlight(@jakarta.annotation.Nullable Boolean inFlight) { * * @return inFlight */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_IN_FLIGHT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public Boolean getInFlight() { return inFlight; } @JsonProperty(JSON_PROPERTY_IN_FLIGHT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setInFlight(@jakarta.annotation.Nullable Boolean inFlight) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setInFlight(@jakarta.annotation.Nonnull Boolean inFlight) { this.inFlight = inFlight; } - public Position2 positionType(@jakarta.annotation.Nullable PositionTypeEnum positionType) { + public Position2 positionType(@jakarta.annotation.Nonnull PositionTypeEnum positionType) { this.positionType = positionType; return this; } @@ -345,20 +394,20 @@ public Position2 positionType(@jakarta.annotation.Nullable PositionTypeEnum posi * * @return positionType */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_POSITION_TYPE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public PositionTypeEnum getPositionType() { return positionType; } @JsonProperty(JSON_PROPERTY_POSITION_TYPE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPositionType(@jakarta.annotation.Nullable PositionTypeEnum positionType) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setPositionType(@jakarta.annotation.Nonnull PositionTypeEnum positionType) { this.positionType = positionType; } - public Position2 vaultAccountId(@jakarta.annotation.Nullable String vaultAccountId) { + public Position2 vaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) { this.vaultAccountId = vaultAccountId; return this; } @@ -368,20 +417,20 @@ public Position2 vaultAccountId(@jakarta.annotation.Nullable String vaultAccount * * @return vaultAccountId */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getVaultAccountId() { return vaultAccountId; } @JsonProperty(JSON_PROPERTY_VAULT_ACCOUNT_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVaultAccountId(@jakarta.annotation.Nullable String vaultAccountId) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setVaultAccountId(@jakarta.annotation.Nonnull String vaultAccountId) { this.vaultAccountId = vaultAccountId; } - public Position2 opportunityId(@jakarta.annotation.Nullable String opportunityId) { + public Position2 opportunityId(@jakarta.annotation.Nonnull String opportunityId) { this.opportunityId = opportunityId; return this; } @@ -391,20 +440,20 @@ public Position2 opportunityId(@jakarta.annotation.Nullable String opportunityId * * @return opportunityId */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_OPPORTUNITY_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getOpportunityId() { return opportunityId; } @JsonProperty(JSON_PROPERTY_OPPORTUNITY_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setOpportunityId(@jakarta.annotation.Nullable String opportunityId) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOpportunityId(@jakarta.annotation.Nonnull String opportunityId) { this.opportunityId = opportunityId; } - public Position2 chainId(@jakarta.annotation.Nullable String chainId) { + public Position2 chainId(@jakarta.annotation.Nonnull String chainId) { this.chainId = chainId; return this; } @@ -414,20 +463,20 @@ public Position2 chainId(@jakarta.annotation.Nullable String chainId) { * * @return chainId */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_CHAIN_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getChainId() { return chainId; } @JsonProperty(JSON_PROPERTY_CHAIN_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setChainId(@jakarta.annotation.Nullable String chainId) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setChainId(@jakarta.annotation.Nonnull String chainId) { this.chainId = chainId; } - public Position2 providerId(@jakarta.annotation.Nullable ProviderIdEnum providerId) { + public Position2 providerId(@jakarta.annotation.Nonnull ProviderIdEnum providerId) { this.providerId = providerId; return this; } @@ -437,20 +486,20 @@ public Position2 providerId(@jakarta.annotation.Nullable ProviderIdEnum provider * * @return providerId */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_PROVIDER_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public ProviderIdEnum getProviderId() { return providerId; } @JsonProperty(JSON_PROPERTY_PROVIDER_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setProviderId(@jakarta.annotation.Nullable ProviderIdEnum providerId) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setProviderId(@jakarta.annotation.Nonnull ProviderIdEnum providerId) { this.providerId = providerId; } - public Position2 origin(@jakarta.annotation.Nullable OriginEnum origin) { + public Position2 origin(@jakarta.annotation.Nonnull OriginEnum origin) { this.origin = origin; return this; } @@ -460,20 +509,20 @@ public Position2 origin(@jakarta.annotation.Nullable OriginEnum origin) { * * @return origin */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_ORIGIN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public OriginEnum getOrigin() { return origin; } @JsonProperty(JSON_PROPERTY_ORIGIN) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setOrigin(@jakarta.annotation.Nullable OriginEnum origin) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOrigin(@jakarta.annotation.Nonnull OriginEnum origin) { this.origin = origin; } - public Position2 principalAssetId(@jakarta.annotation.Nullable String principalAssetId) { + public Position2 principalAssetId(@jakarta.annotation.Nonnull String principalAssetId) { this.principalAssetId = principalAssetId; return this; } @@ -483,20 +532,20 @@ public Position2 principalAssetId(@jakarta.annotation.Nullable String principalA * * @return principalAssetId */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_PRINCIPAL_ASSET_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getPrincipalAssetId() { return principalAssetId; } @JsonProperty(JSON_PROPERTY_PRINCIPAL_ASSET_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPrincipalAssetId(@jakarta.annotation.Nullable String principalAssetId) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setPrincipalAssetId(@jakarta.annotation.Nonnull String principalAssetId) { this.principalAssetId = principalAssetId; } - public Position2 positionAssetId(@jakarta.annotation.Nullable String positionAssetId) { + public Position2 positionAssetId(@jakarta.annotation.Nonnull String positionAssetId) { this.positionAssetId = positionAssetId; return this; } @@ -506,20 +555,20 @@ public Position2 positionAssetId(@jakarta.annotation.Nullable String positionAss * * @return positionAssetId */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_POSITION_ASSET_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getPositionAssetId() { return positionAssetId; } @JsonProperty(JSON_PROPERTY_POSITION_ASSET_ID) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPositionAssetId(@jakarta.annotation.Nullable String positionAssetId) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setPositionAssetId(@jakarta.annotation.Nonnull String positionAssetId) { this.positionAssetId = positionAssetId; } - public Position2 principalBalance(@jakarta.annotation.Nullable String principalBalance) { + public Position2 principalBalance(@jakarta.annotation.Nonnull String principalBalance) { this.principalBalance = principalBalance; return this; } @@ -529,20 +578,20 @@ public Position2 principalBalance(@jakarta.annotation.Nullable String principalB * * @return principalBalance */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_PRINCIPAL_BALANCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getPrincipalBalance() { return principalBalance; } @JsonProperty(JSON_PROPERTY_PRINCIPAL_BALANCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPrincipalBalance(@jakarta.annotation.Nullable String principalBalance) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setPrincipalBalance(@jakarta.annotation.Nonnull String principalBalance) { this.principalBalance = principalBalance; } - public Position2 positionBalance(@jakarta.annotation.Nullable String positionBalance) { + public Position2 positionBalance(@jakarta.annotation.Nonnull String positionBalance) { this.positionBalance = positionBalance; return this; } @@ -552,20 +601,20 @@ public Position2 positionBalance(@jakarta.annotation.Nullable String positionBal * * @return positionBalance */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_POSITION_BALANCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getPositionBalance() { return positionBalance; } @JsonProperty(JSON_PROPERTY_POSITION_BALANCE) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setPositionBalance(@jakarta.annotation.Nullable String positionBalance) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setPositionBalance(@jakarta.annotation.Nonnull String positionBalance) { this.positionBalance = positionBalance; } - public Position2 createdAt(@jakarta.annotation.Nullable String createdAt) { + public Position2 createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; } @@ -575,20 +624,20 @@ public Position2 createdAt(@jakarta.annotation.Nullable String createdAt) { * * @return createdAt */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_CREATED_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getCreatedAt() { return createdAt; } @JsonProperty(JSON_PROPERTY_CREATED_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setCreatedAt(@jakarta.annotation.Nullable String createdAt) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; } - public Position2 updatedAt(@jakarta.annotation.Nullable String updatedAt) { + public Position2 updatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; return this; } @@ -598,16 +647,16 @@ public Position2 updatedAt(@jakarta.annotation.Nullable String updatedAt) { * * @return updatedAt */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_UPDATED_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getUpdatedAt() { return updatedAt; } @JsonProperty(JSON_PROPERTY_UPDATED_AT) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setUpdatedAt(@jakarta.annotation.Nullable String updatedAt) { + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; } @@ -635,7 +684,7 @@ public void setLastSyncedAt(@jakarta.annotation.Nullable String lastSyncedAt) { } public Position2 availableActions( - @jakarta.annotation.Nullable List availableActions) { + @jakarta.annotation.Nonnull List availableActions) { this.availableActions = availableActions; return this; } @@ -653,20 +702,43 @@ public Position2 addAvailableActionsItem(AvailableActionsEnum availableActionsIt * * @return availableActions */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_AVAILABLE_ACTIONS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getAvailableActions() { return availableActions; } @JsonProperty(JSON_PROPERTY_AVAILABLE_ACTIONS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setAvailableActions( - @jakarta.annotation.Nullable List availableActions) { + @jakarta.annotation.Nonnull List availableActions) { this.availableActions = availableActions; } + public Position2 yield(@jakarta.annotation.Nullable String yield) { + this.yield = yield; + return this; + } + + /** + * Accrued yield in principal token units (decimal string). Only present for Morpho positions. + * + * @return yield + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_YIELD) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getYield() { + return yield; + } + + @JsonProperty(JSON_PROPERTY_YIELD) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setYield(@jakarta.annotation.Nullable String yield) { + this.yield = yield; + } + /** Return true if this Position-2 object is equal to o. */ @Override public boolean equals(Object o) { @@ -693,7 +765,8 @@ public boolean equals(Object o) { && Objects.equals(this.createdAt, position2.createdAt) && Objects.equals(this.updatedAt, position2.updatedAt) && Objects.equals(this.lastSyncedAt, position2.lastSyncedAt) - && Objects.equals(this.availableActions, position2.availableActions); + && Objects.equals(this.availableActions, position2.availableActions) + && Objects.equals(this.yield, position2.yield); } @Override @@ -715,7 +788,8 @@ public int hashCode() { createdAt, updatedAt, lastSyncedAt, - availableActions); + availableActions, + yield); } @Override @@ -739,6 +813,7 @@ public String toString() { sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append(" lastSyncedAt: ").append(toIndentedString(lastSyncedAt)).append("\n"); sb.append(" availableActions: ").append(toIndentedString(availableActions)).append("\n"); + sb.append(" yield: ").append(toIndentedString(yield)).append("\n"); sb.append("}"); return sb.toString(); } @@ -961,6 +1036,16 @@ public String toUrlQueryString(String prefix) { } } + // add `yield` to the URL query string + if (getYield() != null) { + joiner.add( + String.format( + "%syield%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getYield())))); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/PublishResult.java b/src/main/java/com/fireblocks/sdk/model/PublishResult.java index 587a843e..e0098c1a 100644 --- a/src/main/java/com/fireblocks/sdk/model/PublishResult.java +++ b/src/main/java/com/fireblocks/sdk/model/PublishResult.java @@ -19,7 +19,9 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fireblocks.sdk.ApiClient; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.StringJoiner; @@ -44,7 +46,7 @@ public class PublishResult { @jakarta.annotation.Nonnull private PolicyCheckResult checkResult; public static final String JSON_PROPERTY_METADATA = "metadata"; - @jakarta.annotation.Nonnull private PolicyMetadata metadata; + @jakarta.annotation.Nonnull private Map metadata; public PublishResult() {} @@ -55,7 +57,7 @@ public PublishResult( @JsonProperty(value = JSON_PROPERTY_CHECK_RESULT, required = true) PolicyCheckResult checkResult, @JsonProperty(value = JSON_PROPERTY_METADATA, required = true) - PolicyMetadata metadata) { + Map metadata) { this.status = status; this.rules = rules; this.checkResult = checkResult; @@ -139,26 +141,35 @@ public void setCheckResult(@jakarta.annotation.Nonnull PolicyCheckResult checkRe this.checkResult = checkResult; } - public PublishResult metadata(@jakarta.annotation.Nonnull PolicyMetadata metadata) { + public PublishResult metadata( + @jakarta.annotation.Nonnull Map metadata) { this.metadata = metadata; return this; } + public PublishResult putMetadataItem(String key, PolicyMetadataEntry metadataItem) { + if (this.metadata == null) { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, metadataItem); + return this; + } + /** - * Get metadata + * Policy metadata keyed by policy type * * @return metadata */ @jakarta.annotation.Nonnull @JsonProperty(JSON_PROPERTY_METADATA) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public PolicyMetadata getMetadata() { + public Map getMetadata() { return metadata; } @JsonProperty(JSON_PROPERTY_METADATA) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setMetadata(@jakarta.annotation.Nonnull PolicyMetadata metadata) { + public void setMetadata(@jakarta.annotation.Nonnull Map metadata) { this.metadata = metadata; } @@ -278,7 +289,25 @@ public String toUrlQueryString(String prefix) { // add `metadata` to the URL query string if (getMetadata() != null) { - joiner.add(getMetadata().toUrlQueryString(prefix + "metadata" + suffix)); + for (String _key : getMetadata().keySet()) { + if (getMetadata().get(_key) != null) { + joiner.add( + getMetadata() + .get(_key) + .toUrlQueryString( + String.format( + "%smetadata%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + _key, + containerSuffix)))); + } + } } return joiner.toString(); diff --git a/src/main/java/com/fireblocks/sdk/model/ReportConflictResponse.java b/src/main/java/com/fireblocks/sdk/model/ReportConflictResponse.java new file mode 100644 index 00000000..03077646 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ReportConflictResponse.java @@ -0,0 +1,231 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * Returned when a report with the same type and filters is already being processed for your + * workspace + */ +@JsonPropertyOrder({ + ReportConflictResponse.JSON_PROPERTY_ERROR_CODE, + ReportConflictResponse.JSON_PROPERTY_NAME, + ReportConflictResponse.JSON_PROPERTY_ID +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ReportConflictResponse { + public static final String JSON_PROPERTY_ERROR_CODE = "errorCode"; + @jakarta.annotation.Nonnull private Integer errorCode; + + public static final String JSON_PROPERTY_NAME = "name"; + @jakarta.annotation.Nonnull private String name; + + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private String id; + + public ReportConflictResponse() {} + + @JsonCreator + public ReportConflictResponse( + @JsonProperty(value = JSON_PROPERTY_ERROR_CODE, required = true) Integer errorCode, + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) String name, + @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id) { + this.errorCode = errorCode; + this.name = name; + this.id = id; + } + + public ReportConflictResponse errorCode(@jakarta.annotation.Nonnull Integer errorCode) { + this.errorCode = errorCode; + return this; + } + + /** + * Fireblocks error code for this conflict + * + * @return errorCode + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ERROR_CODE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getErrorCode() { + return errorCode; + } + + @JsonProperty(JSON_PROPERTY_ERROR_CODE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setErrorCode(@jakarta.annotation.Nonnull Integer errorCode) { + this.errorCode = errorCode; + } + + public ReportConflictResponse name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Error name + * + * @return name + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; + } + + public ReportConflictResponse id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * The ID of the report currently being processed. Use this ID to poll for status. + * + * @return id + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + /** Return true if this ReportConflictResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReportConflictResponse reportConflictResponse = (ReportConflictResponse) o; + return Objects.equals(this.errorCode, reportConflictResponse.errorCode) + && Objects.equals(this.name, reportConflictResponse.name) + && Objects.equals(this.id, reportConflictResponse.id); + } + + @Override + public int hashCode() { + return Objects.hash(errorCode, name, id); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ReportConflictResponse {\n"); + sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `errorCode` to the URL query string + if (getErrorCode() != null) { + joiner.add( + String.format( + "%serrorCode%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getErrorCode())))); + } + + // add `name` to the URL query string + if (getName() != null) { + joiner.add( + String.format( + "%sname%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getName())))); + } + + // add `id` to the URL query string + if (getId() != null) { + joiner.add( + String.format( + "%sid%s=%s", + prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ReportJob.java b/src/main/java/com/fireblocks/sdk/model/ReportJob.java new file mode 100644 index 00000000..ee413c80 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ReportJob.java @@ -0,0 +1,572 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * A report job. Optional fields are status-dependent: `completedAt`, + * `rowCount`, and `fileSizeBytes` are present only when `status` is + * `COMPLETED`; `failedAt` is present only when `status` is + * `FAILED`. + */ +@JsonPropertyOrder({ + ReportJob.JSON_PROPERTY_ID, + ReportJob.JSON_PROPERTY_STATUS, + ReportJob.JSON_PROPERTY_REPORT_TYPE, + ReportJob.JSON_PROPERTY_OUTPUT_FORMAT, + ReportJob.JSON_PROPERTY_COMPRESS, + ReportJob.JSON_PROPERTY_REQUESTED_BY_USER_ID, + ReportJob.JSON_PROPERTY_CREATED_AT, + ReportJob.JSON_PROPERTY_COMPLETED_AT, + ReportJob.JSON_PROPERTY_FAILED_AT, + ReportJob.JSON_PROPERTY_ROW_COUNT, + ReportJob.JSON_PROPERTY_FILE_SIZE_BYTES +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ReportJob { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private String id; + + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nonnull private ReportStatus status; + + public static final String JSON_PROPERTY_REPORT_TYPE = "reportType"; + @jakarta.annotation.Nonnull private ReportType reportType; + + public static final String JSON_PROPERTY_OUTPUT_FORMAT = "outputFormat"; + @jakarta.annotation.Nonnull private ReportOutputFormat outputFormat; + + public static final String JSON_PROPERTY_COMPRESS = "compress"; + @jakarta.annotation.Nonnull private Boolean compress; + + public static final String JSON_PROPERTY_REQUESTED_BY_USER_ID = "requestedByUserId"; + @jakarta.annotation.Nonnull private String requestedByUserId; + + public static final String JSON_PROPERTY_CREATED_AT = "createdAt"; + @jakarta.annotation.Nonnull private Long createdAt; + + public static final String JSON_PROPERTY_COMPLETED_AT = "completedAt"; + @jakarta.annotation.Nullable private Long completedAt; + + public static final String JSON_PROPERTY_FAILED_AT = "failedAt"; + @jakarta.annotation.Nullable private Long failedAt; + + public static final String JSON_PROPERTY_ROW_COUNT = "rowCount"; + @jakarta.annotation.Nullable private Integer rowCount; + + public static final String JSON_PROPERTY_FILE_SIZE_BYTES = "fileSizeBytes"; + @jakarta.annotation.Nullable private Long fileSizeBytes; + + public ReportJob() {} + + @JsonCreator + public ReportJob( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) ReportStatus status, + @JsonProperty(value = JSON_PROPERTY_REPORT_TYPE, required = true) ReportType reportType, + @JsonProperty(value = JSON_PROPERTY_OUTPUT_FORMAT, required = true) + ReportOutputFormat outputFormat, + @JsonProperty(value = JSON_PROPERTY_COMPRESS, required = true) Boolean compress, + @JsonProperty(value = JSON_PROPERTY_REQUESTED_BY_USER_ID, required = true) + String requestedByUserId, + @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true) Long createdAt) { + this.id = id; + this.status = status; + this.reportType = reportType; + this.outputFormat = outputFormat; + this.compress = compress; + this.requestedByUserId = requestedByUserId; + this.createdAt = createdAt; + } + + public ReportJob id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the report job + * + * @return id + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + public ReportJob status(@jakarta.annotation.Nonnull ReportStatus status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ReportStatus getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus(@jakarta.annotation.Nonnull ReportStatus status) { + this.status = status; + } + + public ReportJob reportType(@jakarta.annotation.Nonnull ReportType reportType) { + this.reportType = reportType; + return this; + } + + /** + * Get reportType + * + * @return reportType + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_REPORT_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ReportType getReportType() { + return reportType; + } + + @JsonProperty(JSON_PROPERTY_REPORT_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setReportType(@jakarta.annotation.Nonnull ReportType reportType) { + this.reportType = reportType; + } + + public ReportJob outputFormat(@jakarta.annotation.Nonnull ReportOutputFormat outputFormat) { + this.outputFormat = outputFormat; + return this; + } + + /** + * Get outputFormat + * + * @return outputFormat + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OUTPUT_FORMAT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ReportOutputFormat getOutputFormat() { + return outputFormat; + } + + @JsonProperty(JSON_PROPERTY_OUTPUT_FORMAT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOutputFormat(@jakarta.annotation.Nonnull ReportOutputFormat outputFormat) { + this.outputFormat = outputFormat; + } + + public ReportJob compress(@jakarta.annotation.Nonnull Boolean compress) { + this.compress = compress; + return this; + } + + /** + * Whether the output file is gzip-compressed + * + * @return compress + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_COMPRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getCompress() { + return compress; + } + + @JsonProperty(JSON_PROPERTY_COMPRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setCompress(@jakarta.annotation.Nonnull Boolean compress) { + this.compress = compress; + } + + public ReportJob requestedByUserId(@jakarta.annotation.Nonnull String requestedByUserId) { + this.requestedByUserId = requestedByUserId; + return this; + } + + /** + * ID of the user who requested the report + * + * @return requestedByUserId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_REQUESTED_BY_USER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getRequestedByUserId() { + return requestedByUserId; + } + + @JsonProperty(JSON_PROPERTY_REQUESTED_BY_USER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRequestedByUserId(@jakarta.annotation.Nonnull String requestedByUserId) { + this.requestedByUserId = requestedByUserId; + } + + public ReportJob createdAt(@jakarta.annotation.Nonnull Long createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Epoch milliseconds (UTC) when the job was created + * + * @return createdAt + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getCreatedAt() { + return createdAt; + } + + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setCreatedAt(@jakarta.annotation.Nonnull Long createdAt) { + this.createdAt = createdAt; + } + + public ReportJob completedAt(@jakarta.annotation.Nullable Long completedAt) { + this.completedAt = completedAt; + return this; + } + + /** + * Epoch milliseconds (UTC) when the report completed. Only present when `status` is + * `COMPLETED`. + * + * @return completedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPLETED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getCompletedAt() { + return completedAt; + } + + @JsonProperty(JSON_PROPERTY_COMPLETED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setCompletedAt(@jakarta.annotation.Nullable Long completedAt) { + this.completedAt = completedAt; + } + + public ReportJob failedAt(@jakarta.annotation.Nullable Long failedAt) { + this.failedAt = failedAt; + return this; + } + + /** + * Epoch milliseconds (UTC) when the report failed. Only present when `status` is + * `FAILED`. + * + * @return failedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FAILED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getFailedAt() { + return failedAt; + } + + @JsonProperty(JSON_PROPERTY_FAILED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFailedAt(@jakarta.annotation.Nullable Long failedAt) { + this.failedAt = failedAt; + } + + public ReportJob rowCount(@jakarta.annotation.Nullable Integer rowCount) { + this.rowCount = rowCount; + return this; + } + + /** + * Number of rows in the report file. Only present when `status` is + * `COMPLETED`. + * + * @return rowCount + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ROW_COUNT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getRowCount() { + return rowCount; + } + + @JsonProperty(JSON_PROPERTY_ROW_COUNT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setRowCount(@jakarta.annotation.Nullable Integer rowCount) { + this.rowCount = rowCount; + } + + public ReportJob fileSizeBytes(@jakarta.annotation.Nullable Long fileSizeBytes) { + this.fileSizeBytes = fileSizeBytes; + return this; + } + + /** + * Size of the report file in bytes (includes compression when `compress` is + * `true`). Only present when `status` is `COMPLETED`. + * + * @return fileSizeBytes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FILE_SIZE_BYTES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getFileSizeBytes() { + return fileSizeBytes; + } + + @JsonProperty(JSON_PROPERTY_FILE_SIZE_BYTES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFileSizeBytes(@jakarta.annotation.Nullable Long fileSizeBytes) { + this.fileSizeBytes = fileSizeBytes; + } + + /** Return true if this ReportJob object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReportJob reportJob = (ReportJob) o; + return Objects.equals(this.id, reportJob.id) + && Objects.equals(this.status, reportJob.status) + && Objects.equals(this.reportType, reportJob.reportType) + && Objects.equals(this.outputFormat, reportJob.outputFormat) + && Objects.equals(this.compress, reportJob.compress) + && Objects.equals(this.requestedByUserId, reportJob.requestedByUserId) + && Objects.equals(this.createdAt, reportJob.createdAt) + && Objects.equals(this.completedAt, reportJob.completedAt) + && Objects.equals(this.failedAt, reportJob.failedAt) + && Objects.equals(this.rowCount, reportJob.rowCount) + && Objects.equals(this.fileSizeBytes, reportJob.fileSizeBytes); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + status, + reportType, + outputFormat, + compress, + requestedByUserId, + createdAt, + completedAt, + failedAt, + rowCount, + fileSizeBytes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ReportJob {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" reportType: ").append(toIndentedString(reportType)).append("\n"); + sb.append(" outputFormat: ").append(toIndentedString(outputFormat)).append("\n"); + sb.append(" compress: ").append(toIndentedString(compress)).append("\n"); + sb.append(" requestedByUserId: ") + .append(toIndentedString(requestedByUserId)) + .append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" completedAt: ").append(toIndentedString(completedAt)).append("\n"); + sb.append(" failedAt: ").append(toIndentedString(failedAt)).append("\n"); + sb.append(" rowCount: ").append(toIndentedString(rowCount)).append("\n"); + sb.append(" fileSizeBytes: ").append(toIndentedString(fileSizeBytes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `id` to the URL query string + if (getId() != null) { + joiner.add( + String.format( + "%sid%s=%s", + prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId())))); + } + + // add `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + // add `reportType` to the URL query string + if (getReportType() != null) { + joiner.add( + String.format( + "%sreportType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getReportType())))); + } + + // add `outputFormat` to the URL query string + if (getOutputFormat() != null) { + joiner.add( + String.format( + "%soutputFormat%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOutputFormat())))); + } + + // add `compress` to the URL query string + if (getCompress() != null) { + joiner.add( + String.format( + "%scompress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCompress())))); + } + + // add `requestedByUserId` to the URL query string + if (getRequestedByUserId() != null) { + joiner.add( + String.format( + "%srequestedByUserId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRequestedByUserId())))); + } + + // add `createdAt` to the URL query string + if (getCreatedAt() != null) { + joiner.add( + String.format( + "%screatedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCreatedAt())))); + } + + // add `completedAt` to the URL query string + if (getCompletedAt() != null) { + joiner.add( + String.format( + "%scompletedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCompletedAt())))); + } + + // add `failedAt` to the URL query string + if (getFailedAt() != null) { + joiner.add( + String.format( + "%sfailedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getFailedAt())))); + } + + // add `rowCount` to the URL query string + if (getRowCount() != null) { + joiner.add( + String.format( + "%srowCount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRowCount())))); + } + + // add `fileSizeBytes` to the URL query string + if (getFileSizeBytes() != null) { + joiner.add( + String.format( + "%sfileSizeBytes%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getFileSizeBytes())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ReportJobLinks.java b/src/main/java/com/fireblocks/sdk/model/ReportJobLinks.java new file mode 100644 index 00000000..57700429 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ReportJobLinks.java @@ -0,0 +1,199 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * Download URL for the report. Present only when `status` is `COMPLETED`, and + * only on `GET /v1/reports/{reportId}` — not included in list responses. + */ +@JsonPropertyOrder({ + ReportJobLinks.JSON_PROPERTY_DOWNLOAD_URL, + ReportJobLinks.JSON_PROPERTY_DOWNLOAD_URL_EXPIRES_AT +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ReportJobLinks { + public static final String JSON_PROPERTY_DOWNLOAD_URL = "downloadUrl"; + @jakarta.annotation.Nonnull private String downloadUrl; + + public static final String JSON_PROPERTY_DOWNLOAD_URL_EXPIRES_AT = "downloadUrlExpiresAt"; + @jakarta.annotation.Nonnull private Long downloadUrlExpiresAt; + + public ReportJobLinks() {} + + @JsonCreator + public ReportJobLinks( + @JsonProperty(value = JSON_PROPERTY_DOWNLOAD_URL, required = true) String downloadUrl, + @JsonProperty(value = JSON_PROPERTY_DOWNLOAD_URL_EXPIRES_AT, required = true) + Long downloadUrlExpiresAt) { + this.downloadUrl = downloadUrl; + this.downloadUrlExpiresAt = downloadUrlExpiresAt; + } + + public ReportJobLinks downloadUrl(@jakarta.annotation.Nonnull String downloadUrl) { + this.downloadUrl = downloadUrl; + return this; + } + + /** + * URL to download the report file. A new URL is generated on each request to `GET + * /v1/reports/{reportId}` while `status` is `COMPLETED`. Re-poll to + * obtain a fresh URL after the previous one expires (approximately 1 hour). + * + * @return downloadUrl + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_DOWNLOAD_URL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDownloadUrl() { + return downloadUrl; + } + + @JsonProperty(JSON_PROPERTY_DOWNLOAD_URL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setDownloadUrl(@jakarta.annotation.Nonnull String downloadUrl) { + this.downloadUrl = downloadUrl; + } + + public ReportJobLinks downloadUrlExpiresAt( + @jakarta.annotation.Nonnull Long downloadUrlExpiresAt) { + this.downloadUrlExpiresAt = downloadUrlExpiresAt; + return this; + } + + /** + * Epoch milliseconds (UTC) when the download URL expires + * + * @return downloadUrlExpiresAt + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_DOWNLOAD_URL_EXPIRES_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getDownloadUrlExpiresAt() { + return downloadUrlExpiresAt; + } + + @JsonProperty(JSON_PROPERTY_DOWNLOAD_URL_EXPIRES_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setDownloadUrlExpiresAt(@jakarta.annotation.Nonnull Long downloadUrlExpiresAt) { + this.downloadUrlExpiresAt = downloadUrlExpiresAt; + } + + /** Return true if this ReportJobLinks object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReportJobLinks reportJobLinks = (ReportJobLinks) o; + return Objects.equals(this.downloadUrl, reportJobLinks.downloadUrl) + && Objects.equals(this.downloadUrlExpiresAt, reportJobLinks.downloadUrlExpiresAt); + } + + @Override + public int hashCode() { + return Objects.hash(downloadUrl, downloadUrlExpiresAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ReportJobLinks {\n"); + sb.append(" downloadUrl: ").append(toIndentedString(downloadUrl)).append("\n"); + sb.append(" downloadUrlExpiresAt: ") + .append(toIndentedString(downloadUrlExpiresAt)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `downloadUrl` to the URL query string + if (getDownloadUrl() != null) { + joiner.add( + String.format( + "%sdownloadUrl%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getDownloadUrl())))); + } + + // add `downloadUrlExpiresAt` to the URL query string + if (getDownloadUrlExpiresAt() != null) { + joiner.add( + String.format( + "%sdownloadUrlExpiresAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getDownloadUrlExpiresAt())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ReportJobResponse.java b/src/main/java/com/fireblocks/sdk/model/ReportJobResponse.java new file mode 100644 index 00000000..d3aaaaca --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ReportJobResponse.java @@ -0,0 +1,609 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * A report job. Optional fields are status-dependent: `completedAt`, + * `rowCount`, `fileSizeBytes`, and `links` are present only when + * `status` is `COMPLETED`; `failedAt` is present only when + * `status` is `FAILED`. + */ +@JsonPropertyOrder({ + ReportJobResponse.JSON_PROPERTY_ID, + ReportJobResponse.JSON_PROPERTY_STATUS, + ReportJobResponse.JSON_PROPERTY_REPORT_TYPE, + ReportJobResponse.JSON_PROPERTY_OUTPUT_FORMAT, + ReportJobResponse.JSON_PROPERTY_COMPRESS, + ReportJobResponse.JSON_PROPERTY_REQUESTED_BY_USER_ID, + ReportJobResponse.JSON_PROPERTY_CREATED_AT, + ReportJobResponse.JSON_PROPERTY_COMPLETED_AT, + ReportJobResponse.JSON_PROPERTY_FAILED_AT, + ReportJobResponse.JSON_PROPERTY_ROW_COUNT, + ReportJobResponse.JSON_PROPERTY_FILE_SIZE_BYTES, + ReportJobResponse.JSON_PROPERTY_LINKS +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ReportJobResponse { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private String id; + + public static final String JSON_PROPERTY_STATUS = "status"; + @jakarta.annotation.Nonnull private ReportStatus status; + + public static final String JSON_PROPERTY_REPORT_TYPE = "reportType"; + @jakarta.annotation.Nonnull private ReportType reportType; + + public static final String JSON_PROPERTY_OUTPUT_FORMAT = "outputFormat"; + @jakarta.annotation.Nonnull private ReportOutputFormat outputFormat; + + public static final String JSON_PROPERTY_COMPRESS = "compress"; + @jakarta.annotation.Nonnull private Boolean compress; + + public static final String JSON_PROPERTY_REQUESTED_BY_USER_ID = "requestedByUserId"; + @jakarta.annotation.Nonnull private String requestedByUserId; + + public static final String JSON_PROPERTY_CREATED_AT = "createdAt"; + @jakarta.annotation.Nonnull private Long createdAt; + + public static final String JSON_PROPERTY_COMPLETED_AT = "completedAt"; + @jakarta.annotation.Nullable private Long completedAt; + + public static final String JSON_PROPERTY_FAILED_AT = "failedAt"; + @jakarta.annotation.Nullable private Long failedAt; + + public static final String JSON_PROPERTY_ROW_COUNT = "rowCount"; + @jakarta.annotation.Nullable private Integer rowCount; + + public static final String JSON_PROPERTY_FILE_SIZE_BYTES = "fileSizeBytes"; + @jakarta.annotation.Nullable private Long fileSizeBytes; + + public static final String JSON_PROPERTY_LINKS = "links"; + @jakarta.annotation.Nullable private ReportJobLinks links; + + public ReportJobResponse() {} + + @JsonCreator + public ReportJobResponse( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) String id, + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) ReportStatus status, + @JsonProperty(value = JSON_PROPERTY_REPORT_TYPE, required = true) ReportType reportType, + @JsonProperty(value = JSON_PROPERTY_OUTPUT_FORMAT, required = true) + ReportOutputFormat outputFormat, + @JsonProperty(value = JSON_PROPERTY_COMPRESS, required = true) Boolean compress, + @JsonProperty(value = JSON_PROPERTY_REQUESTED_BY_USER_ID, required = true) + String requestedByUserId, + @JsonProperty(value = JSON_PROPERTY_CREATED_AT, required = true) Long createdAt) { + this.id = id; + this.status = status; + this.reportType = reportType; + this.outputFormat = outputFormat; + this.compress = compress; + this.requestedByUserId = requestedByUserId; + this.createdAt = createdAt; + } + + public ReportJobResponse id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the report job + * + * @return id + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + public ReportJobResponse status(@jakarta.annotation.Nonnull ReportStatus status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ReportStatus getStatus() { + return status; + } + + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setStatus(@jakarta.annotation.Nonnull ReportStatus status) { + this.status = status; + } + + public ReportJobResponse reportType(@jakarta.annotation.Nonnull ReportType reportType) { + this.reportType = reportType; + return this; + } + + /** + * Get reportType + * + * @return reportType + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_REPORT_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ReportType getReportType() { + return reportType; + } + + @JsonProperty(JSON_PROPERTY_REPORT_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setReportType(@jakarta.annotation.Nonnull ReportType reportType) { + this.reportType = reportType; + } + + public ReportJobResponse outputFormat( + @jakarta.annotation.Nonnull ReportOutputFormat outputFormat) { + this.outputFormat = outputFormat; + return this; + } + + /** + * Get outputFormat + * + * @return outputFormat + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_OUTPUT_FORMAT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ReportOutputFormat getOutputFormat() { + return outputFormat; + } + + @JsonProperty(JSON_PROPERTY_OUTPUT_FORMAT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setOutputFormat(@jakarta.annotation.Nonnull ReportOutputFormat outputFormat) { + this.outputFormat = outputFormat; + } + + public ReportJobResponse compress(@jakarta.annotation.Nonnull Boolean compress) { + this.compress = compress; + return this; + } + + /** + * Whether the output file is gzip-compressed + * + * @return compress + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_COMPRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getCompress() { + return compress; + } + + @JsonProperty(JSON_PROPERTY_COMPRESS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setCompress(@jakarta.annotation.Nonnull Boolean compress) { + this.compress = compress; + } + + public ReportJobResponse requestedByUserId( + @jakarta.annotation.Nonnull String requestedByUserId) { + this.requestedByUserId = requestedByUserId; + return this; + } + + /** + * ID of the user who requested the report + * + * @return requestedByUserId + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_REQUESTED_BY_USER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getRequestedByUserId() { + return requestedByUserId; + } + + @JsonProperty(JSON_PROPERTY_REQUESTED_BY_USER_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setRequestedByUserId(@jakarta.annotation.Nonnull String requestedByUserId) { + this.requestedByUserId = requestedByUserId; + } + + public ReportJobResponse createdAt(@jakarta.annotation.Nonnull Long createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Epoch milliseconds (UTC) when the job was created + * + * @return createdAt + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getCreatedAt() { + return createdAt; + } + + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setCreatedAt(@jakarta.annotation.Nonnull Long createdAt) { + this.createdAt = createdAt; + } + + public ReportJobResponse completedAt(@jakarta.annotation.Nullable Long completedAt) { + this.completedAt = completedAt; + return this; + } + + /** + * Epoch milliseconds (UTC) when the report completed. Only present when `status` is + * `COMPLETED`. + * + * @return completedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPLETED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getCompletedAt() { + return completedAt; + } + + @JsonProperty(JSON_PROPERTY_COMPLETED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setCompletedAt(@jakarta.annotation.Nullable Long completedAt) { + this.completedAt = completedAt; + } + + public ReportJobResponse failedAt(@jakarta.annotation.Nullable Long failedAt) { + this.failedAt = failedAt; + return this; + } + + /** + * Epoch milliseconds (UTC) when the report failed. Only present when `status` is + * `FAILED`. + * + * @return failedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FAILED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getFailedAt() { + return failedAt; + } + + @JsonProperty(JSON_PROPERTY_FAILED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFailedAt(@jakarta.annotation.Nullable Long failedAt) { + this.failedAt = failedAt; + } + + public ReportJobResponse rowCount(@jakarta.annotation.Nullable Integer rowCount) { + this.rowCount = rowCount; + return this; + } + + /** + * Number of rows in the report file. Only present when `status` is + * `COMPLETED`. + * + * @return rowCount + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ROW_COUNT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getRowCount() { + return rowCount; + } + + @JsonProperty(JSON_PROPERTY_ROW_COUNT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setRowCount(@jakarta.annotation.Nullable Integer rowCount) { + this.rowCount = rowCount; + } + + public ReportJobResponse fileSizeBytes(@jakarta.annotation.Nullable Long fileSizeBytes) { + this.fileSizeBytes = fileSizeBytes; + return this; + } + + /** + * Size of the report file in bytes (includes compression when `compress` is + * `true`). Only present when `status` is `COMPLETED`. + * + * @return fileSizeBytes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FILE_SIZE_BYTES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getFileSizeBytes() { + return fileSizeBytes; + } + + @JsonProperty(JSON_PROPERTY_FILE_SIZE_BYTES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setFileSizeBytes(@jakarta.annotation.Nullable Long fileSizeBytes) { + this.fileSizeBytes = fileSizeBytes; + } + + public ReportJobResponse links(@jakarta.annotation.Nullable ReportJobLinks links) { + this.links = links; + return this; + } + + /** + * Get links + * + * @return links + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LINKS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public ReportJobLinks getLinks() { + return links; + } + + @JsonProperty(JSON_PROPERTY_LINKS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setLinks(@jakarta.annotation.Nullable ReportJobLinks links) { + this.links = links; + } + + /** Return true if this ReportJobResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReportJobResponse reportJobResponse = (ReportJobResponse) o; + return Objects.equals(this.id, reportJobResponse.id) + && Objects.equals(this.status, reportJobResponse.status) + && Objects.equals(this.reportType, reportJobResponse.reportType) + && Objects.equals(this.outputFormat, reportJobResponse.outputFormat) + && Objects.equals(this.compress, reportJobResponse.compress) + && Objects.equals(this.requestedByUserId, reportJobResponse.requestedByUserId) + && Objects.equals(this.createdAt, reportJobResponse.createdAt) + && Objects.equals(this.completedAt, reportJobResponse.completedAt) + && Objects.equals(this.failedAt, reportJobResponse.failedAt) + && Objects.equals(this.rowCount, reportJobResponse.rowCount) + && Objects.equals(this.fileSizeBytes, reportJobResponse.fileSizeBytes) + && Objects.equals(this.links, reportJobResponse.links); + } + + @Override + public int hashCode() { + return Objects.hash( + id, + status, + reportType, + outputFormat, + compress, + requestedByUserId, + createdAt, + completedAt, + failedAt, + rowCount, + fileSizeBytes, + links); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ReportJobResponse {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" reportType: ").append(toIndentedString(reportType)).append("\n"); + sb.append(" outputFormat: ").append(toIndentedString(outputFormat)).append("\n"); + sb.append(" compress: ").append(toIndentedString(compress)).append("\n"); + sb.append(" requestedByUserId: ") + .append(toIndentedString(requestedByUserId)) + .append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" completedAt: ").append(toIndentedString(completedAt)).append("\n"); + sb.append(" failedAt: ").append(toIndentedString(failedAt)).append("\n"); + sb.append(" rowCount: ").append(toIndentedString(rowCount)).append("\n"); + sb.append(" fileSizeBytes: ").append(toIndentedString(fileSizeBytes)).append("\n"); + sb.append(" links: ").append(toIndentedString(links)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `id` to the URL query string + if (getId() != null) { + joiner.add( + String.format( + "%sid%s=%s", + prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId())))); + } + + // add `status` to the URL query string + if (getStatus() != null) { + joiner.add( + String.format( + "%sstatus%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getStatus())))); + } + + // add `reportType` to the URL query string + if (getReportType() != null) { + joiner.add( + String.format( + "%sreportType%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getReportType())))); + } + + // add `outputFormat` to the URL query string + if (getOutputFormat() != null) { + joiner.add( + String.format( + "%soutputFormat%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getOutputFormat())))); + } + + // add `compress` to the URL query string + if (getCompress() != null) { + joiner.add( + String.format( + "%scompress%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCompress())))); + } + + // add `requestedByUserId` to the URL query string + if (getRequestedByUserId() != null) { + joiner.add( + String.format( + "%srequestedByUserId%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRequestedByUserId())))); + } + + // add `createdAt` to the URL query string + if (getCreatedAt() != null) { + joiner.add( + String.format( + "%screatedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCreatedAt())))); + } + + // add `completedAt` to the URL query string + if (getCompletedAt() != null) { + joiner.add( + String.format( + "%scompletedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getCompletedAt())))); + } + + // add `failedAt` to the URL query string + if (getFailedAt() != null) { + joiner.add( + String.format( + "%sfailedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getFailedAt())))); + } + + // add `rowCount` to the URL query string + if (getRowCount() != null) { + joiner.add( + String.format( + "%srowCount%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getRowCount())))); + } + + // add `fileSizeBytes` to the URL query string + if (getFileSizeBytes() != null) { + joiner.add( + String.format( + "%sfileSizeBytes%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getFileSizeBytes())))); + } + + // add `links` to the URL query string + if (getLinks() != null) { + joiner.add(getLinks().toUrlQueryString(prefix + "links" + suffix)); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ReportListResponse.java b/src/main/java/com/fireblocks/sdk/model/ReportListResponse.java new file mode 100644 index 00000000..ac2b7d2c --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ReportListResponse.java @@ -0,0 +1,256 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; + +/** + * Paginated list of report jobs. Download URLs are not included in list items — call `GET + * /v1/reports/{reportId}` to retrieve the download URL for a specific completed report. + */ +@JsonPropertyOrder({ + ReportListResponse.JSON_PROPERTY_DATA, + ReportListResponse.JSON_PROPERTY_NEXT, + ReportListResponse.JSON_PROPERTY_PREV +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class ReportListResponse { + public static final String JSON_PROPERTY_DATA = "data"; + @jakarta.annotation.Nonnull private List data; + + public static final String JSON_PROPERTY_NEXT = "next"; + @jakarta.annotation.Nullable private String next; + + public static final String JSON_PROPERTY_PREV = "prev"; + @jakarta.annotation.Nullable private String prev; + + public ReportListResponse() {} + + @JsonCreator + public ReportListResponse( + @JsonProperty(value = JSON_PROPERTY_DATA, required = true) List data, + @JsonProperty(value = JSON_PROPERTY_NEXT, required = true) String next, + @JsonProperty(value = JSON_PROPERTY_PREV, required = true) String prev) { + this.data = data; + this.next = next; + this.prev = prev; + } + + public ReportListResponse data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public ReportListResponse addDataItem(ReportJob dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Page of report jobs + * + * @return data + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setData(@jakarta.annotation.Nonnull List data) { + this.data = data; + } + + public ReportListResponse next(@jakarta.annotation.Nullable String next) { + this.next = next; + return this; + } + + /** + * Opaque cursor for the next page. Null on the last page. + * + * @return next + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getNext() { + return next; + } + + @JsonProperty(JSON_PROPERTY_NEXT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setNext(@jakarta.annotation.Nullable String next) { + this.next = next; + } + + public ReportListResponse prev(@jakarta.annotation.Nullable String prev) { + this.prev = prev; + return this; + } + + /** + * Opaque cursor for the previous page. Null on the first page. + * + * @return prev + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PREV) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getPrev() { + return prev; + } + + @JsonProperty(JSON_PROPERTY_PREV) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setPrev(@jakarta.annotation.Nullable String prev) { + this.prev = prev; + } + + /** Return true if this ReportListResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReportListResponse reportListResponse = (ReportListResponse) o; + return Objects.equals(this.data, reportListResponse.data) + && Objects.equals(this.next, reportListResponse.next) + && Objects.equals(this.prev, reportListResponse.prev); + } + + @Override + public int hashCode() { + return Objects.hash(data, next, prev); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ReportListResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" next: ").append(toIndentedString(next)).append("\n"); + sb.append(" prev: ").append(toIndentedString(prev)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `data` to the URL query string + if (getData() != null) { + for (int i = 0; i < getData().size(); i++) { + if (getData().get(i) != null) { + joiner.add( + getData() + .get(i) + .toUrlQueryString( + String.format( + "%sdata%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + + // add `next` to the URL query string + if (getNext() != null) { + joiner.add( + String.format( + "%snext%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getNext())))); + } + + // add `prev` to the URL query string + if (getPrev() != null) { + joiner.add( + String.format( + "%sprev%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getPrev())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ReportOutputFormat.java b/src/main/java/com/fireblocks/sdk/model/ReportOutputFormat.java new file mode 100644 index 00000000..452d3339 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ReportOutputFormat.java @@ -0,0 +1,62 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** The output file format of the report */ +public enum ReportOutputFormat { + CSV("CSV"); + + private String value; + + ReportOutputFormat(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ReportOutputFormat fromValue(String value) { + for (ReportOutputFormat b : ReportOutputFormat.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + if (prefix == null) { + prefix = ""; + } + + return String.format("%s=%s", prefix, this.toString()); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpoint.java b/src/main/java/com/fireblocks/sdk/model/ReportStatus.java similarity index 69% rename from src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpoint.java rename to src/main/java/com/fireblocks/sdk/model/ReportStatus.java index f08c3387..3139676b 100644 --- a/src/main/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpoint.java +++ b/src/main/java/com/fireblocks/sdk/model/ReportStatus.java @@ -16,21 +16,19 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -/** - * 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. - */ -public enum ParticipantsIdentificationSupportedEndpoint { - ORDER("ORDER"), +/** The current lifecycle state of a report job */ +public enum ReportStatus { + QUEUED("QUEUED"), + + PROCESSING("PROCESSING"), - QUOTE("QUOTE"), + COMPLETED("COMPLETED"), - RATE("RATE"); + FAILED("FAILED"); private String value; - ParticipantsIdentificationSupportedEndpoint(String value) { + ReportStatus(String value) { this.value = value; } @@ -45,9 +43,8 @@ public String toString() { } @JsonCreator - public static ParticipantsIdentificationSupportedEndpoint fromValue(String value) { - for (ParticipantsIdentificationSupportedEndpoint b : - ParticipantsIdentificationSupportedEndpoint.values()) { + public static ReportStatus fromValue(String value) { + for (ReportStatus b : ReportStatus.values()) { if (b.value.equals(value)) { return b; } diff --git a/src/main/java/com/fireblocks/sdk/model/ReportType.java b/src/main/java/com/fireblocks/sdk/model/ReportType.java new file mode 100644 index 00000000..85b8dcd8 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/ReportType.java @@ -0,0 +1,62 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** The type of report to generate */ +public enum ReportType { + ADDRESSES("ADDRESSES"); + + private String value; + + ReportType(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ReportType fromValue(String value) { + for (ReportType b : ReportType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + if (prefix == null) { + prefix = ""; + } + + return String.format("%s=%s", prefix, this.toString()); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/SepaPaymentInfo.java b/src/main/java/com/fireblocks/sdk/model/SepaPaymentInfo.java index 99690366..9f5742ac 100644 --- a/src/main/java/com/fireblocks/sdk/model/SepaPaymentInfo.java +++ b/src/main/java/com/fireblocks/sdk/model/SepaPaymentInfo.java @@ -29,6 +29,8 @@ SepaPaymentInfo.JSON_PROPERTY_ACCOUNT_HOLDER_GIVEN_NAME, SepaPaymentInfo.JSON_PROPERTY_ACCOUNT_HOLDER_SURNAME, SepaPaymentInfo.JSON_PROPERTY_ACCOUNT_HOLDER_COUNTRY, + SepaPaymentInfo.JSON_PROPERTY_ACCOUNT_HOLDER_POSTAL_CODE, + SepaPaymentInfo.JSON_PROPERTY_ACCOUNT_HOLDER_CITY, SepaPaymentInfo.JSON_PROPERTY_ACCOUNT_HOLDER_ADDRESS, SepaPaymentInfo.JSON_PROPERTY_IBAN, SepaPaymentInfo.JSON_PROPERTY_COUNTRY, @@ -120,6 +122,12 @@ public static AddressingSystemEnum fromValue(String value) { public static final String JSON_PROPERTY_ACCOUNT_HOLDER_COUNTRY = "accountHolderCountry"; @jakarta.annotation.Nullable private String accountHolderCountry; + public static final String JSON_PROPERTY_ACCOUNT_HOLDER_POSTAL_CODE = "accountHolderPostalCode"; + @jakarta.annotation.Nullable private String accountHolderPostalCode; + + public static final String JSON_PROPERTY_ACCOUNT_HOLDER_CITY = "accountHolderCity"; + @jakarta.annotation.Nullable private String accountHolderCity; + public static final String JSON_PROPERTY_ACCOUNT_HOLDER_ADDRESS = "accountHolderAddress"; @jakarta.annotation.Nullable private String accountHolderAddress; @@ -289,6 +297,55 @@ public void setAccountHolderCountry(@jakarta.annotation.Nullable String accountH this.accountHolderCountry = accountHolderCountry; } + public SepaPaymentInfo accountHolderPostalCode( + @jakarta.annotation.Nullable String accountHolderPostalCode) { + this.accountHolderPostalCode = accountHolderPostalCode; + return this; + } + + /** + * The postal code of the account holder's address + * + * @return accountHolderPostalCode + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ACCOUNT_HOLDER_POSTAL_CODE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAccountHolderPostalCode() { + return accountHolderPostalCode; + } + + @JsonProperty(JSON_PROPERTY_ACCOUNT_HOLDER_POSTAL_CODE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAccountHolderPostalCode( + @jakarta.annotation.Nullable String accountHolderPostalCode) { + this.accountHolderPostalCode = accountHolderPostalCode; + } + + public SepaPaymentInfo accountHolderCity( + @jakarta.annotation.Nullable String accountHolderCity) { + this.accountHolderCity = accountHolderCity; + return this; + } + + /** + * The city where the account holder resides + * + * @return accountHolderCity + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ACCOUNT_HOLDER_CITY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAccountHolderCity() { + return accountHolderCity; + } + + @JsonProperty(JSON_PROPERTY_ACCOUNT_HOLDER_CITY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setAccountHolderCity(@jakarta.annotation.Nullable String accountHolderCity) { + this.accountHolderCity = accountHolderCity; + } + public SepaPaymentInfo accountHolderAddress( @jakarta.annotation.Nullable String accountHolderAddress) { this.accountHolderAddress = accountHolderAddress; @@ -513,6 +570,9 @@ public boolean equals(Object o) { this.accountHolderGivenName, sepaPaymentInfo.accountHolderGivenName) && Objects.equals(this.accountHolderSurname, sepaPaymentInfo.accountHolderSurname) && Objects.equals(this.accountHolderCountry, sepaPaymentInfo.accountHolderCountry) + && Objects.equals( + this.accountHolderPostalCode, sepaPaymentInfo.accountHolderPostalCode) + && Objects.equals(this.accountHolderCity, sepaPaymentInfo.accountHolderCity) && Objects.equals(this.accountHolderAddress, sepaPaymentInfo.accountHolderAddress) && Objects.equals(this.iban, sepaPaymentInfo.iban) && Objects.equals(this.country, sepaPaymentInfo.country) @@ -532,6 +592,8 @@ public int hashCode() { accountHolderGivenName, accountHolderSurname, accountHolderCountry, + accountHolderPostalCode, + accountHolderCity, accountHolderAddress, iban, country, @@ -558,6 +620,12 @@ public String toString() { sb.append(" accountHolderCountry: ") .append(toIndentedString(accountHolderCountry)) .append("\n"); + sb.append(" accountHolderPostalCode: ") + .append(toIndentedString(accountHolderPostalCode)) + .append("\n"); + sb.append(" accountHolderCity: ") + .append(toIndentedString(accountHolderCity)) + .append("\n"); sb.append(" accountHolderAddress: ") .append(toIndentedString(accountHolderAddress)) .append("\n"); @@ -669,6 +737,27 @@ public String toUrlQueryString(String prefix) { ApiClient.valueToString(getAccountHolderCountry())))); } + // add `accountHolderPostalCode` to the URL query string + if (getAccountHolderPostalCode() != null) { + joiner.add( + String.format( + "%saccountHolderPostalCode%s=%s", + prefix, + suffix, + ApiClient.urlEncode( + ApiClient.valueToString(getAccountHolderPostalCode())))); + } + + // add `accountHolderCity` to the URL query string + if (getAccountHolderCity() != null) { + joiner.add( + String.format( + "%saccountHolderCity%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getAccountHolderCity())))); + } + // add `accountHolderAddress` to the URL query string if (getAccountHolderAddress() != null) { joiner.add( diff --git a/src/main/java/com/fireblocks/sdk/model/SolanaBlockchainData.java b/src/main/java/com/fireblocks/sdk/model/SolanaBlockchainData.java index dc116c0b..855f0244 100644 --- a/src/main/java/com/fireblocks/sdk/model/SolanaBlockchainData.java +++ b/src/main/java/com/fireblocks/sdk/model/SolanaBlockchainData.java @@ -29,7 +29,8 @@ */ @JsonPropertyOrder({ SolanaBlockchainData.JSON_PROPERTY_STAKE_ACCOUNT_ADDRESS, - SolanaBlockchainData.JSON_PROPERTY_STAKE_ACCOUNT_DERIVATION_CHANGE_VALUE + SolanaBlockchainData.JSON_PROPERTY_STAKE_ACCOUNT_DERIVATION_CHANGE_VALUE, + SolanaBlockchainData.JSON_PROPERTY_REWARDS_BREAKDOWN }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -42,6 +43,9 @@ public class SolanaBlockchainData { "stakeAccountDerivationChangeValue"; @jakarta.annotation.Nonnull private BigDecimal stakeAccountDerivationChangeValue; + public static final String JSON_PROPERTY_REWARDS_BREAKDOWN = "rewardsBreakdown"; + @jakarta.annotation.Nullable private SolanaRewardsBreakdown rewardsBreakdown; + public SolanaBlockchainData() {} @JsonCreator @@ -106,6 +110,31 @@ public void setStakeAccountDerivationChangeValue( this.stakeAccountDerivationChangeValue = stakeAccountDerivationChangeValue; } + public SolanaBlockchainData rewardsBreakdown( + @jakarta.annotation.Nullable SolanaRewardsBreakdown rewardsBreakdown) { + this.rewardsBreakdown = rewardsBreakdown; + return this; + } + + /** + * Get rewardsBreakdown + * + * @return rewardsBreakdown + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_REWARDS_BREAKDOWN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SolanaRewardsBreakdown getRewardsBreakdown() { + return rewardsBreakdown; + } + + @JsonProperty(JSON_PROPERTY_REWARDS_BREAKDOWN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setRewardsBreakdown( + @jakarta.annotation.Nullable SolanaRewardsBreakdown rewardsBreakdown) { + this.rewardsBreakdown = rewardsBreakdown; + } + /** Return true if this SolanaBlockchainData object is equal to o. */ @Override public boolean equals(Object o) { @@ -119,12 +148,14 @@ public boolean equals(Object o) { return Objects.equals(this.stakeAccountAddress, solanaBlockchainData.stakeAccountAddress) && Objects.equals( this.stakeAccountDerivationChangeValue, - solanaBlockchainData.stakeAccountDerivationChangeValue); + solanaBlockchainData.stakeAccountDerivationChangeValue) + && Objects.equals(this.rewardsBreakdown, solanaBlockchainData.rewardsBreakdown); } @Override public int hashCode() { - return Objects.hash(stakeAccountAddress, stakeAccountDerivationChangeValue); + return Objects.hash( + stakeAccountAddress, stakeAccountDerivationChangeValue, rewardsBreakdown); } @Override @@ -137,6 +168,7 @@ public String toString() { sb.append(" stakeAccountDerivationChangeValue: ") .append(toIndentedString(stakeAccountDerivationChangeValue)) .append("\n"); + sb.append(" rewardsBreakdown: ").append(toIndentedString(rewardsBreakdown)).append("\n"); sb.append("}"); return sb.toString(); } @@ -207,6 +239,12 @@ public String toUrlQueryString(String prefix) { getStakeAccountDerivationChangeValue())))); } + // add `rewardsBreakdown` to the URL query string + if (getRewardsBreakdown() != null) { + joiner.add( + getRewardsBreakdown().toUrlQueryString(prefix + "rewardsBreakdown" + suffix)); + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/SolanaRewardsBreakdown.java b/src/main/java/com/fireblocks/sdk/model/SolanaRewardsBreakdown.java new file mode 100644 index 00000000..df20e2ba --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/SolanaRewardsBreakdown.java @@ -0,0 +1,237 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.time.OffsetDateTime; +import java.util.Objects; +import java.util.StringJoiner; + +/** A breakdown of the staking rewards earned by the position. */ +@JsonPropertyOrder({ + SolanaRewardsBreakdown.JSON_PROPERTY_ISSUANCE, + SolanaRewardsBreakdown.JSON_PROPERTY_MEV, + SolanaRewardsBreakdown.JSON_PROPERTY_LAST_REWARD_SYNCED_AT +}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class SolanaRewardsBreakdown { + public static final String JSON_PROPERTY_ISSUANCE = "issuance"; + @jakarta.annotation.Nonnull private String issuance; + + public static final String JSON_PROPERTY_MEV = "mev"; + @jakarta.annotation.Nonnull private String mev; + + public static final String JSON_PROPERTY_LAST_REWARD_SYNCED_AT = "lastRewardSyncedAt"; + @jakarta.annotation.Nonnull private OffsetDateTime lastRewardSyncedAt; + + public SolanaRewardsBreakdown() {} + + @JsonCreator + public SolanaRewardsBreakdown( + @JsonProperty(value = JSON_PROPERTY_ISSUANCE, required = true) String issuance, + @JsonProperty(value = JSON_PROPERTY_MEV, required = true) String mev, + @JsonProperty(value = JSON_PROPERTY_LAST_REWARD_SYNCED_AT, required = true) + OffsetDateTime lastRewardSyncedAt) { + this.issuance = issuance; + this.mev = mev; + this.lastRewardSyncedAt = lastRewardSyncedAt; + } + + public SolanaRewardsBreakdown issuance(@jakarta.annotation.Nonnull String issuance) { + this.issuance = issuance; + return this; + } + + /** + * The issuance reward amount earned by the position, measured in the staked asset unit. + * + * @return issuance + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ISSUANCE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getIssuance() { + return issuance; + } + + @JsonProperty(JSON_PROPERTY_ISSUANCE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setIssuance(@jakarta.annotation.Nonnull String issuance) { + this.issuance = issuance; + } + + public SolanaRewardsBreakdown mev(@jakarta.annotation.Nonnull String mev) { + this.mev = mev; + return this; + } + + /** + * The MEV reward amount earned by the position, measured in the staked asset unit. + * + * @return mev + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_MEV) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getMev() { + return mev; + } + + @JsonProperty(JSON_PROPERTY_MEV) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setMev(@jakarta.annotation.Nonnull String mev) { + this.mev = mev; + } + + public SolanaRewardsBreakdown lastRewardSyncedAt( + @jakarta.annotation.Nonnull OffsetDateTime lastRewardSyncedAt) { + this.lastRewardSyncedAt = lastRewardSyncedAt; + return this; + } + + /** + * The last time the rewards were synced (ISO Date). + * + * @return lastRewardSyncedAt + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_LAST_REWARD_SYNCED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getLastRewardSyncedAt() { + return lastRewardSyncedAt; + } + + @JsonProperty(JSON_PROPERTY_LAST_REWARD_SYNCED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setLastRewardSyncedAt( + @jakarta.annotation.Nonnull OffsetDateTime lastRewardSyncedAt) { + this.lastRewardSyncedAt = lastRewardSyncedAt; + } + + /** Return true if this SolanaRewardsBreakdown object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SolanaRewardsBreakdown solanaRewardsBreakdown = (SolanaRewardsBreakdown) o; + return Objects.equals(this.issuance, solanaRewardsBreakdown.issuance) + && Objects.equals(this.mev, solanaRewardsBreakdown.mev) + && Objects.equals( + this.lastRewardSyncedAt, solanaRewardsBreakdown.lastRewardSyncedAt); + } + + @Override + public int hashCode() { + return Objects.hash(issuance, mev, lastRewardSyncedAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SolanaRewardsBreakdown {\n"); + sb.append(" issuance: ").append(toIndentedString(issuance)).append("\n"); + sb.append(" mev: ").append(toIndentedString(mev)).append("\n"); + sb.append(" lastRewardSyncedAt: ") + .append(toIndentedString(lastRewardSyncedAt)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `issuance` to the URL query string + if (getIssuance() != null) { + joiner.add( + String.format( + "%sissuance%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getIssuance())))); + } + + // add `mev` to the URL query string + if (getMev() != null) { + joiner.add( + String.format( + "%smev%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getMev())))); + } + + // add `lastRewardSyncedAt` to the URL query string + if (getLastRewardSyncedAt() != null) { + joiner.add( + String.format( + "%slastRewardSyncedAt%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLastRewardSyncedAt())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/SourceOfFunds.java b/src/main/java/com/fireblocks/sdk/model/SourceOfFunds.java index 4373b882..881f4fc5 100644 --- a/src/main/java/com/fireblocks/sdk/model/SourceOfFunds.java +++ b/src/main/java/com/fireblocks/sdk/model/SourceOfFunds.java @@ -22,7 +22,8 @@ /** * Information about the source and purpose of the funds being transacted. Used by providers that - * require additional context for compliance and reporting (e.g. CPN cross-border payments). + * require additional context for compliance and reporting. Provide this field when the provider + * manifest indicates it is required. */ @JsonPropertyOrder({SourceOfFunds.JSON_PROPERTY_REASON_FOR_PAYMENT}) @jakarta.annotation.Generated( diff --git a/src/main/java/com/fireblocks/sdk/model/SourceTransferPeerPathResponse.java b/src/main/java/com/fireblocks/sdk/model/SourceTransferPeerPathResponse.java index bee8e8b7..eefb5d84 100644 --- a/src/main/java/com/fireblocks/sdk/model/SourceTransferPeerPathResponse.java +++ b/src/main/java/com/fireblocks/sdk/model/SourceTransferPeerPathResponse.java @@ -18,6 +18,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fireblocks.sdk.ApiClient; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; import java.util.StringJoiner; import java.util.UUID; @@ -29,7 +31,8 @@ SourceTransferPeerPathResponse.JSON_PROPERTY_ID, SourceTransferPeerPathResponse.JSON_PROPERTY_NAME, SourceTransferPeerPathResponse.JSON_PROPERTY_WALLET_ID, - SourceTransferPeerPathResponse.JSON_PROPERTY_TRADING_ACCOUNT + SourceTransferPeerPathResponse.JSON_PROPERTY_TRADING_ACCOUNT, + SourceTransferPeerPathResponse.JSON_PROPERTY_TAGS }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -53,6 +56,9 @@ public class SourceTransferPeerPathResponse { public static final String JSON_PROPERTY_TRADING_ACCOUNT = "tradingAccount"; @jakarta.annotation.Nullable private String tradingAccount; + public static final String JSON_PROPERTY_TAGS = "tags"; + @jakarta.annotation.Nullable private List tags; + public SourceTransferPeerPathResponse() {} @JsonCreator @@ -213,6 +219,38 @@ public void setTradingAccount(@jakarta.annotation.Nullable String tradingAccount this.tradingAccount = tradingAccount; } + public SourceTransferPeerPathResponse tags( + @jakarta.annotation.Nullable List tags) { + this.tags = tags; + return this; + } + + public SourceTransferPeerPathResponse addTagsItem(TransactionTag tagsItem) { + if (this.tags == null) { + this.tags = new ArrayList<>(); + } + this.tags.add(tagsItem); + return this; + } + + /** + * Tags associated with the transaction's source. + * + * @return tags + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TAGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getTags() { + return tags; + } + + @JsonProperty(JSON_PROPERTY_TAGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setTags(@jakarta.annotation.Nullable List tags) { + this.tags = tags; + } + /** Return true if this SourceTransferPeerPathResponse object is equal to o. */ @Override public boolean equals(Object o) { @@ -230,12 +268,13 @@ public boolean equals(Object o) { && Objects.equals(this.name, sourceTransferPeerPathResponse.name) && Objects.equals(this.walletId, sourceTransferPeerPathResponse.walletId) && Objects.equals( - this.tradingAccount, sourceTransferPeerPathResponse.tradingAccount); + this.tradingAccount, sourceTransferPeerPathResponse.tradingAccount) + && Objects.equals(this.tags, sourceTransferPeerPathResponse.tags); } @Override public int hashCode() { - return Objects.hash(type, subType, id, name, walletId, tradingAccount); + return Objects.hash(type, subType, id, name, walletId, tradingAccount, tags); } @Override @@ -248,6 +287,7 @@ public String toString() { sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" walletId: ").append(toIndentedString(walletId)).append("\n"); sb.append(" tradingAccount: ").append(toIndentedString(tradingAccount)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); sb.append("}"); return sb.toString(); } @@ -353,6 +393,29 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getTradingAccount())))); } + // add `tags` to the URL query string + if (getTags() != null) { + for (int i = 0; i < getTags().size(); i++) { + if (getTags().get(i) != null) { + joiner.add( + getTags() + .get(i) + .toUrlQueryString( + String.format( + "%stags%s%s", + prefix, + suffix, + "".equals(suffix) + ? "" + : String.format( + "%s%d%s", + containerPrefix, + i, + containerSuffix)))); + } + } + } + return joiner.toString(); } } diff --git a/src/main/java/com/fireblocks/sdk/model/TransactionTag.java b/src/main/java/com/fireblocks/sdk/model/TransactionTag.java new file mode 100644 index 00000000..eb842ea0 --- /dev/null +++ b/src/main/java/com/fireblocks/sdk/model/TransactionTag.java @@ -0,0 +1,185 @@ +/* + * 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.model; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fireblocks.sdk.ApiClient; +import java.util.Objects; +import java.util.StringJoiner; +import java.util.UUID; + +/** TransactionTag */ +@JsonPropertyOrder({TransactionTag.JSON_PROPERTY_ID, TransactionTag.JSON_PROPERTY_LABEL}) +@jakarta.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.14.0") +public class TransactionTag { + public static final String JSON_PROPERTY_ID = "id"; + @jakarta.annotation.Nonnull private UUID id; + + public static final String JSON_PROPERTY_LABEL = "label"; + @jakarta.annotation.Nonnull private String label; + + public TransactionTag() {} + + @JsonCreator + public TransactionTag( + @JsonProperty(value = JSON_PROPERTY_ID, required = true) UUID id, + @JsonProperty(value = JSON_PROPERTY_LABEL, required = true) String label) { + this.id = id; + this.label = label; + } + + public TransactionTag id(@jakarta.annotation.Nonnull UUID id) { + this.id = id; + return this; + } + + /** + * The unique identifier of the tag + * + * @return id + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setId(@jakarta.annotation.Nonnull UUID id) { + this.id = id; + } + + public TransactionTag label(@jakarta.annotation.Nonnull String label) { + this.label = label; + return this; + } + + /** + * The tag label + * + * @return label + */ + @jakarta.annotation.Nonnull + @JsonProperty(JSON_PROPERTY_LABEL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getLabel() { + return label; + } + + @JsonProperty(JSON_PROPERTY_LABEL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setLabel(@jakarta.annotation.Nonnull String label) { + this.label = label; + } + + /** Return true if this TransactionTag object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TransactionTag transactionTag = (TransactionTag) o; + return Objects.equals(this.id, transactionTag.id) + && Objects.equals(this.label, transactionTag.label); + } + + @Override + public int hashCode() { + return Objects.hash(id, label); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TransactionTag {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" label: ").append(toIndentedString(label)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + /** + * Convert the instance into URL query string. + * + * @return URL query string + */ + public String toUrlQueryString() { + return toUrlQueryString(null); + } + + /** + * Convert the instance into URL query string. + * + * @param prefix prefix of the query string + * @return URL query string + */ + public String toUrlQueryString(String prefix) { + String suffix = ""; + String containerSuffix = ""; + String containerPrefix = ""; + if (prefix == null) { + // style=form, explode=true, e.g. /pet?name=cat&type=manx + prefix = ""; + } else { + // deepObject style e.g. /pet?id[name]=cat&id[type]=manx + prefix = prefix + "["; + suffix = "]"; + containerSuffix = "]"; + containerPrefix = "["; + } + + StringJoiner joiner = new StringJoiner("&"); + + // add `id` to the URL query string + if (getId() != null) { + joiner.add( + String.format( + "%sid%s=%s", + prefix, suffix, ApiClient.urlEncode(ApiClient.valueToString(getId())))); + } + + // add `label` to the URL query string + if (getLabel() != null) { + joiner.add( + String.format( + "%slabel%s=%s", + prefix, + suffix, + ApiClient.urlEncode(ApiClient.valueToString(getLabel())))); + } + + return joiner.toString(); + } +} diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoIdentifier.java b/src/main/java/com/fireblocks/sdk/model/UtxoIdentifier.java index d2ee261e..97a5f338 100644 --- a/src/main/java/com/fireblocks/sdk/model/UtxoIdentifier.java +++ b/src/main/java/com/fireblocks/sdk/model/UtxoIdentifier.java @@ -22,12 +22,12 @@ /** * 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. + * or a specific on-chain UTXO (txHash + index). Exactly one of these two forms must be provided. */ @JsonPropertyOrder({ UtxoIdentifier.JSON_PROPERTY_TX_ID, UtxoIdentifier.JSON_PROPERTY_TX_HASH, - UtxoIdentifier.JSON_PROPERTY_VOUT + UtxoIdentifier.JSON_PROPERTY_INDEX }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -39,8 +39,8 @@ public class UtxoIdentifier { public static final String JSON_PROPERTY_TX_HASH = "txHash"; @jakarta.annotation.Nullable private String txHash; - public static final String JSON_PROPERTY_VOUT = "vout"; - @jakarta.annotation.Nullable private Integer vout; + public static final String JSON_PROPERTY_INDEX = "index"; + @jakarta.annotation.Nullable private Integer index; public UtxoIdentifier() {} @@ -90,27 +90,27 @@ public void setTxHash(@jakarta.annotation.Nullable String txHash) { this.txHash = txHash; } - public UtxoIdentifier vout(@jakarta.annotation.Nullable Integer vout) { - this.vout = vout; + public UtxoIdentifier index(@jakarta.annotation.Nullable Integer index) { + this.index = index; return this; } /** - * Output index + * Output index (vout) * - * @return vout + * @return index */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_VOUT) + @JsonProperty(JSON_PROPERTY_INDEX) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public Integer getVout() { - return vout; + public Integer getIndex() { + return index; } - @JsonProperty(JSON_PROPERTY_VOUT) + @JsonProperty(JSON_PROPERTY_INDEX) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setVout(@jakarta.annotation.Nullable Integer vout) { - this.vout = vout; + public void setIndex(@jakarta.annotation.Nullable Integer index) { + this.index = index; } /** Return true if this UtxoIdentifier object is equal to o. */ @@ -125,12 +125,12 @@ public boolean equals(Object o) { UtxoIdentifier utxoIdentifier = (UtxoIdentifier) o; return Objects.equals(this.txId, utxoIdentifier.txId) && Objects.equals(this.txHash, utxoIdentifier.txHash) - && Objects.equals(this.vout, utxoIdentifier.vout); + && Objects.equals(this.index, utxoIdentifier.index); } @Override public int hashCode() { - return Objects.hash(txId, txHash, vout); + return Objects.hash(txId, txHash, index); } @Override @@ -139,7 +139,7 @@ public String toString() { sb.append("class UtxoIdentifier {\n"); sb.append(" txId: ").append(toIndentedString(txId)).append("\n"); sb.append(" txHash: ").append(toIndentedString(txHash)).append("\n"); - sb.append(" vout: ").append(toIndentedString(vout)).append("\n"); + sb.append(" index: ").append(toIndentedString(index)).append("\n"); sb.append("}"); return sb.toString(); } @@ -207,14 +207,14 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getTxHash())))); } - // add `vout` to the URL query string - if (getVout() != null) { + // add `index` to the URL query string + if (getIndex() != null) { joiner.add( String.format( - "%svout%s=%s", + "%sindex%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getVout())))); + ApiClient.urlEncode(ApiClient.valueToString(getIndex())))); } return joiner.toString(); diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoInput.java b/src/main/java/com/fireblocks/sdk/model/UtxoInput.java index 88483395..9c6a5337 100644 --- a/src/main/java/com/fireblocks/sdk/model/UtxoInput.java +++ b/src/main/java/com/fireblocks/sdk/model/UtxoInput.java @@ -22,7 +22,7 @@ import java.util.StringJoiner; /** UtxoInput */ -@JsonPropertyOrder({UtxoInput.JSON_PROPERTY_TX_HASH, UtxoInput.JSON_PROPERTY_VOUT}) +@JsonPropertyOrder({UtxoInput.JSON_PROPERTY_TX_HASH, UtxoInput.JSON_PROPERTY_INDEX}) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.14.0") @@ -30,17 +30,17 @@ public class UtxoInput { public static final String JSON_PROPERTY_TX_HASH = "txHash"; @jakarta.annotation.Nonnull private String txHash; - public static final String JSON_PROPERTY_VOUT = "vout"; - @jakarta.annotation.Nonnull private Integer vout; + public static final String JSON_PROPERTY_INDEX = "index"; + @jakarta.annotation.Nonnull private Integer index; public UtxoInput() {} @JsonCreator public UtxoInput( @JsonProperty(value = JSON_PROPERTY_TX_HASH, required = true) String txHash, - @JsonProperty(value = JSON_PROPERTY_VOUT, required = true) Integer vout) { + @JsonProperty(value = JSON_PROPERTY_INDEX, required = true) Integer index) { this.txHash = txHash; - this.vout = vout; + this.index = index; } public UtxoInput txHash(@jakarta.annotation.Nonnull String txHash) { @@ -66,27 +66,27 @@ public void setTxHash(@jakarta.annotation.Nonnull String txHash) { this.txHash = txHash; } - public UtxoInput vout(@jakarta.annotation.Nonnull Integer vout) { - this.vout = vout; + public UtxoInput index(@jakarta.annotation.Nonnull Integer index) { + this.index = index; return this; } /** - * Get vout + * The output index (vout) * - * @return vout + * @return index */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_VOUT) + @JsonProperty(JSON_PROPERTY_INDEX) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Integer getVout() { - return vout; + public Integer getIndex() { + return index; } - @JsonProperty(JSON_PROPERTY_VOUT) + @JsonProperty(JSON_PROPERTY_INDEX) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setVout(@jakarta.annotation.Nonnull Integer vout) { - this.vout = vout; + public void setIndex(@jakarta.annotation.Nonnull Integer index) { + this.index = index; } /** Return true if this UtxoInput object is equal to o. */ @@ -100,12 +100,12 @@ public boolean equals(Object o) { } UtxoInput utxoInput = (UtxoInput) o; return Objects.equals(this.txHash, utxoInput.txHash) - && Objects.equals(this.vout, utxoInput.vout); + && Objects.equals(this.index, utxoInput.index); } @Override public int hashCode() { - return Objects.hash(txHash, vout); + return Objects.hash(txHash, index); } @Override @@ -113,7 +113,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UtxoInput {\n"); sb.append(" txHash: ").append(toIndentedString(txHash)).append("\n"); - sb.append(" vout: ").append(toIndentedString(vout)).append("\n"); + sb.append(" index: ").append(toIndentedString(index)).append("\n"); sb.append("}"); return sb.toString(); } @@ -171,14 +171,14 @@ public String toUrlQueryString(String prefix) { ApiClient.urlEncode(ApiClient.valueToString(getTxHash())))); } - // add `vout` to the URL query string - if (getVout() != null) { + // add `index` to the URL query string + if (getIndex() != null) { joiner.add( String.format( - "%svout%s=%s", + "%sindex%s=%s", prefix, suffix, - ApiClient.urlEncode(ApiClient.valueToString(getVout())))); + ApiClient.urlEncode(ApiClient.valueToString(getIndex())))); } return joiner.toString(); diff --git a/src/main/java/com/fireblocks/sdk/model/UtxoInputSelection.java b/src/main/java/com/fireblocks/sdk/model/UtxoInputSelection.java index 68765ae3..8123a5a2 100644 --- a/src/main/java/com/fireblocks/sdk/model/UtxoInputSelection.java +++ b/src/main/java/com/fireblocks/sdk/model/UtxoInputSelection.java @@ -62,7 +62,7 @@ public UtxoInputSelection addInputsToSpendItem(UtxoInput inputsToSpendItem) { } /** - * Force-include specific UTXOs by txHash and vout. + * Force-include specific UTXOs by txHash and index. * * @return inputsToSpend */ diff --git a/src/test/java/com/fireblocks/sdk/FireblocksTest.java b/src/test/java/com/fireblocks/sdk/FireblocksTest.java index 495391fb..c2128a5d 100644 --- a/src/test/java/com/fireblocks/sdk/FireblocksTest.java +++ b/src/test/java/com/fireblocks/sdk/FireblocksTest.java @@ -590,11 +590,19 @@ public void testGetPolicyEditorBetaApi() { } @Test - public void testGetPolicyEditorV2BetaApi() { + public void testGetPolicyEditorV2Api() { setupFireblocks(true, null, null); - PolicyEditorV2BetaApi policyEditorV2Beta = fireblocks.policyEditorV2Beta(); - Assert.assertNotNull(policyEditorV2Beta); - Assert.assertSame(policyEditorV2Beta, fireblocks.policyEditorV2Beta()); + PolicyEditorV2Api policyEditorV2 = fireblocks.policyEditorV2(); + Assert.assertNotNull(policyEditorV2); + Assert.assertSame(policyEditorV2, fireblocks.policyEditorV2()); + } + + @Test + public void testGetReportsBetaApi() { + setupFireblocks(true, null, null); + ReportsBetaApi reportsBeta = fireblocks.reportsBeta(); + Assert.assertNotNull(reportsBeta); + Assert.assertSame(reportsBeta, fireblocks.reportsBeta()); } @Test diff --git a/src/test/java/com/fireblocks/sdk/api/ApiUserApiTest.java b/src/test/java/com/fireblocks/sdk/api/ApiUserApiTest.java index 68cae2c9..f45d3093 100644 --- a/src/test/java/com/fireblocks/sdk/api/ApiUserApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/ApiUserApiTest.java @@ -17,6 +17,7 @@ import com.fireblocks.sdk.ApiResponse; import com.fireblocks.sdk.model.CreateAPIUser; import com.fireblocks.sdk.model.GetAPIUsersResponse; +import com.fireblocks.sdk.model.IssueApiUserPairingTokenResponse; import java.util.concurrent.CompletableFuture; import org.junit.Ignore; import org.junit.Test; @@ -58,4 +59,23 @@ public void createApiUserTest() throws ApiException { public void getApiUsersTest() throws ApiException { CompletableFuture> response = api.getApiUsers(); } + + /** + * Issue API user pairing token + * + *

Issues a device pairing token for the given user and returns the user's info along + * with the token. - The API user must be in PENDING_ACTIVATION status. If the user is already + * set up (enabled), the request is rejected with a 409 Conflict. - Please note that this + * endpoint is available only for API keys with Owner/Admin/Non Signing Admin permissions. + * Endpoint Permission: Owner, Admin, Non-Signing Admin. + * + * @throws ApiException if the Api call fails + */ + @Test + public void issueApiUserPairingTokenTest() throws ApiException { + String userId = null; + String idempotencyKey = null; + CompletableFuture> response = + api.issueApiUserPairingToken(userId, idempotencyKey); + } } diff --git a/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java b/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java index 55344719..f2408987 100644 --- a/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/ComplianceApiTest.java @@ -188,6 +188,21 @@ public void deleteCounterpartyGroupTest() throws ApiException { CompletableFuture> response = api.deleteCounterpartyGroup(groupId); } + /** + * Delete a legal entity + * + *

Delete a legal entity will change the status of a legal entity registration to REVOKED. + * Endpoint Permission: Admin, Non-Signing Admin. + * + * @throws ApiException if the Api call fails + */ + @Test + public void deleteLegalEntityTest() throws ApiException { + UUID legalEntityId = null; + + CompletableFuture> response = api.deleteLegalEntity(legalEntityId); + } + /** * Get address registry participation status for the authenticated workspace * @@ -308,9 +323,9 @@ public void getLegalEntityTest() throws ApiException { /** * Look up legal entity by blockchain address * - *

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. + *

Returns legal entity information for the given blockchain address (LEI data availability, + * LEI identifier, Travel Rule providers, contact email, and related fields — see response + * schema). URL-encode `{address}` when required. * * @throws ApiException if the Api call fails */ diff --git a/src/test/java/com/fireblocks/sdk/api/ConnectedAccountsBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/ConnectedAccountsBetaApiTest.java index 2d107ea7..53992ae3 100644 --- a/src/test/java/com/fireblocks/sdk/api/ConnectedAccountsBetaApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/ConnectedAccountsBetaApiTest.java @@ -15,7 +15,7 @@ import com.fireblocks.sdk.ApiException; import com.fireblocks.sdk.ApiResponse; -import com.fireblocks.sdk.model.AllowlistEntry; +import com.fireblocks.sdk.model.AllowlistEntryResponse; import com.fireblocks.sdk.model.AllowlistEntryStatus; import com.fireblocks.sdk.model.AllowlistResponse; import com.fireblocks.sdk.model.ConnectedAccountBalancesResponse; @@ -23,6 +23,8 @@ import com.fireblocks.sdk.model.ConnectedAccountTradingPairsResponse; import com.fireblocks.sdk.model.ConnectedAccountsResponse; import com.fireblocks.sdk.model.ConnectedSingleAccountResponse; +import com.fireblocks.sdk.model.CreateConnectedAccountRequest; +import com.fireblocks.sdk.model.CreateConnectedAccountResponse; import com.fireblocks.sdk.model.RenameConnectedAccountRequest; import com.fireblocks.sdk.model.RenameConnectedAccountResponse; import java.util.concurrent.CompletableFuture; @@ -35,6 +37,26 @@ public class ConnectedAccountsBetaApiTest { private final ConnectedAccountsBetaApi api = new ConnectedAccountsBetaApi(); + /** + * Create a connected account + * + *

Creates a new connected account for the authenticated tenant. The `creds` field + * must be a Base64-encoded RSA-encrypted credential blob. Use `GET + * /exchange_accounts/credentials_public_key` to retrieve the public key for encryption. + * The `providerType` is derived server-side from the `providerId` — callers + * do not supply it. Endpoint Permission: Editor, Admin, Non-Signing Admin. **Note:** This + * endpoint is currently in beta and might be subject to changes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void createConnectedAccountTest() throws ApiException { + CreateConnectedAccountRequest createConnectedAccountRequest = null; + String idempotencyKey = null; + CompletableFuture> response = + api.createConnectedAccount(createConnectedAccountRequest, idempotencyKey); + } + /** * Disconnect connected account * @@ -69,8 +91,8 @@ public void getConnectedAccountTest() throws ApiException { * Get allowlist for connected account * *

Retrieves the address allowlist for a specified connected account. **Note:** This endpoint - * is currently in beta and might be subject to changes. Currently supports CoinbaseExchange - * accounts only. + * is currently in beta and might be subject to changes. Currently supports + * CoinbaseExchange/Binance accounts only. * * @throws ApiException if the Api call fails */ @@ -103,7 +125,7 @@ public void getConnectedAccountAllowlistTest() throws ApiException { * *

Retrieves a single allowlist entry by its Fireblocks identifier for a specified connected * account. **Note:** This endpoint is currently in beta and might be subject to changes. - * Currently supports CoinbaseExchange accounts only. + * Currently supports CoinbaseExchange/Binance accounts only. * * @throws ApiException if the Api call fails */ @@ -111,7 +133,7 @@ public void getConnectedAccountAllowlistTest() throws ApiException { public void getConnectedAccountAllowlistEntryTest() throws ApiException { String accountId = null; String allowlistId = null; - CompletableFuture> response = + CompletableFuture> response = api.getConnectedAccountAllowlistEntry(accountId, allowlistId); } @@ -209,7 +231,7 @@ public void renameConnectedAccountTest() throws ApiException { *

Triggers an on-demand sync from the exchange, bypassing the cache and fetching live data * immediately. **Rate limit:** 1 request per minute per connected account. **Note:** This * endpoint is currently in beta and might be subject to changes. Currently supports - * CoinbaseExchange accounts only. + * CoinbaseExchange/Binance accounts only. * * @throws ApiException if the Api call fails */ diff --git a/src/test/java/com/fireblocks/sdk/api/PolicyEditorV2BetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/PolicyEditorV2ApiTest.java similarity index 69% rename from src/test/java/com/fireblocks/sdk/api/PolicyEditorV2BetaApiTest.java rename to src/test/java/com/fireblocks/sdk/api/PolicyEditorV2ApiTest.java index 3713b1dc..2691a6f5 100644 --- a/src/test/java/com/fireblocks/sdk/api/PolicyEditorV2BetaApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/PolicyEditorV2ApiTest.java @@ -25,19 +25,17 @@ import org.junit.Ignore; import org.junit.Test; -/** API tests for PolicyEditorV2BetaApi */ +/** API tests for PolicyEditorV2Api */ @Ignore -public class PolicyEditorV2BetaApiTest { +public class PolicyEditorV2ApiTest { - private final PolicyEditorV2BetaApi api = new PolicyEditorV2BetaApi(); + private final PolicyEditorV2Api api = new PolicyEditorV2Api(); /** * Get the active policy and its validation by policy type * - *

Returns the active policy and its validation for a specific policy type. **Note:** This - * endpoint is currently in beta and subject to change. If you want to participate in the - * Policies beta, contact your Fireblocks Customer Success Manager or send an email to - * csm@fireblocks.com. Endpoint Permissions: Owner, Admin, Non-Signing Admin. + *

Returns the active policy and its validation for a specific policy type. Endpoint + * Permissions: Owner, Admin, Non-Signing Admin. * * @throws ApiException if the Api call fails */ @@ -51,8 +49,7 @@ public void getActivePolicyTest() throws ApiException { /** * Get the active draft by policy type * - *

Returns the active draft and its validation for a specific policy type. **Note:** These - * endpoints are currently in beta and might be subject to changes. + *

Returns the active draft and its validation for a specific policy type. * * @throws ApiException if the Api call fails */ @@ -66,9 +63,13 @@ public void getDraftTest() throws ApiException { /** * Send publish request for a certain draft id * - *

Send publish request of certain draft id and returns the response. **Note:** These - * endpoints are currently in beta and might be subject to changes. If you want to participate - * and learn more about the Fireblocks Policy Editor, please contact your Fireblocks Customer + *

Send publish request of certain draft id and returns the response. **⚠️ IMPORTANT SECURITY + * NOTICE:** The Fireblocks Policy is a critical security guardrail. Programmatically modifying + * your policy via the API introduces significant security risks. As an industry best practice, + * Fireblocks strongly recommends manual editing accompanied by strict human oversight and + * approval workflows for all policy changes. Programmatic updates should only be implemented by + * advanced users with comprehensive, multi-layer security controls in place. If you want to + * learn more about the Fireblocks Policy Editor, please contact your Fireblocks Customer * Success Manager or send an email to CSM@fireblocks.com. * * @throws ApiException if the Api call fails @@ -84,8 +85,12 @@ public void publishDraftTest() throws ApiException { /** * Update the draft with a new set of rules by policy types * - *

Update the draft and return its validation for specific policy types. **Note:** These - * endpoints are currently in beta and might be subject to changes. + *

Update the draft and return its validation for specific policy types. **⚠️ IMPORTANT + * SECURITY NOTICE:** The Fireblocks Policy is a critical security guardrail. Programmatically + * modifying your policy via the API introduces significant security risks. As an industry best + * practice, Fireblocks strongly recommends manual editing accompanied by strict human oversight + * and approval workflows for all policy changes. Programmatic updates should only be + * implemented by advanced users with comprehensive, multi-layer security controls in place. * * @throws ApiException if the Api call fails */ diff --git a/src/test/java/com/fireblocks/sdk/api/ReportsBetaApiTest.java b/src/test/java/com/fireblocks/sdk/api/ReportsBetaApiTest.java new file mode 100644 index 00000000..5ab05fa1 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/api/ReportsBetaApiTest.java @@ -0,0 +1,94 @@ +/* + * 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.fireblocks.sdk.ApiException; +import com.fireblocks.sdk.ApiResponse; +import com.fireblocks.sdk.model.CreateAddressesReportRequest; +import com.fireblocks.sdk.model.CreateReportResponse; +import com.fireblocks.sdk.model.ReportJobResponse; +import com.fireblocks.sdk.model.ReportListResponse; +import com.fireblocks.sdk.model.ReportStatus; +import com.fireblocks.sdk.model.ReportType; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import org.junit.Ignore; +import org.junit.Test; + +/** API tests for ReportsBetaApi */ +@Ignore +public class ReportsBetaApiTest { + + private final ReportsBetaApi api = new ReportsBetaApi(); + + /** + * Create a report + * + *

Creates a new asynchronous report job and returns a receipt containing the report ID. Poll + * `GET /v1/reports/{reportId}` to check status. When `status` is + * `COMPLETED`, the poll response includes a fresh pre-signed download URL in + * `links.downloadUrl`. **Note:** These endpoints are currently in beta and might be + * subject to changes. Endpoint Permission: Viewer and above. + * + * @throws ApiException if the Api call fails + */ + @Test + public void createReportTest() throws ApiException { + CreateAddressesReportRequest body = null; + String idempotencyKey = null; + CompletableFuture> response = + api.createReport(body, idempotencyKey); + } + + /** + * Get report status + * + *

Returns the current status of a report job. Check the `status` field to + * determine the outcome. When `status` is `COMPLETED`, the response + * includes a fresh pre-signed download URL in `links.downloadUrl` (TTL ~1 hour). + * Re-poll this endpoint to obtain a new URL after expiry. When `status` is + * `FAILED`, the `failedAt` timestamp indicates when the failure occurred. + * **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint + * Permission: Viewer and above. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getReportTest() throws ApiException { + String reportId = null; + CompletableFuture> response = api.getReport(reportId); + } + + /** + * List reports + * + *

Returns a paginated list of report jobs scoped to the calling tenant. **Note:** Download + * URLs are not included in list responses. Call `GET /v1/reports/{reportId}` to + * obtain a fresh signed download URL for a specific completed report. **Note:** These endpoints + * are currently in beta and might be subject to changes. Endpoint Permission: Viewer and above. + * + * @throws ApiException if the Api call fails + */ + @Test + public void listReportsTest() throws ApiException { + String pageCursor = null; + Integer pageSize = null; + String sortBy = null; + String order = null; + List status = null; + List reportType = null; + CompletableFuture> response = + api.listReports(pageCursor, pageSize, sortBy, order, status, reportType); + } +} diff --git a/src/test/java/com/fireblocks/sdk/api/TagsApiTest.java b/src/test/java/com/fireblocks/sdk/api/TagsApiTest.java index 6facfde7..f2ab89c4 100644 --- a/src/test/java/com/fireblocks/sdk/api/TagsApiTest.java +++ b/src/test/java/com/fireblocks/sdk/api/TagsApiTest.java @@ -34,23 +34,6 @@ public class TagsApiTest { private final TagsApi api = new TagsApi(); - /** - * Cancel an approval request by id - * - *

Cancel an approval request by id. Can only cancel requests in PENDING status. Returns 202 - * Accepted when the cancellation is processed. - * - * @throws ApiException if the Api call fails - */ - @Test - public void cancelApprovalRequestTest() throws ApiException { - String id = null; - String idempotencyKey = null; - - CompletableFuture> response = - api.cancelApprovalRequest(id, idempotencyKey); - } - /** * Create a new tag * diff --git a/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityTest.java b/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityTest.java index 6f2d2f63..89c44aef 100644 --- a/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityTest.java +++ b/src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityTest.java @@ -25,10 +25,10 @@ void testAddressRegistryLegalEntity() { // TODO: test AddressRegistryLegalEntity } - /** Test the property 'verified' */ + /** Test the property 'leiData' */ @Test - void verifiedTest() { - // TODO: test verified + void leiDataTest() { + // TODO: test leiData } /** Test the property 'entityName' */ diff --git a/src/test/java/com/fireblocks/sdk/model/AddressesFiltersTest.java b/src/test/java/com/fireblocks/sdk/model/AddressesFiltersTest.java new file mode 100644 index 00000000..90b823e1 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AddressesFiltersTest.java @@ -0,0 +1,39 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for AddressesFilters */ +class AddressesFiltersTest { + private final AddressesFilters model = new AddressesFilters(); + + /** Model tests for AddressesFilters */ + @Test + void testAddressesFilters() { + // TODO: test AddressesFilters + } + + /** Test the property 'vaultAccountIds' */ + @Test + void vaultAccountIdsTest() { + // TODO: test vaultAccountIds + } + + /** Test the property 'assets' */ + @Test + void assetsTest() { + // TODO: test assets + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/AllowlistEntryResponseTest.java b/src/test/java/com/fireblocks/sdk/model/AllowlistEntryResponseTest.java new file mode 100644 index 00000000..1b57b741 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/AllowlistEntryResponseTest.java @@ -0,0 +1,39 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for AllowlistEntryResponse */ +class AllowlistEntryResponseTest { + private final AllowlistEntryResponse model = new AllowlistEntryResponse(); + + /** Model tests for AllowlistEntryResponse */ + @Test + void testAllowlistEntryResponse() { + // TODO: test AllowlistEntryResponse + } + + /** Test the property 'data' */ + @Test + void dataTest() { + // TODO: test data + } + + /** Test the property 'metadata' */ + @Test + void metadataTest() { + // TODO: test metadata + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ChapsPaymentInfoTest.java b/src/test/java/com/fireblocks/sdk/model/ChapsPaymentInfoTest.java index bc66395f..5549a2e2 100644 --- a/src/test/java/com/fireblocks/sdk/model/ChapsPaymentInfoTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ChapsPaymentInfoTest.java @@ -49,6 +49,24 @@ void accountHolderSurnameTest() { // TODO: test accountHolderSurname } + /** Test the property 'accountHolderCity' */ + @Test + void accountHolderCityTest() { + // TODO: test accountHolderCity + } + + /** Test the property 'accountHolderCountry' */ + @Test + void accountHolderCountryTest() { + // TODO: test accountHolderCountry + } + + /** Test the property 'accountHolderPostalCode' */ + @Test + void accountHolderPostalCodeTest() { + // TODO: test accountHolderPostalCode + } + /** Test the property 'country' */ @Test void countryTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/ConnectedAccountErrorResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ConnectedAccountErrorResponseTest.java index e2511f83..f02a89a4 100644 --- a/src/test/java/com/fireblocks/sdk/model/ConnectedAccountErrorResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ConnectedAccountErrorResponseTest.java @@ -25,6 +25,18 @@ void testConnectedAccountErrorResponse() { // TODO: test ConnectedAccountErrorResponse } + /** Test the property 'message' */ + @Test + void messageTest() { + // TODO: test message + } + + /** Test the property 'code' */ + @Test + void codeTest() { + // TODO: test code + } + /** Test the property 'errorMessage' */ @Test void errorMessageTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/CreateAddressesReportRequestTest.java b/src/test/java/com/fireblocks/sdk/model/CreateAddressesReportRequestTest.java new file mode 100644 index 00000000..791376bf --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/CreateAddressesReportRequestTest.java @@ -0,0 +1,51 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for CreateAddressesReportRequest */ +class CreateAddressesReportRequestTest { + private final CreateAddressesReportRequest model = new CreateAddressesReportRequest(); + + /** Model tests for CreateAddressesReportRequest */ + @Test + void testCreateAddressesReportRequest() { + // TODO: test CreateAddressesReportRequest + } + + /** Test the property 'reportType' */ + @Test + void reportTypeTest() { + // TODO: test reportType + } + + /** Test the property 'outputFormat' */ + @Test + void outputFormatTest() { + // TODO: test outputFormat + } + + /** Test the property 'compress' */ + @Test + void compressTest() { + // TODO: test compress + } + + /** Test the property 'filters' */ + @Test + void filtersTest() { + // TODO: test filters + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/CreateConnectedAccountRequestTest.java b/src/test/java/com/fireblocks/sdk/model/CreateConnectedAccountRequestTest.java new file mode 100644 index 00000000..94dbf759 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/CreateConnectedAccountRequestTest.java @@ -0,0 +1,69 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for CreateConnectedAccountRequest */ +class CreateConnectedAccountRequestTest { + private final CreateConnectedAccountRequest model = new CreateConnectedAccountRequest(); + + /** Model tests for CreateConnectedAccountRequest */ + @Test + void testCreateConnectedAccountRequest() { + // TODO: test CreateConnectedAccountRequest + } + + /** Test the property 'providerId' */ + @Test + void providerIdTest() { + // TODO: test providerId + } + + /** Test the property 'displayName' */ + @Test + void displayNameTest() { + // TODO: test displayName + } + + /** Test the property 'creds' */ + @Test + void credsTest() { + // TODO: test creds + } + + /** Test the property 'apiKey' */ + @Test + void apiKeyTest() { + // TODO: test apiKey + } + + /** Test the property 'mainAccountId' */ + @Test + void mainAccountIdTest() { + // TODO: test mainAccountId + } + + /** Test the property 'accountId' */ + @Test + void accountIdTest() { + // TODO: test accountId + } + + /** Test the property 'onPremiseServerId' */ + @Test + void onPremiseServerIdTest() { + // TODO: test onPremiseServerId + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/CreateConnectedAccountResponseTest.java b/src/test/java/com/fireblocks/sdk/model/CreateConnectedAccountResponseTest.java new file mode 100644 index 00000000..dce321b9 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/CreateConnectedAccountResponseTest.java @@ -0,0 +1,33 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for CreateConnectedAccountResponse */ +class CreateConnectedAccountResponseTest { + private final CreateConnectedAccountResponse model = new CreateConnectedAccountResponse(); + + /** Model tests for CreateConnectedAccountResponse */ + @Test + void testCreateConnectedAccountResponse() { + // TODO: test CreateConnectedAccountResponse + } + + /** Test the property 'accounts' */ + @Test + void accountsTest() { + // TODO: test accounts + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/CreateReportResponseTest.java b/src/test/java/com/fireblocks/sdk/model/CreateReportResponseTest.java new file mode 100644 index 00000000..f70f55af --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/CreateReportResponseTest.java @@ -0,0 +1,33 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for CreateReportResponse */ +class CreateReportResponseTest { + private final CreateReportResponse model = new CreateReportResponse(); + + /** Model tests for CreateReportResponse */ + @Test + void testCreateReportResponse() { + // TODO: test CreateReportResponse + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/CreatedConnectedAccountItemTest.java b/src/test/java/com/fireblocks/sdk/model/CreatedConnectedAccountItemTest.java new file mode 100644 index 00000000..ff7abd03 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/CreatedConnectedAccountItemTest.java @@ -0,0 +1,51 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for CreatedConnectedAccountItem */ +class CreatedConnectedAccountItemTest { + private final CreatedConnectedAccountItem model = new CreatedConnectedAccountItem(); + + /** Model tests for CreatedConnectedAccountItem */ + @Test + void testCreatedConnectedAccountItem() { + // TODO: test CreatedConnectedAccountItem + } + + /** Test the property 'accountId' */ + @Test + void accountIdTest() { + // TODO: test accountId + } + + /** Test the property 'name' */ + @Test + void nameTest() { + // TODO: test name + } + + /** Test the property 'parentAccountId' */ + @Test + void parentAccountIdTest() { + // TODO: test parentAccountId + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/DelegationBlockchainPositionInfoTest.java b/src/test/java/com/fireblocks/sdk/model/DelegationBlockchainPositionInfoTest.java index e89988af..711af1a6 100644 --- a/src/test/java/com/fireblocks/sdk/model/DelegationBlockchainPositionInfoTest.java +++ b/src/test/java/com/fireblocks/sdk/model/DelegationBlockchainPositionInfoTest.java @@ -37,6 +37,12 @@ void stakeAccountDerivationChangeValueTest() { // TODO: test stakeAccountDerivationChangeValue } + /** Test the property 'rewardsBreakdown' */ + @Test + void rewardsBreakdownTest() { + // TODO: test rewardsBreakdown + } + /** Test the property 'isCompoundingValidator' */ @Test void isCompoundingValidatorTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponseTest.java b/src/test/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponseTest.java index 5fa38896..7bc7873d 100644 --- a/src/test/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponseTest.java @@ -61,4 +61,10 @@ void walletIdTest() { void tradingAccountTest() { // TODO: test tradingAccount } + + /** Test the property 'tags' */ + @Test + void tagsTest() { + // TODO: test tags + } } diff --git a/src/test/java/com/fireblocks/sdk/model/ExposureTest.java b/src/test/java/com/fireblocks/sdk/model/ExposureTest.java index c1226d59..257165f2 100644 --- a/src/test/java/com/fireblocks/sdk/model/ExposureTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ExposureTest.java @@ -25,10 +25,16 @@ void testExposure() { // TODO: test Exposure } - /** Test the property 'assetAddress' */ + /** Test the property 'address' */ @Test - void assetAddressTest() { - // TODO: test assetAddress + void addressTest() { + // TODO: test address + } + + /** Test the property 'amount' */ + @Test + void amountTest() { + // TODO: test amount } /** Test the property 'symbol' */ @@ -37,9 +43,21 @@ void symbolTest() { // TODO: test symbol } - /** Test the property 'amount' */ + /** Test the property 'decimals' */ @Test - void amountTest() { - // TODO: test amount + void decimalsTest() { + // TODO: test decimals + } + + /** Test the property 'assetId' */ + @Test + void assetIdTest() { + // TODO: test assetId + } + + /** Test the property 'amountUsd' */ + @Test + void amountUsdTest() { + // TODO: test amountUsd } } diff --git a/src/test/java/com/fireblocks/sdk/model/GetActionResponseTest.java b/src/test/java/com/fireblocks/sdk/model/GetActionResponseTest.java index 857323de..14f6a284 100644 --- a/src/test/java/com/fireblocks/sdk/model/GetActionResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/GetActionResponseTest.java @@ -31,6 +31,18 @@ void idTest() { // TODO: test id } + /** Test the property 'vaultAccountId' */ + @Test + void vaultAccountIdTest() { + // TODO: test vaultAccountId + } + + /** Test the property 'userId' */ + @Test + void userIdTest() { + // TODO: test userId + } + /** Test the property 'status' */ @Test void statusTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/IssueApiUserPairingTokenResponseTest.java b/src/test/java/com/fireblocks/sdk/model/IssueApiUserPairingTokenResponseTest.java new file mode 100644 index 00000000..dbbc8f6d --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/IssueApiUserPairingTokenResponseTest.java @@ -0,0 +1,69 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for IssueApiUserPairingTokenResponse */ +class IssueApiUserPairingTokenResponseTest { + private final IssueApiUserPairingTokenResponse model = new IssueApiUserPairingTokenResponse(); + + /** Model tests for IssueApiUserPairingTokenResponse */ + @Test + void testIssueApiUserPairingTokenResponse() { + // TODO: test IssueApiUserPairingTokenResponse + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'name' */ + @Test + void nameTest() { + // TODO: test name + } + + /** Test the property 'role' */ + @Test + void roleTest() { + // TODO: test role + } + + /** Test the property 'enabled' */ + @Test + void enabledTest() { + // TODO: test enabled + } + + /** Test the property 'userType' */ + @Test + void userTypeTest() { + // TODO: test userType + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + + /** Test the property 'pairingToken' */ + @Test + void pairingTokenTest() { + // TODO: test pairingToken + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestBaseTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestBaseTest.java index d201e0d3..21eabddb 100644 --- a/src/test/java/com/fireblocks/sdk/model/ManifestBaseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ManifestBaseTest.java @@ -30,4 +30,16 @@ void testManifestBase() { void supportedTest() { // TODO: test supported } + + /** Test the property 'participantsIdentificationPolicy' */ + @Test + void participantsIdentificationPolicyTest() { + // TODO: test participantsIdentificationPolicy + } + + /** Test the property 'supportedParties' */ + @Test + void supportedPartiesTest() { + // TODO: test supportedParties + } } diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestOrderInfoTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestOrderInfoTest.java index 138fa348..0b192be2 100644 --- a/src/test/java/com/fireblocks/sdk/model/ManifestOrderInfoTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ManifestOrderInfoTest.java @@ -36,4 +36,10 @@ void settlementTypesTest() { void executionTypesTest() { // TODO: test executionTypes } + + /** Test the property 'requiresReasonForPayment' */ + @Test + void requiresReasonForPaymentTest() { + // TODO: test requiresReasonForPayment + } } diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestOrderTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestOrderTest.java index ffe0e55d..f3f1fa9a 100644 --- a/src/test/java/com/fireblocks/sdk/model/ManifestOrderTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ManifestOrderTest.java @@ -31,6 +31,18 @@ void supportedTest() { // TODO: test supported } + /** Test the property 'participantsIdentificationPolicy' */ + @Test + void participantsIdentificationPolicyTest() { + // TODO: test participantsIdentificationPolicy + } + + /** Test the property 'supportedParties' */ + @Test + void supportedPartiesTest() { + // TODO: test supportedParties + } + /** Test the property 'settlementTypes' */ @Test void settlementTypesTest() { @@ -42,4 +54,10 @@ void settlementTypesTest() { void executionTypesTest() { // TODO: test executionTypes } + + /** Test the property 'requiresReasonForPayment' */ + @Test + void requiresReasonForPaymentTest() { + // TODO: test requiresReasonForPayment + } } diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestQuoteTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestQuoteTest.java index 2eb82a6e..8eeaf229 100644 --- a/src/test/java/com/fireblocks/sdk/model/ManifestQuoteTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ManifestQuoteTest.java @@ -31,6 +31,18 @@ void supportedTest() { // TODO: test supported } + /** Test the property 'participantsIdentificationPolicy' */ + @Test + void participantsIdentificationPolicyTest() { + // TODO: test participantsIdentificationPolicy + } + + /** Test the property 'supportedParties' */ + @Test + void supportedPartiesTest() { + // TODO: test supportedParties + } + /** Test the property 'settlementTypes' */ @Test void settlementTypesTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/ManifestTest.java b/src/test/java/com/fireblocks/sdk/model/ManifestTest.java index a09d5527..8286a7bc 100644 --- a/src/test/java/com/fireblocks/sdk/model/ManifestTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ManifestTest.java @@ -42,10 +42,4 @@ void quoteTest() { void rateTest() { // TODO: test rate } - - /** Test the property 'participantsIdentificationPolicy' */ - @Test - void participantsIdentificationPolicyTest() { - // TODO: test participantsIdentificationPolicy - } } diff --git a/src/test/java/com/fireblocks/sdk/model/OpportunityTest.java b/src/test/java/com/fireblocks/sdk/model/OpportunityTest.java index 001960b1..65c90638 100644 --- a/src/test/java/com/fireblocks/sdk/model/OpportunityTest.java +++ b/src/test/java/com/fireblocks/sdk/model/OpportunityTest.java @@ -109,6 +109,12 @@ void managementFeeTest() { // TODO: test managementFee } + /** Test the property 'exposureType' */ + @Test + void exposureTypeTest() { + // TODO: test exposureType + } + /** Test the property 'exposure' */ @Test void exposureTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicyTest.java b/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicyTest.java index 1faa2bf7..7b124017 100644 --- a/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicyTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationPolicyTest.java @@ -25,12 +25,6 @@ void testParticipantsIdentificationPolicy() { // TODO: test ParticipantsIdentificationPolicy } - /** Test the property 'supportedEndpoints' */ - @Test - void supportedEndpointsTest() { - // TODO: test supportedEndpoints - } - /** Test the property 'defaultSchema' */ @Test void defaultSchemaTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/PolicyMetadataTest.java b/src/test/java/com/fireblocks/sdk/model/PolicyMetadataEntryTest.java similarity index 76% rename from src/test/java/com/fireblocks/sdk/model/PolicyMetadataTest.java rename to src/test/java/com/fireblocks/sdk/model/PolicyMetadataEntryTest.java index 062ade2b..a0d61fa7 100644 --- a/src/test/java/com/fireblocks/sdk/model/PolicyMetadataTest.java +++ b/src/test/java/com/fireblocks/sdk/model/PolicyMetadataEntryTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; -/** Model tests for PolicyMetadata */ -class PolicyMetadataTest { - private final PolicyMetadata model = new PolicyMetadata(); +/** Model tests for PolicyMetadataEntry */ +class PolicyMetadataEntryTest { + private final PolicyMetadataEntry model = new PolicyMetadataEntry(); - /** Model tests for PolicyMetadata */ + /** Model tests for PolicyMetadataEntry */ @Test - void testPolicyMetadata() { - // TODO: test PolicyMetadata + void testPolicyMetadataEntry() { + // TODO: test PolicyMetadataEntry } /** Test the property 'editedBy' */ @@ -48,10 +48,4 @@ void publishedByTest() { void publishedAtTest() { // TODO: test publishedAt } - - /** Test the property 'policyType' */ - @Test - void policyTypeTest() { - // TODO: test policyType - } } diff --git a/src/test/java/com/fireblocks/sdk/model/Position2Test.java b/src/test/java/com/fireblocks/sdk/model/Position2Test.java index ff8bb13f..c5ba4a61 100644 --- a/src/test/java/com/fireblocks/sdk/model/Position2Test.java +++ b/src/test/java/com/fireblocks/sdk/model/Position2Test.java @@ -126,4 +126,10 @@ void lastSyncedAtTest() { void availableActionsTest() { // TODO: test availableActions } + + /** Test the property 'yield' */ + @Test + void yieldTest() { + // TODO: test yield + } } diff --git a/src/test/java/com/fireblocks/sdk/model/ReportConflictResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ReportConflictResponseTest.java new file mode 100644 index 00000000..ce4484a1 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ReportConflictResponseTest.java @@ -0,0 +1,45 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ReportConflictResponse */ +class ReportConflictResponseTest { + private final ReportConflictResponse model = new ReportConflictResponse(); + + /** Model tests for ReportConflictResponse */ + @Test + void testReportConflictResponse() { + // TODO: test ReportConflictResponse + } + + /** Test the property 'errorCode' */ + @Test + void errorCodeTest() { + // TODO: test errorCode + } + + /** Test the property 'name' */ + @Test + void nameTest() { + // TODO: test name + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ReportJobLinksTest.java b/src/test/java/com/fireblocks/sdk/model/ReportJobLinksTest.java new file mode 100644 index 00000000..5ada7f83 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ReportJobLinksTest.java @@ -0,0 +1,39 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ReportJobLinks */ +class ReportJobLinksTest { + private final ReportJobLinks model = new ReportJobLinks(); + + /** Model tests for ReportJobLinks */ + @Test + void testReportJobLinks() { + // TODO: test ReportJobLinks + } + + /** Test the property 'downloadUrl' */ + @Test + void downloadUrlTest() { + // TODO: test downloadUrl + } + + /** Test the property 'downloadUrlExpiresAt' */ + @Test + void downloadUrlExpiresAtTest() { + // TODO: test downloadUrlExpiresAt + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ReportJobResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ReportJobResponseTest.java new file mode 100644 index 00000000..a87274b8 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ReportJobResponseTest.java @@ -0,0 +1,99 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ReportJobResponse */ +class ReportJobResponseTest { + private final ReportJobResponse model = new ReportJobResponse(); + + /** Model tests for ReportJobResponse */ + @Test + void testReportJobResponse() { + // TODO: test ReportJobResponse + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + + /** Test the property 'reportType' */ + @Test + void reportTypeTest() { + // TODO: test reportType + } + + /** Test the property 'outputFormat' */ + @Test + void outputFormatTest() { + // TODO: test outputFormat + } + + /** Test the property 'compress' */ + @Test + void compressTest() { + // TODO: test compress + } + + /** Test the property 'requestedByUserId' */ + @Test + void requestedByUserIdTest() { + // TODO: test requestedByUserId + } + + /** Test the property 'createdAt' */ + @Test + void createdAtTest() { + // TODO: test createdAt + } + + /** Test the property 'completedAt' */ + @Test + void completedAtTest() { + // TODO: test completedAt + } + + /** Test the property 'failedAt' */ + @Test + void failedAtTest() { + // TODO: test failedAt + } + + /** Test the property 'rowCount' */ + @Test + void rowCountTest() { + // TODO: test rowCount + } + + /** Test the property 'fileSizeBytes' */ + @Test + void fileSizeBytesTest() { + // TODO: test fileSizeBytes + } + + /** Test the property 'links' */ + @Test + void linksTest() { + // TODO: test links + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ReportJobTest.java b/src/test/java/com/fireblocks/sdk/model/ReportJobTest.java new file mode 100644 index 00000000..14f8c8cd --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ReportJobTest.java @@ -0,0 +1,93 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ReportJob */ +class ReportJobTest { + private final ReportJob model = new ReportJob(); + + /** Model tests for ReportJob */ + @Test + void testReportJob() { + // TODO: test ReportJob + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'status' */ + @Test + void statusTest() { + // TODO: test status + } + + /** Test the property 'reportType' */ + @Test + void reportTypeTest() { + // TODO: test reportType + } + + /** Test the property 'outputFormat' */ + @Test + void outputFormatTest() { + // TODO: test outputFormat + } + + /** Test the property 'compress' */ + @Test + void compressTest() { + // TODO: test compress + } + + /** Test the property 'requestedByUserId' */ + @Test + void requestedByUserIdTest() { + // TODO: test requestedByUserId + } + + /** Test the property 'createdAt' */ + @Test + void createdAtTest() { + // TODO: test createdAt + } + + /** Test the property 'completedAt' */ + @Test + void completedAtTest() { + // TODO: test completedAt + } + + /** Test the property 'failedAt' */ + @Test + void failedAtTest() { + // TODO: test failedAt + } + + /** Test the property 'rowCount' */ + @Test + void rowCountTest() { + // TODO: test rowCount + } + + /** Test the property 'fileSizeBytes' */ + @Test + void fileSizeBytesTest() { + // TODO: test fileSizeBytes + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ReportListResponseTest.java b/src/test/java/com/fireblocks/sdk/model/ReportListResponseTest.java new file mode 100644 index 00000000..72bfb9a4 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ReportListResponseTest.java @@ -0,0 +1,45 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ReportListResponse */ +class ReportListResponseTest { + private final ReportListResponse model = new ReportListResponse(); + + /** Model tests for ReportListResponse */ + @Test + void testReportListResponse() { + // TODO: test ReportListResponse + } + + /** Test the property 'data' */ + @Test + void dataTest() { + // TODO: test data + } + + /** Test the property 'next' */ + @Test + void nextTest() { + // TODO: test next + } + + /** Test the property 'prev' */ + @Test + void prevTest() { + // TODO: test prev + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpointTest.java b/src/test/java/com/fireblocks/sdk/model/ReportOutputFormatTest.java similarity index 68% rename from src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpointTest.java rename to src/test/java/com/fireblocks/sdk/model/ReportOutputFormatTest.java index c755c017..9d76a6c9 100644 --- a/src/test/java/com/fireblocks/sdk/model/ParticipantsIdentificationSupportedEndpointTest.java +++ b/src/test/java/com/fireblocks/sdk/model/ReportOutputFormatTest.java @@ -15,11 +15,11 @@ import org.junit.jupiter.api.Test; -/** Model tests for ParticipantsIdentificationSupportedEndpoint */ -class ParticipantsIdentificationSupportedEndpointTest { - /** Model tests for ParticipantsIdentificationSupportedEndpoint */ +/** Model tests for ReportOutputFormat */ +class ReportOutputFormatTest { + /** Model tests for ReportOutputFormat */ @Test - void testParticipantsIdentificationSupportedEndpoint() { - // TODO: test ParticipantsIdentificationSupportedEndpoint + void testReportOutputFormat() { + // TODO: test ReportOutputFormat } } diff --git a/src/test/java/com/fireblocks/sdk/model/ReportStatusTest.java b/src/test/java/com/fireblocks/sdk/model/ReportStatusTest.java new file mode 100644 index 00000000..02275d83 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ReportStatusTest.java @@ -0,0 +1,25 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ReportStatus */ +class ReportStatusTest { + /** Model tests for ReportStatus */ + @Test + void testReportStatus() { + // TODO: test ReportStatus + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/ReportTypeTest.java b/src/test/java/com/fireblocks/sdk/model/ReportTypeTest.java new file mode 100644 index 00000000..5513e286 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/ReportTypeTest.java @@ -0,0 +1,25 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for ReportType */ +class ReportTypeTest { + /** Model tests for ReportType */ + @Test + void testReportType() { + // TODO: test ReportType + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/SepaPaymentInfoTest.java b/src/test/java/com/fireblocks/sdk/model/SepaPaymentInfoTest.java index 8f9887ac..fe79c00c 100644 --- a/src/test/java/com/fireblocks/sdk/model/SepaPaymentInfoTest.java +++ b/src/test/java/com/fireblocks/sdk/model/SepaPaymentInfoTest.java @@ -55,6 +55,18 @@ void accountHolderCountryTest() { // TODO: test accountHolderCountry } + /** Test the property 'accountHolderPostalCode' */ + @Test + void accountHolderPostalCodeTest() { + // TODO: test accountHolderPostalCode + } + + /** Test the property 'accountHolderCity' */ + @Test + void accountHolderCityTest() { + // TODO: test accountHolderCity + } + /** Test the property 'accountHolderAddress' */ @Test void accountHolderAddressTest() { diff --git a/src/test/java/com/fireblocks/sdk/model/SolanaBlockchainDataTest.java b/src/test/java/com/fireblocks/sdk/model/SolanaBlockchainDataTest.java index fb2c08ae..806ce7fe 100644 --- a/src/test/java/com/fireblocks/sdk/model/SolanaBlockchainDataTest.java +++ b/src/test/java/com/fireblocks/sdk/model/SolanaBlockchainDataTest.java @@ -36,4 +36,10 @@ void stakeAccountAddressTest() { void stakeAccountDerivationChangeValueTest() { // TODO: test stakeAccountDerivationChangeValue } + + /** Test the property 'rewardsBreakdown' */ + @Test + void rewardsBreakdownTest() { + // TODO: test rewardsBreakdown + } } diff --git a/src/test/java/com/fireblocks/sdk/model/SolanaRewardsBreakdownTest.java b/src/test/java/com/fireblocks/sdk/model/SolanaRewardsBreakdownTest.java new file mode 100644 index 00000000..6c6e8d6a --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/SolanaRewardsBreakdownTest.java @@ -0,0 +1,45 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for SolanaRewardsBreakdown */ +class SolanaRewardsBreakdownTest { + private final SolanaRewardsBreakdown model = new SolanaRewardsBreakdown(); + + /** Model tests for SolanaRewardsBreakdown */ + @Test + void testSolanaRewardsBreakdown() { + // TODO: test SolanaRewardsBreakdown + } + + /** Test the property 'issuance' */ + @Test + void issuanceTest() { + // TODO: test issuance + } + + /** Test the property 'mev' */ + @Test + void mevTest() { + // TODO: test mev + } + + /** Test the property 'lastRewardSyncedAt' */ + @Test + void lastRewardSyncedAtTest() { + // TODO: test lastRewardSyncedAt + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/SourceTransferPeerPathResponseTest.java b/src/test/java/com/fireblocks/sdk/model/SourceTransferPeerPathResponseTest.java index cd4b495c..2ae754ea 100644 --- a/src/test/java/com/fireblocks/sdk/model/SourceTransferPeerPathResponseTest.java +++ b/src/test/java/com/fireblocks/sdk/model/SourceTransferPeerPathResponseTest.java @@ -60,4 +60,10 @@ void walletIdTest() { void tradingAccountTest() { // TODO: test tradingAccount } + + /** Test the property 'tags' */ + @Test + void tagsTest() { + // TODO: test tags + } } diff --git a/src/test/java/com/fireblocks/sdk/model/TransactionTagTest.java b/src/test/java/com/fireblocks/sdk/model/TransactionTagTest.java new file mode 100644 index 00000000..bd1ea103 --- /dev/null +++ b/src/test/java/com/fireblocks/sdk/model/TransactionTagTest.java @@ -0,0 +1,39 @@ +/* + * 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.model; + + +import org.junit.jupiter.api.Test; + +/** Model tests for TransactionTag */ +class TransactionTagTest { + private final TransactionTag model = new TransactionTag(); + + /** Model tests for TransactionTag */ + @Test + void testTransactionTag() { + // TODO: test TransactionTag + } + + /** Test the property 'id' */ + @Test + void idTest() { + // TODO: test id + } + + /** Test the property 'label' */ + @Test + void labelTest() { + // TODO: test label + } +} diff --git a/src/test/java/com/fireblocks/sdk/model/UtxoIdentifierTest.java b/src/test/java/com/fireblocks/sdk/model/UtxoIdentifierTest.java index 9d4aa307..973c618f 100644 --- a/src/test/java/com/fireblocks/sdk/model/UtxoIdentifierTest.java +++ b/src/test/java/com/fireblocks/sdk/model/UtxoIdentifierTest.java @@ -37,9 +37,9 @@ void txHashTest() { // TODO: test txHash } - /** Test the property 'vout' */ + /** Test the property 'index' */ @Test - void voutTest() { - // TODO: test vout + void indexTest() { + // TODO: test index } } diff --git a/src/test/java/com/fireblocks/sdk/model/UtxoInputTest.java b/src/test/java/com/fireblocks/sdk/model/UtxoInputTest.java index ec63a11c..d8dd44cf 100644 --- a/src/test/java/com/fireblocks/sdk/model/UtxoInputTest.java +++ b/src/test/java/com/fireblocks/sdk/model/UtxoInputTest.java @@ -31,9 +31,9 @@ void txHashTest() { // TODO: test txHash } - /** Test the property 'vout' */ + /** Test the property 'index' */ @Test - void voutTest() { - // TODO: test vout + void indexTest() { + // TODO: test index } }