Skip to main content
Retrieve information about a user’s Earn position or the protocol status.

Get User Earn Info

import { getUserStakingInfo } from '@avnu/avnu-sdk';

const STRK_ADDRESS = '0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d';

const info = await getUserStakingInfo(
  STRK_ADDRESS,      // Token address
  account.address,   // User address
  { avnuPublicKey: '...' } // Optional
);

console.log('Staked Amount:', info.amount);
console.log('Staked Amount (USD):', info.amountInUsd);
console.log('Unclaimed Rewards:', info.unclaimedRewards);
console.log('Unclaimed Rewards (USD):', info.unclaimedRewardsInUsd);
console.log('Pool Address:', info.poolAddress);
console.log('Expected Yearly STRK Rewards:', info.expectedYearlyStrkRewards);

UserStakingInfo Interface

interface UserStakingInfo {
  tokenAddress: string;
  tokenPriceInUsd: number;
  poolAddress: string;
  userAddress: string;
  amount: bigint;
  amountInUsd: number | undefined;
  unclaimedRewards: bigint;
  unclaimedRewardsInUsd: number | undefined;
  unpoolAmount: bigint;
  unpoolAmountInUsd: number | undefined;
  unpoolTime: Date | undefined;
  totalClaimedRewards: bigint;
  totalClaimedRewardsHistoricalUsd?: number;
  totalClaimedRewardsUsd: number;
  userActions: Action[];
  totalUserActionsCount: number;
  expectedYearlyStrkRewards: bigint;
  aprs: Apr[];
}

Get avnu Earn Info

import { getAvnuStakingInfo } from '@avnu/avnu-sdk';

const stats = await getAvnuStakingInfo({ avnuPublicKey: '...' }); // Optional options

console.log('Self Staked Amount:', stats.selfStakedAmount);
console.log('Commission:', stats.commission);
console.log('Delegation Pools:', stats.delegationPools);

// Access pool-specific data
stats.delegationPools.forEach(pool => {
  console.log(`Pool ${pool.poolAddress}:`);
  console.log(`  Token: ${pool.tokenAddress}`);
  console.log(`  Staked: ${pool.stakedAmount}`);
  console.log(`  APR: ${pool.apr}%`);
});

StakingInfo Interface

interface StakingInfo {
  selfStakedAmount: bigint;
  selfStakedAmountInUsd: number | undefined;
  operationalAddress: string;
  rewardAddress: string;
  stakerAddress: string;
  commission: number;
  delegationPools: DelegationPool[];
}

interface DelegationPool {
  poolAddress: string;
  tokenAddress: string;
  stakedAmount: bigint;
  stakedAmountInUsd: number | undefined;
  apr: number;
}