import cobo_waas2
from cobo_waas2.models.eth_stake_estimated_fee import EthStakeEstimatedFee
from cobo_waas2.models.get_staking_estimation_fee_request import (
GetStakingEstimationFeeRequest,
)
from cobo_waas2.rest import ApiException
from pprint import pprint
# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
# Replace `<YOUR_PRIVATE_KEY>` with your private key
api_private_key="<YOUR_PRIVATE_KEY>",
# Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = cobo_waas2.StakingsApi(api_client)
get_staking_estimation_fee_request = cobo_waas2.GetStakingEstimationFeeRequest(
activity_type="Stake",
pool_id="babylon_btc_signet",
amount="100.00",
fee=cobo_waas2.TransactionRequestFee(
cobo_waas2.TransactionRequestFixedFee(
fee_type="EVM_EIP_1559", token_id="TRON"
)
),
)
try:
# Estimate staking fees v2
api_response = api_instance.get_staking_estimation_fee_v2(
get_staking_estimation_fee_request=get_staking_estimation_fee_request
)
print("The response of StakingsApi->get_staking_estimation_fee_v2:\n")
pprint(api_response)
except Exception as e:
print(
"Exception when calling StakingsApi->get_staking_estimation_fee_v2: %s\n"
% e
)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.StakingsApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
StakingsApi apiInstance = new StakingsApi();
GetStakingEstimationFeeRequest getStakingEstimationFeeRequest =
new GetStakingEstimationFeeRequest()
.activityType(ActivityType.STAKE)
.poolId(StakingPoolId.BABYLON_BTC_SIGNET)
.amount("100.00")
.fee(
new TransactionRequestFee(
new TransactionRequestFixedFee()
.feeType(FeeType.EVM_EIP_1559)
.tokenId("TRON")));
try {
EthStakeEstimatedFee result =
apiInstance.getStakingEstimationFeeV2(getStakingEstimationFeeRequest);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling StakingsApi#getStakingEstimationFeeV2");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
getStakingEstimationFeeRequest := coboWaas2.get_staking_estimation_fee_request{
EstimateClaimFee: coboWaas2.NewEstimateClaimFee(coboWaas2.ActivityType("Stake")),
}
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.StakingsAPI.GetStakingEstimationFeeV2(ctx).
GetStakingEstimationFeeRequest(getStakingEstimationFeeRequest).
Execute()
if err != nil {
fmt.Fprintf(
os.Stderr,
"Error when calling `StakingsAPI.GetStakingEstimationFeeV2``: %v\n",
err,
)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetStakingEstimationFeeV2`: EthStakeEstimatedFee
fmt.Fprintf(os.Stdout, "Response from `StakingsAPI.GetStakingEstimationFeeV2`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.StakingsApi();
const opts = {
GetStakingEstimationFeeRequest:
CoboWaas2.GetStakingEstimationFeeRequest.constructFromObject({
activity_type: "Stake",
pool_id: "babylon_btc_signet",
amount: "100.00",
fee: { fee_type: "EVM_EIP_1559", token_id: "TRON" },
}),
};
apiInstance.getStakingEstimationFeeV2(opts).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
{
"pool_type": "Babylon",
"fee": {
"fee_type": "EVM_EIP_1559",
"token_id": "TRON",
"fee_amount": "0.1",
"is_loop": false
},
"validator_pubkeys": [
"0x1234567890987654321012345678909876543210"
],
"core_btc_staking_address": "bc1qcqj9k34vrvgmmvt85ym2ua79k2d22vcfxmuratakfm78chdqksnq5agezk"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}Estimate staking fees v2
This operation calculates the fee required for a staking activity based on factors such as network congestion and transaction complexity.
import cobo_waas2
from cobo_waas2.models.eth_stake_estimated_fee import EthStakeEstimatedFee
from cobo_waas2.models.get_staking_estimation_fee_request import (
GetStakingEstimationFeeRequest,
)
from cobo_waas2.rest import ApiException
from pprint import pprint
# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
# Replace `<YOUR_PRIVATE_KEY>` with your private key
api_private_key="<YOUR_PRIVATE_KEY>",
# Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = cobo_waas2.StakingsApi(api_client)
get_staking_estimation_fee_request = cobo_waas2.GetStakingEstimationFeeRequest(
activity_type="Stake",
pool_id="babylon_btc_signet",
amount="100.00",
fee=cobo_waas2.TransactionRequestFee(
cobo_waas2.TransactionRequestFixedFee(
fee_type="EVM_EIP_1559", token_id="TRON"
)
),
)
try:
# Estimate staking fees v2
api_response = api_instance.get_staking_estimation_fee_v2(
get_staking_estimation_fee_request=get_staking_estimation_fee_request
)
print("The response of StakingsApi->get_staking_estimation_fee_v2:\n")
pprint(api_response)
except Exception as e:
print(
"Exception when calling StakingsApi->get_staking_estimation_fee_v2: %s\n"
% e
)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.StakingsApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
StakingsApi apiInstance = new StakingsApi();
GetStakingEstimationFeeRequest getStakingEstimationFeeRequest =
new GetStakingEstimationFeeRequest()
.activityType(ActivityType.STAKE)
.poolId(StakingPoolId.BABYLON_BTC_SIGNET)
.amount("100.00")
.fee(
new TransactionRequestFee(
new TransactionRequestFixedFee()
.feeType(FeeType.EVM_EIP_1559)
.tokenId("TRON")));
try {
EthStakeEstimatedFee result =
apiInstance.getStakingEstimationFeeV2(getStakingEstimationFeeRequest);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling StakingsApi#getStakingEstimationFeeV2");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
getStakingEstimationFeeRequest := coboWaas2.get_staking_estimation_fee_request{
EstimateClaimFee: coboWaas2.NewEstimateClaimFee(coboWaas2.ActivityType("Stake")),
}
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.StakingsAPI.GetStakingEstimationFeeV2(ctx).
GetStakingEstimationFeeRequest(getStakingEstimationFeeRequest).
Execute()
if err != nil {
fmt.Fprintf(
os.Stderr,
"Error when calling `StakingsAPI.GetStakingEstimationFeeV2``: %v\n",
err,
)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetStakingEstimationFeeV2`: EthStakeEstimatedFee
fmt.Fprintf(os.Stdout, "Response from `StakingsAPI.GetStakingEstimationFeeV2`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.StakingsApi();
const opts = {
GetStakingEstimationFeeRequest:
CoboWaas2.GetStakingEstimationFeeRequest.constructFromObject({
activity_type: "Stake",
pool_id: "babylon_btc_signet",
amount: "100.00",
fee: { fee_type: "EVM_EIP_1559", token_id: "TRON" },
}),
};
apiInstance.getStakingEstimationFeeV2(opts).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
{
"pool_type": "Babylon",
"fee": {
"fee_type": "EVM_EIP_1559",
"token_id": "TRON",
"fee_amount": "0.1",
"is_loop": false
},
"validator_pubkeys": [
"0x1234567890987654321012345678909876543210"
],
"core_btc_staking_address": "bc1qcqj9k34vrvgmmvt85ym2ua79k2d22vcfxmuratakfm78chdqksnq5agezk"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}import cobo_waas2
from cobo_waas2.models.eth_stake_estimated_fee import EthStakeEstimatedFee
from cobo_waas2.models.get_staking_estimation_fee_request import (
GetStakingEstimationFeeRequest,
)
from cobo_waas2.rest import ApiException
from pprint import pprint
# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
# Replace `<YOUR_PRIVATE_KEY>` with your private key
api_private_key="<YOUR_PRIVATE_KEY>",
# Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = cobo_waas2.StakingsApi(api_client)
get_staking_estimation_fee_request = cobo_waas2.GetStakingEstimationFeeRequest(
activity_type="Stake",
pool_id="babylon_btc_signet",
amount="100.00",
fee=cobo_waas2.TransactionRequestFee(
cobo_waas2.TransactionRequestFixedFee(
fee_type="EVM_EIP_1559", token_id="TRON"
)
),
)
try:
# Estimate staking fees v2
api_response = api_instance.get_staking_estimation_fee_v2(
get_staking_estimation_fee_request=get_staking_estimation_fee_request
)
print("The response of StakingsApi->get_staking_estimation_fee_v2:\n")
pprint(api_response)
except Exception as e:
print(
"Exception when calling StakingsApi->get_staking_estimation_fee_v2: %s\n"
% e
)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.StakingsApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
StakingsApi apiInstance = new StakingsApi();
GetStakingEstimationFeeRequest getStakingEstimationFeeRequest =
new GetStakingEstimationFeeRequest()
.activityType(ActivityType.STAKE)
.poolId(StakingPoolId.BABYLON_BTC_SIGNET)
.amount("100.00")
.fee(
new TransactionRequestFee(
new TransactionRequestFixedFee()
.feeType(FeeType.EVM_EIP_1559)
.tokenId("TRON")));
try {
EthStakeEstimatedFee result =
apiInstance.getStakingEstimationFeeV2(getStakingEstimationFeeRequest);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling StakingsApi#getStakingEstimationFeeV2");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
getStakingEstimationFeeRequest := coboWaas2.get_staking_estimation_fee_request{
EstimateClaimFee: coboWaas2.NewEstimateClaimFee(coboWaas2.ActivityType("Stake")),
}
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.StakingsAPI.GetStakingEstimationFeeV2(ctx).
GetStakingEstimationFeeRequest(getStakingEstimationFeeRequest).
Execute()
if err != nil {
fmt.Fprintf(
os.Stderr,
"Error when calling `StakingsAPI.GetStakingEstimationFeeV2``: %v\n",
err,
)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetStakingEstimationFeeV2`: EthStakeEstimatedFee
fmt.Fprintf(os.Stdout, "Response from `StakingsAPI.GetStakingEstimationFeeV2`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.StakingsApi();
const opts = {
GetStakingEstimationFeeRequest:
CoboWaas2.GetStakingEstimationFeeRequest.constructFromObject({
activity_type: "Stake",
pool_id: "babylon_btc_signet",
amount: "100.00",
fee: { fee_type: "EVM_EIP_1559", token_id: "TRON" },
}),
};
apiInstance.getStakingEstimationFeeV2(opts).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
Authorizations
The API key. For more details, refer to API key.
In the API playground, enter your API secret, and your API key will be accordingly calculated.
Body
The request body to get the estimated fee of a staking activity.
- Staking fee
- Unstaking fee
- Withdrawal fee
- Claim fee
The type of the staking activity. Possible values include:
Stake: Stake tokens.Unstake: Unstake tokens. Unstaked tokens are still in the staking protocol.Withdraw: Withdraw tokens from the staking protocol to your wallet.Claim: Claim rewards from the staking protocol.
Stake, Unstake, Withdraw, Claim "Stake"
The ID of the staking pool. A staking pool is a pairing of a staking protocol and a specific type of token. Currently, berachain_bgt and berachain_bgt_testnet are not supported.
babylon_btc_signet, babylon_btc, beacon_eth, beacon_eth_holesky, core_btc, core_xtn, sky_farm_eth_usdc, bithive_signet, bithive, beacon_bera, beacon_bera_testnet, berachain_bgt, berachain_bgt_testnet "babylon_btc_signet"
The amount to stake.
"100.00"
The preset properties to limit transaction fee.
In the fixed fee model, the transaction fee is a fixed amount within a certain amount of period regardless of the transaction size or network congestion, which can vary between different chains. For more information about the fixed fee model, refer to Fee models.
You can specify the maximum fee amount to limit the transaction fee. The transaction will fail if the transaction fee exceeds the specified maximum fee amount.
Switch between the tabs to display the properties for different transaction fee models.
- Fixed
- EVM_EIP_1559
- EVM_Legacy
- UTXO
- SOL
- FIL
Show child attributes
Show child attributes
The request ID that is used to track a request. The request ID is provided by you and must be unique within your organization.
"f47ac10b-58cc-4372-a567-0e02b2c3d479"
The information about the staking source.
Show child attributes
Show child attributes
The staking information specific to the Babylon protocol.
- Babylon
- Ethereum Beacon Chain
- CORE
Show child attributes
Show child attributes
Response
The request was successful.
The type of the staking pool. Possible values are:
Babylon: Babylon staking poolETHBeacon: Ethereum Beacon Chain staking poolCoreBTC: Core BTC staking poolSkyFarm: SKY farm staking poolBitHive: BitHive staking poolBERABeacon: BERA Beacon Chain staking poolBeraChainBGT: Bera Chain BGT staking pool
Babylon, ETHBeacon, CoreBTC, SkyFarm, BitHive, BERABeacon, BeraChainBGT "Babylon"
The estimated transaction fee based on the fixed fee model.
For more details about the fixed fee model, see Fee models.
- Fixed
- EVM_EIP_1559
- EVM_Legacy
- UTXO
- SOL
- FIL
Show child attributes
Show child attributes
A list of public keys associated with the Ethereum validators for this staking operation.
[
"0x1234567890987654321012345678909876543210"
]
The P2WSH address generated for this staking operation (only applicable if the estimated fee is for CORE staking).
"bc1qcqj9k34vrvgmmvt85ym2ua79k2d22vcfxmuratakfm78chdqksnq5agezk"
Was this page helpful?
