Skip to main content

Reward Calculations

Functions for calculating and querying bonding rewards.

trustBondingGetUserApy​

Get user's annual percentage yield (APY).

Parameters​

ParameterTypeDescriptionRequired
configReadConfigContract address and publicClientYes
args[Address]User addressYes

Returns​

Promise<bigint> // User APY (basis points)

Example​

import { trustBondingGetUserApy } from '@0xintuition/protocol'

const userApy = await trustBondingGetUserApy(
{ address: bondingAddress, publicClient },
{ args: [userAddress] }
)
console.log('User APY:', Number(userApy) / 100, '%')

trustBondingGetSystemApy​

Get system-wide APY.

Returns​

Promise<bigint> // System APY (basis points)

Example​

import { trustBondingGetSystemApy } from '@0xintuition/protocol'

const systemApy = await trustBondingGetSystemApy({ address: bondingAddress, publicClient })
console.log('System APY:', Number(systemApy) / 100, '%')

trustBondingGetUserCurrentClaimableRewards​

Get user's currently claimable rewards.

Parameters​

ParameterTypeDescriptionRequired
configReadConfigContract address and publicClientYes
args[Address]User addressYes

Returns​

Promise<bigint> // Claimable rewards amount

Example​

import { trustBondingGetUserCurrentClaimableRewards } from '@0xintuition/protocol'
import { formatEther } from 'viem'

const rewards = await trustBondingGetUserCurrentClaimableRewards(
{ address: bondingAddress, publicClient },
{ args: [userAddress] }
)
console.log('Claimable rewards:', formatEther(rewards))

trustBondingGetUserRewardsForEpoch​

Get user's rewards for a specific epoch.

Parameters​

ParameterTypeDescriptionRequired
configReadConfigContract address and publicClientYes
args[Address, bigint]User address, epoch numberYes

Returns​

Promise<bigint>

Example​

import { trustBondingGetUserRewardsForEpoch } from '@0xintuition/protocol'

const epochRewards = await trustBondingGetUserRewardsForEpoch(
{ address: bondingAddress, publicClient },
{ args: [userAddress, epochNumber] }
)
console.log('Epoch rewards:', formatEther(epochRewards))

trustBondingGetUnclaimedRewardsForEpoch​

Get unclaimed system rewards for an epoch.

Parameters​

ParameterTypeDescriptionRequired
configReadConfigContract address and publicClientYes
args[bigint]Epoch numberYes

Returns​

Promise<bigint>

Example​

import { trustBondingGetUnclaimedRewardsForEpoch } from '@0xintuition/protocol'

const unclaimed = await trustBondingGetUnclaimedRewardsForEpoch(
{ address: bondingAddress, publicClient },
{ args: [epochNumber] }
)
console.log('Unclaimed rewards:', formatEther(unclaimed))

trustBondingUserEligibleRewardsForEpoch​

Get eligible rewards for a user in an epoch.

Parameters​

ParameterTypeDescriptionRequired
configReadConfigContract address and publicClientYes
args[Address, bigint]User address, epoch numberYes

Returns​

Promise<bigint>

Example​

import { trustBondingUserEligibleRewardsForEpoch } from '@0xintuition/protocol'

const eligible = await trustBondingUserEligibleRewardsForEpoch(
{ address: bondingAddress, publicClient },
{ args: [userAddress, epochNumber] }
)
console.log('Eligible rewards:', formatEther(eligible))

trustBondingHasClaimedRewardsForEpoch​

Check if user has claimed rewards for an epoch.

Parameters​

ParameterTypeDescriptionRequired
configReadConfigContract address and publicClientYes
args[Address, bigint]User address, epoch numberYes

Returns​

Promise<boolean>

Example​

import { trustBondingHasClaimedRewardsForEpoch } from '@0xintuition/protocol'

const hasClaimed = await trustBondingHasClaimedRewardsForEpoch(
{ address: bondingAddress, publicClient },
{ args: [userAddress, epochNumber] }
)

if (hasClaimed) {
console.log('Rewards already claimed for this epoch')
} else {
console.log('Rewards available to claim')
}

trustBondingGetSystemUtilizationRatio​

Get system-wide utilization ratio.

Returns​

Promise<bigint>

Example​

import { trustBondingGetSystemUtilizationRatio } from '@0xintuition/protocol'

const ratio = await trustBondingGetSystemUtilizationRatio({ address: bondingAddress, publicClient })
console.log('System utilization ratio:', ratio)

trustBondingGetPersonalUtilizationRatio​

Get user's personal utilization ratio.

Parameters​

ParameterTypeDescriptionRequired
configReadConfigContract address and publicClientYes
args[Address]User addressYes

Returns​

Promise<bigint>

Example​

import { trustBondingGetPersonalUtilizationRatio } from '@0xintuition/protocol'

const personalRatio = await trustBondingGetPersonalUtilizationRatio(
{ address: bondingAddress, publicClient },
{ args: [userAddress] }
)
console.log('Personal utilization ratio:', personalRatio)

trustBondingGetUserInfo​

Get comprehensive user bonding information.

Parameters​

ParameterTypeDescriptionRequired
configReadConfigContract address and publicClientYes
args[Address]User addressYes

Returns​

Promise<UserInfo> // Complete user bonding data

Example​

import { trustBondingGetUserInfo } from '@0xintuition/protocol'

const userInfo = await trustBondingGetUserInfo(
{ address: bondingAddress, publicClient },
{ args: [userAddress] }
)
console.log('User bonding info:', userInfo)

trustBondingEmissionsForEpoch​

Get total emissions for an epoch.

Parameters​

ParameterTypeDescriptionRequired
configReadConfigContract address and publicClientYes
args[bigint]Epoch numberYes

Returns​

Promise<bigint>

Example​

import { trustBondingEmissionsForEpoch } from '@0xintuition/protocol'

const emissions = await trustBondingEmissionsForEpoch(
{ address: bondingAddress, publicClient },
{ args: [epochNumber] }
)
console.log('Epoch emissions:', formatEther(emissions))

See Also​