Reward Calculations
Functions for calculating and querying bonding rewards.
trustBondingGetUserApyβ
Get user's annual percentage yield (APY).
Parametersβ
| Parameter | Type | Description | Required |
|---|---|---|---|
| config | ReadConfig | Contract address and publicClient | Yes |
| args | [Address] | User address | Yes |
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β
| Parameter | Type | Description | Required |
|---|---|---|---|
| config | ReadConfig | Contract address and publicClient | Yes |
| args | [Address] | User address | Yes |
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β
| Parameter | Type | Description | Required |
|---|---|---|---|
| config | ReadConfig | Contract address and publicClient | Yes |
| args | [Address, bigint] | User address, epoch number | Yes |
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β
| Parameter | Type | Description | Required |
|---|---|---|---|
| config | ReadConfig | Contract address and publicClient | Yes |
| args | [bigint] | Epoch number | Yes |
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β
| Parameter | Type | Description | Required |
|---|---|---|---|
| config | ReadConfig | Contract address and publicClient | Yes |
| args | [Address, bigint] | User address, epoch number | Yes |
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β
| Parameter | Type | Description | Required |
|---|---|---|---|
| config | ReadConfig | Contract address and publicClient | Yes |
| args | [Address, bigint] | User address, epoch number | Yes |
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β
| Parameter | Type | Description | Required |
|---|---|---|---|
| config | ReadConfig | Contract address and publicClient | Yes |
| args | [Address] | User address | Yes |
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β
| Parameter | Type | Description | Required |
|---|---|---|---|
| config | ReadConfig | Contract address and publicClient | Yes |
| args | [Address] | User address | Yes |
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β
| Parameter | Type | Description | Required |
|---|---|---|---|
| config | ReadConfig | Contract address and publicClient | Yes |
| args | [bigint] | Epoch number | Yes |
Returnsβ
Promise<bigint>
Exampleβ
import { trustBondingEmissionsForEpoch } from '@0xintuition/protocol'
const emissions = await trustBondingEmissionsForEpoch(
{ address: bondingAddress, publicClient },
{ args: [epochNumber] }
)
console.log('Epoch emissions:', formatEther(emissions))