Phygital v3 NFT Contract
Legitimate's Phygital v3 NFT contract is designed to allow multiple parties including Legitimate, third party developers or agencies, and the brands or creators themselves to work together and share permissions to interact with the contract on-chain.
Our NFT contract is open source and available here on GitHub: https://github.com/LegitimateTech/lgt-phygital-nft-v3
NFT contracts can be deployed by Legitimate or by third parties.
In the case of third party deployments, Legitimate's wallet (
legitimatetech.eth) will need to be assigned the
API_DELEGATE_ROLEin order to perform unlock and claim functionality for our hosted services. If token recovery and ownership reset is desired for processing returns or managing resales, the
TOKEN_RECOVERY_ROLEshould be assigned as well.
NFTs will be minted by Legitimate and made claimable if Legitimate is deploying the contract as well. As part of our hosted services, we can enable brands and creators to sell or give the end customer the items first without requiring wallets or crypto transactions.
NFT_MANAGER_ROLEpermission can also be granted to third party wallets or smart contracts to directly manage the minting process.
Our contract can also be modified and extended for an on-chain mint directly by potential holders as well. In the case of web3 native projects, NFTs can be minted by the owner's wallet with some modifications to our contract permissions and the NFT will automatically enter a locked state. Required changes include making the
mint()function publicly accessible and setting limitations such as wallet allowlists or maximum supply of tokens. The owner can then unlock the NFT when the physical item with the LGT Tag is received afterwards.
NFT metadata is derived from a URL that contains a
base_urias well as a file name that corresponds with the
tokenIdor locked state.
base_urican be an IPFS folder or any HTTP/S folder containing files
1, 2, 3, ..., lockedfiles in JSON format without the
.jsonextension. Do not include the trailing
/in the URI. The file
lockedin the folder is used instead of the respective file that corresponds to the
tokenIdwhen the NFT is in the locked state.
On the standard Phygital v3 NFT Contract, the
NFT_MANAGER_ROLEis required to update the metadata URI.
Base URI examples:
Metadata filename examples: