Membershipdefi

Source

MEMBERSHIP

NFT as/is Membership Utility

by using erc721 owner of id

by using erc721 owners

by using erc1155 owner of id

use this metodology, pattern for make or use an nft for : ticket, key for locks, membership, etc...

how to use: deploy mock, then contract . contract need mock address(some times nft id) as value.


Review

  • 1155 Example
IERC1155 keyNft; // keyNft - nft address = ticket
uint id;

function isMember() internal view returns (bool) {
    require(IERC1155(keyNft).balanceOf(msg.sender, id) > 0, "not valid member");
    return true;
}
  • 721 Example by id
IERC721 keyNft; // keyNft - nft address = ticket
uint id; // nft id

function isMember() internal view returns (bool) {
    require(msg.sender == IERC721(keyNft).ownerOf(id), "not valid member");
    return true;
}    
  • 721 Example by owner
IERC721 keyNft; // keyNft - nft address = ticket

function isMember() internal view returns (bool) {
    require(IERC721(keyNft).balanceOf(msg.sender) > 0, "not valid member");
    return true;
}