Skip to main content
RewardCovenant lets an authority issue variable amounts to recipients for arbitrary events — achievements, referrals, loyalty milestones, or custom categories. Unlike airdrops (fixed, self-claim), rewards require the authority to sign each payout and set the exact amount.

Use Cases

  • Achievement rewards (reach milestones in a protocol)
  • Referral bonuses (variable by referee activity)
  • Loyalty programs (tiered rewards based on usage)
  • Custom incentive campaigns

How It Works

Reward Categories

The reward_category byte in the NFT state records the type for indexing and display:
ValueCategory
1ACHIEVEMENT
2REFERRAL
3LOYALTY
4CUSTOM

Key Properties

PropertyDetail
Amount per eventVariable. Must satisfy 0 < rewardAmount <= maxRewardAmount
RecipientsDifferent address per reward event
PoolFixed at deployment — auto-completes when exhausted
AuthorityControls all payouts — no self-claim path

NFT State

[0]:    status
[1]:    flags
[2]:    reward_category (uint8)
[3-10]: total_distributed (uint64)
[11-18]: rewards_count (uint64)
[19-23]: last_reward_timestamp (5 bytes)
[24-39]: reserved

Contract Reference

See RewardCovenant for full documentation.