How to add a contract to the thirdweb dashboard via code
In this guide, we will learn how to programmatically add a contract to your thidweb dashboard using the TypeScript SDK (v5).
Note: You will require matic on polygon mainnet network to add your contract to the registry
If you don’t have a `secretKey` you can follow this guide to create one
import { config } from "dotenv";
import {
createThirdwebClient,
getContract,
prepareContractCall,
resolveMethod,
sendAndConfirmTransaction,
} from "thirdweb";
import { contractURI } from "thirdweb/extensions/common";
import { defineChain } from "thirdweb/chains";
import { privateKeyToAccount } from "thirdweb/wallets";
config();
const chainId = ; // chain Id for the contract you want to add
const walletAddress = ""; // wallet address for which you would like to add this to thirdweb dashboard
const address = ""; // contract address to add to the dashboard
const main = async () => {
if (!process.env.WALLET_PRIVATE_KEY) {
throw new Error("No private key found");
}
if (!process.env.THIRDWEB_SECRET_KEY) {
throw new Error("No THIRDWEB_SECRET_KEY found");
}
try {
const client = createThirdwebClient({
secretKey: process.env.THIRDWEB_SECRET_KEY,
});
const account = privateKeyToAccount({
client,
privateKey: process.env.WALLET_PRIVATE_KEY,
}); // private key account
async function addContractToThirdwebDashboard(
thirdwebClient: any, // Update the type to 'any' for now
contractAddressToAdd: string,
walletAddresstoAdd: string, // Contract will show up to this wallet's dashboard
contractChainId: number,
account: any, // Update the type to 'any' for now
) {
const thirdwebMultichainRegistry = getContract({
client: thirdwebClient, // Update the type to 'any'
chain: defineChain(137),
address: "0xcdAD8FA86e18538aC207872E8ff3536501431B73",
});
const contractToAdd = getContract({
client: thirdwebClient, // Update the type to 'any'
chain: defineChain(contractChainId),
address: contractAddressToAdd,
});
const metadataURI = await contractURI({
contract: contractToAdd,
});
const transaction = prepareContractCall({
contract: thirdwebMultichainRegistry,
method: resolveMethod("add"),
params: [
walletAddresstoAdd,
contractAddressToAdd,
contractChainId,
metadataURI !== undefined ? metadataURI : "",
],
});
const receipt = await sendAndConfirmTransaction({
account,
transaction,
});
return receipt;
}
// Call the function and pass the 'client' and 'account' variables
await addContractToThirdwebDashboard(client, address, walletAddress, chainId, account);
} catch (err) {
console.error("Something went wrong: ", err);
}
};
main();
Simply replace the specified values in the code above, add your .env
details and execute it to add the contract to your dashboard!
const chainId = ; // chain Id for the contract you want to add
const walletAddress = ""; // wallet address for which you would like to add this to thirdweb dashboard
const address = ""; // contract address to add to the dashboard
.env
file details
THIRDWEB_SECRET_KEY=XXX
WALLET_PRIVATE_KEY=XXX
That's all there is to it. It's that simple to add a contract to the dashboard using the thirdweb V5 SDK.
Can’t get this working? If you’ve followed the above and still have issues, contact our support team for help.
Did this answer your question?
😞
😐
🤩