Contract Deployer
deploy_nft_collection
Deploy an nft collection prebuilt contract.
from thirdweb.types.settings.metadata import NFTCollectionContractMetadata
metadata = NFTCollectionContractMetadata(
    name="Python NFT Collection",
    primary_sale_recipient="0x...",
    seller_fee_basis_points=500, # 5% royalty fee
    fee_recipient="0x...",
    platform_fee_basis_points=10, # 0.1% platform fee
    platform_fee_recipient="0x...",
)
sdk.deployer.deploy_nft_collection(metadata)
Configuration
metadata
The contract metadata. Must be an NFTCollectionContractMetadata object:
class NFTCollectionContractMetadata(
    ContractMetadataSchema,
    ContractRoyaltySchema,
    ContractSymbolSchema,
    ContractPlatformFeeSchema,
    ContractPrimarySaleSchema,
    ContractTrustedForwarderSchema
):
class ContractMetadataSchema:
    name: str = ""
    description: Optional[str] = None
    image: Optional[Union[str, TextIO, BinaryIO]] = None
    external_link: Optional[str] = None
class ContractRoyaltySchema:
    seller_fee_basis_points: int = 0
    fee_recipient: str = ZERO_ADDRESS
class ContractPrimarySaleSchema:
    primary_sale_recipient: str = ZERO_ADDRESS
class ContractPlatformFeeSchema:
    platform_fee_basis_points: int = 0
    platform_fee_recipient: str = ZERO_ADDRESS
class ContractSymbolSchema:
    symbol: str = ""
class ContractTrustedForwarderSchema:
    trusted_forwarders: List[str] = dataclasses.field(default_factory=list)
deploy_edition
Deploy an Edition contract
from thirdweb.types.settings.metadata import EditionContractMetadata
metadata = EditionContractMetadata(
    name="My contract",
    # ...
)
sdk.deployer.deploy_edition(metadata)
Configuration
metadata
The contract metadata. Must be an EditionContractMetadata object:
class EditionContractMetadata(
    ContractMetadataSchema,
    ContractRoyaltySchema,
    ContractSymbolSchema,
    ContractPlatformFeeSchema,
    ContractPrimarySaleSchema,
    ContractTrustedForwarderSchema
):
class ContractMetadataSchema:
    name: str = ""
    description: Optional[str] = None
    image: Optional[Union[str, TextIO, BinaryIO]] = None
    external_link: Optional[str] = None
class ContractRoyaltySchema:
    seller_fee_basis_points: int = 0
    fee_recipient: str = ZERO_ADDRESS
class ContractPrimarySaleSchema:
    primary_sale_recipient: str = ZERO_ADDRESS
class ContractPlatformFeeSchema:
    platform_fee_basis_points: int = 0
    platform_fee_recipient: str = ZERO_ADDRESS
class ContractSymbolSchema:
    symbol: str = ""
class ContractTrustedForwarderSchema:
    trusted_forwarders: List[str] = dataclasses.field(default_factory=list)
deploy_token
Deploy a Token contract
from thirdweb.types.settings.metadata import TokenContractMetadata
metadata = TokenContractMetadata(
    name="my contract"
    # ...
)
sdk.deployer.deploy_token(metadata)
Configuration
metadata
The contract metadata. Must be a TokenContractMetadata object:
class TokenContractMetadata(
    ContractMetadataSchema,
    ContractSymbolSchema,
    ContractPrimarySaleSchema,
    ContractTrustedForwarderSchema,
    ContractPlatformFeeSchema,
):
class ContractMetadataSchema:
    name: str = ""
    description: Optional[str] = None
    image: Optional[Union[str, TextIO, BinaryIO]] = None
    external_link: Optional[str] = None
class ContractPrimarySaleSchema:
    primary_sale_recipient: str = ZERO_ADDRESS
class ContractPlatformFeeSchema:
    platform_fee_basis_points: int = 0
    platform_fee_recipient: str = ZERO_ADDRESS
class ContractSymbolSchema:
    symbol: str = ""
class ContractTrustedForwarderSchema:
    trusted_forwarders: List[str] = dataclasses.field(default_factory=list)
deploy_marketplace
Deploy a Marketplace contract
from thirdweb.types.settings.metadata import MarketplaceContractMetadata
metadata = MarketplaceContractMetadata(
    name="my contract"
    # ...
)
sdk.deployer.deploy_marketplace(metadata)
Configuration
metadata
The contract metadata. Must be a MarketplaceContractMetadata object:
class MarketplaceContractMetadata(
    ContractMetadataSchema,
    ContractPlatformFeeSchema,
    ContractTrustedForwarderSchema
):
class ContractMetadataSchema:
    name: str = ""
    description: Optional[str] = None
    image: Optional[Union[str, TextIO, BinaryIO]] = None
    external_link: Optional[str] = None
class ContractPlatformFeeSchema:
    platform_fee_basis_points: int = 0
    platform_fee_recipient: str = ZERO_ADDRESS
class ContractTrustedForwarderSchema:
    trusted_forwarders: List[str] = dataclasses.field(default_factory=list)
deploy_nft_drop
Deploy an NFT Drop contract
from thirdweb.types.settings.metadata import NFTDropContractMetadata
metadata = NFTDropContractMetadata(
    name="my contract",
    primary_sale_recipient="0x...",
    seller_fee_basis_points=500, # 5% royalty fee
    fee_recipient="0x...",
    platform_fee_basis_points=10, # 0.1% platform fee
    platform_fee_recipient="0x...",
)
sdk.deployer.deploy_nft_drop(metadata)
Configuration
metadata
The contract metadata. Must be an NFTDropContractMetadata object:
class NFTDropContractMetadata(
    ContractMetadataSchema,
    ContractRoyaltySchema,
    ContractSymbolSchema,
    ContractPlatformFeeSchema,
    ContractPrimarySaleSchema,
    ContractTrustedForwarderSchema,
    MerkleSchema,
):
class ContractMetadataSchema:
    name: str = ""
    description: Optional[str] = None
    image: Optional[Union[str, TextIO, BinaryIO]] = None
    external_link: Optional[str] = None
class ContractRoyaltySchema:
    seller_fee_basis_points: int = 0
    fee_recipient: str = ZERO_ADDRESS
class ContractPrimarySaleSchema:
    primary_sale_recipient: str = ZERO_ADDRESS
class ContractPlatformFeeSchema:
    platform_fee_basis_points: int = 0
    platform_fee_recipient: str = ZERO_ADDRESS
class ContractSymbolSchema:
    symbol: str = ""
class ContractTrustedForwarderSchema:
    trusted_forwarders: List[str] = dataclasses.field(default_factory=list)
class MerkleSchema:
    merkle: Dict[str, str] = dataclasses.field(default_factory=lambda: {})
deploy_edition_drop
Deploy an Edition Drop contract
from thirdweb.types.settings.metadata import EditionDropContractMetadata
metadata = EditionDropContractMetadata(
    name="my contract"
    primary_sale_recipient="0x...",
    seller_fee_basis_points=500, # 5% royalty fee
    fee_recipient="0x...",
    platform_fee_basis_points=10, # 0.1% platform fee
    platform_fee_recipient="0x...",
)
sdk.deployer.deploy_edition_drop(metadata)
Configuration
metadata
The contract metadata. Must be an EditionDropContractMetadata object:
class EditionDropContractMetadata(
    ContractMetadataSchema,
    ContractRoyaltySchema,
    ContractSymbolSchema,
    ContractPlatformFeeSchema,
    ContractPrimarySaleSchema,
    ContractTrustedForwarderSchema,
    MerkleSchema,
):
class ContractMetadataSchema:
    name: str = ""
    description: Optional[str] = None
    image: Optional[Union[str, TextIO, BinaryIO]] = None
    external_link: Optional[str] = None
class ContractRoyaltySchema:
    seller_fee_basis_points: int = 0
    fee_recipient: str = ZERO_ADDRESS
class ContractPrimarySaleSchema:
    primary_sale_recipient: str = ZERO_ADDRESS
class ContractPlatformFeeSchema:
    platform_fee_basis_points: int = 0
    platform_fee_recipient: str = ZERO_ADDRESS
class ContractSymbolSchema:
    symbol: str = ""
class ContractTrustedForwarderSchema:
    trusted_forwarders: List[str] = dataclasses.field(default_factory=list)
class MerkleSchema:
    merkle: Dict[str, str] = dataclasses.field(default_factory=lambda: {})
deploy_multiwrap
Deploy a Multiwrap contract
from thirdweb.types.settings.metadata import MultiwrapContractMetadata
metadata = MultiwrapContractMetadata(
    name="my contract"
    # ...
)
sdk.deployer.deploy_multiwrap(metadata)
Configuration
metadata
The contract metadata. Must be a MultiwrapContractMetadata object:
class MultiwrapContractMetadata(
    ContractMetadataSchema,
    ContractRoyaltySchema,
    ContractSymbolSchema,
    ContractTrustedForwarderSchema
):
class ContractMetadataSchema:
    name: str = ""
    description: Optional[str] = None
    image: Optional[Union[str, TextIO, BinaryIO]] = None
    external_link: Optional[str] = None
class ContractRoyaltySchema:
    seller_fee_basis_points: int = 0
    fee_recipient: str = ZERO_ADDRESS
class ContractSymbolSchema:
    symbol: str = ""
class ContractTrustedForwarderSchema:
    trusted_forwarders: List[str] = dataclasses.field(default_factory=list)