All URIs are relative to https://developers.fireblocks.com/reference/
Method | HTTP request | Description |
---|---|---|
approveTermsOfServiceByProviderId | POST /staking/providers/{providerId}/approveTermsOfService | |
executeAction | POST /staking/chains/{chainDescriptor}/{actionId} | |
getAllDelegations | GET /staking/positions | |
getChainInfo | GET /staking/chains/{chainDescriptor}/chainInfo | |
getChains | GET /staking/chains | |
getDelegationById | GET /staking/positions/{id} | |
getProviders | GET /staking/providers | |
getSummary | GET /staking/positions/summary | |
getSummaryByVault | GET /staking/positions/summary/vaults |
CompletableFuture<ApiResponse> approveTermsOfServiceByProviderId approveTermsOfServiceByProviderId(providerId, idempotencyKey)
Approve the terms of service of the staking provider. This must be called before performing a staking action for the first time with this provider.
// 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.StakingBetaApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; public class Example { public static void main(String[] args) { ConfigurationOptions configurationOptions = new ConfigurationOptions() .basePath(BasePath.Sandbox) .apiKey("my-api-key") .secretKey("my-secret-key"); Fireblocks fireblocks = new Fireblocks(configurationOptions); String providerId = "kiln"; // String | The unique identifier of the staking provider 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<ApiResponse<Object>> response = fireblocks.stakingBeta().approveTermsOfServiceByProviderId(providerId, 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 StakingBetaApi#approveTermsOfServiceByProviderId"); 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 StakingBetaApi#approveTermsOfServiceByProviderId"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); e.printStackTrace(); } } }
Name Type Description Notes providerId String The unique identifier of the staking provider [enum: kiln, figment] 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] CompletableFuture<ApiResponse<Object>>
No authorization required
- Content-Type: Not defined
- Accept: application/json
Status code Description Response headers 201 The terms of service have been successfully approved and is associated with 201 status code. - CompletableFuture<ApiResponse> executeAction executeAction(executeActionRequest, chainDescriptor, actionId, idempotencyKey)
Perform a chain-specific staking action (e.g. stake, unstake, withdraw).
// 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.StakingBetaApi; 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); ExecuteActionRequest executeActionRequest = new ExecuteActionRequest(); // ExecuteActionRequest | String chainDescriptor = "ETH"; // String | The protocol identifier (e.g. \"ETH\"/\"SOL\") to use String actionId = "stake"; // String | The operation that can be executed on a vault/position 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<ApiResponse<ExecuteActionResponse>> response = fireblocks.stakingBeta().executeAction(executeActionRequest, chainDescriptor, actionId, 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 StakingBetaApi#executeAction"); 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 StakingBetaApi#executeAction"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); e.printStackTrace(); } } }
Name Type Description Notes executeActionRequest ExecuteActionRequest chainDescriptor String The protocol identifier (e.g. "ETH"/"SOL") to use [enum: ETH, SOL, ETH_TEST3, SOL_TEST] actionId String The operation that can be executed on a vault/position [enum: stake, unstake, withdraw] 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] CompletableFuture<ApiResponse<ExecuteActionResponse>>
No authorization required
- Content-Type: application/json
- Accept: application/json
Status code Description Response headers 201 A chain-specific action has been executed successfully on vault/position and is associated with 201 status code. - CompletableFuture<ApiResponse<List>> getAllDelegations getAllDelegations(chainDescriptor)
Return detailed information on all staking positions, including the staked amount, rewards, status and more.
// 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.StakingBetaApi; 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 chainDescriptor = "chainDescriptor_example"; // String | Use \"ETH\" / \"SOL\" in order to obtain information related to the specific blockchain network or retrieve information about all chains that have data available by providing no argument. try { CompletableFuture<ApiResponse<List<DelegationDto>>> response = fireblocks.stakingBeta().getAllDelegations(chainDescriptor); 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 StakingBetaApi#getAllDelegations"); 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 StakingBetaApi#getAllDelegations"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); e.printStackTrace(); } } }
Name Type Description Notes chainDescriptor String Use "ETH" / "SOL" in order to obtain information related to the specific blockchain network or retrieve information about all chains that have data available by providing no argument. [optional] CompletableFuture<ApiResponse<List<DelegationDto>>>
No authorization required
- Content-Type: Not defined
- Accept: application/json
Status code Description Response headers 200 An array of position data was returned successfully - CompletableFuture<ApiResponse> getChainInfo getChainInfo(chainDescriptor)
Return chain-specific, staking-related information summary (e.g. epoch details, lockup durations, estimated rewards, etc.)
// 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.StakingBetaApi; 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 chainDescriptor = "ETH"; // String | The protocol identifier (e.g. \"ETH\"/\"SOL\") to use try { CompletableFuture<ApiResponse<ChainInfoResponseDto>> response = fireblocks.stakingBeta().getChainInfo(chainDescriptor); 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 StakingBetaApi#getChainInfo"); 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 StakingBetaApi#getChainInfo"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); e.printStackTrace(); } } }
Name Type Description Notes chainDescriptor String The protocol identifier (e.g. "ETH"/"SOL") to use [enum: ETH, SOL, ETH_TEST3, SOL_TEST] CompletableFuture<ApiResponse<ChainInfoResponseDto>>
No authorization required
- Content-Type: Not defined
- Accept: application/json
Status code Description Response headers 200 Chain specific info summary was returned successfully - CompletableFuture<ApiResponse<List>> getChains getChains()
Return an alphabetical list of supported chains.
// 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.StakingBetaApi; 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); try { CompletableFuture<ApiResponse<List<String>>> response = fireblocks.stakingBeta().getChains(); 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 StakingBetaApi#getChains"); 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 StakingBetaApi#getChains"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); e.printStackTrace(); } } }This endpoint does not need any parameter.
CompletableFuture<ApiResponse<List<String>>>
No authorization required
- Content-Type: Not defined
- Accept: application/json
Status code Description Response headers 200 - CompletableFuture<ApiResponse> getDelegationById getDelegationById(id)
Return detailed information on a staking position, including the staked amount, rewards, status and more.
// 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.StakingBetaApi; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; public class Example { public static void main(String[] args) { ConfigurationOptions configurationOptions = new ConfigurationOptions() .basePath(BasePath.Sandbox) .apiKey("my-api-key") .secretKey("my-secret-key"); Fireblocks fireblocks = new Fireblocks(configurationOptions); String id = "id_example"; // String | The unique identifier of the staking position try { CompletableFuture<ApiResponse<DelegationDto>> response = fireblocks.stakingBeta().getDelegationById(id); System.out.println("Status code: " + response.get().getStatusCode()); System.out.println("Response headers: " + response.get().getHeaders()); System.out.println("Response body: " + response.get().getData()); } catch (InterruptedException | ExecutionException e) { ApiException apiException = (ApiException)e.getCause(); System.err.println("Exception when calling StakingBetaApi#getDelegationById"); 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 StakingBetaApi#getDelegationById"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); e.printStackTrace(); } } }
Name Type Description Notes id String The unique identifier of the staking position CompletableFuture<ApiResponse<DelegationDto>>
No authorization required
- Content-Type: Not defined
- Accept: application/json
Status code Description Response headers 200 Position data was returned successfully - CompletableFuture<ApiResponse<List>> getProviders getProviders()
Return information on all the available staking providers.
// 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.StakingBetaApi; 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); try { CompletableFuture<ApiResponse<List<ProviderDto>>> response = fireblocks.stakingBeta().getProviders(); 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 StakingBetaApi#getProviders"); 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 StakingBetaApi#getProviders"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); e.printStackTrace(); } } }This endpoint does not need any parameter.
CompletableFuture<ApiResponse<List<ProviderDto>>>
No authorization required
- Content-Type: Not defined
- Accept: application/json
Status code Description Response headers 200 An array of supported providers was returned successfully - CompletableFuture<ApiResponse> getSummary getSummary()
Return a summary of all vaults, categorized by their status (active, inactive), the total amounts staked and total rewards per-chain.
// 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.StakingBetaApi; 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); try { CompletableFuture<ApiResponse<DelegationSummaryDto>> response = fireblocks.stakingBeta().getSummary(); 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 StakingBetaApi#getSummary"); 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 StakingBetaApi#getSummary"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); e.printStackTrace(); } } }This endpoint does not need any parameter.
CompletableFuture<ApiResponse<DelegationSummaryDto>>
No authorization required
- Content-Type: Not defined
- Accept: application/json
Status code Description Response headers 200 A summary for all vaults were returned successfully - CompletableFuture<ApiResponse<Map<String, DelegationSummaryDto>>> getSummaryByVault getSummaryByVault()
Return a summary for each vault, categorized by their status (active, inactive), the total amounts staked and total rewards per-chain.
// 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.StakingBetaApi; 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); try { CompletableFuture<ApiResponse<Map<String, DelegationSummaryDto>>> response = fireblocks.stakingBeta().getSummaryByVault(); 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 StakingBetaApi#getSummaryByVault"); 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 StakingBetaApi#getSummaryByVault"); System.err.println("Status code: " + e.getCode()); System.err.println("Response headers: " + e.getResponseHeaders()); System.err.println("Reason: " + e.getResponseBody()); e.printStackTrace(); } } }This endpoint does not need any parameter.
CompletableFuture<ApiResponse<Map<String, DelegationSummaryDto>>>
No authorization required
- Content-Type: Not defined
- Accept: application/json
Status code Description Response headers 200 A summary for each vault were returned successfully -