-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Labels
Description
Title: Achievement-Based NFT Rewards
Description
Create ERC721 contract for minting achievement badges.
Acceptance Criteria:
- Mints NFTs for:
- Top 3 finishes
- Season-long achievements
- Special events
- Stores metadata on IPFS
- Allows badge upgrades
Technical Details:
#[starknet::contract]
mod NFTRewards {
use starknet::ContractAddress;
#[storage]
struct Storage {
// ERC721 state
_name: felt252,
_symbol: felt252,
_owners: LegacyMap<u64, ContractAddress>,
_token_uris: LegacyMap<u64, felt252>
}
#[external(v0)]
fn mint_achievement(
ref self: ContractState,
to: ContractAddress,
achievement_type: u8,
metadata_cid: felt252
) {
assert(get_caller_address() == self.minter.read(), 'Unauthorized');
let token_id = self._next_id.read();
self._mint(to, token_id);
self._token_uris.write(token_id, metadata_cid);
}
}Notes:
- Implement ERC721 metadata extension
- Add achievement tier system
- Test batch minting
Reactions are currently unavailable