Get Stakes For Validator

Fetch active stakes data for a validator.

You can fetch all stakes for a particular validator quite easily. This code snippet show how you can achieve this. You can run this 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(validator:string) {

const query = `
  query StakesQuery($_contains: jsonb = "") {
    Stake_Program_Stake(where: {stake: {_contains: $_contains}}) {
      meta
      stake
      _lamports
      pubkey
    }
  }
`;

  const variables = {
    _contains: {
      delegation: {
        voter: validator
      }
    }
  }

  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.dir(data, {depth:null});
}

fetchStakes("FiijvR2ibXEHaFqB127CxrL3vSj19K2Kx1jf2RbK4BWS");

Last updated