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
| Parameter | Type | Required | Description |
|---|---|---|---|
| context | VerxioContext | ✅ | The initialized Verxio context object |
| collectionAddress | PublicKey | ✅ | The 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 nameuri- Metadata URIcollection- Collection addressupdateAuthority- Authority address
⚙️ Configuration
pointsPerAction- Point allocationtiers- Reward structuremetadata- Brand informationtotalPasses- 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