Skip to content

Commit ba75438

Browse files
oveddaniainnash
andauthored
Claims contract PRD (#18)
* Added PRD * added more explicit locking language * Update PRD.md --------- Co-authored-by: Iain Nash <[email protected]>
1 parent f2b793c commit ba75438

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

PRD.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Zora Token Community Claim Contract
2+
3+
## Overview
4+
5+
The Zora Token Community Claim contract enables secure token distribution to community members. It provides a simple way for users to claim their allocated tokens directly or delegate the claim to another address using signatures.
6+
7+
## Key Features
8+
9+
### Immutability
10+
11+
- The token claim contract is immutable.
12+
- An admin can set token allocations until the claim period starts. Once the claim period starts, token allocations cannot be modified. Tokens cannot be retrieved by the admin and the claim period is indefinite.
13+
- Allowed wallets can claim their allocated tokens directly or delegate the claim to another address using signatures.
14+
- Any unclaimed tokens remain in the community claim contract indefinitely.
15+
- Tokens can only be transferred out via successful claims - neither the admin nor the Zora token contract can withdraw them.
16+
17+
### Two-Phase Distribution
18+
19+
1. **Setup Phase (Before Claim Period)**
20+
21+
- Claim contract is deployed with immutable parameters: admin address and Zora token contract.
22+
- Admin can set token allocations. An allocation is a pair of address and amount.
23+
- Claim contract is transferred the entire community allocation.
24+
- Once transferred, tokens are locked in the contract until claimed by allocated addresses.
25+
26+
2. **Claim Phase**
27+
- Begins at predetermined timestamp
28+
- Users can claim their allocated tokens
29+
- Each address can only claim once
30+
- Allocations cannot be modified during this phase
31+
32+
### Flexible Claiming Methods
33+
34+
1. **Direct Claim**
35+
36+
- User calls claim function directly to claim their allocation
37+
- Can specify a different address to receive the tokens
38+
- Claimed tokens are transferred to the recipient address
39+
40+
2. **Signature-Based Claim**
41+
- User signs a message off-chain (EIP-712 format) that includes the recipient address for their allocation
42+
- Anyone can submit the signed message to claim on user's behalf
43+
- Supports both EOA and smart wallet signatures
44+
- Includes deadline to limit signature validity period
45+
- Enables gas-less claiming and delegation
46+
- Signatures cannot be reused (allocation is cleared after claim)

0 commit comments

Comments
 (0)