Verxio Protocol

Get Program Details

Retrieve comprehensive information about a loyalty program including its configuration, tier structure, point allocation rules, and metadata.

Overview

The getProgramDetails function fetches all configuration data for a specific loyalty program collection, providing complete visibility into the program structure.

import { getProgramDetails } from '@verxioprotocol/core'

const programDetails = await getProgramDetails(context, publicKey('COLLECTION_ADDRESS'))

console.log('Program Name:', programDetails.name)
console.log('Points Per Action:', programDetails.pointsPerAction)
console.log('Available Tiers:', programDetails.tiers)

Parameters

ParameterTypeRequiredDescription
contextVerxioContextThe initialized Verxio context object
collectionAddressPublicKeyThe collection address of the loyalty program

Return Value

The function returns a comprehensive object with all loyalty program configuration:

{
  name: string,                    // Program display name
  uri: string,                     // Program metadata URI
  collection: string,              // Collection public key
  updateAuthority: string,         // Update authority address
  metadata: {                      // Program metadata
    organizationName: string,
    brandColor?: string,
    description?: string
  },
  pointsPerAction: Record<string, number>, // Action point values
  tiers: Array<{                   // Reward tier structure
    name: string,
    xpRequired: number,
    rewards: string[]
  }>,
  totalPasses: number,             // Number of issued passes
  createdAt: number,               // Program creation timestamp
  lastUpdated: number              // Last modification timestamp
}

Data Categories

🏢 Program Info

  • name - Program display name
  • uri - Metadata URI
  • collection - Collection address
  • updateAuthority - Authority address

⚙️ Configuration

  • pointsPerAction - Point allocation
  • tiers - Reward structure
  • metadata - Brand information
  • totalPasses - Pass count

Usage Examples

Basic Program Information

const details = await getProgramDetails(context, collectionAddress)

// Display program overview
console.log(`Program: ${details.name}`)
console.log(`Organization: ${details.metadata.organizationName}`)
console.log(`Total Passes Issued: ${details.totalPasses}`)
console.log(`Created: ${new Date(details.createdAt * 1000).toLocaleDateString()}`)

Analyzing Point Structure

const details = await getProgramDetails(context, collectionAddress)

// Review point allocation
console.log('Points per action:')
Object.entries(details.pointsPerAction).forEach(([action, points]) => {
  console.log(`  ${action}: ${points} points`)
})

// Find highest value action
const highestAction = Object.entries(details.pointsPerAction)
  .reduce((max, [action, points]) => points > max.points ? { action, points } : max, 
          { action: '', points: 0 })
console.log(`Most valuable action: ${highestAction.action} (${highestAction.points} pts)`)

Tier Analysis

const details = await getProgramDetails(context, collectionAddress)

// Display tier progression
console.log('Tier Structure:')
details.tiers.forEach((tier, index) => {
  console.log(`${index + 1}. ${tier.name}`)
  console.log(`   XP Required: ${tier.xpRequired}`)
  console.log(`   Rewards: ${tier.rewards.join(', ')}`)
})

// Calculate progression gaps
for (let i = 1; i < details.tiers.length; i++) {
  const gap = details.tiers[i].xpRequired - details.tiers[i-1].xpRequired
  console.log(`Gap from ${details.tiers[i-1].name} to ${details.tiers[i].name}: ${gap} XP`)
}

Use Cases

📊 Analytics Dashboard

Build admin dashboards showing program configuration and statistics

🔧 Configuration Audit

Verify program settings before making updates or changes

🎯 User Interfaces

Display program information and tier progression to users

📈 Optimization

Analyze point allocation and tier gaps for program optimization