Polygon Address - 0xea58a24502f065a8cd53b94424d7b0e82b6e697c
Mints Limited Edition of a Digital Artwork as Address Bound Tokens (ABT, also called Non-Transferable NFTs, or Soulbound Tokens if attached to an identity). Each minted token can be given to a participant invited to a physical event. The contract:
- only allows contract owner to mint new tokens;
- mints no more than one token for the same guest;
- mints no more tokens than the amount of invited guests;
- allows to forever end minting before reaching the number of invited guests (some guests may not claim it);
- tokens aren't burnable.
The ownership of this token is (a) an eternal and public statement about the holder, is (b) a possible set of rights over the digital artwork it encapsulates, and (c) must serve no lucrative purposes. Standards such as ERC-721
or ERC-1155
are too complex for the use-case and require disabling some of their core functionalities (especially for ensuring (c)). This Smartcontract leverages ideas from the ERC-1238
standard discussion, can be improved in multiple ways, and poses itself as the first of a series of experiments.
Make sure to define the following variables within the execution environment:
export PRIVATE_KEY = '...'
export POLYGON_RPC_URL = '...'
export POLYGON_MUMBAI_RPC_URL = '...'
Alternately, they can be managed in other ways from hardhat.config.js
.
# Clone repository
git clone https://github.com/reasonedart/bulgari-gift-contract.git
# Go into the repository
cd bulgari-gift-contract
# Install dependencies
yarn install
# Compile Smartcontract
npx hardhat compile
# Test Smartcontract
npx hardhat test
# Deploy locally
npx hardhat run scripts/deploy.js
# OR, deploy on Polygon testnet
npx hardhat run scripts/deploy.js --network mumbai