Skip to content

Commit

Permalink
added 7 new guides for contracts (#5467)
Browse files Browse the repository at this point in the history
## Problem solved

Short description of the bug fixed or feature added

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on restructuring and enhancing the documentation for various modular contract types in the `pre-built-modular` section, including updates to navigation, descriptions, and deployment steps.

### Detailed summary
- Renamed `Pre-built Contracts` to `Pre-built Modular` in the sidebar.
- Added detailed documentation for:
  - `NFT Drop`
  - `Token`
  - `Token Drop`
  - `Edition Drop`
  - `Open Edition`
  - `Edition`
  - `NFT Collection`
- Included images and steps for deploying each contract type.
- Updated links and metadata for better navigation and user experience.

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
https://linear.app/thirdweb/issue/DEVX-1828/7-guides-for-contracts
<!-- end pr-codex -->
  • Loading branch information
saminacodes committed Nov 20, 2024
1 parent 0e5d120 commit 3253a53
Show file tree
Hide file tree
Showing 39 changed files with 648 additions and 1 deletion.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import { createMetadata, DocImage, Steps, Step, Callout, ContractDeployCard } from "@doc";
import editionDropStep1 from './assets/edition_drop_step1.png'
import editionDropStep2 from './assets/edition_drop_step2.png'
import editionDropStep3 from './assets/edition_drop_step3.png'
import editionDropStep4 from './assets/edition_drop_step4.png'

# Deploy a modular Edition Drop contract

The Edition Drop contract also known as “semi-fungible” or “multi” tokens create multiple NFTs from the same asset based on the [ERC-1155 standard](https://eips.ethereum.org/EIPS/eip-1155).

Edition Drop includes settings called claim conditions which allow deployers to set a prices for tokens per claim phase and limits on how many tokens to be released.

### Edition Drop vs Edition

The Edition Drop contract allows users to claim tokens based on specific settings set using Claim Conditions. If you do not need to set limits or special settings on how to claim, refer to the Edition contract.

### Use Cases & Examples

- Create NFT Memberships such as Early Access Cards for users to claim
- Release a limited in-game item
- Create badges, certificates, or passes for real world assets and events

### Default Installed Modules

- Claimable
- BatchMetadata
- Royalty
- SequentialTokenId

### Deploy modular Edition Drop contract

Learn how to deploy a modular Edition Drop contract through the dashboard.

<Steps>

<Step title="Locate Contract">

Navigate to Explore, locate the [Modular Edition Drop contract](https://thirdweb.com/thirdweb.eth/ERC1155CoreInitializable?module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6Ik1pbnRhYmxlRVJDMTE1NSJ9&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IkJhdGNoTWV0YWRhdGFFUkMxMTU1In0%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IlRyYW5zZmVyYWJsZUVSQzExNTUifQ%3D%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IlNlcXVlbnRpYWxUb2tlbklkRVJDMTE1NSJ9&displayName=Modular+Edition), and select the Deploy Now button.

<DocImage src={editionDropStep1} alt="Screenshot Edition Drop contract" />

</Step>

<Step title="Configure Contract Metadata">
Fill in the Contract Metadata including Name, Symbol, Description, and Image.

Contract Metadata serves as your unique identifier.

<DocImage src={editionDropStep2} alt="Screenshot of Edition Drop configure metadata" />

</Step>


<Step title="Configure Sequential Token Id">
Input a number you want your tokens to start at for the sequential token id. If you don’t have a preference to change it, you may input 0.

<DocImage src={editionDropStep3} alt="Screenshot of Edition Drop configure sequential token id" />

</Step>

<Step title="Select Chain">
Select the preferred chain you want to deploy on and select Deploy Now.

<DocImage src={editionDropStep4} alt="Screenshot of Edition Drop select chain" />

<Callout variant="info" title="Any EVM Compatible">
The Edition Drop contract is deployable on any EVM compatible network. [View all available networks.](https://thirdweb.com/chainlist)
</Callout>
If you are signed in with an EOA wallet, you will be prompted to sign the transaction. After that your contract is deployed and you can begin configuring the modules.
</Step>

</Steps>

### Modular Contract

This contract is created using the modular contract framework. Modules on this contract are upgradeable. [Learn more about Modular Contracts.](https://portal.thirdweb.com/contracts/modular-contracts/overview)

### Configure Modules

To configure the modules, navigate to the Modules view:

(Coming soon)

<Callout variant='info' title="Install Modules">
To install additional modules on this contract, navigate to the Modules view after deploying your contract.
</Callout>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import { createMetadata, DocImage, Steps, Step, Callout, ContractDeployCard } from "@doc";
import editionStep1 from './assets/edition_step1.png'
import editionStep2 from './assets/edition_step2.png'
import editionStep3 from './assets/edition_step3.png'
import editionStep4 from './assets/edition_step4.png'


# Deploy a modular Edition Drop

The Edition contract also known as “semi-fungible” or “multi” tokens create multiple NFTs from the same asset based on the [ERC-1155 standard](https://eips.ethereum.org/EIPS/eip-1155). NFTs are minted to the creator’s wallet as they are added to the collection. NFTs are still transferable, able to be sold on a marketplace, and perform any other actions as defined by ERC-1155.

For advanced use cases, Edition enables signature-minting capabilities.

### Edition vs Edition Drop

Edition does not have lazy minting capabilities or claim conditions. If you’d prefer to define specific settings such as claim limits, start and end times to claim, and more, please refer to the [Edition Drop contract](https://thirdweb.com/thirdweb.eth/ERC1155CoreInitializable?module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IkNsYWltYWJsZUVSQzExNTUifQ%3D%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IkJhdGNoTWV0YWRhdGFFUkMxMTU1In0%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IlJveWFsdHlFUkMxMTU1In0%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IlNlcXVlbnRpYWxUb2tlbklkRVJDMTE1NSJ9&displayName=Modular+Edition+Drop).

### Use Cases & Examples

- Create an NFT Collection with multiple copies of each NFT
- Airdrop an NFT to an allowlist of addresses using the same assets and metadata
- Create copies of artwork to be sold on a marketplace

### Default Installed Modules

- Mintable
- BatchMetadata
- Transferable
- SequentialTokenId

### Deploy modular Edition contract

Learn how to deploy a modular Edition contract through the dashboard.

<Steps>


<Step title="Locate Contract">

Navigate to Explore, locate the [Modular Edition contract](https://thirdweb.com/thirdweb.eth/ERC721CoreInitializable?module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6Ik1pbnRhYmxlRVJDNzIxIn0%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IkJhdGNoTWV0YWRhdGFFUkM3MjEifQ%3D%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IlRyYW5zZmVyYWJsZUVSQzcyMSJ9&displayName=Modular+NFT+Collection), and select the Deploy Now button.

<DocImage src={editionStep1} alt="Screenshot Edition contract" />

</Step>

<Step title="Configure Contract Metadata">
Fill in the Contract Metadata including Name, Symbol, Description, and Image.

Contract Metadata serves as your unique identifier.

<DocImage src={editionStep2} alt="Screenshot of Edition configure metadata" />

</Step>


<Step title="Configure Sequential Token Id">
Input a number you want your tokens to start at for the sequential token id. If you don’t have a preference to change it, you may input 0.

<DocImage src={editionStep3} alt="Screenshot of Edition configure sequential token id" />

</Step>

<Step title="Select Chain">
Select the preferred chain you want to deploy on and select Deploy Now.

<DocImage src={editionStep4} alt="Screenshot of Edition select chain" />

<Callout variant="info" title="Any EVM Compatible">
The Edition contract is deployable on any EVM compatible network. [View all available networks.](https://thirdweb.com/chainlist)
</Callout>
If you are signed in with an EOA wallet, you will be prompted to sign the transaction. After that your contract is deployed and you can begin configuring the modules.
</Step>

</Steps>

### Modular Contract

This contract is created using the modular contract framework. Modules on this contract are upgradeable. [Learn more about Modular Contracts.](https://portal.thirdweb.com/contracts/modular-contracts/overview)

### Configure Modules

To configure the modules, navigate to the Modules view:

(Coming soon)

<Callout variant='info' title="Install Modules">
To install additional modules on this contract, navigate to the Modules view after deploying your contract.
</Callout>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import { createMetadata, DocImage, Steps, Step, Callout, ContractDeployCard } from "@doc";
import collectionStep1 from './assets/nft_collection_step1.png'
import collectionStep2 from './assets/nft_collection_step2.png'
import collectionStep3 from './assets/nft_collection_step3.png'
import collectionTransferable from '../assets/erc721_transferable.png'
import collectionBatchMetadata from '../assets/erc721_batchmetadata.png'
import collectionMintable from '../assets/erc721_mintable.png'

# Deploy a modular NFT Collection contract

The NFT Collection contract creates a unique collection of NFTs based on the ERC-721A standard. NFTs are minted to the creator’s wallet as they are added to the collection. NFTs are still transferable, able to be sold on a marketplace, and perform any other actions as defined by ERC-721A.

For advanced use-cases requiring , NFT Collection includes signature-based minting capabilities.

### NFT Collection vs NFT Drop

NFT Collection contract does not have lazy minting capabilities or claim conditions. If you’d prefer to define specific settings such as claim limits, start and end times to claim, and more, please refer to the [NFT Drop contract](https://thirdweb.com/thirdweb.eth/ERC721CoreInitializable?module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IkNsYWltYWJsZUVSQzcyMSJ9&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IkJhdGNoTWV0YWRhdGFFUkM3MjEifQ%3D%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IlJveWFsdHlFUkM3MjEifQ%3D%3D&displayName=Modular+NFT+Drop).

### Use Cases & Examples

- Create a 1-of-many collection of photography, artwork, or other media to be collected or sold on a marketplace
- Create a 1-of-1 NFT which provide special utility or can be used to gate access to an application
- Create a community-made collection of NFTs using signature-minting

### Default Installed Modules

- Mintable
- BatchMetadata
- Transferable

<Steps>


<Step title="Locate Contract">

Navigate to Explore, locate the [Modular NFT Collection contract](https://thirdweb.com/thirdweb.eth/ERC721CoreInitializable?module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6Ik1pbnRhYmxlRVJDNzIxIn0%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IkJhdGNoTWV0YWRhdGFFUkM3MjEifQ%3D%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IlRyYW5zZmVyYWJsZUVSQzcyMSJ9&displayName=Modular+NFT+Collection), and select the Deploy Now button.

<DocImage src={collectionStep1} alt="Screenshot NFT Collection contract" />

</Step>

<Step title="Configure Contract Metadata">
Fill in the Contract Metadata including Name, Symbol, Description, and Image.

Contract Metadata serves as your unique identifier.

<DocImage src={collectionStep2} alt="Screenshot of NFT Collectionconfigure metadata" />


</Step>

<Step title="Select Chain">
Select the preferred chain you want to deploy on and select Deploy Now.

<DocImage src={collectionStep3} alt="Screenshot of Token select chain screen" />

<Callout variant="info" title="Any EVM Compatible">
The NFT Collection contract is deployable on any EVM compatible network. [View all available networks.](https://thirdweb.com/chainlist)
</Callout>
If you are signed in with an EOA wallet, you will be prompted to sign the transaction. After that your contract is deployed and you can begin configuring the modules.
</Step>

</Steps>

### Modular Contract

This contract is created using the modular contract framework. Modules on this contract are upgradeable. [Learn more about Modular Contracts.](https://portal.thirdweb.com/contracts/modular-contracts/overview)

### Configure Modules

To configure the modules, navigate to the Modules view:

- Configure the MintableERC721 module to facilitate minting of ERC721 tokens with sales settings

<DocImage src={collectionMintable} alt="Screenshot of ERC721 Mintable module"/>

- Configure BatchMetadataERC721 to upload the NFT metadata

<DocImage src={collectionBatchMetadata} alt="Screenshot of ERC721 BatchMetadata module"/>

- Configure the Transferable721 Module to restrict transfers, if desired.

<DocImage src={collectionTransferable} alt="Screenshot of ERC721 Transferable module"/>

<Callout variant='info' title="Install Modules">
To install additional modules on this contract, navigate to the Modules view after deploying your contract.
</Callout>

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
import { createMetadata, DocImage, Steps, Step, Callout, ContractDeployCard } from "@doc";
import nftDropStep1 from './assets/nft_drop_step1.png'
import nftDropStep2 from './assets/nft_drop_step2.png'
import nftDropStep3 from './assets/nft_drop_step3.png'

# Deploy a modular NFT Drop contract

The NFT Drop contract creates a unique collection of NFTs based on the [ERC-721A](https://www.erc721a.org/) standard. NFT Drop allows you to define claim conditions or settings which define how a user can claim an NFT.

### NFT Drop vs NFT Collection

NFT Drop has the Claimable module enabling claim conditions. If you’d prefer to not define specific settings such as claim limits, start and end times to claim, and more, please refer to the [NFT Collection contract](https://thirdweb.com/thirdweb.eth/ERC721CoreInitializable?module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6Ik1pbnRhYmxlRVJDNzIxIn0%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IkJhdGNoTWV0YWRhdGFFUkM3MjEifQ%3D%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IlRyYW5zZmVyYWJsZUVSQzcyMSJ9&displayName=Modular+NFT+Collection).

### Use Cases & Examples

- Create an NFT profile pic collection with each NFT having a different combination of traits
- Release NFTs in phases with exclusivity, discounted, or public phases
- Create restricted-access NFT Drops for allowlisted wallets to claim

### Default Installed Modules

- Claimable
- BatchMetadata
- Royalty

### Deploy a modular NFT Drop contract

Learn how to deploy a modular NFT Drop contract through the dashboard.

<Steps>


<Step title="Locate Contract">

Navigate to Explore, locate the [Modular NFT Drop contract](https://thirdweb.com/thirdweb.eth/ERC721CoreInitializable?module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IkNsYWltYWJsZUVSQzcyMSJ9&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IkJhdGNoTWV0YWRhdGFFUkM3MjEifQ%3D%3D&module=eyJwdWJsaXNoZXIiOiJkZXBsb3llci50aGlyZHdlYi5ldGgiLCJtb2R1bGVJZCI6IlJveWFsdHlFUkM3MjEifQ%3D%3D&displayName=Modular+NFT+Drop), and select the Deploy Now button.

<DocImage src={nftDropStep1} alt="Screenshot NFT Drop contract" />

</Step>

<Step title="Configure Contract Metadata">
Fill in the Contract Metadata including Name, Symbol, Description, and Image.

Contract Metadata serves as your unique identifier.

<DocImage src={nftDropStep2} alt="Screenshot of NFT Drop configure metadata" />


</Step>

<Step title="Select Chain">
Select the preferred chain you want to deploy on and select Deploy Now.

<DocImage src={nftDropStep3} alt="Screenshot of NFT Drop select chain screen" />

<Callout variant="info" title="Any EVM Compatible">
The NFT Drop contract is deployable on any EVM compatible network. [View all available networks.](https://thirdweb.com/chainlist)
</Callout>
If you are signed in with an EOA wallet, you will be prompted to sign the transaction. After that your contract is deployed and you can begin configuring the modules.
</Step>

</Steps>

### Modular Contract

This contract is created using the modular contract framework. Modules on this contract are upgradeable. [Learn more about Modular Contracts.](https://portal.thirdweb.com/contracts/modular-contracts/overview)

### Configure Modules

To configure the modules, navigate to the Modules view:

(Coming soon)

<Callout variant='info' title="Install Modules">
To install additional modules on this contract, navigate to the Modules view after deploying your contract.
</Callout>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 3253a53

Please sign in to comment.