This repository was archived by the owner on Jan 31, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
[Feature] Allowlisted minting of hypercerts #33
Copy link
Copy link
Open
Description
Goal
Create a flow for distributing hypercerts with a predefined set of creators and claims
User stories
- As a coordinator, I want to be able to 'reserve' hypercerts for a given set of contributors
- As a developer, I want to be able to use the APP to create and store allowlists for hypercert minting
- As a user, I want to be able to find a reserved hypercert and claim it useing the app
- As a user, I want to be prompted in the app to claim allocated hypercerts
Technicals
Store allowlist
- Create array with arrays of value pairs: [[address, fraction],...]
- Generate Merkle root and proofs for arrays: https://github.com/OpenZeppelin/merkle-tree
- Call contract and store merkleRoot with totalUnits and URI to get claimID: https://github.com/Network-Goods/hypercerts-protocol/blob/dev/src/HypercertMinter.sol#L57
- Store tree and proofs in BE datastore in connection to claimID
Claim allowlist
- User provides wallet address
- User identifies claimID to mint
- BE queries datastore for proofs JSON related to claimID
- If found, provide proofs
- Send mint request with proofs to contract: https://github.com/Network-Goods/hypercerts-protocol/blob/dev/src/HypercertMinter.sol#L49
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Review