Skip to main content



thirdweb Contracts

npm versionBuild StatusJoin our Discord!

Collection of smart contracts deployable via the thirdweb SDK, dashboard and CLI


Installation

npm i @thirdweb-dev/contracts

Running Tests

  1. yarn: install contracts dependencies
  2. forge install: install tests dependencies
  3. forge test: run the tests

This repository is a hybrid hardhat and forge project.

First install the relevant dependencies of the project:

yarn

forge install

To compile contracts, run:

forge build

Or, if you prefer hardhat, you can run:

npx hardhat compile

To run tests:

forge test

To export the ABIs of the contracts in the /contracts directory, run:

npx hardhat export-abi

To run any scripts in the /scripts directory, run:

npx hardhat run scripts/{path to the script}

Pre-built Contracts

Pre-built contracts are written by the thirdweb team, and cover the most common use cases for smart contracts.

Release pages for pre-built contracts:

Learn more about pre-built contracts

Extensions

Extensions are building blocks that help enrich 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. These contracts are available at contracts/base/.

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. These are available at contracts/extension/.

Learn more about extensions

Deployments

The thirdweb registry (TWRegistry) and factory (TWFactory) have been deployed on the following chains:

TWRegistry is deployed to a common address on all mentioned networks. TWFactory is deployed to a common address on all mentioned networks except Fantom mainnet.

Bug reports

Found a security issue with our smart contracts? Send bug reports to [email protected] and we'll continue communicating with you from there. We're actively developing a bug bounty program; bug report payouts happen on a case by case basis, for now.

Feedback

If you have any feedback, please reach out to us at [email protected].

Authors

License

Apache 2.0