Skip to content

fireblocks/fireblocks-smart-contracts

Repository files navigation

Fireblocks Smart Contracts

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.


Table of Contents


Overview

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.


Smart Contracts

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.


Gasless Variants

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.


Gasless Upgrades

Additionally, this repository provides contracts for upgrading from the standard contracts to the gasless variants (If you have already deployed the standard contracts):


Getting Started

Prerequisites

  1. Install Node.js.

Setup

Clone the repository and install dependencies:

git clone https://github.com/fireblocks/fireblocks-smart-contracts.git
cd fireblocks-smart-contracts
npm install

Compile

npx hardhat compile

Verify

Verify, dont trust. Always make sure your deployed bytecode matches the bytecode in the artifacts directory

Audits

Security

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published