🛂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.

Types

TokenParameters

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

NameTypeDescription

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

View Methods

ownedNFTMap

function ownedNFTMap(address _owner) external view returns (uint256 tokenId)

Returns the token ID of the KYC NFT of a user.

Call Parameters:

NameTypeDescription

_owner

address

address of an owner

Return Value:

TypeDescription

uint256

token ID of the KYC NFT

tokenParameters

function tokenParameters(uint256 tokenId) 
    public view virtual returns (TokenParameters memory)

Returns the KYC parameters for a given token ID.

Call Parameters:

NameTypeDescription

tokenId

uint256

token ID

Return Value:

TypeDescription

TokenParameters

KYC parameters of the token

isUserKYC

function isUserKYC(address user) external view returns (bool)

Returns whether or not the user has a valid NFT.

Call Parameters:

NameTypeDescription

user

address

address of the user

Return Value:

TypeDescription

bool

true if the NFT is valid

Write Methods

setTokenParameters

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:

NameTypeDescription

tokenId

uint256

ID of the NFT

parameters

TokenParameters

KYC parameters

mint

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:

NameTypeDescription

to

address

address of the user

parameters

TokenParameters

KYC parameters

batch

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:

NameTypeDescription

users

address[]

list of users addresses

parameters

TokenParameters[]

list of KYC parameters

Last updated