Welcome to the Fireblocks Smart Contracts repository. This repository is built using Hardhat and contains the smart contracts that power the Fireblocks Tokenization product. These contracts are designed to streamline token creation, management, and utility, integrating seamlessly with the Fireblocks workspace.
The Fireblocks Smart Contracts repository includes upgradeable templates for issuing and managing fungible, non-fungible, and semi-fungible tokens. These contracts are designed for:
- Tokenizing assets
- Managing access controls
- Reducing gas costs
- Ensuring compatibility with Fireblocks workflows
Each contract uses the UUPS proxy pattern for upgrades, maintaining state and functionality while enabling improvements over time.
An upgradeable ERC-20 token template for:
- Serving as a unit of account
- Issuing stablecoins or CBDCs
- Supporting tokenized fundraising
- Recovering funds from blacklisted accounts
An upgradeable ERC-721 token template for:
- Creating unique NFTs (e.g., collectibles, artwork, in-game items)
- Tracking token ownership and metadata
- Reflecting rarity, age, or other attributes
An upgradeable ERC-1155 token template for:
- Representing semi-fungible tokens (SFTs)
- Bundling multiple token types in one contract
- Reducing deployment costs
A utility contract for managing access control via an allowlist of approved addresses. Supports:
- Integration with Fireblocks ERC-20F, ERC-721F, and ERC-1155F contracts
- Shared usage across multiple token contracts
- Upgradeability via the UUPS proxy pattern
A utility contract for managing access control via a denylist of restricted addresses. Supports:
- Integration with Fireblocks ERC-20F, ERC-721F, and ERC-1155F contracts
- Shared usage across multiple token contracts
- Upgradeability via the UUPS proxy pattern
Provides upgradeable functionality for all smart contracts using the UUPS proxy pattern, ensuring flexibility and forward compatibility.
Enables seamless meta-transactions, supporting off-chain signing and gasless interactions with Fireblocks token contracts.
This repository also includes gasless versions via the following contracts:
These variants use the ERC2771 standard and allow users to perform transactions without requiring them to pay gas fees, enhancing usability and accessibility.
Additionally, this repository provides contracts for upgrading from the standard contracts to the gasless variants (If you have already deployed the standard contracts):
- Install Node.js.
Clone the repository and install dependencies:
git clone https://github.com/fireblocks/fireblocks-smart-contracts.git
cd fireblocks-smart-contracts
npm install
npx hardhat compile
Verify, dont trust. Always make sure your deployed bytecode matches the bytecode in the artifacts directory