Skip to main content

thirdweb Solidity SDK

Provides the tools needed to build custom smart contracts efficiently by offering a set of prebuilt base contracts and a set of reusable components, or extensions, that can be integrated into your own smart contracts.

Open Source Library

The contracts library is open-source. You can view the source code and contribute to it on GitHub.

Base Contracts

Base contracts are prebuilt smart contracts that you can build on top of or modify, such as the ERC721Base contract. These contracts work out of the box and do not require any functions to be implemented. They are built using extensions and thus unlock intelligent features in the SDKs and custom sections on the Dashboard to easily interact with your smart contract.


Extensions are Solidity interfaces that are recognizable by the Dashboard and unlock functionality in the SDKs. Common EIPs are also recognizable as extensions as our interfaces conform to industry standards. They are composable pieces of logic that can be added to smart contracts easily via inheritance.

These extensions require varying levels of logic implementation* in the inheriting smart contract. The three different types of extensions in this SDK are:

  • Extension contracts: These extensions are fully complete and do not require any logic to be implemented. By inheriting from these contracts, you add the functionality and therefore the logic to your inheriting smart contract.
  • Abstract contracts: These extensions require some of the logic to be implemented. Some of the functions on the extension depend on the use case and therefore require custom logic that is specific to your inheriting smart contract.
  • Interfaces: These extensions do not have an implementation. They provide the guidelines to write your own logic by giving you the functions, parameters and return types. This allows you to ensure that your contract conforms to this particular extension so that you can unlock features in the SDKs and Dashboard.

*implement = write the logic for the function with a matching function signature (matching name, parameters, visibility and return type)


Why use the Solidity SDK?

  • Effortlessly integrate common smart contract features, including popular EIPs such as ERC20, ERC721, ERC1155, permissions, contract metadata, and more.
  • Simplify the development workflow, allowing you to focus on more intricate systems.
  • Using the base contracts gives you a gas-optimized and audited foundation to build your projects.
  • Each extension you inherit unlocks smarter SDKs, custom admin Dashboards and tailored data feeds.

For example, if you deploy the ERC721Base contract which inherits from multiple extensions including ERC721Mintable, 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!