Get Stakes for a Wallet
Fetch all stake accounts for a wallet.
Given a wallet address, you can easily find out how much Sol has been staked to which voter/validator.
Here's a code snippet which you can directly run in replit to see it in action.
const SHYFT_KEY = "YOUR-KEY"
async function fetchGraphQL(query, name, variables) {
const result = await fetch(
`https://programs.shyft.to/v0/graphql/?api_key=${SHYFT_KEY}`,
{
method: "POST",
body: JSON.stringify({
query: query,
variables: variables,
operationName: name
})
}
);
return await result.json();
}
async function fetchStakes(wallet:string) {
const query = `
query StakesQuery($_contains: jsonb = "") {
Stake_Program_Stake(where: {meta: {_contains: $_contains}}) {
_lamports
meta
stake
pubkey
}
}
`;
const variables = {
_contains: {
authorized: {
staker: "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"
}
}
}
const { errors, data } = await fetchGraphQL(
query,
"StakesQuery",
variables
);
if (errors) {
// handle those errors like a pro
console.error(errors);
}
// do something great with this precious data
console.log(data);
}
fetchStakes("9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM");
{
"data": {
"Stake_Program_Stake": [
{
"_lamports": 60000002282880,
"_updatedAt": "2024-03-30T06:01:06.968",
"meta": {
"lockup": {
"epoch": "0",
"custodian": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"unix_timestamp": "0"
},
"authorized": {
"staker": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"withdrawer": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"
},
"rentExemptReserve": "2282880"
},
"stake": {
"delegation": {
"stake": "60000000000000",
"voter": "3N7s9zXMZ4QqvHQR15t5GNHyqc89KduzMP7423eWiD5g",
"activationEpoch": "254",
"deactivationEpoch": "595",
"warmupCooldownRate": 0.25
},
"creditsObserved": "132544279"
}
},
{
"_lamports": 2282881,
"_updatedAt": "2024-03-29T11:40:21.695",
"meta": {
"lockup": {
"epoch": "0",
"custodian": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"unix_timestamp": "0"
},
"authorized": {
"staker": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"withdrawer": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"
},
"rentExemptReserve": "2282880"
},
"stake": {
"delegation": {
"stake": "49999997717120",
"voter": "3N7s9zXMZ4QqvHQR15t5GNHyqc89KduzMP7423eWiD5g",
"activationEpoch": "254",
"deactivationEpoch": "273",
"warmupCooldownRate": 0.25
},
"creditsObserved": "9566403"
}
},
// More responses in array
]
}
}
Last updated