diff --git a/cache/solidity-files-cache.json b/cache/solidity-files-cache.json
new file mode 100644
index 000000000..cc85d8d51
--- /dev/null
+++ b/cache/solidity-files-cache.json
@@ -0,0 +1,12 @@
+{
+ "_format": "ethers-rs-sol-cache-3",
+ "paths": {
+ "artifacts": "out",
+ "sources": "src",
+ "tests": "test",
+ "libraries": [
+ "lib"
+ ]
+ },
+ "files": {}
+}
\ No newline at end of file
diff --git a/docs/sdk.all_roles.md b/docs/sdk.all_roles.md
index a1b90d774..1e2c343b4 100644
--- a/docs/sdk.all_roles.md
+++ b/docs/sdk.all_roles.md
@@ -8,5 +8,5 @@
Signature:
```typescript
-ALL_ROLES: ("transfer" | "lister" | "minter" | "admin" | "pauser" | "editor" | "asset")[]
+ALL_ROLES: ("transfer" | "lister" | "admin" | "minter" | "pauser" | "editor" | "asset")[]
```
diff --git a/docs/sdk.contractdeployer.deploysignaturedrop.md b/docs/sdk.contractdeployer.deploysignaturedrop.md
new file mode 100644
index 000000000..fa1335823
--- /dev/null
+++ b/docs/sdk.contractdeployer.deploysignaturedrop.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [ContractDeployer](./sdk.contractdeployer.md) > [deploySignatureDrop](./sdk.contractdeployer.deploysignaturedrop.md)
+
+## ContractDeployer.deploySignatureDrop() method
+
+Deploys a new SignatureDrop contract
+
+Signature:
+
+```typescript
+deploySignatureDrop(metadata: NFTContractDeployMetadata): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| metadata | [NFTContractDeployMetadata](./sdk.nftcontractdeploymetadata.md) | the contract metadata |
+
+Returns:
+
+Promise<string>
+
+the address of the deployed contract
+
diff --git a/docs/sdk.contractdeployer.md b/docs/sdk.contractdeployer.md
index f234f5f3e..e790c1c7d 100644
--- a/docs/sdk.contractdeployer.md
+++ b/docs/sdk.contractdeployer.md
@@ -29,6 +29,7 @@ export declare class ContractDeployer extends RPCConnectionHandler
| [deployNFTCollection(metadata)](./sdk.contractdeployer.deploynftcollection.md) | | Deploys a new NFTCollection contract |
| [deployNFTDrop(metadata)](./sdk.contractdeployer.deploynftdrop.md) | | Deploys a new NFTDrop contract |
| [deployPack(metadata)](./sdk.contractdeployer.deploypack.md) | | Deploys a new Pack contract |
+| [deploySignatureDrop(metadata)](./sdk.contractdeployer.deploysignaturedrop.md) | | Deploys a new SignatureDrop contract |
| [deploySplit(metadata)](./sdk.contractdeployer.deploysplit.md) | | Deploys a new Split contract |
| [deployToken(metadata)](./sdk.contractdeployer.deploytoken.md) | | Deploys a new Token contract |
| [deployTokenDrop(metadata)](./sdk.contractdeployer.deploytokendrop.md) | | Deploys a new Token Drop contract |
diff --git a/docs/sdk.contractmetadata.set.md b/docs/sdk.contractmetadata.set.md
index 0317d3253..3d89736ae 100644
--- a/docs/sdk.contractmetadata.set.md
+++ b/docs/sdk.contractmetadata.set.md
@@ -7,13 +7,13 @@
Signature:
```typescript
-set(metadata: z.input): Promise<((() => A extends never ? 1 : 0) extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) extends infer T ? T extends ((() => A extends never ? 1 : 0) extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) ? T extends 1 ? Omit<{
+set(metadata: z.input): Promise<(() => A extends never ? 1 : 0 extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) extends 1 ? Omit<{
receipt: import("@ethersproject/abstract-provider").TransactionReceipt;
data: () => Promise;
}, "data"> : {
receipt: import("@ethersproject/abstract-provider").TransactionReceipt;
data: () => Promise>;
- } : never : never>;
+ }>;
```
## Parameters
@@ -24,6 +24,6 @@ set(metadata: z.input): Promise<((() => A extends never ? 1
Returns:
-Promise<((<A>() => A extends never ? 1 : 0) extends <A\_1>() => A\_1 extends z.output<TSchema\["output"\]> ? 1 : 0 ? 1 : 0) extends infer T ? T extends ((<A>() => A extends never ? 1 : 0) extends <A\_1>() => A\_1 extends z.output<TSchema\["output"\]> ? 1 : 0 ? 1 : 0) ? T extends 1 ? Omit<{ receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () => Promise<unknown>; }, "data"> : { receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () => Promise<z.output<TSchema\["output"\]>>; } : never : never>
+Promise<(<A>() => A extends never ? 1 : 0 extends <A\_1>() => A\_1 extends z.output<TSchema\["output"\]> ? 1 : 0 ? 1 : 0) extends 1 ? Omit<{ receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () => Promise<unknown>; }, "data"> : { receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () => Promise<z.output<TSchema\["output"\]>>; }>
diff --git a/docs/sdk.contractmetadata.update.md b/docs/sdk.contractmetadata.update.md
index 767303418..19cd2f602 100644
--- a/docs/sdk.contractmetadata.update.md
+++ b/docs/sdk.contractmetadata.update.md
@@ -7,13 +7,13 @@
Signature:
```typescript
-update(metadata: Partial>): Promise<((() => A extends never ? 1 : 0) extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) extends infer T ? T extends ((() => A extends never ? 1 : 0) extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) ? T extends 1 ? Omit<{
+update(metadata: Partial>): Promise<(() => A extends never ? 1 : 0 extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) extends 1 ? Omit<{
receipt: import("@ethersproject/abstract-provider").TransactionReceipt;
data: () => Promise;
}, "data"> : {
receipt: import("@ethersproject/abstract-provider").TransactionReceipt;
data: () => Promise>;
- } : never : never>;
+ }>;
```
## Parameters
@@ -24,5 +24,5 @@ update(metadata: Partial>): Promise<((() => A exten
Returns:
-Promise<((<A>() => A extends never ? 1 : 0) extends <A\_1>() => A\_1 extends z.output<TSchema\["output"\]> ? 1 : 0 ? 1 : 0) extends infer T ? T extends ((<A>() => A extends never ? 1 : 0) extends <A\_1>() => A\_1 extends z.output<TSchema\["output"\]> ? 1 : 0 ? 1 : 0) ? T extends 1 ? Omit<{ receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () => Promise<unknown>; }, "data"> : { receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () => Promise<z.output<TSchema\["output"\]>>; } : never : never>
+Promise<(<A>() => A extends never ? 1 : 0 extends <A\_1>() => A\_1 extends z.output<TSchema\["output"\]> ? 1 : 0 ? 1 : 0) extends 1 ? Omit<{ receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () => Promise<unknown>; }, "data"> : { receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () => Promise<z.output<TSchema\["output"\]>>; }>
diff --git a/docs/sdk.delayedreveal.md b/docs/sdk.delayedreveal.md
index 4026cfd15..c2f6bfa2c 100644
--- a/docs/sdk.delayedreveal.md
+++ b/docs/sdk.delayedreveal.md
@@ -9,7 +9,7 @@ Handles delayed reveal logic
Signature:
```typescript
-export declare class DelayedReveal
+export declare class DelayedReveal
```
## Constructors
diff --git a/docs/sdk.dropclaimconditions.md b/docs/sdk.dropclaimconditions.md
index 5deee5ad3..c36469e81 100644
--- a/docs/sdk.dropclaimconditions.md
+++ b/docs/sdk.dropclaimconditions.md
@@ -9,7 +9,7 @@ Manages claim conditions for NFT Drop contracts
Signature:
```typescript
-export declare class DropClaimConditions
+export declare class DropClaimConditions
```
## Constructors
diff --git a/docs/sdk.erc721.md b/docs/sdk.erc721.md
index f03d3edff..96ae5a03b 100644
--- a/docs/sdk.erc721.md
+++ b/docs/sdk.erc721.md
@@ -9,7 +9,7 @@ Standard ERC721 NFT functions
Signature:
```typescript
-export declare class Erc721 implements UpdateableNetwork, DetectableFeature
+export declare class Erc721 implements UpdateableNetwork, DetectableFeature
```
Implements: UpdateableNetwork, DetectableFeature
diff --git a/docs/sdk.filledsignature721withquantity.md b/docs/sdk.filledsignature721withquantity.md
new file mode 100644
index 000000000..e0a2bdc35
--- /dev/null
+++ b/docs/sdk.filledsignature721withquantity.md
@@ -0,0 +1,12 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [FilledSignature721WithQuantity](./sdk.filledsignature721withquantity.md)
+
+## FilledSignature721WithQuantity type
+
+
+Signature:
+
+```typescript
+export declare type FilledSignature721WithQuantity = z.output;
+```
diff --git a/docs/sdk.md b/docs/sdk.md
index af3606a15..dac5be6c4 100644
--- a/docs/sdk.md
+++ b/docs/sdk.md
@@ -45,6 +45,7 @@
| [NFTCollection](./sdk.nftcollection.md) | Create a collection of one-of-one NFTs. |
| [NFTDrop](./sdk.nftdrop.md) | Setup a collection of one-of-one NFTs that are minted as users claim them. |
| [Pack](./sdk.pack.md) | Create lootboxes of NFTs with rarity based open mechanics. |
+| [SignatureDrop](./sdk.signaturedrop.md) | Setup a collection of NFTs where when it comes to minting, you can authorize some external party to mint tokens on your contract, and specify what exactly will be minted by that external party.. |
| [SmartContract](./sdk.smartcontract.md) | (BETA) Custom contract dynamic class with feature detection |
| [Split](./sdk.split.md) | Create custom royalty splits to distribute funds. |
| [ThirdwebSDK](./sdk.thirdwebsdk.md) | The main entry point for the thirdweb SDK |
@@ -114,6 +115,7 @@
| [MintRequest1155](./sdk.mintrequest1155.md) | |
| [MintRequest20](./sdk.mintrequest20.md) | |
| [MintRequest721](./sdk.mintrequest721.md) | |
+| [MintRequest721withQuantity](./sdk.mintrequest721withquantity.md) | |
| [NATIVE\_TOKEN\_ADDRESS](./sdk.native_token_address.md) | |
| [NATIVE\_TOKENS](./sdk.native_tokens.md) | |
| [SDKOptionsSchema](./sdk.sdkoptionsschema.md) | |
@@ -139,6 +141,7 @@
| [EditionMetadataOwner](./sdk.editionmetadataowner.md) | |
| [FileOrBuffer](./sdk.fileorbuffer.md) | |
| [FilledConditionInput](./sdk.filledconditioninput.md) | |
+| [FilledSignature721WithQuantity](./sdk.filledsignature721withquantity.md) | |
| [FilledSignaturePayload1155](./sdk.filledsignaturepayload1155.md) | |
| [FilledSignaturePayload20](./sdk.filledsignaturepayload20.md) | |
| [FilledSignaturePayload721](./sdk.filledsignaturepayload721.md) | |
@@ -152,9 +155,11 @@
| [PayloadToSign1155](./sdk.payloadtosign1155.md) | |
| [PayloadToSign20](./sdk.payloadtosign20.md) | |
| [PayloadToSign721](./sdk.payloadtosign721.md) | |
+| [PayloadToSign721withQuantity](./sdk.payloadtosign721withquantity.md) | |
| [PayloadWithUri1155](./sdk.payloadwithuri1155.md) | |
| [PayloadWithUri20](./sdk.payloadwithuri20.md) | |
| [PayloadWithUri721](./sdk.payloadwithuri721.md) | |
+| [PayloadWithUri721withQuantity](./sdk.payloadwithuri721withquantity.md) | |
| [PermitRequestMessage](./sdk.permitrequestmessage.md) | EIP-2612 token permit message for gasless transaction |
| [Price](./sdk.price.md) | Represents a currency price already formatted. ie. "1" for 1 ether. |
| [Role](./sdk.role.md) | |
@@ -162,6 +167,7 @@
| [SignedPayload1155](./sdk.signedpayload1155.md) | |
| [SignedPayload20](./sdk.signedpayload20.md) | |
| [SignedPayload721](./sdk.signedpayload721.md) | |
+| [SignedPayload721WithQuantitySignature](./sdk.signedpayload721withquantitysignature.md) | |
| [SignerOrProvider](./sdk.signerorprovider.md) | |
| [Snapshot](./sdk.snapshot.md) | |
| [SnapshotInfo](./sdk.snapshotinfo.md) | |
diff --git a/docs/sdk.mintrequest721withquantity.md b/docs/sdk.mintrequest721withquantity.md
new file mode 100644
index 000000000..97ae8a4bd
--- /dev/null
+++ b/docs/sdk.mintrequest721withquantity.md
@@ -0,0 +1,14 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [MintRequest721withQuantity](./sdk.mintrequest721withquantity.md)
+
+## MintRequest721withQuantity variable
+
+Signature:
+
+```typescript
+MintRequest721withQuantity: {
+ name: string;
+ type: string;
+}[]
+```
diff --git a/docs/sdk.payloadtosign721withquantity.md b/docs/sdk.payloadtosign721withquantity.md
new file mode 100644
index 000000000..275755254
--- /dev/null
+++ b/docs/sdk.payloadtosign721withquantity.md
@@ -0,0 +1,12 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [PayloadToSign721withQuantity](./sdk.payloadtosign721withquantity.md)
+
+## PayloadToSign721withQuantity type
+
+
+Signature:
+
+```typescript
+export declare type PayloadToSign721withQuantity = z.input;
+```
diff --git a/docs/sdk.payloadwithuri721withquantity.md b/docs/sdk.payloadwithuri721withquantity.md
new file mode 100644
index 000000000..6548bee9d
--- /dev/null
+++ b/docs/sdk.payloadwithuri721withquantity.md
@@ -0,0 +1,12 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [PayloadWithUri721withQuantity](./sdk.payloadwithuri721withquantity.md)
+
+## PayloadWithUri721withQuantity type
+
+
+Signature:
+
+```typescript
+export declare type PayloadWithUri721withQuantity = z.output;
+```
diff --git a/docs/sdk.signaturedrop._constructor_.md b/docs/sdk.signaturedrop._constructor_.md
new file mode 100644
index 000000000..dabfeffa3
--- /dev/null
+++ b/docs/sdk.signaturedrop._constructor_.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [(constructor)](./sdk.signaturedrop._constructor_.md)
+
+## SignatureDrop.(constructor)
+
+Constructs a new instance of the `SignatureDrop` class
+
+Signature:
+
+```typescript
+constructor(network: NetworkOrSignerOrProvider, address: string, storage: IStorage, options?: SDKOptions, contractWrapper?: ContractWrapper);
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| network | [NetworkOrSignerOrProvider](./sdk.networkorsignerorprovider.md) | |
+| address | string | |
+| storage | [IStorage](./sdk.istorage.md) | |
+| options | [SDKOptions](./sdk.sdkoptions.md) | (Optional) |
+| contractWrapper | ContractWrapper<SignatureDropContract> | (Optional) |
+
diff --git a/docs/sdk.signaturedrop.analytics.md b/docs/sdk.signaturedrop.analytics.md
new file mode 100644
index 000000000..5d6ab9083
--- /dev/null
+++ b/docs/sdk.signaturedrop.analytics.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [analytics](./sdk.signaturedrop.analytics.md)
+
+## SignatureDrop.analytics property
+
+Signature:
+
+```typescript
+analytics: ContractAnalytics;
+```
diff --git a/docs/sdk.signaturedrop.burn.md b/docs/sdk.signaturedrop.burn.md
new file mode 100644
index 000000000..395f2b483
--- /dev/null
+++ b/docs/sdk.signaturedrop.burn.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [burn](./sdk.signaturedrop.burn.md)
+
+## SignatureDrop.burn() method
+
+Burn a single NFT
+
+Signature:
+
+```typescript
+burn(tokenId: BigNumberish): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| tokenId | BigNumberish | the token Id to burn |
+
+Returns:
+
+Promise<[TransactionResult](./sdk.transactionresult.md)>
+
diff --git a/docs/sdk.signaturedrop.claim.md b/docs/sdk.signaturedrop.claim.md
new file mode 100644
index 000000000..7dc624d0d
--- /dev/null
+++ b/docs/sdk.signaturedrop.claim.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [claim](./sdk.signaturedrop.claim.md)
+
+## SignatureDrop.claim() method
+
+Claim NFTs to the connected wallet.
+
+Signature:
+
+```typescript
+claim(quantity: BigNumberish, proofs?: BytesLike[]): Promise[]>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| quantity | BigNumberish | |
+| proofs | BytesLike\[\] | (Optional) |
+
+Returns:
+
+Promise<[TransactionResultWithId](./sdk.transactionresultwithid.md)<[NFTMetadataOwner](./sdk.nftmetadataowner.md)>\[\]>
+
+- an array of results containing the id of the token claimed, the transaction receipt and a promise to optionally fetch the nft metadata
+
+## Remarks
+
+See [NFTDrop.claimTo()](./sdk.nftdrop.claimto.md)
+
diff --git a/docs/sdk.signaturedrop.claimconditions.md b/docs/sdk.signaturedrop.claimconditions.md
new file mode 100644
index 000000000..85fc08416
--- /dev/null
+++ b/docs/sdk.signaturedrop.claimconditions.md
@@ -0,0 +1,39 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [claimConditions](./sdk.signaturedrop.claimconditions.md)
+
+## SignatureDrop.claimConditions property
+
+Configure claim conditions
+
+Signature:
+
+```typescript
+claimConditions: DropClaimConditions;
+```
+
+## Remarks
+
+Define who can claim NFTs in the collection, when and how many.
+
+## Example
+
+
+```javascript
+const presaleStartTime = new Date();
+const publicSaleStartTime = new Date(Date.now() + 60 * 60 * 24 * 1000);
+const claimConditions = [
+ {
+ startTime: presaleStartTime, // start the presale now
+ maxQuantity: 2, // limit how many mints for this presale
+ price: 0.01, // presale price
+ snapshot: ['0x...', '0x...'], // limit minting to only certain addresses
+ },
+ {
+ startTime: publicSaleStartTime, // 24h after presale, start public sale
+ price: 0.08, // public sale price
+ }
+]);
+await contract.claimConditions.set(claimConditions);
+```
+
diff --git a/docs/sdk.signaturedrop.claimto.md b/docs/sdk.signaturedrop.claimto.md
new file mode 100644
index 000000000..f045e3adc
--- /dev/null
+++ b/docs/sdk.signaturedrop.claimto.md
@@ -0,0 +1,45 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [claimTo](./sdk.signaturedrop.claimto.md)
+
+## SignatureDrop.claimTo() method
+
+Claim unique NFTs to a specific Wallet
+
+Signature:
+
+```typescript
+claimTo(destinationAddress: string, quantity: BigNumberish, proofs?: BytesLike[]): Promise[]>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| destinationAddress | string | Address you want to send the token to |
+| quantity | BigNumberish | Quantity of the tokens you want to claim |
+| proofs | BytesLike\[\] | (Optional) Array of proofs |
+
+Returns:
+
+Promise<[TransactionResultWithId](./sdk.transactionresultwithid.md)<[NFTMetadataOwner](./sdk.nftmetadataowner.md)>\[\]>
+
+- an array of results containing the id of the token claimed, the transaction receipt and a promise to optionally fetch the nft metadata
+
+## Remarks
+
+Let the specified wallet claim NFTs.
+
+## Example
+
+
+```javascript
+const address = "{{wallet_address}}"; // address of the wallet you want to claim the NFTs
+const quantity = 1; // how many unique NFTs you want to claim
+
+const tx = await contract.claimTo(address, quantity);
+const receipt = tx.receipt; // the transaction receipt
+const claimedTokenId = tx.id; // the id of the NFT claimed
+const claimedNFT = await tx.data(); // (optional) get the claimed NFT metadata
+```
+
diff --git a/docs/sdk.signaturedrop.contractabi.md b/docs/sdk.signaturedrop.contractabi.md
new file mode 100644
index 000000000..7d3a500e5
--- /dev/null
+++ b/docs/sdk.signaturedrop.contractabi.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [contractAbi](./sdk.signaturedrop.contractabi.md)
+
+## SignatureDrop.contractAbi property
+
+Signature:
+
+```typescript
+static contractAbi: any;
+```
diff --git a/docs/sdk.signaturedrop.contractroles.md b/docs/sdk.signaturedrop.contractroles.md
new file mode 100644
index 000000000..9834249bb
--- /dev/null
+++ b/docs/sdk.signaturedrop.contractroles.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [contractRoles](./sdk.signaturedrop.contractroles.md)
+
+## SignatureDrop.contractRoles property
+
+Signature:
+
+```typescript
+static contractRoles: readonly ["admin", "minter", "transfer"];
+```
diff --git a/docs/sdk.signaturedrop.contracttype.md b/docs/sdk.signaturedrop.contracttype.md
new file mode 100644
index 000000000..3e80d46d2
--- /dev/null
+++ b/docs/sdk.signaturedrop.contracttype.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [contractType](./sdk.signaturedrop.contracttype.md)
+
+## SignatureDrop.contractType property
+
+Signature:
+
+```typescript
+static contractType: "signature-drop";
+```
diff --git a/docs/sdk.signaturedrop.createbatch.md b/docs/sdk.signaturedrop.createbatch.md
new file mode 100644
index 000000000..ac8689885
--- /dev/null
+++ b/docs/sdk.signaturedrop.createbatch.md
@@ -0,0 +1,48 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [createBatch](./sdk.signaturedrop.createbatch.md)
+
+## SignatureDrop.createBatch() method
+
+Create a batch of unique NFTs to be claimed in the future
+
+Signature:
+
+```typescript
+createBatch(metadatas: NFTMetadataInput[]): Promise[]>;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| metadatas | [NFTMetadataInput](./sdk.nftmetadatainput.md)\[\] | The metadata to include in the batch. |
+
+Returns:
+
+Promise<[TransactionResultWithId](./sdk.transactionresultwithid.md)<[NFTMetadata](./sdk.nftmetadata.md)>\[\]>
+
+## Remarks
+
+Create batch allows you to create a batch of many unique NFTs in one transaction.
+
+## Example
+
+
+```javascript
+// Custom metadata of the NFTs to create
+const metadatas = [{
+ name: "Cool NFT",
+ description: "This is a cool NFT",
+ image: fs.readFileSync("path/to/image.png"), // This can be an image url or file
+}, {
+ name: "Cool NFT",
+ description: "This is a cool NFT",
+ image: fs.readFileSync("path/to/image.png"),
+}];
+
+const results = await contract.createBatch(metadatas); // uploads and creates the NFTs on chain
+const firstTokenId = results[0].id; // token id of the first created NFT
+const firstNFT = await results[0].data(); // (optional) fetch details of the first created NFT
+```
+
diff --git a/docs/sdk.signaturedrop.encoder.md b/docs/sdk.signaturedrop.encoder.md
new file mode 100644
index 000000000..56a50594a
--- /dev/null
+++ b/docs/sdk.signaturedrop.encoder.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [encoder](./sdk.signaturedrop.encoder.md)
+
+## SignatureDrop.encoder property
+
+Signature:
+
+```typescript
+encoder: ContractEncoder;
+```
diff --git a/docs/sdk.signaturedrop.estimator.md b/docs/sdk.signaturedrop.estimator.md
new file mode 100644
index 000000000..c7b6e5416
--- /dev/null
+++ b/docs/sdk.signaturedrop.estimator.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [estimator](./sdk.signaturedrop.estimator.md)
+
+## SignatureDrop.estimator property
+
+Signature:
+
+```typescript
+estimator: GasCostEstimator;
+```
diff --git a/docs/sdk.signaturedrop.events.md b/docs/sdk.signaturedrop.events.md
new file mode 100644
index 000000000..277f7c255
--- /dev/null
+++ b/docs/sdk.signaturedrop.events.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [events](./sdk.signaturedrop.events.md)
+
+## SignatureDrop.events property
+
+Signature:
+
+```typescript
+events: ContractEvents;
+```
diff --git a/docs/sdk.signaturedrop.getall.md b/docs/sdk.signaturedrop.getall.md
new file mode 100644
index 000000000..452ce11eb
--- /dev/null
+++ b/docs/sdk.signaturedrop.getall.md
@@ -0,0 +1,40 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [getAll](./sdk.signaturedrop.getall.md)
+
+## SignatureDrop.getAll() method
+
+Get All Minted NFTs
+
+Signature:
+
+```typescript
+getAll(queryParams?: QueryAllParams): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| queryParams | [QueryAllParams](./sdk.queryallparams.md) | (Optional) optional filtering to only fetch a subset of results. |
+
+Returns:
+
+Promise<[NFTMetadataOwner](./sdk.nftmetadataowner.md)\[\]>
+
+The NFT metadata for all NFTs queried.
+
+## Remarks
+
+Get all the data associated with every NFT in this contract.
+
+By default, returns the first 100 NFTs, use queryParams to fetch more.
+
+## Example
+
+
+```javascript
+const nfts = await contract.getAll();
+console.log(nfts);
+```
+
diff --git a/docs/sdk.signaturedrop.getallclaimed.md b/docs/sdk.signaturedrop.getallclaimed.md
new file mode 100644
index 000000000..dc6f73e5c
--- /dev/null
+++ b/docs/sdk.signaturedrop.getallclaimed.md
@@ -0,0 +1,40 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [getAllClaimed](./sdk.signaturedrop.getallclaimed.md)
+
+## SignatureDrop.getAllClaimed() method
+
+Get All Claimed NFTs
+
+Signature:
+
+```typescript
+getAllClaimed(queryParams?: QueryAllParams): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| queryParams | [QueryAllParams](./sdk.queryallparams.md) | (Optional) optional filtering to only fetch a subset of results. |
+
+Returns:
+
+Promise<[NFTMetadataOwner](./sdk.nftmetadataowner.md)\[\]>
+
+The NFT metadata and their ownersfor all NFTs queried.
+
+## Remarks
+
+Fetch all the NFTs (and their owners) that have been claimed in this Drop.
+
+\*
+
+## Example
+
+
+```javascript
+const claimedNFTs = await contract.getAllClaimed();
+const firstOwner = claimedNFTs[0].owner;
+```
+
diff --git a/docs/sdk.signaturedrop.getallunclaimed.md b/docs/sdk.signaturedrop.getallunclaimed.md
new file mode 100644
index 000000000..cbe4aba60
--- /dev/null
+++ b/docs/sdk.signaturedrop.getallunclaimed.md
@@ -0,0 +1,40 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [getAllUnclaimed](./sdk.signaturedrop.getallunclaimed.md)
+
+## SignatureDrop.getAllUnclaimed() method
+
+Get All Unclaimed NFTs
+
+Signature:
+
+```typescript
+getAllUnclaimed(queryParams?: QueryAllParams): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| queryParams | [QueryAllParams](./sdk.queryallparams.md) | (Optional) optional filtering to only fetch a subset of results. |
+
+Returns:
+
+Promise<[NFTMetadata](./sdk.nftmetadata.md)\[\]>
+
+The NFT metadata for all NFTs queried.
+
+## Remarks
+
+Fetch all the NFTs that have been not been claimed yet in this Drop.
+
+\*
+
+## Example
+
+
+```javascript
+const unclaimedNFTs = await contract.getAllUnclaimed();
+const firstUnclaimedNFT = unclaimedNFTs[0].name;
+```
+
diff --git a/docs/sdk.signaturedrop.getowned.md b/docs/sdk.signaturedrop.getowned.md
new file mode 100644
index 000000000..02fbbc035
--- /dev/null
+++ b/docs/sdk.signaturedrop.getowned.md
@@ -0,0 +1,40 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [getOwned](./sdk.signaturedrop.getowned.md)
+
+## SignatureDrop.getOwned() method
+
+Get Owned NFTs
+
+Signature:
+
+```typescript
+getOwned(walletAddress?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| walletAddress | string | (Optional) the wallet address to query, defaults to the connected wallet |
+
+Returns:
+
+Promise<[NFTMetadataOwner](./sdk.nftmetadataowner.md)\[\]>
+
+The NFT metadata for all NFTs in the contract.
+
+## Remarks
+
+Get all the data associated with the NFTs owned by a specific wallet.
+
+## Example
+
+
+```javascript
+// Address of the wallet to get the NFTs of
+const address = "{{wallet_address}}";
+const nfts = await contract.getOwned(address);
+console.log(nfts);
+```
+
diff --git a/docs/sdk.signaturedrop.getownedtokenids.md b/docs/sdk.signaturedrop.getownedtokenids.md
new file mode 100644
index 000000000..3bac5b56f
--- /dev/null
+++ b/docs/sdk.signaturedrop.getownedtokenids.md
@@ -0,0 +1,23 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [getOwnedTokenIds](./sdk.signaturedrop.getownedtokenids.md)
+
+## SignatureDrop.getOwnedTokenIds() method
+
+
+Signature:
+
+```typescript
+getOwnedTokenIds(walletAddress?: string): Promise;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| walletAddress | string | (Optional) |
+
+Returns:
+
+Promise<BigNumber\[\]>
+
diff --git a/docs/sdk.signaturedrop.istransferrestricted.md b/docs/sdk.signaturedrop.istransferrestricted.md
new file mode 100644
index 000000000..5355d916e
--- /dev/null
+++ b/docs/sdk.signaturedrop.istransferrestricted.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [isTransferRestricted](./sdk.signaturedrop.istransferrestricted.md)
+
+## SignatureDrop.isTransferRestricted() method
+
+Get whether users can transfer NFTs from this contract
+
+Signature:
+
+```typescript
+isTransferRestricted(): Promise;
+```
+Returns:
+
+Promise<boolean>
+
diff --git a/docs/sdk.signaturedrop.md b/docs/sdk.signaturedrop.md
new file mode 100644
index 000000000..35091981b
--- /dev/null
+++ b/docs/sdk.signaturedrop.md
@@ -0,0 +1,69 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md)
+
+## SignatureDrop class
+
+Setup a collection of NFTs where when it comes to minting, you can authorize some external party to mint tokens on your contract, and specify what exactly will be minted by that external party..
+
+Signature:
+
+```typescript
+export declare class SignatureDrop extends Erc721
+```
+Extends: [Erc721](./sdk.erc721.md)<SignatureDropContract
+
+## Example
+
+
+```javascript
+import { ThirdwebSDK } from "@thirdweb-dev/sdk";
+
+const sdk = new ThirdwebSDK("rinkeby");
+const contract = sdk.getSignatureDrop("{{contract_address}}");
+```
+
+## Constructors
+
+| Constructor | Modifiers | Description |
+| --- | --- | --- |
+| [(constructor)(network, address, storage, options, contractWrapper)](./sdk.signaturedrop._constructor_.md) | | Constructs a new instance of the SignatureDrop
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [analytics](./sdk.signaturedrop.analytics.md) | | ContractAnalytics<SignatureDropContract> | |
+| [claimConditions](./sdk.signaturedrop.claimconditions.md) | | [DropClaimConditions](./sdk.dropclaimconditions.md)<SignatureDropContract> | Configure claim conditions |
+| [contractAbi](./sdk.signaturedrop.contractabi.md) | static
| any | |
+| [contractRoles](./sdk.signaturedrop.contractroles.md) | static
| readonly \["admin", "minter", "transfer"\] | |
+| [contractType](./sdk.signaturedrop.contracttype.md) | static
| "signature-drop" | |
+| [encoder](./sdk.signaturedrop.encoder.md) | | [ContractEncoder](./sdk.contractencoder.md)<SignatureDropContract> | |
+| [estimator](./sdk.signaturedrop.estimator.md) | | [GasCostEstimator](./sdk.gascostestimator.md)<SignatureDropContract> | |
+| [events](./sdk.signaturedrop.events.md) | | [ContractEvents](./sdk.contractevents.md)<SignatureDropContract> | |
+| [metadata](./sdk.signaturedrop.metadata.md) | | [ContractMetadata](./sdk.contractmetadata.md)<SignatureDropContract, typeof SignatureDrop.schema> | |
+| [platformFee](./sdk.signaturedrop.platformfee.md) | | [ContractPlatformFee](./sdk.contractplatformfee.md)<SignatureDropContract> | |
+| [primarySale](./sdk.signaturedrop.primarysale.md) | | [ContractPrimarySale](./sdk.contractprimarysale.md)<SignatureDropContract> | |
+| [revealer](./sdk.signaturedrop.revealer.md) | | [DelayedReveal](./sdk.delayedreveal.md)<SignatureDropContract> | Delayed reveal |
+| [roles](./sdk.signaturedrop.roles.md) | | [ContractRoles](./sdk.contractroles.md)<SignatureDropContract, typeof [SignatureDrop.contractRoles](./sdk.signaturedrop.contractroles.md)\[number\]> | |
+| [royalty](./sdk.signaturedrop.royalty.md) | | [ContractRoyalty](./sdk.contractroyalty.md)<SignatureDropContract, typeof SignatureDrop.schema> | Configure royalties |
+| [signature](./sdk.signaturedrop.signature.md) | | Erc721WithQuantitySignatureMinting | |
+
+## Methods
+
+| Method | Modifiers | Description |
+| --- | --- | --- |
+| [burn(tokenId)](./sdk.signaturedrop.burn.md) | | Burn a single NFT |
+| [claim(quantity, proofs)](./sdk.signaturedrop.claim.md) | | Claim NFTs to the connected wallet. |
+| [claimTo(destinationAddress, quantity, proofs)](./sdk.signaturedrop.claimto.md) | | Claim unique NFTs to a specific Wallet |
+| [createBatch(metadatas)](./sdk.signaturedrop.createbatch.md) | | Create a batch of unique NFTs to be claimed in the future |
+| [getAll(queryParams)](./sdk.signaturedrop.getall.md) | | Get All Minted NFTs |
+| [getAllClaimed(queryParams)](./sdk.signaturedrop.getallclaimed.md) | | Get All Claimed NFTs |
+| [getAllUnclaimed(queryParams)](./sdk.signaturedrop.getallunclaimed.md) | | Get All Unclaimed NFTs |
+| [getOwned(walletAddress)](./sdk.signaturedrop.getowned.md) | | Get Owned NFTs |
+| [getOwnedTokenIds(walletAddress)](./sdk.signaturedrop.getownedtokenids.md) | | |
+| [isTransferRestricted()](./sdk.signaturedrop.istransferrestricted.md) | | Get whether users can transfer NFTs from this contract |
+| [totalClaimedSupply()](./sdk.signaturedrop.totalclaimedsupply.md) | | Get the claimed supply |
+| [totalSupply()](./sdk.signaturedrop.totalsupply.md) | | Get the total count NFTs in this drop contract, both claimed and unclaimed |
+| [totalUnclaimedSupply()](./sdk.signaturedrop.totalunclaimedsupply.md) | | Get the unclaimed supply |
+
diff --git a/docs/sdk.signaturedrop.metadata.md b/docs/sdk.signaturedrop.metadata.md
new file mode 100644
index 000000000..58046f6da
--- /dev/null
+++ b/docs/sdk.signaturedrop.metadata.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [metadata](./sdk.signaturedrop.metadata.md)
+
+## SignatureDrop.metadata property
+
+Signature:
+
+```typescript
+metadata: ContractMetadata;
+```
diff --git a/docs/sdk.signaturedrop.platformfee.md b/docs/sdk.signaturedrop.platformfee.md
new file mode 100644
index 000000000..2d0fefa5d
--- /dev/null
+++ b/docs/sdk.signaturedrop.platformfee.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [platformFee](./sdk.signaturedrop.platformfee.md)
+
+## SignatureDrop.platformFee property
+
+Signature:
+
+```typescript
+platformFee: ContractPlatformFee;
+```
diff --git a/docs/sdk.signaturedrop.primarysale.md b/docs/sdk.signaturedrop.primarysale.md
new file mode 100644
index 000000000..501be352f
--- /dev/null
+++ b/docs/sdk.signaturedrop.primarysale.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [primarySale](./sdk.signaturedrop.primarysale.md)
+
+## SignatureDrop.primarySale property
+
+Signature:
+
+```typescript
+primarySale: ContractPrimarySale;
+```
diff --git a/docs/sdk.signaturedrop.revealer.md b/docs/sdk.signaturedrop.revealer.md
new file mode 100644
index 000000000..22ed058ed
--- /dev/null
+++ b/docs/sdk.signaturedrop.revealer.md
@@ -0,0 +1,48 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [revealer](./sdk.signaturedrop.revealer.md)
+
+## SignatureDrop.revealer property
+
+Delayed reveal
+
+Signature:
+
+```typescript
+revealer: DelayedReveal;
+```
+
+## Remarks
+
+Create a batch of encrypted NFTs that can be revealed at a later time.
+
+## Example
+
+
+```javascript
+// the real NFTs, these will be encrypted until you reveal them
+const realNFTs = [{
+ name: "Common NFT #1",
+ description: "Common NFT, one of many.",
+ image: fs.readFileSync("path/to/image.png"),
+}, {
+ name: "Super Rare NFT #2",
+ description: "You got a Super Rare NFT!",
+ image: fs.readFileSync("path/to/image.png"),
+}];
+// A placeholder NFT that people will get immediately in their wallet, and will be converted to the real NFT at reveal time
+const placeholderNFT = {
+ name: "Hidden NFT",
+ description: "Will be revealed next week!"
+};
+// Create and encrypt the NFTs
+await contract.revealer.createDelayedRevealBatch(
+ placeholderNFT,
+ realNFTs,
+ "my secret password",
+);
+// Whenever you're ready, reveal your NFTs at any time
+const batchId = 0; // the batch to reveal
+await contract.revealer.reveal(batchId, "my secret password");
+```
+
diff --git a/docs/sdk.signaturedrop.roles.md b/docs/sdk.signaturedrop.roles.md
new file mode 100644
index 000000000..8305b1457
--- /dev/null
+++ b/docs/sdk.signaturedrop.roles.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [roles](./sdk.signaturedrop.roles.md)
+
+## SignatureDrop.roles property
+
+Signature:
+
+```typescript
+roles: ContractRoles;
+```
diff --git a/docs/sdk.signaturedrop.royalty.md b/docs/sdk.signaturedrop.royalty.md
new file mode 100644
index 000000000..6708d24fb
--- /dev/null
+++ b/docs/sdk.signaturedrop.royalty.md
@@ -0,0 +1,34 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [royalty](./sdk.signaturedrop.royalty.md)
+
+## SignatureDrop.royalty property
+
+Configure royalties
+
+Signature:
+
+```typescript
+royalty: ContractRoyalty;
+```
+
+## Remarks
+
+Set your own royalties for the entire contract or per token
+
+## Example
+
+
+```javascript
+// royalties on the whole contract
+contract.royalty.setDefaultRoyaltyInfo({
+ seller_fee_basis_points: 100, // 1%
+ fee_recipient: "0x..."
+});
+// override royalty for a particular token
+contract.royalty.setTokenRoyaltyInfo(tokenId, {
+ seller_fee_basis_points: 500, // 5%
+ fee_recipient: "0x..."
+});
+```
+
diff --git a/docs/sdk.signaturedrop.signature.md b/docs/sdk.signaturedrop.signature.md
new file mode 100644
index 000000000..124eb079c
--- /dev/null
+++ b/docs/sdk.signaturedrop.signature.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [signature](./sdk.signaturedrop.signature.md)
+
+## SignatureDrop.signature property
+
+Signature:
+
+```typescript
+signature: Erc721WithQuantitySignatureMinting;
+```
diff --git a/docs/sdk.signaturedrop.totalclaimedsupply.md b/docs/sdk.signaturedrop.totalclaimedsupply.md
new file mode 100644
index 000000000..92a9fb1e7
--- /dev/null
+++ b/docs/sdk.signaturedrop.totalclaimedsupply.md
@@ -0,0 +1,33 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [totalClaimedSupply](./sdk.signaturedrop.totalclaimedsupply.md)
+
+## SignatureDrop.totalClaimedSupply() method
+
+Get the claimed supply
+
+Signature:
+
+```typescript
+totalClaimedSupply(): Promise;
+```
+Returns:
+
+Promise<BigNumber>
+
+the claimed supply
+
+## Remarks
+
+Get the number of claimed NFTs in this Drop.
+
+\*
+
+## Example
+
+
+```javascript
+const claimedNFTCount = await contract.totalClaimedSupply();
+console.log(`NFTs claimed so far: ${claimedNFTCount}`);
+```
+
diff --git a/docs/sdk.signaturedrop.totalsupply.md b/docs/sdk.signaturedrop.totalsupply.md
new file mode 100644
index 000000000..418323219
--- /dev/null
+++ b/docs/sdk.signaturedrop.totalsupply.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [totalSupply](./sdk.signaturedrop.totalsupply.md)
+
+## SignatureDrop.totalSupply() method
+
+Get the total count NFTs in this drop contract, both claimed and unclaimed
+
+Signature:
+
+```typescript
+totalSupply(): Promise;
+```
+Returns:
+
+Promise<BigNumber>
+
diff --git a/docs/sdk.signaturedrop.totalunclaimedsupply.md b/docs/sdk.signaturedrop.totalunclaimedsupply.md
new file mode 100644
index 000000000..348ada80e
--- /dev/null
+++ b/docs/sdk.signaturedrop.totalunclaimedsupply.md
@@ -0,0 +1,33 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignatureDrop](./sdk.signaturedrop.md) > [totalUnclaimedSupply](./sdk.signaturedrop.totalunclaimedsupply.md)
+
+## SignatureDrop.totalUnclaimedSupply() method
+
+Get the unclaimed supply
+
+Signature:
+
+```typescript
+totalUnclaimedSupply(): Promise;
+```
+Returns:
+
+Promise<BigNumber>
+
+the unclaimed supply
+
+## Remarks
+
+Get the number of unclaimed NFTs in this Drop.
+
+\*
+
+## Example
+
+
+```javascript
+const unclaimedNFTCount = await contract.totalUnclaimedSupply();
+console.log(`NFTs left to claim: ${unclaimedNFTCount}`);
+```
+
diff --git a/docs/sdk.signedpayload721withquantitysignature.md b/docs/sdk.signedpayload721withquantitysignature.md
new file mode 100644
index 000000000..de7475592
--- /dev/null
+++ b/docs/sdk.signedpayload721withquantitysignature.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [SignedPayload721WithQuantitySignature](./sdk.signedpayload721withquantitysignature.md)
+
+## SignedPayload721WithQuantitySignature type
+
+
+Signature:
+
+```typescript
+export declare type SignedPayload721WithQuantitySignature = {
+ payload: PayloadWithUri721withQuantity;
+ signature: string;
+};
+```
+References: [PayloadWithUri721withQuantity](./sdk.payloadwithuri721withquantity.md)
+
diff --git a/docs/sdk.thirdwebsdk.getcontractlist.md b/docs/sdk.thirdwebsdk.getcontractlist.md
index 3e8c743ba..78c8c68b7 100644
--- a/docs/sdk.thirdwebsdk.getcontractlist.md
+++ b/docs/sdk.thirdwebsdk.getcontractlist.md
@@ -11,7 +11,7 @@ Return all the contracts deployed by the specified address
```typescript
getContractList(walletAddress: string): Promise<{
address: string;
- contractType: "split" | "custom" | "token" | "pack" | "edition" | "edition-drop" | "token-drop" | "vote" | "marketplace" | "nft-drop" | "nft-collection";
+ contractType: "split" | "custom" | "token" | "pack" | "edition" | "edition-drop" | "token-drop" | "vote" | "marketplace" | "nft-drop" | "signature-drop" | "nft-collection";
metadata: () => Promise;
}[]>;
```
@@ -24,5 +24,5 @@ getContractList(walletAddress: string): Promise<{
Returns:
-Promise<{ address: string; contractType: "split" \| "custom" \| "token" \| "pack" \| "edition" \| "edition-drop" \| "token-drop" \| "vote" \| "marketplace" \| "nft-drop" \| "nft-collection"; metadata: () => Promise<any>; }\[\]>
+Promise<{ address: string; contractType: "split" \| "custom" \| "token" \| "pack" \| "edition" \| "edition-drop" \| "token-drop" \| "vote" \| "marketplace" \| "nft-drop" \| "signature-drop" \| "nft-collection"; metadata: () => Promise<any>; }\[\]>
diff --git a/docs/sdk.thirdwebsdk.getsignaturedrop.md b/docs/sdk.thirdwebsdk.getsignaturedrop.md
new file mode 100644
index 000000000..f671659b8
--- /dev/null
+++ b/docs/sdk.thirdwebsdk.getsignaturedrop.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [@thirdweb-dev/sdk](./sdk.md) > [ThirdwebSDK](./sdk.thirdwebsdk.md) > [getSignatureDrop](./sdk.thirdwebsdk.getsignaturedrop.md)
+
+## ThirdwebSDK.getSignatureDrop() method
+
+Get an instance of a SignatureDrop contract
+
+Signature:
+
+```typescript
+getSignatureDrop(contractAddress: string): SignatureDrop;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| contractAddress | string | the address of the deployed contract |
+
+Returns:
+
+[SignatureDrop](./sdk.signaturedrop.md)
+
+the contract
+
diff --git a/docs/sdk.thirdwebsdk.md b/docs/sdk.thirdwebsdk.md
index 6a9044098..9ba59d348 100644
--- a/docs/sdk.thirdwebsdk.md
+++ b/docs/sdk.thirdwebsdk.md
@@ -42,6 +42,7 @@ export declare class ThirdwebSDK extends RPCConnectionHandler
| [getNFTCollection(address)](./sdk.thirdwebsdk.getnftcollection.md) | | Get an instance of a NFT Collection contract |
| [getNFTDrop(contractAddress)](./sdk.thirdwebsdk.getnftdrop.md) | | Get an instance of a Drop contract |
| [getPack(address)](./sdk.thirdwebsdk.getpack.md) | | Get an instance of a Pack contract |
+| [getSignatureDrop(contractAddress)](./sdk.thirdwebsdk.getsignaturedrop.md) | | Get an instance of a SignatureDrop contract |
| [getSplit(address)](./sdk.thirdwebsdk.getsplit.md) | | Get an instance of a Splits contract |
| [getToken(address)](./sdk.thirdwebsdk.gettoken.md) | | Get an instance of a Token contract |
| [getTokenDrop(address)](./sdk.thirdwebsdk.gettokendrop.md) | | Get an instance of a Token Drop contract |
diff --git a/docs/snippets.json b/docs/snippets.json
index 8ec7d07f3..d32237fbd 100644
--- a/docs/snippets.json
+++ b/docs/snippets.json
@@ -626,6 +626,145 @@
],
"reference": "https://docs.thirdweb.com/typescript/sdk.Pack"
},
+ "SignatureDrop": {
+ "name": "SignatureDrop",
+ "summary": "Setup a collection of NFTs where when it comes to minting, you can authorize some external party to mint tokens on your contract, and specify what exactly will be minted by that external party..\n\n",
+ "remarks": null,
+ "examples": {
+ "javascript": "import { ThirdwebSDK } from \"@thirdweb-dev/sdk\";\n\nconst sdk = new ThirdwebSDK(\"rinkeby\");\nconst contract = sdk.getSignatureDrop(\"{{contract_address}}\");"
+ },
+ "methods": [
+ {
+ "name": "claimTo",
+ "summary": "Claim unique NFTs to a specific Wallet\n\n",
+ "remarks": "\n\nLet the specified wallet claim NFTs.\n\n",
+ "examples": {
+ "javascript": "const address = \"{{wallet_address}}\"; // address of the wallet you want to claim the NFTs\nconst quantity = 1; // how many unique NFTs you want to claim\n\nconst tx = await contract.claimTo(address, quantity);\nconst receipt = tx.receipt; // the transaction receipt\nconst claimedTokenId = tx.id; // the id of the NFT claimed\nconst claimedNFT = await tx.data(); // (optional) get the claimed NFT metadata"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.SignatureDrop.claimTo"
+ },
+ {
+ "name": "createBatch",
+ "summary": "Create a batch of unique NFTs to be claimed in the future\n\n",
+ "remarks": "\n\nCreate batch allows you to create a batch of many unique NFTs in one transaction.\n\n",
+ "examples": {
+ "javascript": "// Custom metadata of the NFTs to create\nconst metadatas = [{\n name: \"Cool NFT\",\n description: \"This is a cool NFT\",\n image: fs.readFileSync(\"path/to/image.png\"), // This can be an image url or file\n}, {\n name: \"Cool NFT\",\n description: \"This is a cool NFT\",\n image: fs.readFileSync(\"path/to/image.png\"),\n}];\n\nconst results = await contract.createBatch(metadatas); // uploads and creates the NFTs on chain\nconst firstTokenId = results[0].id; // token id of the first created NFT\nconst firstNFT = await results[0].data(); // (optional) fetch details of the first created NFT"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.SignatureDrop.createBatch"
+ },
+ {
+ "name": "getAll",
+ "summary": "Get All Minted NFTs\n\n",
+ "remarks": "\n\nGet all the data associated with every NFT in this contract.\n\nBy default, returns the first 100 NFTs, use queryParams to fetch more.\n\n",
+ "examples": {
+ "javascript": "const nfts = await contract.getAll();\nconsole.log(nfts);"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.SignatureDrop.getAll"
+ },
+ {
+ "name": "getAllClaimed",
+ "summary": "Get All Claimed NFTs\n\n",
+ "remarks": "\n\nFetch all the NFTs (and their owners) that have been claimed in this Drop.\n\n*\n\n",
+ "examples": {
+ "javascript": "const claimedNFTs = await contract.getAllClaimed();\nconst firstOwner = claimedNFTs[0].owner;"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.SignatureDrop.getAllClaimed"
+ },
+ {
+ "name": "getAllUnclaimed",
+ "summary": "Get All Unclaimed NFTs\n\n",
+ "remarks": "\n\nFetch all the NFTs that have been not been claimed yet in this Drop.\n\n*\n\n",
+ "examples": {
+ "javascript": "const unclaimedNFTs = await contract.getAllUnclaimed();\nconst firstUnclaimedNFT = unclaimedNFTs[0].name;"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.SignatureDrop.getAllUnclaimed"
+ },
+ {
+ "name": "getOwned",
+ "summary": "Get Owned NFTs\n\n",
+ "remarks": "\n\nGet all the data associated with the NFTs owned by a specific wallet.\n\n",
+ "examples": {
+ "javascript": "// Address of the wallet to get the NFTs of\nconst address = \"{{wallet_address}}\";\nconst nfts = await contract.getOwned(address);\nconsole.log(nfts);"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.SignatureDrop.getOwned"
+ },
+ {
+ "name": "totalClaimedSupply",
+ "summary": "Get the claimed supply\n\n",
+ "remarks": "\n\nGet the number of claimed NFTs in this Drop.\n\n*\n\n",
+ "examples": {
+ "javascript": "const claimedNFTCount = await contract.totalClaimedSupply();\nconsole.log(`NFTs claimed so far: ${claimedNFTCount}`);"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.SignatureDrop.totalClaimedSupply"
+ },
+ {
+ "name": "totalUnclaimedSupply",
+ "summary": "Get the unclaimed supply\n\n",
+ "remarks": "\n\nGet the number of unclaimed NFTs in this Drop.\n\n*\n\n",
+ "examples": {
+ "javascript": "const unclaimedNFTCount = await contract.totalUnclaimedSupply();\nconsole.log(`NFTs left to claim: ${unclaimedNFTCount}`);"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.SignatureDrop.totalUnclaimedSupply"
+ },
+ {
+ "name": "balanceOf",
+ "summary": "Get NFT Balance\n\n",
+ "remarks": "\n\nGet a wallets NFT balance (number of NFTs in this contract owned by the wallet).\n\n",
+ "examples": {
+ "javascript": "const walletAddress = \"{{wallet_address}}\";\nconst balance = await contract.nft.balanceOf(walletAddress);\nconsole.log(balance);"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.Erc721.balanceOf"
+ },
+ {
+ "name": "get",
+ "summary": "Get a single NFT Metadata\n\n",
+ "remarks": null,
+ "examples": {
+ "javascript": "const tokenId = 0;\nconst nft = await contract.nft.get(tokenId);"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.Erc721.get"
+ },
+ {
+ "name": "transfer",
+ "summary": "Transfer a single NFT\n\n",
+ "remarks": "\n\nTransfer an NFT from the connected wallet to another wallet.\n\n",
+ "examples": {
+ "javascript": "const walletAddress = \"{{wallet_address}}\";\nconst tokenId = 0;\nawait contract.nft.transfer(walletAddress, tokenId);"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.Erc721.transfer"
+ }
+ ],
+ "properties": [
+ {
+ "name": "claimConditions",
+ "summary": "Configure claim conditions\n\n",
+ "remarks": "\n\nDefine who can claim NFTs in the collection, when and how many.\n\n",
+ "examples": {
+ "javascript": "const presaleStartTime = new Date();\nconst publicSaleStartTime = new Date(Date.now() + 60 * 60 * 24 * 1000);\nconst claimConditions = [\n {\n startTime: presaleStartTime, // start the presale now\n maxQuantity: 2, // limit how many mints for this presale\n price: 0.01, // presale price\n snapshot: ['0x...', '0x...'], // limit minting to only certain addresses\n },\n {\n startTime: publicSaleStartTime, // 24h after presale, start public sale\n price: 0.08, // public sale price\n }\n]);\nawait contract.claimConditions.set(claimConditions);"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.dropclaimconditions"
+ },
+ {
+ "name": "revealer",
+ "summary": "Delayed reveal\n\n",
+ "remarks": "\n\nCreate a batch of encrypted NFTs that can be revealed at a later time.\n\n",
+ "examples": {
+ "javascript": "// the real NFTs, these will be encrypted until you reveal them\nconst realNFTs = [{\n name: \"Common NFT #1\",\n description: \"Common NFT, one of many.\",\n image: fs.readFileSync(\"path/to/image.png\"),\n}, {\n name: \"Super Rare NFT #2\",\n description: \"You got a Super Rare NFT!\",\n image: fs.readFileSync(\"path/to/image.png\"),\n}];\n// A placeholder NFT that people will get immediately in their wallet, and will be converted to the real NFT at reveal time\nconst placeholderNFT = {\n name: \"Hidden NFT\",\n description: \"Will be revealed next week!\"\n};\n// Create and encrypt the NFTs\nawait contract.revealer.createDelayedRevealBatch(\n placeholderNFT,\n realNFTs,\n \"my secret password\",\n);\n// Whenever you're ready, reveal your NFTs at any time\nconst batchId = 0; // the batch to reveal\nawait contract.revealer.reveal(batchId, \"my secret password\");"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.delayedreveal"
+ },
+ {
+ "name": "royalty",
+ "summary": "Configure royalties\n\n",
+ "remarks": "\n\nSet your own royalties for the entire contract or per token\n\n",
+ "examples": {
+ "javascript": "// royalties on the whole contract\ncontract.royalty.setDefaultRoyaltyInfo({\n seller_fee_basis_points: 100, // 1%\n fee_recipient: \"0x...\"\n});\n// override royalty for a particular token\ncontract.royalty.setTokenRoyaltyInfo(tokenId, {\n seller_fee_basis_points: 500, // 5%\n fee_recipient: \"0x...\"\n});"
+ },
+ "reference": "https://docs.thirdweb.com/typescript/sdk.contractroyalty"
+ }
+ ],
+ "reference": "https://docs.thirdweb.com/typescript/sdk.SignatureDrop"
+ },
"SmartContract": {
"name": "SmartContract",
"summary": "Custom contract dynamic class with feature detection\n\n",
diff --git a/etc/sdk.api.md b/etc/sdk.api.md
index 138040d99..793109b69 100644
--- a/etc/sdk.api.md
+++ b/etc/sdk.api.md
@@ -60,7 +60,7 @@ export class AdminRoleMissingError extends Error {
export type AirdropInput = z.input;
// @public (undocumented)
-export const ALL_ROLES: ("transfer" | "lister" | "minter" | "admin" | "pauser" | "editor" | "asset")[];
+export const ALL_ROLES: ("transfer" | "lister" | "admin" | "minter" | "pauser" | "editor" | "asset")[];
// Warning: (ae-forgotten-export) The symbol "PriceSchema" needs to be exported by the entry point index.d.ts
//
@@ -560,6 +560,7 @@ export const CONTRACT_ADDRESSES: Record;
// Warning: (ae-forgotten-export) The symbol "RPCConnectionHandler" needs to be exported by the entry point index.d.ts
@@ -575,6 +576,7 @@ export class ContractDeployer extends RPCConnectionHandler {
deployNFTCollection(metadata: NFTContractDeployMetadata): Promise;
deployNFTDrop(metadata: NFTContractDeployMetadata): Promise;
deployPack(metadata: NFTContractDeployMetadata): Promise;
+ deploySignatureDrop(metadata: NFTContractDeployMetadata): Promise;
deploySplit(metadata: SplitContractDeployMetadata): Promise;
deployToken(metadata: TokenContractDeployMetadata): Promise;
deployTokenDrop(metadata: TokenContractDeployMetadata): Promise;
@@ -636,21 +638,21 @@ export class ContractMetadata;
// (undocumented)
- set(metadata: z.input): Promise<((() => A extends never ? 1 : 0) extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) extends infer T ? T extends ((() => A extends never ? 1 : 0) extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) ? T extends 1 ? Omit<{
+ set(metadata: z.input): Promise<(() => A extends never ? 1 : 0 extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) extends 1 ? Omit<{
receipt: TransactionReceipt;
data: () => Promise;
}, "data"> : {
receipt: TransactionReceipt;
data: () => Promise>;
- } : never : never>;
+ }>;
// (undocumented)
- update(metadata: Partial>): Promise<((() => A extends never ? 1 : 0) extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) extends infer T ? T extends ((() => A extends never ? 1 : 0) extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) ? T extends 1 ? Omit<{
+ update(metadata: Partial>): Promise<(() => A extends never ? 1 : 0 extends () => A_1 extends z.output ? 1 : 0 ? 1 : 0) extends 1 ? Omit<{
receipt: TransactionReceipt;
data: () => Promise;
}, "data"> : {
receipt: TransactionReceipt;
data: () => Promise>;
- } : never : never>;
+ }>;
}
// Warning: (ae-forgotten-export) The symbol "IPlatformFee" needs to be exported by the entry point index.d.ts
@@ -747,6 +749,7 @@ export class ContractRoyalty {
+export class DelayedReveal {
constructor(contractWrapper: ContractWrapper, storage: IStorage);
createDelayedRevealBatch(placeholder: NFTMetadataInput, metadatas: NFTMetadataInput[], password: string): Promise;
getBatchesToReveal(): Promise;
@@ -878,7 +882,7 @@ export interface DirectListing {
// Warning: (ae-forgotten-export) The symbol "DropERC20" needs to be exported by the entry point index.d.ts
//
// @public
-export class DropClaimConditions {
+export class DropClaimConditions {
constructor(contractWrapper: ContractWrapper, metadata: ContractMetadata, storage: IStorage);
canClaim(quantity: Amount, addressToCheck?: string): Promise;
getActive(): Promise;
@@ -1647,7 +1651,7 @@ export class Erc20SignatureMinting {
// Warning: (ae-forgotten-export) The symbol "BaseERC721" needs to be exported by the entry point index.d.ts
//
// @public
-export class Erc721 implements UpdateableNetwork, DetectableFeature {
+export class Erc721 implements UpdateableNetwork, DetectableFeature {
constructor(contractWrapper: ContractWrapper, storage: IStorage, options?: SDKOptions);
balance(): Promise;
balanceOf(address: string): Promise;
@@ -1797,6 +1801,11 @@ export type FileOrBuffer = File | Buffer | BufferOrStringWithName;
// @public (undocumented)
export type FilledConditionInput = z.output;
+// Warning: (ae-incompatible-release-tags) The symbol "FilledSignature721WithQuantity" is marked as @public, but its signature references "Signature721WithQuantityInput" which is marked as @internal
+//
+// @public (undocumented)
+export type FilledSignature721WithQuantity = z.output;
+
// Warning: (ae-incompatible-release-tags) The symbol "FilledSignaturePayload1155" is marked as @public, but its signature references "Signature1155PayloadInput" which is marked as @internal
//
// @public (undocumented)
@@ -1998,6 +2007,7 @@ export type JsonObject = {
// @internal (undocumented)
export const KNOWN_CONTRACTS_MAP: {
readonly "nft-drop": typeof NFTDrop;
+ readonly "signature-drop": typeof SignatureDrop;
readonly "nft-collection": typeof NFTCollection;
readonly "edition-drop": typeof EditionDrop;
readonly edition: typeof Edition;
@@ -2052,7 +2062,7 @@ export class Marketplace implements UpdateableNetwork {
// (undocumented)
getAddress(): string;
// @internal (undocumented)
- getAll: (filter?: MarketplaceFilter) => Promise<(AuctionListing | DirectListing)[]>;
+ getAll: (filter?: MarketplaceFilter | undefined) => Promise<(AuctionListing | DirectListing)[]>;
getAllListings(filter?: MarketplaceFilter): Promise<(AuctionListing | DirectListing)[]>;
getBidBufferBps(): Promise;
getListing(listingId: BigNumberish): Promise;
@@ -2230,6 +2240,12 @@ export const MintRequest721: {
type: string;
}[];
+// @public (undocumented)
+export const MintRequest721withQuantity: {
+ name: string;
+ type: string;
+}[];
+
// Warning: (ae-internal-missing-underscore) The name "MissingOwnerRoleError" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
@@ -2909,6 +2925,11 @@ export type PayloadToSign20 = z.input;
// @public (undocumented)
export type PayloadToSign721 = z.input;
+// Warning: (ae-incompatible-release-tags) The symbol "PayloadToSign721withQuantity" is marked as @public, but its signature references "Signature721WithQuantityInput" which is marked as @internal
+//
+// @public (undocumented)
+export type PayloadToSign721withQuantity = z.input;
+
// Warning: (ae-incompatible-release-tags) The symbol "PayloadWithUri1155" is marked as @public, but its signature references "Signature1155PayloadOutput" which is marked as @internal
//
// @public (undocumented)
@@ -2924,6 +2945,11 @@ export type PayloadWithUri20 = z.output;
// @public (undocumented)
export type PayloadWithUri721 = z.output;
+// Warning: (ae-incompatible-release-tags) The symbol "PayloadWithUri721withQuantity" is marked as @public, but its signature references "Signature721WithQuantityOutput" which is marked as @internal
+//
+// @public (undocumented)
+export type PayloadWithUri721withQuantity = z.output;
+
// @public
export type PermitRequestMessage = {
to: string;
@@ -3024,6 +3050,7 @@ export interface QueryAllParams {
// @internal (undocumented)
export const REMOTE_CONTRACT_NAME: {
readonly "nft-drop": "DropERC721";
+ readonly "signature-drop": "SignatureDrop";
readonly "nft-collection": "TokenERC721";
readonly "edition-drop": "DropERC1155";
readonly edition: "TokenERC1155";
@@ -3041,6 +3068,7 @@ export const REMOTE_CONTRACT_NAME: {
// @internal (undocumented)
export const REMOTE_CONTRACT_TO_CONTRACT_TYPE: {
readonly DropERC721: "nft-drop";
+ readonly SignatureDrop: "signature-drop";
readonly TokenERC721: "nft-collection";
readonly DropERC1155: "edition-drop";
readonly TokenERC1155: "edition";
@@ -3680,6 +3708,403 @@ export const Signature721PayloadOutput: z.ZodObject;
+// Warning: (ae-internal-missing-underscore) The name "Signature721WithQuantityInput" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export const Signature721WithQuantityInput: z.ZodObject;
+ price: z.ZodDefault, string, string | number>>;
+ currencyAddress: z.ZodDefault;
+ mintStartTime: z.ZodDefault>;
+ mintEndTime: z.ZodDefault>;
+ uid: z.ZodEffects, string, string | undefined>;
+ primarySaleRecipient: z.ZodDefault;
+}, {
+ metadata: z.ZodUnion<[z.ZodObject;
+ description: z.ZodOptional>;
+ image: z.ZodOptional>>;
+ external_url: z.ZodOptional>>;
+ }, {
+ animation_url: z.ZodOptional>; /**
+ * @internal
+ */
+ background_color: z.ZodOptional, z.ZodString]>>;
+ properties: z.ZodOptional>, "many">, z.ZodRecord>]>>;
+ attributes: z.ZodOptional>, "many">, z.ZodRecord>]>>;
+ }>, "strip", z.ZodLazy>, {
+ [x: string]: Json;
+ name?: string | undefined;
+ description?: string | null | undefined;
+ image?: any;
+ external_url?: any;
+ animation_url?: any;
+ background_color?: string | undefined;
+ properties?: Record | Record[] | undefined;
+ attributes?: Record | Record[] | undefined;
+ }, {
+ [x: string]: Json;
+ name?: string | undefined;
+ description?: string | null | undefined;
+ image?: any;
+ external_url?: any;
+ animation_url?: any;
+ background_color?: string | undefined;
+ properties?: Record | Record[] | undefined;
+ attributes?: Record | Record[] | undefined;
+ }>, z.ZodString]>;
+ royaltyRecipient: z.ZodDefault;
+ royaltyBps: z.ZodDefault;
+}>, {
+ metadata: z.ZodDefault;
+ description: z.ZodOptional>;
+ image: z.ZodOptional>>;
+ external_url: z.ZodOptional>>;
+ }, {
+ animation_url: z.ZodOptional>; /**
+ * @internal
+ */
+ background_color: z.ZodOptional, z.ZodString]>>;
+ properties: z.ZodOptional>, "many">, z.ZodRecord>]>>;
+ attributes: z.ZodOptional>, "many">, z.ZodRecord>]>>;
+ }>, "strip", z.ZodLazy>, {
+ [x: string]: Json;
+ name?: string | undefined;
+ description?: string | null | undefined;
+ image?: any;
+ external_url?: any;
+ animation_url?: any;
+ background_color?: string | undefined;
+ properties?: Record | Record[] | undefined;
+ attributes?: Record | Record[] | undefined;
+ }, {
+ [x: string]: Json;
+ name?: string | undefined;
+ description?: string | null | undefined;
+ image?: any;
+ external_url?: any;
+ animation_url?: any;
+ background_color?: string | undefined;
+ properties?: Record | Record[] | undefined;
+ attributes?: Record | Record[] | undefined;
+ }>, z.ZodString]>>;
+ quantity: z.ZodEffects]>, ethers.BigNumber, string | number | bigint | ethers.BigNumber>, string, string | number | bigint | ethers.BigNumber>;
+}>, "strip", z.ZodTypeAny, {
+ to: string;
+ primarySaleRecipient: string;
+ royaltyRecipient: string;
+ royaltyBps: number;
+ quantity: string;
+ uid: string;
+ price: string;
+ currencyAddress: string;
+ mintStartTime: ethers.BigNumber;
+ mintEndTime: ethers.BigNumber;
+ metadata: string | {
+ [x: string]: Json;
+ name?: string | undefined;
+ description?: string | null | undefined;
+ image?: any;
+ external_url?: any;
+ animation_url?: any;
+ background_color?: string | undefined;
+ properties?: Record | Record[] | undefined;
+ attributes?: Record | Record[] | undefined;
+ };
+}, {
+ to?: string | undefined;
+ primarySaleRecipient?: string | undefined;
+ royaltyRecipient?: string | undefined;
+ royaltyBps?: number | undefined;
+ uid?: string | undefined;
+ price?: string | number | undefined;
+ currencyAddress?: string | undefined;
+ mintStartTime?: Date | undefined;
+ mintEndTime?: Date | undefined;
+ metadata?: string | {
+ [x: string]: Json;
+ name?: string | undefined;
+ description?: string | null | undefined;
+ image?: any;
+ external_url?: any;
+ animation_url?: any;
+ background_color?: string | undefined;
+ properties?: Record | Record[] | undefined;
+ attributes?: Record | Record[] | undefined;
+ } | undefined;
+ quantity: string | number | bigint | ethers.BigNumber;
+}>;
+
+// Warning: (ae-internal-missing-underscore) The name "Signature721WithQuantityOutput" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export const Signature721WithQuantityOutput: z.ZodObject;
+ price: z.ZodDefault, string, string | number>>;
+ currencyAddress: z.ZodDefault;
+ mintStartTime: z.ZodDefault>;
+ mintEndTime: z.ZodDefault>;
+ uid: z.ZodEffects, string, string | undefined>;
+ primarySaleRecipient: z.ZodDefault;
+}, {
+ metadata: z.ZodUnion<[z.ZodObject;
+ description: z.ZodOptional>;
+ image: z.ZodOptional>>;
+ external_url: z.ZodOptional>>;
+ }, {
+ animation_url: z.ZodOptional>; /**
+ * @internal
+ */
+ background_color: z.ZodOptional, z.ZodString]>>;
+ properties: z.ZodOptional>, "many">, z.ZodRecord>]>>;
+ attributes: z.ZodOptional>, "many">, z.ZodRecord>]>>;
+ }>, "strip", z.ZodLazy>, {
+ [x: string]: Json;
+ name?: string | undefined;
+ description?: string | null | undefined;
+ image?: any;
+ external_url?: any;
+ animation_url?: any;
+ background_color?: string | undefined;
+ properties?: Record | Record[] | undefined;
+ attributes?: Record | Record[] | undefined;
+ }, {
+ [x: string]: Json;
+ name?: string | undefined;
+ description?: string | null | undefined;
+ image?: any;
+ external_url?: any;
+ animation_url?: any;
+ background_color?: string | undefined;
+ properties?: Record | Record[] | undefined;
+ attributes?: Record | Record[] | undefined;
+ }>, z.ZodString]>;
+ royaltyRecipient: z.ZodDefault;
+ royaltyBps: z.ZodDefault;
+}>, {
+ uri: z.ZodString;
+ royaltyBps: z.ZodEffects]>, ethers.BigNumber, string | number | bigint | ethers.BigNumber>;
+ mintStartTime: z.ZodEffects]>, ethers.BigNumber, string | number | bigint | ethers.BigNumber>;
+ mintEndTime: z.ZodEffects]>, ethers.BigNumber, string | number | bigint | ethers.BigNumber>;
+}>, {
+ quantity: z.ZodEffects]>, ethers.BigNumber, string | number | bigint | ethers.BigNumber>;
+}>, "strip", z.ZodTypeAny, {
+ to: string;
+ primarySaleRecipient: string;
+ uri: string;
+ royaltyRecipient: string;
+ royaltyBps: ethers.BigNumber;
+ quantity: ethers.BigNumber;
+ uid: string;
+ price: string;
+ currencyAddress: string;
+ mintStartTime: ethers.BigNumber;
+ mintEndTime: ethers.BigNumber;
+ metadata: string | {
+ [x: string]: Json;
+ name?: string | undefined;
+ description?: string | null | undefined;
+ image?: any;
+ external_url?: any;
+ animation_url?: any;
+ background_color?: string | undefined;
+ properties?: Record | Record[] | undefined;
+ attributes?: Record | Record[] | undefined;
+ };
+}, {
+ to?: string | undefined;
+ primarySaleRecipient?: string | undefined;
+ royaltyRecipient?: string | undefined;
+ uid?: string | undefined;
+ price?: string | number | undefined;
+ currencyAddress?: string | undefined;
+ uri: string;
+ royaltyBps: string | number | bigint | ethers.BigNumber;
+ quantity: string | number | bigint | ethers.BigNumber;
+ mintStartTime: string | number | bigint | ethers.BigNumber;
+ mintEndTime: string | number | bigint | ethers.BigNumber;
+ metadata: string | {
+ [x: string]: Json;
+ name?: string | undefined;
+ description?: string | null | undefined;
+ image?: any;
+ external_url?: any;
+ animation_url?: any;
+ background_color?: string | undefined;
+ properties?: Record | Record[] | undefined;
+ attributes?: Record | Record[] | undefined;
+ };
+}>;
+
+// @public
+export class SignatureDrop extends Erc721 {
+ constructor(network: NetworkOrSignerOrProvider, address: string, storage: IStorage, options?: SDKOptions, contractWrapper?: ContractWrapper);
+ // (undocumented)
+ analytics: ContractAnalytics;
+ burn(tokenId: BigNumberish): Promise;
+ claim(quantity: BigNumberish, proofs?: BytesLike[]): Promise[]>;
+ claimConditions: DropClaimConditions;
+ claimTo(destinationAddress: string, quantity: BigNumberish, proofs?: BytesLike[]): Promise[]>;
+ // (undocumented)
+ static contractAbi: any;
+ // (undocumented)
+ static contractRoles: readonly ["admin", "minter", "transfer"];
+ // (undocumented)
+ static contractType: "signature-drop";
+ createBatch(metadatas: NFTMetadataInput[]): Promise[]>;
+ // (undocumented)
+ encoder: ContractEncoder;
+ // (undocumented)
+ estimator: GasCostEstimator;
+ // (undocumented)
+ events: ContractEvents;
+ getAll(queryParams?: QueryAllParams): Promise;
+ getAllClaimed(queryParams?: QueryAllParams): Promise;
+ getAllUnclaimed(queryParams?: QueryAllParams): Promise;
+ getOwned(walletAddress?: string): Promise;
+ // Warning: (ae-unresolved-inheritdoc-reference) The @inheritDoc reference could not be resolved: No member was found with name "tokendIds"
+ //
+ // (undocumented)
+ getOwnedTokenIds(walletAddress?: string): Promise;
+ // @internal (undocumented)
+ interceptor: ContractInterceptor;
+ isTransferRestricted(): Promise;
+ // (undocumented)
+ metadata: ContractMetadata;
+ // (undocumented)
+ platformFee: ContractPlatformFee;
+ // (undocumented)
+ primarySale: ContractPrimarySale;
+ revealer: DelayedReveal;
+ // (undocumented)
+ roles: ContractRoles;
+ royalty: ContractRoyalty;
+ // @internal (undocumented)
+ static schema: {
+ deploy: ZodObject;
+ image: ZodOptional>;
+ external_link: ZodOptional;
+ }, {
+ seller_fee_basis_points: ZodDefault;
+ fee_recipient: ZodDefault