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