Skip to content

Add whitelist early access window so creators can reward their existing community before public launch #518

Description

@Chucks1093

Summary

When a creator launches on AccessLayer their keys go on sale to everyone instantly. Creators with an existing community want to give loyal followers a head start before the price rises. A whitelist window lets a creator register a set of approved addresses that can buy during an exclusive period after registration, before the general public can trade.

Scope

  • Add optional whitelist_window: Option<WhitelistConfig> to register_creator
    • WhitelistConfig { addresses: Vec<Address>, window_ledgers: u32 }
    • During the first window_ledgers ledgers after registration, only addresses in the whitelist can buy
    • After the window expires, anyone can buy as normal
  • Buy function checks: if current ledger is within the window and the buyer is not on the whitelist, revert with WhitelistOnly
  • Add get_whitelist_status(creator_id) -> WhitelistStatus view returning { active: bool, expires_at_ledger: u32, remaining_ledgers: u32 }
  • Whitelist config is immutable after registration
  • None means no whitelist — public from registration (current behavior)
  • Maximum whitelist size: 500 addresses

Acceptance Criteria

  • Non-whitelisted wallet cannot buy during the window
  • Whitelisted wallet can buy during the window
  • Anyone can buy after the window expires
  • get_whitelist_status returns correct active/expired state
  • Whitelist over 500 addresses reverts at registration
  • None whitelist allows public buy immediately after registration

ETA: 24 hours


Coordinate on Telegram

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial CampaignCampaign: Official CampaignStellar WaveIssues in the Stellar wave program

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions