Skip to main content


Build smart contracts with Solidity and unlock the features of the dashboard and SDK, with:

To get started, run the below command to create a new project with your preferences set up:

npx thirdweb create --contract

Or install the contracts package into your existing Solidity project:

npm install @thirdweb-dev/contracts

Why Use Extensions?

Each feature you implement in your smart contracts unlocks functionality in both the dashboard and SDK to help you build applications on top of them.

For example, if you implement the ERC721Base contract, you'll unlock the mint button in the dashboard and can use the mint function in the SDK; which automatically uploads and pins your metadata to IPFS!

How It Works

You can think of extensions as building blocks that help you enrich your smart contracts with features.

Some blocks come packaged together as Base Contracts, which come with a full set of features out of the box that you can modify and extend. Other (smaller) blocks are Features, which provide a way for you to pick and choose which individual pieces you want to put into your contract; with full customization of how those features work.

With both base contracts and features, you can add and customize functionality by creating a contract that inherits the logic of the contract(s) you want to use and add any of your custom logic.