View Rewards and Delegations
View staking rewards and delegation details for custody or self-custody wallets. See the Guide.
-
Retrieve overall staking details for a wallet, including delegated balances, pending unstakes, rewards accrued, and expected APY. Staking delegates assets to a staking address, which could be a validator's address, an address linked to your wallet, or a smart-contract address depending on the asset.
Prerequisites:
- Complete the Get Started guide
- Create Wallets
- Stake Assets
-
Retrieve delegation details for a wallet, including delegation IDs, delegation addresses, withdrawal addresses, status, rewards, and APY. You can filter by delegation IDs and delegation status. Depending on the asset, multiple staking requests can result in one or more staking delegations. Use the delegation ID to Unstake Assets.
// 1. View Rewards
export COIN="<ASSET_ID>"
export WALLET_ID="<YOUR_WALLET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
curl -X GET \
"https://app.bitgo-test.com/api/staking/v1/$COIN/wallets/$WALLET_ID" \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN"
// 2. View Delegations
export COIN="<ASSET_ID>"
export WALLET_ID="<YOUR_WALLET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export DELEGATION_IDS="<DELEGATION_IDS>"
export DELEGATION_STATUS="<DELEGATION_STATUS>"
curl -X GET \
"https://app.bitgo-test.com/api/staking/v1/$COIN/wallets/$WALLET_ID/delegations?delegationIds=$DELEGATION_IDS&delegationStatus=$DELEGATION_STATUS" \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN"
// 1. View Rewards
query BitgoStakingWalletQuery($coin: String!, $walletId: String!) {
bitgoStakingWallet(coin: $coin, walletId: $walletId)
@rest(
type: "BitgoStakingWalletResponse"
path: "api/staking/v1/{args.coin}/wallets/{args.walletId}"
) {
enterpriseId
walletId
walletType
coin
delegated
pendingUnstake
rewards
apy
creationDate
modifiedDate
}
}
// 2. View Delegations
export const BitgoWalletDelegationsQuery = gql`
query BitgoWalletDelegationsQuery($coin: String!, $walletId: String!) {
bitgoWalletDelegations(coin: $coin, walletId: $walletId)
@rest(
type: "BitgoWalletDelegationsResponse"
path: "api/staking/v1/{args.coin}/wallets/{args.walletId}/delegations"
) {
delegations {
id
delegationsAddress
withdrawalAddress
delegated
coin
walletId
status
rewards
pendingUnstake
apy
unstakingMin
unstakingFee
}
page
totalPages
totalElements
}
}
`;
// 1. View Rewards Response
{
"enterpriseId": "1032e75c451052000436831deb797af1",
"walletId": "2032e75g451052000636831abd797bd3",
"walletType": "custodial",
"coin": "eth",
"delegated": 6400000000000000000,
"pendingStake":0,
"pendingUnstake": 0,
"rewards": 1000000000000000,
"apy": 8.2,
"createdDate": "2022-01-10T14:32:28Z",
"modifiedDate": "2022-01-10T14:32:28Z"
}
// 2. View Delegations Response
{
"page": 1,
"totalPages": 1,
"totalElements": 2,
"delegations": [
{
"id": "e0225adbc-66a3-4ccd-9a9d-726a05bca0cf",
"delegationAddress": "0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5",
"withdrawalAddress": "0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c",
"delegated": 3200000000000000000,
"status": "ACTIVE",
"rewards": 0,
"pendingUnstake": 3200000000000000000,
"apy": 8.3,
"coin": "hteth",
"walletId": "2032e75g451052000636831abd797bd3",
"unstakingFee": 100000000000000,
"unstakingMin": 0
},
{
"id": "e0225adbc-55b43-5tta-9a9d-726a05bca0ai",
"delegationAddress": "0x3b6406c9710f588ca733360bfa8033d0ef9ecre4",
"withdrawalAddress": "0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c",
"delegated": 3200000000000000000,
"status": "ACTIVE",
"rewards": 0,
"pendingUnstake": 0,
"apy": 8.3,
"coin": "hteth",
"walletId": "2032e75g451052000636831abd797bd3",
"unstakingFee": 1000000000000000,
"unstakingMin": 0
}
]
}