Overview
The Sablier Protocol is a smart contract system comprised of many abstract contracts, libraries, and types. The design of the smart contracts draws some inspiration from the architectural principles of Uniswap.
This section provides a detailed overview of the Sablier smart contracts, their designs, control flows, and contract references.
Lockup
The Lockup repo consists of the Sablier Lockup contract, public libraries, Batch Lockup contract and an NFT descriptor.
BatchLockup
Creates multiple streams in a single transaction.
Libraries
Library to validate input parameters across lockup streams.
Library to calculate vested amount across lockup streams.
NFTDescriptor
Generates the URI describing the Sablier Lockup stream NFTs.
SablierLockup
Creates and manages Lockup streams with three different streaming functions.
Merkle Airdrops
The Merkle Airdrops repo is a collection of contracts to create various kinds of airdrop campaigns. Some of these campaigns make use of the Lockup protocol to create what we call Airstreams. This repo consists of airdrops related contracts such as MerkleFactory, MerkleInstant, MerkleLL, and MerkleLT.
MerkleFactory
Factory contract to deploy Merkle airdrop campaigns.
MerkleInstant
Enables airdrop distributions where the tokens are claimed directly to the users' wallets.
MerkleLL
Enables airdrops with a vesting period powered by the Lockup Linear distribution model.
MerkleLT
Enables airdrops with a vesting period powered by the Lockup Tranched distribution model.
Flow
The Flow repo consists of the Sablier Flow contract, and an NFT descriptor.
NFTDescriptor
Generates the URI describing the Sablier Flow stream NFTs which, currently, is the Sablier logo.
SablierFlow
Creates and manages payment streams.