Summary
Without a per-wallet cap, a single wallet can buy a majority of a creator's keys, dominating the price and locking out genuine fans. Letting creators set a maximum number of keys any single wallet can hold at registration gives communities a fairer distribution from the start.
Scope
- Add optional
max_keys_per_wallet: Option<u32> parameter to register_creator
- At the start of buy, check if
current_holder_balance + amount > max_keys_per_wallet and revert with WalletCapExceeded if so
- Cap applies to each individual buy; the check is against the post-buy balance
- Peer-to-peer transfers are also subject to the cap — receiving a transfer that would breach the cap reverts with
WalletCapExceeded
- Add
get_wallet_cap(creator_id) -> Option<u32> view function
- Cap is immutable after registration
None means no per-wallet limit (current default behavior)
Acceptance Criteria
ETA: 24 hours
Coordinate on Telegram
Summary
Without a per-wallet cap, a single wallet can buy a majority of a creator's keys, dominating the price and locking out genuine fans. Letting creators set a maximum number of keys any single wallet can hold at registration gives communities a fairer distribution from the start.
Scope
max_keys_per_wallet: Option<u32>parameter toregister_creatorcurrent_holder_balance + amount > max_keys_per_walletand revert withWalletCapExceededif soWalletCapExceededget_wallet_cap(creator_id) -> Option<u32>view functionNonemeans no per-wallet limit (current default behavior)Acceptance Criteria
WalletCapExceededWalletCapExceededget_wallet_capreturnsNonefor uncapped creatorsNonepassed at registrationETA: 24 hours
Coordinate on Telegram