> For the complete documentation index, see [llms.txt](https://kuzhanthaivelus-organization.gitbook.io/kyc3-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kuzhanthaivelus-organization.gitbook.io/kyc3-sdk/overview/what-we-do.md).

# What we do

The contract facilitates the process of Know Your Customer (KYC) verification on the Ethereum blockchain. Here's what the contract does in more detail:

1. **KYC Data Submission**:
   * Users can submit their KYC data, including their name and user ID, to the contract using the `submitKYC` function.
   * The contract checks that the submitted name and user ID are not empty and that the user ID is unique.
   * If the conditions are met, the KYC data is stored in the contract along with the address of the user who submitted it.
2. **KYC Data Verification**:
   * A designated signer can verify KYC data by calling the `verifyKYC` function with the index of the KYC record to be verified.
   * Only the signer associated with the KYC record can verify it.
   * Verification sets the `verified` flag to true in the KYC record, indicating that the KYC data has been verified.
3. **Retrieval of KYC Data**:
   * Users can retrieve their KYC data by calling the `getKYCDetails` function with the index of their KYC record as a parameter.
   * The function returns the signer's address, name, user ID, and verification status for the specified KYC record.
4. **Retrieval of KYC Data by Signer**:
   * Users can retrieve all KYC data submitted by a specific signer by calling the `getKYCDataBySigner` function with the signer's address as a parameter.
   * The function returns an array of KYC records associated with the specified signer.

In summary, the contract provides a mechanism for users to submit their KYC data, for a designated signer to verify the submitted data, and for users to retrieve their own KYC data or all KYC data associated with a specific signer. This contract aims to assist in identity verification processes within decentralized applications (dApps) or other blockchain-based systems.

<figure><img src="/files/NaRznAasxmU3s5oTUiBo" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kuzhanthaivelus-organization.gitbook.io/kyc3-sdk/overview/what-we-do.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
