LogoLogo
  • Sign Protocol
    • Introduction
    • FAQ
  • For Hackers
    • Getting Started
  • For Builders
    • Getting Started
      • Fundamentals
      • Tutorials
        • Building a Simple Notary Platform
          • Schema Creation
          • Attestation Creation
          • Querying Attestations
          • Parsing Attestation Data
        • Delegate Attestation Creation
          • Express Backend
          • Solidity
      • Examples
        • Attestation Discord Bot
        • KYC-Gated Smart Contract Access Control
    • Supported Networks
    • Sign Developer Platform
    • Advanced Topics
      • Cross Chain Attestations
      • Hybrid Attestations
      • Schema Hooks
        • Tutorial: Checking Attestation Data
          • Schema Creation
          • Schema Hook
          • Creating an Attestation (Solidity)
      • ZK Attestations
        • Compile a Circuit
        • Create a Schema Hook
    • Querying Data
      • NPM SDK
        • Usage & Examples
      • REST APIs
        • Schemas
        • Attestations
      • GraphQL
        • Schemas
        • Attestations
    • Writing Data
      • NPM SDK
        • Installation
        • Usage
          • Schemas
          • Attestations
        • Examples
        • Changelog
      • Smart Contract
        • EVM
          • Interfaces
            • ISP
            • ISPHook
            • IVersionable
          • Data Models
            • Schema
            • Attestation
            • DataLocation
  • For Thinkers
    • A Future Of Verifiable Trust
    • Effective Attestations
    • Incentive-Aligned Public Good
    • Glossary
      • Attestations
      • Schema
      • Schema Registry
      • Attestation Repository
  • Case Study
    • EthSign
    • KYC-Gated Contract Calls
    • Proof of Audit
    • Developer Onchain Reputation
    • Onboarding Web2 Data
Powered by GitBook
LogoLogo

Copyright Sign 2021-2024

On this page
  • Challenge
  • Enter TokenTable
  • Smart Contract Access Control via Sign Protocol

Was this helpful?

  1. For Builders
  2. Getting Started
  3. Examples

KYC-Gated Smart Contract Access Control

ZetaChain Airdrops 17.4M ZETA to Contributors Using TokenTable by EthSign

PreviousAttestation Discord BotNextSupported Networks

Last updated 1 year ago

Was this helpful?

Challenge

Under the ethos of progressive decentralization, L1 blockchains conduct airdrops to distribute ownership of the network to their community. Ideally, community members who participate in the network — by deploying smart contracts, testing applications, helping with ecosystem growth, etc.— are rewarded proportionately to the value they create.

A well-executed airdrop is essential in bootstrapping decentralization and real usage of a blockchain protocol and is also a huge marketing opportunity. ZetaChain allocated a total of 31.5M ZETA (1.5% of 2.1B ZETA total supply) to this , with rewards allocated to over 800,000 contributors to ZetaLabs’ testnet. ().

To ensure regulatory compliance, ZetaChain required KYC and AML checks on contributors receiving an airdrop greater than 200 ZETA; additionally, they prevented airdrop claiming from OFAC sanctioned geographies.

Enter TokenTable

ZetaChain used EthSign’s to conduct their KYC-gated airdrop on January 31st, 2024. The engagement entailed the development of a custom version of TokenTable that facilitated a compliant, streamlined airdrop for both ZETA recipients and the ZetaChain team.

The following TokenTable modules were used to facilitate the ZetaChain airdrop:

  • KYC-Gated Smart Contract Access: Integration of the reputable KYC/AML provider to verify the government identification and liveness of ~15,000 airdrop recipients. For these recipients, passing the KYC check is a smart-contract-enforced requirement to claim the airdrop.

  • Custom Claiming Interface: Development of a co-branded TokenTable interface that recipients are routed to from ZetaHub to claim their airdrop. Users connecting to this custom interface from OFAC-sanctioned geographies will be blocked.

  • Pre-paid Gas Fees: Before the airdrop, ZetaChain contributors could not obtain mainnet ZETA, so the smart contract was outfitted with pre-pay gas fee functionality for claimers.

Smart Contract Access Control via Sign Protocol

The airdrop claiming flow is as follows:

  1. Claimers can view how much ZETA they have available to claim, and any lockup terms.

  2. Conduct KYC verification via Sumsub by submitting their government ID.

  3. To bind their address and KYC verification, claimers must use SIGN Protocol to sign an attestation message that is a hash of their address and KYC status.

  4. The TokenTable Unlocker smart contract must validate the KYC attestation before enabling the associated wallet to claim its ZETA airdrop.

In order to restrict non-KYC’ed addresses from claiming ZETA via TokenTable, the off-chain KYC verification status of recipient addresses must be communicated to smart contract.

was implemented in parallel with SumSub to a) bind the airdrop recipient's wallet address to an their KYC verification status, and b) to port recipient addresses’ KYC verification status on-chain so that TokenTable’s Unlocker smart contract can validate it.

Whitelisted wallets from non-sanctioned geographies are able to connect to .

You can check out the SIGN Protocol attestation smart contract that is !

SIGN Attestation Protocol
claims.zetachain.com
deployed on ZetaChain mainnet here
genesis mainnet airdrop
See full token distribution here
TokenTable
SumSub
A KYCHook that gates TokenTable claiming
TokenTable Unlocker
TokenTable’s Unlocker