Functioning
The ComPilot Airdrop platform is composes of 3 main component that all work together:
- Dapp
- Smart contracts
- Embedded compliance workflows
1. Dapp
The web application is the part of the platform that connects all of the components together and enables users to:
- Verify their eligibility
- Connect their wallet
- In order to get their identity verified
- Claim the airdrop
The web application is using the following technologies:
- NextJS - Front-end development framework based on React
- Hono + Drizzle - Back-end API to manage allowlist in the back-end
- PostgreSQL - Database to store the status of the airdrop participants
- RainbowKit - Allows to connect with any EVM wallet
- ComPilot SDKs - To embed the verification flows
- Wagmi - For posting transactions on-chain
2. Contracts
The KYC Airdrop Platform uses the following smart contract setup :
- A set of Merkle Drop Contracts designed for token distribution. All the pre-allowlisted addresses will be stored on-chain into a Merkle tree for optimized verification:
- A set of helper contracts provided by ComPilot that are used to modify the Claim function and make the airdrop available only to customers who verified their identity:
These smart contracts are already audited and used in production.
3. Embedded Compliance Workflows
ComPilot integrates with the users interface and the smart contracts to ensure that only verified users that comply with the requirements of the organization get to claim the Airdrop.
There are 2 compliance workflows provided by ComPilot that are integrated within the Airdrop Platform:
- Identity verification
- Smart contract gating
Below is a short description of how they work.
a) Identity verification
Users go through a KYC verification process using the ComPilot Widget. Behind the scenes ComPilot will conduct 2 sets of verification:
- Verify the identity of the users using Sumsub, a global KYC provider
- Apply the business rules specific for each organization (ex: exclude specific countries, age groups, risk factors etc.)
At the end of this process a user is created in ComPilot storing together the user’s:
- Wallet
- KYC data
- Status: Active / Rejected
b) Signature issuance and verification
To ensure that only active users can post transactions, the Dapp leverages ComPilot’s Smart contract gating functionality.
Through the use of this functionality ComPilot offers off-chain signatures only to Active users, signatures that get verified on-chain by the Dapp’s contracts.
This process is applied on the Claim function of the smart contracts making the airdrop available only to verified users.