KintoID
Deployment Address:
Mainnet: 0xf369f78E3A0492CC4e96a90dae0728A38498e9c7
Interface: IKintoId.sol
Basics
The easiest way to check an account is to use the isKYC
method. It checks a given address, making sure it has a valid KYC. It has been audited recently for AML sanctions, and it has none.
For example, if you want to check whether a specific address verifies all these properties, you can call:
Trait IDs
Every user has a trait that identifies its country of origin using the ISO-32166. For example, if an individual is a citizen of the USA, the trait with ID 840 will be set. The following traits will be used to verify additional flags on a user identity.
Name | Number |
---|---|
KINTO_ADMIN_WALLET | 0 |
US_ACCREDITATION | 1 |
USA | 840 |
... | ... |
Using the following call method, you can quickly check if a user has any trait. For example, if you want to check whether a specific address is an accredited investor in the US, you can use:
Sanction IDs
The numerical country code will key the sanction IDs according to https://en.wikipedia.org/wiki/ISO_3166-1_numeric.
Kinto will use the country code 1 for network related incidents including hacks, stolen and duplicate identity.
For example, to check whether a user has any sanctions in the US:
State Functions
Privileged roles can call the following functions.
1. mintIndividualKyc
This function mints a KYC token for an individual with specific traits. Only KYC providers are allowed to call this function.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_signatureData | SignatureData calldata | Contains the signature data for minting the KYC token |
_traits | uint16[] memory | The array of trait IDs for the individual |
2. mintCompanyKyc
This function mints a KYC token for a company with specific traits. Only KYC providers are allowed to call this function.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_signatureData | SignatureData calldata | Contains the signature data for minting the KYC token |
_traits | uint16[] memory | The array of trait IDs for the company |
3. burnKYC
This function burns a KYC token. Only KYC providers are allowed to call this function.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_signatureData | SignatureData calldata | Contains the signature data for burning |
4. addTrait
This function adds a trait to a given account. Only KYC providers are allowed to call this function.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The account address |
_traitId | uint16 | ID of the trait to add |
5. removeTrait
This function removes a trait from a given account. Only KYC providers are allowed to call this function.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The account address |
_traitId | uint16 | ID of the trait to remove |
6. addSanction
This function adds a sanction to a given account. Only KYC providers are allowed to call this function.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The account address |
_countryId | uint16 | ID of the country to sanction |
7. removeSanction
This function removes a sanction from a given account.
Only KYC providers are allowed to call this function.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The account address |
_countryId | uint8 | ID of the country to remove sanction |
8. monitor
This function monitors an array of accounts and updates their traits and sanctions. Only KYC providers are allowed to call this function.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_accounts | address[] memory | Array of account addresses |
_traitsAndSanctions | MonitorUpdateData[][] memory | Array of traits and sanctions updates |
View Functions
Anyone can call the following functions without a transaction to retrieve information from the contract.
1. isKYC
This function checks whether a given account is KYC'd by checking the balance of KYC tokens.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The address to check |
2. isSanctionsMonitored
This function checks whether the account has been monitored for sanctions in the last X days.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_days | uint32 | Number of days to check |
3. isSanctionsSafe
This function checks whether a given account is safe from sanctions.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The account address |
4. isSanctionsSafeIn
This function checks whether a given account is safe from sanctions in a specific country.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The account address |
_countryId | uint16 | The country ID |
5. isCompany
This function checks whether a given account is a company.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The account address |
6. isIndividual
This function checks whether a given account is an individual.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The account address |
7. mintedAt
This function returns the timestamp when the KYC token was minted for a given account.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The account address |
8. hasTrait
This function checks whether a given account has a specific trait.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The account address |
index | uint16 | Index of the trait to check |
9. traits
This function returns an array of booleans representing the traits of the account.
Function Interface:
Parameter | Type | Explanation |
---|---|---|
_account | address | The account address |
10. supportsInterface
Returns whether the contract implements the interface defined by the id
Function interface:
Parameter | Type | Explanation |
---|---|---|
interfaceId | bytes4 | id of the interface to be checked |
Last updated