Collection of smart contracts deployable via the thirdweb SDK, dashboard and CLI
npm i @thirdweb-dev/contracts
yarn
: install contracts dependenciesforge install
: install tests dependenciesforge 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 are written by the thirdweb team, and cover the most common use cases for smart contracts.
Release pages for pre-built contracts:
- DropERC20
- DropERC721
- DropERC1155
- SignatureDrop
- Marketplace
- Multiwrap
- TokenERC20
- TokenERC721
- TokenERC1155
- VoteERC20
- Split
Learn more about pre-built contracts
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/
.
The thirdweb registry (TWRegistry
) and factory (TWFactory
) have been deployed on the following chains:
- Ethereum mainnet
- Rinkeby
- Goerli
- Polygon mainnet
- Polygon Mumbai testnet
- Avalanche mainnet
- Avalanche Fuji testnet
- Fantom mainnet
- Fantom testnet
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.
-
TWRegistry
: 0x7c487845f98938Bb955B1D5AD069d9a30e4131fd -
TWFactory
: 0x5DBC7B840baa9daBcBe9D2492E45D7244B54A2A0 -
TWFactory
(Fantom mainnet): 0x97EA0Fcc552D5A8Fb5e9101316AAd0D62Ea0876B
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.
If you have any feedback, please reach out to us at [email protected].