Skip to content

Mints a limited edition of Address-bound Tokens given to participants to a physical event

License

Notifications You must be signed in to change notification settings

reasonedart/bulgari-gift-contract

Repository files navigation

Bulgari Address-bound Tokens

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.

Why Address Bound Tokens

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.

Usage

Environment Variables

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.

Testing

# 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

Deployment

# Deploy locally
npx hardhat run scripts/deploy.js

# OR, deploy on Polygon testnet
npx hardhat run scripts/deploy.js --network mumbai

About

Mints a limited edition of Address-bound Tokens given to participants to a physical event

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published