Skip to main content

Contract Deployment

How to deploy a new contract using ethers.js

Install ethers.js to interact with Ethereum

With our Finnie wallet properly set and initialized, it's time to create our collectiblesContract – an exemplary contract that can be used to mint NFTs. In the following example, we will use ethers.js library to interact with the Ethereum blockchain. You can install it by running:

npm install --save ethers

Check their documentation for more details.

// First, lets import the ethers.js
import { ethers } from "ethers";

// Sets previously injected ethereum object as provider
// Additionaly, we must specify the network as 'any' for ethers to allow network changes
const ethersProvider = new ethers.providers.Web3Provider(
window.ethereum,
"any"
);
// creates contract factory
const collectiblesFactory = new ethers.ContractFactory(
collectiblesAbi,
collectiblesBytecode,
ethersProvider.getSigner() // gets the signer
);

const deploy = async () => {
try {
// deploy the contract
const contract = await collectiblesFactory.deploy();
// wait until the deployment transaction is finished
await contract.deployTransaction.wait();

return contract;
} catch (error) {
console.error(error);
}
};

Now, we can use our newly created to mint our first NFT in the Mint NFT section.