KYC-Gated Contract Calls¶
Challenge¶
ZetaChain allocated 31.5M ZETA (1.5% of the 2.1B ZETA total supply) to its genesis mainnet airdrop, rewarding over 800,000 contributors to the ZetaLabs testnet (full token distribution). For regulatory compliance, it required KYC and AML checks for contributors receiving more than 200 ZETA, and it blocked claims from OFAC-sanctioned geographies.
ZetaChain ran the airdrop on January 31st, 2024, with a custom version of EthSign's TokenTable:
- Access to the claim contract was KYC-gated. The KYC/AML provider Sumsub checked the government identification and liveness of \~15,000 recipients, and the claim contract requires these recipients to pass KYC.
- Claims went through a custom, co-branded TokenTable interface, reached from ZetaHub, that blocks users connecting from OFAC-sanctioned geographies.
- Contributors could not hold mainnet ZETA before the airdrop, so the TokenTable Unlocker contract pre-paid their gas fees.
How Sign Protocol gates the claim¶
KYC status is checked off-chain, but the Unlocker contract has to know it. Sign Protocol binds each recipient's wallet address to their KYC status and brings that status on-chain, where the Unlocker can validate it.
The claiming flow:
- Whitelisted wallets from non-sanctioned geographies connect to claims.zetachain.com.
- Claimers see how much ZETA they can claim and any lockup terms.
- Claimers complete KYC with Sumsub by submitting a government ID.
- Claimers sign a Sign Protocol attestation over a hash of their address and KYC status, using this schema:
{
"name": "zeta kyc schema",
"data": [
{
"type": "string",
"name": "applicant"
},
{
"type": "string",
"name": "applicantId"
}
]
}
- The Unlocker contract validates the KYC attestation before the wallet can claim its ZETA.
The Sign Protocol contract is deployed on ZetaChain mainnet.
Impact¶
17,789,923 ZETA, valued at $29,709,171.41 ($1.67/ZETA on 2/1/2024), was airdropped to KYC'ed claimers.
"Working with the product and team has been a pleasure. The combination of SIGN Protocol and TokenTable enabled an airdrop experience that was safe, transparent, and seamless for users, with the flexibility and attention to detail that was needed for such a critical moment for ZetaChain. As well, the team has been incredible in helping make sure users are heard and helping resolve any issues that came up at any step of the process."
— Brandon Truong, lead product contributor for ZetaChain.
As of February 5th, 2024:
- 14786 — Total KYC whitelisted addresses
- 13736 — Total KYC applicants
- 12858 — Passed KYC
- 295 — Rejected due to block list/fraud
- KYC pass rate - 98.21%
- Median verification time - 14 sec