Skip to main content

Contract Deployments

The contract deployer lets you deploy new contracts to the blockchain using just the thirdweb SDK. You can access the contract deployer interface as follows:

import (
"github.com/thirdweb-dev/go-sdk/v2/thirdweb"
)

privateKey := "..."
secretKey := "..."

sdk, err := thirdweb.NewThirdwebSDK("mumbai", &thirdweb.SDKOptions{
PrivateKey: privateKey,
SecretKey: secretKey
})

// Now you can deploy a contract
address, err := sdk.Deployer.DeployNFTCollection(
&thirdweb.DeployNFTCollectionMetadata{
Name: "Go NFT",
}
})
type ContractDeployer struct {
*ProviderHandler
}

func (*ContractDeployer) DeployEdition​

func (deployer *ContractDeployer) DeployEdition(ctx context.Context, metadata *DeployEditionMetadata) (string, error)

Deploy a new Edition contract.

metadata: the contract metadata

returns: the address of the deployed contract

Example​

address, err := sdk.Deployer.DeployEdition(
context.Background(),
&thirdweb.DeployEditionMetadata{
Name: "Go Edition",
}
})

func (*ContractDeployer) DeployEditionDrop​

func (deployer *ContractDeployer) DeployEditionDrop(ctx context.Context, metadata *DeployEditionDropMetadata) (string, error)

Deploy a new Edition Drop contract.

metadata: the contract metadata

returns: the address of the deployed contract

Example​

address, err := sdk.Deployer.DeployEditionDrop(
context.Background(),
&thirdweb.DeployEditionDropMetadata{
Name: "Go Edition Drop",
}
})

func (*ContractDeployer) DeployMarketplace​

func (deployer *ContractDeployer) DeployMarketplace(ctx context.Context, metadata *DeployMarketplaceMetadata) (string, error)

Deploy a new Marketplace contract.

metadata: the contract metadata

returns: the address of the deployed contract

Example​

address, err := sdk.Deployer.DeployMarketplace(
context.Background()
&thirdweb.DeployMarketplaceMetadata{
Name: "Go Marketplace",
}
})

func (*ContractDeployer) DeployMultiwrap​

func (deployer *ContractDeployer) DeployMultiwrap(ctx context.Context, metadata *DeployMultiwrapMetadata) (string, error)

Deploy a new Multiwrap contract.

metadata: the contract metadata

returns: the address of the deployed contract

Example​

address, err := sdk.Deployer.DeployMultiwrap(
context.Background()
&thirdweb.DeployMultiwrapMetadata{
Name: "Go Multiwrap",
}
})

func (*ContractDeployer) DeployNFTCollection​

func (deployer *ContractDeployer) DeployNFTCollection(ctx context.Context, metadata *DeployNFTCollectionMetadata) (string, error)

Deploy a new NFT Collection contract.

metadata: the contract metadata

returns: the address of the deployed contract

Example​

address, err := sdk.Deployer.DeployNFTCollection(
context.Background(),
&thirdweb.DeployNFTCollectionMetadata{
Name: "Go NFT",
}
})

func (*ContractDeployer) DeployNFTDrop​

func (deployer *ContractDeployer) DeployNFTDrop(ctx context.Context, metadata *DeployNFTDropMetadata) (string, error)

Deploy a new NFT Drop contract.

metadata: the contract metadata

returns: the address of the deployed contract

Example​

address, err := sdk.Deployer.DeployNFTDrop(
context.Background(),
&thirdweb.DeployNFTDropMetadata{
Name: "Go NFT Drop",
}
})

func (*ContractDeployer) DeployToken​

func (deployer *ContractDeployer) DeployToken(ctx context.Context, metadata *DeployTokenMetadata) (string, error)

Deploy a new Token contract.

metadata: the contract metadata

returns: the address of the deployed contract

Example​

address, err := sdk.Deployer.DeployToken(
context.Background(),
&thirdweb.DeployTokenMetadata{
Name: "Go Token",
}
})