Skip to content

Commit fc36235

Browse files
Krishang NadgaudaKrishang Nadgauda
authored andcommitted
update drop design doc
1 parent 4421ba1 commit fc36235

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

contracts/drop/drop.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ We’ve observed that there are largely three distinct contexts under which one
2323
1. The nature of tokens to be minted by the audience is pre-determined by the contract admin. E.g. a 10k NFT drop where the contents of the NFTs to be minted by the audience is already known and determined by the contract admin before the audience comes in to mint NFTs.
2424
2. The nature of tokens to be minted by the audience is *not* pre-determined by the contract admin. E.g. a course ‘certificate’ dynamically generated with the name of the course participant, to be minted by the course participant at the time of course completion.
2525

26-
The thirdweb `Token` contracts serve the cases described in (1) and 2(i).
26+
The thirdweb `Token` contracts serve the cases described in (1) and 2(ii).
2727

28-
The thirdweb `Drop` contracts serve the case described in 2(ii). They are written to give a contract creator granular control over restrictions around an audience minting tokens from the same contract (or ‘collection’, in the case of NFTs) over an extended period of time.
28+
The thirdweb `Drop` contracts serve the case described in 2(i). They are written to give a contract creator granular control over restrictions around an audience minting tokens from the same contract (or ‘collection’, in the case of NFTs) over an extended period of time.
2929

3030
## Technical Details
3131

@@ -57,9 +57,7 @@ struct ClaimCondition {
5757
| waitTimeInSecondsBetweenClaims | uint256 | The least number of seconds an account must wait after claiming tokens, to be able to claim tokens again. |
5858
| merkleRoot | bytes32 | The allowlist of addresses that can claim tokens under the claim condition.
5959

60-
(Optional) The allowlist may specify the exact amount of tokens that an address in the allowlist is eligible to claim. |
61-
| pricePerToken | uint256 | The price required to pay per token claimed. |
62-
| currency | address | The currency in which the pricePerToken must be paid. |
60+
(Optional) The allowlist may specify the exact amount of tokens that an address in the allowlist is eligible to claim.
6361

6462
The parameters that make up a claim condition can be composed in different ways to create specific restrictions around a mint. For example, a single claim condition where:
6563

@@ -95,7 +93,7 @@ struct ClaimConditionList {
9593

9694
### Setting claim conditions
9795

98-
In all `Drop` contracts, a contract admin specifies the following when setting claim conditions
96+
In all `Drop` contracts, a contract admin specifies the following when setting claim conditions:
9997

10098
| Parameter | Type | Description |
10199
| --- | --- | --- |
@@ -147,7 +145,7 @@ The distribution mechanism for tokens expressed by thirdweb’s `Drop` is implem
147145
There are a few key differences between the three implementations —
148146

149147
- `DropERC20` is written for the distribution of completely fungible, ERC20 tokens. On the other hand, `DropERC721` and `DropERC1155` are written for the distribution of NFTs, which requires ‘lazy minting’ i.e. defining the content of the NFTs before an audience comes in to mint them during a claim condition.
150-
- Both `DropERC20` and `DropERC721` maintain a global, contract-wide `ClaimConditionsList` which stores the claim conditions under which tokens can be minted. The `DropERC1155` contract, on the other hand, maintains a `ClaimConditionList` for every integer tokenId that an NFT can assume. And so, a contract admin can set up claim conditions per NFT i.e. per tokenId, in the `DropERC1155` contract.
148+
- Both `DropERC20` and `DropERC721` maintain a global, contract-wide `ClaimConditionsList` which stores the claim conditions under which tokens can be minted. The `DropERC1155` contract, on the other hand, maintains a `ClaimConditionList` for every integer token ID that an NFT can assume. And so, a contract admin can set up claim conditions per NFT i.e. per token ID, in the `DropERC1155` contract.
151149

152150
## Limitations
153151

0 commit comments

Comments
 (0)