🛂
KYCToken
KYCToken contract is used to manage the KYC-mode on a vault.
The KYC status is represented by a non-transferable NFT ERC721, minted only by trusted KYC providers. This NFT, associated with a unique address, allows that address to deposit funds in all vaults.
struct TokenParameters {
bool active;
string provider;
string proof;
uint256 flag;
uint256 expiration;
}
TokenParameters represents the stored metadata to enable on chain filtering when entering Vaults
Name | Type | Description |
---|---|---|
active | bool | ongoing KYC state |
provider | string | KYC trust provider |
proof | string | hash of the proof |
flag | uint256 | degree of sensitivity |
expiration | uint256 | expiration date |
function ownedNFTMap(address _owner) external view returns (uint256 tokenId)
Returns the token ID of the KYC NFT of a user.
Call Parameters:
Name | Type | Description |
---|---|---|
_owner | address | address of an owner |
Return Value:
Type | Description |
---|---|
uint256 | token ID of the KYC NFT |
function tokenParameters(uint256 tokenId)
public view virtual returns (TokenParameters memory)
Returns the KYC parameters for a given token ID.
Call Parameters:
Name | Type | Description |
---|---|---|
tokenId | uint256 | token ID |
Return Value:
Type | Description |
---|---|
TokenParameters | KYC parameters of the token |
function isUserKYC(address user) external view returns (bool)
Returns whether or not the user has a valid NFT.
Call Parameters:
Name | Type | Description |
---|---|---|
user | address | address of the user |
Return Value:
Type | Description |
---|---|
bool | true if the NFT is valid |
function setTokenParameters(
uint256 tokenId,
TokenParameters calldata parameters
) external
Allows KYC providers to edit TokenParameters of a given token ID.
This method can only be called by address with DEFAULT_ADMIN_ROLE.
Call Parameters:
Name | Type | Description |
---|---|---|
tokenId | uint256 | ID of the NFT |
parameters | TokenParameters | KYC parameters |
function mint(address to, TokenParameters memory parameters) public
Mints a KYC NFT and stores the KYC Metadata.
This method can only be called by address with MINTER_ROLE.
Call Parameters:
Name | Type | Description |
---|---|---|
to | address | address of the user |
parameters | TokenParameters | KYC parameters |
function batch(address[] memory users, TokenParameters[] memory parameters) external
Mints several KYC NFTs in one transaction.
This method can only be called by address with MINTER_ROLE.
Call Parameters:
Name | Type | Description |
---|---|---|
users | address[] | list of users addresses |
parameters | TokenParameters[] | list of KYC parameters |
Last modified 10mo ago