Skip to main content

URL Schemes

The Sablier Interface makes it easy for integrators to direct their users to specific resources. In this guide, we will cover a number of resource locators used by the apps, as well as dive into how you can understand and re-create them.

Stream Page

Stream profile

Elements

Every stream created through the Sablier Protocol is identified through three parameters:

Contract Aliases

Sablier V2 supports multiple versions and variants of streaming contracts, e.g. SablierV2LockupLinear and SablierV2LockupDynamic. To provide a visual resolver, while also accounting for future stream types (backwards compatibility), we alias the contract addresses with the following abbreviations:

  • Lockup Linear V2.0 contracts become LL, e.g. LL-137-1
  • Lockup Linear V2.1 contracts become LL2, e.g. LL2-137-1
  • Lockup Dynamic V2.0 contracts become LD, e.g. LD-137-1
  • Lockup Dynamic V2.1 contracts become LD2, e.g. LD2-137-1

Building the URL

By combining the elements described above, you can send users from your interface directly to the create stream page in the Sablier Interface. To build the link to a stream resource, you use a hyphen - to concatenate the uppercase contract alias, the chainId, and the streamId, and then you add them to the base URL app.sablier.com/stream/:

URLDescription
app.sablier.com/stream/LL2-137-29Lockup Linear V2.1 stream #29 on Polygon
app.sablier.com/stream/LL-137-32Lockup Linear V2.0 stream #32 on Polygon
app.sablier.com/stream/LD-137-13Lockup Dynamic V2.0 stream #13 on Polygon
app.sablier.com/stream/LL-1-6Lockup Linear V2.0 stream #6 on Ethereum
app.sablier.com/stream/0xB10...f95-1-6Lockup Linear V2.0 stream #6 on Ethereum
app.sablier.com/stream/LL2-11155111-40Lockup Linear V2.1 stream #40 on Sepolia

As you can see, the main format is contractA-chainId-streamId. This is supported both at the app and the subgraph level. For situations when an alias cannot be used, we fallback to the following format: contractAddress-chainId-streamId. Read more about identifiers and aliases in our subgraph documentation.


Create Stream Autofill

Autofilled form

Elements

Using URL query parameters, integrators can suggest a set of values for the fields of the Create Single Stream form. Here's a list of all supported values (to be appended to the create form link):

ParameterDescriptionExample
shapeString - type of streamlinear, cliff, dynamicExponential, dynamicExponentialCliff, dynamicStepper, dynamicTimelock, dynamicUnlockLinear, dynamicUnlockCliff
chainIdNumber - defaults to the connected chain1, 10, 42161 or any other support chain.
tokenString - address of the asset0x6b17...1d0f (DAI on Ethereum) or any other ERC20 token address
cancelableBoolean - if a stream is cancelable or not, defaults to truetrue, false
transferableBoolean - if a stream is transferable or not, defaults to truetrue, false
recipientString - recipient's address or the ENS0x12...AB, vitalik.eth
isDurationBoolean - if the time is set to a duration or a range, defaults to truetrue (expecting duration), false (expecting range - start / end date)
durationNumber - stream duration in seconds, read only if isDuration is true86400 (1 day), 3600 (1 hour)
startNumber - start date in Unix timestamp, read only if isDuration is false1692009403
endNumber - end date in Unix timestamp, read only if isDuration is false1702000403
cliffNumber - cliff duration or the cliff end date in seconds (depending on the isDuration flag, for the cliff-related shapes( cliff, dynamicExponentialCliff))43200 (12 hours)
stepsNumber - number of steps for the dynamicStepper shape.2, 3, 4 etc.
monthsNumber - number of months for the dynamicMonthly shape.2, 3, 4 etc.
unlocksNumber - unlock sum for the dynamicUnlockLinear, dynamicUnlockCliff shapes.200, 300, 400 etc.
info

Make sure the token is available on the selected chain. To make it appear in the default list, you can submit a request to add it to our Community Token List.

Building the URL

By combining the parameters described above, you can send users from your interface directly to the stream creation page in the Sablier Interface. To build the link to a stream resource, you append all these elements to the base link app.sablier.com/create/single as query parameters (?key1=value1&key2=value2).

Here are some examples:

URLDescription
app.sablier.com/create/single/?shape=linear&chainId=1&duration=86400A partially configured stream (chain, duration)
app.sablier.com/create/single/?shape=linear&chainId=1&duration=86400&token=0x...A partially configured stream (chain, duration, token = DAI)
app.sablier.com/create/single/?shape=cliff&...&isDuration=falseA fully configured stream

If everything is set up correctly, a modal will show up with a summary:

ModalForm after "Fill in"
ModalForm

If some parameters are not configured properly, the modal will give some indications to the user:

AutofillWrongTokenAutofillWrongAmount

Search Streams

Elements

The Sablier Interface comes with an advanced search view that can be accessed directly through URL parameters. If you want to use this feature, here is a table with all the available parameters:

ParameterTypeDescriptionValues
tStringThe active tab in the dashboard. For global queries, use search.search, sender, or recipient
cNumberThe chain of the streams in the search result. This parameter is required.1, 10, 42161 or other supported chain
sStringThe address of the stream sender by which to filter0x12...AB, vitalik.eth
rStringThe address of the stream recipient by which to filter0x12...AB, vitalik.eth
aStringThe address of the asset to filter for0x12...CD for DAI
iString arrayAn array of IDs to look upLL-5-1, LD-5-14 etc.

Building the URL

By combining the parameters described above, you can send users from your interface directly to the search view in the Sablier Interface. To build the link, you append all these elements to the base link app.sablier.com/ as query parameters, e.g. ?t=search&c=1&s=0x..1&r=0x...2&i=LL-1-2,LL2-1-29.

Here are some examples of URLs and the associated search modal for each:

Streams created by a particular userForm
Streams with particular IDsForm

Airstream Page

Airstream profile

Elements

Every airstream created through the Sablier Protocol is identified through three parameters:

info

We've chosen not to apply aliases to Airstreams for now. In the future, we may ask the campaign creator to provide a name or an alias to be used in the URL.

Building the URL

By combining the elements described above, you can send users from your interface directly to the create stream page in the Sablier Interface. To build the link to a stream resource, you use a hyphen - to concatenate the uppercase contract alias, the chainId, and the streamId, and then you add them to the base URL app.sablier.com/stream/:

URLDescription
app.sablier.com/stream/0xe72[...]bbabc-11155111Airstream on Sepolia

As you can see, the main format is contractA-chainId. This is supported both at the app and the subgraph level. Read more about identifiers and aliases in our subgraph documentation.

Search Airstreams

Elements

The Sablier Interface comes with an advanced search view that can be accessed directly through URL parameters. If you want to use this feature, here is a table with all the available parameters:

ParameterTypeDescriptionValues
tStringThe active tab in the dashboard. For global queries, use search.search
cNumberThe chain of the airstreams in the search result. This parameter is required.1, 10, 42161 or other supported chain
mStringThe address of the campaign admin by which to filter0x12...AB, vitalik.eth
aStringThe address of the asset to filter for0x12...CD for DAI

Building the URL

By combining the parameters described above, you can send users from your interface directly to the search view in the Sablier Interface. To build the link, you append all these elements to the base link app.sablier.com/airstreams as query parameters, e.g. ?t=search&c=1&m=0x..1&a=0x.