Skip to main content

Sablier Lockup

Sablier's Lockup streams are used for the vesting and some of the airdrops functionality of the Sablier Interfaces.

Lockup-native functionality is powered by:

  • The @sablier/subgraphs/apps/lockup subgraph
  • The @sablier/subgraphs/apps/lockup-envio indexer
Sablier Subgraphs@sablier-labs/subgraphs

Naming convention

As per our endpoint naming convention, subgraph deployments of Sablier Lockup will follow the sablier-v2-* structure (e.g. sablier-v2 for Mainnet, sablier-v2-base for Base).

Tips and tricks

tip

To avoid writing the same entity definitions over and over again, check out Fragments.


fragment StreamFragment on Stream {
id
sender
recipient
contract {
id
address
}
}

query getStreams(...){
streams(...){
...StreamFragment
}
}

note

Since Sablier uses multiple immutable contract versions and deployments (e.g. lockup's variants), if you're going to perform onchain actions on queried streams (e.g. getting the streamedAmountOf) make sure you call those methods on the right contract. For subgraphs/indexers, we store the source contract under stream.contract.address.