MultiPass NFT for On-Chain KYC status
MultiPass NFT documentation for developers
HyperID empowers on-chain projects with its' MultiPass NFT feature - a unique and personalized reusable digital pass, based on user's KYC. This feature utilizes widely adopted NFT technology to ensure the uniqueness and immutability of each token.
HyperID has developed a custom smart contract for the MultiPass NFT collection, based on the ERC721 standard. In addition to traditional NFT contract functionality, this contract prohibits token transfers and provides an external view function called 'getUser', which returns the user's information combined in the struct 'User'.
Once users have minted their MultiPass NFT, third-party projects can query the user's KYC status, age, and other relevant information directly from the blockchain, without requiring additional actions from the user.
HyperID MultiPass contract is available at 0x4e6313F8534C83FaB5054a42e3D72Fc4254091BD on the BSC Mainnet and Polygon Mainnet networks.
struct User {
string userIdHash;
string phoneCountryCode;
string idCountryCode;
string residence;
uint8 hidLevel;
uint256 kycTime;
uint8 age;
}
userIdHash | string | The unique identifier of the user* |
phoneCountryCode | string | Phone number country code of the user according to ISO 3166-1 alpha-2 standard |
idCountryCode | string | Country code of the user (based on submitted documents) according to ISO 3166-1 alpha-2 standard |
residence | string | Residence country code according to ISO 3166-1 alpha-2 standard |
hidLevel | uint8 | Verification levels (based on the information provided during the KYC process):
0: Verified email address only
1: Verified email and phone number
2: Verified email, phone number, and linked social media accounts
3: All of the above + passed basic KYC
4: All of the above + passed advanced KYC |
kycTime | uint256 | Unix timestamp of the last KYC verification |
age | uint8 | Age of the user at the moment of last KYC verification |
*HyperID employs a robust hashing algorithm that extracts selected user information and converts it into a fixed-size string of characters, producing a one-of-a-kind NFT ID. This hashing method provides a secure means of safeguarding the user's privacy by making it impossible for unauthorized parties to access the actual user ID. This ensures that each NFT has a unique ID that cannot be replicated, providing a high level of security and trust in the authenticity of the NFT.
getUser
function getUser(address userAddr) external view returns (bool exists, User memory user);
Returns the boolean flag
exists
, that indicates whether the information about the user with specified userAddr
exists in the current blockchain. Also returns the User
struct with the KYC information of the specified user.Last modified 4mo ago