VeBetterDAO

VeBetterDAO Hooks

The hooks provide tools for interacting with VeBetterDAO's smart contracts and features:

Galaxy Member Hooks

  • useB3trDonated: Fetches the amount of B3TR tokens donated for a given token ID

  • useB3trToUpgrade: Retrieves the amount of B3TR tokens required to upgrade a specific token

  • useB3trToUpgradeToLevel: Gets the amount of B3TR needed to upgrade to a specific level

  • useGMBaseUri: Retrieves the base URI for the Galaxy Member NFT metadata

  • useGMMaxLevel: Fetches the maximum level possible for Galaxy Member NFTs

  • useGMbalance: Gets the number of GM NFTs owned by an address

  • useGetNodeIdAttached: Retrieves the Vechain Node Token ID attached to a given GM Token ID

  • useGetTokenIdAttachedToNode: Gets the GM Token ID attached to a given Vechain Node ID

  • useGetTokensInfoByOwner: Fetches token information for a specific owner with infinite scrolling support

  • useIsGMclaimable: Determines if a user can claim a GM NFT

  • useLevelMultiplier: Gets the reward multiplier for a specific GM level

  • useLevelOfToken: Retrieves the level of a specified token

  • useParticipatedInGovernance: Checks if an address has participated in governance

  • useSelectedGmNft: Comprehensive hook for retrieving data related to a Galaxy Member NFT

  • useSelectedTokenId: Gets the selected token ID for the selected galaxy member

  • useTokenIdByAccount: Retrieves the token ID for an address given an index

Node Management Hooks

  • useGetNodeManager: Gets the address of the user managing a node ID (endorsement) either through ownership or delegation

Rewards Hooks

  • useVotingRewards: Manages voting rewards functionality

  • useVotingRoundReward: Handles rewards for specific voting rounds

Usage Example

// Example usage of VeBetterDAO hooks
import {
    useGMbalance,
    useIsGMclaimable,
    useSelectedGmNft,
    useGetNodeManager,
    useParticipatedInGovernance,
} from '@vechain/vechain-kit';

const ExampleComponent = () => {
    const userAddress = "0x..."; // User's wallet address

    // Check GM NFT balance
    const { data: gmBalance } = useGMbalance(userAddress);

    // Check if user can claim a GM NFT
    const { isClaimable, isOwned } = useIsGMclaimable(userAddress);

    // Get comprehensive GM NFT data
    const {
        gmId,
        gmImage,
        gmName,
        gmLevel,
        gmRewardMultiplier,
        nextLevelGMRewardMultiplier,
        isGMLoading,
        isGMOwned,
        b3trToUpgradeGMToNextLevel,
        isEnoughBalanceToUpgradeGM,
        missingB3trToUpgrade,
        attachedNodeId,
        isXNodeAttachedToGM,
        maxGmLevel,
        isMaxGmLevelReached,
    } = useSelectedGmNft(userAddress);

    // Get node manager
    const { data: nodeManager } = useGetNodeManager(nodeId);

    // Check governance participation
    const { data: hasParticipated } = useParticipatedInGovernance(userAddress);

    console.log(
        'User GM NFTs:',
        gmBalance,
        'Can claim:',
        isClaimable,
        'Current GM Level:',
        gmLevel,
        'Node Manager:',
        nodeManager,
        'Has participated:',
        hasParticipated
    );

    return (
        // Your component JSX here
    );
};

export default ExampleComponent;

Last updated

Was this helpful?