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
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
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
}
}
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
.