You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: contracts/drop/drop.md
+5-7Lines changed: 5 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,9 +23,9 @@ We’ve observed that there are largely three distinct contexts under which one
23
23
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.
24
24
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.
25
25
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).
27
27
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.
29
29
30
30
## Technical Details
31
31
@@ -57,9 +57,7 @@ struct ClaimCondition {
57
57
| waitTimeInSecondsBetweenClaims | uint256 | The least number of seconds an account must wait after claiming tokens, to be able to claim tokens again. |
58
58
| merkleRoot | bytes32 | The allowlist of addresses that can claim tokens under the claim condition.
59
59
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.
63
61
64
62
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:
65
63
@@ -95,7 +93,7 @@ struct ClaimConditionList {
95
93
96
94
### Setting claim conditions
97
95
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:
99
97
100
98
| Parameter | Type | Description |
101
99
| --- | --- | --- |
@@ -147,7 +145,7 @@ The distribution mechanism for tokens expressed by thirdweb’s `Drop` is implem
147
145
There are a few key differences between the three implementations —
148
146
149
147
-`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.
0 commit comments