📜
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_ROLE
in 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_ROLE
should 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.
The required
NFT_MANAGER_ROLE
permission 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_uri
as well as a file name that corresponds with the tokenId
or locked state.The
base_uri
can be an IPFS folder or any HTTP/S folder containing files 1, 2, 3, ..., locked
files in JSON format without the .json
extension. Do not include the trailing /
in the URI. The file locked
in the folder is used instead of the respective file that corresponds to the tokenId
when the NFT is in the locked state.On the standard Phygital v3 NFT Contract, the
NFT_MANAGER_ROLE
is required to update the metadata URI.Base URI examples:
https://ipfs.io/ipfs/<folder-hash>
https://www.example.com/nft-metadata
Metadata filename examples:
1
2
3
locked
Last modified 1mo ago