# Sablier Lockup Documentation > Sablier Lockup is useful for token vesting and airdrops. This file contains all documentation content in a single document following the llmstxt.org standard. ## Indexers # Sablier Lockup This page documents the indexers for the [Sablier Lockup](/concepts/lockup/overview) protocol, which powers the [Vesting](/apps/features/vesting) product and some of the [Airdrop](/apps/features/airdrops) product features in the Sablier Interface. ## Envio ### Source Code ### Endpoints Envio is a multi-chain indexer. There's a single GraphQL API endpoint that aggregates data across chains. This approach differs from other vendors like The Graph, which require a separate indexer for each chain where Sablier is available. | Chain | Production URL | Playground URL | Explorer URL | | -------- | -------------- | ----------- | ------------ | | Abstract | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Arbitrum | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Avalanche | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Base | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Blast | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Berachain | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | BNB Chain | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Chiliz | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Form | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Gnosis | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | HyperEVM | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Lightlink | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Linea Mainnet | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Ethereum | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Mode | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Morph | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | OP Mainnet | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Polygon | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Sonic | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Scroll | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Sophon | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Superseed | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Tangle | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Unichain | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | XDC | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | ZKsync Era | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Base Sepolia | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | | Sepolia | https://indexer.hyperindex.xyz/53b7e25/v1/graphql | [Playground](https://cloud.hasura.io/public/graphiql?endpoint=https%3A%2F%2Findexer.hyperindex.xyz%2F53b7e25%2Fv1%2Fgraphql) | [Explorer](https://envio.dev/app/sablier-labs/lockup-envio) | ## The Graph ### Source Code ### Endpoints In the table below, you will see three URLs: - `Production URL`: requires a Studio API key for making queries. - `Testing URL`: doesn't require an API key but it's rate-limited to 3000 queries per day. Opening this URL in the browser opens a GraphiQL playground. - `Explorer URL`: The explorer URL for the indexer, if available. To learn how to create a Studio API key, check out [this guide](https://thegraph.com/docs/en/studio/managing-api-keys). The API key has to be provided via an `Authorization: Bearer ` header. Here are two examples in curl and JavaScript: ```bash curl -X POST \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{"query": "{ _meta: { block { number } } }"' \ ``` ```js async function getBlockNumber() { const client = new GraphQLClient("", { headers: { Authorization: `Bearer `, }, }); const query = `query { _meta: { block { number } } }`; const result = await client.request(query); console.log(result); } ``` | Chain | Production URL | Testing URL | Explorer URL | | -------- | -------------- | ----------- | ------------ | | Abstract | [sablier-lockup-abstract](https://gateway.thegraph.com/api/subgraphs/id/2QjTdDFY233faXksUruMERMiDoQDdtGG5hBLC27aT1Pw) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-abstract/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/2QjTdDFY233faXksUruMERMiDoQDdtGG5hBLC27aT1Pw) | | Arbitrum | [sablier-lockup-arbitrum](https://gateway.thegraph.com/api/subgraphs/id/yvDXXHSyv6rGPSzfpbBcbQmMFrECac3Q2zADkYsMxam) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-arbitrum/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/yvDXXHSyv6rGPSzfpbBcbQmMFrECac3Q2zADkYsMxam) | | Arbitrum Sepolia | [sablier-lockup-arbitrum-sepolia](https://gateway.thegraph.com/api/subgraphs/id/ApEFvaPGARHedGmFp6TRQu7DoDHQKwt1LPWi1ka6DFHT) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-arbitrum-sepolia/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/ApEFvaPGARHedGmFp6TRQu7DoDHQKwt1LPWi1ka6DFHT) | | Avalanche | [sablier-lockup-avalanche](https://gateway.thegraph.com/api/subgraphs/id/FTDmonvFEm1VGkzECcnDY2CPHcW5dSmHRurSjEEfTkCX) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-avalanche/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/FTDmonvFEm1VGkzECcnDY2CPHcW5dSmHRurSjEEfTkCX) | | Base | [sablier-lockup-base](https://gateway.thegraph.com/api/subgraphs/id/778GfecD9tsyB4xNnz4wfuAyfHU6rqGr79VCPZKu3t2F) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-base/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/778GfecD9tsyB4xNnz4wfuAyfHU6rqGr79VCPZKu3t2F) | | Base Sepolia | [sablier-lockup-base-sepolia](https://gateway.thegraph.com/api/subgraphs/id/DdiYENuyh5ztSybRJnBnCZuUgESkFasjGFHZUbURpKHz) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-base-sepolia/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/DdiYENuyh5ztSybRJnBnCZuUgESkFasjGFHZUbURpKHz) | | Berachain | [sablier-lockup-berachain](https://gateway.thegraph.com/api/subgraphs/id/C2r13APcUemQtVdPFm7p7T3aJkU2rH2EvdZzrQ53zi14) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-berachain/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/C2r13APcUemQtVdPFm7p7T3aJkU2rH2EvdZzrQ53zi14) | | Blast | [sablier-lockup-blast](https://gateway.thegraph.com/api/subgraphs/id/8MBBc6ET4izgJRrybgWzPjokhZKSjk43BNY1q3xcb8Es) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-blast/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/8MBBc6ET4izgJRrybgWzPjokhZKSjk43BNY1q3xcb8Es) | | BNB Chain | [sablier-lockup-bsc](https://gateway.thegraph.com/api/subgraphs/id/A8Vc9hi7j45u7P8Uw5dg4uqYJgPo4x1rB4oZtTVaiccK) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-bsc/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/A8Vc9hi7j45u7P8Uw5dg4uqYJgPo4x1rB4oZtTVaiccK) | | Chiliz | [sablier-lockup-chiliz](https://gateway.thegraph.com/api/subgraphs/id/4KsXUFvsKFHH7Q8k3BPgEv2NhCJJGwG78gCPAUpncYb) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-chiliz/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/4KsXUFvsKFHH7Q8k3BPgEv2NhCJJGwG78gCPAUpncYb) | | Ethereum | [sablier-lockup-ethereum](https://gateway.thegraph.com/api/subgraphs/id/AvDAMYYHGaEwn9F9585uqq6MM5CfvRtYcb7KjK7LKPCt) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-ethereum/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/AvDAMYYHGaEwn9F9585uqq6MM5CfvRtYcb7KjK7LKPCt) | | Form | [sablier-lockup-form](https://formapi.0xgraph.xyz/api/public/5961fb30-8fdc-45ad-9a35-555dd5e0dd56/subgraphs/sablier-lockup-form/2.3_1.0.0/gn) | N/A | N/A | | Gnosis | [sablier-lockup-gnosis](https://gateway.thegraph.com/api/subgraphs/id/DtKniy1RvB19q1r2g1WLN4reMNKDacEnuAjh284rW2iK) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-gnosis/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/DtKniy1RvB19q1r2g1WLN4reMNKDacEnuAjh284rW2iK) | | IoTeX | [sablier-lockup-iotex](https://gateway.thegraph.com/api/subgraphs/id/2P3sxwmcWBjMUv1C79Jh4h6VopBaBZeTocYWDUQqwWFV) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-iotex/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/2P3sxwmcWBjMUv1C79Jh4h6VopBaBZeTocYWDUQqwWFV) | | Lightlink | [sablier-lockup-lightlink](https://graph.phoenix.lightlink.io/query/subgraphs/name/lightlink/sablier-lockup-lightlink) | N/A | N/A | | Linea Mainnet | [sablier-lockup-linea](https://gateway.thegraph.com/api/subgraphs/id/GvpecytqVzLzuwuQB3enozXoaZRFoVx8Kr7qrfMiE9bs) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-linea/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/GvpecytqVzLzuwuQB3enozXoaZRFoVx8Kr7qrfMiE9bs) | | Mode | [sablier-lockup-mode](https://gateway.thegraph.com/api/subgraphs/id/oSBvUM371as1pJh8HQ72NMRMb3foV3wuheULfkNf5vy) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-mode/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/oSBvUM371as1pJh8HQ72NMRMb3foV3wuheULfkNf5vy) | | OP Mainnet | [sablier-lockup-optimism](https://gateway.thegraph.com/api/subgraphs/id/NZHzd2JNFKhHP5EWUiDxa5TaxGCFbSD4g6YnYr8JGi6) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-optimism/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/NZHzd2JNFKhHP5EWUiDxa5TaxGCFbSD4g6YnYr8JGi6) | | OP Sepolia | [sablier-lockup-optimism-sepolia](https://gateway.thegraph.com/api/subgraphs/id/2LFYyhMVMUMYA2q7XMMnBvCs6v6awWxBeMuMk3tMtmiT) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-optimism-sepolia/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/2LFYyhMVMUMYA2q7XMMnBvCs6v6awWxBeMuMk3tMtmiT) | | Polygon | [sablier-lockup-polygon](https://gateway.thegraph.com/api/subgraphs/id/8fgeQMEQ8sskVeWE5nvtsVL2VpezDrAkx2d1VeiHiheu) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-polygon/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/8fgeQMEQ8sskVeWE5nvtsVL2VpezDrAkx2d1VeiHiheu) | | Scroll | [sablier-lockup-scroll](https://gateway.thegraph.com/api/subgraphs/id/GycpYx8c9eRqxvEAfqnpNd1ZfXeuLzjRhnG7vvYaqEE1) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-scroll/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/GycpYx8c9eRqxvEAfqnpNd1ZfXeuLzjRhnG7vvYaqEE1) | | Sei Network | [sablier-lockup-sei](https://gateway.thegraph.com/api/subgraphs/id/AJU5rBfbuApuJpeZeaz6NYuYnnhAhEy4gFkqsSdAT6xb) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-sei/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/AJU5rBfbuApuJpeZeaz6NYuYnnhAhEy4gFkqsSdAT6xb) | | Sepolia | [sablier-lockup-sepolia](https://gateway.thegraph.com/api/subgraphs/id/5yDtFSxyRuqyjvGJyyuQhMEW3Uah7Ddy2KFSKVhy9VMa) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-sepolia/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/5yDtFSxyRuqyjvGJyyuQhMEW3Uah7Ddy2KFSKVhy9VMa) | | Sonic | [sablier-lockup-sonic](https://gateway.thegraph.com/api/subgraphs/id/GnaSPX9XLkPn219CqbGFU1NgveuQk2Hh3c8WxjtesaEh) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-sonic/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/GnaSPX9XLkPn219CqbGFU1NgveuQk2Hh3c8WxjtesaEh) | | Unichain | [sablier-lockup-unichain](https://gateway.thegraph.com/api/subgraphs/id/3MUG4H3gZcp9fpGLiJMTMeUFcQQ6QdT317P4wYKyns9M) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-unichain/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/3MUG4H3gZcp9fpGLiJMTMeUFcQQ6QdT317P4wYKyns9M) | | ZKsync Era | [sablier-lockup-zksync](https://gateway.thegraph.com/api/subgraphs/id/7SuEYGYwZ835LjVGB85ZE8z5zmqdKgmRh8kAEeJefWQN) | [Testing](https://api.studio.thegraph.com/query/112500/sablier-lockup-zksync/version/latest) | [Explorer](https://thegraph.com/explorer/subgraphs/7SuEYGYwZ835LjVGB85ZE8z5zmqdKgmRh8kAEeJefWQN) | --- ## Previous Indexers :::important The following indexers were deprecated on February 3, 2025, so they might return outdated data if queried now. Please use our latest endpoints to query up-to-date data for the Sablier Protocol. ::: | Chain | Explorer | Studio[^2] | Decentralized Network[^1] | | ---------------- | -------------------------------------------------------- | --------------------------------- | ------------------------------------ | | Ethereum | [sablier-v2][explorer-ethereum] | [Studio][studio-ethereum] | [Network][network-ethereum] | | Arbitrum | [sablier-v2-arbitrum][explorer-arbitrum] | [Studio][studio-arbitrum] | [Network][network-arbitrum] | | Arbitrum Sepolia | [sablier-v2-arbitrum-sepolia][explorer-arbitrum-sepolia] | [Studio][studio-arbitrum-sepolia] | [Network][network-arbitrum-sepolia] | | Avalanche | [sablier-v2-avalanche][explorer-avalanche] | [Studio][studio-avalanche] | [Network][network-avalanche] | | Base | [sablier-v2-base][explorer-base] | [Studio][studio-base] | [Network][network-base] | | Blast | [sablier-v2-blast][explorer-blast] | [Studio][studio-blast] | [Network][network-blast] | | BNB Chain | [sablier-v2-bsc][explorer-bsc] | [Studio][studio-bsc] | [Network][network-bsc] | | Chliz Chain | [sablier-v2-chiliz][explorer-chiliz] | [Studio][studio-chiliz] | [Network][network-chiliz] | | Gnosis | [sablier-v2-gnosis][explorer-gnosis] | [Studio][studio-gnosis] | [Network][network-gnosis] | | Lightlink | [sablier-v2-lightlink\*][explorer-lightlink] | N/A | [Lightlink Node\*][custom-lightlink] | | Optimism | [sablier-v2-optimism][explorer-optimism] | [Studio][studio-optimism] | [Network][network-optimism] | | Optimism Sepolia | [sablier-v2-optimism-sepolia][explorer-optimism-sepolia] | [Studio][studio-optimism-sepolia] | [Network][network-optimism-sepolia] | | Polygon | [sablier-v2-polygon][explorer-polygon] | [Studio][studio-polygon] | [Network][network-polygon] | | Scroll | [sablier-v2-scroll][explorer-scroll] | [Studio][studio-scroll] | [Network][network-scroll] | | Ethereum Sepolia | [sablier-v2-sepolia][explorer-sepolia] | [Studio][studio-sepolia] | [Network][network-sepolia] | | zkSync | [sablier-v2-zksync][explorer-zksync] | [Studio][studio-zksync] | [Network][network-zksync] | {/* --------------------------------------------------------------------------------------------------------------------------------- */} {/* --------------------------------------------------------------------------------------------------------------------------------- */} {/* --------------------------------------------------------------------------------------------------------------------------------- */} {/* Chain: Arbitrum */} [network-arbitrum]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/8BnGPBojHycDxVo83LP468pUo4xDyCQbtTpHGZXR6SiB [explorer-arbitrum]: https://thegraph.com/explorer/subgraphs/8BnGPBojHycDxVo83LP468pUo4xDyCQbtTpHGZXR6SiB [studio-arbitrum]: https://api.studio.thegraph.com/query/57079/sablier-v2-arbitrum/version/latest {/* Chain: Arbitrum Sepolia */} [network-arbitrum-sepolia]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/BZYXgTYGe51dy5rW6LhrLN7PWSiAgRQoqSBJEiPpRN9K [explorer-arbitrum-sepolia]: https://thegraph.com/explorer/subgraphs/BZYXgTYGe51dy5rW6LhrLN7PWSiAgRQoqSBJEiPpRN9K [studio-arbitrum-sepolia]: https://api.studio.thegraph.com/query/57079/sablier-v2-arbitrum-sepolia/version/latest {/* Chain: Avalanche */} [network-avalanche]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/FdVwZuMV43yCb1nPmjnLQwmzS58wvKuLMPzcZ4UWgWAc [explorer-avalanche]: https://thegraph.com/explorer/subgraphs/FdVwZuMV43yCb1nPmjnLQwmzS58wvKuLMPzcZ4UWgWAc [studio-avalanche]: https://api.studio.thegraph.com/query/57079/sablier-v2-avalanche/version/latest {/* Chain: Base */} [network-base]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/3pxjsW9rbDjmZpoQWzc5CAo4vzcyYE9YQyTghntmnb1K [explorer-base]: https://thegraph.com/explorer/subgraphs/3pxjsW9rbDjmZpoQWzc5CAo4vzcyYE9YQyTghntmnb1K [studio-base]: https://api.studio.thegraph.com/query/57079/sablier-v2-base/version/latest {/* Chain: Blast */} [network-blast]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/BXoC2ToMZXnTmCjWftQRPh9zMyM7ysijMN54Nxzb2CEY [explorer-blast]: https://thegraph.com/explorer/subgraphs/BXoC2ToMZXnTmCjWftQRPh9zMyM7ysijMN54Nxzb2CEY [studio-blast]: https://api.studio.thegraph.com/query/57079/sablier-v2-blast/version/latest {/* Chain: BSC */} [network-bsc]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/BVyi15zcH5eUg5PPKfRDDesezMezh6cAkn8LPvh7MVAF [explorer-bsc]: https://thegraph.com/explorer/subgraphs/BVyi15zcH5eUg5PPKfRDDesezMezh6cAkn8LPvh7MVAF [studio-bsc]: https://api.studio.thegraph.com/query/57079/sablier-v2-bsc/version/latest {/* Chain: Chiliz */} [network-chiliz]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/HKvzAuGjrEiza11W48waJy5csbhKpkMLF688arwHhT5f [explorer-chiliz]: https://thegraph.com/explorer/subgraphs/HKvzAuGjrEiza11W48waJy5csbhKpkMLF688arwHhT5f [studio-chiliz]: https://api.studio.thegraph.com/query/57079/sablier-v2-chiliz/version/latest {/* Chain: Gnosis */} [network-gnosis]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/EXhNLbhCbsewJPx4jx5tutNXpxwdgng2kmX1J7w1bFyu [explorer-gnosis]: https://thegraph.com/explorer/subgraphs/EXhNLbhCbsewJPx4jx5tutNXpxwdgng2kmX1J7w1bFyu [studio-gnosis]: https://api.studio.thegraph.com/query/57079/sablier-v2-gnosis/version/latest {/* Chain: Lightlink */} [explorer-lightlink]: https://graph.phoenix.lightlink.io/query/subgraphs/name/lightlink/sablier-v2-lightlink/graphql [custom-lightlink]: https://graph.phoenix.lightlink.io/query/subgraphs/name/lightlink/sablier-v2-lightlink {/* Chain: Mainnet | Ethereum */} [explorer-ethereum]: https://thegraph.com/explorer/subgraphs/EuZZnhFtdCGqN2Zt7EMGYDqQKNrVuhJL63KAfwvF35bL [studio-ethereum]: https://api.studio.thegraph.com/query/57079/sablier-v2/version/latest [network-ethereum]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/EuZZnhFtdCGqN2Zt7EMGYDqQKNrVuhJL63KAfwvF35bL {/* Chain: Optimism */} [network-optimism]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/6e6Dvs1yDpsWDDREZRqxGi54SVdvTNzUdKpKJxniKVrp [explorer-optimism]: https://thegraph.com/explorer/subgraphs/6e6Dvs1yDpsWDDREZRqxGi54SVdvTNzUdKpKJxniKVrp [studio-optimism]: https://api.studio.thegraph.com/query/57079/sablier-v2-optimism/version/latest {/* Chain: Optimism Sepolia */} [network-optimism-sepolia]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/2a2JpbmBfQs78UEvQYXgweHetcZUPm9zXCjP69o5mTed [explorer-optimism-sepolia]: https://thegraph.com/explorer/subgraphs/2a2JpbmBfQs78UEvQYXgweHetcZUPm9zXCjP69o5mTed [studio-optimism-sepolia]: https://api.studio.thegraph.com/query/57079/sablier-v2-optimism-sepolia/version/latest {/* Chain: Polygon */} [network-polygon]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/CsDNYv9XPUMP8vufuwDVKQrVhsxhzzRHezjLFFKZZbrx [explorer-polygon]: https://thegraph.com/explorer/subgraphs/CsDNYv9XPUMP8vufuwDVKQrVhsxhzzRHezjLFFKZZbrx [studio-polygon]: https://api.studio.thegraph.com/query/57079/sablier-v2-polygon/version/latest {/* Chain: Scroll */} [network-scroll]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/HVcngokCByfveLwguuafrBC34xB65Ne6tpGrXHmqDSrh [explorer-scroll]: https://thegraph.com/explorer/subgraphs/HVcngokCByfveLwguuafrBC34xB65Ne6tpGrXHmqDSrh [studio-scroll]: https://api.studio.thegraph.com/query/57079/sablier-v2-scroll/version/latest {/* Chain: Ethereum Sepolia */} [network-sepolia]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/3JR9ixhdUxX5oc2Yjr6jkG4XUqDd4guy8niL6AYzDKss [explorer-sepolia]: https://thegraph.com/explorer/subgraphs/3JR9ixhdUxX5oc2Yjr6jkG4XUqDd4guy8niL6AYzDKss [studio-sepolia]: https://api.studio.thegraph.com/query/57079/sablier-v2-sepolia/version/latest {/* Chain: zkSync */} [network-zksync]: https://gateway-arbitrum.network.thegraph.com/api/API_KEY/subgraphs/id/GY2fGozmfZiZ3xF2MfevohLR4YGnyxGxAyxzi9zmU5bY [explorer-zksync]: https://thegraph.com/explorer/subgraphs/GY2fGozmfZiZ3xF2MfevohLR4YGnyxGxAyxzi9zmU5bY [studio-zksync]: https://api.studio.thegraph.com/query/57079/sablier-v2-zksync/version/latest --- ## Schema ## Overview We provide auto-generated GraphQL schema documentation for both The Graph and Envio: - The Graph schema docs - Envio schema docs ## Query Syntax Differences | Feature | The Graph | Envio | | ------------ | -------------------------------------------------- | ------------------------------------------------------- | | Pagination | `first` | `limit` | | Pagination | `skip` | `offset` | | Get by ID | `stream(id: "...")` | `Stream_by_pk(id: "...")` | | Get multiple | `streams{}` | `Stream(where: {chainId: {_eq: ""}}){}` | | Nested items | `campaigns{ id, asset: {id, symbol}}` | `Campaign{ asset_id, asset: {id, symbol}}` | ## Entities This is the raw GraphQL file that is used by both The Graph and Envio for generating the final schemas hosted on their services. The schema only contains entities: {/* Add the code block */} ```graphql reference title="Sablier Lockup - GraphQL Schema Entities" https://github.com/sablier-labs/indexers/blob/main/src/schemas/lockup.graphql ``` --- ## Action_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "Action" ```graphql enum Action_select_column { addressA addressB amountA amountB block category chainId contract db_write_timestamp fee from hash id stream_id subgraphId timestamp } ``` ### Values #### [Action_select_column.addressA](#) column name #### [Action_select_column.addressB](#) column name #### [Action_select_column.amountA](#) column name #### [Action_select_column.amountB](#) column name #### [Action_select_column.block](#) column name #### [Action_select_column.category](#) column name #### [Action_select_column.chainId](#) column name #### [Action_select_column.contract](#) column name #### [Action_select_column.db_write_timestamp](#) column name #### [Action_select_column.fee](#) column name #### [Action_select_column.from](#) column name #### [Action_select_column.hash](#) column name #### [Action_select_column.id](#) column name #### [Action_select_column.stream_id](#) column name #### [Action_select_column.subgraphId](#) column name #### [Action_select_column.timestamp](#) column name --- ## Asset_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "Asset" ```graphql enum Asset_select_column { address chainId db_write_timestamp decimals id name symbol } ``` ### Values #### [Asset_select_column.address](#) column name #### [Asset_select_column.chainId](#) column name #### [Asset_select_column.db_write_timestamp](#) column name #### [Asset_select_column.decimals](#) column name #### [Asset_select_column.id](#) column name #### [Asset_select_column.name](#) column name #### [Asset_select_column.symbol](#) column name --- ## Batch_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "Batch" ```graphql enum Batch_select_column { batcher_id db_write_timestamp hash id position size timestamp } ``` ### Values #### [Batch_select_column.batcher_id](#) column name #### [Batch_select_column.db_write_timestamp](#) column name #### [Batch_select_column.hash](#) column name #### [Batch_select_column.id](#) column name #### [Batch_select_column.position](#) column name #### [Batch_select_column.size](#) column name #### [Batch_select_column.timestamp](#) column name --- ## Batcher_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "Batcher" ```graphql enum Batcher_select_column { batchCounter db_write_timestamp id } ``` ### Values #### [Batcher_select_column.batchCounter](#) column name #### [Batcher_select_column.db_write_timestamp](#) column name #### [Batcher_select_column.id](#) column name --- ## chain_metadata_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "chain_metadata" ```graphql enum chain_metadata_select_column { block_height chain_id end_block first_event_block_number is_hyper_sync latest_fetched_block_number latest_processed_block num_batches_fetched num_events_processed start_block timestamp_caught_up_to_head_or_endblock } ``` ### Values #### [chain_metadata_select_column.block_height](#) column name #### [chain_metadata_select_column.chain_id](#) column name #### [chain_metadata_select_column.end_block](#) column name #### [chain_metadata_select_column.first_event_block_number](#) column name #### [chain_metadata_select_column.is_hyper_sync](#) column name #### [chain_metadata_select_column.latest_fetched_block_number](#) column name #### [chain_metadata_select_column.latest_processed_block](#) column name #### [chain_metadata_select_column.num_batches_fetched](#) column name #### [chain_metadata_select_column.num_events_processed](#) column name #### [chain_metadata_select_column.start_block](#) column name #### [chain_metadata_select_column.timestamp_caught_up_to_head_or_endblock](#) column name --- ## Contract_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "Contract" ```graphql enum Contract_select_column { address admin alias category chainId db_write_timestamp id version } ``` ### Values #### [Contract_select_column.address](#) column name #### [Contract_select_column.admin](#) column name #### [Contract_select_column.alias](#) column name #### [Contract_select_column.category](#) column name #### [Contract_select_column.chainId](#) column name #### [Contract_select_column.db_write_timestamp](#) column name #### [Contract_select_column.id](#) column name #### [Contract_select_column.version](#) column name --- ## cursor_ordering export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; ordering argument of a cursor ```graphql enum cursor_ordering { ASC DESC } ``` ### Values #### [cursor_ordering.ASC](#) ascending ordering of the cursor #### [cursor_ordering.DESC](#) descending ordering of the cursor --- ## dynamic_contract_registry_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "dynamic_contract_registry" ```graphql enum dynamic_contract_registry_select_column { chain_id contract_address contract_type id registering_event_block_number registering_event_block_timestamp registering_event_contract_name registering_event_log_index registering_event_name registering_event_src_address } ``` ### Values #### [dynamic_contract_registry_select_column.chain_id](#) column name #### [dynamic_contract_registry_select_column.contract_address](#) column name #### [dynamic_contract_registry_select_column.contract_type](#) column name #### [dynamic_contract_registry_select_column.id](#) column name #### [dynamic_contract_registry_select_column.registering_event_block_number](#) column name #### [dynamic_contract_registry_select_column.registering_event_block_timestamp](#) column name #### [dynamic_contract_registry_select_column.registering_event_contract_name](#) column name #### [dynamic_contract_registry_select_column.registering_event_log_index](#) column name #### [dynamic_contract_registry_select_column.registering_event_name](#) column name #### [dynamic_contract_registry_select_column.registering_event_src_address](#) column name --- ## end_of_block_range_scanned_data_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "end_of_block_range_scanned_data" ```graphql enum end_of_block_range_scanned_data_select_column { block_hash block_number chain_id } ``` ### Values #### [end_of_block_range_scanned_data_select_column.block_hash](#) column name #### [end_of_block_range_scanned_data_select_column.block_number](#) column name #### [end_of_block_range_scanned_data_select_column.chain_id](#) column name --- ## event_sync_state_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "event_sync_state" ```graphql enum event_sync_state_select_column { block_number block_timestamp chain_id is_pre_registering_dynamic_contracts log_index } ``` ### Values #### [event_sync_state_select_column.block_number](#) column name #### [event_sync_state_select_column.block_timestamp](#) column name #### [event_sync_state_select_column.chain_id](#) column name #### [event_sync_state_select_column.is_pre_registering_dynamic_contracts](#) column name #### [event_sync_state_select_column.log_index](#) column name --- ## order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; column ordering options ```graphql enum order_by { asc asc_nulls_first asc_nulls_last desc desc_nulls_first desc_nulls_last } ``` ### Values #### [order_by.asc](#) in ascending order, nulls last #### [order_by.asc_nulls_first](#) in ascending order, nulls first #### [order_by.asc_nulls_last](#) in ascending order, nulls last #### [order_by.desc](#) in descending order, nulls first #### [order_by.desc_nulls_first](#) in descending order, nulls first #### [order_by.desc_nulls_last](#) in descending order, nulls last --- ## persisted_state_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "persisted_state" ```graphql enum persisted_state_select_column { abi_files_hash config_hash envio_version handler_files_hash id schema_hash } ``` ### Values #### [persisted_state_select_column.abi_files_hash](#) column name #### [persisted_state_select_column.config_hash](#) column name #### [persisted_state_select_column.envio_version](#) column name #### [persisted_state_select_column.handler_files_hash](#) column name #### [persisted_state_select_column.id](#) column name #### [persisted_state_select_column.schema_hash](#) column name --- ## raw_events_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "raw_events" ```graphql enum raw_events_select_column { block_fields block_hash block_number block_timestamp chain_id contract_name db_write_timestamp event_id event_name log_index params serial src_address transaction_fields } ``` ### Values #### [raw_events_select_column.block_fields](#) column name #### [raw_events_select_column.block_hash](#) column name #### [raw_events_select_column.block_number](#) column name #### [raw_events_select_column.block_timestamp](#) column name #### [raw_events_select_column.chain_id](#) column name #### [raw_events_select_column.contract_name](#) column name #### [raw_events_select_column.db_write_timestamp](#) column name #### [raw_events_select_column.event_id](#) column name #### [raw_events_select_column.event_name](#) column name #### [raw_events_select_column.log_index](#) column name #### [raw_events_select_column.params](#) column name #### [raw_events_select_column.serial](#) column name #### [raw_events_select_column.src_address](#) column name #### [raw_events_select_column.transaction_fields](#) column name --- ## Revenue_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "Revenue" ```graphql enum Revenue_select_column { amount chainId currency date dateTimestamp db_write_timestamp id } ``` ### Values #### [Revenue_select_column.amount](#) column name #### [Revenue_select_column.chainId](#) column name #### [Revenue_select_column.currency](#) column name #### [Revenue_select_column.date](#) column name #### [Revenue_select_column.dateTimestamp](#) column name #### [Revenue_select_column.db_write_timestamp](#) column name #### [Revenue_select_column.id](#) column name --- ## RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_avg_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "RevenueTransaction_aggregate_bool_exp_avg_arguments_columns" columns of table "RevenueTransaction" ```graphql enum RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_avg_arguments_columns { amount } ``` ### Values #### [RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_avg_arguments_columns.amount](#) column name --- ## RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_corr_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "RevenueTransaction_aggregate_bool_exp_corr_arguments_columns" columns of table "RevenueTransaction" ```graphql enum RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_corr_arguments_columns { amount } ``` ### Values #### [RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_corr_arguments_columns.amount](#) column name --- ## RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_covar_samp_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "RevenueTransaction_aggregate_bool_exp_covar_samp_arguments_columns" columns of table "RevenueTransaction" ```graphql enum RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_covar_samp_arguments_columns { amount } ``` ### Values #### [RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_covar_samp_arguments_columns.amount](#) column name --- ## RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_max_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "RevenueTransaction_aggregate_bool_exp_max_arguments_columns" columns of table "RevenueTransaction" ```graphql enum RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_max_arguments_columns { amount } ``` ### Values #### [RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_max_arguments_columns.amount](#) column name --- ## RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_min_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "RevenueTransaction_aggregate_bool_exp_min_arguments_columns" columns of table "RevenueTransaction" ```graphql enum RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_min_arguments_columns { amount } ``` ### Values #### [RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_min_arguments_columns.amount](#) column name --- ## RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_stddev_samp_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "RevenueTransaction_aggregate_bool_exp_stddev_samp_arguments_columns" columns of table "RevenueTransaction" ```graphql enum RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_stddev_samp_arguments_columns { amount } ``` ### Values #### [RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_stddev_samp_arguments_columns.amount](#) column name --- ## RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_sum_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "RevenueTransaction_aggregate_bool_exp_sum_arguments_columns" columns of table "RevenueTransaction" ```graphql enum RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_sum_arguments_columns { amount } ``` ### Values #### [RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_sum_arguments_columns.amount](#) column name --- ## RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_var_samp_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "RevenueTransaction_aggregate_bool_exp_var_samp_arguments_columns" columns of table "RevenueTransaction" ```graphql enum RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_var_samp_arguments_columns { amount } ``` ### Values #### [RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_var_samp_arguments_columns.amount](#) column name --- ## RevenueTransaction_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "RevenueTransaction" ```graphql enum RevenueTransaction_select_column { amount block db_write_timestamp hash id revenue_id timestamp } ``` ### Values #### [RevenueTransaction_select_column.amount](#) column name #### [RevenueTransaction_select_column.block](#) column name #### [RevenueTransaction_select_column.db_write_timestamp](#) column name #### [RevenueTransaction_select_column.hash](#) column name #### [RevenueTransaction_select_column.id](#) column name #### [RevenueTransaction_select_column.revenue_id](#) column name #### [RevenueTransaction_select_column.timestamp](#) column name --- ## Segment_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "Segment" ```graphql enum Segment_select_column { amount db_write_timestamp endAmount endTime exponent id position startAmount startTime stream_id } ``` ### Values #### [Segment_select_column.amount](#) column name #### [Segment_select_column.db_write_timestamp](#) column name #### [Segment_select_column.endAmount](#) column name #### [Segment_select_column.endTime](#) column name #### [Segment_select_column.exponent](#) column name #### [Segment_select_column.id](#) column name #### [Segment_select_column.position](#) column name #### [Segment_select_column.startAmount](#) column name #### [Segment_select_column.startTime](#) column name #### [Segment_select_column.stream_id](#) column name --- ## Stream_select_column_Stream_aggregate_bool_exp_bool_and_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "Stream_aggregate_bool_exp_bool_and_arguments_columns" columns of table "Stream" ```graphql enum Stream_select_column_Stream_aggregate_bool_exp_bool_and_arguments_columns { cancelable canceled cliff initial proxied transferable } ``` ### Values #### [Stream_select_column_Stream_aggregate_bool_exp_bool_and_arguments_columns.cancelable](#) column name #### [Stream_select_column_Stream_aggregate_bool_exp_bool_and_arguments_columns.canceled](#) column name #### [Stream_select_column_Stream_aggregate_bool_exp_bool_and_arguments_columns.cliff](#) column name #### [Stream_select_column_Stream_aggregate_bool_exp_bool_and_arguments_columns.initial](#) column name #### [Stream_select_column_Stream_aggregate_bool_exp_bool_and_arguments_columns.proxied](#) column name #### [Stream_select_column_Stream_aggregate_bool_exp_bool_and_arguments_columns.transferable](#) column name --- ## Stream_select_column_Stream_aggregate_bool_exp_bool_or_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "Stream_aggregate_bool_exp_bool_or_arguments_columns" columns of table "Stream" ```graphql enum Stream_select_column_Stream_aggregate_bool_exp_bool_or_arguments_columns { cancelable canceled cliff initial proxied transferable } ``` ### Values #### [Stream_select_column_Stream_aggregate_bool_exp_bool_or_arguments_columns.cancelable](#) column name #### [Stream_select_column_Stream_aggregate_bool_exp_bool_or_arguments_columns.canceled](#) column name #### [Stream_select_column_Stream_aggregate_bool_exp_bool_or_arguments_columns.cliff](#) column name #### [Stream_select_column_Stream_aggregate_bool_exp_bool_or_arguments_columns.initial](#) column name #### [Stream_select_column_Stream_aggregate_bool_exp_bool_or_arguments_columns.proxied](#) column name #### [Stream_select_column_Stream_aggregate_bool_exp_bool_or_arguments_columns.transferable](#) column name --- ## Stream_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "Stream" ```graphql enum Stream_select_column { alias assetDecimalsValue asset_id batch_id cancelable canceled canceledAction_id canceledTime category chainId cliff cliffAmount cliffTime contract db_write_timestamp depositAmount duration endTime funder hash id initial initialAmount intactAmount position proxender proxied recipient renounceAction_id renounceTime sender shape startTime subgraphId timestamp tokenId transferable version withdrawnAmount } ``` ### Values #### [Stream_select_column.alias](#) column name #### [Stream_select_column.assetDecimalsValue](#) column name #### [Stream_select_column.asset_id](#) column name #### [Stream_select_column.batch_id](#) column name #### [Stream_select_column.cancelable](#) column name #### [Stream_select_column.canceled](#) column name #### [Stream_select_column.canceledAction_id](#) column name #### [Stream_select_column.canceledTime](#) column name #### [Stream_select_column.category](#) column name #### [Stream_select_column.chainId](#) column name #### [Stream_select_column.cliff](#) column name #### [Stream_select_column.cliffAmount](#) column name #### [Stream_select_column.cliffTime](#) column name #### [Stream_select_column.contract](#) column name #### [Stream_select_column.db_write_timestamp](#) column name #### [Stream_select_column.depositAmount](#) column name #### [Stream_select_column.duration](#) column name #### [Stream_select_column.endTime](#) column name #### [Stream_select_column.funder](#) column name #### [Stream_select_column.hash](#) column name #### [Stream_select_column.id](#) column name #### [Stream_select_column.initial](#) column name #### [Stream_select_column.initialAmount](#) column name #### [Stream_select_column.intactAmount](#) column name #### [Stream_select_column.position](#) column name #### [Stream_select_column.proxender](#) column name #### [Stream_select_column.proxied](#) column name #### [Stream_select_column.recipient](#) column name #### [Stream_select_column.renounceAction_id](#) column name #### [Stream_select_column.renounceTime](#) column name #### [Stream_select_column.sender](#) column name #### [Stream_select_column.shape](#) column name #### [Stream_select_column.startTime](#) column name #### [Stream_select_column.subgraphId](#) column name #### [Stream_select_column.timestamp](#) column name #### [Stream_select_column.tokenId](#) column name #### [Stream_select_column.transferable](#) column name #### [Stream_select_column.version](#) column name #### [Stream_select_column.withdrawnAmount](#) column name --- ## Tranche_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "Tranche" ```graphql enum Tranche_select_column { amount db_write_timestamp endAmount endTime id position startAmount startTime stream_id } ``` ### Values #### [Tranche_select_column.amount](#) column name #### [Tranche_select_column.db_write_timestamp](#) column name #### [Tranche_select_column.endAmount](#) column name #### [Tranche_select_column.endTime](#) column name #### [Tranche_select_column.id](#) column name #### [Tranche_select_column.position](#) column name #### [Tranche_select_column.startAmount](#) column name #### [Tranche_select_column.startTime](#) column name #### [Tranche_select_column.stream_id](#) column name --- ## User_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "User" ```graphql enum User_select_column { address chainId db_write_timestamp id isOnlyAirdropClaimer } ``` ### Values #### [User_select_column.address](#) column name #### [User_select_column.chainId](#) column name #### [User_select_column.db_write_timestamp](#) column name #### [User_select_column.id](#) column name #### [User_select_column.isOnlyAirdropClaimer](#) column name --- ## UserTransaction_select_column_UserTransaction_aggregate_bool_exp_avg_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "UserTransaction_aggregate_bool_exp_avg_arguments_columns" columns of table "UserTransaction" ```graphql enum UserTransaction_select_column_UserTransaction_aggregate_bool_exp_avg_arguments_columns { fee } ``` ### Values #### [UserTransaction_select_column_UserTransaction_aggregate_bool_exp_avg_arguments_columns.fee](#) column name --- ## UserTransaction_select_column_UserTransaction_aggregate_bool_exp_bool_and_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "UserTransaction_aggregate_bool_exp_bool_and_arguments_columns" columns of table "UserTransaction" ```graphql enum UserTransaction_select_column_UserTransaction_aggregate_bool_exp_bool_and_arguments_columns { isAirdropClaim } ``` ### Values #### [UserTransaction_select_column_UserTransaction_aggregate_bool_exp_bool_and_arguments_columns.isAirdropClaim](#) column name --- ## UserTransaction_select_column_UserTransaction_aggregate_bool_exp_bool_or_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "UserTransaction_aggregate_bool_exp_bool_or_arguments_columns" columns of table "UserTransaction" ```graphql enum UserTransaction_select_column_UserTransaction_aggregate_bool_exp_bool_or_arguments_columns { isAirdropClaim } ``` ### Values #### [UserTransaction_select_column_UserTransaction_aggregate_bool_exp_bool_or_arguments_columns.isAirdropClaim](#) column name --- ## UserTransaction_select_column_UserTransaction_aggregate_bool_exp_corr_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "UserTransaction_aggregate_bool_exp_corr_arguments_columns" columns of table "UserTransaction" ```graphql enum UserTransaction_select_column_UserTransaction_aggregate_bool_exp_corr_arguments_columns { fee } ``` ### Values #### [UserTransaction_select_column_UserTransaction_aggregate_bool_exp_corr_arguments_columns.fee](#) column name --- ## UserTransaction_select_column_UserTransaction_aggregate_bool_exp_covar_samp_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "UserTransaction_aggregate_bool_exp_covar_samp_arguments_columns" columns of table "UserTransaction" ```graphql enum UserTransaction_select_column_UserTransaction_aggregate_bool_exp_covar_samp_arguments_columns { fee } ``` ### Values #### [UserTransaction_select_column_UserTransaction_aggregate_bool_exp_covar_samp_arguments_columns.fee](#) column name --- ## UserTransaction_select_column_UserTransaction_aggregate_bool_exp_max_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "UserTransaction_aggregate_bool_exp_max_arguments_columns" columns of table "UserTransaction" ```graphql enum UserTransaction_select_column_UserTransaction_aggregate_bool_exp_max_arguments_columns { fee } ``` ### Values #### [UserTransaction_select_column_UserTransaction_aggregate_bool_exp_max_arguments_columns.fee](#) column name --- ## UserTransaction_select_column_UserTransaction_aggregate_bool_exp_min_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "UserTransaction_aggregate_bool_exp_min_arguments_columns" columns of table "UserTransaction" ```graphql enum UserTransaction_select_column_UserTransaction_aggregate_bool_exp_min_arguments_columns { fee } ``` ### Values #### [UserTransaction_select_column_UserTransaction_aggregate_bool_exp_min_arguments_columns.fee](#) column name --- ## UserTransaction_select_column_UserTransaction_aggregate_bool_exp_stddev_samp_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "UserTransaction_aggregate_bool_exp_stddev_samp_arguments_columns" columns of table "UserTransaction" ```graphql enum UserTransaction_select_column_UserTransaction_aggregate_bool_exp_stddev_samp_arguments_columns { fee } ``` ### Values #### [UserTransaction_select_column_UserTransaction_aggregate_bool_exp_stddev_samp_arguments_columns.fee](#) column name --- ## UserTransaction_select_column_UserTransaction_aggregate_bool_exp_sum_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "UserTransaction_aggregate_bool_exp_sum_arguments_columns" columns of table "UserTransaction" ```graphql enum UserTransaction_select_column_UserTransaction_aggregate_bool_exp_sum_arguments_columns { fee } ``` ### Values #### [UserTransaction_select_column_UserTransaction_aggregate_bool_exp_sum_arguments_columns.fee](#) column name --- ## UserTransaction_select_column_UserTransaction_aggregate_bool_exp_var_samp_arguments_columns export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select "UserTransaction_aggregate_bool_exp_var_samp_arguments_columns" columns of table "UserTransaction" ```graphql enum UserTransaction_select_column_UserTransaction_aggregate_bool_exp_var_samp_arguments_columns { fee } ``` ### Values #### [UserTransaction_select_column_UserTransaction_aggregate_bool_exp_var_samp_arguments_columns.fee](#) column name --- ## UserTransaction_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "UserTransaction" ```graphql enum UserTransaction_select_column { block db_write_timestamp fee hash id isAirdropClaim timestamp user_id } ``` ### Values #### [UserTransaction_select_column.block](#) column name #### [UserTransaction_select_column.db_write_timestamp](#) column name #### [UserTransaction_select_column.fee](#) column name #### [UserTransaction_select_column.hash](#) column name #### [UserTransaction_select_column.id](#) column name #### [UserTransaction_select_column.isAirdropClaim](#) column name #### [UserTransaction_select_column.timestamp](#) column name #### [UserTransaction_select_column.user_id](#) column name --- ## Watcher_select_column export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; select columns of table "Watcher" ```graphql enum Watcher_select_column { actionCounter chainId db_write_timestamp id streamCounter } ``` ### Values #### [Watcher_select_column.actionCounter](#) column name #### [Watcher_select_column.chainId](#) column name #### [Watcher_select_column.db_write_timestamp](#) column name #### [Watcher_select_column.id](#) column name #### [Watcher_select_column.streamCounter](#) column name --- ## Overview This documentation has been automatically generated from the GraphQL schema, with [GraphQL-Markdown](https://graphql-markdown.github.io). --- ## Action_aggregate_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by aggregate values of table "Action" ```graphql input Action_aggregate_order_by { avg: Action_avg_order_by count: order_by max: Action_max_order_by min: Action_min_order_by stddev: Action_stddev_order_by stddev_pop: Action_stddev_pop_order_by stddev_samp: Action_stddev_samp_order_by sum: Action_sum_order_by var_pop: Action_var_pop_order_by var_samp: Action_var_samp_order_by variance: Action_variance_order_by } ``` ### Fields #### [Action_aggregate_order_by.avg](#)[Action_avg_order_by](/docs/api/lockup/graphql/envio/inputs/action-avg-order-by.mdx) #### [Action_aggregate_order_by.count](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_aggregate_order_by.max](#)[Action_max_order_by](/docs/api/lockup/graphql/envio/inputs/action-max-order-by.mdx) #### [Action_aggregate_order_by.min](#)[Action_min_order_by](/docs/api/lockup/graphql/envio/inputs/action-min-order-by.mdx) #### [Action_aggregate_order_by.stddev](#)[Action_stddev_order_by](/docs/api/lockup/graphql/envio/inputs/action-stddev-order-by.mdx) #### [Action_aggregate_order_by.stddev_pop](#)[Action_stddev_pop_order_by](/docs/api/lockup/graphql/envio/inputs/action-stddev-pop-order-by.mdx) #### [Action_aggregate_order_by.stddev_samp](#)[Action_stddev_samp_order_by](/docs/api/lockup/graphql/envio/inputs/action-stddev-samp-order-by.mdx) #### [Action_aggregate_order_by.sum](#)[Action_sum_order_by](/docs/api/lockup/graphql/envio/inputs/action-sum-order-by.mdx) #### [Action_aggregate_order_by.var_pop](#)[Action_var_pop_order_by](/docs/api/lockup/graphql/envio/inputs/action-var-pop-order-by.mdx) #### [Action_aggregate_order_by.var_samp](#)[Action_var_samp_order_by](/docs/api/lockup/graphql/envio/inputs/action-var-samp-order-by.mdx) #### [Action_aggregate_order_by.variance](#)[Action_variance_order_by](/docs/api/lockup/graphql/envio/inputs/action-variance-order-by.mdx) --- ## Action_avg_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by avg() on columns of table "Action" ```graphql input Action_avg_order_by { amountA: order_by amountB: order_by block: order_by chainId: order_by fee: order_by subgraphId: order_by timestamp: order_by } ``` ### Fields #### [Action_avg_order_by.amountA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_avg_order_by.amountB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_avg_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_avg_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_avg_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_avg_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_avg_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Action_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "Action". All fields are combined with a logical 'AND'. ```graphql input Action_bool_exp { _and: [Action_bool_exp!] _not: Action_bool_exp _or: [Action_bool_exp!] addressA: String_comparison_exp addressB: String_comparison_exp amountA: numeric_comparison_exp amountB: numeric_comparison_exp block: numeric_comparison_exp category: actioncategory_comparison_exp chainId: numeric_comparison_exp contract: String_comparison_exp db_write_timestamp: timestamp_comparison_exp fee: numeric_comparison_exp from: String_comparison_exp hash: String_comparison_exp id: String_comparison_exp stream: Stream_bool_exp stream_id: String_comparison_exp subgraphId: numeric_comparison_exp timestamp: numeric_comparison_exp } ``` ### Fields #### [Action_bool_exp.\_and](#)[[Action_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/action-bool-exp.mdx) #### [Action_bool_exp.\_not](#)[Action_bool_exp](/docs/api/lockup/graphql/envio/inputs/action-bool-exp.mdx) #### [Action_bool_exp.\_or](#)[[Action_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/action-bool-exp.mdx) #### [Action_bool_exp.addressA](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Action_bool_exp.addressB](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Action_bool_exp.amountA](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Action_bool_exp.amountB](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Action_bool_exp.block](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Action_bool_exp.category](#)[actioncategory_comparison_exp](/docs/api/lockup/graphql/envio/inputs/actioncategory-comparison-exp.mdx) #### [Action_bool_exp.chainId](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Action_bool_exp.contract](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Action_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [Action_bool_exp.fee](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Action_bool_exp.from](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Action_bool_exp.hash](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Action_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Action_bool_exp.stream](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Action_bool_exp.stream_id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Action_bool_exp.subgraphId](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Action_bool_exp.timestamp](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) --- ## Action_max_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by max() on columns of table "Action" ```graphql input Action_max_order_by { addressA: order_by addressB: order_by amountA: order_by amountB: order_by block: order_by category: order_by chainId: order_by contract: order_by db_write_timestamp: order_by fee: order_by from: order_by hash: order_by id: order_by stream_id: order_by subgraphId: order_by timestamp: order_by } ``` ### Fields #### [Action_max_order_by.addressA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.addressB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.amountA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.amountB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.category](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.contract](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.from](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.stream_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_max_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Action_min_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by min() on columns of table "Action" ```graphql input Action_min_order_by { addressA: order_by addressB: order_by amountA: order_by amountB: order_by block: order_by category: order_by chainId: order_by contract: order_by db_write_timestamp: order_by fee: order_by from: order_by hash: order_by id: order_by stream_id: order_by subgraphId: order_by timestamp: order_by } ``` ### Fields #### [Action_min_order_by.addressA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.addressB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.amountA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.amountB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.category](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.contract](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.from](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.stream_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_min_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Action_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "Action". ```graphql input Action_order_by { addressA: order_by addressB: order_by amountA: order_by amountB: order_by block: order_by category: order_by chainId: order_by contract: order_by db_write_timestamp: order_by fee: order_by from: order_by hash: order_by id: order_by stream: Stream_order_by stream_id: order_by subgraphId: order_by timestamp: order_by } ``` ### Fields #### [Action_order_by.addressA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.addressB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.amountA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.amountB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.category](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.contract](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.from](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.stream](#)[Stream_order_by](/docs/api/lockup/graphql/envio/inputs/stream-order-by.mdx) #### [Action_order_by.stream_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Action_stddev_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev() on columns of table "Action" ```graphql input Action_stddev_order_by { amountA: order_by amountB: order_by block: order_by chainId: order_by fee: order_by subgraphId: order_by timestamp: order_by } ``` ### Fields #### [Action_stddev_order_by.amountA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_order_by.amountB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Action_stddev_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_pop() on columns of table "Action" ```graphql input Action_stddev_pop_order_by { amountA: order_by amountB: order_by block: order_by chainId: order_by fee: order_by subgraphId: order_by timestamp: order_by } ``` ### Fields #### [Action_stddev_pop_order_by.amountA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_pop_order_by.amountB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_pop_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_pop_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_pop_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_pop_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_pop_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Action_stddev_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_samp() on columns of table "Action" ```graphql input Action_stddev_samp_order_by { amountA: order_by amountB: order_by block: order_by chainId: order_by fee: order_by subgraphId: order_by timestamp: order_by } ``` ### Fields #### [Action_stddev_samp_order_by.amountA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_samp_order_by.amountB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_samp_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_samp_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_samp_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_samp_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_stddev_samp_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Action_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "Action" ```graphql input Action_stream_cursor_input { initial_value: Action_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [Action_stream_cursor_input.initial_value](#)[Action_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/action-stream-cursor-value-input.mdx) Stream column input with initial value #### [Action_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## Action_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input Action_stream_cursor_value_input { addressA: String addressB: String amountA: numeric amountB: numeric block: numeric category: actioncategory chainId: numeric contract: String db_write_timestamp: timestamp fee: numeric from: String hash: String id: String stream_id: String subgraphId: numeric timestamp: numeric } ``` ### Fields #### [Action_stream_cursor_value_input.addressA](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action_stream_cursor_value_input.addressB](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action_stream_cursor_value_input.amountA](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action_stream_cursor_value_input.amountB](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action_stream_cursor_value_input.block](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action_stream_cursor_value_input.category](#)[actioncategory](/docs/api/lockup/graphql/envio/scalars/actioncategory.mdx) #### [Action_stream_cursor_value_input.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action_stream_cursor_value_input.contract](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Action_stream_cursor_value_input.fee](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action_stream_cursor_value_input.from](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action_stream_cursor_value_input.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action_stream_cursor_value_input.stream_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action_stream_cursor_value_input.subgraphId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action_stream_cursor_value_input.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Action_sum_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by sum() on columns of table "Action" ```graphql input Action_sum_order_by { amountA: order_by amountB: order_by block: order_by chainId: order_by fee: order_by subgraphId: order_by timestamp: order_by } ``` ### Fields #### [Action_sum_order_by.amountA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_sum_order_by.amountB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_sum_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_sum_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_sum_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_sum_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_sum_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Action_var_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_pop() on columns of table "Action" ```graphql input Action_var_pop_order_by { amountA: order_by amountB: order_by block: order_by chainId: order_by fee: order_by subgraphId: order_by timestamp: order_by } ``` ### Fields #### [Action_var_pop_order_by.amountA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_pop_order_by.amountB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_pop_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_pop_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_pop_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_pop_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_pop_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Action_var_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_samp() on columns of table "Action" ```graphql input Action_var_samp_order_by { amountA: order_by amountB: order_by block: order_by chainId: order_by fee: order_by subgraphId: order_by timestamp: order_by } ``` ### Fields #### [Action_var_samp_order_by.amountA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_samp_order_by.amountB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_samp_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_samp_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_samp_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_samp_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_var_samp_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Action_variance_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by variance() on columns of table "Action" ```graphql input Action_variance_order_by { amountA: order_by amountB: order_by block: order_by chainId: order_by fee: order_by subgraphId: order_by timestamp: order_by } ``` ### Fields #### [Action_variance_order_by.amountA](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_variance_order_by.amountB](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_variance_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_variance_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_variance_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_variance_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Action_variance_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## actioncategory_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "actioncategory". All fields are combined with logical 'AND'. ```graphql input actioncategory_comparison_exp { _eq: actioncategory _gt: actioncategory _gte: actioncategory _in: [actioncategory!] _is_null: Boolean _lt: actioncategory _lte: actioncategory _neq: actioncategory _nin: [actioncategory!] } ``` ### Fields #### [actioncategory_comparison_exp.\_eq](#)[actioncategory](/docs/api/lockup/graphql/envio/scalars/actioncategory.mdx) #### [actioncategory_comparison_exp.\_gt](#)[actioncategory](/docs/api/lockup/graphql/envio/scalars/actioncategory.mdx) #### [actioncategory_comparison_exp.\_gte](#)[actioncategory](/docs/api/lockup/graphql/envio/scalars/actioncategory.mdx) #### [actioncategory_comparison_exp.\_in](#)[[actioncategory!]](/docs/api/lockup/graphql/envio/scalars/actioncategory.mdx) #### [actioncategory_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [actioncategory_comparison_exp.\_lt](#)[actioncategory](/docs/api/lockup/graphql/envio/scalars/actioncategory.mdx) #### [actioncategory_comparison_exp.\_lte](#)[actioncategory](/docs/api/lockup/graphql/envio/scalars/actioncategory.mdx) #### [actioncategory_comparison_exp.\_neq](#)[actioncategory](/docs/api/lockup/graphql/envio/scalars/actioncategory.mdx) #### [actioncategory_comparison_exp.\_nin](#)[[actioncategory!]](/docs/api/lockup/graphql/envio/scalars/actioncategory.mdx) --- ## Asset_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "Asset". All fields are combined with a logical 'AND'. ```graphql input Asset_bool_exp { _and: [Asset_bool_exp!] _not: Asset_bool_exp _or: [Asset_bool_exp!] address: String_comparison_exp chainId: numeric_comparison_exp db_write_timestamp: timestamp_comparison_exp decimals: numeric_comparison_exp id: String_comparison_exp name: String_comparison_exp streams: Stream_bool_exp streams_aggregate: Stream_aggregate_bool_exp symbol: String_comparison_exp } ``` ### Fields #### [Asset_bool_exp.\_and](#)[[Asset_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/asset-bool-exp.mdx) #### [Asset_bool_exp.\_not](#)[Asset_bool_exp](/docs/api/lockup/graphql/envio/inputs/asset-bool-exp.mdx) #### [Asset_bool_exp.\_or](#)[[Asset_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/asset-bool-exp.mdx) #### [Asset_bool_exp.address](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Asset_bool_exp.chainId](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Asset_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [Asset_bool_exp.decimals](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Asset_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Asset_bool_exp.name](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Asset_bool_exp.streams](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Asset_bool_exp.streams_aggregate](#)[Stream_aggregate_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-aggregate-bool-exp.mdx) #### [Asset_bool_exp.symbol](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) --- ## Asset_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "Asset". ```graphql input Asset_order_by { address: order_by chainId: order_by db_write_timestamp: order_by decimals: order_by id: order_by name: order_by streams_aggregate: Stream_aggregate_order_by symbol: order_by } ``` ### Fields #### [Asset_order_by.address](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Asset_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Asset_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Asset_order_by.decimals](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Asset_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Asset_order_by.name](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Asset_order_by.streams_aggregate](#)[Stream_aggregate_order_by](/docs/api/lockup/graphql/envio/inputs/stream-aggregate-order-by.mdx) #### [Asset_order_by.symbol](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Asset_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "Asset" ```graphql input Asset_stream_cursor_input { initial_value: Asset_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [Asset_stream_cursor_input.initial_value](#)[Asset_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/asset-stream-cursor-value-input.mdx) Stream column input with initial value #### [Asset_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## Asset_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input Asset_stream_cursor_value_input { address: String chainId: numeric db_write_timestamp: timestamp decimals: numeric id: String name: String symbol: String } ``` ### Fields #### [Asset_stream_cursor_value_input.address](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Asset_stream_cursor_value_input.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Asset_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Asset_stream_cursor_value_input.decimals](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Asset_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Asset_stream_cursor_value_input.name](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Asset_stream_cursor_value_input.symbol](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## Batch_aggregate_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by aggregate values of table "Batch" ```graphql input Batch_aggregate_order_by { avg: Batch_avg_order_by count: order_by max: Batch_max_order_by min: Batch_min_order_by stddev: Batch_stddev_order_by stddev_pop: Batch_stddev_pop_order_by stddev_samp: Batch_stddev_samp_order_by sum: Batch_sum_order_by var_pop: Batch_var_pop_order_by var_samp: Batch_var_samp_order_by variance: Batch_variance_order_by } ``` ### Fields #### [Batch_aggregate_order_by.avg](#)[Batch_avg_order_by](/docs/api/lockup/graphql/envio/inputs/batch-avg-order-by.mdx) #### [Batch_aggregate_order_by.count](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_aggregate_order_by.max](#)[Batch_max_order_by](/docs/api/lockup/graphql/envio/inputs/batch-max-order-by.mdx) #### [Batch_aggregate_order_by.min](#)[Batch_min_order_by](/docs/api/lockup/graphql/envio/inputs/batch-min-order-by.mdx) #### [Batch_aggregate_order_by.stddev](#)[Batch_stddev_order_by](/docs/api/lockup/graphql/envio/inputs/batch-stddev-order-by.mdx) #### [Batch_aggregate_order_by.stddev_pop](#)[Batch_stddev_pop_order_by](/docs/api/lockup/graphql/envio/inputs/batch-stddev-pop-order-by.mdx) #### [Batch_aggregate_order_by.stddev_samp](#)[Batch_stddev_samp_order_by](/docs/api/lockup/graphql/envio/inputs/batch-stddev-samp-order-by.mdx) #### [Batch_aggregate_order_by.sum](#)[Batch_sum_order_by](/docs/api/lockup/graphql/envio/inputs/batch-sum-order-by.mdx) #### [Batch_aggregate_order_by.var_pop](#)[Batch_var_pop_order_by](/docs/api/lockup/graphql/envio/inputs/batch-var-pop-order-by.mdx) #### [Batch_aggregate_order_by.var_samp](#)[Batch_var_samp_order_by](/docs/api/lockup/graphql/envio/inputs/batch-var-samp-order-by.mdx) #### [Batch_aggregate_order_by.variance](#)[Batch_variance_order_by](/docs/api/lockup/graphql/envio/inputs/batch-variance-order-by.mdx) --- ## Batch_avg_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by avg() on columns of table "Batch" ```graphql input Batch_avg_order_by { position: order_by size: order_by timestamp: order_by } ``` ### Fields #### [Batch_avg_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_avg_order_by.size](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_avg_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batch_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "Batch". All fields are combined with a logical 'AND'. ```graphql input Batch_bool_exp { _and: [Batch_bool_exp!] _not: Batch_bool_exp _or: [Batch_bool_exp!] batcher: Batcher_bool_exp batcher_id: String_comparison_exp db_write_timestamp: timestamp_comparison_exp hash: String_comparison_exp id: String_comparison_exp position: numeric_comparison_exp size: numeric_comparison_exp streams: Stream_bool_exp streams_aggregate: Stream_aggregate_bool_exp timestamp: numeric_comparison_exp } ``` ### Fields #### [Batch_bool_exp.\_and](#)[[Batch_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/batch-bool-exp.mdx) #### [Batch_bool_exp.\_not](#)[Batch_bool_exp](/docs/api/lockup/graphql/envio/inputs/batch-bool-exp.mdx) #### [Batch_bool_exp.\_or](#)[[Batch_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/batch-bool-exp.mdx) #### [Batch_bool_exp.batcher](#)[Batcher_bool_exp](/docs/api/lockup/graphql/envio/inputs/batcher-bool-exp.mdx) #### [Batch_bool_exp.batcher_id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Batch_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [Batch_bool_exp.hash](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Batch_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Batch_bool_exp.position](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Batch_bool_exp.size](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Batch_bool_exp.streams](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Batch_bool_exp.streams_aggregate](#)[Stream_aggregate_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-aggregate-bool-exp.mdx) #### [Batch_bool_exp.timestamp](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) --- ## Batch_max_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by max() on columns of table "Batch" ```graphql input Batch_max_order_by { batcher_id: order_by db_write_timestamp: order_by hash: order_by id: order_by position: order_by size: order_by timestamp: order_by } ``` ### Fields #### [Batch_max_order_by.batcher_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_max_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_max_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_max_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_max_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_max_order_by.size](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_max_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batch_min_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by min() on columns of table "Batch" ```graphql input Batch_min_order_by { batcher_id: order_by db_write_timestamp: order_by hash: order_by id: order_by position: order_by size: order_by timestamp: order_by } ``` ### Fields #### [Batch_min_order_by.batcher_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_min_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_min_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_min_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_min_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_min_order_by.size](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_min_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batch_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "Batch". ```graphql input Batch_order_by { batcher: Batcher_order_by batcher_id: order_by db_write_timestamp: order_by hash: order_by id: order_by position: order_by size: order_by streams_aggregate: Stream_aggregate_order_by timestamp: order_by } ``` ### Fields #### [Batch_order_by.batcher](#)[Batcher_order_by](/docs/api/lockup/graphql/envio/inputs/batcher-order-by.mdx) #### [Batch_order_by.batcher_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_order_by.size](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_order_by.streams_aggregate](#)[Stream_aggregate_order_by](/docs/api/lockup/graphql/envio/inputs/stream-aggregate-order-by.mdx) #### [Batch_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batch_stddev_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev() on columns of table "Batch" ```graphql input Batch_stddev_order_by { position: order_by size: order_by timestamp: order_by } ``` ### Fields #### [Batch_stddev_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_stddev_order_by.size](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_stddev_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batch_stddev_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_pop() on columns of table "Batch" ```graphql input Batch_stddev_pop_order_by { position: order_by size: order_by timestamp: order_by } ``` ### Fields #### [Batch_stddev_pop_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_stddev_pop_order_by.size](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_stddev_pop_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batch_stddev_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_samp() on columns of table "Batch" ```graphql input Batch_stddev_samp_order_by { position: order_by size: order_by timestamp: order_by } ``` ### Fields #### [Batch_stddev_samp_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_stddev_samp_order_by.size](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_stddev_samp_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batch_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "Batch" ```graphql input Batch_stream_cursor_input { initial_value: Batch_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [Batch_stream_cursor_input.initial_value](#)[Batch_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/batch-stream-cursor-value-input.mdx) Stream column input with initial value #### [Batch_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## Batch_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input Batch_stream_cursor_value_input { batcher_id: String db_write_timestamp: timestamp hash: String id: String position: numeric size: numeric timestamp: numeric } ``` ### Fields #### [Batch_stream_cursor_value_input.batcher_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Batch_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Batch_stream_cursor_value_input.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Batch_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Batch_stream_cursor_value_input.position](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Batch_stream_cursor_value_input.size](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Batch_stream_cursor_value_input.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Batch_sum_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by sum() on columns of table "Batch" ```graphql input Batch_sum_order_by { position: order_by size: order_by timestamp: order_by } ``` ### Fields #### [Batch_sum_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_sum_order_by.size](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_sum_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batch_var_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_pop() on columns of table "Batch" ```graphql input Batch_var_pop_order_by { position: order_by size: order_by timestamp: order_by } ``` ### Fields #### [Batch_var_pop_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_var_pop_order_by.size](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_var_pop_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batch_var_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_samp() on columns of table "Batch" ```graphql input Batch_var_samp_order_by { position: order_by size: order_by timestamp: order_by } ``` ### Fields #### [Batch_var_samp_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_var_samp_order_by.size](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_var_samp_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batch_variance_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by variance() on columns of table "Batch" ```graphql input Batch_variance_order_by { position: order_by size: order_by timestamp: order_by } ``` ### Fields #### [Batch_variance_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_variance_order_by.size](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batch_variance_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batcher_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "Batcher". All fields are combined with a logical 'AND'. ```graphql input Batcher_bool_exp { _and: [Batcher_bool_exp!] _not: Batcher_bool_exp _or: [Batcher_bool_exp!] batchCounter: numeric_comparison_exp batches: Batch_bool_exp db_write_timestamp: timestamp_comparison_exp id: String_comparison_exp } ``` ### Fields #### [Batcher_bool_exp.\_and](#)[[Batcher_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/batcher-bool-exp.mdx) #### [Batcher_bool_exp.\_not](#)[Batcher_bool_exp](/docs/api/lockup/graphql/envio/inputs/batcher-bool-exp.mdx) #### [Batcher_bool_exp.\_or](#)[[Batcher_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/batcher-bool-exp.mdx) #### [Batcher_bool_exp.batchCounter](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Batcher_bool_exp.batches](#)[Batch_bool_exp](/docs/api/lockup/graphql/envio/inputs/batch-bool-exp.mdx) #### [Batcher_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [Batcher_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) --- ## Batcher_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "Batcher". ```graphql input Batcher_order_by { batchCounter: order_by batches_aggregate: Batch_aggregate_order_by db_write_timestamp: order_by id: order_by } ``` ### Fields #### [Batcher_order_by.batchCounter](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batcher_order_by.batches_aggregate](#)[Batch_aggregate_order_by](/docs/api/lockup/graphql/envio/inputs/batch-aggregate-order-by.mdx) #### [Batcher_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Batcher_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Batcher_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "Batcher" ```graphql input Batcher_stream_cursor_input { initial_value: Batcher_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [Batcher_stream_cursor_input.initial_value](#)[Batcher_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/batcher-stream-cursor-value-input.mdx) Stream column input with initial value #### [Batcher_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## Batcher_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input Batcher_stream_cursor_value_input { batchCounter: numeric db_write_timestamp: timestamp id: String } ``` ### Fields #### [Batcher_stream_cursor_value_input.batchCounter](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Batcher_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Batcher_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## Boolean_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. ```graphql input Boolean_comparison_exp { _eq: Boolean _gt: Boolean _gte: Boolean _in: [Boolean!] _is_null: Boolean _lt: Boolean _lte: Boolean _neq: Boolean _nin: [Boolean!] } ``` ### Fields #### [Boolean_comparison_exp.\_eq](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Boolean_comparison_exp.\_gt](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Boolean_comparison_exp.\_gte](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Boolean_comparison_exp.\_in](#)[[Boolean!]](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Boolean_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Boolean_comparison_exp.\_lt](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Boolean_comparison_exp.\_lte](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Boolean_comparison_exp.\_neq](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Boolean_comparison_exp.\_nin](#)[[Boolean!]](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) --- ## chain_metadata_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "chain_metadata". All fields are combined with a logical 'AND'. ```graphql input chain_metadata_bool_exp { _and: [chain_metadata_bool_exp!] _not: chain_metadata_bool_exp _or: [chain_metadata_bool_exp!] block_height: Int_comparison_exp chain_id: Int_comparison_exp end_block: Int_comparison_exp first_event_block_number: Int_comparison_exp is_hyper_sync: Boolean_comparison_exp latest_fetched_block_number: Int_comparison_exp latest_processed_block: Int_comparison_exp num_batches_fetched: Int_comparison_exp num_events_processed: Int_comparison_exp start_block: Int_comparison_exp timestamp_caught_up_to_head_or_endblock: timestamptz_comparison_exp } ``` ### Fields #### [chain_metadata_bool_exp.\_and](#)[[chain_metadata_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/chain-metadata-bool-exp.mdx) #### [chain_metadata_bool_exp.\_not](#)[chain_metadata_bool_exp](/docs/api/lockup/graphql/envio/inputs/chain-metadata-bool-exp.mdx) #### [chain_metadata_bool_exp.\_or](#)[[chain_metadata_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/chain-metadata-bool-exp.mdx) #### [chain_metadata_bool_exp.block_height](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [chain_metadata_bool_exp.chain_id](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [chain_metadata_bool_exp.end_block](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [chain_metadata_bool_exp.first_event_block_number](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [chain_metadata_bool_exp.is_hyper_sync](#)[Boolean_comparison_exp](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) #### [chain_metadata_bool_exp.latest_fetched_block_number](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [chain_metadata_bool_exp.latest_processed_block](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [chain_metadata_bool_exp.num_batches_fetched](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [chain_metadata_bool_exp.num_events_processed](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [chain_metadata_bool_exp.start_block](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [chain_metadata_bool_exp.timestamp_caught_up_to_head_or_endblock](#)[timestamptz_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamptz-comparison-exp.mdx) --- ## chain_metadata_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "chain_metadata". ```graphql input chain_metadata_order_by { block_height: order_by chain_id: order_by end_block: order_by first_event_block_number: order_by is_hyper_sync: order_by latest_fetched_block_number: order_by latest_processed_block: order_by num_batches_fetched: order_by num_events_processed: order_by start_block: order_by timestamp_caught_up_to_head_or_endblock: order_by } ``` ### Fields #### [chain_metadata_order_by.block_height](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [chain_metadata_order_by.chain_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [chain_metadata_order_by.end_block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [chain_metadata_order_by.first_event_block_number](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [chain_metadata_order_by.is_hyper_sync](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [chain_metadata_order_by.latest_fetched_block_number](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [chain_metadata_order_by.latest_processed_block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [chain_metadata_order_by.num_batches_fetched](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [chain_metadata_order_by.num_events_processed](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [chain_metadata_order_by.start_block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [chain_metadata_order_by.timestamp_caught_up_to_head_or_endblock](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## chain_metadata_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "chain_metadata" ```graphql input chain_metadata_stream_cursor_input { initial_value: chain_metadata_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [chain_metadata_stream_cursor_input.initial_value](#)[chain_metadata_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/chain-metadata-stream-cursor-value-input.mdx) Stream column input with initial value #### [chain_metadata_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## chain_metadata_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input chain_metadata_stream_cursor_value_input { block_height: Int chain_id: Int end_block: Int first_event_block_number: Int is_hyper_sync: Boolean latest_fetched_block_number: Int latest_processed_block: Int num_batches_fetched: Int num_events_processed: Int start_block: Int timestamp_caught_up_to_head_or_endblock: timestamptz } ``` ### Fields #### [chain_metadata_stream_cursor_value_input.block_height](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata_stream_cursor_value_input.chain_id](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata_stream_cursor_value_input.end_block](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata_stream_cursor_value_input.first_event_block_number](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata_stream_cursor_value_input.is_hyper_sync](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [chain_metadata_stream_cursor_value_input.latest_fetched_block_number](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata_stream_cursor_value_input.latest_processed_block](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata_stream_cursor_value_input.num_batches_fetched](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata_stream_cursor_value_input.num_events_processed](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata_stream_cursor_value_input.start_block](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata_stream_cursor_value_input.timestamp_caught_up_to_head_or_endblock](#)[timestamptz](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) --- ## Contract_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "Contract". All fields are combined with a logical 'AND'. ```graphql input Contract_bool_exp { _and: [Contract_bool_exp!] _not: Contract_bool_exp _or: [Contract_bool_exp!] actions: Action_bool_exp address: String_comparison_exp admin: String_comparison_exp alias: String_comparison_exp category: contractcategory_comparison_exp chainId: numeric_comparison_exp db_write_timestamp: timestamp_comparison_exp id: String_comparison_exp streams: Stream_bool_exp version: String_comparison_exp } ``` ### Fields #### [Contract_bool_exp.\_and](#)[[Contract_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/contract-bool-exp.mdx) #### [Contract_bool_exp.\_not](#)[Contract_bool_exp](/docs/api/lockup/graphql/envio/inputs/contract-bool-exp.mdx) #### [Contract_bool_exp.\_or](#)[[Contract_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/contract-bool-exp.mdx) #### [Contract_bool_exp.actions](#)[Action_bool_exp](/docs/api/lockup/graphql/envio/inputs/action-bool-exp.mdx) #### [Contract_bool_exp.address](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Contract_bool_exp.admin](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Contract_bool_exp.alias](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Contract_bool_exp.category](#)[contractcategory_comparison_exp](/docs/api/lockup/graphql/envio/inputs/contractcategory-comparison-exp.mdx) #### [Contract_bool_exp.chainId](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Contract_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [Contract_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Contract_bool_exp.streams](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Contract_bool_exp.version](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) --- ## Contract_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "Contract". ```graphql input Contract_order_by { actions_aggregate: Action_aggregate_order_by address: order_by admin: order_by alias: order_by category: order_by chainId: order_by db_write_timestamp: order_by id: order_by streams_aggregate: Stream_aggregate_order_by version: order_by } ``` ### Fields #### [Contract_order_by.actions_aggregate](#)[Action_aggregate_order_by](/docs/api/lockup/graphql/envio/inputs/action-aggregate-order-by.mdx) #### [Contract_order_by.address](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Contract_order_by.admin](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Contract_order_by.alias](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Contract_order_by.category](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Contract_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Contract_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Contract_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Contract_order_by.streams_aggregate](#)[Stream_aggregate_order_by](/docs/api/lockup/graphql/envio/inputs/stream-aggregate-order-by.mdx) #### [Contract_order_by.version](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Contract_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "Contract" ```graphql input Contract_stream_cursor_input { initial_value: Contract_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [Contract_stream_cursor_input.initial_value](#)[Contract_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/contract-stream-cursor-value-input.mdx) Stream column input with initial value #### [Contract_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## Contract_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input Contract_stream_cursor_value_input { address: String admin: String alias: String category: contractcategory chainId: numeric db_write_timestamp: timestamp id: String version: String } ``` ### Fields #### [Contract_stream_cursor_value_input.address](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Contract_stream_cursor_value_input.admin](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Contract_stream_cursor_value_input.alias](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Contract_stream_cursor_value_input.category](#)[contractcategory](/docs/api/lockup/graphql/envio/scalars/contractcategory.mdx) #### [Contract_stream_cursor_value_input.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Contract_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Contract_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Contract_stream_cursor_value_input.version](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## contract_type_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "contract_type". All fields are combined with logical 'AND'. ```graphql input contract_type_comparison_exp { _eq: contract_type _gt: contract_type _gte: contract_type _in: [contract_type!] _is_null: Boolean _lt: contract_type _lte: contract_type _neq: contract_type _nin: [contract_type!] } ``` ### Fields #### [contract_type_comparison_exp.\_eq](#)[contract_type](/docs/api/lockup/graphql/envio/scalars/contract-type.mdx) #### [contract_type_comparison_exp.\_gt](#)[contract_type](/docs/api/lockup/graphql/envio/scalars/contract-type.mdx) #### [contract_type_comparison_exp.\_gte](#)[contract_type](/docs/api/lockup/graphql/envio/scalars/contract-type.mdx) #### [contract_type_comparison_exp.\_in](#)[[contract_type!]](/docs/api/lockup/graphql/envio/scalars/contract-type.mdx) #### [contract_type_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [contract_type_comparison_exp.\_lt](#)[contract_type](/docs/api/lockup/graphql/envio/scalars/contract-type.mdx) #### [contract_type_comparison_exp.\_lte](#)[contract_type](/docs/api/lockup/graphql/envio/scalars/contract-type.mdx) #### [contract_type_comparison_exp.\_neq](#)[contract_type](/docs/api/lockup/graphql/envio/scalars/contract-type.mdx) #### [contract_type_comparison_exp.\_nin](#)[[contract_type!]](/docs/api/lockup/graphql/envio/scalars/contract-type.mdx) --- ## contractcategory_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "contractcategory". All fields are combined with logical 'AND'. ```graphql input contractcategory_comparison_exp { _eq: contractcategory _gt: contractcategory _gte: contractcategory _in: [contractcategory!] _is_null: Boolean _lt: contractcategory _lte: contractcategory _neq: contractcategory _nin: [contractcategory!] } ``` ### Fields #### [contractcategory_comparison_exp.\_eq](#)[contractcategory](/docs/api/lockup/graphql/envio/scalars/contractcategory.mdx) #### [contractcategory_comparison_exp.\_gt](#)[contractcategory](/docs/api/lockup/graphql/envio/scalars/contractcategory.mdx) #### [contractcategory_comparison_exp.\_gte](#)[contractcategory](/docs/api/lockup/graphql/envio/scalars/contractcategory.mdx) #### [contractcategory_comparison_exp.\_in](#)[[contractcategory!]](/docs/api/lockup/graphql/envio/scalars/contractcategory.mdx) #### [contractcategory_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [contractcategory_comparison_exp.\_lt](#)[contractcategory](/docs/api/lockup/graphql/envio/scalars/contractcategory.mdx) #### [contractcategory_comparison_exp.\_lte](#)[contractcategory](/docs/api/lockup/graphql/envio/scalars/contractcategory.mdx) #### [contractcategory_comparison_exp.\_neq](#)[contractcategory](/docs/api/lockup/graphql/envio/scalars/contractcategory.mdx) #### [contractcategory_comparison_exp.\_nin](#)[[contractcategory!]](/docs/api/lockup/graphql/envio/scalars/contractcategory.mdx) --- ## dynamic_contract_registry_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "dynamic_contract_registry". All fields are combined with a logical 'AND'. ```graphql input dynamic_contract_registry_bool_exp { _and: [dynamic_contract_registry_bool_exp!] _not: dynamic_contract_registry_bool_exp _or: [dynamic_contract_registry_bool_exp!] chain_id: Int_comparison_exp contract_address: String_comparison_exp contract_type: contract_type_comparison_exp id: String_comparison_exp registering_event_block_number: Int_comparison_exp registering_event_block_timestamp: Int_comparison_exp registering_event_contract_name: String_comparison_exp registering_event_log_index: Int_comparison_exp registering_event_name: String_comparison_exp registering_event_src_address: String_comparison_exp } ``` ### Fields #### [dynamic_contract_registry_bool_exp.\_and](#)[[dynamic_contract_registry_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/dynamic-contract-registry-bool-exp.mdx) #### [dynamic_contract_registry_bool_exp.\_not](#)[dynamic_contract_registry_bool_exp](/docs/api/lockup/graphql/envio/inputs/dynamic-contract-registry-bool-exp.mdx) #### [dynamic_contract_registry_bool_exp.\_or](#)[[dynamic_contract_registry_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/dynamic-contract-registry-bool-exp.mdx) #### [dynamic_contract_registry_bool_exp.chain_id](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [dynamic_contract_registry_bool_exp.contract_address](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [dynamic_contract_registry_bool_exp.contract_type](#)[contract_type_comparison_exp](/docs/api/lockup/graphql/envio/inputs/contract-type-comparison-exp.mdx) #### [dynamic_contract_registry_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [dynamic_contract_registry_bool_exp.registering_event_block_number](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [dynamic_contract_registry_bool_exp.registering_event_block_timestamp](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [dynamic_contract_registry_bool_exp.registering_event_contract_name](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [dynamic_contract_registry_bool_exp.registering_event_log_index](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [dynamic_contract_registry_bool_exp.registering_event_name](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [dynamic_contract_registry_bool_exp.registering_event_src_address](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) --- ## dynamic_contract_registry_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "dynamic_contract_registry". ```graphql input dynamic_contract_registry_order_by { chain_id: order_by contract_address: order_by contract_type: order_by id: order_by registering_event_block_number: order_by registering_event_block_timestamp: order_by registering_event_contract_name: order_by registering_event_log_index: order_by registering_event_name: order_by registering_event_src_address: order_by } ``` ### Fields #### [dynamic_contract_registry_order_by.chain_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [dynamic_contract_registry_order_by.contract_address](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [dynamic_contract_registry_order_by.contract_type](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [dynamic_contract_registry_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [dynamic_contract_registry_order_by.registering_event_block_number](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [dynamic_contract_registry_order_by.registering_event_block_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [dynamic_contract_registry_order_by.registering_event_contract_name](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [dynamic_contract_registry_order_by.registering_event_log_index](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [dynamic_contract_registry_order_by.registering_event_name](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [dynamic_contract_registry_order_by.registering_event_src_address](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## dynamic_contract_registry_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "dynamic_contract_registry" ```graphql input dynamic_contract_registry_stream_cursor_input { initial_value: dynamic_contract_registry_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [dynamic_contract_registry_stream_cursor_input.initial_value](#)[dynamic_contract_registry_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/dynamic-contract-registry-stream-cursor-value-input.mdx) Stream column input with initial value #### [dynamic_contract_registry_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## dynamic_contract_registry_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input dynamic_contract_registry_stream_cursor_value_input { chain_id: Int contract_address: String contract_type: contract_type id: String registering_event_block_number: Int registering_event_block_timestamp: Int registering_event_contract_name: String registering_event_log_index: Int registering_event_name: String registering_event_src_address: String } ``` ### Fields #### [dynamic_contract_registry_stream_cursor_value_input.chain_id](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [dynamic_contract_registry_stream_cursor_value_input.contract_address](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [dynamic_contract_registry_stream_cursor_value_input.contract_type](#)[contract_type](/docs/api/lockup/graphql/envio/scalars/contract-type.mdx) #### [dynamic_contract_registry_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [dynamic_contract_registry_stream_cursor_value_input.registering_event_block_number](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [dynamic_contract_registry_stream_cursor_value_input.registering_event_block_timestamp](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [dynamic_contract_registry_stream_cursor_value_input.registering_event_contract_name](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [dynamic_contract_registry_stream_cursor_value_input.registering_event_log_index](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [dynamic_contract_registry_stream_cursor_value_input.registering_event_name](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [dynamic_contract_registry_stream_cursor_value_input.registering_event_src_address](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## end_of_block_range_scanned_data_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "end_of_block_range_scanned_data". All fields are combined with a logical 'AND'. ```graphql input end_of_block_range_scanned_data_bool_exp { _and: [end_of_block_range_scanned_data_bool_exp!] _not: end_of_block_range_scanned_data_bool_exp _or: [end_of_block_range_scanned_data_bool_exp!] block_hash: String_comparison_exp block_number: Int_comparison_exp chain_id: Int_comparison_exp } ``` ### Fields #### [end_of_block_range_scanned_data_bool_exp.\_and](#)[[end_of_block_range_scanned_data_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/end-of-block-range-scanned-data-bool-exp.mdx) #### [end_of_block_range_scanned_data_bool_exp.\_not](#)[end_of_block_range_scanned_data_bool_exp](/docs/api/lockup/graphql/envio/inputs/end-of-block-range-scanned-data-bool-exp.mdx) #### [end_of_block_range_scanned_data_bool_exp.\_or](#)[[end_of_block_range_scanned_data_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/end-of-block-range-scanned-data-bool-exp.mdx) #### [end_of_block_range_scanned_data_bool_exp.block_hash](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [end_of_block_range_scanned_data_bool_exp.block_number](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [end_of_block_range_scanned_data_bool_exp.chain_id](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) --- ## end_of_block_range_scanned_data_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "end_of_block_range_scanned_data". ```graphql input end_of_block_range_scanned_data_order_by { block_hash: order_by block_number: order_by chain_id: order_by } ``` ### Fields #### [end_of_block_range_scanned_data_order_by.block_hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [end_of_block_range_scanned_data_order_by.block_number](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [end_of_block_range_scanned_data_order_by.chain_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## end_of_block_range_scanned_data_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "end_of_block_range_scanned_data" ```graphql input end_of_block_range_scanned_data_stream_cursor_input { initial_value: end_of_block_range_scanned_data_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [end_of_block_range_scanned_data_stream_cursor_input.initial_value](#)[end_of_block_range_scanned_data_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/end-of-block-range-scanned-data-stream-cursor-value-input.mdx) Stream column input with initial value #### [end_of_block_range_scanned_data_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## end_of_block_range_scanned_data_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input end_of_block_range_scanned_data_stream_cursor_value_input { block_hash: String block_number: Int chain_id: Int } ``` ### Fields #### [end_of_block_range_scanned_data_stream_cursor_value_input.block_hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [end_of_block_range_scanned_data_stream_cursor_value_input.block_number](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [end_of_block_range_scanned_data_stream_cursor_value_input.chain_id](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) --- ## event_sync_state_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "event_sync_state". All fields are combined with a logical 'AND'. ```graphql input event_sync_state_bool_exp { _and: [event_sync_state_bool_exp!] _not: event_sync_state_bool_exp _or: [event_sync_state_bool_exp!] block_number: Int_comparison_exp block_timestamp: Int_comparison_exp chain_id: Int_comparison_exp is_pre_registering_dynamic_contracts: Boolean_comparison_exp log_index: Int_comparison_exp } ``` ### Fields #### [event_sync_state_bool_exp.\_and](#)[[event_sync_state_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/event-sync-state-bool-exp.mdx) #### [event_sync_state_bool_exp.\_not](#)[event_sync_state_bool_exp](/docs/api/lockup/graphql/envio/inputs/event-sync-state-bool-exp.mdx) #### [event_sync_state_bool_exp.\_or](#)[[event_sync_state_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/event-sync-state-bool-exp.mdx) #### [event_sync_state_bool_exp.block_number](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [event_sync_state_bool_exp.block_timestamp](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [event_sync_state_bool_exp.chain_id](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [event_sync_state_bool_exp.is_pre_registering_dynamic_contracts](#)[Boolean_comparison_exp](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) #### [event_sync_state_bool_exp.log_index](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) --- ## event_sync_state_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "event_sync_state". ```graphql input event_sync_state_order_by { block_number: order_by block_timestamp: order_by chain_id: order_by is_pre_registering_dynamic_contracts: order_by log_index: order_by } ``` ### Fields #### [event_sync_state_order_by.block_number](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [event_sync_state_order_by.block_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [event_sync_state_order_by.chain_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [event_sync_state_order_by.is_pre_registering_dynamic_contracts](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [event_sync_state_order_by.log_index](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## event_sync_state_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "event_sync_state" ```graphql input event_sync_state_stream_cursor_input { initial_value: event_sync_state_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [event_sync_state_stream_cursor_input.initial_value](#)[event_sync_state_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/event-sync-state-stream-cursor-value-input.mdx) Stream column input with initial value #### [event_sync_state_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## event_sync_state_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input event_sync_state_stream_cursor_value_input { block_number: Int block_timestamp: Int chain_id: Int is_pre_registering_dynamic_contracts: Boolean log_index: Int } ``` ### Fields #### [event_sync_state_stream_cursor_value_input.block_number](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [event_sync_state_stream_cursor_value_input.block_timestamp](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [event_sync_state_stream_cursor_value_input.chain_id](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [event_sync_state_stream_cursor_value_input.is_pre_registering_dynamic_contracts](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [event_sync_state_stream_cursor_value_input.log_index](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) --- ## float8_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "float8". All fields are combined with logical 'AND'. ```graphql input float8_comparison_exp { _eq: float8 _gt: float8 _gte: float8 _in: [float8!] _is_null: Boolean _lt: float8 _lte: float8 _neq: float8 _nin: [float8!] } ``` ### Fields #### [float8_comparison_exp.\_eq](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [float8_comparison_exp.\_gt](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [float8_comparison_exp.\_gte](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [float8_comparison_exp.\_in](#)[[float8!]](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [float8_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [float8_comparison_exp.\_lt](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [float8_comparison_exp.\_lte](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [float8_comparison_exp.\_neq](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [float8_comparison_exp.\_nin](#)[[float8!]](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) --- ## Int_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. ```graphql input Int_comparison_exp { _eq: Int _gt: Int _gte: Int _in: [Int!] _is_null: Boolean _lt: Int _lte: Int _neq: Int _nin: [Int!] } ``` ### Fields #### [Int_comparison_exp.\_eq](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [Int_comparison_exp.\_gt](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [Int_comparison_exp.\_gte](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [Int_comparison_exp.\_in](#)[[Int!]](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [Int_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Int_comparison_exp.\_lt](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [Int_comparison_exp.\_lte](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [Int_comparison_exp.\_neq](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [Int_comparison_exp.\_nin](#)[[Int!]](/docs/api/lockup/graphql/envio/scalars/int.mdx) --- ## jsonb_cast_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input jsonb_cast_exp { String: String_comparison_exp } ``` ### Fields #### [jsonb_cast_exp.String](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) --- ## jsonb_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. ```graphql input jsonb_comparison_exp { _cast: jsonb_cast_exp _contained_in: jsonb _contains: jsonb _eq: jsonb _gt: jsonb _gte: jsonb _has_key: String _has_keys_all: [String!] _has_keys_any: [String!] _in: [jsonb!] _is_null: Boolean _lt: jsonb _lte: jsonb _neq: jsonb _nin: [jsonb!] } ``` ### Fields #### [jsonb_comparison_exp.\_cast](#)[jsonb_cast_exp](/docs/api/lockup/graphql/envio/inputs/jsonb-cast-exp.mdx) #### [jsonb_comparison_exp.\_contained_in](#)[jsonb](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) is the column contained in the given json value #### [jsonb_comparison_exp.\_contains](#)[jsonb](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) does the column contain the given json value at the top level #### [jsonb_comparison_exp.\_eq](#)[jsonb](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) #### [jsonb_comparison_exp.\_gt](#)[jsonb](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) #### [jsonb_comparison_exp.\_gte](#)[jsonb](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) #### [jsonb_comparison_exp.\_has_key](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the string exist as a top-level key in the column #### [jsonb_comparison_exp.\_has_keys_all](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) do all of these strings exist as top-level keys in the column #### [jsonb_comparison_exp.\_has_keys_any](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) do any of these strings exist as top-level keys in the column #### [jsonb_comparison_exp.\_in](#)[[jsonb!]](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) #### [jsonb_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [jsonb_comparison_exp.\_lt](#)[jsonb](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) #### [jsonb_comparison_exp.\_lte](#)[jsonb](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) #### [jsonb_comparison_exp.\_neq](#)[jsonb](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) #### [jsonb_comparison_exp.\_nin](#)[[jsonb!]](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) --- ## numeric_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. ```graphql input numeric_comparison_exp { _eq: numeric _gt: numeric _gte: numeric _in: [numeric!] _is_null: Boolean _lt: numeric _lte: numeric _neq: numeric _nin: [numeric!] } ``` ### Fields #### [numeric_comparison_exp.\_eq](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [numeric_comparison_exp.\_gt](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [numeric_comparison_exp.\_gte](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [numeric_comparison_exp.\_in](#)[[numeric!]](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [numeric_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [numeric_comparison_exp.\_lt](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [numeric_comparison_exp.\_lte](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [numeric_comparison_exp.\_neq](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [numeric_comparison_exp.\_nin](#)[[numeric!]](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## persisted_state_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "persisted_state". All fields are combined with a logical 'AND'. ```graphql input persisted_state_bool_exp { _and: [persisted_state_bool_exp!] _not: persisted_state_bool_exp _or: [persisted_state_bool_exp!] abi_files_hash: String_comparison_exp config_hash: String_comparison_exp envio_version: String_comparison_exp handler_files_hash: String_comparison_exp id: Int_comparison_exp schema_hash: String_comparison_exp } ``` ### Fields #### [persisted_state_bool_exp.\_and](#)[[persisted_state_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/persisted-state-bool-exp.mdx) #### [persisted_state_bool_exp.\_not](#)[persisted_state_bool_exp](/docs/api/lockup/graphql/envio/inputs/persisted-state-bool-exp.mdx) #### [persisted_state_bool_exp.\_or](#)[[persisted_state_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/persisted-state-bool-exp.mdx) #### [persisted_state_bool_exp.abi_files_hash](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [persisted_state_bool_exp.config_hash](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [persisted_state_bool_exp.envio_version](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [persisted_state_bool_exp.handler_files_hash](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [persisted_state_bool_exp.id](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [persisted_state_bool_exp.schema_hash](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) --- ## persisted_state_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "persisted_state". ```graphql input persisted_state_order_by { abi_files_hash: order_by config_hash: order_by envio_version: order_by handler_files_hash: order_by id: order_by schema_hash: order_by } ``` ### Fields #### [persisted_state_order_by.abi_files_hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [persisted_state_order_by.config_hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [persisted_state_order_by.envio_version](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [persisted_state_order_by.handler_files_hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [persisted_state_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [persisted_state_order_by.schema_hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## persisted_state_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "persisted_state" ```graphql input persisted_state_stream_cursor_input { initial_value: persisted_state_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [persisted_state_stream_cursor_input.initial_value](#)[persisted_state_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/persisted-state-stream-cursor-value-input.mdx) Stream column input with initial value #### [persisted_state_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## persisted_state_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input persisted_state_stream_cursor_value_input { abi_files_hash: String config_hash: String envio_version: String handler_files_hash: String id: Int schema_hash: String } ``` ### Fields #### [persisted_state_stream_cursor_value_input.abi_files_hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [persisted_state_stream_cursor_value_input.config_hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [persisted_state_stream_cursor_value_input.envio_version](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [persisted_state_stream_cursor_value_input.handler_files_hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [persisted_state_stream_cursor_value_input.id](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [persisted_state_stream_cursor_value_input.schema_hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## raw_events_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "raw_events". All fields are combined with a logical 'AND'. ```graphql input raw_events_bool_exp { _and: [raw_events_bool_exp!] _not: raw_events_bool_exp _or: [raw_events_bool_exp!] block_fields: jsonb_comparison_exp block_hash: String_comparison_exp block_number: Int_comparison_exp block_timestamp: Int_comparison_exp chain_id: Int_comparison_exp contract_name: String_comparison_exp db_write_timestamp: timestamp_comparison_exp event_id: numeric_comparison_exp event_name: String_comparison_exp log_index: Int_comparison_exp params: jsonb_comparison_exp serial: Int_comparison_exp src_address: String_comparison_exp transaction_fields: jsonb_comparison_exp } ``` ### Fields #### [raw_events_bool_exp.\_and](#)[[raw_events_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/raw-events-bool-exp.mdx) #### [raw_events_bool_exp.\_not](#)[raw_events_bool_exp](/docs/api/lockup/graphql/envio/inputs/raw-events-bool-exp.mdx) #### [raw_events_bool_exp.\_or](#)[[raw_events_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/raw-events-bool-exp.mdx) #### [raw_events_bool_exp.block_fields](#)[jsonb_comparison_exp](/docs/api/lockup/graphql/envio/inputs/jsonb-comparison-exp.mdx) #### [raw_events_bool_exp.block_hash](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [raw_events_bool_exp.block_number](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [raw_events_bool_exp.block_timestamp](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [raw_events_bool_exp.chain_id](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [raw_events_bool_exp.contract_name](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [raw_events_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [raw_events_bool_exp.event_id](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [raw_events_bool_exp.event_name](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [raw_events_bool_exp.log_index](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [raw_events_bool_exp.params](#)[jsonb_comparison_exp](/docs/api/lockup/graphql/envio/inputs/jsonb-comparison-exp.mdx) #### [raw_events_bool_exp.serial](#)[Int_comparison_exp](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) #### [raw_events_bool_exp.src_address](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [raw_events_bool_exp.transaction_fields](#)[jsonb_comparison_exp](/docs/api/lockup/graphql/envio/inputs/jsonb-comparison-exp.mdx) --- ## raw_events_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "raw_events". ```graphql input raw_events_order_by { block_fields: order_by block_hash: order_by block_number: order_by block_timestamp: order_by chain_id: order_by contract_name: order_by db_write_timestamp: order_by event_id: order_by event_name: order_by log_index: order_by params: order_by serial: order_by src_address: order_by transaction_fields: order_by } ``` ### Fields #### [raw_events_order_by.block_fields](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.block_hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.block_number](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.block_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.chain_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.contract_name](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.event_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.event_name](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.log_index](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.params](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.serial](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.src_address](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [raw_events_order_by.transaction_fields](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## raw_events_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "raw_events" ```graphql input raw_events_stream_cursor_input { initial_value: raw_events_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [raw_events_stream_cursor_input.initial_value](#)[raw_events_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/raw-events-stream-cursor-value-input.mdx) Stream column input with initial value #### [raw_events_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## raw_events_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input raw_events_stream_cursor_value_input { block_fields: jsonb block_hash: String block_number: Int block_timestamp: Int chain_id: Int contract_name: String db_write_timestamp: timestamp event_id: numeric event_name: String log_index: Int params: jsonb serial: Int src_address: String transaction_fields: jsonb } ``` ### Fields #### [raw_events_stream_cursor_value_input.block_fields](#)[jsonb](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) #### [raw_events_stream_cursor_value_input.block_hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [raw_events_stream_cursor_value_input.block_number](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [raw_events_stream_cursor_value_input.block_timestamp](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [raw_events_stream_cursor_value_input.chain_id](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [raw_events_stream_cursor_value_input.contract_name](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [raw_events_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [raw_events_stream_cursor_value_input.event_id](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [raw_events_stream_cursor_value_input.event_name](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [raw_events_stream_cursor_value_input.log_index](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [raw_events_stream_cursor_value_input.params](#)[jsonb](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) #### [raw_events_stream_cursor_value_input.serial](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [raw_events_stream_cursor_value_input.src_address](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [raw_events_stream_cursor_value_input.transaction_fields](#)[jsonb](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) --- ## Revenue_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "Revenue". All fields are combined with a logical 'AND'. ```graphql input Revenue_bool_exp { _and: [Revenue_bool_exp!] _not: Revenue_bool_exp _or: [Revenue_bool_exp!] amount: float8_comparison_exp chainId: numeric_comparison_exp currency: String_comparison_exp date: String_comparison_exp dateTimestamp: timestamptz_comparison_exp db_write_timestamp: timestamp_comparison_exp id: String_comparison_exp transactions: RevenueTransaction_bool_exp transactions_aggregate: RevenueTransaction_aggregate_bool_exp } ``` ### Fields #### [Revenue_bool_exp.\_and](#)[[Revenue_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/revenue-bool-exp.mdx) #### [Revenue_bool_exp.\_not](#)[Revenue_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-bool-exp.mdx) #### [Revenue_bool_exp.\_or](#)[[Revenue_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/revenue-bool-exp.mdx) #### [Revenue_bool_exp.amount](#)[float8_comparison_exp](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) #### [Revenue_bool_exp.chainId](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Revenue_bool_exp.currency](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Revenue_bool_exp.date](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Revenue_bool_exp.dateTimestamp](#)[timestamptz_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamptz-comparison-exp.mdx) #### [Revenue_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [Revenue_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Revenue_bool_exp.transactions](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [Revenue_bool_exp.transactions_aggregate](#)[RevenueTransaction_aggregate_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp.mdx) --- ## Revenue_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "Revenue". ```graphql input Revenue_order_by { amount: order_by chainId: order_by currency: order_by date: order_by dateTimestamp: order_by db_write_timestamp: order_by id: order_by transactions_aggregate: RevenueTransaction_aggregate_order_by } ``` ### Fields #### [Revenue_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Revenue_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Revenue_order_by.currency](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Revenue_order_by.date](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Revenue_order_by.dateTimestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Revenue_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Revenue_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Revenue_order_by.transactions_aggregate](#)[RevenueTransaction_aggregate_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-order-by.mdx) --- ## Revenue_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "Revenue" ```graphql input Revenue_stream_cursor_input { initial_value: Revenue_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [Revenue_stream_cursor_input.initial_value](#)[Revenue_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/revenue-stream-cursor-value-input.mdx) Stream column input with initial value #### [Revenue_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## Revenue_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input Revenue_stream_cursor_value_input { amount: float8 chainId: numeric currency: String date: String dateTimestamp: timestamptz db_write_timestamp: timestamp id: String } ``` ### Fields #### [Revenue_stream_cursor_value_input.amount](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [Revenue_stream_cursor_value_input.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Revenue_stream_cursor_value_input.currency](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Revenue_stream_cursor_value_input.date](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Revenue_stream_cursor_value_input.dateTimestamp](#)[timestamptz](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) #### [Revenue_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Revenue_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## RevenueTransaction_aggregate_bool_exp_avg export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp_avg { arguments: RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_avg_arguments_columns! distinct: Boolean filter: RevenueTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp_avg.arguments](#)[RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_avg_arguments_columns!](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column-revenue-transaction-aggregate-bool-exp-avg-arguments-columns.mdx) #### [RevenueTransaction_aggregate_bool_exp_avg.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [RevenueTransaction_aggregate_bool_exp_avg.filter](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_aggregate_bool_exp_avg.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## RevenueTransaction_aggregate_bool_exp_corr_arguments export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp_corr_arguments { X: RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_corr_arguments_columns! Y: RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_corr_arguments_columns! } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp_corr_arguments.X](#)[RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_corr_arguments_columns!](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column-revenue-transaction-aggregate-bool-exp-corr-arguments-columns.mdx) #### [RevenueTransaction_aggregate_bool_exp_corr_arguments.Y](#)[RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_corr_arguments_columns!](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column-revenue-transaction-aggregate-bool-exp-corr-arguments-columns.mdx) --- ## RevenueTransaction_aggregate_bool_exp_corr export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp_corr { arguments: RevenueTransaction_aggregate_bool_exp_corr_arguments! distinct: Boolean filter: RevenueTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp_corr.arguments](#)[RevenueTransaction_aggregate_bool_exp_corr_arguments!](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp-corr-arguments.mdx) #### [RevenueTransaction_aggregate_bool_exp_corr.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [RevenueTransaction_aggregate_bool_exp_corr.filter](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_aggregate_bool_exp_corr.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## RevenueTransaction_aggregate_bool_exp_count export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp_count { arguments: [RevenueTransaction_select_column!] distinct: Boolean filter: RevenueTransaction_bool_exp predicate: Int_comparison_exp! } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp_count.arguments](#)[[RevenueTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column.mdx) #### [RevenueTransaction_aggregate_bool_exp_count.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [RevenueTransaction_aggregate_bool_exp_count.filter](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_aggregate_bool_exp_count.predicate](#)[Int_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) --- ## RevenueTransaction_aggregate_bool_exp_covar_samp_arguments export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp_covar_samp_arguments { X: RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_covar_samp_arguments_columns! Y: RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_covar_samp_arguments_columns! } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp_covar_samp_arguments.X](#)[RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_covar_samp_arguments_columns!](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column-revenue-transaction-aggregate-bool-exp-covar-samp-arguments-columns.mdx) #### [RevenueTransaction_aggregate_bool_exp_covar_samp_arguments.Y](#)[RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_covar_samp_arguments_columns!](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column-revenue-transaction-aggregate-bool-exp-covar-samp-arguments-columns.mdx) --- ## RevenueTransaction_aggregate_bool_exp_covar_samp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp_covar_samp { arguments: RevenueTransaction_aggregate_bool_exp_covar_samp_arguments! distinct: Boolean filter: RevenueTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp_covar_samp.arguments](#)[RevenueTransaction_aggregate_bool_exp_covar_samp_arguments!](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp-covar-samp-arguments.mdx) #### [RevenueTransaction_aggregate_bool_exp_covar_samp.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [RevenueTransaction_aggregate_bool_exp_covar_samp.filter](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_aggregate_bool_exp_covar_samp.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## RevenueTransaction_aggregate_bool_exp_max export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp_max { arguments: RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_max_arguments_columns! distinct: Boolean filter: RevenueTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp_max.arguments](#)[RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_max_arguments_columns!](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column-revenue-transaction-aggregate-bool-exp-max-arguments-columns.mdx) #### [RevenueTransaction_aggregate_bool_exp_max.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [RevenueTransaction_aggregate_bool_exp_max.filter](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_aggregate_bool_exp_max.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## RevenueTransaction_aggregate_bool_exp_min export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp_min { arguments: RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_min_arguments_columns! distinct: Boolean filter: RevenueTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp_min.arguments](#)[RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_min_arguments_columns!](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column-revenue-transaction-aggregate-bool-exp-min-arguments-columns.mdx) #### [RevenueTransaction_aggregate_bool_exp_min.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [RevenueTransaction_aggregate_bool_exp_min.filter](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_aggregate_bool_exp_min.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## RevenueTransaction_aggregate_bool_exp_stddev_samp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp_stddev_samp { arguments: RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_stddev_samp_arguments_columns! distinct: Boolean filter: RevenueTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp_stddev_samp.arguments](#)[RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_stddev_samp_arguments_columns!](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column-revenue-transaction-aggregate-bool-exp-stddev-samp-arguments-columns.mdx) #### [RevenueTransaction_aggregate_bool_exp_stddev_samp.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [RevenueTransaction_aggregate_bool_exp_stddev_samp.filter](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_aggregate_bool_exp_stddev_samp.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## RevenueTransaction_aggregate_bool_exp_sum export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp_sum { arguments: RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_sum_arguments_columns! distinct: Boolean filter: RevenueTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp_sum.arguments](#)[RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_sum_arguments_columns!](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column-revenue-transaction-aggregate-bool-exp-sum-arguments-columns.mdx) #### [RevenueTransaction_aggregate_bool_exp_sum.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [RevenueTransaction_aggregate_bool_exp_sum.filter](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_aggregate_bool_exp_sum.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## RevenueTransaction_aggregate_bool_exp_var_samp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp_var_samp { arguments: RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_var_samp_arguments_columns! distinct: Boolean filter: RevenueTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp_var_samp.arguments](#)[RevenueTransaction_select_column_RevenueTransaction_aggregate_bool_exp_var_samp_arguments_columns!](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column-revenue-transaction-aggregate-bool-exp-var-samp-arguments-columns.mdx) #### [RevenueTransaction_aggregate_bool_exp_var_samp.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [RevenueTransaction_aggregate_bool_exp_var_samp.filter](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_aggregate_bool_exp_var_samp.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## RevenueTransaction_aggregate_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input RevenueTransaction_aggregate_bool_exp { avg: RevenueTransaction_aggregate_bool_exp_avg corr: RevenueTransaction_aggregate_bool_exp_corr count: RevenueTransaction_aggregate_bool_exp_count covar_samp: RevenueTransaction_aggregate_bool_exp_covar_samp max: RevenueTransaction_aggregate_bool_exp_max min: RevenueTransaction_aggregate_bool_exp_min stddev_samp: RevenueTransaction_aggregate_bool_exp_stddev_samp sum: RevenueTransaction_aggregate_bool_exp_sum var_samp: RevenueTransaction_aggregate_bool_exp_var_samp } ``` ### Fields #### [RevenueTransaction_aggregate_bool_exp.avg](#)[RevenueTransaction_aggregate_bool_exp_avg](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp-avg.mdx) #### [RevenueTransaction_aggregate_bool_exp.corr](#)[RevenueTransaction_aggregate_bool_exp_corr](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp-corr.mdx) #### [RevenueTransaction_aggregate_bool_exp.count](#)[RevenueTransaction_aggregate_bool_exp_count](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp-count.mdx) #### [RevenueTransaction_aggregate_bool_exp.covar_samp](#)[RevenueTransaction_aggregate_bool_exp_covar_samp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp-covar-samp.mdx) #### [RevenueTransaction_aggregate_bool_exp.max](#)[RevenueTransaction_aggregate_bool_exp_max](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp-max.mdx) #### [RevenueTransaction_aggregate_bool_exp.min](#)[RevenueTransaction_aggregate_bool_exp_min](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp-min.mdx) #### [RevenueTransaction_aggregate_bool_exp.stddev_samp](#)[RevenueTransaction_aggregate_bool_exp_stddev_samp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp-stddev-samp.mdx) #### [RevenueTransaction_aggregate_bool_exp.sum](#)[RevenueTransaction_aggregate_bool_exp_sum](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp-sum.mdx) #### [RevenueTransaction_aggregate_bool_exp.var_samp](#)[RevenueTransaction_aggregate_bool_exp_var_samp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-aggregate-bool-exp-var-samp.mdx) --- ## RevenueTransaction_aggregate_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by aggregate values of table "RevenueTransaction" ```graphql input RevenueTransaction_aggregate_order_by { avg: RevenueTransaction_avg_order_by count: order_by max: RevenueTransaction_max_order_by min: RevenueTransaction_min_order_by stddev: RevenueTransaction_stddev_order_by stddev_pop: RevenueTransaction_stddev_pop_order_by stddev_samp: RevenueTransaction_stddev_samp_order_by sum: RevenueTransaction_sum_order_by var_pop: RevenueTransaction_var_pop_order_by var_samp: RevenueTransaction_var_samp_order_by variance: RevenueTransaction_variance_order_by } ``` ### Fields #### [RevenueTransaction_aggregate_order_by.avg](#)[RevenueTransaction_avg_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-avg-order-by.mdx) #### [RevenueTransaction_aggregate_order_by.count](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_aggregate_order_by.max](#)[RevenueTransaction_max_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-max-order-by.mdx) #### [RevenueTransaction_aggregate_order_by.min](#)[RevenueTransaction_min_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-min-order-by.mdx) #### [RevenueTransaction_aggregate_order_by.stddev](#)[RevenueTransaction_stddev_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-stddev-order-by.mdx) #### [RevenueTransaction_aggregate_order_by.stddev_pop](#)[RevenueTransaction_stddev_pop_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-stddev-pop-order-by.mdx) #### [RevenueTransaction_aggregate_order_by.stddev_samp](#)[RevenueTransaction_stddev_samp_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-stddev-samp-order-by.mdx) #### [RevenueTransaction_aggregate_order_by.sum](#)[RevenueTransaction_sum_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-sum-order-by.mdx) #### [RevenueTransaction_aggregate_order_by.var_pop](#)[RevenueTransaction_var_pop_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-var-pop-order-by.mdx) #### [RevenueTransaction_aggregate_order_by.var_samp](#)[RevenueTransaction_var_samp_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-var-samp-order-by.mdx) #### [RevenueTransaction_aggregate_order_by.variance](#)[RevenueTransaction_variance_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-variance-order-by.mdx) --- ## RevenueTransaction_avg_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by avg() on columns of table "RevenueTransaction" ```graphql input RevenueTransaction_avg_order_by { amount: order_by block: order_by timestamp: order_by } ``` ### Fields #### [RevenueTransaction_avg_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_avg_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_avg_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## RevenueTransaction_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "RevenueTransaction". All fields are combined with a logical 'AND'. ```graphql input RevenueTransaction_bool_exp { _and: [RevenueTransaction_bool_exp!] _not: RevenueTransaction_bool_exp _or: [RevenueTransaction_bool_exp!] amount: float8_comparison_exp block: numeric_comparison_exp db_write_timestamp: timestamp_comparison_exp hash: String_comparison_exp id: String_comparison_exp revenue: Revenue_bool_exp revenue_id: String_comparison_exp timestamp: numeric_comparison_exp } ``` ### Fields #### [RevenueTransaction_bool_exp.\_and](#)[[RevenueTransaction_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_bool_exp.\_not](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_bool_exp.\_or](#)[[RevenueTransaction_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) #### [RevenueTransaction_bool_exp.amount](#)[float8_comparison_exp](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) #### [RevenueTransaction_bool_exp.block](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [RevenueTransaction_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [RevenueTransaction_bool_exp.hash](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [RevenueTransaction_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [RevenueTransaction_bool_exp.revenue](#)[Revenue_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-bool-exp.mdx) #### [RevenueTransaction_bool_exp.revenue_id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [RevenueTransaction_bool_exp.timestamp](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) --- ## RevenueTransaction_max_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by max() on columns of table "RevenueTransaction" ```graphql input RevenueTransaction_max_order_by { amount: order_by block: order_by db_write_timestamp: order_by hash: order_by id: order_by revenue_id: order_by timestamp: order_by } ``` ### Fields #### [RevenueTransaction_max_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_max_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_max_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_max_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_max_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_max_order_by.revenue_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_max_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## RevenueTransaction_min_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by min() on columns of table "RevenueTransaction" ```graphql input RevenueTransaction_min_order_by { amount: order_by block: order_by db_write_timestamp: order_by hash: order_by id: order_by revenue_id: order_by timestamp: order_by } ``` ### Fields #### [RevenueTransaction_min_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_min_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_min_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_min_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_min_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_min_order_by.revenue_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_min_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## RevenueTransaction_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "RevenueTransaction". ```graphql input RevenueTransaction_order_by { amount: order_by block: order_by db_write_timestamp: order_by hash: order_by id: order_by revenue: Revenue_order_by revenue_id: order_by timestamp: order_by } ``` ### Fields #### [RevenueTransaction_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_order_by.revenue](#)[Revenue_order_by](/docs/api/lockup/graphql/envio/inputs/revenue-order-by.mdx) #### [RevenueTransaction_order_by.revenue_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## RevenueTransaction_stddev_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev() on columns of table "RevenueTransaction" ```graphql input RevenueTransaction_stddev_order_by { amount: order_by block: order_by timestamp: order_by } ``` ### Fields #### [RevenueTransaction_stddev_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_stddev_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_stddev_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## RevenueTransaction_stddev_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_pop() on columns of table "RevenueTransaction" ```graphql input RevenueTransaction_stddev_pop_order_by { amount: order_by block: order_by timestamp: order_by } ``` ### Fields #### [RevenueTransaction_stddev_pop_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_stddev_pop_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_stddev_pop_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## RevenueTransaction_stddev_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_samp() on columns of table "RevenueTransaction" ```graphql input RevenueTransaction_stddev_samp_order_by { amount: order_by block: order_by timestamp: order_by } ``` ### Fields #### [RevenueTransaction_stddev_samp_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_stddev_samp_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_stddev_samp_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## RevenueTransaction_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "RevenueTransaction" ```graphql input RevenueTransaction_stream_cursor_input { initial_value: RevenueTransaction_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [RevenueTransaction_stream_cursor_input.initial_value](#)[RevenueTransaction_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-stream-cursor-value-input.mdx) Stream column input with initial value #### [RevenueTransaction_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## RevenueTransaction_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input RevenueTransaction_stream_cursor_value_input { amount: float8 block: numeric db_write_timestamp: timestamp hash: String id: String revenue_id: String timestamp: numeric } ``` ### Fields #### [RevenueTransaction_stream_cursor_value_input.amount](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [RevenueTransaction_stream_cursor_value_input.block](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [RevenueTransaction_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [RevenueTransaction_stream_cursor_value_input.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction_stream_cursor_value_input.revenue_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction_stream_cursor_value_input.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## RevenueTransaction_sum_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by sum() on columns of table "RevenueTransaction" ```graphql input RevenueTransaction_sum_order_by { amount: order_by block: order_by timestamp: order_by } ``` ### Fields #### [RevenueTransaction_sum_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_sum_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_sum_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## RevenueTransaction_var_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_pop() on columns of table "RevenueTransaction" ```graphql input RevenueTransaction_var_pop_order_by { amount: order_by block: order_by timestamp: order_by } ``` ### Fields #### [RevenueTransaction_var_pop_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_var_pop_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_var_pop_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## RevenueTransaction_var_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_samp() on columns of table "RevenueTransaction" ```graphql input RevenueTransaction_var_samp_order_by { amount: order_by block: order_by timestamp: order_by } ``` ### Fields #### [RevenueTransaction_var_samp_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_var_samp_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_var_samp_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## RevenueTransaction_variance_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by variance() on columns of table "RevenueTransaction" ```graphql input RevenueTransaction_variance_order_by { amount: order_by block: order_by timestamp: order_by } ``` ### Fields #### [RevenueTransaction_variance_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_variance_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [RevenueTransaction_variance_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Segment_aggregate_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by aggregate values of table "Segment" ```graphql input Segment_aggregate_order_by { avg: Segment_avg_order_by count: order_by max: Segment_max_order_by min: Segment_min_order_by stddev: Segment_stddev_order_by stddev_pop: Segment_stddev_pop_order_by stddev_samp: Segment_stddev_samp_order_by sum: Segment_sum_order_by var_pop: Segment_var_pop_order_by var_samp: Segment_var_samp_order_by variance: Segment_variance_order_by } ``` ### Fields #### [Segment_aggregate_order_by.avg](#)[Segment_avg_order_by](/docs/api/lockup/graphql/envio/inputs/segment-avg-order-by.mdx) #### [Segment_aggregate_order_by.count](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_aggregate_order_by.max](#)[Segment_max_order_by](/docs/api/lockup/graphql/envio/inputs/segment-max-order-by.mdx) #### [Segment_aggregate_order_by.min](#)[Segment_min_order_by](/docs/api/lockup/graphql/envio/inputs/segment-min-order-by.mdx) #### [Segment_aggregate_order_by.stddev](#)[Segment_stddev_order_by](/docs/api/lockup/graphql/envio/inputs/segment-stddev-order-by.mdx) #### [Segment_aggregate_order_by.stddev_pop](#)[Segment_stddev_pop_order_by](/docs/api/lockup/graphql/envio/inputs/segment-stddev-pop-order-by.mdx) #### [Segment_aggregate_order_by.stddev_samp](#)[Segment_stddev_samp_order_by](/docs/api/lockup/graphql/envio/inputs/segment-stddev-samp-order-by.mdx) #### [Segment_aggregate_order_by.sum](#)[Segment_sum_order_by](/docs/api/lockup/graphql/envio/inputs/segment-sum-order-by.mdx) #### [Segment_aggregate_order_by.var_pop](#)[Segment_var_pop_order_by](/docs/api/lockup/graphql/envio/inputs/segment-var-pop-order-by.mdx) #### [Segment_aggregate_order_by.var_samp](#)[Segment_var_samp_order_by](/docs/api/lockup/graphql/envio/inputs/segment-var-samp-order-by.mdx) #### [Segment_aggregate_order_by.variance](#)[Segment_variance_order_by](/docs/api/lockup/graphql/envio/inputs/segment-variance-order-by.mdx) --- ## Segment_avg_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by avg() on columns of table "Segment" ```graphql input Segment_avg_order_by { amount: order_by endAmount: order_by endTime: order_by exponent: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Segment_avg_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_avg_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_avg_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_avg_order_by.exponent](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_avg_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_avg_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_avg_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Segment_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "Segment". All fields are combined with a logical 'AND'. ```graphql input Segment_bool_exp { _and: [Segment_bool_exp!] _not: Segment_bool_exp _or: [Segment_bool_exp!] amount: numeric_comparison_exp db_write_timestamp: timestamp_comparison_exp endAmount: numeric_comparison_exp endTime: numeric_comparison_exp exponent: numeric_comparison_exp id: String_comparison_exp position: numeric_comparison_exp startAmount: numeric_comparison_exp startTime: numeric_comparison_exp stream: Stream_bool_exp stream_id: String_comparison_exp } ``` ### Fields #### [Segment_bool_exp.\_and](#)[[Segment_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/segment-bool-exp.mdx) #### [Segment_bool_exp.\_not](#)[Segment_bool_exp](/docs/api/lockup/graphql/envio/inputs/segment-bool-exp.mdx) #### [Segment_bool_exp.\_or](#)[[Segment_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/segment-bool-exp.mdx) #### [Segment_bool_exp.amount](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Segment_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [Segment_bool_exp.endAmount](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Segment_bool_exp.endTime](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Segment_bool_exp.exponent](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Segment_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Segment_bool_exp.position](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Segment_bool_exp.startAmount](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Segment_bool_exp.startTime](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Segment_bool_exp.stream](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Segment_bool_exp.stream_id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) --- ## Segment_max_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by max() on columns of table "Segment" ```graphql input Segment_max_order_by { amount: order_by db_write_timestamp: order_by endAmount: order_by endTime: order_by exponent: order_by id: order_by position: order_by startAmount: order_by startTime: order_by stream_id: order_by } ``` ### Fields #### [Segment_max_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_max_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_max_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_max_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_max_order_by.exponent](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_max_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_max_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_max_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_max_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_max_order_by.stream_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Segment_min_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by min() on columns of table "Segment" ```graphql input Segment_min_order_by { amount: order_by db_write_timestamp: order_by endAmount: order_by endTime: order_by exponent: order_by id: order_by position: order_by startAmount: order_by startTime: order_by stream_id: order_by } ``` ### Fields #### [Segment_min_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_min_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_min_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_min_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_min_order_by.exponent](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_min_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_min_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_min_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_min_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_min_order_by.stream_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Segment_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "Segment". ```graphql input Segment_order_by { amount: order_by db_write_timestamp: order_by endAmount: order_by endTime: order_by exponent: order_by id: order_by position: order_by startAmount: order_by startTime: order_by stream: Stream_order_by stream_id: order_by } ``` ### Fields #### [Segment_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_order_by.exponent](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_order_by.stream](#)[Stream_order_by](/docs/api/lockup/graphql/envio/inputs/stream-order-by.mdx) #### [Segment_order_by.stream_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Segment_stddev_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev() on columns of table "Segment" ```graphql input Segment_stddev_order_by { amount: order_by endAmount: order_by endTime: order_by exponent: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Segment_stddev_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_order_by.exponent](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Segment_stddev_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_pop() on columns of table "Segment" ```graphql input Segment_stddev_pop_order_by { amount: order_by endAmount: order_by endTime: order_by exponent: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Segment_stddev_pop_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_pop_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_pop_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_pop_order_by.exponent](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_pop_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_pop_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_pop_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Segment_stddev_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_samp() on columns of table "Segment" ```graphql input Segment_stddev_samp_order_by { amount: order_by endAmount: order_by endTime: order_by exponent: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Segment_stddev_samp_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_samp_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_samp_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_samp_order_by.exponent](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_samp_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_samp_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_stddev_samp_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Segment_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "Segment" ```graphql input Segment_stream_cursor_input { initial_value: Segment_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [Segment_stream_cursor_input.initial_value](#)[Segment_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/segment-stream-cursor-value-input.mdx) Stream column input with initial value #### [Segment_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## Segment_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input Segment_stream_cursor_value_input { amount: numeric db_write_timestamp: timestamp endAmount: numeric endTime: numeric exponent: numeric id: String position: numeric startAmount: numeric startTime: numeric stream_id: String } ``` ### Fields #### [Segment_stream_cursor_value_input.amount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Segment_stream_cursor_value_input.endAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment_stream_cursor_value_input.endTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment_stream_cursor_value_input.exponent](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Segment_stream_cursor_value_input.position](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment_stream_cursor_value_input.startAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment_stream_cursor_value_input.startTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment_stream_cursor_value_input.stream_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## Segment_sum_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by sum() on columns of table "Segment" ```graphql input Segment_sum_order_by { amount: order_by endAmount: order_by endTime: order_by exponent: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Segment_sum_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_sum_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_sum_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_sum_order_by.exponent](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_sum_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_sum_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_sum_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Segment_var_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_pop() on columns of table "Segment" ```graphql input Segment_var_pop_order_by { amount: order_by endAmount: order_by endTime: order_by exponent: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Segment_var_pop_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_pop_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_pop_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_pop_order_by.exponent](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_pop_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_pop_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_pop_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Segment_var_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_samp() on columns of table "Segment" ```graphql input Segment_var_samp_order_by { amount: order_by endAmount: order_by endTime: order_by exponent: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Segment_var_samp_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_samp_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_samp_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_samp_order_by.exponent](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_samp_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_samp_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_var_samp_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Segment_variance_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by variance() on columns of table "Segment" ```graphql input Segment_variance_order_by { amount: order_by endAmount: order_by endTime: order_by exponent: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Segment_variance_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_variance_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_variance_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_variance_order_by.exponent](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_variance_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_variance_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Segment_variance_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Stream_aggregate_bool_exp_bool_and export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Stream_aggregate_bool_exp_bool_and { arguments: Stream_select_column_Stream_aggregate_bool_exp_bool_and_arguments_columns! distinct: Boolean filter: Stream_bool_exp predicate: Boolean_comparison_exp! } ``` ### Fields #### [Stream_aggregate_bool_exp_bool_and.arguments](#)[Stream_select_column_Stream_aggregate_bool_exp_bool_and_arguments_columns!](/docs/api/lockup/graphql/envio/enums/stream-select-column-stream-aggregate-bool-exp-bool-and-arguments-columns.mdx) #### [Stream_aggregate_bool_exp_bool_and.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream_aggregate_bool_exp_bool_and.filter](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Stream_aggregate_bool_exp_bool_and.predicate](#)[Boolean_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) --- ## Stream_aggregate_bool_exp_bool_or export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Stream_aggregate_bool_exp_bool_or { arguments: Stream_select_column_Stream_aggregate_bool_exp_bool_or_arguments_columns! distinct: Boolean filter: Stream_bool_exp predicate: Boolean_comparison_exp! } ``` ### Fields #### [Stream_aggregate_bool_exp_bool_or.arguments](#)[Stream_select_column_Stream_aggregate_bool_exp_bool_or_arguments_columns!](/docs/api/lockup/graphql/envio/enums/stream-select-column-stream-aggregate-bool-exp-bool-or-arguments-columns.mdx) #### [Stream_aggregate_bool_exp_bool_or.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream_aggregate_bool_exp_bool_or.filter](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Stream_aggregate_bool_exp_bool_or.predicate](#)[Boolean_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) --- ## Stream_aggregate_bool_exp_count export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Stream_aggregate_bool_exp_count { arguments: [Stream_select_column!] distinct: Boolean filter: Stream_bool_exp predicate: Int_comparison_exp! } ``` ### Fields #### [Stream_aggregate_bool_exp_count.arguments](#)[[Stream_select_column!]](/docs/api/lockup/graphql/envio/enums/stream-select-column.mdx) #### [Stream_aggregate_bool_exp_count.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream_aggregate_bool_exp_count.filter](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Stream_aggregate_bool_exp_count.predicate](#)[Int_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) --- ## Stream_aggregate_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Stream_aggregate_bool_exp { bool_and: Stream_aggregate_bool_exp_bool_and bool_or: Stream_aggregate_bool_exp_bool_or count: Stream_aggregate_bool_exp_count } ``` ### Fields #### [Stream_aggregate_bool_exp.bool_and](#)[Stream_aggregate_bool_exp_bool_and](/docs/api/lockup/graphql/envio/inputs/stream-aggregate-bool-exp-bool-and.mdx) #### [Stream_aggregate_bool_exp.bool_or](#)[Stream_aggregate_bool_exp_bool_or](/docs/api/lockup/graphql/envio/inputs/stream-aggregate-bool-exp-bool-or.mdx) #### [Stream_aggregate_bool_exp.count](#)[Stream_aggregate_bool_exp_count](/docs/api/lockup/graphql/envio/inputs/stream-aggregate-bool-exp-count.mdx) --- ## Stream_aggregate_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by aggregate values of table "Stream" ```graphql input Stream_aggregate_order_by { avg: Stream_avg_order_by count: order_by max: Stream_max_order_by min: Stream_min_order_by stddev: Stream_stddev_order_by stddev_pop: Stream_stddev_pop_order_by stddev_samp: Stream_stddev_samp_order_by sum: Stream_sum_order_by var_pop: Stream_var_pop_order_by var_samp: Stream_var_samp_order_by variance: Stream_variance_order_by } ``` ### Fields #### [Stream_aggregate_order_by.avg](#)[Stream_avg_order_by](/docs/api/lockup/graphql/envio/inputs/stream-avg-order-by.mdx) #### [Stream_aggregate_order_by.count](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_aggregate_order_by.max](#)[Stream_max_order_by](/docs/api/lockup/graphql/envio/inputs/stream-max-order-by.mdx) #### [Stream_aggregate_order_by.min](#)[Stream_min_order_by](/docs/api/lockup/graphql/envio/inputs/stream-min-order-by.mdx) #### [Stream_aggregate_order_by.stddev](#)[Stream_stddev_order_by](/docs/api/lockup/graphql/envio/inputs/stream-stddev-order-by.mdx) #### [Stream_aggregate_order_by.stddev_pop](#)[Stream_stddev_pop_order_by](/docs/api/lockup/graphql/envio/inputs/stream-stddev-pop-order-by.mdx) #### [Stream_aggregate_order_by.stddev_samp](#)[Stream_stddev_samp_order_by](/docs/api/lockup/graphql/envio/inputs/stream-stddev-samp-order-by.mdx) #### [Stream_aggregate_order_by.sum](#)[Stream_sum_order_by](/docs/api/lockup/graphql/envio/inputs/stream-sum-order-by.mdx) #### [Stream_aggregate_order_by.var_pop](#)[Stream_var_pop_order_by](/docs/api/lockup/graphql/envio/inputs/stream-var-pop-order-by.mdx) #### [Stream_aggregate_order_by.var_samp](#)[Stream_var_samp_order_by](/docs/api/lockup/graphql/envio/inputs/stream-var-samp-order-by.mdx) #### [Stream_aggregate_order_by.variance](#)[Stream_variance_order_by](/docs/api/lockup/graphql/envio/inputs/stream-variance-order-by.mdx) --- ## Stream_avg_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by avg() on columns of table "Stream" ```graphql input Stream_avg_order_by { assetDecimalsValue: order_by canceledTime: order_by chainId: order_by cliffAmount: order_by cliffTime: order_by depositAmount: order_by duration: order_by endTime: order_by initialAmount: order_by intactAmount: order_by position: order_by renounceTime: order_by startTime: order_by subgraphId: order_by timestamp: order_by tokenId: order_by withdrawnAmount: order_by } ``` ### Fields #### [Stream_avg_order_by.assetDecimalsValue](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.canceledTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.cliffAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.cliffTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.depositAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.duration](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.initialAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.intactAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.renounceTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.tokenId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_avg_order_by.withdrawnAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Stream_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "Stream". All fields are combined with a logical 'AND'. ```graphql input Stream_bool_exp { _and: [Stream_bool_exp!] _not: Stream_bool_exp _or: [Stream_bool_exp!] actions: Action_bool_exp alias: String_comparison_exp asset: Asset_bool_exp assetDecimalsValue: numeric_comparison_exp asset_id: String_comparison_exp batch: Batch_bool_exp batch_id: String_comparison_exp cancelable: Boolean_comparison_exp canceled: Boolean_comparison_exp canceledAction: Action_bool_exp canceledAction_id: String_comparison_exp canceledTime: numeric_comparison_exp category: streamcategory_comparison_exp chainId: numeric_comparison_exp cliff: Boolean_comparison_exp cliffAmount: numeric_comparison_exp cliffTime: numeric_comparison_exp contract: String_comparison_exp db_write_timestamp: timestamp_comparison_exp depositAmount: numeric_comparison_exp duration: numeric_comparison_exp endTime: numeric_comparison_exp funder: String_comparison_exp hash: String_comparison_exp id: String_comparison_exp initial: Boolean_comparison_exp initialAmount: numeric_comparison_exp intactAmount: numeric_comparison_exp position: numeric_comparison_exp proxender: String_comparison_exp proxied: Boolean_comparison_exp recipient: String_comparison_exp renounceAction: Action_bool_exp renounceAction_id: String_comparison_exp renounceTime: numeric_comparison_exp segments: Segment_bool_exp sender: String_comparison_exp shape: String_comparison_exp startTime: numeric_comparison_exp subgraphId: numeric_comparison_exp timestamp: numeric_comparison_exp tokenId: numeric_comparison_exp tranches: Tranche_bool_exp transferable: Boolean_comparison_exp version: String_comparison_exp withdrawnAmount: numeric_comparison_exp } ``` ### Fields #### [Stream_bool_exp.\_and](#)[[Stream_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Stream_bool_exp.\_not](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Stream_bool_exp.\_or](#)[[Stream_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Stream_bool_exp.actions](#)[Action_bool_exp](/docs/api/lockup/graphql/envio/inputs/action-bool-exp.mdx) #### [Stream_bool_exp.alias](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.asset](#)[Asset_bool_exp](/docs/api/lockup/graphql/envio/inputs/asset-bool-exp.mdx) #### [Stream_bool_exp.assetDecimalsValue](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.asset_id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.batch](#)[Batch_bool_exp](/docs/api/lockup/graphql/envio/inputs/batch-bool-exp.mdx) #### [Stream_bool_exp.batch_id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.cancelable](#)[Boolean_comparison_exp](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) #### [Stream_bool_exp.canceled](#)[Boolean_comparison_exp](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) #### [Stream_bool_exp.canceledAction](#)[Action_bool_exp](/docs/api/lockup/graphql/envio/inputs/action-bool-exp.mdx) #### [Stream_bool_exp.canceledAction_id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.canceledTime](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.category](#)[streamcategory_comparison_exp](/docs/api/lockup/graphql/envio/inputs/streamcategory-comparison-exp.mdx) #### [Stream_bool_exp.chainId](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.cliff](#)[Boolean_comparison_exp](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) #### [Stream_bool_exp.cliffAmount](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.cliffTime](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.contract](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [Stream_bool_exp.depositAmount](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.duration](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.endTime](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.funder](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.hash](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.initial](#)[Boolean_comparison_exp](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) #### [Stream_bool_exp.initialAmount](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.intactAmount](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.position](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.proxender](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.proxied](#)[Boolean_comparison_exp](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) #### [Stream_bool_exp.recipient](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.renounceAction](#)[Action_bool_exp](/docs/api/lockup/graphql/envio/inputs/action-bool-exp.mdx) #### [Stream_bool_exp.renounceAction_id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.renounceTime](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.segments](#)[Segment_bool_exp](/docs/api/lockup/graphql/envio/inputs/segment-bool-exp.mdx) #### [Stream_bool_exp.sender](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.shape](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.startTime](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.subgraphId](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.timestamp](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.tokenId](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Stream_bool_exp.tranches](#)[Tranche_bool_exp](/docs/api/lockup/graphql/envio/inputs/tranche-bool-exp.mdx) #### [Stream_bool_exp.transferable](#)[Boolean_comparison_exp](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) #### [Stream_bool_exp.version](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Stream_bool_exp.withdrawnAmount](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) --- ## Stream_max_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by max() on columns of table "Stream" ```graphql input Stream_max_order_by { alias: order_by assetDecimalsValue: order_by asset_id: order_by batch_id: order_by canceledAction_id: order_by canceledTime: order_by category: order_by chainId: order_by cliffAmount: order_by cliffTime: order_by contract: order_by db_write_timestamp: order_by depositAmount: order_by duration: order_by endTime: order_by funder: order_by hash: order_by id: order_by initialAmount: order_by intactAmount: order_by position: order_by proxender: order_by recipient: order_by renounceAction_id: order_by renounceTime: order_by sender: order_by shape: order_by startTime: order_by subgraphId: order_by timestamp: order_by tokenId: order_by version: order_by withdrawnAmount: order_by } ``` ### Fields #### [Stream_max_order_by.alias](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.assetDecimalsValue](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.asset_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.batch_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.canceledAction_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.canceledTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.category](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.cliffAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.cliffTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.contract](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.depositAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.duration](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.funder](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.initialAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.intactAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.proxender](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.recipient](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.renounceAction_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.renounceTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.sender](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.shape](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.tokenId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.version](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_max_order_by.withdrawnAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Stream_min_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by min() on columns of table "Stream" ```graphql input Stream_min_order_by { alias: order_by assetDecimalsValue: order_by asset_id: order_by batch_id: order_by canceledAction_id: order_by canceledTime: order_by category: order_by chainId: order_by cliffAmount: order_by cliffTime: order_by contract: order_by db_write_timestamp: order_by depositAmount: order_by duration: order_by endTime: order_by funder: order_by hash: order_by id: order_by initialAmount: order_by intactAmount: order_by position: order_by proxender: order_by recipient: order_by renounceAction_id: order_by renounceTime: order_by sender: order_by shape: order_by startTime: order_by subgraphId: order_by timestamp: order_by tokenId: order_by version: order_by withdrawnAmount: order_by } ``` ### Fields #### [Stream_min_order_by.alias](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.assetDecimalsValue](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.asset_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.batch_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.canceledAction_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.canceledTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.category](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.cliffAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.cliffTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.contract](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.depositAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.duration](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.funder](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.initialAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.intactAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.proxender](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.recipient](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.renounceAction_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.renounceTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.sender](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.shape](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.tokenId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.version](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_min_order_by.withdrawnAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Stream_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "Stream". ```graphql input Stream_order_by { actions_aggregate: Action_aggregate_order_by alias: order_by asset: Asset_order_by assetDecimalsValue: order_by asset_id: order_by batch: Batch_order_by batch_id: order_by cancelable: order_by canceled: order_by canceledAction: Action_order_by canceledAction_id: order_by canceledTime: order_by category: order_by chainId: order_by cliff: order_by cliffAmount: order_by cliffTime: order_by contract: order_by db_write_timestamp: order_by depositAmount: order_by duration: order_by endTime: order_by funder: order_by hash: order_by id: order_by initial: order_by initialAmount: order_by intactAmount: order_by position: order_by proxender: order_by proxied: order_by recipient: order_by renounceAction: Action_order_by renounceAction_id: order_by renounceTime: order_by segments_aggregate: Segment_aggregate_order_by sender: order_by shape: order_by startTime: order_by subgraphId: order_by timestamp: order_by tokenId: order_by tranches_aggregate: Tranche_aggregate_order_by transferable: order_by version: order_by withdrawnAmount: order_by } ``` ### Fields #### [Stream_order_by.actions_aggregate](#)[Action_aggregate_order_by](/docs/api/lockup/graphql/envio/inputs/action-aggregate-order-by.mdx) #### [Stream_order_by.alias](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.asset](#)[Asset_order_by](/docs/api/lockup/graphql/envio/inputs/asset-order-by.mdx) #### [Stream_order_by.assetDecimalsValue](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.asset_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.batch](#)[Batch_order_by](/docs/api/lockup/graphql/envio/inputs/batch-order-by.mdx) #### [Stream_order_by.batch_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.cancelable](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.canceled](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.canceledAction](#)[Action_order_by](/docs/api/lockup/graphql/envio/inputs/action-order-by.mdx) #### [Stream_order_by.canceledAction_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.canceledTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.category](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.cliff](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.cliffAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.cliffTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.contract](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.depositAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.duration](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.funder](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.initial](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.initialAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.intactAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.proxender](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.proxied](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.recipient](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.renounceAction](#)[Action_order_by](/docs/api/lockup/graphql/envio/inputs/action-order-by.mdx) #### [Stream_order_by.renounceAction_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.renounceTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.segments_aggregate](#)[Segment_aggregate_order_by](/docs/api/lockup/graphql/envio/inputs/segment-aggregate-order-by.mdx) #### [Stream_order_by.sender](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.shape](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.tokenId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.tranches_aggregate](#)[Tranche_aggregate_order_by](/docs/api/lockup/graphql/envio/inputs/tranche-aggregate-order-by.mdx) #### [Stream_order_by.transferable](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.version](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_order_by.withdrawnAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Stream_stddev_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev() on columns of table "Stream" ```graphql input Stream_stddev_order_by { assetDecimalsValue: order_by canceledTime: order_by chainId: order_by cliffAmount: order_by cliffTime: order_by depositAmount: order_by duration: order_by endTime: order_by initialAmount: order_by intactAmount: order_by position: order_by renounceTime: order_by startTime: order_by subgraphId: order_by timestamp: order_by tokenId: order_by withdrawnAmount: order_by } ``` ### Fields #### [Stream_stddev_order_by.assetDecimalsValue](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.canceledTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.cliffAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.cliffTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.depositAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.duration](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.initialAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.intactAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.renounceTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.tokenId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_order_by.withdrawnAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Stream_stddev_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_pop() on columns of table "Stream" ```graphql input Stream_stddev_pop_order_by { assetDecimalsValue: order_by canceledTime: order_by chainId: order_by cliffAmount: order_by cliffTime: order_by depositAmount: order_by duration: order_by endTime: order_by initialAmount: order_by intactAmount: order_by position: order_by renounceTime: order_by startTime: order_by subgraphId: order_by timestamp: order_by tokenId: order_by withdrawnAmount: order_by } ``` ### Fields #### [Stream_stddev_pop_order_by.assetDecimalsValue](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.canceledTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.cliffAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.cliffTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.depositAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.duration](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.initialAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.intactAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.renounceTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.tokenId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_pop_order_by.withdrawnAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Stream_stddev_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_samp() on columns of table "Stream" ```graphql input Stream_stddev_samp_order_by { assetDecimalsValue: order_by canceledTime: order_by chainId: order_by cliffAmount: order_by cliffTime: order_by depositAmount: order_by duration: order_by endTime: order_by initialAmount: order_by intactAmount: order_by position: order_by renounceTime: order_by startTime: order_by subgraphId: order_by timestamp: order_by tokenId: order_by withdrawnAmount: order_by } ``` ### Fields #### [Stream_stddev_samp_order_by.assetDecimalsValue](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.canceledTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.cliffAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.cliffTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.depositAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.duration](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.initialAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.intactAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.renounceTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.tokenId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_stddev_samp_order_by.withdrawnAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Stream_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "Stream" ```graphql input Stream_stream_cursor_input { initial_value: Stream_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [Stream_stream_cursor_input.initial_value](#)[Stream_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/stream-stream-cursor-value-input.mdx) Stream column input with initial value #### [Stream_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## Stream_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input Stream_stream_cursor_value_input { alias: String assetDecimalsValue: numeric asset_id: String batch_id: String cancelable: Boolean canceled: Boolean canceledAction_id: String canceledTime: numeric category: streamcategory chainId: numeric cliff: Boolean cliffAmount: numeric cliffTime: numeric contract: String db_write_timestamp: timestamp depositAmount: numeric duration: numeric endTime: numeric funder: String hash: String id: String initial: Boolean initialAmount: numeric intactAmount: numeric position: numeric proxender: String proxied: Boolean recipient: String renounceAction_id: String renounceTime: numeric sender: String shape: String startTime: numeric subgraphId: numeric timestamp: numeric tokenId: numeric transferable: Boolean version: String withdrawnAmount: numeric } ``` ### Fields #### [Stream_stream_cursor_value_input.alias](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.assetDecimalsValue](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.asset_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.batch_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.cancelable](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream_stream_cursor_value_input.canceled](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream_stream_cursor_value_input.canceledAction_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.canceledTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.category](#)[streamcategory](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) #### [Stream_stream_cursor_value_input.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.cliff](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream_stream_cursor_value_input.cliffAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.cliffTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.contract](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Stream_stream_cursor_value_input.depositAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.duration](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.endTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.funder](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.initial](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream_stream_cursor_value_input.initialAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.intactAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.position](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.proxender](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.proxied](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream_stream_cursor_value_input.recipient](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.renounceAction_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.renounceTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.sender](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.shape](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.startTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.subgraphId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.tokenId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_stream_cursor_value_input.transferable](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream_stream_cursor_value_input.version](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_stream_cursor_value_input.withdrawnAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Stream_sum_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by sum() on columns of table "Stream" ```graphql input Stream_sum_order_by { assetDecimalsValue: order_by canceledTime: order_by chainId: order_by cliffAmount: order_by cliffTime: order_by depositAmount: order_by duration: order_by endTime: order_by initialAmount: order_by intactAmount: order_by position: order_by renounceTime: order_by startTime: order_by subgraphId: order_by timestamp: order_by tokenId: order_by withdrawnAmount: order_by } ``` ### Fields #### [Stream_sum_order_by.assetDecimalsValue](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.canceledTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.cliffAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.cliffTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.depositAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.duration](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.initialAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.intactAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.renounceTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.tokenId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_sum_order_by.withdrawnAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Stream_var_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_pop() on columns of table "Stream" ```graphql input Stream_var_pop_order_by { assetDecimalsValue: order_by canceledTime: order_by chainId: order_by cliffAmount: order_by cliffTime: order_by depositAmount: order_by duration: order_by endTime: order_by initialAmount: order_by intactAmount: order_by position: order_by renounceTime: order_by startTime: order_by subgraphId: order_by timestamp: order_by tokenId: order_by withdrawnAmount: order_by } ``` ### Fields #### [Stream_var_pop_order_by.assetDecimalsValue](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.canceledTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.cliffAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.cliffTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.depositAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.duration](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.initialAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.intactAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.renounceTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.tokenId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_pop_order_by.withdrawnAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Stream_var_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_samp() on columns of table "Stream" ```graphql input Stream_var_samp_order_by { assetDecimalsValue: order_by canceledTime: order_by chainId: order_by cliffAmount: order_by cliffTime: order_by depositAmount: order_by duration: order_by endTime: order_by initialAmount: order_by intactAmount: order_by position: order_by renounceTime: order_by startTime: order_by subgraphId: order_by timestamp: order_by tokenId: order_by withdrawnAmount: order_by } ``` ### Fields #### [Stream_var_samp_order_by.assetDecimalsValue](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.canceledTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.cliffAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.cliffTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.depositAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.duration](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.initialAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.intactAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.renounceTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.tokenId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_var_samp_order_by.withdrawnAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Stream_variance_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by variance() on columns of table "Stream" ```graphql input Stream_variance_order_by { assetDecimalsValue: order_by canceledTime: order_by chainId: order_by cliffAmount: order_by cliffTime: order_by depositAmount: order_by duration: order_by endTime: order_by initialAmount: order_by intactAmount: order_by position: order_by renounceTime: order_by startTime: order_by subgraphId: order_by timestamp: order_by tokenId: order_by withdrawnAmount: order_by } ``` ### Fields #### [Stream_variance_order_by.assetDecimalsValue](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.canceledTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.cliffAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.cliffTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.depositAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.duration](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.initialAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.intactAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.renounceTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.subgraphId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.tokenId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Stream_variance_order_by.withdrawnAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## streamcategory_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "streamcategory". All fields are combined with logical 'AND'. ```graphql input streamcategory_comparison_exp { _eq: streamcategory _gt: streamcategory _gte: streamcategory _in: [streamcategory!] _is_null: Boolean _lt: streamcategory _lte: streamcategory _neq: streamcategory _nin: [streamcategory!] } ``` ### Fields #### [streamcategory_comparison_exp.\_eq](#)[streamcategory](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) #### [streamcategory_comparison_exp.\_gt](#)[streamcategory](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) #### [streamcategory_comparison_exp.\_gte](#)[streamcategory](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) #### [streamcategory_comparison_exp.\_in](#)[[streamcategory!]](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) #### [streamcategory_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [streamcategory_comparison_exp.\_lt](#)[streamcategory](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) #### [streamcategory_comparison_exp.\_lte](#)[streamcategory](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) #### [streamcategory_comparison_exp.\_neq](#)[streamcategory](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) #### [streamcategory_comparison_exp.\_nin](#)[[streamcategory!]](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) --- ## String_array_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. ```graphql input String_array_comparison_exp { _contained_in: [String!] _contains: [String!] _eq: [String!] _gt: [String!] _gte: [String!] _in: [[String!]!] _is_null: Boolean _lt: [String!] _lte: [String!] _neq: [String!] _nin: [[String!]!] } ``` ### Fields #### [String_array_comparison_exp.\_contained_in](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) is the array contained in the given array value #### [String_array_comparison_exp.\_contains](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the array contain the given value #### [String_array_comparison_exp.\_eq](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_array_comparison_exp.\_gt](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_array_comparison_exp.\_gte](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_array_comparison_exp.\_in](#)[[[String!]!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_array_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [String_array_comparison_exp.\_lt](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_array_comparison_exp.\_lte](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_array_comparison_exp.\_neq](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_array_comparison_exp.\_nin](#)[[[String!]!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## String_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. ```graphql input String_comparison_exp { _eq: String _gt: String _gte: String _ilike: String _in: [String!] _iregex: String _is_null: Boolean _like: String _lt: String _lte: String _neq: String _nilike: String _nin: [String!] _niregex: String _nlike: String _nregex: String _nsimilar: String _regex: String _similar: String } ``` ### Fields #### [String_comparison_exp.\_eq](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_comparison_exp.\_gt](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_comparison_exp.\_gte](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_comparison_exp.\_ilike](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the column match the given case-insensitive pattern #### [String_comparison_exp.\_in](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_comparison_exp.\_iregex](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the column match the given POSIX regular expression, case insensitive #### [String_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [String_comparison_exp.\_like](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the column match the given pattern #### [String_comparison_exp.\_lt](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_comparison_exp.\_lte](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_comparison_exp.\_neq](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_comparison_exp.\_nilike](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the column NOT match the given case-insensitive pattern #### [String_comparison_exp.\_nin](#)[[String!]](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [String_comparison_exp.\_niregex](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the column NOT match the given POSIX regular expression, case insensitive #### [String_comparison_exp.\_nlike](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the column NOT match the given pattern #### [String_comparison_exp.\_nregex](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the column NOT match the given POSIX regular expression, case sensitive #### [String_comparison_exp.\_nsimilar](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the column NOT match the given SQL regular expression #### [String_comparison_exp.\_regex](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the column match the given POSIX regular expression, case sensitive #### [String_comparison_exp.\_similar](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) does the column match the given SQL regular expression --- ## timestamp_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "timestamp". All fields are combined with logical 'AND'. ```graphql input timestamp_comparison_exp { _eq: timestamp _gt: timestamp _gte: timestamp _in: [timestamp!] _is_null: Boolean _lt: timestamp _lte: timestamp _neq: timestamp _nin: [timestamp!] } ``` ### Fields #### [timestamp_comparison_exp.\_eq](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [timestamp_comparison_exp.\_gt](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [timestamp_comparison_exp.\_gte](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [timestamp_comparison_exp.\_in](#)[[timestamp!]](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [timestamp_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [timestamp_comparison_exp.\_lt](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [timestamp_comparison_exp.\_lte](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [timestamp_comparison_exp.\_neq](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [timestamp_comparison_exp.\_nin](#)[[timestamp!]](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) --- ## timestamptz_comparison_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to compare columns of type "timestamptz". All fields are combined with logical 'AND'. ```graphql input timestamptz_comparison_exp { _eq: timestamptz _gt: timestamptz _gte: timestamptz _in: [timestamptz!] _is_null: Boolean _lt: timestamptz _lte: timestamptz _neq: timestamptz _nin: [timestamptz!] } ``` ### Fields #### [timestamptz_comparison_exp.\_eq](#)[timestamptz](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) #### [timestamptz_comparison_exp.\_gt](#)[timestamptz](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) #### [timestamptz_comparison_exp.\_gte](#)[timestamptz](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) #### [timestamptz_comparison_exp.\_in](#)[[timestamptz!]](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) #### [timestamptz_comparison_exp.\_is_null](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [timestamptz_comparison_exp.\_lt](#)[timestamptz](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) #### [timestamptz_comparison_exp.\_lte](#)[timestamptz](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) #### [timestamptz_comparison_exp.\_neq](#)[timestamptz](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) #### [timestamptz_comparison_exp.\_nin](#)[[timestamptz!]](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) --- ## Tranche_aggregate_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by aggregate values of table "Tranche" ```graphql input Tranche_aggregate_order_by { avg: Tranche_avg_order_by count: order_by max: Tranche_max_order_by min: Tranche_min_order_by stddev: Tranche_stddev_order_by stddev_pop: Tranche_stddev_pop_order_by stddev_samp: Tranche_stddev_samp_order_by sum: Tranche_sum_order_by var_pop: Tranche_var_pop_order_by var_samp: Tranche_var_samp_order_by variance: Tranche_variance_order_by } ``` ### Fields #### [Tranche_aggregate_order_by.avg](#)[Tranche_avg_order_by](/docs/api/lockup/graphql/envio/inputs/tranche-avg-order-by.mdx) #### [Tranche_aggregate_order_by.count](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_aggregate_order_by.max](#)[Tranche_max_order_by](/docs/api/lockup/graphql/envio/inputs/tranche-max-order-by.mdx) #### [Tranche_aggregate_order_by.min](#)[Tranche_min_order_by](/docs/api/lockup/graphql/envio/inputs/tranche-min-order-by.mdx) #### [Tranche_aggregate_order_by.stddev](#)[Tranche_stddev_order_by](/docs/api/lockup/graphql/envio/inputs/tranche-stddev-order-by.mdx) #### [Tranche_aggregate_order_by.stddev_pop](#)[Tranche_stddev_pop_order_by](/docs/api/lockup/graphql/envio/inputs/tranche-stddev-pop-order-by.mdx) #### [Tranche_aggregate_order_by.stddev_samp](#)[Tranche_stddev_samp_order_by](/docs/api/lockup/graphql/envio/inputs/tranche-stddev-samp-order-by.mdx) #### [Tranche_aggregate_order_by.sum](#)[Tranche_sum_order_by](/docs/api/lockup/graphql/envio/inputs/tranche-sum-order-by.mdx) #### [Tranche_aggregate_order_by.var_pop](#)[Tranche_var_pop_order_by](/docs/api/lockup/graphql/envio/inputs/tranche-var-pop-order-by.mdx) #### [Tranche_aggregate_order_by.var_samp](#)[Tranche_var_samp_order_by](/docs/api/lockup/graphql/envio/inputs/tranche-var-samp-order-by.mdx) #### [Tranche_aggregate_order_by.variance](#)[Tranche_variance_order_by](/docs/api/lockup/graphql/envio/inputs/tranche-variance-order-by.mdx) --- ## Tranche_avg_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by avg() on columns of table "Tranche" ```graphql input Tranche_avg_order_by { amount: order_by endAmount: order_by endTime: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Tranche_avg_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_avg_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_avg_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_avg_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_avg_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_avg_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Tranche_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "Tranche". All fields are combined with a logical 'AND'. ```graphql input Tranche_bool_exp { _and: [Tranche_bool_exp!] _not: Tranche_bool_exp _or: [Tranche_bool_exp!] amount: numeric_comparison_exp db_write_timestamp: timestamp_comparison_exp endAmount: numeric_comparison_exp endTime: numeric_comparison_exp id: String_comparison_exp position: numeric_comparison_exp startAmount: numeric_comparison_exp startTime: numeric_comparison_exp stream: Stream_bool_exp stream_id: String_comparison_exp } ``` ### Fields #### [Tranche_bool_exp.\_and](#)[[Tranche_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/tranche-bool-exp.mdx) #### [Tranche_bool_exp.\_not](#)[Tranche_bool_exp](/docs/api/lockup/graphql/envio/inputs/tranche-bool-exp.mdx) #### [Tranche_bool_exp.\_or](#)[[Tranche_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/tranche-bool-exp.mdx) #### [Tranche_bool_exp.amount](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Tranche_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [Tranche_bool_exp.endAmount](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Tranche_bool_exp.endTime](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Tranche_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Tranche_bool_exp.position](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Tranche_bool_exp.startAmount](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Tranche_bool_exp.startTime](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Tranche_bool_exp.stream](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) #### [Tranche_bool_exp.stream_id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) --- ## Tranche_max_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by max() on columns of table "Tranche" ```graphql input Tranche_max_order_by { amount: order_by db_write_timestamp: order_by endAmount: order_by endTime: order_by id: order_by position: order_by startAmount: order_by startTime: order_by stream_id: order_by } ``` ### Fields #### [Tranche_max_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_max_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_max_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_max_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_max_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_max_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_max_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_max_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_max_order_by.stream_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Tranche_min_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by min() on columns of table "Tranche" ```graphql input Tranche_min_order_by { amount: order_by db_write_timestamp: order_by endAmount: order_by endTime: order_by id: order_by position: order_by startAmount: order_by startTime: order_by stream_id: order_by } ``` ### Fields #### [Tranche_min_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_min_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_min_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_min_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_min_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_min_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_min_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_min_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_min_order_by.stream_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Tranche_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "Tranche". ```graphql input Tranche_order_by { amount: order_by db_write_timestamp: order_by endAmount: order_by endTime: order_by id: order_by position: order_by startAmount: order_by startTime: order_by stream: Stream_order_by stream_id: order_by } ``` ### Fields #### [Tranche_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_order_by.stream](#)[Stream_order_by](/docs/api/lockup/graphql/envio/inputs/stream-order-by.mdx) #### [Tranche_order_by.stream_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Tranche_stddev_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev() on columns of table "Tranche" ```graphql input Tranche_stddev_order_by { amount: order_by endAmount: order_by endTime: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Tranche_stddev_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Tranche_stddev_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_pop() on columns of table "Tranche" ```graphql input Tranche_stddev_pop_order_by { amount: order_by endAmount: order_by endTime: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Tranche_stddev_pop_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_pop_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_pop_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_pop_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_pop_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_pop_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Tranche_stddev_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_samp() on columns of table "Tranche" ```graphql input Tranche_stddev_samp_order_by { amount: order_by endAmount: order_by endTime: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Tranche_stddev_samp_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_samp_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_samp_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_samp_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_samp_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_stddev_samp_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Tranche_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "Tranche" ```graphql input Tranche_stream_cursor_input { initial_value: Tranche_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [Tranche_stream_cursor_input.initial_value](#)[Tranche_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/tranche-stream-cursor-value-input.mdx) Stream column input with initial value #### [Tranche_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## Tranche_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input Tranche_stream_cursor_value_input { amount: numeric db_write_timestamp: timestamp endAmount: numeric endTime: numeric id: String position: numeric startAmount: numeric startTime: numeric stream_id: String } ``` ### Fields #### [Tranche_stream_cursor_value_input.amount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Tranche_stream_cursor_value_input.endAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche_stream_cursor_value_input.endTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Tranche_stream_cursor_value_input.position](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche_stream_cursor_value_input.startAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche_stream_cursor_value_input.startTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche_stream_cursor_value_input.stream_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## Tranche_sum_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by sum() on columns of table "Tranche" ```graphql input Tranche_sum_order_by { amount: order_by endAmount: order_by endTime: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Tranche_sum_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_sum_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_sum_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_sum_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_sum_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_sum_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Tranche_var_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_pop() on columns of table "Tranche" ```graphql input Tranche_var_pop_order_by { amount: order_by endAmount: order_by endTime: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Tranche_var_pop_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_var_pop_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_var_pop_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_var_pop_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_var_pop_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_var_pop_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Tranche_var_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_samp() on columns of table "Tranche" ```graphql input Tranche_var_samp_order_by { amount: order_by endAmount: order_by endTime: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Tranche_var_samp_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_var_samp_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_var_samp_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_var_samp_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_var_samp_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_var_samp_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Tranche_variance_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by variance() on columns of table "Tranche" ```graphql input Tranche_variance_order_by { amount: order_by endAmount: order_by endTime: order_by position: order_by startAmount: order_by startTime: order_by } ``` ### Fields #### [Tranche_variance_order_by.amount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_variance_order_by.endAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_variance_order_by.endTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_variance_order_by.position](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_variance_order_by.startAmount](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Tranche_variance_order_by.startTime](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## User_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "User". All fields are combined with a logical 'AND'. ```graphql input User_bool_exp { _and: [User_bool_exp!] _not: User_bool_exp _or: [User_bool_exp!] address: String_comparison_exp chainId: numeric_comparison_exp db_write_timestamp: timestamp_comparison_exp id: String_comparison_exp isOnlyAirdropClaimer: Boolean_comparison_exp transactions: UserTransaction_bool_exp transactions_aggregate: UserTransaction_aggregate_bool_exp } ``` ### Fields #### [User_bool_exp.\_and](#)[[User_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/user-bool-exp.mdx) #### [User_bool_exp.\_not](#)[User_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-bool-exp.mdx) #### [User_bool_exp.\_or](#)[[User_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/user-bool-exp.mdx) #### [User_bool_exp.address](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [User_bool_exp.chainId](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [User_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [User_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [User_bool_exp.isOnlyAirdropClaimer](#)[Boolean_comparison_exp](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) #### [User_bool_exp.transactions](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [User_bool_exp.transactions_aggregate](#)[UserTransaction_aggregate_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp.mdx) --- ## User_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "User". ```graphql input User_order_by { address: order_by chainId: order_by db_write_timestamp: order_by id: order_by isOnlyAirdropClaimer: order_by transactions_aggregate: UserTransaction_aggregate_order_by } ``` ### Fields #### [User_order_by.address](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [User_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [User_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [User_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [User_order_by.isOnlyAirdropClaimer](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [User_order_by.transactions_aggregate](#)[UserTransaction_aggregate_order_by](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-order-by.mdx) --- ## User_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "User" ```graphql input User_stream_cursor_input { initial_value: User_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [User_stream_cursor_input.initial_value](#)[User_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/user-stream-cursor-value-input.mdx) Stream column input with initial value #### [User_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## User_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input User_stream_cursor_value_input { address: String chainId: numeric db_write_timestamp: timestamp id: String isOnlyAirdropClaimer: Boolean } ``` ### Fields #### [User_stream_cursor_value_input.address](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [User_stream_cursor_value_input.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [User_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [User_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [User_stream_cursor_value_input.isOnlyAirdropClaimer](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) --- ## UserTransaction_aggregate_bool_exp_avg export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_avg { arguments: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_avg_arguments_columns! distinct: Boolean filter: UserTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_avg.arguments](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_avg_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-avg-arguments-columns.mdx) #### [UserTransaction_aggregate_bool_exp_avg.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_bool_exp_avg.filter](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_aggregate_bool_exp_avg.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## UserTransaction_aggregate_bool_exp_bool_and export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_bool_and { arguments: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_bool_and_arguments_columns! distinct: Boolean filter: UserTransaction_bool_exp predicate: Boolean_comparison_exp! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_bool_and.arguments](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_bool_and_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-bool-and-arguments-columns.mdx) #### [UserTransaction_aggregate_bool_exp_bool_and.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_bool_exp_bool_and.filter](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_aggregate_bool_exp_bool_and.predicate](#)[Boolean_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) --- ## UserTransaction_aggregate_bool_exp_bool_or export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_bool_or { arguments: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_bool_or_arguments_columns! distinct: Boolean filter: UserTransaction_bool_exp predicate: Boolean_comparison_exp! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_bool_or.arguments](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_bool_or_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-bool-or-arguments-columns.mdx) #### [UserTransaction_aggregate_bool_exp_bool_or.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_bool_exp_bool_or.filter](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_aggregate_bool_exp_bool_or.predicate](#)[Boolean_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) --- ## UserTransaction_aggregate_bool_exp_corr_arguments export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_corr_arguments { X: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_corr_arguments_columns! Y: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_corr_arguments_columns! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_corr_arguments.X](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_corr_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-corr-arguments-columns.mdx) #### [UserTransaction_aggregate_bool_exp_corr_arguments.Y](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_corr_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-corr-arguments-columns.mdx) --- ## UserTransaction_aggregate_bool_exp_corr export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_corr { arguments: UserTransaction_aggregate_bool_exp_corr_arguments! distinct: Boolean filter: UserTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_corr.arguments](#)[UserTransaction_aggregate_bool_exp_corr_arguments!](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-corr-arguments.mdx) #### [UserTransaction_aggregate_bool_exp_corr.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_bool_exp_corr.filter](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_aggregate_bool_exp_corr.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## UserTransaction_aggregate_bool_exp_count export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_count { arguments: [UserTransaction_select_column!] distinct: Boolean filter: UserTransaction_bool_exp predicate: Int_comparison_exp! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_count.arguments](#)[[UserTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column.mdx) #### [UserTransaction_aggregate_bool_exp_count.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_bool_exp_count.filter](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_aggregate_bool_exp_count.predicate](#)[Int_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/int-comparison-exp.mdx) --- ## UserTransaction_aggregate_bool_exp_covar_samp_arguments export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_covar_samp_arguments { X: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_covar_samp_arguments_columns! Y: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_covar_samp_arguments_columns! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_covar_samp_arguments.X](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_covar_samp_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-covar-samp-arguments-columns.mdx) #### [UserTransaction_aggregate_bool_exp_covar_samp_arguments.Y](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_covar_samp_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-covar-samp-arguments-columns.mdx) --- ## UserTransaction_aggregate_bool_exp_covar_samp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_covar_samp { arguments: UserTransaction_aggregate_bool_exp_covar_samp_arguments! distinct: Boolean filter: UserTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_covar_samp.arguments](#)[UserTransaction_aggregate_bool_exp_covar_samp_arguments!](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-covar-samp-arguments.mdx) #### [UserTransaction_aggregate_bool_exp_covar_samp.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_bool_exp_covar_samp.filter](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_aggregate_bool_exp_covar_samp.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## UserTransaction_aggregate_bool_exp_max export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_max { arguments: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_max_arguments_columns! distinct: Boolean filter: UserTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_max.arguments](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_max_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-max-arguments-columns.mdx) #### [UserTransaction_aggregate_bool_exp_max.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_bool_exp_max.filter](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_aggregate_bool_exp_max.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## UserTransaction_aggregate_bool_exp_min export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_min { arguments: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_min_arguments_columns! distinct: Boolean filter: UserTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_min.arguments](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_min_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-min-arguments-columns.mdx) #### [UserTransaction_aggregate_bool_exp_min.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_bool_exp_min.filter](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_aggregate_bool_exp_min.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## UserTransaction_aggregate_bool_exp_stddev_samp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_stddev_samp { arguments: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_stddev_samp_arguments_columns! distinct: Boolean filter: UserTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_stddev_samp.arguments](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_stddev_samp_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-stddev-samp-arguments-columns.mdx) #### [UserTransaction_aggregate_bool_exp_stddev_samp.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_bool_exp_stddev_samp.filter](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_aggregate_bool_exp_stddev_samp.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## UserTransaction_aggregate_bool_exp_sum export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_sum { arguments: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_sum_arguments_columns! distinct: Boolean filter: UserTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_sum.arguments](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_sum_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-sum-arguments-columns.mdx) #### [UserTransaction_aggregate_bool_exp_sum.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_bool_exp_sum.filter](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_aggregate_bool_exp_sum.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## UserTransaction_aggregate_bool_exp_var_samp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp_var_samp { arguments: UserTransaction_select_column_UserTransaction_aggregate_bool_exp_var_samp_arguments_columns! distinct: Boolean filter: UserTransaction_bool_exp predicate: float8_comparison_exp! } ``` ### Fields #### [UserTransaction_aggregate_bool_exp_var_samp.arguments](#)[UserTransaction_select_column_UserTransaction_aggregate_bool_exp_var_samp_arguments_columns!](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column-user-transaction-aggregate-bool-exp-var-samp-arguments-columns.mdx) #### [UserTransaction_aggregate_bool_exp_var_samp.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_bool_exp_var_samp.filter](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_aggregate_bool_exp_var_samp.predicate](#)[float8_comparison_exp!](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) --- ## UserTransaction_aggregate_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input UserTransaction_aggregate_bool_exp { avg: UserTransaction_aggregate_bool_exp_avg bool_and: UserTransaction_aggregate_bool_exp_bool_and bool_or: UserTransaction_aggregate_bool_exp_bool_or corr: UserTransaction_aggregate_bool_exp_corr count: UserTransaction_aggregate_bool_exp_count covar_samp: UserTransaction_aggregate_bool_exp_covar_samp max: UserTransaction_aggregate_bool_exp_max min: UserTransaction_aggregate_bool_exp_min stddev_samp: UserTransaction_aggregate_bool_exp_stddev_samp sum: UserTransaction_aggregate_bool_exp_sum var_samp: UserTransaction_aggregate_bool_exp_var_samp } ``` ### Fields #### [UserTransaction_aggregate_bool_exp.avg](#)[UserTransaction_aggregate_bool_exp_avg](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-avg.mdx) #### [UserTransaction_aggregate_bool_exp.bool_and](#)[UserTransaction_aggregate_bool_exp_bool_and](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-bool-and.mdx) #### [UserTransaction_aggregate_bool_exp.bool_or](#)[UserTransaction_aggregate_bool_exp_bool_or](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-bool-or.mdx) #### [UserTransaction_aggregate_bool_exp.corr](#)[UserTransaction_aggregate_bool_exp_corr](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-corr.mdx) #### [UserTransaction_aggregate_bool_exp.count](#)[UserTransaction_aggregate_bool_exp_count](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-count.mdx) #### [UserTransaction_aggregate_bool_exp.covar_samp](#)[UserTransaction_aggregate_bool_exp_covar_samp](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-covar-samp.mdx) #### [UserTransaction_aggregate_bool_exp.max](#)[UserTransaction_aggregate_bool_exp_max](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-max.mdx) #### [UserTransaction_aggregate_bool_exp.min](#)[UserTransaction_aggregate_bool_exp_min](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-min.mdx) #### [UserTransaction_aggregate_bool_exp.stddev_samp](#)[UserTransaction_aggregate_bool_exp_stddev_samp](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-stddev-samp.mdx) #### [UserTransaction_aggregate_bool_exp.sum](#)[UserTransaction_aggregate_bool_exp_sum](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-sum.mdx) #### [UserTransaction_aggregate_bool_exp.var_samp](#)[UserTransaction_aggregate_bool_exp_var_samp](/docs/api/lockup/graphql/envio/inputs/user-transaction-aggregate-bool-exp-var-samp.mdx) --- ## UserTransaction_aggregate_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by aggregate values of table "UserTransaction" ```graphql input UserTransaction_aggregate_order_by { avg: UserTransaction_avg_order_by count: order_by max: UserTransaction_max_order_by min: UserTransaction_min_order_by stddev: UserTransaction_stddev_order_by stddev_pop: UserTransaction_stddev_pop_order_by stddev_samp: UserTransaction_stddev_samp_order_by sum: UserTransaction_sum_order_by var_pop: UserTransaction_var_pop_order_by var_samp: UserTransaction_var_samp_order_by variance: UserTransaction_variance_order_by } ``` ### Fields #### [UserTransaction_aggregate_order_by.avg](#)[UserTransaction_avg_order_by](/docs/api/lockup/graphql/envio/inputs/user-transaction-avg-order-by.mdx) #### [UserTransaction_aggregate_order_by.count](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_aggregate_order_by.max](#)[UserTransaction_max_order_by](/docs/api/lockup/graphql/envio/inputs/user-transaction-max-order-by.mdx) #### [UserTransaction_aggregate_order_by.min](#)[UserTransaction_min_order_by](/docs/api/lockup/graphql/envio/inputs/user-transaction-min-order-by.mdx) #### [UserTransaction_aggregate_order_by.stddev](#)[UserTransaction_stddev_order_by](/docs/api/lockup/graphql/envio/inputs/user-transaction-stddev-order-by.mdx) #### [UserTransaction_aggregate_order_by.stddev_pop](#)[UserTransaction_stddev_pop_order_by](/docs/api/lockup/graphql/envio/inputs/user-transaction-stddev-pop-order-by.mdx) #### [UserTransaction_aggregate_order_by.stddev_samp](#)[UserTransaction_stddev_samp_order_by](/docs/api/lockup/graphql/envio/inputs/user-transaction-stddev-samp-order-by.mdx) #### [UserTransaction_aggregate_order_by.sum](#)[UserTransaction_sum_order_by](/docs/api/lockup/graphql/envio/inputs/user-transaction-sum-order-by.mdx) #### [UserTransaction_aggregate_order_by.var_pop](#)[UserTransaction_var_pop_order_by](/docs/api/lockup/graphql/envio/inputs/user-transaction-var-pop-order-by.mdx) #### [UserTransaction_aggregate_order_by.var_samp](#)[UserTransaction_var_samp_order_by](/docs/api/lockup/graphql/envio/inputs/user-transaction-var-samp-order-by.mdx) #### [UserTransaction_aggregate_order_by.variance](#)[UserTransaction_variance_order_by](/docs/api/lockup/graphql/envio/inputs/user-transaction-variance-order-by.mdx) --- ## UserTransaction_avg_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by avg() on columns of table "UserTransaction" ```graphql input UserTransaction_avg_order_by { block: order_by fee: order_by timestamp: order_by } ``` ### Fields #### [UserTransaction_avg_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_avg_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_avg_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## UserTransaction_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "UserTransaction". All fields are combined with a logical 'AND'. ```graphql input UserTransaction_bool_exp { _and: [UserTransaction_bool_exp!] _not: UserTransaction_bool_exp _or: [UserTransaction_bool_exp!] block: numeric_comparison_exp db_write_timestamp: timestamp_comparison_exp fee: float8_comparison_exp hash: String_comparison_exp id: String_comparison_exp isAirdropClaim: Boolean_comparison_exp timestamp: numeric_comparison_exp user: User_bool_exp user_id: String_comparison_exp } ``` ### Fields #### [UserTransaction_bool_exp.\_and](#)[[UserTransaction_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_bool_exp.\_not](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_bool_exp.\_or](#)[[UserTransaction_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) #### [UserTransaction_bool_exp.block](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [UserTransaction_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [UserTransaction_bool_exp.fee](#)[float8_comparison_exp](/docs/api/lockup/graphql/envio/inputs/float-8-comparison-exp.mdx) #### [UserTransaction_bool_exp.hash](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [UserTransaction_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [UserTransaction_bool_exp.isAirdropClaim](#)[Boolean_comparison_exp](/docs/api/lockup/graphql/envio/inputs/boolean-comparison-exp.mdx) #### [UserTransaction_bool_exp.timestamp](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [UserTransaction_bool_exp.user](#)[User_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-bool-exp.mdx) #### [UserTransaction_bool_exp.user_id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) --- ## UserTransaction_max_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by max() on columns of table "UserTransaction" ```graphql input UserTransaction_max_order_by { block: order_by db_write_timestamp: order_by fee: order_by hash: order_by id: order_by timestamp: order_by user_id: order_by } ``` ### Fields #### [UserTransaction_max_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_max_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_max_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_max_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_max_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_max_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_max_order_by.user_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## UserTransaction_min_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by min() on columns of table "UserTransaction" ```graphql input UserTransaction_min_order_by { block: order_by db_write_timestamp: order_by fee: order_by hash: order_by id: order_by timestamp: order_by user_id: order_by } ``` ### Fields #### [UserTransaction_min_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_min_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_min_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_min_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_min_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_min_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_min_order_by.user_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## UserTransaction_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "UserTransaction". ```graphql input UserTransaction_order_by { block: order_by db_write_timestamp: order_by fee: order_by hash: order_by id: order_by isAirdropClaim: order_by timestamp: order_by user: User_order_by user_id: order_by } ``` ### Fields #### [UserTransaction_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_order_by.hash](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_order_by.isAirdropClaim](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_order_by.user](#)[User_order_by](/docs/api/lockup/graphql/envio/inputs/user-order-by.mdx) #### [UserTransaction_order_by.user_id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## UserTransaction_stddev_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev() on columns of table "UserTransaction" ```graphql input UserTransaction_stddev_order_by { block: order_by fee: order_by timestamp: order_by } ``` ### Fields #### [UserTransaction_stddev_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_stddev_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_stddev_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## UserTransaction_stddev_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_pop() on columns of table "UserTransaction" ```graphql input UserTransaction_stddev_pop_order_by { block: order_by fee: order_by timestamp: order_by } ``` ### Fields #### [UserTransaction_stddev_pop_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_stddev_pop_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_stddev_pop_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## UserTransaction_stddev_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by stddev_samp() on columns of table "UserTransaction" ```graphql input UserTransaction_stddev_samp_order_by { block: order_by fee: order_by timestamp: order_by } ``` ### Fields #### [UserTransaction_stddev_samp_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_stddev_samp_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_stddev_samp_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## UserTransaction_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "UserTransaction" ```graphql input UserTransaction_stream_cursor_input { initial_value: UserTransaction_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [UserTransaction_stream_cursor_input.initial_value](#)[UserTransaction_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/user-transaction-stream-cursor-value-input.mdx) Stream column input with initial value #### [UserTransaction_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## UserTransaction_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input UserTransaction_stream_cursor_value_input { block: numeric db_write_timestamp: timestamp fee: float8 hash: String id: String isAirdropClaim: Boolean timestamp: numeric user_id: String } ``` ### Fields #### [UserTransaction_stream_cursor_value_input.block](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [UserTransaction_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [UserTransaction_stream_cursor_value_input.fee](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [UserTransaction_stream_cursor_value_input.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [UserTransaction_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [UserTransaction_stream_cursor_value_input.isAirdropClaim](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_stream_cursor_value_input.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [UserTransaction_stream_cursor_value_input.user_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## UserTransaction_sum_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by sum() on columns of table "UserTransaction" ```graphql input UserTransaction_sum_order_by { block: order_by fee: order_by timestamp: order_by } ``` ### Fields #### [UserTransaction_sum_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_sum_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_sum_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## UserTransaction_var_pop_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_pop() on columns of table "UserTransaction" ```graphql input UserTransaction_var_pop_order_by { block: order_by fee: order_by timestamp: order_by } ``` ### Fields #### [UserTransaction_var_pop_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_var_pop_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_var_pop_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## UserTransaction_var_samp_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by var_samp() on columns of table "UserTransaction" ```graphql input UserTransaction_var_samp_order_by { block: order_by fee: order_by timestamp: order_by } ``` ### Fields #### [UserTransaction_var_samp_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_var_samp_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_var_samp_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## UserTransaction_variance_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; order by variance() on columns of table "UserTransaction" ```graphql input UserTransaction_variance_order_by { block: order_by fee: order_by timestamp: order_by } ``` ### Fields #### [UserTransaction_variance_order_by.block](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_variance_order_by.fee](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [UserTransaction_variance_order_by.timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Watcher_bool_exp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Boolean expression to filter rows from the table "Watcher". All fields are combined with a logical 'AND'. ```graphql input Watcher_bool_exp { _and: [Watcher_bool_exp!] _not: Watcher_bool_exp _or: [Watcher_bool_exp!] actionCounter: numeric_comparison_exp chainId: numeric_comparison_exp db_write_timestamp: timestamp_comparison_exp id: String_comparison_exp streamCounter: numeric_comparison_exp } ``` ### Fields #### [Watcher_bool_exp.\_and](#)[[Watcher_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/watcher-bool-exp.mdx) #### [Watcher_bool_exp.\_not](#)[Watcher_bool_exp](/docs/api/lockup/graphql/envio/inputs/watcher-bool-exp.mdx) #### [Watcher_bool_exp.\_or](#)[[Watcher_bool_exp!]](/docs/api/lockup/graphql/envio/inputs/watcher-bool-exp.mdx) #### [Watcher_bool_exp.actionCounter](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Watcher_bool_exp.chainId](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) #### [Watcher_bool_exp.db_write_timestamp](#)[timestamp_comparison_exp](/docs/api/lockup/graphql/envio/inputs/timestamp-comparison-exp.mdx) #### [Watcher_bool_exp.id](#)[String_comparison_exp](/docs/api/lockup/graphql/envio/inputs/string-comparison-exp.mdx) #### [Watcher_bool_exp.streamCounter](#)[numeric_comparison_exp](/docs/api/lockup/graphql/envio/inputs/numeric-comparison-exp.mdx) --- ## Watcher_order_by export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Ordering options when selecting data from "Watcher". ```graphql input Watcher_order_by { actionCounter: order_by chainId: order_by db_write_timestamp: order_by id: order_by streamCounter: order_by } ``` ### Fields #### [Watcher_order_by.actionCounter](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Watcher_order_by.chainId](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Watcher_order_by.db_write_timestamp](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Watcher_order_by.id](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) #### [Watcher_order_by.streamCounter](#)[order_by](/docs/api/lockup/graphql/envio/enums/order-by.mdx) --- ## Watcher_stream_cursor_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Streaming cursor of the table "Watcher" ```graphql input Watcher_stream_cursor_input { initial_value: Watcher_stream_cursor_value_input! ordering: cursor_ordering } ``` ### Fields #### [Watcher_stream_cursor_input.initial_value](#)[Watcher_stream_cursor_value_input!](/docs/api/lockup/graphql/envio/inputs/watcher-stream-cursor-value-input.mdx) Stream column input with initial value #### [Watcher_stream_cursor_input.ordering](#)[cursor_ordering](/docs/api/lockup/graphql/envio/enums/cursor-ordering.mdx) cursor ordering --- ## Watcher_stream_cursor_value_input export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Initial value of the column from where the streaming should start ```graphql input Watcher_stream_cursor_value_input { actionCounter: numeric chainId: numeric db_write_timestamp: timestamp id: String streamCounter: numeric } ``` ### Fields #### [Watcher_stream_cursor_value_input.actionCounter](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Watcher_stream_cursor_value_input.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Watcher_stream_cursor_value_input.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Watcher_stream_cursor_value_input.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Watcher_stream_cursor_value_input.streamCounter](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Action export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "Action" ```graphql type Action { addressA: String addressB: String amountA: numeric amountB: numeric block: numeric! category: actioncategory! chainId: numeric! contract: String! db_write_timestamp: timestamp fee: numeric from: String! hash: String! id: String! stream: Stream stream_id: String subgraphId: numeric! timestamp: numeric! } ``` ### Fields #### [Action.addressA](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action.addressB](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action.amountA](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action.amountB](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action.block](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action.category](#)[actioncategory!](/docs/api/lockup/graphql/envio/scalars/actioncategory.mdx) #### [Action.chainId](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action.contract](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Action.fee](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action.from](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action.hash](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action.stream](#)[Stream](/docs/api/lockup/graphql/envio/objects/stream.mdx) An object relationship #### [Action.stream_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Action.subgraphId](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Action.timestamp](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Asset export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "Asset" ```graphql type Asset { address: String! chainId: numeric! db_write_timestamp: timestamp decimals: numeric! id: String! name: String! streams( distinct_on: [Stream_select_column!] limit: Int offset: Int order_by: [Stream_order_by!] where: Stream_bool_exp ): [Stream!]! streams_aggregate( distinct_on: [Stream_select_column!] limit: Int offset: Int order_by: [Stream_order_by!] where: Stream_bool_exp ): Stream_aggregate! symbol: String! } ``` ### Fields #### [Asset.address](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Asset.chainId](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Asset.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Asset.decimals](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Asset.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Asset.name](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Asset.streams](#)[[Stream!]!](/docs/api/lockup/graphql/envio/objects/stream.mdx) An array relationship ##### [Asset.streams.distinct_on](#)[[Stream_select_column!]](/docs/api/lockup/graphql/envio/enums/stream-select-column.mdx) distinct select on columns ##### [Asset.streams.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Asset.streams.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Asset.streams.order_by](#)[[Stream_order_by!]](/docs/api/lockup/graphql/envio/inputs/stream-order-by.mdx) sort the rows by one or more columns ##### [Asset.streams.where](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) filter the rows returned #### [Asset.streams_aggregate](#)[Stream_aggregate!](/docs/api/lockup/graphql/envio/objects/stream-aggregate.mdx) An aggregate relationship ##### [Asset.streams_aggregate.distinct_on](#)[[Stream_select_column!]](/docs/api/lockup/graphql/envio/enums/stream-select-column.mdx) distinct select on columns ##### [Asset.streams_aggregate.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Asset.streams_aggregate.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Asset.streams_aggregate.order_by](#)[[Stream_order_by!]](/docs/api/lockup/graphql/envio/inputs/stream-order-by.mdx) sort the rows by one or more columns ##### [Asset.streams_aggregate.where](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) filter the rows returned #### [Asset.symbol](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## Batch export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "Batch" ```graphql type Batch { batcher: Batcher batcher_id: String db_write_timestamp: timestamp hash: String id: String! position: numeric size: numeric! streams( distinct_on: [Stream_select_column!] limit: Int offset: Int order_by: [Stream_order_by!] where: Stream_bool_exp ): [Stream!]! streams_aggregate( distinct_on: [Stream_select_column!] limit: Int offset: Int order_by: [Stream_order_by!] where: Stream_bool_exp ): Stream_aggregate! timestamp: numeric } ``` ### Fields #### [Batch.batcher](#)[Batcher](/docs/api/lockup/graphql/envio/objects/batcher.mdx) An object relationship #### [Batch.batcher_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Batch.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Batch.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Batch.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Batch.position](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Batch.size](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Batch.streams](#)[[Stream!]!](/docs/api/lockup/graphql/envio/objects/stream.mdx) An array relationship ##### [Batch.streams.distinct_on](#)[[Stream_select_column!]](/docs/api/lockup/graphql/envio/enums/stream-select-column.mdx) distinct select on columns ##### [Batch.streams.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Batch.streams.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Batch.streams.order_by](#)[[Stream_order_by!]](/docs/api/lockup/graphql/envio/inputs/stream-order-by.mdx) sort the rows by one or more columns ##### [Batch.streams.where](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) filter the rows returned #### [Batch.streams_aggregate](#)[Stream_aggregate!](/docs/api/lockup/graphql/envio/objects/stream-aggregate.mdx) An aggregate relationship ##### [Batch.streams_aggregate.distinct_on](#)[[Stream_select_column!]](/docs/api/lockup/graphql/envio/enums/stream-select-column.mdx) distinct select on columns ##### [Batch.streams_aggregate.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Batch.streams_aggregate.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Batch.streams_aggregate.order_by](#)[[Stream_order_by!]](/docs/api/lockup/graphql/envio/inputs/stream-order-by.mdx) sort the rows by one or more columns ##### [Batch.streams_aggregate.where](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) filter the rows returned #### [Batch.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Batcher export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "Batcher" ```graphql type Batcher { batchCounter: numeric! batches( distinct_on: [Batch_select_column!] limit: Int offset: Int order_by: [Batch_order_by!] where: Batch_bool_exp ): [Batch!]! db_write_timestamp: timestamp id: String! } ``` ### Fields #### [Batcher.batchCounter](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Batcher.batches](#)[[Batch!]!](/docs/api/lockup/graphql/envio/objects/batch.mdx) An array relationship ##### [Batcher.batches.distinct_on](#)[[Batch_select_column!]](/docs/api/lockup/graphql/envio/enums/batch-select-column.mdx) distinct select on columns ##### [Batcher.batches.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Batcher.batches.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Batcher.batches.order_by](#)[[Batch_order_by!]](/docs/api/lockup/graphql/envio/inputs/batch-order-by.mdx) sort the rows by one or more columns ##### [Batcher.batches.where](#)[Batch_bool_exp](/docs/api/lockup/graphql/envio/inputs/batch-bool-exp.mdx) filter the rows returned #### [Batcher.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Batcher.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## chain_metadata export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "chain_metadata" ```graphql type chain_metadata { block_height: Int! chain_id: Int! end_block: Int first_event_block_number: Int is_hyper_sync: Boolean! latest_fetched_block_number: Int! latest_processed_block: Int num_batches_fetched: Int! num_events_processed: Int start_block: Int! timestamp_caught_up_to_head_or_endblock: timestamptz } ``` ### Fields #### [chain_metadata.block_height](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata.chain_id](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata.end_block](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata.first_event_block_number](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata.is_hyper_sync](#)[Boolean!](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [chain_metadata.latest_fetched_block_number](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata.latest_processed_block](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata.num_batches_fetched](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata.num_events_processed](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata.start_block](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [chain_metadata.timestamp_caught_up_to_head_or_endblock](#)[timestamptz](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) --- ## Contract export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "Contract" ```graphql type Contract { actions( distinct_on: [Action_select_column!] limit: Int offset: Int order_by: [Action_order_by!] where: Action_bool_exp ): [Action!]! address: String! admin: String alias: String! category: contractcategory! chainId: numeric! db_write_timestamp: timestamp id: String! streams( distinct_on: [Stream_select_column!] limit: Int offset: Int order_by: [Stream_order_by!] where: Stream_bool_exp ): [Stream!]! version: String! } ``` ### Fields #### [Contract.actions](#)[[Action!]!](/docs/api/lockup/graphql/envio/objects/action.mdx) An array relationship ##### [Contract.actions.distinct_on](#)[[Action_select_column!]](/docs/api/lockup/graphql/envio/enums/action-select-column.mdx) distinct select on columns ##### [Contract.actions.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Contract.actions.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Contract.actions.order_by](#)[[Action_order_by!]](/docs/api/lockup/graphql/envio/inputs/action-order-by.mdx) sort the rows by one or more columns ##### [Contract.actions.where](#)[Action_bool_exp](/docs/api/lockup/graphql/envio/inputs/action-bool-exp.mdx) filter the rows returned #### [Contract.address](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Contract.admin](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Contract.alias](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Contract.category](#)[contractcategory!](/docs/api/lockup/graphql/envio/scalars/contractcategory.mdx) #### [Contract.chainId](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Contract.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Contract.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Contract.streams](#)[[Stream!]!](/docs/api/lockup/graphql/envio/objects/stream.mdx) An array relationship ##### [Contract.streams.distinct_on](#)[[Stream_select_column!]](/docs/api/lockup/graphql/envio/enums/stream-select-column.mdx) distinct select on columns ##### [Contract.streams.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Contract.streams.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Contract.streams.order_by](#)[[Stream_order_by!]](/docs/api/lockup/graphql/envio/inputs/stream-order-by.mdx) sort the rows by one or more columns ##### [Contract.streams.where](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) filter the rows returned #### [Contract.version](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## dynamic_contract_registry export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "dynamic_contract_registry" ```graphql type dynamic_contract_registry { chain_id: Int! contract_address: String! contract_type: contract_type! id: String! registering_event_block_number: Int! registering_event_block_timestamp: Int! registering_event_contract_name: String! registering_event_log_index: Int! registering_event_name: String! registering_event_src_address: String! } ``` ### Fields #### [dynamic_contract_registry.chain_id](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [dynamic_contract_registry.contract_address](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [dynamic_contract_registry.contract_type](#)[contract_type!](/docs/api/lockup/graphql/envio/scalars/contract-type.mdx) #### [dynamic_contract_registry.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [dynamic_contract_registry.registering_event_block_number](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [dynamic_contract_registry.registering_event_block_timestamp](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [dynamic_contract_registry.registering_event_contract_name](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [dynamic_contract_registry.registering_event_log_index](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [dynamic_contract_registry.registering_event_name](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [dynamic_contract_registry.registering_event_src_address](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## end_of_block_range_scanned_data export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "end_of_block_range_scanned_data" ```graphql type end_of_block_range_scanned_data { block_hash: String! block_number: Int! chain_id: Int! } ``` ### Fields #### [end_of_block_range_scanned_data.block_hash](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [end_of_block_range_scanned_data.block_number](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [end_of_block_range_scanned_data.chain_id](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) --- ## event_sync_state export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "event_sync_state" ```graphql type event_sync_state { block_number: Int! block_timestamp: Int! chain_id: Int! is_pre_registering_dynamic_contracts: Boolean log_index: Int! } ``` ### Fields #### [event_sync_state.block_number](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [event_sync_state.block_timestamp](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [event_sync_state.chain_id](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [event_sync_state.is_pre_registering_dynamic_contracts](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [event_sync_state.log_index](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) --- ## persisted_state export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "persisted_state" ```graphql type persisted_state { abi_files_hash: String! config_hash: String! envio_version: String! handler_files_hash: String! id: Int! schema_hash: String! } ``` ### Fields #### [persisted_state.abi_files_hash](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [persisted_state.config_hash](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [persisted_state.envio_version](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [persisted_state.handler_files_hash](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [persisted_state.id](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [persisted_state.schema_hash](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## raw_events export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "raw_events" ```graphql type raw_events { block_fields(path: String): jsonb! block_hash: String! block_number: Int! block_timestamp: Int! chain_id: Int! contract_name: String! db_write_timestamp: timestamp event_id: numeric! event_name: String! log_index: Int! params(path: String): jsonb! serial: Int! src_address: String! transaction_fields(path: String): jsonb! } ``` ### Fields #### [raw_events.block_fields](#)[jsonb!](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) ##### [raw_events.block_fields.path](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) JSON select path #### [raw_events.block_hash](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [raw_events.block_number](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [raw_events.block_timestamp](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [raw_events.chain_id](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [raw_events.contract_name](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [raw_events.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [raw_events.event_id](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [raw_events.event_name](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [raw_events.log_index](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [raw_events.params](#)[jsonb!](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) ##### [raw_events.params.path](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) JSON select path #### [raw_events.serial](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [raw_events.src_address](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [raw_events.transaction_fields](#)[jsonb!](/docs/api/lockup/graphql/envio/scalars/jsonb.mdx) ##### [raw_events.transaction_fields.path](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) JSON select path --- ## Revenue_aggregate_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate fields of "Revenue" ```graphql type Revenue_aggregate_fields { avg: Revenue_avg_fields count(columns: [Revenue_select_column!], distinct: Boolean): Int! max: Revenue_max_fields min: Revenue_min_fields stddev: Revenue_stddev_fields stddev_pop: Revenue_stddev_pop_fields stddev_samp: Revenue_stddev_samp_fields sum: Revenue_sum_fields var_pop: Revenue_var_pop_fields var_samp: Revenue_var_samp_fields variance: Revenue_variance_fields } ``` ### Fields #### [Revenue_aggregate_fields.avg](#)[Revenue_avg_fields](/docs/api/lockup/graphql/envio/objects/revenue-avg-fields.mdx) #### [Revenue_aggregate_fields.count](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) ##### [Revenue_aggregate_fields.count.columns](#)[[Revenue_select_column!]](/docs/api/lockup/graphql/envio/enums/revenue-select-column.mdx) ##### [Revenue_aggregate_fields.count.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Revenue_aggregate_fields.max](#)[Revenue_max_fields](/docs/api/lockup/graphql/envio/objects/revenue-max-fields.mdx) #### [Revenue_aggregate_fields.min](#)[Revenue_min_fields](/docs/api/lockup/graphql/envio/objects/revenue-min-fields.mdx) #### [Revenue_aggregate_fields.stddev](#)[Revenue_stddev_fields](/docs/api/lockup/graphql/envio/objects/revenue-stddev-fields.mdx) #### [Revenue_aggregate_fields.stddev_pop](#)[Revenue_stddev_pop_fields](/docs/api/lockup/graphql/envio/objects/revenue-stddev-pop-fields.mdx) #### [Revenue_aggregate_fields.stddev_samp](#)[Revenue_stddev_samp_fields](/docs/api/lockup/graphql/envio/objects/revenue-stddev-samp-fields.mdx) #### [Revenue_aggregate_fields.sum](#)[Revenue_sum_fields](/docs/api/lockup/graphql/envio/objects/revenue-sum-fields.mdx) #### [Revenue_aggregate_fields.var_pop](#)[Revenue_var_pop_fields](/docs/api/lockup/graphql/envio/objects/revenue-var-pop-fields.mdx) #### [Revenue_aggregate_fields.var_samp](#)[Revenue_var_samp_fields](/docs/api/lockup/graphql/envio/objects/revenue-var-samp-fields.mdx) #### [Revenue_aggregate_fields.variance](#)[Revenue_variance_fields](/docs/api/lockup/graphql/envio/objects/revenue-variance-fields.mdx) --- ## Revenue_aggregate export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregated selection of "Revenue" ```graphql type Revenue_aggregate { aggregate: Revenue_aggregate_fields nodes: [Revenue!]! } ``` ### Fields #### [Revenue_aggregate.aggregate](#)[Revenue_aggregate_fields](/docs/api/lockup/graphql/envio/objects/revenue-aggregate-fields.mdx) #### [Revenue_aggregate.nodes](#)[[Revenue!]!](/docs/api/lockup/graphql/envio/objects/revenue.mdx) --- ## Revenue_avg_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate avg on columns ```graphql type Revenue_avg_fields { amount: Float chainId: Float } ``` ### Fields #### [Revenue_avg_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Revenue_avg_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Revenue_max_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate max on columns ```graphql type Revenue_max_fields { amount: float8 chainId: numeric currency: String date: String dateTimestamp: timestamptz db_write_timestamp: timestamp id: String } ``` ### Fields #### [Revenue_max_fields.amount](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [Revenue_max_fields.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Revenue_max_fields.currency](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Revenue_max_fields.date](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Revenue_max_fields.dateTimestamp](#)[timestamptz](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) #### [Revenue_max_fields.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Revenue_max_fields.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## Revenue_min_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate min on columns ```graphql type Revenue_min_fields { amount: float8 chainId: numeric currency: String date: String dateTimestamp: timestamptz db_write_timestamp: timestamp id: String } ``` ### Fields #### [Revenue_min_fields.amount](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [Revenue_min_fields.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Revenue_min_fields.currency](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Revenue_min_fields.date](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Revenue_min_fields.dateTimestamp](#)[timestamptz](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) #### [Revenue_min_fields.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Revenue_min_fields.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## Revenue_stddev_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev on columns ```graphql type Revenue_stddev_fields { amount: Float chainId: Float } ``` ### Fields #### [Revenue_stddev_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Revenue_stddev_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Revenue_stddev_pop_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev_pop on columns ```graphql type Revenue_stddev_pop_fields { amount: Float chainId: Float } ``` ### Fields #### [Revenue_stddev_pop_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Revenue_stddev_pop_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Revenue_stddev_samp_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev_samp on columns ```graphql type Revenue_stddev_samp_fields { amount: Float chainId: Float } ``` ### Fields #### [Revenue_stddev_samp_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Revenue_stddev_samp_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Revenue_sum_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate sum on columns ```graphql type Revenue_sum_fields { amount: float8 chainId: numeric } ``` ### Fields #### [Revenue_sum_fields.amount](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [Revenue_sum_fields.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## RevenueTransaction_aggregate_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate fields of "RevenueTransaction" ```graphql type RevenueTransaction_aggregate_fields { avg: RevenueTransaction_avg_fields count(columns: [RevenueTransaction_select_column!], distinct: Boolean): Int! max: RevenueTransaction_max_fields min: RevenueTransaction_min_fields stddev: RevenueTransaction_stddev_fields stddev_pop: RevenueTransaction_stddev_pop_fields stddev_samp: RevenueTransaction_stddev_samp_fields sum: RevenueTransaction_sum_fields var_pop: RevenueTransaction_var_pop_fields var_samp: RevenueTransaction_var_samp_fields variance: RevenueTransaction_variance_fields } ``` ### Fields #### [RevenueTransaction_aggregate_fields.avg](#)[RevenueTransaction_avg_fields](/docs/api/lockup/graphql/envio/objects/revenue-transaction-avg-fields.mdx) #### [RevenueTransaction_aggregate_fields.count](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) ##### [RevenueTransaction_aggregate_fields.count.columns](#)[[RevenueTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column.mdx) ##### [RevenueTransaction_aggregate_fields.count.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [RevenueTransaction_aggregate_fields.max](#)[RevenueTransaction_max_fields](/docs/api/lockup/graphql/envio/objects/revenue-transaction-max-fields.mdx) #### [RevenueTransaction_aggregate_fields.min](#)[RevenueTransaction_min_fields](/docs/api/lockup/graphql/envio/objects/revenue-transaction-min-fields.mdx) #### [RevenueTransaction_aggregate_fields.stddev](#)[RevenueTransaction_stddev_fields](/docs/api/lockup/graphql/envio/objects/revenue-transaction-stddev-fields.mdx) #### [RevenueTransaction_aggregate_fields.stddev_pop](#)[RevenueTransaction_stddev_pop_fields](/docs/api/lockup/graphql/envio/objects/revenue-transaction-stddev-pop-fields.mdx) #### [RevenueTransaction_aggregate_fields.stddev_samp](#)[RevenueTransaction_stddev_samp_fields](/docs/api/lockup/graphql/envio/objects/revenue-transaction-stddev-samp-fields.mdx) #### [RevenueTransaction_aggregate_fields.sum](#)[RevenueTransaction_sum_fields](/docs/api/lockup/graphql/envio/objects/revenue-transaction-sum-fields.mdx) #### [RevenueTransaction_aggregate_fields.var_pop](#)[RevenueTransaction_var_pop_fields](/docs/api/lockup/graphql/envio/objects/revenue-transaction-var-pop-fields.mdx) #### [RevenueTransaction_aggregate_fields.var_samp](#)[RevenueTransaction_var_samp_fields](/docs/api/lockup/graphql/envio/objects/revenue-transaction-var-samp-fields.mdx) #### [RevenueTransaction_aggregate_fields.variance](#)[RevenueTransaction_variance_fields](/docs/api/lockup/graphql/envio/objects/revenue-transaction-variance-fields.mdx) --- ## RevenueTransaction_aggregate export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregated selection of "RevenueTransaction" ```graphql type RevenueTransaction_aggregate { aggregate: RevenueTransaction_aggregate_fields nodes: [RevenueTransaction!]! } ``` ### Fields #### [RevenueTransaction_aggregate.aggregate](#)[RevenueTransaction_aggregate_fields](/docs/api/lockup/graphql/envio/objects/revenue-transaction-aggregate-fields.mdx) #### [RevenueTransaction_aggregate.nodes](#)[[RevenueTransaction!]!](/docs/api/lockup/graphql/envio/objects/revenue-transaction.mdx) --- ## RevenueTransaction_avg_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate avg on columns ```graphql type RevenueTransaction_avg_fields { amount: Float block: Float timestamp: Float } ``` ### Fields #### [RevenueTransaction_avg_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_avg_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_avg_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## RevenueTransaction_max_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate max on columns ```graphql type RevenueTransaction_max_fields { amount: float8 block: numeric db_write_timestamp: timestamp hash: String id: String revenue_id: String timestamp: numeric } ``` ### Fields #### [RevenueTransaction_max_fields.amount](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [RevenueTransaction_max_fields.block](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [RevenueTransaction_max_fields.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [RevenueTransaction_max_fields.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction_max_fields.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction_max_fields.revenue_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction_max_fields.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## RevenueTransaction_min_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate min on columns ```graphql type RevenueTransaction_min_fields { amount: float8 block: numeric db_write_timestamp: timestamp hash: String id: String revenue_id: String timestamp: numeric } ``` ### Fields #### [RevenueTransaction_min_fields.amount](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [RevenueTransaction_min_fields.block](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [RevenueTransaction_min_fields.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [RevenueTransaction_min_fields.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction_min_fields.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction_min_fields.revenue_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction_min_fields.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## RevenueTransaction_stddev_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev on columns ```graphql type RevenueTransaction_stddev_fields { amount: Float block: Float timestamp: Float } ``` ### Fields #### [RevenueTransaction_stddev_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_stddev_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_stddev_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## RevenueTransaction_stddev_pop_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev_pop on columns ```graphql type RevenueTransaction_stddev_pop_fields { amount: Float block: Float timestamp: Float } ``` ### Fields #### [RevenueTransaction_stddev_pop_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_stddev_pop_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_stddev_pop_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## RevenueTransaction_stddev_samp_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev_samp on columns ```graphql type RevenueTransaction_stddev_samp_fields { amount: Float block: Float timestamp: Float } ``` ### Fields #### [RevenueTransaction_stddev_samp_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_stddev_samp_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_stddev_samp_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## RevenueTransaction_sum_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate sum on columns ```graphql type RevenueTransaction_sum_fields { amount: float8 block: numeric timestamp: numeric } ``` ### Fields #### [RevenueTransaction_sum_fields.amount](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [RevenueTransaction_sum_fields.block](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [RevenueTransaction_sum_fields.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## RevenueTransaction_var_pop_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate var_pop on columns ```graphql type RevenueTransaction_var_pop_fields { amount: Float block: Float timestamp: Float } ``` ### Fields #### [RevenueTransaction_var_pop_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_var_pop_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_var_pop_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## RevenueTransaction_var_samp_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate var_samp on columns ```graphql type RevenueTransaction_var_samp_fields { amount: Float block: Float timestamp: Float } ``` ### Fields #### [RevenueTransaction_var_samp_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_var_samp_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_var_samp_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## RevenueTransaction_variance_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate variance on columns ```graphql type RevenueTransaction_variance_fields { amount: Float block: Float timestamp: Float } ``` ### Fields #### [RevenueTransaction_variance_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_variance_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [RevenueTransaction_variance_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## RevenueTransaction export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "RevenueTransaction" ```graphql type RevenueTransaction { amount: float8! block: numeric! db_write_timestamp: timestamp hash: String! id: String! revenue: Revenue revenue_id: String! timestamp: numeric! } ``` ### Fields #### [RevenueTransaction.amount](#)[float8!](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [RevenueTransaction.block](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [RevenueTransaction.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [RevenueTransaction.hash](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction.revenue](#)[Revenue](/docs/api/lockup/graphql/envio/objects/revenue.mdx) An object relationship #### [RevenueTransaction.revenue_id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [RevenueTransaction.timestamp](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Revenue_var_pop_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate var_pop on columns ```graphql type Revenue_var_pop_fields { amount: Float chainId: Float } ``` ### Fields #### [Revenue_var_pop_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Revenue_var_pop_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Revenue_var_samp_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate var_samp on columns ```graphql type Revenue_var_samp_fields { amount: Float chainId: Float } ``` ### Fields #### [Revenue_var_samp_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Revenue_var_samp_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Revenue_variance_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate variance on columns ```graphql type Revenue_variance_fields { amount: Float chainId: Float } ``` ### Fields #### [Revenue_variance_fields.amount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Revenue_variance_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Revenue export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "Revenue" ```graphql type Revenue { amount: float8! chainId: numeric! currency: String! date: String! dateTimestamp: timestamptz! db_write_timestamp: timestamp id: String! transactions( distinct_on: [RevenueTransaction_select_column!] limit: Int offset: Int order_by: [RevenueTransaction_order_by!] where: RevenueTransaction_bool_exp ): [RevenueTransaction!]! transactions_aggregate( distinct_on: [RevenueTransaction_select_column!] limit: Int offset: Int order_by: [RevenueTransaction_order_by!] where: RevenueTransaction_bool_exp ): RevenueTransaction_aggregate! } ``` ### Fields #### [Revenue.amount](#)[float8!](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [Revenue.chainId](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Revenue.currency](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Revenue.date](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Revenue.dateTimestamp](#)[timestamptz!](/docs/api/lockup/graphql/envio/scalars/timestamptz.mdx) #### [Revenue.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Revenue.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Revenue.transactions](#)[[RevenueTransaction!]!](/docs/api/lockup/graphql/envio/objects/revenue-transaction.mdx) An array relationship ##### [Revenue.transactions.distinct_on](#)[[RevenueTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column.mdx) distinct select on columns ##### [Revenue.transactions.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Revenue.transactions.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Revenue.transactions.order_by](#)[[RevenueTransaction_order_by!]](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-order-by.mdx) sort the rows by one or more columns ##### [Revenue.transactions.where](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) filter the rows returned #### [Revenue.transactions_aggregate](#)[RevenueTransaction_aggregate!](/docs/api/lockup/graphql/envio/objects/revenue-transaction-aggregate.mdx) An aggregate relationship ##### [Revenue.transactions_aggregate.distinct_on](#)[[RevenueTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column.mdx) distinct select on columns ##### [Revenue.transactions_aggregate.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Revenue.transactions_aggregate.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Revenue.transactions_aggregate.order_by](#)[[RevenueTransaction_order_by!]](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-order-by.mdx) sort the rows by one or more columns ##### [Revenue.transactions_aggregate.where](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) filter the rows returned --- ## Segment export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "Segment" ```graphql type Segment { amount: numeric! db_write_timestamp: timestamp endAmount: numeric! endTime: numeric! exponent: numeric! id: String! position: numeric! startAmount: numeric! startTime: numeric! stream: Stream stream_id: String! } ``` ### Fields #### [Segment.amount](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Segment.endAmount](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment.endTime](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment.exponent](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Segment.position](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment.startAmount](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment.startTime](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Segment.stream](#)[Stream](/docs/api/lockup/graphql/envio/objects/stream.mdx) An object relationship #### [Segment.stream_id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## Stream_aggregate_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate fields of "Stream" ```graphql type Stream_aggregate_fields { avg: Stream_avg_fields count(columns: [Stream_select_column!], distinct: Boolean): Int! max: Stream_max_fields min: Stream_min_fields stddev: Stream_stddev_fields stddev_pop: Stream_stddev_pop_fields stddev_samp: Stream_stddev_samp_fields sum: Stream_sum_fields var_pop: Stream_var_pop_fields var_samp: Stream_var_samp_fields variance: Stream_variance_fields } ``` ### Fields #### [Stream_aggregate_fields.avg](#)[Stream_avg_fields](/docs/api/lockup/graphql/envio/objects/stream-avg-fields.mdx) #### [Stream_aggregate_fields.count](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) ##### [Stream_aggregate_fields.count.columns](#)[[Stream_select_column!]](/docs/api/lockup/graphql/envio/enums/stream-select-column.mdx) ##### [Stream_aggregate_fields.count.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream_aggregate_fields.max](#)[Stream_max_fields](/docs/api/lockup/graphql/envio/objects/stream-max-fields.mdx) #### [Stream_aggregate_fields.min](#)[Stream_min_fields](/docs/api/lockup/graphql/envio/objects/stream-min-fields.mdx) #### [Stream_aggregate_fields.stddev](#)[Stream_stddev_fields](/docs/api/lockup/graphql/envio/objects/stream-stddev-fields.mdx) #### [Stream_aggregate_fields.stddev_pop](#)[Stream_stddev_pop_fields](/docs/api/lockup/graphql/envio/objects/stream-stddev-pop-fields.mdx) #### [Stream_aggregate_fields.stddev_samp](#)[Stream_stddev_samp_fields](/docs/api/lockup/graphql/envio/objects/stream-stddev-samp-fields.mdx) #### [Stream_aggregate_fields.sum](#)[Stream_sum_fields](/docs/api/lockup/graphql/envio/objects/stream-sum-fields.mdx) #### [Stream_aggregate_fields.var_pop](#)[Stream_var_pop_fields](/docs/api/lockup/graphql/envio/objects/stream-var-pop-fields.mdx) #### [Stream_aggregate_fields.var_samp](#)[Stream_var_samp_fields](/docs/api/lockup/graphql/envio/objects/stream-var-samp-fields.mdx) #### [Stream_aggregate_fields.variance](#)[Stream_variance_fields](/docs/api/lockup/graphql/envio/objects/stream-variance-fields.mdx) --- ## Stream_aggregate export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregated selection of "Stream" ```graphql type Stream_aggregate { aggregate: Stream_aggregate_fields nodes: [Stream!]! } ``` ### Fields #### [Stream_aggregate.aggregate](#)[Stream_aggregate_fields](/docs/api/lockup/graphql/envio/objects/stream-aggregate-fields.mdx) #### [Stream_aggregate.nodes](#)[[Stream!]!](/docs/api/lockup/graphql/envio/objects/stream.mdx) --- ## Stream_avg_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate avg on columns ```graphql type Stream_avg_fields { assetDecimalsValue: Float canceledTime: Float chainId: Float cliffAmount: Float cliffTime: Float depositAmount: Float duration: Float endTime: Float initialAmount: Float intactAmount: Float position: Float renounceTime: Float startTime: Float subgraphId: Float timestamp: Float tokenId: Float withdrawnAmount: Float } ``` ### Fields #### [Stream_avg_fields.assetDecimalsValue](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.canceledTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.cliffAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.cliffTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.depositAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.duration](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.endTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.initialAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.intactAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.position](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.renounceTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.startTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.subgraphId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.tokenId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_avg_fields.withdrawnAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Stream_max_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate max on columns ```graphql type Stream_max_fields { alias: String assetDecimalsValue: numeric asset_id: String batch_id: String canceledAction_id: String canceledTime: numeric category: streamcategory chainId: numeric cliffAmount: numeric cliffTime: numeric contract: String db_write_timestamp: timestamp depositAmount: numeric duration: numeric endTime: numeric funder: String hash: String id: String initialAmount: numeric intactAmount: numeric position: numeric proxender: String recipient: String renounceAction_id: String renounceTime: numeric sender: String shape: String startTime: numeric subgraphId: numeric timestamp: numeric tokenId: numeric version: String withdrawnAmount: numeric } ``` ### Fields #### [Stream_max_fields.alias](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.assetDecimalsValue](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.asset_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.batch_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.canceledAction_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.canceledTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.category](#)[streamcategory](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) #### [Stream_max_fields.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.cliffAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.cliffTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.contract](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Stream_max_fields.depositAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.duration](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.endTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.funder](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.initialAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.intactAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.position](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.proxender](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.recipient](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.renounceAction_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.renounceTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.sender](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.shape](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.startTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.subgraphId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.tokenId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_max_fields.version](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_max_fields.withdrawnAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Stream_min_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate min on columns ```graphql type Stream_min_fields { alias: String assetDecimalsValue: numeric asset_id: String batch_id: String canceledAction_id: String canceledTime: numeric category: streamcategory chainId: numeric cliffAmount: numeric cliffTime: numeric contract: String db_write_timestamp: timestamp depositAmount: numeric duration: numeric endTime: numeric funder: String hash: String id: String initialAmount: numeric intactAmount: numeric position: numeric proxender: String recipient: String renounceAction_id: String renounceTime: numeric sender: String shape: String startTime: numeric subgraphId: numeric timestamp: numeric tokenId: numeric version: String withdrawnAmount: numeric } ``` ### Fields #### [Stream_min_fields.alias](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.assetDecimalsValue](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.asset_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.batch_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.canceledAction_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.canceledTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.category](#)[streamcategory](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) #### [Stream_min_fields.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.cliffAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.cliffTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.contract](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Stream_min_fields.depositAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.duration](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.endTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.funder](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.initialAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.intactAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.position](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.proxender](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.recipient](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.renounceAction_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.renounceTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.sender](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.shape](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.startTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.subgraphId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.tokenId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_min_fields.version](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream_min_fields.withdrawnAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Stream_stddev_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev on columns ```graphql type Stream_stddev_fields { assetDecimalsValue: Float canceledTime: Float chainId: Float cliffAmount: Float cliffTime: Float depositAmount: Float duration: Float endTime: Float initialAmount: Float intactAmount: Float position: Float renounceTime: Float startTime: Float subgraphId: Float timestamp: Float tokenId: Float withdrawnAmount: Float } ``` ### Fields #### [Stream_stddev_fields.assetDecimalsValue](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.canceledTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.cliffAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.cliffTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.depositAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.duration](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.endTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.initialAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.intactAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.position](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.renounceTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.startTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.subgraphId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.tokenId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_fields.withdrawnAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Stream_stddev_pop_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev_pop on columns ```graphql type Stream_stddev_pop_fields { assetDecimalsValue: Float canceledTime: Float chainId: Float cliffAmount: Float cliffTime: Float depositAmount: Float duration: Float endTime: Float initialAmount: Float intactAmount: Float position: Float renounceTime: Float startTime: Float subgraphId: Float timestamp: Float tokenId: Float withdrawnAmount: Float } ``` ### Fields #### [Stream_stddev_pop_fields.assetDecimalsValue](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.canceledTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.cliffAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.cliffTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.depositAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.duration](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.endTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.initialAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.intactAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.position](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.renounceTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.startTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.subgraphId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.tokenId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_pop_fields.withdrawnAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Stream_stddev_samp_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev_samp on columns ```graphql type Stream_stddev_samp_fields { assetDecimalsValue: Float canceledTime: Float chainId: Float cliffAmount: Float cliffTime: Float depositAmount: Float duration: Float endTime: Float initialAmount: Float intactAmount: Float position: Float renounceTime: Float startTime: Float subgraphId: Float timestamp: Float tokenId: Float withdrawnAmount: Float } ``` ### Fields #### [Stream_stddev_samp_fields.assetDecimalsValue](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.canceledTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.cliffAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.cliffTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.depositAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.duration](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.endTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.initialAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.intactAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.position](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.renounceTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.startTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.subgraphId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.tokenId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_stddev_samp_fields.withdrawnAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Stream_sum_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate sum on columns ```graphql type Stream_sum_fields { assetDecimalsValue: numeric canceledTime: numeric chainId: numeric cliffAmount: numeric cliffTime: numeric depositAmount: numeric duration: numeric endTime: numeric initialAmount: numeric intactAmount: numeric position: numeric renounceTime: numeric startTime: numeric subgraphId: numeric timestamp: numeric tokenId: numeric withdrawnAmount: numeric } ``` ### Fields #### [Stream_sum_fields.assetDecimalsValue](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.canceledTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.cliffAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.cliffTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.depositAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.duration](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.endTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.initialAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.intactAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.position](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.renounceTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.startTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.subgraphId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.tokenId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream_sum_fields.withdrawnAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Stream_var_pop_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate var_pop on columns ```graphql type Stream_var_pop_fields { assetDecimalsValue: Float canceledTime: Float chainId: Float cliffAmount: Float cliffTime: Float depositAmount: Float duration: Float endTime: Float initialAmount: Float intactAmount: Float position: Float renounceTime: Float startTime: Float subgraphId: Float timestamp: Float tokenId: Float withdrawnAmount: Float } ``` ### Fields #### [Stream_var_pop_fields.assetDecimalsValue](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.canceledTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.cliffAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.cliffTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.depositAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.duration](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.endTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.initialAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.intactAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.position](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.renounceTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.startTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.subgraphId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.tokenId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_pop_fields.withdrawnAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Stream_var_samp_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate var_samp on columns ```graphql type Stream_var_samp_fields { assetDecimalsValue: Float canceledTime: Float chainId: Float cliffAmount: Float cliffTime: Float depositAmount: Float duration: Float endTime: Float initialAmount: Float intactAmount: Float position: Float renounceTime: Float startTime: Float subgraphId: Float timestamp: Float tokenId: Float withdrawnAmount: Float } ``` ### Fields #### [Stream_var_samp_fields.assetDecimalsValue](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.canceledTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.cliffAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.cliffTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.depositAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.duration](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.endTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.initialAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.intactAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.position](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.renounceTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.startTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.subgraphId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.tokenId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_var_samp_fields.withdrawnAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Stream_variance_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate variance on columns ```graphql type Stream_variance_fields { assetDecimalsValue: Float canceledTime: Float chainId: Float cliffAmount: Float cliffTime: Float depositAmount: Float duration: Float endTime: Float initialAmount: Float intactAmount: Float position: Float renounceTime: Float startTime: Float subgraphId: Float timestamp: Float tokenId: Float withdrawnAmount: Float } ``` ### Fields #### [Stream_variance_fields.assetDecimalsValue](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.canceledTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.cliffAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.cliffTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.depositAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.duration](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.endTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.initialAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.intactAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.position](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.renounceTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.startTime](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.subgraphId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.tokenId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [Stream_variance_fields.withdrawnAmount](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## Stream export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "Stream" ```graphql type Stream { actions( distinct_on: [Action_select_column!] limit: Int offset: Int order_by: [Action_order_by!] where: Action_bool_exp ): [Action!]! alias: String! asset: Asset assetDecimalsValue: numeric! asset_id: String! batch: Batch batch_id: String! cancelable: Boolean! canceled: Boolean! canceledAction: Action canceledAction_id: String canceledTime: numeric category: streamcategory! chainId: numeric! cliff: Boolean cliffAmount: numeric cliffTime: numeric contract: String! db_write_timestamp: timestamp depositAmount: numeric! duration: numeric! endTime: numeric! funder: String! hash: String! id: String! initial: Boolean initialAmount: numeric intactAmount: numeric! position: numeric! proxender: String proxied: Boolean! recipient: String! renounceAction: Action renounceAction_id: String renounceTime: numeric segments( distinct_on: [Segment_select_column!] limit: Int offset: Int order_by: [Segment_order_by!] where: Segment_bool_exp ): [Segment!]! sender: String! shape: String startTime: numeric! subgraphId: numeric! timestamp: numeric! tokenId: numeric! tranches( distinct_on: [Tranche_select_column!] limit: Int offset: Int order_by: [Tranche_order_by!] where: Tranche_bool_exp ): [Tranche!]! transferable: Boolean! version: String! withdrawnAmount: numeric! } ``` ### Fields #### [Stream.actions](#)[[Action!]!](/docs/api/lockup/graphql/envio/objects/action.mdx) An array relationship ##### [Stream.actions.distinct_on](#)[[Action_select_column!]](/docs/api/lockup/graphql/envio/enums/action-select-column.mdx) distinct select on columns ##### [Stream.actions.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Stream.actions.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Stream.actions.order_by](#)[[Action_order_by!]](/docs/api/lockup/graphql/envio/inputs/action-order-by.mdx) sort the rows by one or more columns ##### [Stream.actions.where](#)[Action_bool_exp](/docs/api/lockup/graphql/envio/inputs/action-bool-exp.mdx) filter the rows returned #### [Stream.alias](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.asset](#)[Asset](/docs/api/lockup/graphql/envio/objects/asset.mdx) An object relationship #### [Stream.assetDecimalsValue](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.asset_id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.batch](#)[Batch](/docs/api/lockup/graphql/envio/objects/batch.mdx) An object relationship #### [Stream.batch_id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.cancelable](#)[Boolean!](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream.canceled](#)[Boolean!](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream.canceledAction](#)[Action](/docs/api/lockup/graphql/envio/objects/action.mdx) An object relationship #### [Stream.canceledAction_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.canceledTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.category](#)[streamcategory!](/docs/api/lockup/graphql/envio/scalars/streamcategory.mdx) #### [Stream.chainId](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.cliff](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream.cliffAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.cliffTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.contract](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Stream.depositAmount](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.duration](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.endTime](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.funder](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.hash](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.initial](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream.initialAmount](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.intactAmount](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.position](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.proxender](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.proxied](#)[Boolean!](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream.recipient](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.renounceAction](#)[Action](/docs/api/lockup/graphql/envio/objects/action.mdx) An object relationship #### [Stream.renounceAction_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.renounceTime](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.segments](#)[[Segment!]!](/docs/api/lockup/graphql/envio/objects/segment.mdx) An array relationship ##### [Stream.segments.distinct_on](#)[[Segment_select_column!]](/docs/api/lockup/graphql/envio/enums/segment-select-column.mdx) distinct select on columns ##### [Stream.segments.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Stream.segments.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Stream.segments.order_by](#)[[Segment_order_by!]](/docs/api/lockup/graphql/envio/inputs/segment-order-by.mdx) sort the rows by one or more columns ##### [Stream.segments.where](#)[Segment_bool_exp](/docs/api/lockup/graphql/envio/inputs/segment-bool-exp.mdx) filter the rows returned #### [Stream.sender](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.shape](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.startTime](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.subgraphId](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.timestamp](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.tokenId](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Stream.tranches](#)[[Tranche!]!](/docs/api/lockup/graphql/envio/objects/tranche.mdx) An array relationship ##### [Stream.tranches.distinct_on](#)[[Tranche_select_column!]](/docs/api/lockup/graphql/envio/enums/tranche-select-column.mdx) distinct select on columns ##### [Stream.tranches.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [Stream.tranches.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [Stream.tranches.order_by](#)[[Tranche_order_by!]](/docs/api/lockup/graphql/envio/inputs/tranche-order-by.mdx) sort the rows by one or more columns ##### [Stream.tranches.where](#)[Tranche_bool_exp](/docs/api/lockup/graphql/envio/inputs/tranche-bool-exp.mdx) filter the rows returned #### [Stream.transferable](#)[Boolean!](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [Stream.version](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Stream.withdrawnAmount](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Tranche export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "Tranche" ```graphql type Tranche { amount: numeric! db_write_timestamp: timestamp endAmount: numeric! endTime: numeric! id: String! position: numeric! startAmount: numeric! startTime: numeric! stream: Stream stream_id: String! } ``` ### Fields #### [Tranche.amount](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Tranche.endAmount](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche.endTime](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Tranche.position](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche.startAmount](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche.startTime](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Tranche.stream](#)[Stream](/docs/api/lockup/graphql/envio/objects/stream.mdx) An object relationship #### [Tranche.stream_id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## User_aggregate_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate fields of "User" ```graphql type User_aggregate_fields { avg: User_avg_fields count(columns: [User_select_column!], distinct: Boolean): Int! max: User_max_fields min: User_min_fields stddev: User_stddev_fields stddev_pop: User_stddev_pop_fields stddev_samp: User_stddev_samp_fields sum: User_sum_fields var_pop: User_var_pop_fields var_samp: User_var_samp_fields variance: User_variance_fields } ``` ### Fields #### [User_aggregate_fields.avg](#)[User_avg_fields](/docs/api/lockup/graphql/envio/objects/user-avg-fields.mdx) #### [User_aggregate_fields.count](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) ##### [User_aggregate_fields.count.columns](#)[[User_select_column!]](/docs/api/lockup/graphql/envio/enums/user-select-column.mdx) ##### [User_aggregate_fields.count.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [User_aggregate_fields.max](#)[User_max_fields](/docs/api/lockup/graphql/envio/objects/user-max-fields.mdx) #### [User_aggregate_fields.min](#)[User_min_fields](/docs/api/lockup/graphql/envio/objects/user-min-fields.mdx) #### [User_aggregate_fields.stddev](#)[User_stddev_fields](/docs/api/lockup/graphql/envio/objects/user-stddev-fields.mdx) #### [User_aggregate_fields.stddev_pop](#)[User_stddev_pop_fields](/docs/api/lockup/graphql/envio/objects/user-stddev-pop-fields.mdx) #### [User_aggregate_fields.stddev_samp](#)[User_stddev_samp_fields](/docs/api/lockup/graphql/envio/objects/user-stddev-samp-fields.mdx) #### [User_aggregate_fields.sum](#)[User_sum_fields](/docs/api/lockup/graphql/envio/objects/user-sum-fields.mdx) #### [User_aggregate_fields.var_pop](#)[User_var_pop_fields](/docs/api/lockup/graphql/envio/objects/user-var-pop-fields.mdx) #### [User_aggregate_fields.var_samp](#)[User_var_samp_fields](/docs/api/lockup/graphql/envio/objects/user-var-samp-fields.mdx) #### [User_aggregate_fields.variance](#)[User_variance_fields](/docs/api/lockup/graphql/envio/objects/user-variance-fields.mdx) --- ## User_aggregate export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregated selection of "User" ```graphql type User_aggregate { aggregate: User_aggregate_fields nodes: [User!]! } ``` ### Fields #### [User_aggregate.aggregate](#)[User_aggregate_fields](/docs/api/lockup/graphql/envio/objects/user-aggregate-fields.mdx) #### [User_aggregate.nodes](#)[[User!]!](/docs/api/lockup/graphql/envio/objects/user.mdx) --- ## User_avg_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate avg on columns ```graphql type User_avg_fields { chainId: Float } ``` ### Fields #### [User_avg_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## User_max_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate max on columns ```graphql type User_max_fields { address: String chainId: numeric db_write_timestamp: timestamp id: String } ``` ### Fields #### [User_max_fields.address](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [User_max_fields.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [User_max_fields.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [User_max_fields.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## User_min_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate min on columns ```graphql type User_min_fields { address: String chainId: numeric db_write_timestamp: timestamp id: String } ``` ### Fields #### [User_min_fields.address](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [User_min_fields.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [User_min_fields.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [User_min_fields.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## User_stddev_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev on columns ```graphql type User_stddev_fields { chainId: Float } ``` ### Fields #### [User_stddev_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## User_stddev_pop_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev_pop on columns ```graphql type User_stddev_pop_fields { chainId: Float } ``` ### Fields #### [User_stddev_pop_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## User_stddev_samp_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev_samp on columns ```graphql type User_stddev_samp_fields { chainId: Float } ``` ### Fields #### [User_stddev_samp_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## User_sum_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate sum on columns ```graphql type User_sum_fields { chainId: numeric } ``` ### Fields #### [User_sum_fields.chainId](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## UserTransaction_aggregate_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate fields of "UserTransaction" ```graphql type UserTransaction_aggregate_fields { avg: UserTransaction_avg_fields count(columns: [UserTransaction_select_column!], distinct: Boolean): Int! max: UserTransaction_max_fields min: UserTransaction_min_fields stddev: UserTransaction_stddev_fields stddev_pop: UserTransaction_stddev_pop_fields stddev_samp: UserTransaction_stddev_samp_fields sum: UserTransaction_sum_fields var_pop: UserTransaction_var_pop_fields var_samp: UserTransaction_var_samp_fields variance: UserTransaction_variance_fields } ``` ### Fields #### [UserTransaction_aggregate_fields.avg](#)[UserTransaction_avg_fields](/docs/api/lockup/graphql/envio/objects/user-transaction-avg-fields.mdx) #### [UserTransaction_aggregate_fields.count](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) ##### [UserTransaction_aggregate_fields.count.columns](#)[[UserTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column.mdx) ##### [UserTransaction_aggregate_fields.count.distinct](#)[Boolean](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction_aggregate_fields.max](#)[UserTransaction_max_fields](/docs/api/lockup/graphql/envio/objects/user-transaction-max-fields.mdx) #### [UserTransaction_aggregate_fields.min](#)[UserTransaction_min_fields](/docs/api/lockup/graphql/envio/objects/user-transaction-min-fields.mdx) #### [UserTransaction_aggregate_fields.stddev](#)[UserTransaction_stddev_fields](/docs/api/lockup/graphql/envio/objects/user-transaction-stddev-fields.mdx) #### [UserTransaction_aggregate_fields.stddev_pop](#)[UserTransaction_stddev_pop_fields](/docs/api/lockup/graphql/envio/objects/user-transaction-stddev-pop-fields.mdx) #### [UserTransaction_aggregate_fields.stddev_samp](#)[UserTransaction_stddev_samp_fields](/docs/api/lockup/graphql/envio/objects/user-transaction-stddev-samp-fields.mdx) #### [UserTransaction_aggregate_fields.sum](#)[UserTransaction_sum_fields](/docs/api/lockup/graphql/envio/objects/user-transaction-sum-fields.mdx) #### [UserTransaction_aggregate_fields.var_pop](#)[UserTransaction_var_pop_fields](/docs/api/lockup/graphql/envio/objects/user-transaction-var-pop-fields.mdx) #### [UserTransaction_aggregate_fields.var_samp](#)[UserTransaction_var_samp_fields](/docs/api/lockup/graphql/envio/objects/user-transaction-var-samp-fields.mdx) #### [UserTransaction_aggregate_fields.variance](#)[UserTransaction_variance_fields](/docs/api/lockup/graphql/envio/objects/user-transaction-variance-fields.mdx) --- ## UserTransaction_aggregate export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregated selection of "UserTransaction" ```graphql type UserTransaction_aggregate { aggregate: UserTransaction_aggregate_fields nodes: [UserTransaction!]! } ``` ### Fields #### [UserTransaction_aggregate.aggregate](#)[UserTransaction_aggregate_fields](/docs/api/lockup/graphql/envio/objects/user-transaction-aggregate-fields.mdx) #### [UserTransaction_aggregate.nodes](#)[[UserTransaction!]!](/docs/api/lockup/graphql/envio/objects/user-transaction.mdx) --- ## UserTransaction_avg_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate avg on columns ```graphql type UserTransaction_avg_fields { block: Float fee: Float timestamp: Float } ``` ### Fields #### [UserTransaction_avg_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_avg_fields.fee](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_avg_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## UserTransaction_max_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate max on columns ```graphql type UserTransaction_max_fields { block: numeric db_write_timestamp: timestamp fee: float8 hash: String id: String timestamp: numeric user_id: String } ``` ### Fields #### [UserTransaction_max_fields.block](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [UserTransaction_max_fields.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [UserTransaction_max_fields.fee](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [UserTransaction_max_fields.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [UserTransaction_max_fields.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [UserTransaction_max_fields.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [UserTransaction_max_fields.user_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## UserTransaction_min_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate min on columns ```graphql type UserTransaction_min_fields { block: numeric db_write_timestamp: timestamp fee: float8 hash: String id: String timestamp: numeric user_id: String } ``` ### Fields #### [UserTransaction_min_fields.block](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [UserTransaction_min_fields.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [UserTransaction_min_fields.fee](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [UserTransaction_min_fields.hash](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [UserTransaction_min_fields.id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [UserTransaction_min_fields.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [UserTransaction_min_fields.user_id](#)[String](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## UserTransaction_stddev_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev on columns ```graphql type UserTransaction_stddev_fields { block: Float fee: Float timestamp: Float } ``` ### Fields #### [UserTransaction_stddev_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_stddev_fields.fee](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_stddev_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## UserTransaction_stddev_pop_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev_pop on columns ```graphql type UserTransaction_stddev_pop_fields { block: Float fee: Float timestamp: Float } ``` ### Fields #### [UserTransaction_stddev_pop_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_stddev_pop_fields.fee](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_stddev_pop_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## UserTransaction_stddev_samp_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate stddev_samp on columns ```graphql type UserTransaction_stddev_samp_fields { block: Float fee: Float timestamp: Float } ``` ### Fields #### [UserTransaction_stddev_samp_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_stddev_samp_fields.fee](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_stddev_samp_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## UserTransaction_sum_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate sum on columns ```graphql type UserTransaction_sum_fields { block: numeric fee: float8 timestamp: numeric } ``` ### Fields #### [UserTransaction_sum_fields.block](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [UserTransaction_sum_fields.fee](#)[float8](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [UserTransaction_sum_fields.timestamp](#)[numeric](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## UserTransaction_var_pop_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate var_pop on columns ```graphql type UserTransaction_var_pop_fields { block: Float fee: Float timestamp: Float } ``` ### Fields #### [UserTransaction_var_pop_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_var_pop_fields.fee](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_var_pop_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## UserTransaction_var_samp_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate var_samp on columns ```graphql type UserTransaction_var_samp_fields { block: Float fee: Float timestamp: Float } ``` ### Fields #### [UserTransaction_var_samp_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_var_samp_fields.fee](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_var_samp_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## UserTransaction_variance_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate variance on columns ```graphql type UserTransaction_variance_fields { block: Float fee: Float timestamp: Float } ``` ### Fields #### [UserTransaction_variance_fields.block](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_variance_fields.fee](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) #### [UserTransaction_variance_fields.timestamp](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## UserTransaction export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "UserTransaction" ```graphql type UserTransaction { block: numeric! db_write_timestamp: timestamp fee: float8! hash: String! id: String! isAirdropClaim: Boolean! timestamp: numeric! user: User user_id: String! } ``` ### Fields #### [UserTransaction.block](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [UserTransaction.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [UserTransaction.fee](#)[float8!](/docs/api/lockup/graphql/envio/scalars/float-8.mdx) #### [UserTransaction.hash](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [UserTransaction.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [UserTransaction.isAirdropClaim](#)[Boolean!](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [UserTransaction.timestamp](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [UserTransaction.user](#)[User](/docs/api/lockup/graphql/envio/objects/user.mdx) An object relationship #### [UserTransaction.user_id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) --- ## User_var_pop_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate var_pop on columns ```graphql type User_var_pop_fields { chainId: Float } ``` ### Fields #### [User_var_pop_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## User_var_samp_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate var_samp on columns ```graphql type User_var_samp_fields { chainId: Float } ``` ### Fields #### [User_var_samp_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## User_variance_fields export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; aggregate variance on columns ```graphql type User_variance_fields { chainId: Float } ``` ### Fields #### [User_variance_fields.chainId](#)[Float](/docs/api/lockup/graphql/envio/scalars/float.mdx) --- ## User export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "User" ```graphql type User { address: String! chainId: numeric! db_write_timestamp: timestamp id: String! isOnlyAirdropClaimer: Boolean! transactions( distinct_on: [UserTransaction_select_column!] limit: Int offset: Int order_by: [UserTransaction_order_by!] where: UserTransaction_bool_exp ): [UserTransaction!]! transactions_aggregate( distinct_on: [UserTransaction_select_column!] limit: Int offset: Int order_by: [UserTransaction_order_by!] where: UserTransaction_bool_exp ): UserTransaction_aggregate! } ``` ### Fields #### [User.address](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [User.chainId](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [User.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [User.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [User.isOnlyAirdropClaimer](#)[Boolean!](/docs/api/lockup/graphql/envio/scalars/boolean.mdx) #### [User.transactions](#)[[UserTransaction!]!](/docs/api/lockup/graphql/envio/objects/user-transaction.mdx) An array relationship ##### [User.transactions.distinct_on](#)[[UserTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column.mdx) distinct select on columns ##### [User.transactions.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [User.transactions.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [User.transactions.order_by](#)[[UserTransaction_order_by!]](/docs/api/lockup/graphql/envio/inputs/user-transaction-order-by.mdx) sort the rows by one or more columns ##### [User.transactions.where](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) filter the rows returned #### [User.transactions_aggregate](#)[UserTransaction_aggregate!](/docs/api/lockup/graphql/envio/objects/user-transaction-aggregate.mdx) An aggregate relationship ##### [User.transactions_aggregate.distinct_on](#)[[UserTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column.mdx) distinct select on columns ##### [User.transactions_aggregate.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned ##### [User.transactions_aggregate.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by ##### [User.transactions_aggregate.order_by](#)[[UserTransaction_order_by!]](/docs/api/lockup/graphql/envio/inputs/user-transaction-order-by.mdx) sort the rows by one or more columns ##### [User.transactions_aggregate.where](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) filter the rows returned --- ## Watcher export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; columns and relationships of "Watcher" ```graphql type Watcher { actionCounter: numeric! chainId: numeric! db_write_timestamp: timestamp id: String! streamCounter: numeric! } ``` ### Fields #### [Watcher.actionCounter](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Watcher.chainId](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) #### [Watcher.db_write_timestamp](#)[timestamp](/docs/api/lockup/graphql/envio/scalars/timestamp.mdx) #### [Watcher.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) #### [Watcher.streamCounter](#)[numeric!](/docs/api/lockup/graphql/envio/scalars/numeric.mdx) --- ## Action_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Action" using primary key columns ```graphql Action_by_pk( id: String! ): Action ``` ### Arguments #### [Action_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [Action](/docs/api/lockup/graphql/envio/objects/action.mdx) columns and relationships of "Action" --- ## Action(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Action" ```graphql Action( distinct_on: [Action_select_column!] limit: Int offset: Int order_by: [Action_order_by!] where: Action_bool_exp ): [Action!]! ``` ### Arguments #### [Action.distinct_on](#)[[Action_select_column!]](/docs/api/lockup/graphql/envio/enums/action-select-column.mdx) distinct select on columns #### [Action.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Action.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Action.order_by](#)[[Action_order_by!]](/docs/api/lockup/graphql/envio/inputs/action-order-by.mdx) sort the rows by one or more columns #### [Action.where](#)[Action_bool_exp](/docs/api/lockup/graphql/envio/inputs/action-bool-exp.mdx) filter the rows returned ### Type #### [Action](/docs/api/lockup/graphql/envio/objects/action.mdx) columns and relationships of "Action" --- ## Asset_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Asset" using primary key columns ```graphql Asset_by_pk( id: String! ): Asset ``` ### Arguments #### [Asset_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [Asset](/docs/api/lockup/graphql/envio/objects/asset.mdx) columns and relationships of "Asset" --- ## Asset(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Asset" ```graphql Asset( distinct_on: [Asset_select_column!] limit: Int offset: Int order_by: [Asset_order_by!] where: Asset_bool_exp ): [Asset!]! ``` ### Arguments #### [Asset.distinct_on](#)[[Asset_select_column!]](/docs/api/lockup/graphql/envio/enums/asset-select-column.mdx) distinct select on columns #### [Asset.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Asset.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Asset.order_by](#)[[Asset_order_by!]](/docs/api/lockup/graphql/envio/inputs/asset-order-by.mdx) sort the rows by one or more columns #### [Asset.where](#)[Asset_bool_exp](/docs/api/lockup/graphql/envio/inputs/asset-bool-exp.mdx) filter the rows returned ### Type #### [Asset](/docs/api/lockup/graphql/envio/objects/asset.mdx) columns and relationships of "Asset" --- ## Batch_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Batch" using primary key columns ```graphql Batch_by_pk( id: String! ): Batch ``` ### Arguments #### [Batch_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [Batch](/docs/api/lockup/graphql/envio/objects/batch.mdx) columns and relationships of "Batch" --- ## Batch(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Batch" ```graphql Batch( distinct_on: [Batch_select_column!] limit: Int offset: Int order_by: [Batch_order_by!] where: Batch_bool_exp ): [Batch!]! ``` ### Arguments #### [Batch.distinct_on](#)[[Batch_select_column!]](/docs/api/lockup/graphql/envio/enums/batch-select-column.mdx) distinct select on columns #### [Batch.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Batch.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Batch.order_by](#)[[Batch_order_by!]](/docs/api/lockup/graphql/envio/inputs/batch-order-by.mdx) sort the rows by one or more columns #### [Batch.where](#)[Batch_bool_exp](/docs/api/lockup/graphql/envio/inputs/batch-bool-exp.mdx) filter the rows returned ### Type #### [Batch](/docs/api/lockup/graphql/envio/objects/batch.mdx) columns and relationships of "Batch" --- ## Batcher_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Batcher" using primary key columns ```graphql Batcher_by_pk( id: String! ): Batcher ``` ### Arguments #### [Batcher_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [Batcher](/docs/api/lockup/graphql/envio/objects/batcher.mdx) columns and relationships of "Batcher" --- ## Batcher(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Batcher" ```graphql Batcher( distinct_on: [Batcher_select_column!] limit: Int offset: Int order_by: [Batcher_order_by!] where: Batcher_bool_exp ): [Batcher!]! ``` ### Arguments #### [Batcher.distinct_on](#)[[Batcher_select_column!]](/docs/api/lockup/graphql/envio/enums/batcher-select-column.mdx) distinct select on columns #### [Batcher.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Batcher.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Batcher.order_by](#)[[Batcher_order_by!]](/docs/api/lockup/graphql/envio/inputs/batcher-order-by.mdx) sort the rows by one or more columns #### [Batcher.where](#)[Batcher_bool_exp](/docs/api/lockup/graphql/envio/inputs/batcher-bool-exp.mdx) filter the rows returned ### Type #### [Batcher](/docs/api/lockup/graphql/envio/objects/batcher.mdx) columns and relationships of "Batcher" --- ## chain_metadata_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "chain_metadata" using primary key columns ```graphql chain_metadata_by_pk( chain_id: Int! ): chain_metadata ``` ### Arguments #### [chain_metadata_by_pk.chain_id](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) ### Type #### [chain_metadata](/docs/api/lockup/graphql/envio/objects/chain-metadata.mdx) columns and relationships of "chain_metadata" --- ## chain_metadata(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "chain_metadata" ```graphql chain_metadata( distinct_on: [chain_metadata_select_column!] limit: Int offset: Int order_by: [chain_metadata_order_by!] where: chain_metadata_bool_exp ): [chain_metadata!]! ``` ### Arguments #### [chain_metadata.distinct_on](#)[[chain_metadata_select_column!]](/docs/api/lockup/graphql/envio/enums/chain-metadata-select-column.mdx) distinct select on columns #### [chain_metadata.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [chain_metadata.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [chain_metadata.order_by](#)[[chain_metadata_order_by!]](/docs/api/lockup/graphql/envio/inputs/chain-metadata-order-by.mdx) sort the rows by one or more columns #### [chain_metadata.where](#)[chain_metadata_bool_exp](/docs/api/lockup/graphql/envio/inputs/chain-metadata-bool-exp.mdx) filter the rows returned ### Type #### [chain_metadata](/docs/api/lockup/graphql/envio/objects/chain-metadata.mdx) columns and relationships of "chain_metadata" --- ## Contract_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Contract" using primary key columns ```graphql Contract_by_pk( id: String! ): Contract ``` ### Arguments #### [Contract_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [Contract](/docs/api/lockup/graphql/envio/objects/contract.mdx) columns and relationships of "Contract" --- ## Contract(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Contract" ```graphql Contract( distinct_on: [Contract_select_column!] limit: Int offset: Int order_by: [Contract_order_by!] where: Contract_bool_exp ): [Contract!]! ``` ### Arguments #### [Contract.distinct_on](#)[[Contract_select_column!]](/docs/api/lockup/graphql/envio/enums/contract-select-column.mdx) distinct select on columns #### [Contract.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Contract.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Contract.order_by](#)[[Contract_order_by!]](/docs/api/lockup/graphql/envio/inputs/contract-order-by.mdx) sort the rows by one or more columns #### [Contract.where](#)[Contract_bool_exp](/docs/api/lockup/graphql/envio/inputs/contract-bool-exp.mdx) filter the rows returned ### Type #### [Contract](/docs/api/lockup/graphql/envio/objects/contract.mdx) columns and relationships of "Contract" --- ## dynamic_contract_registry_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "dynamic_contract_registry" using primary key columns ```graphql dynamic_contract_registry_by_pk( id: String! ): dynamic_contract_registry ``` ### Arguments #### [dynamic_contract_registry_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [dynamic_contract_registry](/docs/api/lockup/graphql/envio/objects/dynamic-contract-registry.mdx) columns and relationships of "dynamic_contract_registry" --- ## dynamic_contract_registry(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "dynamic_contract_registry" ```graphql dynamic_contract_registry( distinct_on: [dynamic_contract_registry_select_column!] limit: Int offset: Int order_by: [dynamic_contract_registry_order_by!] where: dynamic_contract_registry_bool_exp ): [dynamic_contract_registry!]! ``` ### Arguments #### [dynamic_contract_registry.distinct_on](#)[[dynamic_contract_registry_select_column!]](/docs/api/lockup/graphql/envio/enums/dynamic-contract-registry-select-column.mdx) distinct select on columns #### [dynamic_contract_registry.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [dynamic_contract_registry.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [dynamic_contract_registry.order_by](#)[[dynamic_contract_registry_order_by!]](/docs/api/lockup/graphql/envio/inputs/dynamic-contract-registry-order-by.mdx) sort the rows by one or more columns #### [dynamic_contract_registry.where](#)[dynamic_contract_registry_bool_exp](/docs/api/lockup/graphql/envio/inputs/dynamic-contract-registry-bool-exp.mdx) filter the rows returned ### Type #### [dynamic_contract_registry](/docs/api/lockup/graphql/envio/objects/dynamic-contract-registry.mdx) columns and relationships of "dynamic_contract_registry" --- ## end_of_block_range_scanned_data_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "end_of_block_range_scanned_data" using primary key columns ```graphql end_of_block_range_scanned_data_by_pk( block_number: Int! chain_id: Int! ): end_of_block_range_scanned_data ``` ### Arguments #### [end_of_block_range_scanned_data_by_pk.block_number](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) #### [end_of_block_range_scanned_data_by_pk.chain_id](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) ### Type #### [end_of_block_range_scanned_data](/docs/api/lockup/graphql/envio/objects/end-of-block-range-scanned-data.mdx) columns and relationships of "end_of_block_range_scanned_data" --- ## end_of_block_range_scanned_data(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "end_of_block_range_scanned_data" ```graphql end_of_block_range_scanned_data( distinct_on: [end_of_block_range_scanned_data_select_column!] limit: Int offset: Int order_by: [end_of_block_range_scanned_data_order_by!] where: end_of_block_range_scanned_data_bool_exp ): [end_of_block_range_scanned_data!]! ``` ### Arguments #### [end_of_block_range_scanned_data.distinct_on](#)[[end_of_block_range_scanned_data_select_column!]](/docs/api/lockup/graphql/envio/enums/end-of-block-range-scanned-data-select-column.mdx) distinct select on columns #### [end_of_block_range_scanned_data.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [end_of_block_range_scanned_data.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [end_of_block_range_scanned_data.order_by](#)[[end_of_block_range_scanned_data_order_by!]](/docs/api/lockup/graphql/envio/inputs/end-of-block-range-scanned-data-order-by.mdx) sort the rows by one or more columns #### [end_of_block_range_scanned_data.where](#)[end_of_block_range_scanned_data_bool_exp](/docs/api/lockup/graphql/envio/inputs/end-of-block-range-scanned-data-bool-exp.mdx) filter the rows returned ### Type #### [end_of_block_range_scanned_data](/docs/api/lockup/graphql/envio/objects/end-of-block-range-scanned-data.mdx) columns and relationships of "end_of_block_range_scanned_data" --- ## event_sync_state_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "event_sync_state" using primary key columns ```graphql event_sync_state_by_pk( chain_id: Int! ): event_sync_state ``` ### Arguments #### [event_sync_state_by_pk.chain_id](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) ### Type #### [event_sync_state](/docs/api/lockup/graphql/envio/objects/event-sync-state.mdx) columns and relationships of "event_sync_state" --- ## event_sync_state(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "event_sync_state" ```graphql event_sync_state( distinct_on: [event_sync_state_select_column!] limit: Int offset: Int order_by: [event_sync_state_order_by!] where: event_sync_state_bool_exp ): [event_sync_state!]! ``` ### Arguments #### [event_sync_state.distinct_on](#)[[event_sync_state_select_column!]](/docs/api/lockup/graphql/envio/enums/event-sync-state-select-column.mdx) distinct select on columns #### [event_sync_state.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [event_sync_state.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [event_sync_state.order_by](#)[[event_sync_state_order_by!]](/docs/api/lockup/graphql/envio/inputs/event-sync-state-order-by.mdx) sort the rows by one or more columns #### [event_sync_state.where](#)[event_sync_state_bool_exp](/docs/api/lockup/graphql/envio/inputs/event-sync-state-bool-exp.mdx) filter the rows returned ### Type #### [event_sync_state](/docs/api/lockup/graphql/envio/objects/event-sync-state.mdx) columns and relationships of "event_sync_state" --- ## persisted_state_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "persisted_state" using primary key columns ```graphql persisted_state_by_pk( id: Int! ): persisted_state ``` ### Arguments #### [persisted_state_by_pk.id](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) ### Type #### [persisted_state](/docs/api/lockup/graphql/envio/objects/persisted-state.mdx) columns and relationships of "persisted_state" --- ## persisted_state(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "persisted_state" ```graphql persisted_state( distinct_on: [persisted_state_select_column!] limit: Int offset: Int order_by: [persisted_state_order_by!] where: persisted_state_bool_exp ): [persisted_state!]! ``` ### Arguments #### [persisted_state.distinct_on](#)[[persisted_state_select_column!]](/docs/api/lockup/graphql/envio/enums/persisted-state-select-column.mdx) distinct select on columns #### [persisted_state.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [persisted_state.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [persisted_state.order_by](#)[[persisted_state_order_by!]](/docs/api/lockup/graphql/envio/inputs/persisted-state-order-by.mdx) sort the rows by one or more columns #### [persisted_state.where](#)[persisted_state_bool_exp](/docs/api/lockup/graphql/envio/inputs/persisted-state-bool-exp.mdx) filter the rows returned ### Type #### [persisted_state](/docs/api/lockup/graphql/envio/objects/persisted-state.mdx) columns and relationships of "persisted_state" --- ## raw_events_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "raw_events" using primary key columns ```graphql raw_events_by_pk( serial: Int! ): raw_events ``` ### Arguments #### [raw_events_by_pk.serial](#)[Int!](/docs/api/lockup/graphql/envio/scalars/int.mdx) ### Type #### [raw_events](/docs/api/lockup/graphql/envio/objects/raw-events.mdx) columns and relationships of "raw_events" --- ## raw_events(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "raw_events" ```graphql raw_events( distinct_on: [raw_events_select_column!] limit: Int offset: Int order_by: [raw_events_order_by!] where: raw_events_bool_exp ): [raw_events!]! ``` ### Arguments #### [raw_events.distinct_on](#)[[raw_events_select_column!]](/docs/api/lockup/graphql/envio/enums/raw-events-select-column.mdx) distinct select on columns #### [raw_events.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [raw_events.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [raw_events.order_by](#)[[raw_events_order_by!]](/docs/api/lockup/graphql/envio/inputs/raw-events-order-by.mdx) sort the rows by one or more columns #### [raw_events.where](#)[raw_events_bool_exp](/docs/api/lockup/graphql/envio/inputs/raw-events-bool-exp.mdx) filter the rows returned ### Type #### [raw_events](/docs/api/lockup/graphql/envio/objects/raw-events.mdx) columns and relationships of "raw_events" --- ## Revenue_aggregate(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch aggregated fields from the table: "Revenue" ```graphql Revenue_aggregate( distinct_on: [Revenue_select_column!] limit: Int offset: Int order_by: [Revenue_order_by!] where: Revenue_bool_exp ): Revenue_aggregate! ``` ### Arguments #### [Revenue_aggregate.distinct_on](#)[[Revenue_select_column!]](/docs/api/lockup/graphql/envio/enums/revenue-select-column.mdx) distinct select on columns #### [Revenue_aggregate.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Revenue_aggregate.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Revenue_aggregate.order_by](#)[[Revenue_order_by!]](/docs/api/lockup/graphql/envio/inputs/revenue-order-by.mdx) sort the rows by one or more columns #### [Revenue_aggregate.where](#)[Revenue_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-bool-exp.mdx) filter the rows returned ### Type #### [Revenue_aggregate](/docs/api/lockup/graphql/envio/objects/revenue-aggregate.mdx) aggregated selection of "Revenue" --- ## Revenue_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Revenue" using primary key columns ```graphql Revenue_by_pk( id: String! ): Revenue ``` ### Arguments #### [Revenue_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [Revenue](/docs/api/lockup/graphql/envio/objects/revenue.mdx) columns and relationships of "Revenue" --- ## RevenueTransaction_aggregate(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch aggregated fields from the table: "RevenueTransaction" ```graphql RevenueTransaction_aggregate( distinct_on: [RevenueTransaction_select_column!] limit: Int offset: Int order_by: [RevenueTransaction_order_by!] where: RevenueTransaction_bool_exp ): RevenueTransaction_aggregate! ``` ### Arguments #### [RevenueTransaction_aggregate.distinct_on](#)[[RevenueTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column.mdx) distinct select on columns #### [RevenueTransaction_aggregate.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [RevenueTransaction_aggregate.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [RevenueTransaction_aggregate.order_by](#)[[RevenueTransaction_order_by!]](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-order-by.mdx) sort the rows by one or more columns #### [RevenueTransaction_aggregate.where](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) filter the rows returned ### Type #### [RevenueTransaction_aggregate](/docs/api/lockup/graphql/envio/objects/revenue-transaction-aggregate.mdx) aggregated selection of "RevenueTransaction" --- ## RevenueTransaction_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "RevenueTransaction" using primary key columns ```graphql RevenueTransaction_by_pk( id: String! ): RevenueTransaction ``` ### Arguments #### [RevenueTransaction_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [RevenueTransaction](/docs/api/lockup/graphql/envio/objects/revenue-transaction.mdx) columns and relationships of "RevenueTransaction" --- ## RevenueTransaction(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "RevenueTransaction" ```graphql RevenueTransaction( distinct_on: [RevenueTransaction_select_column!] limit: Int offset: Int order_by: [RevenueTransaction_order_by!] where: RevenueTransaction_bool_exp ): [RevenueTransaction!]! ``` ### Arguments #### [RevenueTransaction.distinct_on](#)[[RevenueTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/revenue-transaction-select-column.mdx) distinct select on columns #### [RevenueTransaction.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [RevenueTransaction.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [RevenueTransaction.order_by](#)[[RevenueTransaction_order_by!]](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-order-by.mdx) sort the rows by one or more columns #### [RevenueTransaction.where](#)[RevenueTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-transaction-bool-exp.mdx) filter the rows returned ### Type #### [RevenueTransaction](/docs/api/lockup/graphql/envio/objects/revenue-transaction.mdx) columns and relationships of "RevenueTransaction" --- ## Revenue(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Revenue" ```graphql Revenue( distinct_on: [Revenue_select_column!] limit: Int offset: Int order_by: [Revenue_order_by!] where: Revenue_bool_exp ): [Revenue!]! ``` ### Arguments #### [Revenue.distinct_on](#)[[Revenue_select_column!]](/docs/api/lockup/graphql/envio/enums/revenue-select-column.mdx) distinct select on columns #### [Revenue.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Revenue.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Revenue.order_by](#)[[Revenue_order_by!]](/docs/api/lockup/graphql/envio/inputs/revenue-order-by.mdx) sort the rows by one or more columns #### [Revenue.where](#)[Revenue_bool_exp](/docs/api/lockup/graphql/envio/inputs/revenue-bool-exp.mdx) filter the rows returned ### Type #### [Revenue](/docs/api/lockup/graphql/envio/objects/revenue.mdx) columns and relationships of "Revenue" --- ## Segment_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Segment" using primary key columns ```graphql Segment_by_pk( id: String! ): Segment ``` ### Arguments #### [Segment_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [Segment](/docs/api/lockup/graphql/envio/objects/segment.mdx) columns and relationships of "Segment" --- ## Segment(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Segment" ```graphql Segment( distinct_on: [Segment_select_column!] limit: Int offset: Int order_by: [Segment_order_by!] where: Segment_bool_exp ): [Segment!]! ``` ### Arguments #### [Segment.distinct_on](#)[[Segment_select_column!]](/docs/api/lockup/graphql/envio/enums/segment-select-column.mdx) distinct select on columns #### [Segment.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Segment.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Segment.order_by](#)[[Segment_order_by!]](/docs/api/lockup/graphql/envio/inputs/segment-order-by.mdx) sort the rows by one or more columns #### [Segment.where](#)[Segment_bool_exp](/docs/api/lockup/graphql/envio/inputs/segment-bool-exp.mdx) filter the rows returned ### Type #### [Segment](/docs/api/lockup/graphql/envio/objects/segment.mdx) columns and relationships of "Segment" --- ## Stream_aggregate(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch aggregated fields from the table: "Stream" ```graphql Stream_aggregate( distinct_on: [Stream_select_column!] limit: Int offset: Int order_by: [Stream_order_by!] where: Stream_bool_exp ): Stream_aggregate! ``` ### Arguments #### [Stream_aggregate.distinct_on](#)[[Stream_select_column!]](/docs/api/lockup/graphql/envio/enums/stream-select-column.mdx) distinct select on columns #### [Stream_aggregate.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Stream_aggregate.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Stream_aggregate.order_by](#)[[Stream_order_by!]](/docs/api/lockup/graphql/envio/inputs/stream-order-by.mdx) sort the rows by one or more columns #### [Stream_aggregate.where](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) filter the rows returned ### Type #### [Stream_aggregate](/docs/api/lockup/graphql/envio/objects/stream-aggregate.mdx) aggregated selection of "Stream" --- ## Stream_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Stream" using primary key columns ```graphql Stream_by_pk( id: String! ): Stream ``` ### Arguments #### [Stream_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [Stream](/docs/api/lockup/graphql/envio/objects/stream.mdx) columns and relationships of "Stream" --- ## Stream(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Stream" ```graphql Stream( distinct_on: [Stream_select_column!] limit: Int offset: Int order_by: [Stream_order_by!] where: Stream_bool_exp ): [Stream!]! ``` ### Arguments #### [Stream.distinct_on](#)[[Stream_select_column!]](/docs/api/lockup/graphql/envio/enums/stream-select-column.mdx) distinct select on columns #### [Stream.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Stream.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Stream.order_by](#)[[Stream_order_by!]](/docs/api/lockup/graphql/envio/inputs/stream-order-by.mdx) sort the rows by one or more columns #### [Stream.where](#)[Stream_bool_exp](/docs/api/lockup/graphql/envio/inputs/stream-bool-exp.mdx) filter the rows returned ### Type #### [Stream](/docs/api/lockup/graphql/envio/objects/stream.mdx) columns and relationships of "Stream" --- ## Tranche_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Tranche" using primary key columns ```graphql Tranche_by_pk( id: String! ): Tranche ``` ### Arguments #### [Tranche_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [Tranche](/docs/api/lockup/graphql/envio/objects/tranche.mdx) columns and relationships of "Tranche" --- ## Tranche(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Tranche" ```graphql Tranche( distinct_on: [Tranche_select_column!] limit: Int offset: Int order_by: [Tranche_order_by!] where: Tranche_bool_exp ): [Tranche!]! ``` ### Arguments #### [Tranche.distinct_on](#)[[Tranche_select_column!]](/docs/api/lockup/graphql/envio/enums/tranche-select-column.mdx) distinct select on columns #### [Tranche.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Tranche.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Tranche.order_by](#)[[Tranche_order_by!]](/docs/api/lockup/graphql/envio/inputs/tranche-order-by.mdx) sort the rows by one or more columns #### [Tranche.where](#)[Tranche_bool_exp](/docs/api/lockup/graphql/envio/inputs/tranche-bool-exp.mdx) filter the rows returned ### Type #### [Tranche](/docs/api/lockup/graphql/envio/objects/tranche.mdx) columns and relationships of "Tranche" --- ## User_aggregate(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch aggregated fields from the table: "User" ```graphql User_aggregate( distinct_on: [User_select_column!] limit: Int offset: Int order_by: [User_order_by!] where: User_bool_exp ): User_aggregate! ``` ### Arguments #### [User_aggregate.distinct_on](#)[[User_select_column!]](/docs/api/lockup/graphql/envio/enums/user-select-column.mdx) distinct select on columns #### [User_aggregate.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [User_aggregate.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [User_aggregate.order_by](#)[[User_order_by!]](/docs/api/lockup/graphql/envio/inputs/user-order-by.mdx) sort the rows by one or more columns #### [User_aggregate.where](#)[User_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-bool-exp.mdx) filter the rows returned ### Type #### [User_aggregate](/docs/api/lockup/graphql/envio/objects/user-aggregate.mdx) aggregated selection of "User" --- ## User_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "User" using primary key columns ```graphql User_by_pk( id: String! ): User ``` ### Arguments #### [User_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [User](/docs/api/lockup/graphql/envio/objects/user.mdx) columns and relationships of "User" --- ## UserTransaction_aggregate(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch aggregated fields from the table: "UserTransaction" ```graphql UserTransaction_aggregate( distinct_on: [UserTransaction_select_column!] limit: Int offset: Int order_by: [UserTransaction_order_by!] where: UserTransaction_bool_exp ): UserTransaction_aggregate! ``` ### Arguments #### [UserTransaction_aggregate.distinct_on](#)[[UserTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column.mdx) distinct select on columns #### [UserTransaction_aggregate.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [UserTransaction_aggregate.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [UserTransaction_aggregate.order_by](#)[[UserTransaction_order_by!]](/docs/api/lockup/graphql/envio/inputs/user-transaction-order-by.mdx) sort the rows by one or more columns #### [UserTransaction_aggregate.where](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) filter the rows returned ### Type #### [UserTransaction_aggregate](/docs/api/lockup/graphql/envio/objects/user-transaction-aggregate.mdx) aggregated selection of "UserTransaction" --- ## UserTransaction_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "UserTransaction" using primary key columns ```graphql UserTransaction_by_pk( id: String! ): UserTransaction ``` ### Arguments #### [UserTransaction_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [UserTransaction](/docs/api/lockup/graphql/envio/objects/user-transaction.mdx) columns and relationships of "UserTransaction" --- ## UserTransaction(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "UserTransaction" ```graphql UserTransaction( distinct_on: [UserTransaction_select_column!] limit: Int offset: Int order_by: [UserTransaction_order_by!] where: UserTransaction_bool_exp ): [UserTransaction!]! ``` ### Arguments #### [UserTransaction.distinct_on](#)[[UserTransaction_select_column!]](/docs/api/lockup/graphql/envio/enums/user-transaction-select-column.mdx) distinct select on columns #### [UserTransaction.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [UserTransaction.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [UserTransaction.order_by](#)[[UserTransaction_order_by!]](/docs/api/lockup/graphql/envio/inputs/user-transaction-order-by.mdx) sort the rows by one or more columns #### [UserTransaction.where](#)[UserTransaction_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-transaction-bool-exp.mdx) filter the rows returned ### Type #### [UserTransaction](/docs/api/lockup/graphql/envio/objects/user-transaction.mdx) columns and relationships of "UserTransaction" --- ## User(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "User" ```graphql User( distinct_on: [User_select_column!] limit: Int offset: Int order_by: [User_order_by!] where: User_bool_exp ): [User!]! ``` ### Arguments #### [User.distinct_on](#)[[User_select_column!]](/docs/api/lockup/graphql/envio/enums/user-select-column.mdx) distinct select on columns #### [User.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [User.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [User.order_by](#)[[User_order_by!]](/docs/api/lockup/graphql/envio/inputs/user-order-by.mdx) sort the rows by one or more columns #### [User.where](#)[User_bool_exp](/docs/api/lockup/graphql/envio/inputs/user-bool-exp.mdx) filter the rows returned ### Type #### [User](/docs/api/lockup/graphql/envio/objects/user.mdx) columns and relationships of "User" --- ## Watcher_by_pk export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Watcher" using primary key columns ```graphql Watcher_by_pk( id: String! ): Watcher ``` ### Arguments #### [Watcher_by_pk.id](#)[String!](/docs/api/lockup/graphql/envio/scalars/string.mdx) ### Type #### [Watcher](/docs/api/lockup/graphql/envio/objects/watcher.mdx) columns and relationships of "Watcher" --- ## Watcher(Queries) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; fetch data from the table: "Watcher" ```graphql Watcher( distinct_on: [Watcher_select_column!] limit: Int offset: Int order_by: [Watcher_order_by!] where: Watcher_bool_exp ): [Watcher!]! ``` ### Arguments #### [Watcher.distinct_on](#)[[Watcher_select_column!]](/docs/api/lockup/graphql/envio/enums/watcher-select-column.mdx) distinct select on columns #### [Watcher.limit](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) limit the number of rows returned #### [Watcher.offset](#)[Int](/docs/api/lockup/graphql/envio/scalars/int.mdx) skip the first n rows. Use only with order_by #### [Watcher.order_by](#)[[Watcher_order_by!]](/docs/api/lockup/graphql/envio/inputs/watcher-order-by.mdx) sort the rows by one or more columns #### [Watcher.where](#)[Watcher_bool_exp](/docs/api/lockup/graphql/envio/inputs/watcher-bool-exp.mdx) filter the rows returned ### Type #### [Watcher](/docs/api/lockup/graphql/envio/objects/watcher.mdx) columns and relationships of "Watcher" --- ## actioncategory export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar actioncategory ``` --- ## Boolean export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; The `Boolean` scalar type represents `true` or `false`. ```graphql scalar Boolean ``` --- ## contract_type export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar contract_type ``` --- ## contractcategory export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar contractcategory ``` --- ## float8 export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar float8 ``` --- ## Float export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). ```graphql scalar Float ``` --- ## Int export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. ```graphql scalar Int ``` --- ## jsonb export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar jsonb ``` --- ## numeric export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar numeric ``` --- ## streamcategory export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar streamcategory ``` --- ## String export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. ```graphql scalar String ``` --- ## timestamp export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar timestamp ``` --- ## timestamptz export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar timestamptz ``` --- ## ActionCategory(Enums) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum ActionCategory { Approval ApprovalForAll Cancel Create Renounce Transfer Withdraw } ``` ### Values #### [ActionCategory.Approval](#) #### [ActionCategory.ApprovalForAll](#) #### [ActionCategory.Cancel](#) #### [ActionCategory.Create](#) #### [ActionCategory.Renounce](#) #### [ActionCategory.Transfer](#) #### [ActionCategory.Withdraw](#) --- ## Action_orderBy export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum Action_orderBy { id subgraphId block chainId from hash timestamp category contract fee stream stream__id stream__alias stream__chainId stream__subgraphId stream__tokenId stream__hash stream__timestamp stream__assetDecimalsValue stream__category stream__contract stream__position stream__recipient stream__sender stream__startTime stream__transferable stream__version stream__withdrawnAmount stream__cancelable stream__canceled stream__canceledTime stream__depositAmount stream__duration stream__endTime stream__funder stream__intactAmount stream__proxender stream__proxied stream__renounceTime stream__shape stream__cliff stream__cliffAmount stream__cliffTime stream__initial stream__initialAmount addressA addressB amountA amountB } ``` ### Values #### [Action_orderBy.id](#) #### [Action_orderBy.subgraphId](#) #### [Action_orderBy.block](#) #### [Action_orderBy.chainId](#) #### [Action_orderBy.from](#) #### [Action_orderBy.hash](#) #### [Action_orderBy.timestamp](#) #### [Action_orderBy.category](#) #### [Action_orderBy.contract](#) #### [Action_orderBy.fee](#) #### [Action_orderBy.stream](#) #### [Action_orderBy.stream\_\_id](#) #### [Action_orderBy.stream\_\_alias](#) #### [Action_orderBy.stream\_\_chainId](#) #### [Action_orderBy.stream\_\_subgraphId](#) #### [Action_orderBy.stream\_\_tokenId](#) #### [Action_orderBy.stream\_\_hash](#) #### [Action_orderBy.stream\_\_timestamp](#) #### [Action_orderBy.stream\_\_assetDecimalsValue](#) #### [Action_orderBy.stream\_\_category](#) #### [Action_orderBy.stream\_\_contract](#) #### [Action_orderBy.stream\_\_position](#) #### [Action_orderBy.stream\_\_recipient](#) #### [Action_orderBy.stream\_\_sender](#) #### [Action_orderBy.stream\_\_startTime](#) #### [Action_orderBy.stream\_\_transferable](#) #### [Action_orderBy.stream\_\_version](#) #### [Action_orderBy.stream\_\_withdrawnAmount](#) #### [Action_orderBy.stream\_\_cancelable](#) #### [Action_orderBy.stream\_\_canceled](#) #### [Action_orderBy.stream\_\_canceledTime](#) #### [Action_orderBy.stream\_\_depositAmount](#) #### [Action_orderBy.stream\_\_duration](#) #### [Action_orderBy.stream\_\_endTime](#) #### [Action_orderBy.stream\_\_funder](#) #### [Action_orderBy.stream\_\_intactAmount](#) #### [Action_orderBy.stream\_\_proxender](#) #### [Action_orderBy.stream\_\_proxied](#) #### [Action_orderBy.stream\_\_renounceTime](#) #### [Action_orderBy.stream\_\_shape](#) #### [Action_orderBy.stream\_\_cliff](#) #### [Action_orderBy.stream\_\_cliffAmount](#) #### [Action_orderBy.stream\_\_cliffTime](#) #### [Action_orderBy.stream\_\_initial](#) #### [Action_orderBy.stream\_\_initialAmount](#) #### [Action_orderBy.addressA](#) #### [Action_orderBy.addressB](#) #### [Action_orderBy.amountA](#) #### [Action_orderBy.amountB](#) --- ## Aggregation_interval export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum Aggregation_interval { hour day } ``` ### Values #### [Aggregation_interval.hour](#) #### [Aggregation_interval.day](#) --- ## Asset_orderBy export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum Asset_orderBy { id address chainId decimals name symbol streams } ``` ### Values #### [Asset_orderBy.id](#) #### [Asset_orderBy.address](#) #### [Asset_orderBy.chainId](#) #### [Asset_orderBy.decimals](#) #### [Asset_orderBy.name](#) #### [Asset_orderBy.symbol](#) #### [Asset_orderBy.streams](#) --- ## Batch_orderBy export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum Batch_orderBy { id hash timestamp batcher batcher__id batcher__batchCounter position size streams } ``` ### Values #### [Batch_orderBy.id](#) #### [Batch_orderBy.hash](#) #### [Batch_orderBy.timestamp](#) #### [Batch_orderBy.batcher](#) #### [Batch_orderBy.batcher\_\_id](#) #### [Batch_orderBy.batcher\_\_batchCounter](#) #### [Batch_orderBy.position](#) #### [Batch_orderBy.size](#) #### [Batch_orderBy.streams](#) --- ## Batcher_orderBy export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum Batcher_orderBy { id batchCounter batches } ``` ### Values #### [Batcher_orderBy.id](#) #### [Batcher_orderBy.batchCounter](#) #### [Batcher_orderBy.batches](#) --- ## OrderDirection export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Defines the order direction, either ascending or descending ```graphql enum OrderDirection { asc desc } ``` ### Values #### [OrderDirection.asc](#) #### [OrderDirection.desc](#) --- ## Segment_orderBy export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum Segment_orderBy { id amount endAmount endTime exponent position startAmount startTime stream stream__id stream__alias stream__chainId stream__subgraphId stream__tokenId stream__hash stream__timestamp stream__assetDecimalsValue stream__category stream__contract stream__position stream__recipient stream__sender stream__startTime stream__transferable stream__version stream__withdrawnAmount stream__cancelable stream__canceled stream__canceledTime stream__depositAmount stream__duration stream__endTime stream__funder stream__intactAmount stream__proxender stream__proxied stream__renounceTime stream__shape stream__cliff stream__cliffAmount stream__cliffTime stream__initial stream__initialAmount } ``` ### Values #### [Segment_orderBy.id](#) #### [Segment_orderBy.amount](#) #### [Segment_orderBy.endAmount](#) #### [Segment_orderBy.endTime](#) #### [Segment_orderBy.exponent](#) #### [Segment_orderBy.position](#) #### [Segment_orderBy.startAmount](#) #### [Segment_orderBy.startTime](#) #### [Segment_orderBy.stream](#) #### [Segment_orderBy.stream\_\_id](#) #### [Segment_orderBy.stream\_\_alias](#) #### [Segment_orderBy.stream\_\_chainId](#) #### [Segment_orderBy.stream\_\_subgraphId](#) #### [Segment_orderBy.stream\_\_tokenId](#) #### [Segment_orderBy.stream\_\_hash](#) #### [Segment_orderBy.stream\_\_timestamp](#) #### [Segment_orderBy.stream\_\_assetDecimalsValue](#) #### [Segment_orderBy.stream\_\_category](#) #### [Segment_orderBy.stream\_\_contract](#) #### [Segment_orderBy.stream\_\_position](#) #### [Segment_orderBy.stream\_\_recipient](#) #### [Segment_orderBy.stream\_\_sender](#) #### [Segment_orderBy.stream\_\_startTime](#) #### [Segment_orderBy.stream\_\_transferable](#) #### [Segment_orderBy.stream\_\_version](#) #### [Segment_orderBy.stream\_\_withdrawnAmount](#) #### [Segment_orderBy.stream\_\_cancelable](#) #### [Segment_orderBy.stream\_\_canceled](#) #### [Segment_orderBy.stream\_\_canceledTime](#) #### [Segment_orderBy.stream\_\_depositAmount](#) #### [Segment_orderBy.stream\_\_duration](#) #### [Segment_orderBy.stream\_\_endTime](#) #### [Segment_orderBy.stream\_\_funder](#) #### [Segment_orderBy.stream\_\_intactAmount](#) #### [Segment_orderBy.stream\_\_proxender](#) #### [Segment_orderBy.stream\_\_proxied](#) #### [Segment_orderBy.stream\_\_renounceTime](#) #### [Segment_orderBy.stream\_\_shape](#) #### [Segment_orderBy.stream\_\_cliff](#) #### [Segment_orderBy.stream\_\_cliffAmount](#) #### [Segment_orderBy.stream\_\_cliffTime](#) #### [Segment_orderBy.stream\_\_initial](#) #### [Segment_orderBy.stream\_\_initialAmount](#) --- ## StreamCategory(Enums) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum StreamCategory { LockupDynamic LockupLinear LockupTranched } ``` ### Values #### [StreamCategory.LockupDynamic](#) #### [StreamCategory.LockupLinear](#) #### [StreamCategory.LockupTranched](#) --- ## Stream_orderBy export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum Stream_orderBy { id alias chainId subgraphId tokenId hash timestamp actions asset asset__id asset__address asset__chainId asset__decimals asset__name asset__symbol assetDecimalsValue batch batch__id batch__hash batch__timestamp batch__position batch__size category contract position recipient sender startTime transferable version withdrawnAmount canceledAction canceledAction__id canceledAction__subgraphId canceledAction__block canceledAction__chainId canceledAction__from canceledAction__hash canceledAction__timestamp canceledAction__category canceledAction__contract canceledAction__fee canceledAction__addressA canceledAction__addressB canceledAction__amountA canceledAction__amountB renounceAction renounceAction__id renounceAction__subgraphId renounceAction__block renounceAction__chainId renounceAction__from renounceAction__hash renounceAction__timestamp renounceAction__category renounceAction__contract renounceAction__fee renounceAction__addressA renounceAction__addressB renounceAction__amountA renounceAction__amountB cancelable canceled canceledTime depositAmount duration endTime funder intactAmount proxender proxied renounceTime shape cliff cliffAmount cliffTime initial initialAmount segments tranches } ``` ### Values #### [Stream_orderBy.id](#) #### [Stream_orderBy.alias](#) #### [Stream_orderBy.chainId](#) #### [Stream_orderBy.subgraphId](#) #### [Stream_orderBy.tokenId](#) #### [Stream_orderBy.hash](#) #### [Stream_orderBy.timestamp](#) #### [Stream_orderBy.actions](#) #### [Stream_orderBy.asset](#) #### [Stream_orderBy.asset\_\_id](#) #### [Stream_orderBy.asset\_\_address](#) #### [Stream_orderBy.asset\_\_chainId](#) #### [Stream_orderBy.asset\_\_decimals](#) #### [Stream_orderBy.asset\_\_name](#) #### [Stream_orderBy.asset\_\_symbol](#) #### [Stream_orderBy.assetDecimalsValue](#) #### [Stream_orderBy.batch](#) #### [Stream_orderBy.batch\_\_id](#) #### [Stream_orderBy.batch\_\_hash](#) #### [Stream_orderBy.batch\_\_timestamp](#) #### [Stream_orderBy.batch\_\_position](#) #### [Stream_orderBy.batch\_\_size](#) #### [Stream_orderBy.category](#) #### [Stream_orderBy.contract](#) #### [Stream_orderBy.position](#) #### [Stream_orderBy.recipient](#) #### [Stream_orderBy.sender](#) #### [Stream_orderBy.startTime](#) #### [Stream_orderBy.transferable](#) #### [Stream_orderBy.version](#) #### [Stream_orderBy.withdrawnAmount](#) #### [Stream_orderBy.canceledAction](#) #### [Stream_orderBy.canceledAction\_\_id](#) #### [Stream_orderBy.canceledAction\_\_subgraphId](#) #### [Stream_orderBy.canceledAction\_\_block](#) #### [Stream_orderBy.canceledAction\_\_chainId](#) #### [Stream_orderBy.canceledAction\_\_from](#) #### [Stream_orderBy.canceledAction\_\_hash](#) #### [Stream_orderBy.canceledAction\_\_timestamp](#) #### [Stream_orderBy.canceledAction\_\_category](#) #### [Stream_orderBy.canceledAction\_\_contract](#) #### [Stream_orderBy.canceledAction\_\_fee](#) #### [Stream_orderBy.canceledAction\_\_addressA](#) #### [Stream_orderBy.canceledAction\_\_addressB](#) #### [Stream_orderBy.canceledAction\_\_amountA](#) #### [Stream_orderBy.canceledAction\_\_amountB](#) #### [Stream_orderBy.renounceAction](#) #### [Stream_orderBy.renounceAction\_\_id](#) #### [Stream_orderBy.renounceAction\_\_subgraphId](#) #### [Stream_orderBy.renounceAction\_\_block](#) #### [Stream_orderBy.renounceAction\_\_chainId](#) #### [Stream_orderBy.renounceAction\_\_from](#) #### [Stream_orderBy.renounceAction\_\_hash](#) #### [Stream_orderBy.renounceAction\_\_timestamp](#) #### [Stream_orderBy.renounceAction\_\_category](#) #### [Stream_orderBy.renounceAction\_\_contract](#) #### [Stream_orderBy.renounceAction\_\_fee](#) #### [Stream_orderBy.renounceAction\_\_addressA](#) #### [Stream_orderBy.renounceAction\_\_addressB](#) #### [Stream_orderBy.renounceAction\_\_amountA](#) #### [Stream_orderBy.renounceAction\_\_amountB](#) #### [Stream_orderBy.cancelable](#) #### [Stream_orderBy.canceled](#) #### [Stream_orderBy.canceledTime](#) #### [Stream_orderBy.depositAmount](#) #### [Stream_orderBy.duration](#) #### [Stream_orderBy.endTime](#) #### [Stream_orderBy.funder](#) #### [Stream_orderBy.intactAmount](#) #### [Stream_orderBy.proxender](#) #### [Stream_orderBy.proxied](#) #### [Stream_orderBy.renounceTime](#) #### [Stream_orderBy.shape](#) #### [Stream_orderBy.cliff](#) #### [Stream_orderBy.cliffAmount](#) #### [Stream_orderBy.cliffTime](#) #### [Stream_orderBy.initial](#) #### [Stream_orderBy.initialAmount](#) #### [Stream_orderBy.segments](#) #### [Stream_orderBy.tranches](#) --- ## _SubgraphErrorPolicy_ export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum _SubgraphErrorPolicy_ { allow deny } ``` ### Values #### [\_SubgraphErrorPolicy\_.allow](#) Data will be returned even if the subgraph has indexing errors #### [\_SubgraphErrorPolicy\_.deny](#) If the subgraph has indexing errors, data will be omitted. The default. --- ## Tranche_orderBy export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum Tranche_orderBy { id amount endAmount endTime position startAmount startTime stream stream__id stream__alias stream__chainId stream__subgraphId stream__tokenId stream__hash stream__timestamp stream__assetDecimalsValue stream__category stream__contract stream__position stream__recipient stream__sender stream__startTime stream__transferable stream__version stream__withdrawnAmount stream__cancelable stream__canceled stream__canceledTime stream__depositAmount stream__duration stream__endTime stream__funder stream__intactAmount stream__proxender stream__proxied stream__renounceTime stream__shape stream__cliff stream__cliffAmount stream__cliffTime stream__initial stream__initialAmount } ``` ### Values #### [Tranche_orderBy.id](#) #### [Tranche_orderBy.amount](#) #### [Tranche_orderBy.endAmount](#) #### [Tranche_orderBy.endTime](#) #### [Tranche_orderBy.position](#) #### [Tranche_orderBy.startAmount](#) #### [Tranche_orderBy.startTime](#) #### [Tranche_orderBy.stream](#) #### [Tranche_orderBy.stream\_\_id](#) #### [Tranche_orderBy.stream\_\_alias](#) #### [Tranche_orderBy.stream\_\_chainId](#) #### [Tranche_orderBy.stream\_\_subgraphId](#) #### [Tranche_orderBy.stream\_\_tokenId](#) #### [Tranche_orderBy.stream\_\_hash](#) #### [Tranche_orderBy.stream\_\_timestamp](#) #### [Tranche_orderBy.stream\_\_assetDecimalsValue](#) #### [Tranche_orderBy.stream\_\_category](#) #### [Tranche_orderBy.stream\_\_contract](#) #### [Tranche_orderBy.stream\_\_position](#) #### [Tranche_orderBy.stream\_\_recipient](#) #### [Tranche_orderBy.stream\_\_sender](#) #### [Tranche_orderBy.stream\_\_startTime](#) #### [Tranche_orderBy.stream\_\_transferable](#) #### [Tranche_orderBy.stream\_\_version](#) #### [Tranche_orderBy.stream\_\_withdrawnAmount](#) #### [Tranche_orderBy.stream\_\_cancelable](#) #### [Tranche_orderBy.stream\_\_canceled](#) #### [Tranche_orderBy.stream\_\_canceledTime](#) #### [Tranche_orderBy.stream\_\_depositAmount](#) #### [Tranche_orderBy.stream\_\_duration](#) #### [Tranche_orderBy.stream\_\_endTime](#) #### [Tranche_orderBy.stream\_\_funder](#) #### [Tranche_orderBy.stream\_\_intactAmount](#) #### [Tranche_orderBy.stream\_\_proxender](#) #### [Tranche_orderBy.stream\_\_proxied](#) #### [Tranche_orderBy.stream\_\_renounceTime](#) #### [Tranche_orderBy.stream\_\_shape](#) #### [Tranche_orderBy.stream\_\_cliff](#) #### [Tranche_orderBy.stream\_\_cliffAmount](#) #### [Tranche_orderBy.stream\_\_cliffTime](#) #### [Tranche_orderBy.stream\_\_initial](#) #### [Tranche_orderBy.stream\_\_initialAmount](#) --- ## Watcher_orderBy export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql enum Watcher_orderBy { id actionCounter chainId streamCounter } ``` ### Values #### [Watcher_orderBy.id](#) #### [Watcher_orderBy.actionCounter](#) #### [Watcher_orderBy.chainId](#) #### [Watcher_orderBy.streamCounter](#) --- ## Overview(The-graph) This documentation has been automatically generated from the GraphQL schema, with [GraphQL-Markdown](https://graphql-markdown.github.io). --- ## Action_filter export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Action_filter { id: String id_not: String id_gt: String id_lt: String id_gte: String id_lte: String id_in: [String!] id_not_in: [String!] id_contains: String id_contains_nocase: String id_not_contains: String id_not_contains_nocase: String id_starts_with: String id_starts_with_nocase: String id_not_starts_with: String id_not_starts_with_nocase: String id_ends_with: String id_ends_with_nocase: String id_not_ends_with: String id_not_ends_with_nocase: String subgraphId: BigInt subgraphId_not: BigInt subgraphId_gt: BigInt subgraphId_lt: BigInt subgraphId_gte: BigInt subgraphId_lte: BigInt subgraphId_in: [BigInt!] subgraphId_not_in: [BigInt!] block: BigInt block_not: BigInt block_gt: BigInt block_lt: BigInt block_gte: BigInt block_lte: BigInt block_in: [BigInt!] block_not_in: [BigInt!] chainId: BigInt chainId_not: BigInt chainId_gt: BigInt chainId_lt: BigInt chainId_gte: BigInt chainId_lte: BigInt chainId_in: [BigInt!] chainId_not_in: [BigInt!] from: Bytes from_not: Bytes from_gt: Bytes from_lt: Bytes from_gte: Bytes from_lte: Bytes from_in: [Bytes!] from_not_in: [Bytes!] from_contains: Bytes from_not_contains: Bytes hash: Bytes hash_not: Bytes hash_gt: Bytes hash_lt: Bytes hash_gte: Bytes hash_lte: Bytes hash_in: [Bytes!] hash_not_in: [Bytes!] hash_contains: Bytes hash_not_contains: Bytes timestamp: BigInt timestamp_not: BigInt timestamp_gt: BigInt timestamp_lt: BigInt timestamp_gte: BigInt timestamp_lte: BigInt timestamp_in: [BigInt!] timestamp_not_in: [BigInt!] category: ActionCategory category_not: ActionCategory category_in: [ActionCategory!] category_not_in: [ActionCategory!] contract: Bytes contract_not: Bytes contract_gt: Bytes contract_lt: Bytes contract_gte: Bytes contract_lte: Bytes contract_in: [Bytes!] contract_not_in: [Bytes!] contract_contains: Bytes contract_not_contains: Bytes fee: BigInt fee_not: BigInt fee_gt: BigInt fee_lt: BigInt fee_gte: BigInt fee_lte: BigInt fee_in: [BigInt!] fee_not_in: [BigInt!] stream: String stream_not: String stream_gt: String stream_lt: String stream_gte: String stream_lte: String stream_in: [String!] stream_not_in: [String!] stream_contains: String stream_contains_nocase: String stream_not_contains: String stream_not_contains_nocase: String stream_starts_with: String stream_starts_with_nocase: String stream_not_starts_with: String stream_not_starts_with_nocase: String stream_ends_with: String stream_ends_with_nocase: String stream_not_ends_with: String stream_not_ends_with_nocase: String stream_: Stream_filter addressA: Bytes addressA_not: Bytes addressA_gt: Bytes addressA_lt: Bytes addressA_gte: Bytes addressA_lte: Bytes addressA_in: [Bytes!] addressA_not_in: [Bytes!] addressA_contains: Bytes addressA_not_contains: Bytes addressB: Bytes addressB_not: Bytes addressB_gt: Bytes addressB_lt: Bytes addressB_gte: Bytes addressB_lte: Bytes addressB_in: [Bytes!] addressB_not_in: [Bytes!] addressB_contains: Bytes addressB_not_contains: Bytes amountA: BigInt amountA_not: BigInt amountA_gt: BigInt amountA_lt: BigInt amountA_gte: BigInt amountA_lte: BigInt amountA_in: [BigInt!] amountA_not_in: [BigInt!] amountB: BigInt amountB_not: BigInt amountB_gt: BigInt amountB_lt: BigInt amountB_gte: BigInt amountB_lte: BigInt amountB_in: [BigInt!] amountB_not_in: [BigInt!] _change_block: BlockChangedFilter and: [Action_filter] or: [Action_filter] } ``` ### Fields #### [Action_filter.id](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.id_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.subgraphId](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.subgraphId_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.subgraphId_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.subgraphId_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.subgraphId_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.subgraphId_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.subgraphId_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.subgraphId_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.block](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.block_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.block_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.block_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.block_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.block_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.block_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.block_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.chainId](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.chainId_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.chainId_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.chainId_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.chainId_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.chainId_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.chainId_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.chainId_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.from](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.from_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.from_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.from_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.from_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.from_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.from_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.from_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.from_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.from_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.hash](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.hash_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.hash_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.hash_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.hash_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.hash_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.hash_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.hash_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.hash_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.hash_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.timestamp](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.timestamp_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.timestamp_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.timestamp_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.timestamp_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.timestamp_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.timestamp_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.timestamp_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.category](#)[ActionCategory](/docs/api/lockup/graphql/the-graph/enums/action-category.mdx) #### [Action_filter.category_not](#)[ActionCategory](/docs/api/lockup/graphql/the-graph/enums/action-category.mdx) #### [Action_filter.category_in](#)[[ActionCategory!]](/docs/api/lockup/graphql/the-graph/enums/action-category.mdx) #### [Action_filter.category_not_in](#)[[ActionCategory!]](/docs/api/lockup/graphql/the-graph/enums/action-category.mdx) #### [Action_filter.contract](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.contract_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.contract_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.contract_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.contract_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.contract_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.contract_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.contract_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.contract_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.contract_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.fee](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.fee_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.fee_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.fee_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.fee_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.fee_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.fee_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.fee_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.stream](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Action_filter.stream\_](#)[Stream_filter](/docs/api/lockup/graphql/the-graph/inputs/stream-filter.mdx) #### [Action_filter.addressA](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressA_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressA_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressA_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressA_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressA_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressA_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressA_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressA_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressA_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressB](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressB_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressB_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressB_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressB_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressB_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressB_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressB_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressB_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.addressB_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Action_filter.amountA](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountA_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountA_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountA_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountA_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountA_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountA_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountA_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountB](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountB_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountB_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountB_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountB_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountB_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountB_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.amountB_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Action_filter.\_change_block](#)[BlockChangedFilter](/docs/api/lockup/graphql/the-graph/inputs/block-changed-filter.mdx) Filter for the block changed event. #### [Action_filter.and](#)[[Action_filter]](/docs/api/lockup/graphql/the-graph/inputs/action-filter.mdx) #### [Action_filter.or](#)[[Action_filter]](/docs/api/lockup/graphql/the-graph/inputs/action-filter.mdx) --- ## Asset_filter export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Asset_filter { id: String id_not: String id_gt: String id_lt: String id_gte: String id_lte: String id_in: [String!] id_not_in: [String!] id_contains: String id_contains_nocase: String id_not_contains: String id_not_contains_nocase: String id_starts_with: String id_starts_with_nocase: String id_not_starts_with: String id_not_starts_with_nocase: String id_ends_with: String id_ends_with_nocase: String id_not_ends_with: String id_not_ends_with_nocase: String address: Bytes address_not: Bytes address_gt: Bytes address_lt: Bytes address_gte: Bytes address_lte: Bytes address_in: [Bytes!] address_not_in: [Bytes!] address_contains: Bytes address_not_contains: Bytes chainId: BigInt chainId_not: BigInt chainId_gt: BigInt chainId_lt: BigInt chainId_gte: BigInt chainId_lte: BigInt chainId_in: [BigInt!] chainId_not_in: [BigInt!] decimals: BigInt decimals_not: BigInt decimals_gt: BigInt decimals_lt: BigInt decimals_gte: BigInt decimals_lte: BigInt decimals_in: [BigInt!] decimals_not_in: [BigInt!] name: String name_not: String name_gt: String name_lt: String name_gte: String name_lte: String name_in: [String!] name_not_in: [String!] name_contains: String name_contains_nocase: String name_not_contains: String name_not_contains_nocase: String name_starts_with: String name_starts_with_nocase: String name_not_starts_with: String name_not_starts_with_nocase: String name_ends_with: String name_ends_with_nocase: String name_not_ends_with: String name_not_ends_with_nocase: String symbol: String symbol_not: String symbol_gt: String symbol_lt: String symbol_gte: String symbol_lte: String symbol_in: [String!] symbol_not_in: [String!] symbol_contains: String symbol_contains_nocase: String symbol_not_contains: String symbol_not_contains_nocase: String symbol_starts_with: String symbol_starts_with_nocase: String symbol_not_starts_with: String symbol_not_starts_with_nocase: String symbol_ends_with: String symbol_ends_with_nocase: String symbol_not_ends_with: String symbol_not_ends_with_nocase: String streams_: Stream_filter _change_block: BlockChangedFilter and: [Asset_filter] or: [Asset_filter] } ``` ### Fields #### [Asset_filter.id](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.id_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.address](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Asset_filter.address_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Asset_filter.address_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Asset_filter.address_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Asset_filter.address_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Asset_filter.address_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Asset_filter.address_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Asset_filter.address_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Asset_filter.address_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Asset_filter.address_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Asset_filter.chainId](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.chainId_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.chainId_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.chainId_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.chainId_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.chainId_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.chainId_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.chainId_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.decimals](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.decimals_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.decimals_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.decimals_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.decimals_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.decimals_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.decimals_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.decimals_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Asset_filter.name](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.name_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.symbol_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Asset_filter.streams\_](#)[Stream_filter](/docs/api/lockup/graphql/the-graph/inputs/stream-filter.mdx) #### [Asset_filter.\_change_block](#)[BlockChangedFilter](/docs/api/lockup/graphql/the-graph/inputs/block-changed-filter.mdx) Filter for the block changed event. #### [Asset_filter.and](#)[[Asset_filter]](/docs/api/lockup/graphql/the-graph/inputs/asset-filter.mdx) #### [Asset_filter.or](#)[[Asset_filter]](/docs/api/lockup/graphql/the-graph/inputs/asset-filter.mdx) --- ## Batch_filter export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Batch_filter { id: String id_not: String id_gt: String id_lt: String id_gte: String id_lte: String id_in: [String!] id_not_in: [String!] id_contains: String id_contains_nocase: String id_not_contains: String id_not_contains_nocase: String id_starts_with: String id_starts_with_nocase: String id_not_starts_with: String id_not_starts_with_nocase: String id_ends_with: String id_ends_with_nocase: String id_not_ends_with: String id_not_ends_with_nocase: String hash: Bytes hash_not: Bytes hash_gt: Bytes hash_lt: Bytes hash_gte: Bytes hash_lte: Bytes hash_in: [Bytes!] hash_not_in: [Bytes!] hash_contains: Bytes hash_not_contains: Bytes timestamp: BigInt timestamp_not: BigInt timestamp_gt: BigInt timestamp_lt: BigInt timestamp_gte: BigInt timestamp_lte: BigInt timestamp_in: [BigInt!] timestamp_not_in: [BigInt!] batcher: String batcher_not: String batcher_gt: String batcher_lt: String batcher_gte: String batcher_lte: String batcher_in: [String!] batcher_not_in: [String!] batcher_contains: String batcher_contains_nocase: String batcher_not_contains: String batcher_not_contains_nocase: String batcher_starts_with: String batcher_starts_with_nocase: String batcher_not_starts_with: String batcher_not_starts_with_nocase: String batcher_ends_with: String batcher_ends_with_nocase: String batcher_not_ends_with: String batcher_not_ends_with_nocase: String batcher_: Batcher_filter position: BigInt position_not: BigInt position_gt: BigInt position_lt: BigInt position_gte: BigInt position_lte: BigInt position_in: [BigInt!] position_not_in: [BigInt!] size: BigInt size_not: BigInt size_gt: BigInt size_lt: BigInt size_gte: BigInt size_lte: BigInt size_in: [BigInt!] size_not_in: [BigInt!] streams_: Stream_filter _change_block: BlockChangedFilter and: [Batch_filter] or: [Batch_filter] } ``` ### Fields #### [Batch_filter.id](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.id_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.hash](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Batch_filter.hash_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Batch_filter.hash_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Batch_filter.hash_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Batch_filter.hash_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Batch_filter.hash_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Batch_filter.hash_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Batch_filter.hash_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Batch_filter.hash_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Batch_filter.hash_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Batch_filter.timestamp](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.timestamp_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.timestamp_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.timestamp_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.timestamp_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.timestamp_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.timestamp_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.timestamp_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.batcher](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batch_filter.batcher\_](#)[Batcher_filter](/docs/api/lockup/graphql/the-graph/inputs/batcher-filter.mdx) #### [Batch_filter.position](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.position_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.position_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.position_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.position_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.position_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.position_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.position_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.size](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.size_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.size_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.size_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.size_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.size_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.size_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.size_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batch_filter.streams\_](#)[Stream_filter](/docs/api/lockup/graphql/the-graph/inputs/stream-filter.mdx) #### [Batch_filter.\_change_block](#)[BlockChangedFilter](/docs/api/lockup/graphql/the-graph/inputs/block-changed-filter.mdx) Filter for the block changed event. #### [Batch_filter.and](#)[[Batch_filter]](/docs/api/lockup/graphql/the-graph/inputs/batch-filter.mdx) #### [Batch_filter.or](#)[[Batch_filter]](/docs/api/lockup/graphql/the-graph/inputs/batch-filter.mdx) --- ## Batcher_filter export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Batcher_filter { id: String id_not: String id_gt: String id_lt: String id_gte: String id_lte: String id_in: [String!] id_not_in: [String!] id_contains: String id_contains_nocase: String id_not_contains: String id_not_contains_nocase: String id_starts_with: String id_starts_with_nocase: String id_not_starts_with: String id_not_starts_with_nocase: String id_ends_with: String id_ends_with_nocase: String id_not_ends_with: String id_not_ends_with_nocase: String batchCounter: BigInt batchCounter_not: BigInt batchCounter_gt: BigInt batchCounter_lt: BigInt batchCounter_gte: BigInt batchCounter_lte: BigInt batchCounter_in: [BigInt!] batchCounter_not_in: [BigInt!] batches_: Batch_filter _change_block: BlockChangedFilter and: [Batcher_filter] or: [Batcher_filter] } ``` ### Fields #### [Batcher_filter.id](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.id_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Batcher_filter.batchCounter](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batcher_filter.batchCounter_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batcher_filter.batchCounter_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batcher_filter.batchCounter_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batcher_filter.batchCounter_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batcher_filter.batchCounter_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batcher_filter.batchCounter_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batcher_filter.batchCounter_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Batcher_filter.batches\_](#)[Batch_filter](/docs/api/lockup/graphql/the-graph/inputs/batch-filter.mdx) #### [Batcher_filter.\_change_block](#)[BlockChangedFilter](/docs/api/lockup/graphql/the-graph/inputs/block-changed-filter.mdx) Filter for the block changed event. #### [Batcher_filter.and](#)[[Batcher_filter]](/docs/api/lockup/graphql/the-graph/inputs/batcher-filter.mdx) #### [Batcher_filter.or](#)[[Batcher_filter]](/docs/api/lockup/graphql/the-graph/inputs/batcher-filter.mdx) --- ## BlockChangedFilter export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input BlockChangedFilter { number_gte: Int! } ``` ### Fields #### [BlockChangedFilter.number_gte](#)[Int!](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) --- ## Block_height export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Block_height { hash: Bytes number: Int number_gte: Int } ``` ### Fields #### [Block_height.hash](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Block_height.number](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [Block_height.number_gte](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) --- ## Segment_filter export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Segment_filter { id: String id_not: String id_gt: String id_lt: String id_gte: String id_lte: String id_in: [String!] id_not_in: [String!] id_contains: String id_contains_nocase: String id_not_contains: String id_not_contains_nocase: String id_starts_with: String id_starts_with_nocase: String id_not_starts_with: String id_not_starts_with_nocase: String id_ends_with: String id_ends_with_nocase: String id_not_ends_with: String id_not_ends_with_nocase: String amount: BigInt amount_not: BigInt amount_gt: BigInt amount_lt: BigInt amount_gte: BigInt amount_lte: BigInt amount_in: [BigInt!] amount_not_in: [BigInt!] endAmount: BigInt endAmount_not: BigInt endAmount_gt: BigInt endAmount_lt: BigInt endAmount_gte: BigInt endAmount_lte: BigInt endAmount_in: [BigInt!] endAmount_not_in: [BigInt!] endTime: BigInt endTime_not: BigInt endTime_gt: BigInt endTime_lt: BigInt endTime_gte: BigInt endTime_lte: BigInt endTime_in: [BigInt!] endTime_not_in: [BigInt!] exponent: BigInt exponent_not: BigInt exponent_gt: BigInt exponent_lt: BigInt exponent_gte: BigInt exponent_lte: BigInt exponent_in: [BigInt!] exponent_not_in: [BigInt!] position: BigInt position_not: BigInt position_gt: BigInt position_lt: BigInt position_gte: BigInt position_lte: BigInt position_in: [BigInt!] position_not_in: [BigInt!] startAmount: BigInt startAmount_not: BigInt startAmount_gt: BigInt startAmount_lt: BigInt startAmount_gte: BigInt startAmount_lte: BigInt startAmount_in: [BigInt!] startAmount_not_in: [BigInt!] startTime: BigInt startTime_not: BigInt startTime_gt: BigInt startTime_lt: BigInt startTime_gte: BigInt startTime_lte: BigInt startTime_in: [BigInt!] startTime_not_in: [BigInt!] stream: String stream_not: String stream_gt: String stream_lt: String stream_gte: String stream_lte: String stream_in: [String!] stream_not_in: [String!] stream_contains: String stream_contains_nocase: String stream_not_contains: String stream_not_contains_nocase: String stream_starts_with: String stream_starts_with_nocase: String stream_not_starts_with: String stream_not_starts_with_nocase: String stream_ends_with: String stream_ends_with_nocase: String stream_not_ends_with: String stream_not_ends_with_nocase: String stream_: Stream_filter _change_block: BlockChangedFilter and: [Segment_filter] or: [Segment_filter] } ``` ### Fields #### [Segment_filter.id](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.id_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.amount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.amount_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.amount_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.amount_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.amount_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.amount_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.amount_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.amount_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endAmount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endAmount_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endAmount_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endAmount_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endAmount_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endAmount_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endAmount_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endAmount_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endTime_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endTime_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endTime_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endTime_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endTime_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endTime_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.endTime_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.exponent](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.exponent_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.exponent_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.exponent_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.exponent_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.exponent_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.exponent_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.exponent_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.position](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.position_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.position_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.position_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.position_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.position_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.position_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.position_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startAmount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startAmount_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startAmount_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startAmount_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startAmount_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startAmount_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startAmount_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startAmount_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startTime_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startTime_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startTime_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startTime_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startTime_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startTime_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.startTime_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Segment_filter.stream](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Segment_filter.stream\_](#)[Stream_filter](/docs/api/lockup/graphql/the-graph/inputs/stream-filter.mdx) #### [Segment_filter.\_change_block](#)[BlockChangedFilter](/docs/api/lockup/graphql/the-graph/inputs/block-changed-filter.mdx) Filter for the block changed event. #### [Segment_filter.and](#)[[Segment_filter]](/docs/api/lockup/graphql/the-graph/inputs/segment-filter.mdx) #### [Segment_filter.or](#)[[Segment_filter]](/docs/api/lockup/graphql/the-graph/inputs/segment-filter.mdx) --- ## Stream_filter export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Stream_filter { id: String id_not: String id_gt: String id_lt: String id_gte: String id_lte: String id_in: [String!] id_not_in: [String!] id_contains: String id_contains_nocase: String id_not_contains: String id_not_contains_nocase: String id_starts_with: String id_starts_with_nocase: String id_not_starts_with: String id_not_starts_with_nocase: String id_ends_with: String id_ends_with_nocase: String id_not_ends_with: String id_not_ends_with_nocase: String alias: String alias_not: String alias_gt: String alias_lt: String alias_gte: String alias_lte: String alias_in: [String!] alias_not_in: [String!] alias_contains: String alias_contains_nocase: String alias_not_contains: String alias_not_contains_nocase: String alias_starts_with: String alias_starts_with_nocase: String alias_not_starts_with: String alias_not_starts_with_nocase: String alias_ends_with: String alias_ends_with_nocase: String alias_not_ends_with: String alias_not_ends_with_nocase: String chainId: BigInt chainId_not: BigInt chainId_gt: BigInt chainId_lt: BigInt chainId_gte: BigInt chainId_lte: BigInt chainId_in: [BigInt!] chainId_not_in: [BigInt!] subgraphId: BigInt subgraphId_not: BigInt subgraphId_gt: BigInt subgraphId_lt: BigInt subgraphId_gte: BigInt subgraphId_lte: BigInt subgraphId_in: [BigInt!] subgraphId_not_in: [BigInt!] tokenId: BigInt tokenId_not: BigInt tokenId_gt: BigInt tokenId_lt: BigInt tokenId_gte: BigInt tokenId_lte: BigInt tokenId_in: [BigInt!] tokenId_not_in: [BigInt!] hash: Bytes hash_not: Bytes hash_gt: Bytes hash_lt: Bytes hash_gte: Bytes hash_lte: Bytes hash_in: [Bytes!] hash_not_in: [Bytes!] hash_contains: Bytes hash_not_contains: Bytes timestamp: BigInt timestamp_not: BigInt timestamp_gt: BigInt timestamp_lt: BigInt timestamp_gte: BigInt timestamp_lte: BigInt timestamp_in: [BigInt!] timestamp_not_in: [BigInt!] actions_: Action_filter asset: String asset_not: String asset_gt: String asset_lt: String asset_gte: String asset_lte: String asset_in: [String!] asset_not_in: [String!] asset_contains: String asset_contains_nocase: String asset_not_contains: String asset_not_contains_nocase: String asset_starts_with: String asset_starts_with_nocase: String asset_not_starts_with: String asset_not_starts_with_nocase: String asset_ends_with: String asset_ends_with_nocase: String asset_not_ends_with: String asset_not_ends_with_nocase: String asset_: Asset_filter assetDecimalsValue: BigInt assetDecimalsValue_not: BigInt assetDecimalsValue_gt: BigInt assetDecimalsValue_lt: BigInt assetDecimalsValue_gte: BigInt assetDecimalsValue_lte: BigInt assetDecimalsValue_in: [BigInt!] assetDecimalsValue_not_in: [BigInt!] batch: String batch_not: String batch_gt: String batch_lt: String batch_gte: String batch_lte: String batch_in: [String!] batch_not_in: [String!] batch_contains: String batch_contains_nocase: String batch_not_contains: String batch_not_contains_nocase: String batch_starts_with: String batch_starts_with_nocase: String batch_not_starts_with: String batch_not_starts_with_nocase: String batch_ends_with: String batch_ends_with_nocase: String batch_not_ends_with: String batch_not_ends_with_nocase: String batch_: Batch_filter category: StreamCategory category_not: StreamCategory category_in: [StreamCategory!] category_not_in: [StreamCategory!] contract: Bytes contract_not: Bytes contract_gt: Bytes contract_lt: Bytes contract_gte: Bytes contract_lte: Bytes contract_in: [Bytes!] contract_not_in: [Bytes!] contract_contains: Bytes contract_not_contains: Bytes position: BigInt position_not: BigInt position_gt: BigInt position_lt: BigInt position_gte: BigInt position_lte: BigInt position_in: [BigInt!] position_not_in: [BigInt!] recipient: Bytes recipient_not: Bytes recipient_gt: Bytes recipient_lt: Bytes recipient_gte: Bytes recipient_lte: Bytes recipient_in: [Bytes!] recipient_not_in: [Bytes!] recipient_contains: Bytes recipient_not_contains: Bytes sender: Bytes sender_not: Bytes sender_gt: Bytes sender_lt: Bytes sender_gte: Bytes sender_lte: Bytes sender_in: [Bytes!] sender_not_in: [Bytes!] sender_contains: Bytes sender_not_contains: Bytes startTime: BigInt startTime_not: BigInt startTime_gt: BigInt startTime_lt: BigInt startTime_gte: BigInt startTime_lte: BigInt startTime_in: [BigInt!] startTime_not_in: [BigInt!] transferable: Boolean transferable_not: Boolean transferable_in: [Boolean!] transferable_not_in: [Boolean!] version: String version_not: String version_gt: String version_lt: String version_gte: String version_lte: String version_in: [String!] version_not_in: [String!] version_contains: String version_contains_nocase: String version_not_contains: String version_not_contains_nocase: String version_starts_with: String version_starts_with_nocase: String version_not_starts_with: String version_not_starts_with_nocase: String version_ends_with: String version_ends_with_nocase: String version_not_ends_with: String version_not_ends_with_nocase: String withdrawnAmount: BigInt withdrawnAmount_not: BigInt withdrawnAmount_gt: BigInt withdrawnAmount_lt: BigInt withdrawnAmount_gte: BigInt withdrawnAmount_lte: BigInt withdrawnAmount_in: [BigInt!] withdrawnAmount_not_in: [BigInt!] canceledAction: String canceledAction_not: String canceledAction_gt: String canceledAction_lt: String canceledAction_gte: String canceledAction_lte: String canceledAction_in: [String!] canceledAction_not_in: [String!] canceledAction_contains: String canceledAction_contains_nocase: String canceledAction_not_contains: String canceledAction_not_contains_nocase: String canceledAction_starts_with: String canceledAction_starts_with_nocase: String canceledAction_not_starts_with: String canceledAction_not_starts_with_nocase: String canceledAction_ends_with: String canceledAction_ends_with_nocase: String canceledAction_not_ends_with: String canceledAction_not_ends_with_nocase: String canceledAction_: Action_filter renounceAction: String renounceAction_not: String renounceAction_gt: String renounceAction_lt: String renounceAction_gte: String renounceAction_lte: String renounceAction_in: [String!] renounceAction_not_in: [String!] renounceAction_contains: String renounceAction_contains_nocase: String renounceAction_not_contains: String renounceAction_not_contains_nocase: String renounceAction_starts_with: String renounceAction_starts_with_nocase: String renounceAction_not_starts_with: String renounceAction_not_starts_with_nocase: String renounceAction_ends_with: String renounceAction_ends_with_nocase: String renounceAction_not_ends_with: String renounceAction_not_ends_with_nocase: String renounceAction_: Action_filter cancelable: Boolean cancelable_not: Boolean cancelable_in: [Boolean!] cancelable_not_in: [Boolean!] canceled: Boolean canceled_not: Boolean canceled_in: [Boolean!] canceled_not_in: [Boolean!] canceledTime: BigInt canceledTime_not: BigInt canceledTime_gt: BigInt canceledTime_lt: BigInt canceledTime_gte: BigInt canceledTime_lte: BigInt canceledTime_in: [BigInt!] canceledTime_not_in: [BigInt!] depositAmount: BigInt depositAmount_not: BigInt depositAmount_gt: BigInt depositAmount_lt: BigInt depositAmount_gte: BigInt depositAmount_lte: BigInt depositAmount_in: [BigInt!] depositAmount_not_in: [BigInt!] duration: BigInt duration_not: BigInt duration_gt: BigInt duration_lt: BigInt duration_gte: BigInt duration_lte: BigInt duration_in: [BigInt!] duration_not_in: [BigInt!] endTime: BigInt endTime_not: BigInt endTime_gt: BigInt endTime_lt: BigInt endTime_gte: BigInt endTime_lte: BigInt endTime_in: [BigInt!] endTime_not_in: [BigInt!] funder: Bytes funder_not: Bytes funder_gt: Bytes funder_lt: Bytes funder_gte: Bytes funder_lte: Bytes funder_in: [Bytes!] funder_not_in: [Bytes!] funder_contains: Bytes funder_not_contains: Bytes intactAmount: BigInt intactAmount_not: BigInt intactAmount_gt: BigInt intactAmount_lt: BigInt intactAmount_gte: BigInt intactAmount_lte: BigInt intactAmount_in: [BigInt!] intactAmount_not_in: [BigInt!] proxender: Bytes proxender_not: Bytes proxender_gt: Bytes proxender_lt: Bytes proxender_gte: Bytes proxender_lte: Bytes proxender_in: [Bytes!] proxender_not_in: [Bytes!] proxender_contains: Bytes proxender_not_contains: Bytes proxied: Boolean proxied_not: Boolean proxied_in: [Boolean!] proxied_not_in: [Boolean!] renounceTime: BigInt renounceTime_not: BigInt renounceTime_gt: BigInt renounceTime_lt: BigInt renounceTime_gte: BigInt renounceTime_lte: BigInt renounceTime_in: [BigInt!] renounceTime_not_in: [BigInt!] shape: String shape_not: String shape_gt: String shape_lt: String shape_gte: String shape_lte: String shape_in: [String!] shape_not_in: [String!] shape_contains: String shape_contains_nocase: String shape_not_contains: String shape_not_contains_nocase: String shape_starts_with: String shape_starts_with_nocase: String shape_not_starts_with: String shape_not_starts_with_nocase: String shape_ends_with: String shape_ends_with_nocase: String shape_not_ends_with: String shape_not_ends_with_nocase: String cliff: Boolean cliff_not: Boolean cliff_in: [Boolean!] cliff_not_in: [Boolean!] cliffAmount: BigInt cliffAmount_not: BigInt cliffAmount_gt: BigInt cliffAmount_lt: BigInt cliffAmount_gte: BigInt cliffAmount_lte: BigInt cliffAmount_in: [BigInt!] cliffAmount_not_in: [BigInt!] cliffTime: BigInt cliffTime_not: BigInt cliffTime_gt: BigInt cliffTime_lt: BigInt cliffTime_gte: BigInt cliffTime_lte: BigInt cliffTime_in: [BigInt!] cliffTime_not_in: [BigInt!] initial: Boolean initial_not: Boolean initial_in: [Boolean!] initial_not_in: [Boolean!] initialAmount: BigInt initialAmount_not: BigInt initialAmount_gt: BigInt initialAmount_lt: BigInt initialAmount_gte: BigInt initialAmount_lte: BigInt initialAmount_in: [BigInt!] initialAmount_not_in: [BigInt!] segments_: Segment_filter tranches_: Tranche_filter _change_block: BlockChangedFilter and: [Stream_filter] or: [Stream_filter] } ``` ### Fields #### [Stream_filter.id](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.id_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.alias_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.chainId](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.chainId_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.chainId_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.chainId_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.chainId_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.chainId_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.chainId_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.chainId_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.subgraphId](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.subgraphId_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.subgraphId_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.subgraphId_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.subgraphId_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.subgraphId_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.subgraphId_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.subgraphId_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.tokenId](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.tokenId_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.tokenId_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.tokenId_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.tokenId_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.tokenId_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.tokenId_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.tokenId_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.hash](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.hash_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.hash_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.hash_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.hash_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.hash_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.hash_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.hash_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.hash_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.hash_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.timestamp](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.timestamp_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.timestamp_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.timestamp_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.timestamp_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.timestamp_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.timestamp_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.timestamp_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.actions\_](#)[Action_filter](/docs/api/lockup/graphql/the-graph/inputs/action-filter.mdx) #### [Stream_filter.asset](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.asset\_](#)[Asset_filter](/docs/api/lockup/graphql/the-graph/inputs/asset-filter.mdx) #### [Stream_filter.assetDecimalsValue](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.assetDecimalsValue_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.assetDecimalsValue_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.assetDecimalsValue_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.assetDecimalsValue_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.assetDecimalsValue_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.assetDecimalsValue_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.assetDecimalsValue_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.batch](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.batch\_](#)[Batch_filter](/docs/api/lockup/graphql/the-graph/inputs/batch-filter.mdx) #### [Stream_filter.category](#)[StreamCategory](/docs/api/lockup/graphql/the-graph/enums/stream-category.mdx) #### [Stream_filter.category_not](#)[StreamCategory](/docs/api/lockup/graphql/the-graph/enums/stream-category.mdx) #### [Stream_filter.category_in](#)[[StreamCategory!]](/docs/api/lockup/graphql/the-graph/enums/stream-category.mdx) #### [Stream_filter.category_not_in](#)[[StreamCategory!]](/docs/api/lockup/graphql/the-graph/enums/stream-category.mdx) #### [Stream_filter.contract](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.contract_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.contract_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.contract_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.contract_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.contract_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.contract_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.contract_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.contract_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.contract_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.position](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.position_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.position_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.position_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.position_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.position_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.position_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.position_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.recipient](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.recipient_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.recipient_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.recipient_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.recipient_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.recipient_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.recipient_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.recipient_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.recipient_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.recipient_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.sender](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.sender_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.sender_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.sender_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.sender_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.sender_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.sender_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.sender_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.sender_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.sender_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.startTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.startTime_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.startTime_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.startTime_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.startTime_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.startTime_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.startTime_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.startTime_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.transferable](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.transferable_not](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.transferable_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.transferable_not_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.version](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.version_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.withdrawnAmount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.withdrawnAmount_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.withdrawnAmount_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.withdrawnAmount_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.withdrawnAmount_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.withdrawnAmount_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.withdrawnAmount_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.withdrawnAmount_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.canceledAction](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.canceledAction\_](#)[Action_filter](/docs/api/lockup/graphql/the-graph/inputs/action-filter.mdx) #### [Stream_filter.renounceAction](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.renounceAction\_](#)[Action_filter](/docs/api/lockup/graphql/the-graph/inputs/action-filter.mdx) #### [Stream_filter.cancelable](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.cancelable_not](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.cancelable_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.cancelable_not_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.canceled](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.canceled_not](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.canceled_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.canceled_not_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.canceledTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.canceledTime_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.canceledTime_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.canceledTime_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.canceledTime_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.canceledTime_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.canceledTime_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.canceledTime_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.depositAmount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.depositAmount_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.depositAmount_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.depositAmount_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.depositAmount_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.depositAmount_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.depositAmount_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.depositAmount_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.duration](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.duration_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.duration_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.duration_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.duration_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.duration_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.duration_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.duration_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.endTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.endTime_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.endTime_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.endTime_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.endTime_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.endTime_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.endTime_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.endTime_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.funder](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.funder_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.funder_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.funder_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.funder_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.funder_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.funder_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.funder_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.funder_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.funder_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.intactAmount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.intactAmount_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.intactAmount_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.intactAmount_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.intactAmount_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.intactAmount_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.intactAmount_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.intactAmount_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.proxender](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.proxender_not](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.proxender_gt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.proxender_lt](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.proxender_gte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.proxender_lte](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.proxender_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.proxender_not_in](#)[[Bytes!]](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.proxender_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.proxender_not_contains](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) #### [Stream_filter.proxied](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.proxied_not](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.proxied_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.proxied_not_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.renounceTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.renounceTime_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.renounceTime_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.renounceTime_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.renounceTime_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.renounceTime_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.renounceTime_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.renounceTime_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.shape](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.shape_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Stream_filter.cliff](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.cliff_not](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.cliff_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.cliff_not_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.cliffAmount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffAmount_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffAmount_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffAmount_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffAmount_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffAmount_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffAmount_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffAmount_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffTime_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffTime_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffTime_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffTime_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffTime_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffTime_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.cliffTime_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.initial](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.initial_not](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.initial_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.initial_not_in](#)[[Boolean!]](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) #### [Stream_filter.initialAmount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.initialAmount_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.initialAmount_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.initialAmount_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.initialAmount_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.initialAmount_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.initialAmount_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.initialAmount_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Stream_filter.segments\_](#)[Segment_filter](/docs/api/lockup/graphql/the-graph/inputs/segment-filter.mdx) #### [Stream_filter.tranches\_](#)[Tranche_filter](/docs/api/lockup/graphql/the-graph/inputs/tranche-filter.mdx) #### [Stream_filter.\_change_block](#)[BlockChangedFilter](/docs/api/lockup/graphql/the-graph/inputs/block-changed-filter.mdx) Filter for the block changed event. #### [Stream_filter.and](#)[[Stream_filter]](/docs/api/lockup/graphql/the-graph/inputs/stream-filter.mdx) #### [Stream_filter.or](#)[[Stream_filter]](/docs/api/lockup/graphql/the-graph/inputs/stream-filter.mdx) --- ## Tranche_filter export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Tranche_filter { id: String id_not: String id_gt: String id_lt: String id_gte: String id_lte: String id_in: [String!] id_not_in: [String!] id_contains: String id_contains_nocase: String id_not_contains: String id_not_contains_nocase: String id_starts_with: String id_starts_with_nocase: String id_not_starts_with: String id_not_starts_with_nocase: String id_ends_with: String id_ends_with_nocase: String id_not_ends_with: String id_not_ends_with_nocase: String amount: BigInt amount_not: BigInt amount_gt: BigInt amount_lt: BigInt amount_gte: BigInt amount_lte: BigInt amount_in: [BigInt!] amount_not_in: [BigInt!] endAmount: BigInt endAmount_not: BigInt endAmount_gt: BigInt endAmount_lt: BigInt endAmount_gte: BigInt endAmount_lte: BigInt endAmount_in: [BigInt!] endAmount_not_in: [BigInt!] endTime: BigInt endTime_not: BigInt endTime_gt: BigInt endTime_lt: BigInt endTime_gte: BigInt endTime_lte: BigInt endTime_in: [BigInt!] endTime_not_in: [BigInt!] position: BigInt position_not: BigInt position_gt: BigInt position_lt: BigInt position_gte: BigInt position_lte: BigInt position_in: [BigInt!] position_not_in: [BigInt!] startAmount: BigInt startAmount_not: BigInt startAmount_gt: BigInt startAmount_lt: BigInt startAmount_gte: BigInt startAmount_lte: BigInt startAmount_in: [BigInt!] startAmount_not_in: [BigInt!] startTime: BigInt startTime_not: BigInt startTime_gt: BigInt startTime_lt: BigInt startTime_gte: BigInt startTime_lte: BigInt startTime_in: [BigInt!] startTime_not_in: [BigInt!] stream: String stream_not: String stream_gt: String stream_lt: String stream_gte: String stream_lte: String stream_in: [String!] stream_not_in: [String!] stream_contains: String stream_contains_nocase: String stream_not_contains: String stream_not_contains_nocase: String stream_starts_with: String stream_starts_with_nocase: String stream_not_starts_with: String stream_not_starts_with_nocase: String stream_ends_with: String stream_ends_with_nocase: String stream_not_ends_with: String stream_not_ends_with_nocase: String stream_: Stream_filter _change_block: BlockChangedFilter and: [Tranche_filter] or: [Tranche_filter] } ``` ### Fields #### [Tranche_filter.id](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.id_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.amount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.amount_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.amount_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.amount_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.amount_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.amount_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.amount_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.amount_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endAmount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endAmount_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endAmount_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endAmount_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endAmount_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endAmount_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endAmount_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endAmount_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endTime_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endTime_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endTime_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endTime_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endTime_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endTime_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.endTime_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.position](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.position_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.position_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.position_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.position_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.position_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.position_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.position_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startAmount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startAmount_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startAmount_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startAmount_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startAmount_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startAmount_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startAmount_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startAmount_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startTime_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startTime_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startTime_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startTime_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startTime_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startTime_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.startTime_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Tranche_filter.stream](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Tranche_filter.stream\_](#)[Stream_filter](/docs/api/lockup/graphql/the-graph/inputs/stream-filter.mdx) #### [Tranche_filter.\_change_block](#)[BlockChangedFilter](/docs/api/lockup/graphql/the-graph/inputs/block-changed-filter.mdx) Filter for the block changed event. #### [Tranche_filter.and](#)[[Tranche_filter]](/docs/api/lockup/graphql/the-graph/inputs/tranche-filter.mdx) #### [Tranche_filter.or](#)[[Tranche_filter]](/docs/api/lockup/graphql/the-graph/inputs/tranche-filter.mdx) --- ## Watcher_filter export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql input Watcher_filter { id: String id_not: String id_gt: String id_lt: String id_gte: String id_lte: String id_in: [String!] id_not_in: [String!] id_contains: String id_contains_nocase: String id_not_contains: String id_not_contains_nocase: String id_starts_with: String id_starts_with_nocase: String id_not_starts_with: String id_not_starts_with_nocase: String id_ends_with: String id_ends_with_nocase: String id_not_ends_with: String id_not_ends_with_nocase: String actionCounter: BigInt actionCounter_not: BigInt actionCounter_gt: BigInt actionCounter_lt: BigInt actionCounter_gte: BigInt actionCounter_lte: BigInt actionCounter_in: [BigInt!] actionCounter_not_in: [BigInt!] chainId: BigInt chainId_not: BigInt chainId_gt: BigInt chainId_lt: BigInt chainId_gte: BigInt chainId_lte: BigInt chainId_in: [BigInt!] chainId_not_in: [BigInt!] streamCounter: BigInt streamCounter_not: BigInt streamCounter_gt: BigInt streamCounter_lt: BigInt streamCounter_gte: BigInt streamCounter_lte: BigInt streamCounter_in: [BigInt!] streamCounter_not_in: [BigInt!] _change_block: BlockChangedFilter and: [Watcher_filter] or: [Watcher_filter] } ``` ### Fields #### [Watcher_filter.id](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_not](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_gt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_lt](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_gte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_lte](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_not_in](#)[[String!]](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_not_contains](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_not_contains_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_not_starts_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_not_starts_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_not_ends_with](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.id_not_ends_with_nocase](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) #### [Watcher_filter.actionCounter](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.actionCounter_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.actionCounter_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.actionCounter_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.actionCounter_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.actionCounter_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.actionCounter_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.actionCounter_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.chainId](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.chainId_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.chainId_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.chainId_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.chainId_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.chainId_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.chainId_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.chainId_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.streamCounter](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.streamCounter_not](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.streamCounter_gt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.streamCounter_lt](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.streamCounter_gte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.streamCounter_lte](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.streamCounter_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.streamCounter_not_in](#)[[BigInt!]](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) #### [Watcher_filter.\_change_block](#)[BlockChangedFilter](/docs/api/lockup/graphql/the-graph/inputs/block-changed-filter.mdx) Filter for the block changed event. #### [Watcher_filter.and](#)[[Watcher_filter]](/docs/api/lockup/graphql/the-graph/inputs/watcher-filter.mdx) #### [Watcher_filter.or](#)[[Watcher_filter]](/docs/api/lockup/graphql/the-graph/inputs/watcher-filter.mdx) --- ## Action(Objects) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; A generic entity for tracking protocol actions. There may be multiple actions for a single tx. ```graphql type Action { id: String! subgraphId: BigInt! block: BigInt! chainId: BigInt! from: Bytes! hash: Bytes! timestamp: BigInt! category: ActionCategory! contract: Bytes! fee: BigInt stream: Stream addressA: Bytes addressB: Bytes amountA: BigInt amountB: BigInt } ``` ### Fields #### [Action.id](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) Unique identifier: `action-{chainId}-{txHash}-{logIndex}` #### [Action.subgraphId](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unique global id as tracked by the `Watcher` entity. #### [Action.block](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Block number of the Ethereum transaction. #### [Action.chainId](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) The chain ID where the action was created (e.g., 137 for Polygon). #### [Action.from](#)[Bytes!](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) The msg.sender of the Ethereum transaction. #### [Action.hash](#)[Bytes!](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) Hash of the Ethereum transaction. #### [Action.timestamp](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unix timestamp of the Ethereum transaction. #### [Action.category](#)[ActionCategory!](/docs/api/lockup/graphql/the-graph/enums/action-category.mdx) Category of action, e.g., Deposit. #### [Action.contract](#)[Bytes!](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) Contract through which the action was triggered. #### [Action.fee](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) The Sablier fee paid in the native token of the chain (e.g., ETH for Mainnet). See https://docs.sablier.com/concepts/fees #### [Action.stream](#)[Stream](/docs/api/lockup/graphql/the-graph/objects/stream.mdx) Stream linked to this action, if any. #### [Action.addressA](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) Address of 1st actor. Who this is depends upon the action type, e.g. for Create, it is the sender. #### [Action.addressB](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) Address of 2nd actor. Who this is depends upon the action type, e.g. for Transfer, it is the recipient. #### [Action.amountA](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) 1st amount. What this is depends upon the action type, e.g. for Deposit, it is the deposit amount. #### [Action.amountB](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) 2nd amount. What this is depends upon the action type, e.g. for Withdraw, it is the refund amount. --- ## Asset(Objects) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; ERC-20 asset ```graphql type Asset { id: String! address: Bytes! chainId: BigInt! decimals: BigInt! name: String! symbol: String! streams( skip: Int = 0 first: Int = 100 orderBy: Stream_orderBy orderDirection: OrderDirection where: Stream_filter ): [Stream!]! } ``` ### Fields #### [Asset.id](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) Unique identifier: `asset-{chainId}-{address}` #### [Asset.address](#)[Bytes!](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) Address of the ERC-20 token. #### [Asset.chainId](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) The chain ID where the asset exists (e.g., 137 for Polygon). #### [Asset.decimals](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Decimals of the ERC20 token. #### [Asset.name](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) Name of the ERC20 token. #### [Asset.symbol](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) Symbol of the ERC20 token. #### [Asset.streams](#)[[Stream!]!](/docs/api/lockup/graphql/the-graph/objects/stream.mdx) Streams that rely on this token ##### [Asset.streams.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Asset.streams.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Asset.streams.orderBy](#)[Stream_orderBy](/docs/api/lockup/graphql/the-graph/enums/stream-order-by.mdx) ##### [Asset.streams.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) ##### [Asset.streams.where](#)[Stream_filter](/docs/api/lockup/graphql/the-graph/inputs/stream-filter.mdx) --- ## Batch(Objects) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Creating streams in bulk is possible using the SablierBatchLockup contract. See https://github.com/sablier-labs/lockup/blob/v2.0/src/SablierBatchLockup.sol Note: the entity can be immutable because a batch is only updated in the same block. See https://thegraph.com/docs/en/subgraphs/developing/creating/ql-schema/#defining-entities ```graphql type Batch { id: String! hash: Bytes timestamp: BigInt batcher: Batcher position: BigInt size: BigInt! streams( skip: Int = 0 first: Int = 100 orderBy: Stream_orderBy orderDirection: OrderDirection where: Stream_filter ): [Stream!]! } ``` ### Fields #### [Batch.id](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) Unique identifier: `batch-{chainId}-{txHash}-{batcher}` #### [Batch.hash](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) Hash of the Ethereum transaction that created this batch. #### [Batch.timestamp](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Timestamp of the transaction that created this batch. #### [Batch.batcher](#)[Batcher](/docs/api/lockup/graphql/the-graph/objects/batcher.mdx) The sender address that created this batch. #### [Batch.position](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Index of the batch based on the `batchCounter` in the `Batcher` entity. #### [Batch.size](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Number of streams part of this batch. #### [Batch.streams](#)[[Stream!]!](/docs/api/lockup/graphql/the-graph/objects/stream.mdx) Streams part of this batch. ##### [Batch.streams.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Batch.streams.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Batch.streams.orderBy](#)[Stream_orderBy](/docs/api/lockup/graphql/the-graph/enums/stream-order-by.mdx) ##### [Batch.streams.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) ##### [Batch.streams.where](#)[Stream_filter](/docs/api/lockup/graphql/the-graph/inputs/stream-filter.mdx) --- ## Batcher(Objects) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Sender address that created batches. ```graphql type Batcher { id: String! batchCounter: BigInt! batches( skip: Int = 0 first: Int = 100 orderBy: Batch_orderBy orderDirection: OrderDirection where: Batch_filter ): [Batch!]! } ``` ### Fields #### [Batcher.id](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) Unique identifier: `batcher-{chainId}-{sender}` #### [Batcher.batchCounter](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Total number of batches started by this sender. #### [Batcher.batches](#)[[Batch!]!](/docs/api/lockup/graphql/the-graph/objects/batch.mdx) Batches started by this sender. ##### [Batcher.batches.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Batcher.batches.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Batcher.batches.orderBy](#)[Batch_orderBy](/docs/api/lockup/graphql/the-graph/enums/batch-order-by.mdx) ##### [Batcher.batches.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) ##### [Batcher.batches.where](#)[Batch_filter](/docs/api/lockup/graphql/the-graph/inputs/batch-filter.mdx) --- ## _Block_ export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql type _Block_ { hash: Bytes number: Int! timestamp: Int parentHash: Bytes } ``` ### Fields #### [\_Block\_.hash](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) The hash of the block #### [\_Block\_.number](#)[Int!](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) The block number #### [\_Block\_.timestamp](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) Integer representation of the timestamp stored in blocks for the chain #### [\_Block\_.parentHash](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) The hash of the parent block --- ## _Meta_ export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; The type for the top-level \_meta field ```graphql type _Meta_ { block: _Block_! deployment: String! hasIndexingErrors: Boolean! } ``` ### Fields #### [\_Meta\_.block](#)[\_Block\_!](/docs/api/lockup/graphql/the-graph/objects/block.mdx) Information about a specific subgraph block. The hash of the block will be null if the \_meta field has a block constraint that asks for a block number. It will be filled if the \_meta field has no block constraint and therefore asks for the latest block #### [\_Meta\_.deployment](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) The deployment ID #### [\_Meta\_.hasIndexingErrors](#)[Boolean!](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) If `true`, the subgraph encountered indexing errors at some past block --- ## Segment(Objects) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; See https://docs.sablier.com/concepts/lockup/segments ```graphql type Segment { id: String! amount: BigInt! endAmount: BigInt! endTime: BigInt! exponent: BigInt! position: BigInt! startAmount: BigInt! startTime: BigInt! stream: Stream! } ``` ### Fields #### [Segment.id](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) Unique identifier: `segment-{streamId}-{position}` #### [Segment.amount](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Amount distributed by this segment. #### [Segment.endAmount](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Total amount distributed at `endTime`. This is the sum of this segment's amount and all previous segments' amounts. #### [Segment.endTime](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unix timestamp indicating the end of the segment. #### [Segment.exponent](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Exponent used for the streamed amount calculations. See https://github.com/sablier-labs/lockup/blob/v2.0/src/types/DataTypes.sol#L279-L288 #### [Segment.position](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Position of the segment inside the array. #### [Segment.startAmount](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Total amount distributed by the stream at `startTime`. This is the sum of all previous segments' amounts. #### [Segment.startTime](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unix timestamp indicating the start of the segment. This is also the end time of the previous segment or, if this is the first segment, it is the start time of the stream. #### [Segment.stream](#)[Stream!](/docs/api/lockup/graphql/the-graph/objects/stream.mdx) The stream in which this segment was created. --- ## Stream(Objects) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql type Stream { id: String! alias: String! chainId: BigInt! subgraphId: BigInt! tokenId: BigInt! hash: Bytes! timestamp: BigInt! actions( skip: Int = 0 first: Int = 100 orderBy: Action_orderBy orderDirection: OrderDirection where: Action_filter ): [Action!]! asset: Asset! assetDecimalsValue: BigInt! batch: Batch! category: StreamCategory! contract: Bytes! position: BigInt! recipient: Bytes! sender: Bytes! startTime: BigInt! transferable: Boolean! version: String! withdrawnAmount: BigInt! canceledAction: Action renounceAction: Action cancelable: Boolean! canceled: Boolean! canceledTime: BigInt depositAmount: BigInt! duration: BigInt! endTime: BigInt! funder: Bytes! intactAmount: BigInt! proxender: Bytes proxied: Boolean! renounceTime: BigInt shape: String cliff: Boolean cliffAmount: BigInt cliffTime: BigInt initial: Boolean initialAmount: BigInt segments( skip: Int = 0 first: Int = 100 orderBy: Segment_orderBy orderDirection: OrderDirection where: Segment_filter ): [Segment!]! tranches( skip: Int = 0 first: Int = 100 orderBy: Tranche_orderBy orderDirection: OrderDirection where: Tranche_filter ): [Tranche!]! } ``` ### Fields #### [Stream.id](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) Unique identifier: `{contractAddress}-{chainId}-{tokenId}` #### [Stream.alias](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) Like the id: `{contractAlias}-{chainId}-{tokenId}` #### [Stream.chainId](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) The chain ID where the stream was created (e.g., 137 for Polygon). #### [Stream.subgraphId](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unique global id as tracked by the `Watcher` entity. ኆ80 This may change if new data sources are added and the chronological order of streams changes. #### [Stream.tokenId](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) The id provided by the Lockup contract. This is the ERC-721 tokenId. #### [Stream.hash](#)[Bytes!](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) Hash of the Ethereum transaction that created this stream. #### [Stream.timestamp](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unix timestamp of the Ethereum transaction that created this stream. #### [Stream.actions](#)[[Action!]!](/docs/api/lockup/graphql/the-graph/objects/action.mdx) Actions triggered by this stream. ##### [Stream.actions.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Stream.actions.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Stream.actions.orderBy](#)[Action_orderBy](/docs/api/lockup/graphql/the-graph/enums/action-order-by.mdx) ##### [Stream.actions.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) ##### [Stream.actions.where](#)[Action_filter](/docs/api/lockup/graphql/the-graph/inputs/action-filter.mdx) #### [Stream.asset](#)[Asset!](/docs/api/lockup/graphql/the-graph/objects/asset.mdx) ERC-20 token distributed via this stream. #### [Stream.assetDecimalsValue](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) ERC-20 token decimals. Stored here to avoid loading the asset entity on each stream. Note: the "Value" suffix is added because of a bug in GraphQL Code Generator. #### [Stream.batch](#)[Batch!](/docs/api/lockup/graphql/the-graph/objects/batch.mdx) The batch the stream may be part of. Note: this is available only when created within a batch create transaction. #### [Stream.category](#)[StreamCategory!](/docs/api/lockup/graphql/the-graph/enums/stream-category.mdx) Category used for sorting. #### [Stream.contract](#)[Bytes!](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) The address of the contract the stream originates from. #### [Stream.position](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Position in the batch, if available. #### [Stream.recipient](#)[Bytes!](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) Current recipient of the stream, with permission to withdraw funds to any third-party address. Note: the recipient can change on NFT transfer. #### [Stream.sender](#)[Bytes!](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) Manager of the stream, with ability to cancel the stream. #### [Stream.startTime](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unix timestamp for the start of the stream. #### [Stream.transferable](#)[Boolean!](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) Flag indicating the transferability of the stream. This is set when the stream is created, and cannot be changed later. #### [Stream.version](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) Version of contract, e.g., v1.0. #### [Stream.withdrawnAmount](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) The sum of all withdrawn amounts. #### [Stream.canceledAction](#)[Action](/docs/api/lockup/graphql/the-graph/objects/action.mdx) Action in which the stream was canceled. #### [Stream.renounceAction](#)[Action](/docs/api/lockup/graphql/the-graph/objects/action.mdx) Action in which the stream was made non-cancelable. Note: if the stream was made non-cancelable from the get-go, this is the same as the Create action. #### [Stream.cancelable](#)[Boolean!](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) Flag indicating the cancelability of the stream. #### [Stream.canceled](#)[Boolean!](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) Flag indicating if the stream was canceled. #### [Stream.canceledTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unix timestamp for the when the stream was canceled. #### [Stream.depositAmount](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) The amount deposited when the stream was created. #### [Stream.duration](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Snapshot of the duration in seconds (the difference between end and start time). #### [Stream.endTime](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unix timestamp for the end of the stream. #### [Stream.funder](#)[Bytes!](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) The account that funded the stream, which can be different from the sender. #### [Stream.intactAmount](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) The amount that is still held by the stream regardless of whether if was fully vested or not. This is the difference between the deposit amount and all withdrawn amounts. #### [Stream.proxender](#)[Bytes](/docs/api/lockup/graphql/the-graph/scalars/bytes.mdx) Owner of the proxy when the stream is created through a PRBProxy (https://github.com/PaulRBerg/prb-proxy) Note that proxy = stream sender, and proxender = owner of proxy #### [Stream.proxied](#)[Boolean!](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) Flag for streams created through a PRBProxy. #### [Stream.renounceTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unix timestamp for when the stream was made non-cancelable. This can coincide with the create time. #### [Stream.shape](#)[String](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) An optional parameter to specify the shape of the distribution. Available since Lockup v2.0. #### [Stream.cliff](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) Flag for Linear streams with a cliff. #### [Stream.cliffAmount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) The amount that will unlock at the cliff time. #### [Stream.cliffTime](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unix timestamp for the start of the cliff. #### [Stream.initial](#)[Boolean](/docs/api/lockup/graphql/the-graph/scalars/boolean.mdx) Flag for Linear stream with an initial unlock. Available since Lockup v2.0. #### [Stream.initialAmount](#)[BigInt](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) The initial unlock amount of a Linear stream. Available since Lockup v2.0. #### [Stream.segments](#)[[Segment!]!](/docs/api/lockup/graphql/the-graph/objects/segment.mdx) Segments of a Dynamic stream. ##### [Stream.segments.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Stream.segments.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Stream.segments.orderBy](#)[Segment_orderBy](/docs/api/lockup/graphql/the-graph/enums/segment-order-by.mdx) ##### [Stream.segments.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) ##### [Stream.segments.where](#)[Segment_filter](/docs/api/lockup/graphql/the-graph/inputs/segment-filter.mdx) #### [Stream.tranches](#)[[Tranche!]!](/docs/api/lockup/graphql/the-graph/objects/tranche.mdx) Segments of a Tranched stream. ##### [Stream.tranches.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Stream.tranches.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) ##### [Stream.tranches.orderBy](#)[Tranche_orderBy](/docs/api/lockup/graphql/the-graph/enums/tranche-order-by.mdx) ##### [Stream.tranches.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) ##### [Stream.tranches.where](#)[Tranche_filter](/docs/api/lockup/graphql/the-graph/inputs/tranche-filter.mdx) --- ## Tranche(Objects) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; See https://docs.sablier.com/concepts/lockup/tranches ```graphql type Tranche { id: String! amount: BigInt! endAmount: BigInt! endTime: BigInt! position: BigInt! startAmount: BigInt! startTime: BigInt! stream: Stream! } ``` ### Fields #### [Tranche.id](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) Unique identifier: `tranche-{streamId}-{position}` #### [Tranche.amount](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Amount distributed by this tranche. #### [Tranche.endAmount](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Total amount distributed at `endTime`. This is the sum of this tranche's amount and all previous tranches' amounts. #### [Tranche.endTime](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unix timestamp indicating the end of the tranche. #### [Tranche.position](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Position of the tranche inside the array. #### [Tranche.startAmount](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Total amount distributed by the stream at `startTime`. This is the sum of all previous tranches' amounts. #### [Tranche.startTime](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Unix timestamp indicating the start of the tranche. This is also the end time of the previous tranche or, if this is the first tranche, it is the start time of the stream. #### [Tranche.stream](#)[Stream!](/docs/api/lockup/graphql/the-graph/objects/stream.mdx) The stream in which this tranche was created. --- ## Watcher(Objects) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql type Watcher { id: String! actionCounter: BigInt! chainId: BigInt! streamCounter: BigInt! } ``` ### Fields #### [Watcher.id](#)[String!](/docs/api/lockup/graphql/the-graph/scalars/string.mdx) The chain ID. There is one watcher per subgraph. #### [Watcher.actionCounter](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Global counter for actions. #### [Watcher.chainId](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Alias for id. #### [Watcher.streamCounter](#)[BigInt!](/docs/api/lockup/graphql/the-graph/scalars/big-int.mdx) Global counter. --- ## action(3) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql action( id: ID! block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): Action ``` ### Arguments #### [action.id](#)[ID!](/docs/api/lockup/graphql/the-graph/scalars/id.mdx) #### [action.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [action.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Action](/docs/api/lockup/graphql/the-graph/objects/action.mdx) A generic entity for tracking protocol actions. There may be multiple actions for a single tx. --- ## actions export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql actions( skip: Int = 0 first: Int = 100 orderBy: Action_orderBy orderDirection: OrderDirection where: Action_filter block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): [Action!]! ``` ### Arguments #### [actions.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [actions.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [actions.orderBy](#)[Action_orderBy](/docs/api/lockup/graphql/the-graph/enums/action-order-by.mdx) #### [actions.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) #### [actions.where](#)[Action_filter](/docs/api/lockup/graphql/the-graph/inputs/action-filter.mdx) #### [actions.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [actions.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Action](/docs/api/lockup/graphql/the-graph/objects/action.mdx) A generic entity for tracking protocol actions. There may be multiple actions for a single tx. --- ## asset(3) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql asset( id: ID! block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): Asset ``` ### Arguments #### [asset.id](#)[ID!](/docs/api/lockup/graphql/the-graph/scalars/id.mdx) #### [asset.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [asset.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Asset](/docs/api/lockup/graphql/the-graph/objects/asset.mdx) ERC-20 asset --- ## assets export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql assets( skip: Int = 0 first: Int = 100 orderBy: Asset_orderBy orderDirection: OrderDirection where: Asset_filter block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): [Asset!]! ``` ### Arguments #### [assets.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [assets.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [assets.orderBy](#)[Asset_orderBy](/docs/api/lockup/graphql/the-graph/enums/asset-order-by.mdx) #### [assets.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) #### [assets.where](#)[Asset_filter](/docs/api/lockup/graphql/the-graph/inputs/asset-filter.mdx) #### [assets.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [assets.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Asset](/docs/api/lockup/graphql/the-graph/objects/asset.mdx) ERC-20 asset --- ## batch(3) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql batch( id: ID! block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): Batch ``` ### Arguments #### [batch.id](#)[ID!](/docs/api/lockup/graphql/the-graph/scalars/id.mdx) #### [batch.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [batch.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Batch](/docs/api/lockup/graphql/the-graph/objects/batch.mdx) Creating streams in bulk is possible using the SablierBatchLockup contract. See https://github.com/sablier-labs/lockup/blob/v2.0/src/SablierBatchLockup.sol Note: the entity can be immutable because a batch is only updated in the same block. See https://thegraph.com/docs/en/subgraphs/developing/creating/ql-schema/#defining-entities --- ## batcher(3) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql batcher( id: ID! block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): Batcher ``` ### Arguments #### [batcher.id](#)[ID!](/docs/api/lockup/graphql/the-graph/scalars/id.mdx) #### [batcher.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [batcher.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Batcher](/docs/api/lockup/graphql/the-graph/objects/batcher.mdx) Sender address that created batches. --- ## batchers export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql batchers( skip: Int = 0 first: Int = 100 orderBy: Batcher_orderBy orderDirection: OrderDirection where: Batcher_filter block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): [Batcher!]! ``` ### Arguments #### [batchers.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [batchers.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [batchers.orderBy](#)[Batcher_orderBy](/docs/api/lockup/graphql/the-graph/enums/batcher-order-by.mdx) #### [batchers.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) #### [batchers.where](#)[Batcher_filter](/docs/api/lockup/graphql/the-graph/inputs/batcher-filter.mdx) #### [batchers.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [batchers.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Batcher](/docs/api/lockup/graphql/the-graph/objects/batcher.mdx) Sender address that created batches. --- ## batches export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql batches( skip: Int = 0 first: Int = 100 orderBy: Batch_orderBy orderDirection: OrderDirection where: Batch_filter block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): [Batch!]! ``` ### Arguments #### [batches.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [batches.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [batches.orderBy](#)[Batch_orderBy](/docs/api/lockup/graphql/the-graph/enums/batch-order-by.mdx) #### [batches.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) #### [batches.where](#)[Batch_filter](/docs/api/lockup/graphql/the-graph/inputs/batch-filter.mdx) #### [batches.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [batches.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Batch](/docs/api/lockup/graphql/the-graph/objects/batch.mdx) Creating streams in bulk is possible using the SablierBatchLockup contract. See https://github.com/sablier-labs/lockup/blob/v2.0/src/SablierBatchLockup.sol Note: the entity can be immutable because a batch is only updated in the same block. See https://thegraph.com/docs/en/subgraphs/developing/creating/ql-schema/#defining-entities --- ## _meta export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; Access to subgraph metadata ```graphql _meta( block: Block_height ): _Meta_ ``` ### Arguments #### [\_meta.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) ### Type #### [\_Meta\_](/docs/api/lockup/graphql/the-graph/objects/meta.mdx) The type for the top-level \_meta field --- ## segment(3) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql segment( id: ID! block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): Segment ``` ### Arguments #### [segment.id](#)[ID!](/docs/api/lockup/graphql/the-graph/scalars/id.mdx) #### [segment.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [segment.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Segment](/docs/api/lockup/graphql/the-graph/objects/segment.mdx) See https://docs.sablier.com/concepts/lockup/segments --- ## segments export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql segments( skip: Int = 0 first: Int = 100 orderBy: Segment_orderBy orderDirection: OrderDirection where: Segment_filter block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): [Segment!]! ``` ### Arguments #### [segments.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [segments.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [segments.orderBy](#)[Segment_orderBy](/docs/api/lockup/graphql/the-graph/enums/segment-order-by.mdx) #### [segments.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) #### [segments.where](#)[Segment_filter](/docs/api/lockup/graphql/the-graph/inputs/segment-filter.mdx) #### [segments.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [segments.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Segment](/docs/api/lockup/graphql/the-graph/objects/segment.mdx) See https://docs.sablier.com/concepts/lockup/segments --- ## stream(3) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql stream( id: ID! block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): Stream ``` ### Arguments #### [stream.id](#)[ID!](/docs/api/lockup/graphql/the-graph/scalars/id.mdx) #### [stream.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [stream.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Stream](/docs/api/lockup/graphql/the-graph/objects/stream.mdx) --- ## streams export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql streams( skip: Int = 0 first: Int = 100 orderBy: Stream_orderBy orderDirection: OrderDirection where: Stream_filter block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): [Stream!]! ``` ### Arguments #### [streams.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [streams.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [streams.orderBy](#)[Stream_orderBy](/docs/api/lockup/graphql/the-graph/enums/stream-order-by.mdx) #### [streams.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) #### [streams.where](#)[Stream_filter](/docs/api/lockup/graphql/the-graph/inputs/stream-filter.mdx) #### [streams.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [streams.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Stream](/docs/api/lockup/graphql/the-graph/objects/stream.mdx) --- ## tranche(3) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql tranche( id: ID! block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): Tranche ``` ### Arguments #### [tranche.id](#)[ID!](/docs/api/lockup/graphql/the-graph/scalars/id.mdx) #### [tranche.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [tranche.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Tranche](/docs/api/lockup/graphql/the-graph/objects/tranche.mdx) See https://docs.sablier.com/concepts/lockup/tranches --- ## tranches export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql tranches( skip: Int = 0 first: Int = 100 orderBy: Tranche_orderBy orderDirection: OrderDirection where: Tranche_filter block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): [Tranche!]! ``` ### Arguments #### [tranches.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [tranches.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [tranches.orderBy](#)[Tranche_orderBy](/docs/api/lockup/graphql/the-graph/enums/tranche-order-by.mdx) #### [tranches.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) #### [tranches.where](#)[Tranche_filter](/docs/api/lockup/graphql/the-graph/inputs/tranche-filter.mdx) #### [tranches.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [tranches.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Tranche](/docs/api/lockup/graphql/the-graph/objects/tranche.mdx) See https://docs.sablier.com/concepts/lockup/tranches --- ## watcher(3) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql watcher( id: ID! block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): Watcher ``` ### Arguments #### [watcher.id](#)[ID!](/docs/api/lockup/graphql/the-graph/scalars/id.mdx) #### [watcher.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [watcher.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Watcher](/docs/api/lockup/graphql/the-graph/objects/watcher.mdx) --- ## watchers export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql watchers( skip: Int = 0 first: Int = 100 orderBy: Watcher_orderBy orderDirection: OrderDirection where: Watcher_filter block: Block_height subgraphError: _SubgraphErrorPolicy_! = deny ): [Watcher!]! ``` ### Arguments #### [watchers.skip](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [watchers.first](#)[Int](/docs/api/lockup/graphql/the-graph/scalars/int.mdx) #### [watchers.orderBy](#)[Watcher_orderBy](/docs/api/lockup/graphql/the-graph/enums/watcher-order-by.mdx) #### [watchers.orderDirection](#)[OrderDirection](/docs/api/lockup/graphql/the-graph/enums/order-direction.mdx) #### [watchers.where](#)[Watcher_filter](/docs/api/lockup/graphql/the-graph/inputs/watcher-filter.mdx) #### [watchers.block](#)[Block_height](/docs/api/lockup/graphql/the-graph/inputs/block-height.mdx) The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. #### [watchers.subgraphError](#)[\_SubgraphErrorPolicy\_!](/docs/api/lockup/graphql/the-graph/enums/subgraph-error-policy.mdx) Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. ### Type #### [Watcher](/docs/api/lockup/graphql/the-graph/objects/watcher.mdx) --- ## BigDecimal export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar BigDecimal ``` --- ## BigInt export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar BigInt ``` --- ## Boolean(Scalars) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; The `Boolean` scalar type represents `true` or `false`. ```graphql scalar Boolean ``` --- ## Bytes export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; No description ```graphql scalar Bytes ``` --- ## Float(Scalars) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). ```graphql scalar Float ``` --- ## ID export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. ```graphql scalar ID ``` --- ## Int8 export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; 8 bytes signed integer ```graphql scalar Int8 ``` --- ## Int(Scalars) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. ```graphql scalar Int ``` --- ## String(Scalars) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. ```graphql scalar String ``` --- ## Timestamp(Scalars) export const Bullet = () => ( <>  ●  ); export const SpecifiedBy = (props) => ( <> Specification ⎘ ); export const Badge = (props) => ( <> {props.text} ); export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { const [open, setOpen] = useState(startOpen); return (
{ e.preventDefault(); setOpen((open) => !open); }} style={{ listStyle: "none" }} > {open ? dataOpen : dataClose} {open && children}
); }; A string representation of microseconds UNIX timestamp (16 digits) ```graphql scalar Timestamp ``` --- ## Overview(Lockup) Lockup is a token streaming protocol that refers to the requirement that the creator of a stream must lock up a certain amount of tokens in a smart contract. A Lockup stream, therefore, is characterized by the start time, end time, amount of tokens to be streamed and a [stream shape](./02-stream-shapes.mdx). Let's take an example. Imagine Alice wants to stream 3000 DAI to Bob during the whole month of April. 1. Alice deposits the 3000 DAI in Lockup before Apr 1, setting the end time to May 1. 2. Bob's allocation of the DAI deposit increases every second beginning Apr 1. 3. On Apr 10, Bob will have earned approximately 1000 DAI. He can send a transaction to Lockup to withdraw the tokens. 4. If at any point during April Alice wishes to get back her tokens, she can cancel the stream and recover what has not been streamed yet. This streaming model is especially useful for use cases like vesting and airdrops. If you are looking to create an indefinite stream of tokens, please refer to our [Flow](../flow/overview) protocol. Lockup enables multiple distribution models, a feature that is discussed in the next section. --- ## Stream Shapes :::note - The code used to generate the gas benchmarks for the different stream curves can be found [here](https://github.com/sablier-labs/examples/tree/shapes-benchmark). - If you are interested in learning how to programmatically create the curves shown below in Solidity, check out the [examples](https://github.com/sablier-labs/examples/blob/main/lockup/) repository and the "CurvesCreator" files. ::: ## Lockup Linear ### Linear Lockup Linear streams are the simplest token distribution curve in Sablier. The streamed amount over time follows a straight line that goes up and to the right on a graph, which corresponds to the identity function $f(x) = x$: With this shape of stream, the payment rate remains constant, meaning that the same fraction of the deposit amount is streamed to the recipient every second. This provides greater predictability and is easy to understand because of how intuitive it is. Imagine a diagonal line going up and to the right – that's how simple it is. :::info The gas cost to create this shape is approximately _168,923_ on Mainnet. This may vary due to multiple factors. ::: ### Initial Unlock The Unlock Linear shape combines an initial immediate release of tokens with a steady, linear payout over time. This shape is ideal for employment contracts that include a signing bonus along with a regular payout schedule. At the beginning of the stream, a fixed amount of tokens is instantly available to the recipient — this is your "signing bonus". Following this, the remaining tokens begin to stream continuously at a consistent rate until the end of the contract term — this is your "salary". Another use case is a token distribution to investors where a particular amount gets unlocked immediately followed by a linear vesting plan. :::info The gas cost to create this shape is approximately _191,182_ on Mainnet. This may vary due to multiple factors. ::: ### Cliff Unlock It is possible to attach a "cliff" to a Lockup Linear stream, which sets a cut-off point for releasing tokens. Prior to the cliff, the recipient cannot withdraw any tokens, but the stream continues to accrue them. After the cliff, the constant payment rate per second kicks in. This feature is especially useful for vesting ERC-20 tokens as it allows you to have, for example, a 1-year cliff, and then 3 additional years of linear streaming. If the stream is for an employee, you can make it cancellable so that if the employee leaves your company during the stream, you can cancel it and recover the tokens that have not yet been streamed. :::info The gas cost to create this shape is approximately _213,708_ on Mainnet. This may vary due to multiple factors. ::: ### Initial Cliff Unlock This shape is useful for companies who want to distribute tokens to their investors using a cliff followed by linear vesting but also want to unlock some liquidity at the beginning to be able to allow investors to bootstrap AMM pools. Initially, a set amount of tokens are made available to the recipient as an upfront payment. After this initial unlock, the tokens are held during the cliff period until the moment of time set. The release resumes in a linearly post-cliff. :::info The gas cost to create this shape is approximately _214,067_ on Mainnet. This may vary due to multiple factors. ::: ## Lockup Dynamic Lockup Dynamic streams are what makes Sablier so unique, since they enable the creation of an arbitrary streaming curve, including non-linear curves. On the Sablier Interface, we support only some distribution shapes (the ones enumerated below), but the potential for innovation is limitless when you interact programmatically with the contracts. For example, one could design a logarithmic stream that emulates the $f(x) = log(x)$ function. These streams are powered by a number of user-provided [segments](/concepts/lockup/segments), which we will cover in the next article. What is important to note here is that with Lockup Dynamic, Sablier has evolved into a universal streaming engine, capable of supporting any custom streaming curve. ### Exponential A fantastic use case for Lockup Dynamic is Exponential streams, a shape through which the recipient receives increasingly more tokens as time passes. Exponentials are a great fit if you are looking to airdrop tokens, because your community members will receive the majority of the tokens towards the end of the stream instead of receiving the tokens all at once (no streaming) or in a linear fashion (Lockup Linear). This incentivizes long-term behavior and a constructive attitude. :::info The gas cost to create this shape is approximately _219,629_ on Mainnet. This may vary due to multiple factors. ::: ### Cliff Exponential Another use case for Lockup Dynamic is a variation of the previous design: an Cliff Exponential. The stream starts with a cliff (which can be how long you want), a specific amount instantly unlocked when the cliff ends, and then the rest of the stream is exponentially streamed. This is an excellent distribution if you are a company looking to set up a token vesting plan for your employees. Your employees will have an incentive to remain with your company in the long run, as they will receive an increasingly larger number of tokens. :::info The gas cost to create this shape is approximately _274,420_ on Mainnet. This may vary due to multiple factors. ::: ## Lockup Tranched Lockup Tranched streams are, as the name says, streams that have token unlocks in tranches. Even though you can use Lockup Dynamic to create a traditional vesting structure with periodic unlocks, Lockup Tranched is specifically design for that use case. As a result, a stream with tranches created using Lockup Tranched is more gas efficient than the same stream created using Lockup Dynamic. These streams are powered by a number of user-provided [tranches](/concepts/lockup/tranches), which is covered in the tranches article. ### Unlock in Steps You can use Lockup Tranched to create a traditional vesting contract with periodic unlocks. In this case, the "streaming" rate would not be by the second, but by the week, month, or year. After each period, a specific amount becomes unlocked and available for the recipient to withdraw. Past unlocks accumulate, so if the recipient doesn't withdraw them, they will be able to withdraw them later. The advantage of using Unlock in Steps instead of a normal vesting contract is that Sablier automates the entire process. No more worries about setting up vesting contracts or creating a user interface for your investors to claim their tokens. :::info The gas cost to create this shape is approximately _299,268_ on Mainnet for four unlocks. This may vary as there are multiple factors to consider. ::: ### Unlock Monthly Unlock Monthly is a special case of Unlock in Steps where tokens are unlocked on the same day every month, e.g. the 1st of every month. This is suited for use cases like traditional monthly salaries or ESOPs plans. [ 1 + Math.floor(i / 2), 10 * Math.floor(i / 2) + (i % 2 === 1 ? 10 : 0), ]), }, ], }} /> Each month, on a particular day, a specific amount of tokens becomes unlocked and available for withdrawal. Like Unlock in Steps, unwithdrawn tokens will carry over to the next period, providing flexibility and control to the recipient. This shape is ideal for employers who wish to set up advanced payment schedules for their employees, offering them access to funds on a predictable, monthly basis. :::info The gas cost to create this shape is approximately _511,476_ on Mainnet for a period of exactly **one year**. This may vary as there are multiple factors to consider. ::: ### Backweighted Backweighted is a type of tranched vesting curve where the tokens are vested in a backweighted way, meaning little vests early on, and large chunks vest towards the end. Example for a 4-year vesting schedule: - Year 1: 10% vests - Year 2: 20% vests - Year 3: 30% vests - Year 4: 40% vests This makes it a particularly good fit for recipients that need to be particularly incentivized on a long-term perspective, as they receive progressively more and more tokens as the stream gets closer to its end date. ### Timelock The Timelock shape locks all tokens for a specified period. Users cannot access the tokens until the set period elapses. Once the set period elapses, the full amount becomes accessible to the recipient. This setup is particularly advantageous for projects seeking to stabilize token pricing and minimize market volatility, encouraging investors to maintain their stake over a more extended period. :::info The gas cost to create this shape is approximately _219,700_ on Mainnet. This may vary due to multiple factors. ::: --- ## Segments(Lockup) ## Definition A Dynamic stream is composed of multiple segments, which are separate partitions with different streaming amount and rates. The protocol uses these segments to enable custom streaming curves, which power exponential streams, cliff streams, etc. Technically, a segment is a [struct](/reference/lockup/contracts/types/library.LockupDynamic#segment) with three fields: | Field | Type | Description | | :-------- | :-------- | :--------------------------------------------------------------------------------------------- | | Amount | `uint128` | The amount of tokens to be streamed in this segment, denoted in units of the token's decimals. | | Exponent | `UD2x18` | The exponent of this segment, denoted as a fixed-point number. | | Timestamp | `uint40` | The Unix timestamp indicating this segment's end. | Each segment has its own streaming function: $$ f(x) = x^{exp} * csa $$ Therefore, the distribution function of a dynamic stream becomes: $$ f(x) = x^{exp} * csa + \Sigma(esa) $$ Where: - $x$ is the elapsed time divided by the total time in the current segment. - $exp$ is the current segment exponent. - $csa$ is the current segment amount. - $\Sigma(esa)$ is the sum of all elapsed segments' amounts. :::info Segments can be used to represent any monotonic increasing function. ::: :::caution Because x is a percentage, the payment rate is inversely proportional to the exponent. For example, if the exponent is 0.5, the rate is quadratically faster compared to the baseline when the exponent is 1. Conversely, if the exponent is 2, the rate is quadratically slower compared to baseline. ::: ## Requirements - The sum of all segment amounts must equal the deposit amount. - There is a limit to how many segments there can be in a stream as enforced by the block gas limit. - If someone creates a stream with an excessively large number of segments, the transaction would revert as it wouldn't fit within a block. You can fetch the limit using you can find the limit for each chain [here](https://github.com/sablier-labs/lockup/blob/main/script/Base.s.sol#L90-L131). - The timestamps must be sorted in ascending order. It's not possible for the $(i-1)^{th}$ timestamp to be greater than $i^{th}$ timestamp (given that we're dealing with an increasing monotonic function). ## Examples A segment can be used to represent any monotonic increasing function. A few popular examples are highlighted below: ### Constant Curve (exp = 0) A constant segment follows the function $f(x) = c$. This is achieved with an exponent of 0. ```solidity LockupDynamic.Segment({ amount: amount, // Total amount in this segment exponent: ud2x18(0e18), // Exponent = 0 (constant) timestamp: endTime // End time of the segment }); ``` A constant curve can be used to unlock amount in tranches where the entire segment amount unlocks at the beginning or the end of the segment. ### Linear Curve (exp = 1) A linear segment follows the function $f(x) = cx$. This is achieved with an exponent of 1. ```solidity LockupDynamic.Segment({ amount: amount, // Total amount in this segment exponent: ud2x18(1e18), // Exponent = 1 (linear) timestamp: endTime // End time of the segment }); ``` A linear curve unlocks amount linearly over time. ### Accelerating Curve (exp > 1) A function $f(x) = cx^{exp} \mid exp > 1$ can be used to create a segment that unlocks slowly at the beginning and then quickly at the end. For example, an exponent of 2 unlocks 25% of the segment amount in the first 50% of the time and the remaining 75% in the last 50% of the time. ```solidity segments[0] = LockupDynamic.Segment({ amount: totalAmount, // Total amount in this segment exponent: ud2x18(2e18), // Exponent = 2 (Quadratic) timestamp: endTime // End time of the stream }); ``` As you may have realized, the higher the exponent, the steeper the curve gets at the end. For example, an exponent of 4 unlocks 6% of the segment amount in the first 50% of the time and the remaining 94% in the last 50% of the time. ### Decelerating Curve (exp < 1) A function $f(x) = cx^{exp} \mid 0 < exp < 1$ can be used to create a segment that unlocks quickly at the beginning and then slowly at the end. For example, an exponent of 0.2 unlocks 80% of the segment amount in the first 50% of the time and the remaining 20% in the last 50% of the time. ```solidity segments[0] = LockupDynamic.Segment({ amount: totalAmount, // Total amount in this segment exponent: ud2x18(0.3e18), // Exponent = 0.3 timestamp: endTime // End time of the stream }); ``` --- ## Tranches(Lockup) ## Definition Analogous to the segments in Dynamic streams, a Tranched stream is composed of multiple tranches with different amounts and durations. The protocol uses these tranches to enable traditional vesting curves with regular unlocks. Technically, a tranche is a [struct](/reference/lockup/contracts/types/library.LockupTranched#tranche) with two fields: | Field | Type | Description | | :-------- | :-------- | :------------------------------------------------------------------------------------------ | | Amount | `uint128` | The amount of tokens to be unlocked in a tranche, denoted in units of the token's decimals. | | Timestamp | `uint40` | The Unix timestamp indicating the tranche's end. | The distribution function of a Lockup tranched stream: $$ f(x) = \Sigma(eta) $$ Where: - $\Sigma(eta)$ is the sum of all vested tranches' amounts. ## Requirements - The sum of all tranche amounts must equal the deposit amount. - The block gas limit enforces a limit to how many tranches there can be in a stream. - If someone creates a stream with an excessively large number of tranches, the transaction would revert as it wouldn't fit within a block. You can fetch the limit using [MAX_TRANCHE_COUNT](/reference/lockup/contracts/contract.SablierLockup#max_count). Alternatively, you can find the limit for each chain [here](https://github.com/sablier-labs/lockup/blob/main/script/Base.s.sol#L90-L131). - The timestamps must be sorted in ascending order. It's not possible for the $(i-1)^{th}$ timestamp to be greater than $i^{th}$ timestamp (given that we're dealing with an increasing monotonic function). --- ## Statuses # Stream Statuses A Lockup stream can have one of five distinct statuses: | Status | Description | | ----------- | ----------------------------------------------------------------- | | `PENDING` | Stream created but not started; tokens are in a pending state. | | `STREAMING` | Active stream where tokens are currently being streamed. | | `SETTLED` | All tokens have been streamed; recipient is due to withdraw them. | | `CANCELED` | Canceled stream; remaining tokens await recipient's withdrawal. | | `DEPLETED` | Depleted stream; all tokens have been withdrawn and/or refunded. | ## Temperature A stream status can have one out of two "temperatures": | Temperature | Statuses | Description | | :---------- | :-------------------------- | :-------------------------------------------------------------- | | Warm | Pending, Streaming | The passage of time alone can change the status. | | Cold | Settled, Canceled, Depleted | The passage of time won’t affect the status anymore. | ## State transitions The following diagram illustrates the statuses and the allowed transitions between them: ```mermaid stateDiagram-v2 direction LR state Warm { Pending Streaming } state Cold { Settled Canceled Depleted } Null --> Pending Null --> Settled Pending --> Streaming Pending --> Settled Pending --> Canceled Streaming --> Settled Streaming --> Canceled Streaming --> Depleted Settled --> Depleted Canceled --> Depleted ``` ## Q&A ### Q: What is a null stream? A: An id that does not reference a created stream. Trying to interact with a null stream will result in a revert. ### Q: What to do with a stream status? A: Knowing the status of a stream can inform your decision making. For example, if a stream is canceled, you know that you can't cancel it again. Or, if a stream is depleted, you know that you can't withdraw any more tokens from it. ### Q: How can a stream enter the `SETTLED` status directly? A: This is a peculiarity of the [Lockup Dynamic](/concepts/lockup/stream-shapes#lockup-dynamic) streams. Segment amounts can be zero, and the segment milestones can be set in such a way that all non-zero segments are in the past. This will cause the stream to enter the `SETTLED` status directly. --- ## Hooks Hooks are arbitrary third-party functions that get automatically executed by the Sablier Protocol in response to `cancel` and `withdraw` events. They are similar to callback functions in web2. :::info Important Hooks have to be allowlisted before they can be run. Currently, only the [Protocol Admin](/concepts/governance) has permission to do this. In the future, we may decentralize this process through governance. ::: Hooks are a powerful feature that enable Sablier streams to interact with other DeFi protocols. Let's consider an example: You own a Sablier stream that expires in two years. You are interested into taking a loan against it with the intention to pay it all back after it expires. Hooks are what enable you to do that. With the help of Hooks, we can create an ecosystem of varied use cases for Sablier streams. This can range from lending, staking, credit, and more. It is worth noting that once a hook has been allowlisted, it can never be removed. This is to ensure stronger immutability and decentralization guarantees. Once a recipient contract is allowlisted, integrators do NOT have to trust us to keep their contract on the allowlist. ## Checklist The requirements a hook contract must meet: 1. The contract is not upgradeable. 2. The contract was audited by a third-party security researcher. 3. The contract implements `supportsInterface` and returns `true` for `0xf8ee98d3`, i.e., `type(ISablierLockupRecipient).interfaceId`. 4. If it implements `onSablierLockupCancel`: 1. It returns `ISablierLockupRecipient.onSablierLockupCancel.selector`. 1. It reverts if `msg.sender` is not the Lockup contract. 1. It uses input parameters correctly: `streamId`, `sender`, `senderAmount`, `recipientAmount`. 1. Be aware that if the call reverts, the entire `cancel` execution would revert too. 5. If it implements `onSablierLockupWithdraw`: 1. It returns `ISablierLockupRecipient.onSablierLockupWithdraw.selector`. 1. It reverts if `msg.sender` is not Lockup contract. 1. It uses input parameters correctly: `streamId`, `caller`, `to`, `amount`. 1. Be aware that if the call reverts, the entire `withdraw` execution would revert too. ## Visual representation :::note If the recipient contract is not on the Sablier allowlist, the hooks will not be executed. ::: ### Cancel hook ```mermaid sequenceDiagram actor Sender Sender ->> SablierLockup: cancel() SablierLockup -->> Recipient: onSablierLockupCancel() Recipient -->> SablierLockup: return selector SablierLockup -->> Sender: transfer unstreamed tokens break if hook reverts Recipient -->> SablierLockup: ❌ tx fail end ``` ### Withdraw hook ```mermaid sequenceDiagram actor Anyone Anyone ->> SablierLockup: withdraw() SablierLockup -->> Recipient: onSablierLockupWithdraw() Recipient -->> SablierLockup: return selector SablierLockup -->> Recipient: transfer streamed tokens break if hook reverts Recipient -->> SablierLockup: ❌ tx fail end ``` ## Next steps If you are interested into using Sablier hooks into your protocol, please check the [Hook guide](/guides/lockup/examples/hooks). If you are looking to get on the allowlist, reach out to us on [Discord](https://discord.sablier.com). --- ## Overview(3) # Sablier Lockup Welcome to the Sablier Lockup documentation. This section contains detailed guides and technical references for the Lockup protocol, a suite of smart contracts running autonomously in the Ethereum ecosystem. These documents offer insight into the operational nuances of the contracts, providing a valuable resource for building onchain integrations. # Guides If you are new to Sablier, we recommend you start with the [Concepts](/concepts/what-is-sablier) section first. You can then setup your [local environment](/guides/lockup/examples/local-environment) and create your [first stream](/guides/lockup/examples/create-stream/lockup-linear). # Reference For a deeper dive into the protocol specifications, read through the [technical reference](/reference/lockup/diagrams). # Versioning The product uses a unified versioning system across releases and NPM packages. Prior to Lockup v1.2, we used a different versioning scheme (V2.0, V2.1, V2.2), while the NPM package used a semantic versioning scheme (e.g., v1.0.2, v1.1.2). Since Lockup v1.2, the versioning has been unified into a single system for greater consistency across protocol releases and NPM packages. # Resources - [Source Code](https://github.com/sablier-labs/lockup/tree/release) - [Integration Templates](https://github.com/sablier-labs/lockup-integration-template) - [Examples](https://github.com/sablier-labs/examples/tree/main/lockup/) - [Foundry Book](https://book.getfoundry.sh/) --- ## Deployment Addresses # Lockup Deployments This section contains the deployment addresses for the v2.0 release of [@sablier/lockup](https://npmjs.com/package/@sablier/lockup). A few noteworthy details about the deployments: - The addresses are final - All contracts are non-upgradeable - The source code is verified on Etherscan across all chains :::info[important] The Lockup Periphery repo has been discontinued in favor of the new [Airdrops repo](/guides/airdrops/overview). ::: ## Versions Any updates or additional features will require a new deployment of the protocol, due to its immutable nature. Came here looking for the previous Lockup deployments? Click below to see other versions. | Version | Release Date | UI Aliases | | ------------------------------------------------ | ------------- | ---------------------------------------------------------------------- | | [v2.0](/guides/lockup/deployments) (latest) | February 2025 | `LK` (Lockup): all models have been merged into a single contract | | [v1.2](/guides/lockup/previous-deployments/v1.2) | July 2024 | `LD3` (Lockup Dynamic), `LL3` (Lockup Linear), `LT3` (Lockup Tranched) | | [v1.1](/guides/lockup/previous-deployments/v1.1) | December 2023 | `LD2` (Lockup Dynamic), `LL2` (Lockup Linear) | | [v1.0](/guides/lockup/previous-deployments/v1.0) | July 2023 | `LD` (Lockup Dynamic), `LL` (Lockup Linear) | Or maybe you're looking for Legacy? [Click here](/guides/legacy/deployments). :::info Stay up to date with any new releases by [subscribing](https://x.com/Sablier/status/1821220784661995627) to the official Sablier repositories on Github. ::: ## Mainnets ### Ethereum | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://etherscan.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xA9dC6878C979B5cc1d98a1803F0664ad725A1f56`](https://etherscan.io/address/0xA9dC6878C979B5cc1d98a1803F0664ad725A1f56) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x3F6E8a8Cffe377c4649aCeB01e6F20c60fAA356c`](https://etherscan.io/address/0x3F6E8a8Cffe377c4649aCeB01e6F20c60fAA356c) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x7C01AA3783577E15fD7e272443D44B92d5b21056`](https://etherscan.io/address/0x7C01AA3783577E15fD7e272443D44B92d5b21056) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://etherscan.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Abstract | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0x07c194dFE7DCe9Ae7Ffe4bF32683cf1F8CDD4aEa`](https://abscan.org/address/0x07c194dFE7DCe9Ae7Ffe4bF32683cf1F8CDD4aEa) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x63Ff2E370788C163D5a1909B5FCb299DB327AEF9`](https://abscan.org/address/0x63Ff2E370788C163D5a1909B5FCb299DB327AEF9) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x3409308357BB704f79f70d748da502F363Dc2f1D`](https://abscan.org/address/0x3409308357BB704f79f70d748da502F363Dc2f1D) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x14Eb4AB47B2ec2a71763eaBa202a252E176FAE88`](https://abscan.org/address/0x14Eb4AB47B2ec2a71763eaBa202a252E176FAE88) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0xbB2e2884AE40003BB55fd3A85A9f8f7f72Aa441F`](https://abscan.org/address/0xbB2e2884AE40003BB55fd3A85A9f8f7f72Aa441F) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Arbitrum | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://arbiscan.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xd5c6a0Dd2E1822865c308850b8b3E2CcE762D061`](https://arbiscan.io/address/0xd5c6a0Dd2E1822865c308850b8b3E2CcE762D061) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xB11Ead48F572155C5F8dB6201701e91A936896f7`](https://arbiscan.io/address/0xB11Ead48F572155C5F8dB6201701e91A936896f7) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x467D5Bf8Cfa1a5f99328fBdCb9C751c78934b725`](https://arbiscan.io/address/0x467D5Bf8Cfa1a5f99328fBdCb9C751c78934b725) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://arbiscan.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Avalanche | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://snowtrace.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x906A4BD5dD0EF13654eA29bFD6185d0d64A4b674`](https://snowtrace.io/address/0x906A4BD5dD0EF13654eA29bFD6185d0d64A4b674) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xABDE228d84D86D78029C31A37Ae2435C8f923c8b`](https://snowtrace.io/address/0xABDE228d84D86D78029C31A37Ae2435C8f923c8b) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x3C81BBBe72EF8eF3fb1D19B0bd6310Ad0dd27E82`](https://snowtrace.io/address/0x3C81BBBe72EF8eF3fb1D19B0bd6310Ad0dd27E82) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://snowtrace.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Base | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://basescan.org/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x87e437030b7439150605a641483de98672E26317`](https://basescan.org/address/0x87e437030b7439150605a641483de98672E26317) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xC26CdAFd6ec3c91AD9aEeB237Ee1f37205ED26a4`](https://basescan.org/address/0xC26CdAFd6ec3c91AD9aEeB237Ee1f37205ED26a4) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xb5D78DD3276325f5FAF3106Cc4Acc56E28e0Fe3B`](https://basescan.org/address/0xb5D78DD3276325f5FAF3106Cc4Acc56E28e0Fe3B) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://basescan.org/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Berachain | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://berascan.com/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x3bbE0a21792564604B0fDc00019532Adeffa70eb`](https://berascan.com/address/0x3bbE0a21792564604B0fDc00019532Adeffa70eb) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x75838C66Dfa2296bB9758f75fC7ad219718C8a88`](https://berascan.com/address/0x75838C66Dfa2296bB9758f75fC7ad219718C8a88) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xC19A2542156b5d7960e0eF46E9787E7d336cF428`](https://berascan.com/address/0xC19A2542156b5d7960e0eF46E9787E7d336cF428) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://berascan.com/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Blast | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://blastscan.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x959c412d5919b1Ec5D07bee3443ea68c91d57dd7`](https://blastscan.io/address/0x959c412d5919b1Ec5D07bee3443ea68c91d57dd7) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x193c2af965FEAca8D893c974712e5b6BD3cBc5ec`](https://blastscan.io/address/0x193c2af965FEAca8D893c974712e5b6BD3cBc5ec) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xDbB6e9653d7e41766712Db22eB08ED3F21009fdd`](https://blastscan.io/address/0xDbB6e9653d7e41766712Db22eB08ED3F21009fdd) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://blastscan.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### BNB Chain | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://bscscan.com/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x56831a5a932793E02251126831174Ab8Bf2f7695`](https://bscscan.com/address/0x56831a5a932793E02251126831174Ab8Bf2f7695) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xcf990fA3267F0945bBf7cf40A0c03F9dFE6a1804`](https://bscscan.com/address/0xcf990fA3267F0945bBf7cf40A0c03F9dFE6a1804) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x6E0baD2c077d699841F1929b45bfb93FAfBEd395`](https://bscscan.com/address/0x6E0baD2c077d699841F1929b45bfb93FAfBEd395) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://bscscan.com/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Chiliz | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0x6FcAB41e3b62d05aB4fC729586CB06Af2a2662D0`](https://scan.chiliz.com/address/0x6FcAB41e3b62d05aB4fC729586CB06Af2a2662D0) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x8A96f827082FB349B6e268baa0a7A5584c4Ccda6`](https://scan.chiliz.com/address/0x8A96f827082FB349B6e268baa0a7A5584c4Ccda6) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x179536f3289fb50076968b339C7EF0Dc0B38E3AF`](https://scan.chiliz.com/address/0x179536f3289fb50076968b339C7EF0Dc0B38E3AF) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x711900e5f55d427cd88e5E3FCAe54Ccf02De71F4`](https://scan.chiliz.com/address/0x711900e5f55d427cd88e5E3FCAe54Ccf02De71F4) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x84f092cf4D7D36C2d4987F672df81a39200a7146`](https://scan.chiliz.com/address/0x84f092cf4D7D36C2d4987F672df81a39200a7146) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Core Dao | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://scan.coredao.org/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xac0cf0f2a96ed7ec3cfa4d0be621c67adc9dd903`](https://scan.coredao.org/address/0xac0cf0f2a96ed7ec3cfa4d0be621c67adc9dd903) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x96dadeeab25413de04a1b8e40c4de41bd9d7fd29`](https://scan.coredao.org/address/0x96dadeeab25413de04a1b8e40c4de41bd9d7fd29) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x4fff53bfe86a0bd59a81c89d8ba84c67cf947764`](https://scan.coredao.org/address/0x4fff53bfe86a0bd59a81c89d8ba84c67cf947764) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://scan.coredao.org/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Form | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://explorer.form.network/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x6Ef33eeCE9D3B04B1A954C0c94F09808C81512c8`](https://explorer.form.network/address/0x6Ef33eeCE9D3B04B1A954C0c94F09808C81512c8) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x74759072f464F6600E7563DcC2828A2dE8111840`](https://explorer.form.network/address/0x74759072f464F6600E7563DcC2828A2dE8111840) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xa2dD5E785AA0225D681416884D395c7E22D92850`](https://explorer.form.network/address/0xa2dD5E785AA0225D681416884D395c7E22D92850) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://explorer.form.network/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Gnosis | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://gnosisscan.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x3140a6900AA2FF3186730741ad8255ee4e6d8Ff1`](https://gnosisscan.io/address/0x3140a6900AA2FF3186730741ad8255ee4e6d8Ff1) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xe89EE0b2B31A296C5cCb631C3670F94bDD64a0D2`](https://gnosisscan.io/address/0xe89EE0b2B31A296C5cCb631C3670F94bDD64a0D2) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x007aF5dC7b1CaA66Cf7Ebcc01E2e6ba4D55D3e92`](https://gnosisscan.io/address/0x007aF5dC7b1CaA66Cf7Ebcc01E2e6ba4D55D3e92) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://gnosisscan.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### HyperEVM | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xe2f66eEe2E227c40074668ba53021423ED7D4ea1`](https://hyperevmscan.io/address/0xe2f66eEe2E227c40074668ba53021423ED7D4ea1) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x7263d77e9e872f82A15e5E1a9816440D23758708`](https://hyperevmscan.io/address/0x7263d77e9e872f82A15e5E1a9816440D23758708) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x5444eA1B8B636A8FdF7cE814077E664c28dE30Ec`](https://hyperevmscan.io/address/0x5444eA1B8B636A8FdF7cE814077E664c28dE30Ec) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x856167EE3e09Ba562d69A542Ab6A939903ad738e`](https://hyperevmscan.io/address/0x856167EE3e09Ba562d69A542Ab6A939903ad738e) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0xf91e1a8fA643F8062C12Ca2865f1eb2258d6422F`](https://hyperevmscan.io/address/0xf91e1a8fA643F8062C12Ca2865f1eb2258d6422F) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### IoTeX | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xAe60adf8D373523076F68941A6C48dF4C18C68ef`](https://iotexscan.io/address/0xAe60adf8D373523076F68941A6C48dF4C18C68ef) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xf9920809bf97Fc038bdB8c5c2C2D100036d7cc8c`](https://iotexscan.io/address/0xf9920809bf97Fc038bdB8c5c2C2D100036d7cc8c) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x5F448badebB50b9da6589C57B999725dc514B5D5`](https://iotexscan.io/address/0x5F448badebB50b9da6589C57B999725dc514B5D5) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xcaF51434a0af3c43Cd5569bC5eCc5aa21d28086E`](https://iotexscan.io/address/0xcaF51434a0af3c43Cd5569bC5eCc5aa21d28086E) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0xe3247c554200C2dFf6Ba3c2Ea5b2F5a50dbf6B32`](https://iotexscan.io/address/0xe3247c554200C2dFf6Ba3c2Ea5b2F5a50dbf6B32) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Lightlink | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://phoenix.lightlink.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xCFB5F90370A7884DEc59C55533782B45FA24f4d1`](https://phoenix.lightlink.io/address/0xCFB5F90370A7884DEc59C55533782B45FA24f4d1) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xe8fa70D0172BB36c952E3e20e2f3550Ca4557761`](https://phoenix.lightlink.io/address/0xe8fa70D0172BB36c952E3e20e2f3550Ca4557761) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x6c65aAf03186d1DA60127D3d7792cF36eD99D909`](https://phoenix.lightlink.io/address/0x6c65aAf03186d1DA60127D3d7792cF36eD99D909) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://phoenix.lightlink.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Linea Mainnet | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0x058aD99662FE7ecB8c3109920C99439a302b6573`](https://lineascan.build/address/0x058aD99662FE7ecB8c3109920C99439a302b6573) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x1514a869D29a8B22961e8F9eBa3DC64000b96BCe`](https://lineascan.build/address/0x1514a869D29a8B22961e8F9eBa3DC64000b96BCe) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xEdf0A4b30defD14449604d1b97e2c39128c136CA`](https://lineascan.build/address/0xEdf0A4b30defD14449604d1b97e2c39128c136CA) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x6964252561e8762dD10267176EaC5078b6291e51`](https://lineascan.build/address/0x6964252561e8762dD10267176EaC5078b6291e51) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0xdEe57959770667d97A90C94fE70C055496B7a791`](https://lineascan.build/address/0xdEe57959770667d97A90C94fE70C055496B7a791) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Mode | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://modescan.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x64e7879558b6dfE2f510bd4b9Ad196ef0371EAA8`](https://modescan.io/address/0x64e7879558b6dfE2f510bd4b9Ad196ef0371EAA8) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x34dBab20FD097F63DDbf3092D83B1005D2573082`](https://modescan.io/address/0x34dBab20FD097F63DDbf3092D83B1005D2573082) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x3aEbaDFC423fD08BE4715986F68D5E9A597ec974`](https://modescan.io/address/0x3aEbaDFC423fD08BE4715986F68D5E9A597ec974) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://modescan.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Morph | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://explorer.morphl2.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x660314f09ac3B65E216B6De288aAdc2599AF14e2`](https://explorer.morphl2.io/address/0x660314f09ac3B65E216B6De288aAdc2599AF14e2) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x081BBbd4861BaBACE3E7eDC8a45741129DfC02fE`](https://explorer.morphl2.io/address/0x081BBbd4861BaBACE3E7eDC8a45741129DfC02fE) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xF3cd08105b6745965149eF02b8aBdCEa0Ae51241`](https://explorer.morphl2.io/address/0xF3cd08105b6745965149eF02b8aBdCEa0Ae51241) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://explorer.morphl2.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### OP Mainnet | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://optimistic.etherscan.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x41dBa1AfBB6DF91b3330dc009842327A9858Cbae`](https://optimistic.etherscan.io/address/0x41dBa1AfBB6DF91b3330dc009842327A9858Cbae) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x0c4Cd6087DbFa3F74661BAbbFaa35273baC1c4b1`](https://optimistic.etherscan.io/address/0x0c4Cd6087DbFa3F74661BAbbFaa35273baC1c4b1) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x822e9c4852E978104d82F0f785bFA663c2b700c1`](https://optimistic.etherscan.io/address/0x822e9c4852E978104d82F0f785bFA663c2b700c1) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://optimistic.etherscan.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Polygon | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://polygonscan.com/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xf5e12d0bA25FCa0D738Ec57f149736B2e4C46980`](https://polygonscan.com/address/0xf5e12d0bA25FCa0D738Ec57f149736B2e4C46980) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x1aDd9385F2C5c8e446bbB77c7A36839aB7743AF4`](https://polygonscan.com/address/0x1aDd9385F2C5c8e446bbB77c7A36839aB7743AF4) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xE0BFe071Da104e571298f8b6e0fcE44C512C1Ff4`](https://polygonscan.com/address/0xE0BFe071Da104e571298f8b6e0fcE44C512C1Ff4) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://polygonscan.com/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Scroll | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://scrollscan.com/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x00Ff6443E902874924dd217c1435e3be04f57431`](https://scrollscan.com/address/0x00Ff6443E902874924dd217c1435e3be04f57431) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x8234Ad3CC4D29a4619C36a15286dac73078672a8`](https://scrollscan.com/address/0x8234Ad3CC4D29a4619C36a15286dac73078672a8) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xcB0B1f1D116eD62135848d8C90EB61afDA936Da8`](https://scrollscan.com/address/0xcB0B1f1D116eD62135848d8C90EB61afDA936Da8) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://scrollscan.com/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Sei Network | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://seitrace.com/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xeaFB40669fe3523b073904De76410b46e79a56D7`](https://seitrace.com/address/0xeaFB40669fe3523b073904De76410b46e79a56D7) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x34686937bef23c6441248Cc5A63A79a3a707e7E4`](https://seitrace.com/address/0x34686937bef23c6441248Cc5A63A79a3a707e7E4) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x736A6E895790e089aEC2Bf76B2D7f368ce6Efff5`](https://seitrace.com/address/0x736A6E895790e089aEC2Bf76B2D7f368ce6Efff5) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://seitrace.com/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Sonic | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://sonicscan.org/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xAE8FE47765f88e0A2D7E8fbaf33583DBf0373f01`](https://sonicscan.org/address/0xAE8FE47765f88e0A2D7E8fbaf33583DBf0373f01) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xc91b20dC29E19120BF3f54277947327AfD50fBa2`](https://sonicscan.org/address/0xc91b20dC29E19120BF3f54277947327AfD50fBa2) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xc37462eE6500D2C36c9131b921fAADBD6cb7B60b`](https://sonicscan.org/address/0xc37462eE6500D2C36c9131b921fAADBD6cb7B60b) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://sonicscan.org/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Sophon | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0x424B27529B49EF4Bfa0727aFcFE4387Ac2932944`](https://explorer.sophon.xyz/address/0x424B27529B49EF4Bfa0727aFcFE4387Ac2932944) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xAc2E42b520364940c90Ce164412Ca9BA212d014B`](https://explorer.sophon.xyz/address/0xAc2E42b520364940c90Ce164412Ca9BA212d014B) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x7282d83E49363f373102d195F66649eBD6C57B9B`](https://explorer.sophon.xyz/address/0x7282d83E49363f373102d195F66649eBD6C57B9B) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x28fCAE6bda2546C93183EeC8638691B2EB184003`](https://explorer.sophon.xyz/address/0x28fCAE6bda2546C93183EeC8638691B2EB184003) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x9971914DA16787F6cCfb27bEfB4404e33C8b869D`](https://explorer.sophon.xyz/address/0x9971914DA16787F6cCfb27bEfB4404e33C8b869D) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Superseed | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://explorer.superseed.xyz/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xa4576b58Ec760A8282D081dc94F3dc716DFc61e9`](https://explorer.superseed.xyz/address/0xa4576b58Ec760A8282D081dc94F3dc716DFc61e9) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x89e9F2473836d9ab7D28Df6F180E30992b8CB5d6`](https://explorer.superseed.xyz/address/0x89e9F2473836d9ab7D28Df6F180E30992b8CB5d6) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xF46D1f8C85f215A515F6D738ab3E3bA081f6C083`](https://explorer.superseed.xyz/address/0xF46D1f8C85f215A515F6D738ab3E3bA081f6C083) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://explorer.superseed.xyz/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Taiko | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://taikoscan.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x79F1fD8bB2D455f64010063Fc79E27561980FE10`](https://taikoscan.io/address/0x79F1fD8bB2D455f64010063Fc79E27561980FE10) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xcBbA08768C4a9D9131dE0467Ae136b8450dC13B2`](https://taikoscan.io/address/0xcBbA08768C4a9D9131dE0467Ae136b8450dC13B2) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x628E88cDF558c0F4796c8CeB5068a023a7159aA7`](https://taikoscan.io/address/0x628E88cDF558c0F4796c8CeB5068a023a7159aA7) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://taikoscan.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Tangle | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0x3D664B2Da905DDD0Db931982FD9a759ea950D6e1`](https://explorer.tangle.tools/address/0x3D664B2Da905DDD0Db931982FD9a759ea950D6e1) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a`](https://explorer.tangle.tools/address/0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xF5AC60870E1CCc4Bfce23cfbb7a796A0d8dBAf47`](https://explorer.tangle.tools/address/0xF5AC60870E1CCc4Bfce23cfbb7a796A0d8dBAf47) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x1cAe76b71913598d7664d16641CCB6037d8Ed61a`](https://explorer.tangle.tools/address/0x1cAe76b71913598d7664d16641CCB6037d8Ed61a) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x9EfC8663cAB0e2d97ad17C9fbfc8392445517E94`](https://explorer.tangle.tools/address/0x9EfC8663cAB0e2d97ad17C9fbfc8392445517E94) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Unichain | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076e4fb5cfe8be1c26e61222dc51828db8c1dc`](https://uniscan.xyz/address/0xf8076e4fb5cfe8be1c26e61222dc51828db8c1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xa5F12D63E18a28C9BE27B6f3d91ce693320067ba`](https://uniscan.xyz/address/0xa5F12D63E18a28C9BE27B6f3d91ce693320067ba) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xaf875A2bDb74bA8872292FC371131eb45a9b570C`](https://uniscan.xyz/address/0xaf875A2bDb74bA8872292FC371131eb45a9b570C) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x26C341C4D79bA8F6BFB450a49E9165c936316B14`](https://uniscan.xyz/address/0x26C341C4D79bA8F6BFB450a49E9165c936316B14) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522ca06ce080800ab59ba4c091e63f6f54c5e6d`](https://uniscan.xyz/address/0x5522ca06ce080800ab59ba4c091e63f6f54c5e6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### XDC | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076e4fb5cfe8be1c26e61222dc51828db8c1dc`](https://xdcscan.com/address/0xf8076e4fb5cfe8be1c26e61222dc51828db8c1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x4c1311a9d88BFb7023148aB04F7321C2E91c29bf`](https://xdcscan.com/address/0x4c1311a9d88BFb7023148aB04F7321C2E91c29bf) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x6d36227Dd84e2A3d898B192Bc82a005c3cc2320C`](https://xdcscan.com/address/0x6d36227Dd84e2A3d898B192Bc82a005c3cc2320C) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x489e0DC5E62A751A2b209f1cC03E189fd6257176`](https://xdcscan.com/address/0x489e0DC5E62A751A2b209f1cC03E189fd6257176) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522ca06ce080800ab59ba4c091e63f6f54c5e6d`](https://xdcscan.com/address/0x5522ca06ce080800ab59ba4c091e63f6f54c5e6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### ZKsync Era | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0x37De3Fc44a07A40411AD0Cea4310990C9F88c1C1`](https://era.zksync.network//address/0x37De3Fc44a07A40411AD0Cea4310990C9F88c1C1) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xCB2d53c58496C2aA114bce4ED5C7fe768ce86542`](https://era.zksync.network//address/0xCB2d53c58496C2aA114bce4ED5C7fe768ce86542) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xCC926359DBE6b6311D63f8155fcC3B57F3fAAE80`](https://era.zksync.network//address/0xCC926359DBE6b6311D63f8155fcC3B57F3fAAE80) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x7BCcB3595Aa81Dbe8A69DD8C46f5C2A3cf76594A`](https://era.zksync.network//address/0x7BCcB3595Aa81Dbe8A69DD8C46f5C2A3cf76594A) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0xEE4a32E026aC2FD6BF71d9D7eB00803576aD314d`](https://era.zksync.network//address/0xEE4a32E026aC2FD6BF71d9D7eB00803576aD314d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ## Testnets ### Arbitrum Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://sepolia.arbiscan.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x8224eb5D7d76B2D7Df43b868D875E79B11500eA8`](https://sepolia.arbiscan.io/address/0x8224eb5D7d76B2D7Df43b868D875E79B11500eA8) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xbf85cD17cA59b7A2b81d3D776cE1602a7C0aF9D9`](https://sepolia.arbiscan.io/address/0xbf85cD17cA59b7A2b81d3D776cE1602a7C0aF9D9) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x83Dd52FCA44E069020b58155b761A590F12B59d3`](https://sepolia.arbiscan.io/address/0x83Dd52FCA44E069020b58155b761A590F12B59d3) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://sepolia.arbiscan.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Base Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://sepolia.basescan.org/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xCA2593027BA24856c292Fdcb5F987E0c25e755a4`](https://sepolia.basescan.org/address/0xCA2593027BA24856c292Fdcb5F987E0c25e755a4) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xEdc716E9672f672456d22b02532395c1e62B8C16`](https://sepolia.basescan.org/address/0xEdc716E9672f672456d22b02532395c1e62B8C16) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xa4777CA525d43a7aF55D45b11b430606d7416f8d`](https://sepolia.basescan.org/address/0xa4777CA525d43a7aF55D45b11b430606d7416f8d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://sepolia.basescan.org/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Blast Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://sepolia.blastscan.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xF0182C7c0F155CdB49B575cFB5Fe7b3cE94D2234`](https://sepolia.blastscan.io/address/0xF0182C7c0F155CdB49B575cFB5Fe7b3cE94D2234) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x30FC3D5b53e17edbC72d0a488f10C0eD3d7b0893`](https://sepolia.blastscan.io/address/0x30FC3D5b53e17edbC72d0a488f10C0eD3d7b0893) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x3fC9E80478c65759a8273CD9dFe2D7011b45164E`](https://sepolia.blastscan.io/address/0x3fC9E80478c65759a8273CD9dFe2D7011b45164E) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://sepolia.blastscan.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Linea Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0x058aD99662FE7ecB8c3109920C99439a302b6573`](https://sepolia.lineascan.build/address/0x058aD99662FE7ecB8c3109920C99439a302b6573) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xCE94BE25320A51Ac868d0C133c251aE10682DabD`](https://sepolia.lineascan.build/address/0xCE94BE25320A51Ac868d0C133c251aE10682DabD) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x9A987181BF05b7C154118A3216d522fa2407a8Be`](https://sepolia.lineascan.build/address/0x9A987181BF05b7C154118A3216d522fa2407a8Be) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xbb4A14868A4BEc78b7354582b8C818ba520d7A4E`](https://sepolia.lineascan.build/address/0xbb4A14868A4BEc78b7354582b8C818ba520d7A4E) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0xdEe57959770667d97A90C94fE70C055496B7a791`](https://sepolia.lineascan.build/address/0xdEe57959770667d97A90C94fE70C055496B7a791) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Mode Testnet | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://sepolia.explorer.mode.network/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xdd695e927b97460c8d454d8f6d8cd797dcf1fcfd`](https://sepolia.explorer.mode.network/address/0xdd695e927b97460c8d454d8f6d8cd797dcf1fcfd) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xaD2f0228369D71605cd19c33FfA2Dde85A2FE477`](https://sepolia.explorer.mode.network/address/0xaD2f0228369D71605cd19c33FfA2Dde85A2FE477) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xF56b79523FD0b4A6c9bf4e6F7a3Ea45dC0fB5bBC`](https://sepolia.explorer.mode.network/address/0xF56b79523FD0b4A6c9bf4e6F7a3Ea45dC0fB5bBC) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://sepolia.explorer.mode.network/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### OP Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://optimism-sepolia.blockscout.com/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xDf6163ddD3Ebcb552Cc1379a9c65AFe68683534e`](https://optimism-sepolia.blockscout.com/address/0xDf6163ddD3Ebcb552Cc1379a9c65AFe68683534e) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xF7BA8a7dc96d1939b789b91865bdb05596EBB558`](https://optimism-sepolia.blockscout.com/address/0xF7BA8a7dc96d1939b789b91865bdb05596EBB558) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x1f898895eAB949FfD34c29Cf859C035DC4525DF4`](https://optimism-sepolia.blockscout.com/address/0x1f898895eAB949FfD34c29Cf859C035DC4525DF4) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://optimism-sepolia.blockscout.com/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://sepolia.etherscan.io/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x08D3C81626d9Cb19760835e8730Ec0D3F1899976`](https://sepolia.etherscan.io/address/0x08D3C81626d9Cb19760835e8730Ec0D3F1899976) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xB655ecD83D27f7c683A9605783bd2866a4dCEB04`](https://sepolia.etherscan.io/address/0xB655ecD83D27f7c683A9605783bd2866a4dCEB04) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xd116c275541cdBe7594A202bD6AE4DBca4578462`](https://sepolia.etherscan.io/address/0xd116c275541cdBe7594A202bD6AE4DBca4578462) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://sepolia.etherscan.io/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Superseed Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://sepolia-explorer.superseed.xyz/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0xc5D8E4317CE4a2E323192A5d856C90372bDE1558`](https://sepolia-explorer.superseed.xyz/address/0xc5D8E4317CE4a2E323192A5d856C90372bDE1558) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0xB2C6C57ee10B88E8344f34ffeCe39B0C6573c23D`](https://sepolia-explorer.superseed.xyz/address/0xB2C6C57ee10B88E8344f34ffeCe39B0C6573c23D) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0x4E83EC1Ea3B885C1a3698dA7DC42F32575688ABE`](https://sepolia-explorer.superseed.xyz/address/0x4E83EC1Ea3B885C1a3698dA7DC42F32575688ABE) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://sepolia-explorer.superseed.xyz/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | ### Taiko Hekla | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | Helpers | [`0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc`](https://hekla.taikoscan.network/address/0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | LockupNFTDescriptor | [`0x4a92Ca0a777fd781B3aA1d7925Ad54B64C85eedE`](https://hekla.taikoscan.network/address/0x4a92Ca0a777fd781B3aA1d7925Ad54B64C85eedE) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierBatchLockup | [`0x5F62Be3b60c3Dc3D49e96Ee8390Fea2930A3E01b`](https://hekla.taikoscan.network/address/0x5F62Be3b60c3Dc3D49e96Ee8390Fea2930A3E01b) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | SablierLockup | [`0xa969f0CCc080dfd513Eb7175248df68364701fC2`](https://hekla.taikoscan.network/address/0xa969f0CCc080dfd513Eb7175248df68364701fC2) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | | VestingMath | [`0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d`](https://hekla.taikoscan.network/address/0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d) | [`lockup-v2.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v2.0) | --- ## Gas Benchmarks The gas usage of the Lockup protocol is not deterministic and varies by user. Calls to third-party contracts, such as ERC-20 tokens, may use an arbitrary amount of gas. The values in the table below are rough estimations on Ethereum mainnet - you shouldn't take them for granted. The gas usage may vary depending on the network. :::note The benchmarks were generated using the code in this GitHub repository. ::: ## BatchLockup ## LockupLinear streams ## LockupDynamic streams ## LockupTranched streams --- ## Etherscan Operations # Etherscan: Manual Operations ## Introduction Just like any other open protocol, Lockup can be interacted with directly through a blockchain explorer like Etherscan. In this guide, we will show you how to create a stream and withdraw from a stream by manually interacting with the Lockup Core contracts on Etherscan. If you're interested in interacting with V1, please refer to this [article](https://blog.sablier.com/operating-the-sablier-v1-protocol-manually/). ## Creating a Stream ### Prerequisites Before being able to create a stream using the Lockup Core contracts you need to have granted a sufficient token allowance. See the [Allowances](#prerequisite-erc20-allowances) section below for a guide on how to do that. ### Step 1: Go to contract page Head over to our [deployments](/guides/lockup/deployments) list to pick the contract address you want to interact with. In this tutorial, we will create a Lockup stream on Ethereum Sepolia. Once you find the right contract, click on the address to access its explorer's page. Click on the "Contract" tab, and then on the "Write Contract" sub-tab. ![Etherscan 01](/img/etherscan-tutorial/01.webp) ![Etherscan 02](/img/etherscan-tutorial/02.webp) You can now connect your wallet to the interface by clicking on "Connect to Web3". ![Etherscan 03](/img/etherscan-tutorial/03.webp) ### Step 2: Fill in parameters We will now proceed to create our first stream. Let's go with the following parameters: - a Lockup Linear stream - and a deposit of 100 DAI - starting Jan 27, 2025 - ending Jan 27, 2026 - with cliff until Jan 30, 2025 and cliff amount of 2 DAI - no token unlock at start time - non-cancelable - and transferrable As the start and end date are fixed, we'll be using the [`createwithtimestampsLL`](/reference/lockup/contracts/interfaces/interface.ISablierLockup#createwithtimestampsll) method. Please note that using [`createwithdurationsLL`](/reference/lockup/contracts/interfaces/interface.ISablierLockup#createwithdurationsll) is also possible if you specify durations instead of the timestamps. Open the **"createwithtimestampsLL"** method, and start filling in the stream details: :::note All functions are marked as `payable`, however, its entirely optional to attach any value (in native token) to the transaction. For this example, we will not be attaching any value and therefore `payableAmount(ether)` will be 0. ::: ![Etherscan 04](/img/etherscan-tutorial/04.webp) ```json { "sender": "0xf26994E6Af0b95cCa8DFA22A0BC25E1f38a54C42", "recipient": "0xb4bf8a8475d1e8e9a2088f118ad0e2cdc2896183", "totalAmount": 100000000000000000000, "token": "0x3DcBc355c5B5FdF45D2d2ccc8890d76C5b30394A", "cancelable": false, "transferable": true, "timestamps": [1737936000, 1769472000], "shape": "", "broker": ["0x0000000000000000000000000000000000000000", 0], "unlockAmounts": ["0", "2000000000000000000"], "cliffTime": 1738195200 } ``` If the Etherscan UI does not break down the inputs into separate fields (like in the screenshot above), you will have to provide it like this: ```json [ "0xf26994E6Af0b95cCa8DFA22A0BC25E1f38a54C42", "0xb4bf8a8475d1e8e9a2088f118ad0e2cdc2896183", 100000000000000000000, "0x3DcBc355c5B5FdF45D2d2ccc8890d76C5b30394A", false, true, [1737936000, 1769472000], "", ["0x0000000000000000000000000000000000000000", 0], ["0", "2000000000000000000"], 1738195200 ] ``` :::tip In case of a tuple, ensure to follow the best practices: 1. Use square brackets 2. Wrap addresses in double quotes 3. Wrap large numbers in quotes Follow [this guide](https://info.etherscan.com/understanding-the-required-input-formats-for-read-write-contract-tab/) from Etherscan to learn how to correctly format input data for Write Contract tab. ::: As an example, in the screenshot below, we are providing input parameters for [`createWithTimestampsLL`](/reference/lockup/contracts/contract.SablierBatchLockup#createwithtimestampsll) function in [`SablierBatchLockup`](https://sepolia.etherscan.io/address/0x04A9c14b7a000640419aD5515Db4eF4172C00E31#writeContract) contract. As you can see, since `batch` requires a tuple and does not break it down into separate fields, we had to use the above method. ![Etherscan 08](/img/etherscan-tutorial/08.webp) #### Sender If the stream is cancelable, the sender is the wallet that will have the ability to cancel and renounce the stream. But if the stream is non-cancelable, the sender cannot cancel the stream. Most users will set their own wallet address as the sender. #### Recipient The address you want to stream tokens to. The owner of this address is the stream recipient and will receive tokens on [withdraw](#withdrawing-from-a-stream). #### Total Amount This is the total amount of tokens available to be streamed, **DECIMALS INCLUDED**. If the asset has 18 decimals, for example, you will need to add eighteen zeros after the amount. Let's say you want to stream 20,000 DAI like in this example, you will need to fill in `20000000000000000000000`. :::note The total amount will also include any [broker fee](/concepts/fees). While fees are kept at zero in Sablier UI, the total amount should be equal to the streamed amount plus the broker fee amount. ::: #### Token The token is the contract address of the ERC-20 token being streamed. You can obtain this from the [Sablier Interface](#step-1-go-to-token-page) or from [Etherscan explorer](https://sepolia.etherscan.io/token/0x776b6fc2ed15d6bb5fc32e0c89de68683118c62a). Please double check the token address is correct before continuing. #### Cancelable This field indicates whether or not you want the stream to be cancelable. This can be set to either `true` or `false`. If set to true, the stream will be cancelable. You can make a cancelable stream non-cancelable after the stream has been created, but if it's a non-cancelable stream, it cannot become cancelable post-creation. #### Transferable The `transferable` field indicates whether the NFT owner is allowed to transfer te NFT or not. This can be set to either `true` or `false`. This flag cannot be changed later. #### Timestamps The `timestamps` field contains the start time, and the end time of the stream, in this order. The values should be UNIX timestamps (represented in **seconds**). You can find a Unix timestamp converter [here](https://www.unixtimestamp.com/). #### Shape The shape field can be used to specify the shape of the stream that you want the User Interface to display. This is an optional field and can be left empty. #### Broker An optional parameter that can be set in order to charge a fee as a percentage of `totalAmount`. You can set the `broker` field to address zero and `zero` fees. Read more about fees [here](/concepts/glossary#broker-fee). #### Unlock Amounts The `unlockAmounts` field contains the amount of tokens that will be unlocked at the start time and at the cliff time. For this example, we do not want to unlock any amount at the start time, however, we want to unlock 2 DAI at the cliff time. #### Cliff Time If you prefer to not have a cliff, you can simply set the cliff time to 0. If, however, you want to have a cliff, fill in the timestamp for the cliff there. :::caution Inside tuples/arrays (the `[ ... ]` structures in the example) make sure that you: - Use square brackets - Wrap addresses in double quotes, i.e. `" "` ::: Once the data is filled, and after you double-checked, click on the "Write" button and confirm the transaction in your wallet. That's all! You are done. You can now head over to the [Sablier Interface](https://app.sablier.com), connect your wallet, and your stream should appear like this: ![Etherscan 05](/img/etherscan-tutorial/05.webp) #### How about [`createWithDurationsLL`](/reference/lockup/contracts/contract.SablierLockup#createwithdurationsll)? For the durations version, we'll replace the `timestamps` and `cliffTime` parameters with a single `durations` parameter to represent the total duration of the stream (in seconds) and the duration of the cliff (in seconds). ```json { "durations": [0, 864000] // no cliff and a total duration of 10 days } ``` | Total Duration | Cliff Duration | [Cliff, Total] | | :------------- | :------------- | ----------------- | | 10 days | no cliff | `[0, 864000]` | | 10 days | 1 day | `[86400, 864000]` | ## Withdrawing from a Stream ### Prerequisites To withdraw from a stream using Etherscan, you will need to obtain the stream's ID. To obtain this without the Sablier Interface, find the transaction which created the stream on Etherscan. Here's an [example](https://sepolia.etherscan.io/tx/0xf40e0a5ccf134aaa889f2e5d040f5f4fc3bc157298cdac7a2a620a3d784ebbd1) of what it should look like. Once found, you will see the stream ID between the two brackets. Note that stream ID and "Token ID" are the same thing. :::info Anyone can withdraw on your behalf if they pay the gas fee. When a third party withdraws, the recipient is the only allowed withdrawal address. However, if you withdraw yourself, you can choose to withdraw to any other address. You can read more about this advanced feature [here](/reference/lockup/access-control#overview). ::: ![Etherscan 06](/img/etherscan-tutorial/06.webp) ### Step 1: Go to contract page Head over to our [deployments](/guides/lockup/deployments) list and select the contract address you want to interact with. Once you find the right contract, click on the address to access its explorer's page. Click on the "Contract" tab, and then on the "Write Contract" sub-tab. ![Etherscan 01](/img/etherscan-tutorial/01.webp) ![Etherscan 02](/img/etherscan-tutorial/02.webp) You can now connect your wallet to the interface by clicking on "Connect to Web3". ![Etherscan 03](/img/etherscan-tutorial/03.webp) ### Step 2: Fill in parameters Head over to the **`withdraw`** method, and fill in the data. ![Etherscan 07](/img/etherscan-tutorial/07.webp) ```json { "streamId": 1, "to": "0xb1bEF51ebCA01EB12001a639bDBbFF6eEcA12B9F", "amount": 100000000000000000000 } ``` #### Stream ID The `streamId` is the value you have previously located in the transaction in which the stream was created. #### To The `to` field is there for the stream recipient's address. This will most likely be your own wallet, but you can also choose to withdraw these funds to another wallet (e.g. a separate cold wallet) if you are the stream's recipient. If you are not the stream recipient, it MUST be the address of the recipient. #### Amount This represents the amount of tokens that you want to withdraw, **DECIMALS INCLUDED**. For example, if the token you are looking to withdraw has 18 decimals, you will need to add eighteen zeros after the amount. Let's say you want to withdraw 100 DAI like in this example, you will need to put in `100000000000000000000`. Oh, and make sure that that amount has already been streamed, you cannot withdraw funds that haven't yet been streamed over to you. Once ready, click on the "Write" button, and confirm the transaction in your wallet. You are done! --- Apart from the main flows, you may be required to do some other actions, usually listed as prerequisites. ## Prerequisite: ERC20 Allowances Before interacting directly with the Lockup [contracts](/guides/lockup/deployments) to [create a stream](#creating-a-stream) you will need to manually grant proper ERC20 allowances. ### Step 1: Go to token page Pick a token you want to stream, e.g. [DAI](https://sepolia.etherscan.io/token/0x68194a729C2450ad26072b3D33ADaCbcef39D574). Using its address, visit the token page on Etherscan (in this example, we're using Ethereum Sepolia): `https://sepolia.etherscan.io/token/` :::info To get the address of an asset in the [Sablier Interface](/apps/features/overview), you can click on its name in the token list dialog or find an existing stream with that token and click on the icon inside the stream circle. ![Etherscan 09](/img/etherscan-tutorial/09.webp) ![Etherscan 10](/img/etherscan-tutorial/10.webp) ::: ### Step 2: Go to `approve` Next, look for the "Contract" tab and the "Write Contract" sub-tab. You'll see a list of methods that can be called for that token. Pick the `approve` method (e.g. [DAI's approve](https://sepolia.etherscan.io/token/0x68194a729C2450ad26072b3D33ADaCbcef39D574#writeContract#F1)). Most ERC-20 approve methods will contain two fields: 1. The spender 2. The amount :::tip Some tokens like [USDC](https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48?a=#writeProxyContract) or [AAVE](https://etherscan.io/token/0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9?a=#writeProxyContract) are upgradeable and use a proxy pattern. For these, you have to use the "Write as Proxy" tab. ::: ### Step 3: Send transaction For the purpose of creating a **LockupLinear** stream with Lockup, the spender will be the [SablierLockup](/guides/lockup/deployments) contract. As for the amount, you'll have to pad it with the right number of decimals. For DAI, that's 18 decimals, so a value of `100` will turn into `100 * 1e18` (100 followed by 18 zeroes). For USDC,that's 6 decimals, so a value of `100` will turn into `100 * 1e8` (100 followed by 8 zeroes). The same logic applies to the [total amounts](#total-amount) when creating the stream. ```json { "spender": "0xd116c275541cdBe7594A202bD6AE4DBca4578462", "amount": 100000000000000000000 } ``` ![Etherscan 11](/img/etherscan-tutorial/11.webp) Before clicking on the "Write" button to submit your allowance update, make sure to connect your wallet to the interface by clicking on "Connect to Web3". --- ## Configure Your Local Environment In this guide, we will go through the steps to set up a local development environment for building onchain integrations with {props.protocol}. We will use Foundry to install {props.protocol} as a dependency, and run a simple test. At the end, you’ll have a development environment set up that you can use to build the rest of the examples under "Guides", or start your own integration project. ## Pre-requisites You will need the following software on your machine: - Git - Foundry - Node.js - Bun In addition, familiarity with Ethereum and Solidity is requisite. ## Set up using integration template :::tip Make sure you are using the latest version of Foundry by running `foundryup`. ::: We put together a template repository that you can use to get started quickly. This repository features a basic project structure, pre-configured {props.protocol} imports, and a selection of sample contracts and tests. To install the template, simply execute the following commands: {`$ mkdir ${props.protocol.toLowerCase()}-integration-template $ cd ${props.protocol.toLowerCase()}-integration-template $ forge init --template sablier-labs/${props.protocol.toLowerCase()}-integration-template $ bun install`} Then, hop to the Run a Fork Test section to complete your set up and start developing. ## Set up using Foundry template Foundry is a popular development toolkit for Ethereum projects, which we have used to build the {props.protocol} Protocol. For the purposes of this guide, Foundry will provide us with the tooling needed to compile and test our contracts. Let's use this command to spin up a new Foundry project: ```bash $ forge init my-project $ cd my-project ``` Once the initialization completes, take a look around at what got set up: ```bash ├── foundry.toml ├── script ├── src └── test ``` The folder structure should be intuitive: - `src` is where you'll write Solidity contracts - `test` is where you'll write tests (also in Solidity) - `script` is where you'll write scripts to perform actions like deploying contracts (you guessed it, in Solidity) - `foundry.toml` is where you can configure your Foundry settings, which we will leave as is in this guide :::note You might notice that the CLI is `forge` rather than `foundry`. This is because Foundry is a toolkit, and `forge` is just one of the tools that comes with it. ::: ## Install via npm package Let's install the {props.protocol} Node.js packages using Bun: {`$ mkdir ${props.protocol.toLowerCase()}-integration-template $ cd ${props.protocol.toLowerCase()}-integration-template $ forge init --template sablier-labs/${props.protocol.toLowerCase()}-integration-template $ bun install`} {`$ bun add @sablier/${props.protocol.toLowerCase()}`} Bun will download the {props.protocol} contracts, along with their dependencies, and put them in the `node_modules` directory. Let's remap the package names to point to the installed contracts. This step is required so that the Solidity compiler can find the {props.protocol} contracts when you import them: {`$ echo "@sablier/${props.protocol.toLowerCase()}=node_modules/@sablier/${props.protocol.toLowerCase()}/" >> remappings.txt $ echo "@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/" >> remappings.txt $ echo "@prb/math/=node_modules/@prb/math/" >> remappings.txt`} That's it! You should now have a functional development environment to start building onchain {props.protocol} integrations. Let's run a quick test to confirm everything is set up properly. ## Write your first contract Delete the `src/Counter.sol` and `test/Counter.t.sol` files generated by Forge, and create two new files: `src/StreamCreator.sol` and `test/StreamCreator.t.sol`. Paste the following code into `src/StreamCreator.sol`: {`https://github.com/sablier-labs/${props.protocol.toLowerCase()}-integration-template/blob/main/src/${props.protocol}StreamCreator.sol`} Let's use Forge to compile this contract: ```bash $ forge build ``` If the contract was compiled correctly, you should see this message: ```bash [⠢] Compiling... [⠰] Compiling 62 files with Solc 0.8.26 [⠒] Solc 0.8.26 finished in 967.04ms Compiler run successful! ``` :::info The minimum Solidity version supported by the {props.protocol} contracts is v0.8.22. ::: ## Run a fork test Foundry offers native support for running tests against a fork of Ethereum Mainnet, testnets and L2s, which is useful when building and testing integrations with onchain protocols like Sablier. In practice, this enables you to access all Sablier contracts deployed on Ethereum, and use them for testing your integration. As a prerequisite, you will need an RPC that supports forking. A good solution for this is Alchemy, as it includes forking in its free tier plan. Once you have obtained your RPC, you can proceed to run the following test: {`https://github.com/sablier-labs/${props.protocol.toLowerCase()}-integration-template/blob/main/test/${props.protocol}StreamCreator.t.sol`} You can run the test using Forge: ```bash $ forge test ``` If the test passed, you should see a message like this: {`Ran 2 tests for test/${props.protocol}StreamCreator.t.sol:${props.protocol}StreamCreatorTest [PASS] test_Create{props.protocol}Stream() (gas: 246830) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 626.58ms (500.67µs CPU time)`} ## Next steps Congratulations! Your environment is now configured, and you are prepared to start building. Explore the guides section to discover various features available for {props.protocol} integration. Remember to include all contracts (`.sol` files) in the `src` folder and their corresponding tests in the `test` folder. As far as Foundry is concerned, there is much more to uncover. If you want to learn more about it, check out the Foundry Book, which contains numerous examples and tutorials. A deep understanding of Foundry will enable you to create more sophisticated integrations with {props.protocol} protocol. --- ## Implement Hooks Hooks provide an interface for recipient contracts to react upon cancellations and withdrawals. In order to allow your contract to be able to hook into Lockup, you must implement this interface and it must have been allowlisted by the Lockup contract's admin. :::info [`allowToHook`](/reference/lockup/contracts/interfaces/interface.ISablierLockupBase#allowtohook) is an irreversible operation, i.e., once a contract has been added to the allowlist, it can never be removed. This is to ensure stronger immutability and decentralization guarantees. Once a recipient contract is allowlisted, integrators should NOT have to trust us to keep their contract on the allowlist. ::: In this guide, we will explain how to implement [hooks](/concepts/lockup/hooks) in your smart contract to allow interacting with Lockup streams. ### Overview ### Requirements The recipient contract should implement the `{IERC165-supportsInterface}` method, which MUST return `true` when called with `0xf8ee98d3`, which is the interface ID for `ISablierLockupRecipient`. ```solidity function supportsInterface(bytes4 interfaceId) public view override(IERC165, ERC165) returns (bool) { return interfaceId == 0xf8ee98d3; } ``` ### Hook Functions These are the hooks that can be implemented by a recipient contract: | Hook | Arguments | Return value | Description | | ------------------------- | --------------------------------------------------- | ----------------- | --------------------------------------------------- | | `onSablierLockupCancel` | `(streamId, sender, senderAmount, recipientAmount)` | function selector | Called when the stream is canceled by the sender. | | `onSablierLockupWithdraw` | `(streamId, caller, to, amount)` | function selector | Called when an amount is withdrawn from the stream. | The complete interface for `ISablierLockupRecipient` can be found [here](/reference/lockup/contracts/interfaces/interface.ISablierLockupRecipient). :::tip Looking to get on the allowlist? Reach out to us on [Discord](https://discord.sablier.com). ::: ### Sample Implementations #### Recipient {`https://github.com/sablier-labs/examples/blob/main/lockup/RecipientHooks.sol`} --- ## Pull Vesting Data This guide explains how you can pull vesting data from Sablier Lockup streams. This data can be useful for a variety of use cases, including but not limited to staking contracts, blockchain explorers, and data dashboards: 1. **Staking**: Staking of Sablier streams require access to the amount of tokens that are held by the stream. You do not want to distribute rewards for tokens that have been withdrawn by users. 2. **Explorers (e.g., Etherscan, CoinGecko)**: One major feature of blockchain explorers is to show accurate circulating supplies. When tokens are vested through Sablier, you may want to exclude the amount of unvested tokens from the circulating supply. This is helpful to accurately calculate the market cap, which depends upon the amount of liquid tokens. 3. **Data Dashboards (e.g., Tokenomist, Nansen, Dune)**: Investors and traders use data dashboards to make informed trading decisions. When Sablier is used, you may want to show the amount of liquid (or vested) tokens and the amount of illiquid (or unvested) tokens. This is helpful to understand the token distribution and the team's commitment to the long-term success of the project. :::note Note that 'streamed amount' is synonymous with 'vested amount'. ::: ## Frontend Sandbox The examples in this guide are written in Solidity, but you may want to interact with the Sablier Lockup contract from your frontend application. A good starting point for this is the [Sablier Sandbox](https://github.com/sablier-labs/sandbox). For a comprehensive list of all the functions available in Sablier Lockup, visit the [References](/reference/overview) section of this website. ## Actions ### Cancel on first withdraw To automatically cancel streams as soon as the user withdraws their tokens, you can use one of two methods: onchain or offchain. The onchain method is to track the withdrawn amount and check if its value is greater than 0: ```solidity if (lockup.getWithdrawnAmount(streamId) > 0) { lockup.cancel(streamId); } ``` Offchain, you can monitor the [`WithdrawFromLockupStream`](/reference/lockup/contracts/interfaces/interface.ISablierLockup) events. As soon as a withdrawal event is detected, you can send a transaction to cancel the stream. ## Calculating Amounts ### Amount in stream This is the amount of tokens held by the stream. It is the sum of locked tokens and vested tokens that have not been withdrawn. This value is particularly useful for applications like staking. The following formula can be used for both cancelable and non-cancelable streams: ```solidity uint256 amountInStream = sablierLockup.getDepositedAmount(streamId) - sablierLockup.getWithdrawnAmount(streamId) - sablierLockup.getRefundedAmount(streamId); ``` For non-cancelable stream, a more efficient way to calculate the amount in stream is: ```solidity uint256 amountInStream = sablierLockup.getDepositedAmount(streamId) - sablierLockup.getWithdrawnAmount(streamId); ``` :::info If you want to build a Staking contract for Sablier streams, check out the [staking guide](./staking/setup). ::: ### Locked amount This is the amount of tokens that are locked in the stream and are effectively illiquid. This is particularly relevant when calculating the circulating supply of a token. ```solidity uint256 lockedAmount = lockup.getDepositedAmount(streamId) - lockup.streamedAmountOf(streamId) - sablierLockup.getRefundedAmount(streamId); ``` For non-cancelable stream, a more efficient way to calculate locked amount is: ```solidity uint256 lockedAmount = lockup.getDepositedAmount(streamId) - lockup.streamedAmountOf(streamId); ``` While calculating the circulating supply, you may want to subtract the locked amount from your calculations. ### Unlocked amount As opposed to the locked amount, the unlocked amount refers to tokens that are no longer locked and are effectively liquid. ```solidity uint256 unlockedAmount = lockup.streamedAmountOf(streamId) + sablierLockup.getRefundedAmount(streamId); ``` For non-cancelable stream, a more efficient way to calculate unlocked amount is: ```solidity uint256 unlockedAmount = lockup.streamedAmountOf(streamId); ``` ## Vested amount not withdrawn If you are building an application that requires access to amount of tokens that have been vested but not yet withdrawn, you can use the following formula: ```solidity uint256 vestedAmount = lockup.streamedAmountOf(streamId) - lockup.getWithdrawnAmount(streamId); ``` This may be useful for use cases in which you want to reward 'diamond hands', i.e., users who have not withdrawn their share of airdrops. ## Unlock Dates This section is useful if you are building a data dashboard and want to index the dates when tokens will be unlocked in Sablier. To obtain the time at which a stream will be fully unlocked, you can use the following function: ```solidity uint256 unlockTime = lockup.getEndTime(streamId); ``` Obtaining the earlier unlock times depends on the type of stream. Let's go through each stream type: ### Linear streams For Linear streams, make requests to `lockup.getCliffTime(streamId)` and `lockup.getEndTime(streamId)` to read cliff time and end time respectively. ### Dynamic streams For Dynamic streams, you may be particularly interested in the unlock amount and time of the current segment. ```solidity LockupDynamic.Segment[] memory segments = lockup.getSegments(streamId); // Loop over the segments to find the next unlock time. for (uint i; i < segments.length; ++i) { if (segments[i].timestamp > block.timestamp) { nextUnlockAmount = segments[i].amount; nextUnlockTime = segments[i].timestamp; break; } } ``` ### Tranched streams For Tranched streams, you may be particularly interested in the unlock amount and time of the current tranche. ```solidity LockupTranched.Tranche[] memory tranches = lockup.getTranches(streamId); // Loop over the tranches to find the next unlock time. for (uint i; i < tranches.length; ++i) { if (tranches[i].timestamp > block.timestamp) { nextUnlockAmount = tranches[i].amount; nextUnlockTime = tranches[i].timestamp; break; } } ``` We hope you have found this guide helpful. If you have a use case that is not covered here, please reach out to us on [Discord](https://discord.sablier.com), and we will assist you. --- ## Batch Lockup Linear # Create a Batch of Linear Streams In this guide, we will show you how you can use Solidity to batch create linear streams via the [Batch Lockup](/reference/lockup/contracts/contract.SablierBatchLockup) contract. This guide assumes that you have already gone through the [Protocol Concepts](/concepts/streaming) section. :::caution The code in this guide is not production-ready, and is implemented in a simplistic manner for the purpose of learning. ::: ## Set up a contract Declare the Solidity version used to compile the contract: ```solidity // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.22; ``` Now, import the relevant symbols from `@sablier/lockup`: ```solidity ``` Create a contract called `BatchLLStreamCreator`, and declare a constant `DAI` of type `IERC20`, a constant `LOCKUP` of type `ISablierLockup`, and a constant `BATCH_LOCKUP` of type `ISablierBatchLockup`: ```solidity contract BatchLLStreamCreator { IERC20 public constant DAI = IERC20(0x68194a729C2450ad26072b3D33ADaCbcef39D574); ISablierLockup public constant LOCKUP = ISablierLockup(0xC2Da366fD67423b500cDF4712BdB41d0995b0794); ISablierBatchLockup public constant BATCH_LOCKUP = ISablierBatchLockup(0xd4294579236eE290668c8FdaE9403c4F00D914f0); } ``` In the code above, the contract addresses are hard-coded for demonstration purposes. However, in production, you would likely use input parameters to allow flexibility in changing the addresses. Also, these addresses are deployed on Ethereum Sepolia. If you need to work with a different chain, {props.protocol} addresses can be obtained from the {props.protocol} Deployments page. ## Batch create functions There are two batch create functions for the Linear streams: - [`createWithDurationsLL`](/reference/lockup/contracts/contract.SablierBatchLockup#createwithdurationsll) - [`createWithTimestampsLL`](/reference/lockup/contracts/contract.SablierBatchLockup#createwithtimestampsll) Which one you choose depends upon your use case. In this guide, we will use `createWithDurationsLL`. ## Function definition Define a function called `batchCreateStreams` that takes a parameter `perStreamAmount` and returns an array of ids for the created streams: ```solidity function batchCreateStreams(uint128 perStreamAmount) public returns (uint256[] memory streamIds) { // ... } ``` ## Batch size Next, declare a batch size, which is needed to calculate the transfer amount: ```solidity // Create a batch of two streams uint256 batchSize = 2; // Calculate the combined amount of DAI to transfer to this contract uint256 transferAmount = perStreamAmount * batchSize; ``` ## ERC-20 steps To create a stream, the caller must approve the creator contract to pull the tokens from the calling address's account. Then, we have to also approve the `Batch` contract to pull the tokens that the creator contract will be in possession of after they are transferred from the calling address (you): ```solidity // Transfer the provided amount of DAI tokens to this contract DAI.transferFrom(msg.sender, address(this), transferAmount); // Approve the Batch contract to spend DAI DAI.approve(address(BATCH_LOCKUP), transferAmount); ``` For more guidance on how to approve and transfer ERC-20 tokens, see [this article](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) on the Ethereum website. ## Stream Parameters Given that we declared a `batchSize` of two, we need to define two [BatchLockup.CreateWithDurationsLL](/reference/lockup/contracts/types/library.BatchLockup#createwithdurationsll) structs: ```solidity // Declare the first stream in the batch BatchLockup.CreateWithDurationsLL memory stream0; stream0.sender = address(0xABCD); // The sender to stream the tokens, he will be able to cancel the stream stream0.recipient = address(0xCAFE); // The recipient of the streamed tokens stream0.totalAmount = perStreamAmount; // The total amount of each stream, inclusive of all fees stream0.cancelable = true; // Whether the stream will be cancelable or not stream0.transferable = false; // Whether the recipient can transfer the NFT or not stream0.durations = LockupLinear.Durations({ cliff: 4 weeks, // Assets will be unlocked only after 4 weeks total: 52 weeks // Setting a total duration of ~1 year }); stream0.unlockAmounts = LockupLinear.UnlockAmounts({ start: 0, // Whether the stream will unlock a certain amount of tokens at the start time cliff: 0 // Whether the stream will unlock a certain amount of tokens at the cliff time }); stream0.broker = Broker(address(0), ud60x18(0)); // Optional parameter left undefined ``` To add some variety, we will change the parameters of the second stream: ```solidity // Declare the second stream in the batch BatchLockup.CreateWithDurationsLL memory stream1; stream1.sender = address(0xABCD); // The sender to stream the tokens, he will be able to cancel the stream stream1.recipient = address(0xBEEF); // The recipient of the streamed tokens stream1.totalAmount = perStreamAmount; // The total amount of each stream, inclusive of all fees stream1.cancelable = false; // Whether the stream will be cancelable or not stream1.transferable = false; // Whether the recipient can transfer the NFT or not stream1.durations = LockupLinear.Durations({ cliff: 1 weeks, // Assets will be unlocked only after 1 week total: 26 weeks // Setting a total duration of ~6 months }); stream1.unlockAmounts = LockupLinear.UnlockAmounts({ start: 0, // Whether the stream will unlock a certain amount of tokens at the start time cliff: 0 // Whether the stream will unlock a certain amount of tokens at the start time }); stream1.broker = Broker(address(0), ud60x18(0)); // Optional parameter left undefined ``` Once both structs are declared, the batch array has to be filled: ```solidity // Fill the batch param BatchLockup.CreateWithDurationsLL[] memory batch = new BatchLockup.CreateWithDurationsLL[](batchSize); batch[0] = stream0; batch[1] = stream1; ``` ## Invoke the batch create function With all parameters set, we can now call the `createWithDurationsLL` function, and assign the ids of the newly created streams to the array: ```solidity streamIds = BATCH_LOCKUP.createWithDurationsLL(LOCKUP_LINEAR, DAI, batch); ``` ## Full code Below you can see the full code. You can also access the code on GitHub through [this link](https://github.com/sablier-labs/examples/blob/main/lockup/BatchLLStreamCreator.sol). {`https://github.com/sablier-labs/examples/blob/main/lockup/BatchLLStreamCreator.sol`} --- ## Batch Lockup Dynamic # Create a Batch of Dynamic Streams In this guide, we will show you how you can use Solidity to batch create dynamic streams via the [Batch Lockup](/reference/lockup/contracts/contract.SablierBatchLockup) contract. This guide assumes that you have already gone through the [Protocol Concepts](/concepts/streaming) section. :::caution The code in this guide is not production-ready, and is implemented in a simplistic manner for the purpose of learning. ::: ## Set up a contract Declare the Solidity version used to compile the contract: ```solidity // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.22; ``` Now, import the relevant symbols from `@sablier/lockup`: ```solidity ``` Create a contract called `BatchLDStreamCreator`, and declare a constant `DAI` of type `IERC20`, a constant `LOCKUP` of type `ISablierLockup`, and a constant `BATCH_LOCKUP` of type `ISablierBatchLockup`: ```solidity contract BatchLDStreamCreator { IERC20 public constant DAI = IERC20(0x68194a729C2450ad26072b3D33ADaCbcef39D574); ISablierLockup public constant LOCKUP = ISablierLockup(0xC2Da366fD67423b500cDF4712BdB41d0995b0794); ISablierBatchLockup public constant BATCH_LOCKUP = ISablierBatchLockup(0xd4294579236eE290668c8FdaE9403c4F00D914f0); } ``` In the code above, the contract addresses are hard-coded for demonstration purposes. However, in production, you would likely use input parameters to allow flexibility in changing the addresses. Also, these addresses are deployed on Ethereum Sepolia. If you need to work with a different chain, {props.protocol} addresses can be obtained from the {props.protocol} Deployments page. ## Batch create functions There are two batch create functions for the Dynamic streams: - [`createWithDurationsLD`](/reference/lockup/contracts/contract.SablierBatchLockup#createwithdurationsld) - [`createWithTimestampsLD`](/reference/lockup/contracts/contract.SablierBatchLockup#createwithtimestampsld) Which one you choose depends upon your use case. In this guide, we will use `createWithTimestampsLD`. ## Function definition Define a function called `batchCreateStreams` that takes a parameter `perStreamAmount` and returns an array of ids for the created streams: ```solidity function batchCreateStreams(uint128 perStreamAmount) public returns (uint256[] memory streamIds) { // ... } ``` ## Batch size Next, declare a batch size, which is needed to calculate the transfer amount: ```solidity // Create a batch of two streams uint256 batchSize = 2; // Calculate the combined amount of DAI to transfer to this contract uint256 transferAmount = perStreamAmount * batchSize; ``` ## ERC-20 steps To create a stream, the caller must approve the creator contract to pull the tokens from the calling address's account. Then, we have to also approve the `Batch` contract to pull the tokens that the creator contract will be in possession of after they are transferred from the calling address (you): ```solidity // Transfer the provided amount of DAI tokens to this contract DAI.transferFrom(msg.sender, address(this), transferAmount); // Approve the Batch contract to spend DAI DAI.approve(address(BATCH_LOCKUP), transferAmount); ``` For more guidance on how to approve and transfer ERC-20 tokens, see [this article](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) on the Ethereum website. ## Stream Parameters Given that we declared a `batchSize` of two, we need to define two [BatchLockup.CreateWithTimestampsLD](/reference/lockup/contracts/types/library.BatchLockup#createwithtimestampsld) structs: ```solidity // Declare the first stream in the batch BatchLockup.CreateWithTimestampsLD memory stream0; stream0.sender = address(0xABCD); // The sender to stream the tokens, he will be able to cancel the stream stream0.recipient = address(0xCAFE); // The recipient of the streamed tokens stream0.totalAmount = perStreamAmount; // The total amount of each stream, inclusive of all fees stream0.cancelable = true; // Whether the stream will be cancelable or not stream0.transferable = false; // Whether the recipient can transfer the NFT or not stream0.startTime = uint40(block.timestamp); // Set the start time to block timestamp // Declare some dummy segments stream0.segments = new LockupDynamic.Segment[](2); stream0.segments[0] = LockupDynamic.Segment({ amount: uint128(perStreamAmount / 2), exponent: ud2x18(0.25e18), timestamp: uint40(block.timestamp + 1 weeks) }); stream0.segments[1] = ( LockupDynamic.Segment({ amount: uint128(perStreamAmount - stream0.segments[0].amount), exponent: ud2x18(2.71e18), timestamp: uint40(block.timestamp + 24 weeks) }) ); stream0.broker = Broker(address(0), ud60x18(0)); // Optional parameter left undefined ``` To add some variety, we will change the parameters of the second stream: ```solidity BatchLockup.CreateWithTimestampsLD memory stream1; stream1.sender = address(0xABCD); // The sender to stream the tokens, he will be able to cancel the stream stream1.recipient = address(0xBEEF); // The recipient of the streamed tokens stream1.totalAmount = uint128(perStreamAmount); // The total amount of each stream, inclusive of all fees stream1.cancelable = false; // Whether the stream will be cancelable or not stream1.transferable = false; // Whether the recipient can transfer the NFT or not stream1.startTime = uint40(block.timestamp); // Set the start time to block timestamp // Declare some dummy segments stream1.segments = new LockupDynamic.Segment[](2); stream1.segments[0] = LockupDynamic.Segment({ amount: uint128(perStreamAmount / 4), exponent: ud2x18(1e18), timestamp: uint40(block.timestamp + 4 weeks) }); stream1.segments[1] = ( LockupDynamic.Segment({ amount: uint128(perStreamAmount - stream1.segments[0].amount), exponent: ud2x18(3.14e18), timestamp: uint40(block.timestamp + 52 weeks) }) ); stream1.broker = Broker(address(0), ud60x18(0)); // Optional parameter left undefined ``` Once both structs are declared, the batch array has to be filled: ```solidity // Fill the batch array BatchLockup.CreateWithTimestampsLD[] memory batch = new BatchLockup.CreateWithTimestampsLD[](batchSize); batch[0] = stream0; batch[1] = stream1; ``` ## Invoke the batch create function With all parameters set, we can now call the `createWithTimestampsLD` function, and assign the ids of the newly created streams to the array: ```solidity streamIds = BATCH_LOCKUP.createWithTimestampsLD(LOCKUP_DYNAMIC, DAI, batch); ``` ## Full code Below you can see the full code. You can also access the code on GitHub through [this link](https://github.com/sablier-labs/examples/blob/main/lockup/BatchLDStreamCreator.sol). {`https://github.com/sablier-labs/examples/blob/main/lockup/BatchLDStreamCreator.sol`} --- ## Batch Lockup Tranched # Create a Batch of Tranched Streams In this guide, we will show you how can use Solidity to batch create tranched streams via the [Batch Lockup](/reference/lockup/contracts/contract.SablierBatchLockup) contract. This guide assumes that you have already gone through the [Protocol Concepts](/concepts/streaming) section. :::caution The code in this guide is not production-ready, and is implemented in a simplistic manner for the purpose of learning. ::: ## Set up a contract Declare the Solidity version used to compile the contract: ```solidity // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.22; ``` Now, import the relevant symbols from `@sablier/lockup`: ```solidity ``` Create a contract called `BatchLTStreamCreator`, and declare a constant `DAI` of type `IERC20`, a constant `LOCKUP` of type `ISablierLockup`, and a constant `BATCH_LOCKUP` of type `ISablierBatchLockup`: ```solidity contract BatchLTStreamCreator { IERC20 public constant DAI = IERC20(0x68194a729C2450ad26072b3D33ADaCbcef39D574); ISablierLockup public constant LOCKUP = ISablierLockup(0xC2Da366fD67423b500cDF4712BdB41d0995b0794); ISablierBatchLockup public constant BATCH_LOCKUP = ISablierBatchLockup(0xd4294579236eE290668c8FdaE9403c4F00D914f0); } ``` In the code above, the contract addresses are hard-coded for demonstration purposes. However, in production, you would likely use input parameters to allow flexibility in changing the addresses. Also, these addresses are deployed on Ethereum Sepolia. If you need to work with a different chain, {props.protocol} addresses can be obtained from the {props.protocol} Deployments page. ## Batch create functions There are two batch create functions for the Tranched streams: - [`createWithDurationsLT`](/reference/lockup/contracts/contract.SablierBatchLockup#createwithdurationslt) - [`createWithTimestampsLT`](/reference/lockup/contracts/contract.SablierBatchLockup#createwithtimestampslt) Which one you choose depends upon your use case. In this guide, we will use `createWithTimestampsLT`. ## Function definition Define a function called `batchCreateStreams` that takes a parameter `perStreamAmount` and returns an array of ids for the created streams: ```solidity function batchCreateStreams(uint128 perStreamAmount) public returns (uint256[] memory streamIds) { // ... } ``` ## Batch size Next, declare a batch size, which is needed to calculate the transfer amount: ```solidity // Create a batch of two streams uint256 batchSize = 2; // Calculate the combined amount of DAI to transfer to this contract uint256 transferAmount = perStreamAmount * batchSize; ``` ## ERC-20 steps To create a stream, the caller must approve the creator contract to pull the tokens from the calling address's account. Then, we have to also approve the `Batch` contract to pull the tokens that the creator contract will be in possession of after they are transferred from the calling address (you): ```solidity // Transfer the provided amount of DAI tokens to this contract DAI.transferFrom(msg.sender, address(this), transferAmount); // Approve the Batch contract to spend DAI DAI.approve(address(BATCH_LOCKUP), transferAmount); ``` For more guidance on how to approve and transfer ERC-20 tokens, see [this article](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) on the Ethereum website. ## Stream Parameters Given that we declared a `batchSize` of two, we need to define two [BatchLockup.CreateWithTimestampsLT](/reference/lockup/contracts/types/library.BatchLockup#createwithtimestampslt) structs: ```solidity // Declare the first stream in the batch BatchLockup.CreateWithTimestampsLT memory stream0; stream0.sender = address(0xABCD); // The sender to stream the tokens, he will be able to cancel the stream stream0.recipient = address(0xCAFE); // The recipient of the streamed tokens stream0.totalAmount = perStreamAmount; // The total amount of each stream, inclusive of all fees stream0.cancelable = true; // Whether the stream will be cancelable or not stream0.transferable = false; // Whether the recipient can transfer the NFT or not stream0.startTime = uint40(block.timestamp); // Set the start time to block timestamp // Declare some dummy tranches stream0.tranches = new LockupTranched.Tranche[](2); stream0.tranches[0] = LockupTranched.Tranche({ amount: uint128(perStreamAmount / 2), timestamp: uint40(block.timestamp + 1 weeks) }); stream0.tranches[1] = LockupTranched.Tranche({ amount: uint128(perStreamAmount - stream0.tranches[0].amount), timestamp: uint40(block.timestamp + 24 weeks) }); stream0.broker = Broker(address(0), ud60x18(0)); // Optional parameter left undefined ``` To add some variety, we will change the parameters of the second stream: ```solidity BatchLockup.CreateWithTimestampsLT memory stream1; stream1.sender = address(0xABCD); // The sender to stream the tokens, he will be able to cancel the stream stream1.recipient = address(0xBEEF); // The recipient of the streamed tokens stream1.totalAmount = uint128(perStreamAmount); // The total amount of each stream, inclusive of all fees stream1.cancelable = false; // Whether the stream will be cancelable or not stream1.transferable = false; // Whether the recipient can transfer the NFT or not stream1.startTime = uint40(block.timestamp); // Set the start time to block timestamp // Declare some dummy tranches stream1.tranches = new LockupTranched.Tranche[](2); stream1.tranches[0] = LockupTranched.Tranche({ amount: uint128(perStreamAmount / 4), timestamp: uint40(block.timestamp + 4 weeks) }); stream1.tranches[1] = LockupTranched.Tranche({ amount: uint128(perStreamAmount - stream1.tranches[0].amount), timestamp: uint40(block.timestamp + 24 weeks) }); stream1.broker = Broker(address(0), ud60x18(0)); // Optional parameter left undefined ``` Once both structs are declared, the batch array has to be filled: ```solidity // Fill the batch array BatchLockup.CreateWithTimestampsLT[] memory batch = new BatchLockup.CreateWithTimestampsLT[](batchSize); batch[0] = stream0; batch[1] = stream1; ``` ## Invoke the batch create function With all parameters set, we can now call the `createWithTimestampsLT` function, and assign the ids of the newly created streams to the array: ```solidity streamIds = BATCH_LOCKUP.createWithTimestampsLT(LOCKUP_TRANCHED, DAI, batch); ``` ## Full code Below you can see the full code. You can also access the code on GitHub through [this link](https://github.com/sablier-labs/examples/blob/main/lockup/BatchLTStreamCreator.sol). {`https://github.com/sablier-labs/examples/blob/main/lockup/BatchLTStreamCreator.sol`} --- ## Lockup Linear # Create a Lockup Linear Stream Linear streams are streams with a linear streaming function. In this guide, we will show you how to create a Lockup Linear stream using Solidity. This guide assumes that you have already gone through the [Protocol Concepts](/concepts/streaming) section. :::caution The code in this guide is not production-ready, and is implemented in a simplistic manner for the purpose of learning. ::: ## Set up a contract Declare the Solidity version used to compile the contract: ```solidity // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.22; ``` Import the relevant symbols from `@sablier/lockup`: ```solidity ``` Create a contract called `LockupLinearStreamCreator`, and declare a constant `DAI` of type `IERC20` and a constant `LOCKUP` of type `ISablierLockup`: ```solidity contract LockupLinearStreamCreator { IERC20 public constant DAI = IERC20(0x68194a729C2450ad26072b3D33ADaCbcef39D574); ISablierLockup public constant LOCKUP = ISablierLockup(0xC2Da366fD67423b500cDF4712BdB41d0995b0794); } ``` In the code above, the contract addresses are hard-coded for demonstration purposes. However, in production, you would likely use input parameters to allow flexibility in changing the addresses. Also, these addresses are deployed on Ethereum Sepolia. If you need to work with a different chain, {props.protocol} addresses can be obtained from the {props.protocol} Deployments page. There are two create functions in the Lockup contract that can be used to create Linear streams: - `createWithDurationsLL`: takes duration and calculates the start and end timestamps based on the provided durations. - `createWithTimestampsLL`: takes start and end timestamps. Which one you choose depends upon your use case. In this guide, we will use `createWithDurationsLL`. ## Function definition Define a function called `createStream` which takes a single parameter `totalAmount`, and which returns the id of the created stream: ```solidity function createStream(uint128 totalAmount) public returns (uint256 streamId) { // ... } ``` ## ERC-20 steps To create a stream, the caller must approve the creator contract to pull the tokens from the calling address's account. Then, we have to approve the Lockup contract to pull the tokens that the creator contract will be in possession of after they are transferred from the calling address (you): ```solidity // Transfer the provided amount of DAI tokens to this contract DAI.transferFrom(msg.sender, address(this), totalAmount); // Approve the Sablier contract to spend DAI DAI.approve(address(LOCKUP), totalAmount); ``` For more guidance on how to approve and transfer ERC-20 tokens, see [this article](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) on the Ethereum website. ## Parameters The struct associated with `createWithDurationsLL` are [`Lockup.CreateWithDurations`](/reference/lockup/contracts/types/library.Lockup#createwithdurations) (a shared struct across all the lockup streams), [`LockupLinear.durations`](/reference/lockup/contracts/types/library.LockupLinear#durations) and [`LockupLinear.unlockamounts`](/reference/lockup/contracts/types/library.LockupLinear#unlockamounts). ```solidity Lockup.CreateWithDurations memory params; LockupLinear.UnlockAmounts memory unlockAmounts; LockupLinear.Durations memory durations; ``` Let's review each parameter in detail. Let's review each parameter in detail. ### Broker An optional parameter that can be set in order to charge a fee as a percentage of `totalAmount`. In the following example, we will leave this parameter uninitialized (i.e. set to zero), because it doesn't make sense to charge yourself a fee. In practice, this parameter will mostly be used by front-end applications. ```solidity params.broker = Broker(address(0), ud60x18(0)); ``` :::info Wondering what's up with that `ud60x18` function? It's a casting function that wraps a basic integer to the `UD60x18` value type. This type is part of the math library [PRBMath](https://github.com/PaulRBerg/prb-math), which is used in Sablier for fixed-point calculations. ::: ### Cancelable Boolean that indicates whether the stream will be cancelable or not. ```solidity params.cancelable = true; ``` ### Recipient The address receiving the tokens: ```solidity params.recipient = address(0xCAFE); ``` ### Sender The address streaming the tokens, with the ability to cancel the stream: ```solidity params.sender = msg.sender; ``` ### Token The contract address of the ERC-20 token used for streaming. In this example, we will stream DAI: ```solidity params.token = DAI; ``` ### Total amount The total amount of ERC-20 tokens to be paid, including the stream deposit and any potential [fees](/concepts/fees), all denoted in units of the asset's decimals. ```solidity params.totalAmount = totalAmount; ``` ### Transferable Boolean that indicates whether the stream will be transferable or not. ```solidity params.transferable = true; ``` ### Durations Struct containing (i) cliff duration and (ii) total stream duration, both denoted in seconds. ```solidity durations = LockupLinear.Durations({ cliff: 0, total: 52 weeks }); ``` ### Unlock Amounts Struct containing details on unlock amounts at start time and at cliff time. ```solidity unlockAmounts = LockupLinear.UnlockAmounts({ start: 0, cliff: 0 }); ``` ## Invoke the create function With all parameters set, we can now call the `createWithDurationsLL` function, and assign the id of the newly created stream to a variable: ```solidity streamId = LOCKUP.createWithDurationsLL(params, unlockAmounts, durations); ``` ## Full code Below you can see the full code. You can also access the code on GitHub through [this link](https://github.com/sablier-labs/examples/blob/main/lockup/LockupLinearStreamCreator.sol). {`https://github.com/sablier-labs/examples/blob/main/lockup/LockupLinearStreamCreator.sol`} --- ## Lockup Tranched # Create a Lockup Tranched Stream Lockup Tranched are streams with discrete unlocks. In this guide, we will show you how to create a Lockup Tranched stream using Solidity. This guide assumes that you have already gone through the [Protocol Concepts](/concepts/streaming) section. :::caution The code in this guide is not production-ready, and is implemented in a simplistic manner for the purpose of learning. ::: ## Set up a contract Declare the Solidity version used to compile the contract: ```solidity // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.22; ``` Import the relevant symbols from `@sablier/lockup`: ```solidity ``` Create a contract called `LockupTranchedStreamCreator`, and declare a constant `DAI` of type `IERC20` and a constant `LOCKUP` of type `ISablierLockup`: ```solidity contract LockupTranchedStreamCreator { IERC20 public constant DAI = IERC20(0x68194a729C2450ad26072b3D33ADaCbcef39D574); ISablierLockup public constant LOCKUP = ISablierLockup(0xC2Da366fD67423b500cDF4712BdB41d0995b0794); } ``` In the code above, the contract addresses are hard-coded for demonstration purposes. However, in production, you would likely use input parameters to allow flexibility in changing the addresses. Also, these addresses are deployed on Ethereum Sepolia. If you need to work with a different chain, {props.protocol} addresses can be obtained from the {props.protocol} Deployments page. There are two create functions in the Lockup contract that can be used to create Tranched streams: - `createWithDurationsLT`: takes duration and calculates the tranche timestamps based on the provided durations. - `createWithTimestampsLT`: takes UNIX timestamps for tranches. Which one you choose depends upon your use case. In this guide, we will use `createWithDurationsLT`. ## Function definition Define a function called `createStream` which takes two parameters, `amount0` and `amount1`, and which returns the id of the created stream: ```solidity function createStream(uint128 amount0, uint128 amount1) public returns (uint256 streamId) { // ... } ``` Next, sum up the `amount0` and `amount1` parameters to get the total amount of the stream, which will be needed in many of the steps below: ```solidity uint256 totalAmount = amount0 + amount1; ``` ## ERC-20 steps To create a stream, the caller must approve the creator contract to pull the tokens from the calling address's account. Then, we have to approve the Lockup contract to pull the tokens that the creator contract will be in possession of after they are transferred from the calling address (you): ```solidity // Transfer the provided amount of DAI tokens to this contract DAI.transferFrom(msg.sender, address(this), totalAmount); // Approve the Sablier contract to spend DAI DAI.approve(address(LOCKUP), totalAmount); ``` For more guidance on how to approve and transfer ERC-20 tokens, see [this article](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) on the Ethereum website. ## Parameters The struct associated with `createWithDurationsLT` are [`Lockup.CreateWithDurations`](/reference/lockup/contracts/types/library.Lockup#createwithdurations) (a shared struct across all the lockup streams) and [`LockupTranched.TrancheWithDuration`](/reference/lockup/contracts/types/library.LockupTranched#tranchewithduration). ```solidity Lockup.CreateWithDurations memory params; LockupTranched.TrancheWithDuration[] memory tranches = new LockupTranched.TrancheWithDuration[](2); ``` Let's review each parameter in detail. Let's review each parameter in detail. ### Broker An optional parameter that can be set in order to charge a fee as a percentage of `totalAmount`. In the following example, we will leave this parameter uninitialized (i.e. set to zero), because it doesn't make sense to charge yourself a fee. In practice, this parameter will mostly be used by front-end applications. ```solidity params.broker = Broker(address(0), ud60x18(0)); ``` :::info Wondering what's up with that `ud60x18` function? It's a casting function that wraps a basic integer to the `UD60x18` value type. This type is part of the math library [PRBMath](https://github.com/PaulRBerg/prb-math), which is used in Sablier for fixed-point calculations. ::: ### Cancelable Boolean that indicates whether the stream will be cancelable or not. ```solidity params.cancelable = true; ``` ### Recipient The address receiving the tokens: ```solidity params.recipient = address(0xCAFE); ``` ### Sender The address streaming the tokens, with the ability to cancel the stream: ```solidity params.sender = msg.sender; ``` ### Token The contract address of the ERC-20 token used for streaming. In this example, we will stream DAI: ```solidity params.token = DAI; ``` ### Total amount The total amount of ERC-20 tokens to be paid, including the stream deposit and any potential [fees](/concepts/fees), all denoted in units of the asset's decimals. ```solidity params.totalAmount = totalAmount; ``` ### Transferable Boolean that indicates whether the stream will be transferable or not. ```solidity params.transferable = true; ``` ### Tranches With Duration Tranches are what the protocol uses to compose the discrete unlocks. For a full exposition of tranches, see the [Tranches](/concepts/lockup/tranches) guide. Each tranche is characterized by a specific amount and timestamp. Because we are using `createWithDurationsLT` in this example, these tranches are supplied to the function in the form of an array containing [`LockupTranched.TrancheWithDuration`](/reference/lockup/contracts/types/library.LockupTranched#tranchewithduration) structs. Let's define two dummy tranches: ```solidity params.tranches[0] = LockupTranched.TrancheWithDuration({ amount: amount0, duration: uint40(4 weeks) }); params.tranches[1] = ( LockupTranched.TrancheWithDuration({ amount: amount1, duration: uint40(6 weeks) }) ); ``` In this example, the first tranche (`amount0`) will unlock at the end of the 4 weeks after the stream was created and the second tranche (`amount1`) will unlock after further 6 weeks. Thus, the total amount will be unlocked in 10 weeks. ## Invoke the create function With all parameters set, we can now call the `createWithDurationsLT` function, and assign the ID of the newly created stream to a variable: ```solidity streamId = LOCKUP.createWithDurationsLT(params, tranches); ``` ## Full code Below you can see the full code. You can also access the code on GitHub through [this link](https://github.com/sablier-labs/examples/blob/main/lockup/LockupTranchedStreamCreator.sol). {`https://github.com/sablier-labs/examples/blob/main/lockup/LockupTranchedStreamCreator.sol`} --- ## Lockup Dynamic # Create a Lockup Dynamic Stream Dynamic streams are streams with a custom streaming function. In this guide, we will show you how to create a Lockup Dynamic stream using Solidity. This guide assumes that you have already gone through the [Protocol Concepts](/concepts/streaming) section. :::caution The code in this guide is not production-ready, and is implemented in a simplistic manner for the purpose of learning. ::: ## Set up a contract Declare the Solidity version used to compile the contract: ```solidity // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.22; ``` Import the relevant symbols from `@sablier/lockup`: ```solidity ``` Create a contract called `LockupDynamicStreamCreator`, and declare a constant `DAI` of type `IERC20` and a constant `LOCKUP` of type `ISablierLockup`: ```solidity contract LockupDynamicStreamCreator { IERC20 public constant DAI = IERC20(0x68194a729C2450ad26072b3D33ADaCbcef39D574); ISablierLockup public constant LOCKUP = ISablierLockup(0xC2Da366fD67423b500cDF4712BdB41d0995b0794); } ``` In the code above, the contract addresses are hard-coded for demonstration purposes. However, in production, you would likely use input parameters to allow flexibility in changing the addresses. Also, these addresses are deployed on Ethereum Sepolia. If you need to work with a different chain, {props.protocol} addresses can be obtained from the {props.protocol} Deployments page. There are two create functions in the Lockup contract that can be used to create Dynamic streams: - `createWithDurationsLD`: takes duration and calculates the segment timestamps based on the provided durations. - `createWithTimestampsLD`: takes UNIX timestamps for segment. Which one you choose depends upon your use case. In this guide, we will use `createWithTimestampsLD`. ## Function definition Define a function called `createStream` which takes two parameters, `amount0` and `amount1`, and which returns the id of the created stream: ```solidity function createStream(uint128 amount0, uint128 amount1) public returns (uint256 streamId) { // ... } ``` Next, sum up the `amount0` and `amount1` parameters to get the total amount of the stream, which will be needed in many of the steps below: ```solidity uint256 totalAmount = amount0 + amount1; ``` ## ERC-20 steps To create a stream, the caller must approve the creator contract to pull the tokens from the calling address's account. Then, we have to approve the Lockup contract to pull the tokens that the creator contract will be in possession of after they are transferred from the calling address (you): ```solidity // Transfer the provided amount of DAI tokens to this contract DAI.transferFrom(msg.sender, address(this), totalAmount); // Approve the Sablier contract to spend DAI DAI.approve(address(LOCKUP), totalAmount); ``` For more guidance on how to approve and transfer ERC-20 tokens, see [this article](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) on the Ethereum website. ## Parameters The struct associated with `createWithTimestampsLD` are [`Lockup.CreateWithTimestamps`](/reference/lockup/contracts/types/library.Lockup#createwithtimestamps) (a shared struct across all the lockup streams) and [`LockupDynamic.Segment`](/reference/lockup/contracts/types/library.LockupDynamic#segment). ```solidity LockupDynamic.CreateWithTimestamps memory params; LockupDynamic.Segment[] memory segments = new LockupDynamic.Segment[](2); ``` Let's review each parameter in detail. Let's review each parameter in detail. ### Broker An optional parameter that can be set in order to charge a fee as a percentage of `totalAmount`. In the following example, we will leave this parameter uninitialized (i.e. set to zero), because it doesn't make sense to charge yourself a fee. In practice, this parameter will mostly be used by front-end applications. ```solidity params.broker = Broker(address(0), ud60x18(0)); ``` :::info Wondering what's up with that `ud60x18` function? It's a casting function that wraps a basic integer to the `UD60x18` value type. This type is part of the math library [PRBMath](https://github.com/PaulRBerg/prb-math), which is used in Sablier for fixed-point calculations. ::: ### Cancelable Boolean that indicates whether the stream will be cancelable or not. ```solidity params.cancelable = true; ``` ### Recipient The address receiving the tokens: ```solidity params.recipient = address(0xCAFE); ``` ### Sender The address streaming the tokens, with the ability to cancel the stream: ```solidity params.sender = msg.sender; ``` ### Token The contract address of the ERC-20 token used for streaming. In this example, we will stream DAI: ```solidity params.token = DAI; ``` ### Total amount The total amount of ERC-20 tokens to be paid, including the stream deposit and any potential [fees](/concepts/fees), all denoted in units of the asset's decimals. ```solidity params.totalAmount = totalAmount; ``` ### Transferable Boolean that indicates whether the stream will be transferable or not. ```solidity params.transferable = true; ``` ### Start Time and End Time The start and end timestamps for the stream. Note that the end timestamps much match the timestamp of the last segment. ```solidity params.timestamps.start = uint40(block.timestamp + 100 seconds); params.timestamps.end = uint40(block.timestamp + 52 weeks); ``` ### Segments Segments are what the protocol uses to compose the custom distribution curve of a Dynamic stream. For a full exposition of segments, see the [Segments](/concepts/lockup/segments) guide. The term "segment" refers to the splitting of the stream into separate partitions, with each segment characterized by a specific amount, exponent, and timestamp. These segments are supplied to the function in the form of an array containing [`LockupDynamic.Segment`](/reference/lockup/contracts/types/library.LockupDynamic#segment) structs. Let's define two dummy segments: ```solidity segments[0] = LockupDynamic.Segment({ amount: amount0, exponent: ud2x18(1e18), timestamp: uint40(block.timestamp + 4 weeks) }); segments[1] = ( LockupDynamic.Segment({ amount: amount1, exponent: ud2x18(3.14e18), timestamp: uint40(block.timestamp + 52 weeks) }) ); ``` In this example, the first segment (`amount0`) will stream much faster than the second segment (`amount1`), because the exponents are different. As a rule of thumb: the higher the exponent, the slower the stream. :::note The segment timestamp must be in ascending order. ::: :::info The `ud2x18` function wraps a basic integer to the `UD2x18` value type, which is part of the [PRBMath](https://github.com/PaulRBerg/prb-math) library. ::: ## Invoke the create function With all parameters set, we can now call the `createWithTimestampsLD` function, and assign the id of the newly created stream to a variable: ```solidity streamId = LOCKUP.createWithTimestampsLD(params, segments); ``` ## Full code Below you can see the full code. You can also access the code on GitHub through [this link](https://github.com/sablier-labs/examples/blob/main/lockup/LockupDynamicStreamCreator.sol). {`https://github.com/sablier-labs/examples/blob/main/lockup/LockupDynamicStreamCreator.sol`} --- ## Introduction # Staking in Sablier Staking is a popular concept in DeFi. A major advantage of using Sablier is that you can set up staking of tokens being vested through Sablier streams. This is enabled by [hooks](/concepts/lockup/hooks), about which you can read more in the [hooks guide](/guides/lockup/examples/hooks). This series will guide you through an example of a staking contract with the following features: 1. Allowing users to stake Sablier streams for a particular token. 2. Earning and claiming rewards in the same token as the vested token. 3. Allowing users to unstake their staked Sablier streams. :::warning The code provided in this guide has NOT BEEN AUDITED and is provided "AS IS" with no warranties of any kind, either express or implied. It is intended solely for demonstration purposes. ::: ## Assumptions Before diving in, please note that we will make the following assumptions: 1. Since staking requires transferring the Sablier NFT from users' wallet to the staking contract, the Sablier stream must be transferable at the time of creation. 1. The staking contract allows staking of one stream per user. So, if a user has already staked a stream, he will not be able to stake another stream from the same address. This is assumed for simplicity's sake. 1. Rewards are distributed at a fixed rate, for a fixed duration, and are bound by an end time. ## First steps Let's begin with the constructor. Create a contract called `StakeSablierNFT` and write the `constructor` as follows: ```solidity contract StakeSablierNFT is Adminable, ERC721Holder, ISablierLockupRecipient // Required to implement hooks { constructor(address initialAdmin, IERC20 rewardERC20Token_, ISablierLockup sablierLockup_) { admin = initialAdmin; rewardERC20Token = rewardERC20Token_; sablierLockup = sablierLockup_; } } ``` As mentioned above, a user will only be able to stake a stream that is vesting tokens specified by `rewardERC20Token_` in the constructor. The rewards will also be distributed in the same token. To focus on specific functionalities that enable staking support for streams, obvious functions such as `startStakingPeriod` have been omitted from this guide. However, for completeness, the full code can be found on the next page as well as in the [examples repo](https://github.com/sablier-labs/examples/blob/main/lockup/StakeSablierNFT.sol). --- ## Full code The guide in the following pages will cover each of the essential functionalities of the `StakeSablierNFT` contract. For those who want to start hacking right away, here is the full code, which can also be found on [GitHub](https://github.com/sablier-labs/examples/blob/main/lockup/StakeSablierNFT.sol): {`https://github.com/sablier-labs/examples/blob/main/lockup/StakeSablierNFT.sol`} --- ## Hooks(Staking) As explained in the [access control](/reference/lockup/access-control) section, the Sablier Protocol allows anyone to trigger withdrawals from a stream. For the staking contract, we want to make sure that any call to `withdraw` also updates the states of the staking contract. So in this section, we will discuss how we can create such control flows with Sablier hooks. Hooks enable callbacks to the staking contract in the following scenario: 1. A call to `cancel` or `withdraw` function is made. 2. The staking contract is the recipient of the Sablier stream. Depending on your requirement, you can implement custom logic to be executed when the sender cancels or a user withdraws from a staked stream. For example, you might want to automatically unstake the stream if `cancel` is called, or you might want to update the internal accounting if `withdraw` is called. Hooks make that happen. For this example, we will implement the following logic: 1. When a stream is canceled, update the user's staked balance in the staking contract. 2. When a withdrawal is made, update the user's staked balance in the staking contract and transfer the withdrawn amount to the user's address. :::note A dedicated guide for hooks is available [here](/guides/lockup/examples/hooks). ::: ### Cancel hook ```solidity /// @notice Implements the hook to handle cancellation events. This will be called by Sablier contract when a stream /// is canceled by the sender. /// @dev This function subtracts the amount refunded to the sender from `totalERC20StakedSupply`. /// - This function also updates the rewards for the staker. function onSablierLockupCancel( uint256 streamId, address, /* sender */ uint128 senderAmount, uint128 /* recipientAmount */ ) external updateReward(stakedUsers[streamId]) returns (bytes4 selector) { // Check: the caller is the Lockup contract. if (msg.sender != address(sablierLockup)) { revert UnauthorizedCaller(msg.sender, streamId); } // Effect: update the total staked amount. totalERC20StakedSupply -= senderAmount; return ISablierLockupRecipient.onSablierLockupCancel.selector; } ``` ### Withdraw hook ```solidity /// @notice Implements the hook to handle withdraw events. This will be called by Sablier contract when withdraw is /// called on a stream. /// @dev This function transfers `amount` to the original staker. function onSablierLockupWithdraw( uint256 streamId, address, /* caller */ address, /* recipient */ uint128 amount ) external updateReward(stakedUsers[streamId]) returns (bytes4 selector) { // Check: the caller is the Lockup contract if (msg.sender != address(sablierLockup)) { revert UnauthorizedCaller(msg.sender, streamId); } address staker = stakedUsers[streamId]; // Check: the staker is not the zero address. if (staker == address(0)) { revert ZeroAddress(staker); } // Effect: update the total staked amount. totalERC20StakedSupply -= amount; // Interaction: transfer the withdrawn amount to the original staker. rewardERC20Token.safeTransfer(staker, amount); return ISablierLockupRecipient.onSablierLockupWithdraw.selector; } ``` --- ## Stake The `stake` function takes the `streamId` as the input, and stakes the stream by transferring the Sablier NFT from the user's wallet to the staking contract. ```solidity function stake(uint256 streamId) external { // code goes here. } ``` As the first step, we will check if the underlying token being vested through the stream is same as the reward token. Since the Sablier protocol can be used to stream any ERC-20 token, this check ensures that the staking contract does not accept unknown tokens. ```solidity if (sablierLockup.getUnderlyingToken(streamId) != rewardERC20Token) { revert DifferentStreamingToken(streamId, rewardERC20Token); } ``` As mentioned in the assumptions, the contract only allows staking one NFT at a time. So, we will now check if the user is already staking. ```solidity if (stakedStreams[msg.sender] != 0) { revert AlreadyStaking(msg.sender, stakedStreams[msg.sender]); } ``` Finally, we will set some storage variables and transfer the NFT: ```solidity stakedUsers[streamId] = msg.sender; stakedStreams[msg.sender] = streamId; totalERC20StakedSupply += _getAmountInStream(streamId); sablierLockup.safeTransferFrom({ from: msg.sender, to: address(this), tokenId: streamId }); ``` The `_getAmountInStream` function retrieves the amount of tokens being vested through the stream. ```math \text{amount in a stream} = (\text{amount deposited} - \text{amount withdrawn} - \text{amount refunded}) ``` The implementation is as follows: ```solidity /// @dev The following function determines the amounts of tokens in a stream irrespective of its cancelable status. function _getAmountInStream(uint256 streamId) private view returns (uint256 amount) { // The tokens in the stream = amount deposited - amount withdrawn - amount refunded. return sablierLockup.getDepositedAmount(streamId) - sablierLockup.getWithdrawnAmount(streamId) - sablierLockup.getRefundedAmount(streamId); } ``` --- ## Update rewards In this section, we will define a modifier to update the rewards earned by users each time one of following functions is called: - `claimRewards` - `onSablierLockupCancel` - `onSablierLockupWithdraw` - `stake` - `unstake` First, define the modifier with `account` as an input parameter: ```solidity modifier updateReward(address account) { // code goes here _; } ``` ### Total rewards paid per ERC-20 token Inside the modifier, we will update the total rewards earned per ERC-20 token. ```solidity totalRewardPaidPerERC20Token = rewardPaidPerERC20Token(); ``` The implementation of `rewardPaidPerERC20Token` goes as follows: ```solidity /// @notice Calculates the total rewards distributed per ERC-20 token. /// @dev This is called by `updateReward`, which also updates the value of `totalRewardPaidPerERC20Token`. function rewardPaidPerERC20Token() public view returns (uint256) { // If the total staked supply is zero or staking has ended, return the stored value of reward per ERC-20. if (totalERC20StakedSupply == 0 || block.timestamp >= stakingEndTime) { return totalRewardPaidPerERC20Token; } uint256 totalRewardsPerERC20InCurrentPeriod = ((lastTimeRewardsApplicable() - lastUpdateTime) * rewardRate * 1e18) / totalERC20StakedSupply; return totalRewardPaidPerERC20Token + totalRewardsPerERC20InCurrentPeriod; } ``` The function calculates the rewards earned by all the streams since the last snapshot, and divides the result by the total amount of ERC-20 tokens being vested through all staked streams. Finally, it adds the value to `totalRewardPaidPerERC20Token`. So, the `totalRewardPaidPerERC20Token` variable tracks the cumulative rewards earned per ERC-20 token. This is also helpful in calculating the rewards earned by each user: ```math \text{rewards} = \text{amount in stream} \times \text{rewardPaidPerERC20Token} - \text{rewards already paid} ``` ### Last time update Now let's move onto the second line of the modifier: ```solidity lastUpdateTime = lastTimeRewardsApplicable(); ``` The implementation of `lastTimeRewardsApplicable` goes as follows: ```solidity function lastTimeRewardsApplicable() public view returns (uint256) { return block.timestamp < stakingEndTime ? block.timestamp : stakingEndTime; } ``` which is just the block timestamp if the staking period has not ended. ### Rewards earned by each user The third line of the modifier calculates and stores rewards earned by each user: ```solidity rewards[account] = calculateUserRewards(account); ``` The implementation of `calculateUserRewards` goes as follows: ```solidity /// @return earned The amount available as rewards for the account. function calculateUserRewards(address account) public view returns (uint256 earned) { // Return if no tokens are staked. if (stakedStreams[account] == 0) { return rewards[account]; } uint256 amountInStream = _getAmountInStream(stakedStreams[account]); // Get the rewards already paid to the user per ERC-20 token. uint256 userRewardPerERC20Token_ = userRewardPerERC20Token[account]; uint256 rewardsSinceLastTime = (amountInStream * (rewardPaidPerERC20Token() - userRewardPerERC20Token_)) / 1e18; return rewardsSinceLastTime + rewards[account]; } ``` ### Update user rewards per ERC-20 token The final step is to set the cumulative reward per token for the user: ```solidity userRewardPerERC20Token[account] = totalRewardPaidPerERC20Token; ``` Each time this modifier is called, it updates the value of `totalRewardPaidPerERC20Token` based on the total staked supply at that moment. This ensures that the cumulative rewards earned per ERC-20 token are tracked accurately, so users do not lose out on their rewards even if they do not interact with the system for an extended period. :::info Let us understand this with a simple example. Let's say the reward rate is 100 tokens per hour. 1. A user stakes 100 tokens. 2. After one hour, a second user stakes 100 tokens. The `totalRewardPaidPerERC20Token` will be updated to 1. 3. After two hours, a third user stakes 200 tokens, which makes total tokens staked to be 400. The `totalRewardPaidPerERC20Token` will be updated to 1.5. Note that the modifier is called at the start of the function. 4. After three hours, the first user claims their rewards. The `totalRewardPaidPerERC20Token` will be updated to 1.75. `rewards[account]` will be set to 175, and the `userRewardPerERC20Token[account]` will be set to 1.75. The first user ends up with a reward of 175 tokens. Let us check if this is indeed correct. 1. First hour: Because the first user is the only staker, they should earn 100 tokens. 2. 2nd hour: Now because of the second user, the first user should earn 50 tokens. 3. 3rd hour: The first user should earn 25 tokens. QED. ::: --- ## Claim Rewards This function transfers the rewards earned by `msg.sender` and then resets the value of `rewards` storage variable to zero. ```solidity function claimRewards() public updateReward(msg.sender) { uint256 reward = rewards[msg.sender]; if (reward > 0) { delete rewards[msg.sender]; rewardERC20Token.safeTransfer(msg.sender, reward); emit RewardPaid(msg.sender, reward); } } ``` --- ## Unstake The `unstake` function takes `streamId` as input, and unstakes the stream by transferring the Sablier NFT back to the user. ```solidity function unstake(uint256 streamId) public updateReward(msg.sender) { // code goes here. } ``` As the first step, we will check if the user is a staker. ```solidity if (stakedUsers[streamId] != msg.sender) { revert UnauthorizedCaller(msg.sender, streamId); } ``` As the second step, we will reduce the total amount of underlying ERC20 token staked. ```solidity totalERC20StakedSupply -= _getAmountInStream(streamId); ``` As the final step, we will update some storage variables and transfer the NFT: ```solidity delete stakedUsers[streamId]; delete stakedStreams[account]; sablierLockup.safeTransferFrom({ from: address(this), to: account, tokenId: streamId }); ``` --- ## Set Up Your Contract The "Stream Management" series will guide you through how to withdraw, cancel, renounce, and transfer ownership of streams. Before diving in, please note the following: 1. We assume you are already familiar with [creating streams](/guides/lockup/examples/create-stream/lockup-linear). 2. We also assume that the stream management contract is authorized to invoke each respective function. To learn more about access control in Lockup, see the [Access Control](/reference/lockup/access-control) guide. With that said, let's begin. First, declare the Solidity version used to compile the contract: ```solidity // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.22; ``` Import the relevant symbols from `@sablier/core`: ```solidity ``` Create a contract called `StreamManagement` and declare an immutable variable `sablier` of type `ISablierLockup`: ```solidity contract StreamManagement { ISablierLockup public immutable sablier; } ``` Just like in the create stream guides, the next step requires you to head over to the [Deployment Addresses](/guides/lockup/deployments) page and copy the address of the Lockup contract. Then, you can deploy the stream management contract: ```solidity constructor(ISablierLockup sablier_) { sablier = sablier_; } ``` You're all set! You can now move on to the next page, which will teach you how to withdraw from a stream. --- ## Withdraw from Streams :::note This section assumes that you have already gone through the [setup](/guides/lockup/examples/stream-management/setup) part. ::: :::tip See the [Access Control](/reference/lockup/access-control) guide for an overview of who is allowed to withdraw from streams. ::: Withdrawing from streams means claiming the tokens that have become due to the recipient, who has the option to direct the withdrawal to an alternative address of their choice. There are four withdrawal functions: 1. [`withdraw`](/reference/lockup/contracts/abstracts/abstract.SablierLockupBase#withdraw): withdraws a specific amount of tokens. 2. [`withdrawMax`](/reference/lockup/contracts/abstracts/abstract.SablierLockupBase#withdrawmax): withdraws the maximum withdrawable amount of tokens. 3. [`withdrawMaxAndTransfer`](/reference/lockup/contracts/abstracts/abstract.SablierLockupBase#withdrawmaxandtransfer): withdraws the maximum withdrawable amount and transfers the NFT. 4. [`withdrawMultiple`](/reference/lockup/contracts/abstracts/abstract.SablierLockupBase#withdrawmultiple): withdraws specific amounts of tokens from multiple streams at once. To call any of these functions, you need to have created a stream. If you don't have one yet, go back to the [previous guide](/guides/lockup/examples/create-stream/lockup-linear) and create a stream with a brief duration, assigning the `StreamManagement` contract as the recipient. Then, you can use the `withdraw` function like this: {`https://github.com/sablier-labs/examples/blob/main/lockup/StreamManagement.sol#L20-L22`} In this example, the withdrawal address and withdrawal amount are hard-coded for demonstration purposes. However, in a production environment, these values would likely be adjustable parameters determined by the user. Alternatively, you can use [`withdrawableAmountOf`](/reference/lockup/contracts/abstracts/abstract.SablierLockupBase#withdrawableamountof) function to determine how much amount of tokens is available to withdraw. In addition to the `withdraw` function, there is the `withdrawMax` function, which you can use to withdraw the maximum withdrawable amount of tokens at the time of invocation: {`https://github.com/sablier-labs/examples/blob/main/lockup/StreamManagement.sol#L25-L27`} What `withdrawMax` does is call the [`withdrawableAmountOf`](/reference/lockup/contracts/abstracts/abstract.SablierLockupBase#withdrawableamountof) function and pass its value to `withdraw`. Similar to `withdrawMax`, you can use `withdrawMaxAndTransfer` to withdraw the maximum withdrawable tokens and at the same time, transfer the NFT to another address. Lastly, there is the `withdrawMultiple` function, with which you can use to withdraw from multiple streams at once: {`https://github.com/sablier-labs/examples/blob/main/lockup/StreamManagement.sol#L30-L32`} --- ## Cancel Streams :::note This section assumes that you have already gone through the [setup](/guides/lockup/examples/stream-management/setup) part. ::: :::tip See the [Access Control](/reference/lockup/access-control) guide for an overview of who is allowed to cancel streams. ::: Canceling streams involves stopping the flow of tokens before the stream's end time and refunding the remaining funds to the sender. However, the portion that has already been streamed is NOT automatically transferred - the recipient will need to withdraw it. There are two functions that can be used to cancel streams: 1. [`cancel`](/reference/lockup/contracts/abstracts/abstract.SablierLockupBase#cancel): cancels a single stream 2. [`cancelMultiple`](/reference/lockup/contracts/abstracts/abstract.SablierLockupBase#cancelmultiple): cancels multiple streams at once To call any of these functions, you need to have created a cancelable stream. If you don't have one yet, go back to the [previous guide](/guides/lockup/examples/create-stream/lockup-linear) and create a stream. Then, you can use the `cancel` function like this: {`https://github.com/sablier-labs/examples/blob/main/lockup/StreamManagement.sol#L39-L41`} In addition to the `cancel` function, there is the `cancelMultiple` function, which allows you to cancel several streams at once: {`https://github.com/sablier-labs/examples/blob/main/lockup/StreamManagement.sol#L44-L46`} --- ## Renounce Streams :::note This section assumes that you have already gone through the [setup](/guides/lockup/examples/stream-management/setup) part. ::: Renouncing a stream means that the sender of the stream will no longer be able to cancel it. This is useful if the sender wants to give up control of the stream. To renounce a stream, you can use [`renounce`](/reference/lockup/contracts/abstracts/abstract.SablierLockupBase#renounce). Before invoking this function, ensure that you have an active, cancelable stream with the sender set to the `StreamManagement` contract. Once the stream is created, you can use the `renounce` function like this: {`https://github.com/sablier-labs/examples/blob/main/lockup/StreamManagement.sol#L53-L55`} --- ## Transfer Ownership :::note This section assumes that you have already gone through the [setup](/guides/lockup/examples/stream-management/setup) part. ::: :::tip See the [Access Control](/reference/lockup/access-control) guide for an overview of who is allowed to transfer ownership. ::: You may remember from the [NFT](/concepts/nft) guide that every Lockup stream is wrapped in an [ERC-721](https://eips.ethereum.org/EIPS/eip-721) non-fungible token (NFT). One of the key benefits of this design is that the recipient of the stream has the ability to transfer the NFT to a different address, effectively redirecting the streaming of tokens to that new address. To transfer ownership of a stream, it is recommended to invoke the [`withdrawMaxAndTransfer`](/reference/lockup/contracts/abstracts/abstract.SablierLockupBase#withdrawmaxandtransfer) function, which withdraws all the unclaimed funds to the current recipient prior to transferring ownership to the new recipient: {`https://github.com/sablier-labs/examples/blob/main/lockup/StreamManagement.sol#L72-L74`} The withdrawal will be skipped if there are no unclaimed funds. If you want to transfer ownership without withdrawing the funds, you can use the `IERC721.transferFrom` function: {`https://github.com/sablier-labs/examples/blob/main/lockup/StreamManagement.sol#L67-L69`} :::caution Be careful with `transferFrom`. All remaining funds, including the already streamed portion, will enter into the possession of the new recipient. Consider using `withdrawMaxAndTransfer` instead. ::: Finally, note that in the examples above, the new recipient is hard-coded for demonstration purposes. However, in a production environment, the new recipient would definitely be an adjustable parameter provided by the user. --- ## v1.0 # Lockup v1.0 This section contains the deployment addresses for the v1.0 release of [@sablier/v2-core@1.0.2][v2-core] and [@sablier/v2-periphery@1.0.3][v2-periphery]. [v2-core]: https://npmjs.com/package/@sablier/v2-core/v/1.0.2 [v2-periphery]: https://npmjs.com/package/@sablier/v2-periphery/v/1.0.3 A few noteworthy details about the deployments: - The addresses are final - All contracts are non-upgradeable - The source code is verified on Etherscan across all chains :::info This is an outdated version of the Lockup protocol. See the latest version [here](/guides/lockup/deployments). ::: ## Mainnets ### Arbitrum | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x17Ec73692F0aDf7E7C554822FBEAACB4BE781762`](https://arbiscan.io/address/0x17Ec73692F0aDf7E7C554822FBEAACB4BE781762) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupDynamic | [`0xA9EfBEf1A35fF80041F567391bdc9813b2D50197`](https://arbiscan.io/address/0xA9EfBEf1A35fF80041F567391bdc9813b2D50197) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupLinear | [`0x197D655F3be03903fD25e7828c3534504bfe525e`](https://arbiscan.io/address/0x197D655F3be03903fD25e7828c3534504bfe525e) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2NFTDescriptor | [`0xc245d6C9608769CeF91C3858e4d2a74802B9f1bB`](https://arbiscan.io/address/0xc245d6C9608769CeF91C3858e4d2a74802B9f1bB) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2Archive | [`0xDFa4512d07AbD4eb8Be570Cd79e2e6Fe21ff15C9`](https://arbiscan.io/address/0xDFa4512d07AbD4eb8Be570Cd79e2e6Fe21ff15C9) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyPlugin | [`0x9aB73CA73c89AF0bdc69642aCeb23CC6A55A514C`](https://arbiscan.io/address/0x9aB73CA73c89AF0bdc69642aCeb23CC6A55A514C) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTarget | [`0xB7185AcAF42C4966fFA3c81486d9ED9633aa4c13`](https://arbiscan.io/address/0xB7185AcAF42C4966fFA3c81486d9ED9633aa4c13) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTargetApprove | [`0x90cc23dc3e12e80f27c05b8137b5f0d2b1edfa20`](https://arbiscan.io/address/0x90cc23dc3e12e80f27c05b8137b5f0d2b1edfa20) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | ### Avalanche | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x66F5431B0765D984f82A4fc4551b2c9ccF7eAC9C`](https://snowtrace.io/address/0x66F5431B0765D984f82A4fc4551b2c9ccF7eAC9C) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupDynamic | [`0x665d1C8337F1035cfBe13DD94bB669110b975f5F`](https://snowtrace.io/address/0x665d1C8337F1035cfBe13DD94bB669110b975f5F) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupLinear | [`0x610346E9088AFA70D6B03e96A800B3267E75cA19`](https://snowtrace.io/address/0x610346E9088AFA70D6B03e96A800B3267E75cA19) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2NFTDescriptor | [`0xFd050AFA2e04aA0596947DaD3Ec5690162aDc77F`](https://snowtrace.io/address/0xFd050AFA2e04aA0596947DaD3Ec5690162aDc77F) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2Archive | [`0x7b1ef644ce9a625537e9e0c3d7fef3be667e6159`](https://snowtrace.io/address/0x7b1ef644ce9a625537e9e0c3d7fef3be667e6159) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyPlugin | [`0x17167A7e2763121e263B4331B700a1BF9113b387`](https://snowtrace.io/address/0x17167A7e2763121e263B4331B700a1BF9113b387) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTarget | [`0x48B4889cf5d6f8360050f9d7606505F1433120BC`](https://snowtrace.io/address/0x48B4889cf5d6f8360050f9d7606505F1433120BC) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTargetApprove | [`0x817fE1364A9d57d1fB951945B53942234163Ef10`](https://snowtrace.io/address/0x817fE1364A9d57d1fB951945B53942234163Ef10) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | ### Base | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x7Faaedd40B1385C118cA7432952D9DC6b5CbC49e`](https://basescan.org/address/0x7Faaedd40B1385C118cA7432952D9DC6b5CbC49e) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupDynamic | [`0x645B00960Dc352e699F89a81Fc845C0C645231cf`](https://basescan.org/address/0x645B00960Dc352e699F89a81Fc845C0C645231cf) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupLinear | [`0x6b9a46C8377f21517E65fa3899b3A9Fab19D17f5`](https://basescan.org/address/0x6b9a46C8377f21517E65fa3899b3A9Fab19D17f5) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2NFTDescriptor | [`0xEFc2896c29F70bc23e82892Df827d4e2259028Fd`](https://basescan.org/address/0xEFc2896c29F70bc23e82892Df827d4e2259028Fd) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2Archive | [`0x1C5Ac71dd48c7ff291743e5E6e3689ba92F73cC6`](https://basescan.org/address/0x1C5Ac71dd48c7ff291743e5E6e3689ba92F73cC6) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyPlugin | [`0x50E8B9dC7F28e5cA9253759455C1077e497c4232`](https://basescan.org/address/0x50E8B9dC7F28e5cA9253759455C1077e497c4232) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTarget | [`0x0648C80b969501c7778b6ff3ba47aBb78fEeDF39`](https://basescan.org/address/0x0648C80b969501c7778b6ff3ba47aBb78fEeDF39) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTargetApprove | [`0xf19576Ab425753816eCbF98aca8132A0f693aEc5`](https://basescan.org/address/0xf19576Ab425753816eCbF98aca8132A0f693aEc5) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | ### BNB Chain | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x33511f69A784Fd958E6713aCaC7c9dCF1A5578E8`](https://bscscan.com/address/0x33511f69A784Fd958E6713aCaC7c9dCF1A5578E8) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupDynamic | [`0xF2f3feF2454DcA59ECA929D2D8cD2a8669Cc6214`](https://bscscan.com/address/0xF2f3feF2454DcA59ECA929D2D8cD2a8669Cc6214) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupLinear | [`0x3FE4333f62A75c2a85C8211c6AeFd1b9Bfde6e51`](https://bscscan.com/address/0x3FE4333f62A75c2a85C8211c6AeFd1b9Bfde6e51) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2NFTDescriptor | [`0x3daD1bF57edCFF979Fb68a802AC54c5AAfB78F4c`](https://bscscan.com/address/0x3daD1bF57edCFF979Fb68a802AC54c5AAfB78F4c) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2Archive | [`0xeDe48EB173A869c0b27Cb98CC56d00BC391e5887`](https://bscscan.com/address/0xeDe48EB173A869c0b27Cb98CC56d00BC391e5887) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyPlugin | [`0xC43b2d8CedB71df30F45dFd9a21eC1E50A813bD6`](https://bscscan.com/address/0xC43b2d8CedB71df30F45dFd9a21eC1E50A813bD6) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTarget | [`0x135e78B8E17B1d189Af75FcfCC018ab2E6c7b879`](https://bscscan.com/address/0x135e78B8E17B1d189Af75FcfCC018ab2E6c7b879) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTargetApprove | [`0xc9bf2A6bD467A813908d836c1506efE61E465761`](https://bscscan.com/address/0xc9bf2A6bD467A813908d836c1506efE61E465761) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | ### Ethereum | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0xC3Be6BffAeab7B297c03383B4254aa3Af2b9a5BA`](https://etherscan.io/address/0xC3Be6BffAeab7B297c03383B4254aa3Af2b9a5BA) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupDynamic | [`0x39EFdC3dbB57B2388CcC4bb40aC4CB1226Bc9E44`](https://etherscan.io/address/0x39EFdC3dbB57B2388CcC4bb40aC4CB1226Bc9E44) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupLinear | [`0xB10daee1FCF62243aE27776D7a92D39dC8740f95`](https://etherscan.io/address/0xB10daee1FCF62243aE27776D7a92D39dC8740f95) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2NFTDescriptor | [`0x98F2196fECc01C240d1429B624d007Ca268EEA29`](https://etherscan.io/address/0x98F2196fECc01C240d1429B624d007Ca268EEA29) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2Archive | [`0x0Be20a8242B0781B6fd4d453e90DCC1CcF7DBcc6`](https://etherscan.io/address/0x0Be20a8242B0781B6fd4d453e90DCC1CcF7DBcc6) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyPlugin | [`0x9bdebF4F9adEB99387f46e4020FBf3dDa885D2b8`](https://etherscan.io/address/0x9bdebF4F9adEB99387f46e4020FBf3dDa885D2b8) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTarget | [`0x297b43aE44660cA7826ef92D8353324C018573Ef`](https://etherscan.io/address/0x297b43aE44660cA7826ef92D8353324C018573Ef) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTargetApprove | [`0x638a7aC8315767cEAfc57a6f5e3559454347C3f6`](https://etherscan.io/address/0x638a7aC8315767cEAfc57a6f5e3559454347C3f6) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | ### Gnosis | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x73962c44c0fB4cC5e4545FB91732a5c5e87F55C2`](https://gnosisscan.io/address/0x73962c44c0fB4cC5e4545FB91732a5c5e87F55C2) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupDynamic | [`0xeb148E4ec13aaA65328c0BA089a278138E9E53F9`](https://gnosisscan.io/address/0xeb148E4ec13aaA65328c0BA089a278138E9E53F9) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupLinear | [`0x685E92c9cA2bB23f1B596d0a7D749c0603e88585`](https://gnosisscan.io/address/0x685E92c9cA2bB23f1B596d0a7D749c0603e88585) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2NFTDescriptor | [`0x8CE9Cd651e03325Cf6D4Ce9cfa74BE79CDf6d530`](https://gnosisscan.io/address/0x8CE9Cd651e03325Cf6D4Ce9cfa74BE79CDf6d530) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2Archive | [`0xF4A6F47Da7c6b26b6Dd774671aABA48fb4bFE309`](https://gnosisscan.io/address/0xF4A6F47Da7c6b26b6Dd774671aABA48fb4bFE309) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyPlugin | [`0xc84f0e95815A576171A19EB9E0fA55a217Ab1536`](https://gnosisscan.io/address/0xc84f0e95815A576171A19EB9E0fA55a217Ab1536) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTarget | [`0x5B144C3B9C8cfd48297Aeb59B90a024Ef3fCcE92`](https://gnosisscan.io/address/0x5B144C3B9C8cfd48297Aeb59B90a024Ef3fCcE92) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTargetApprove | [`0x89AfE038714e547C29Fa881029DD4B5CFB008454`](https://gnosisscan.io/address/0x89AfE038714e547C29Fa881029DD4B5CFB008454) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | ### OP Mainnet | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x1EECb6e6EaE6a1eD1CCB4323F3a146A7C5443A10`](https://optimistic.etherscan.io/address/0x1EECb6e6EaE6a1eD1CCB4323F3a146A7C5443A10) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupDynamic | [`0x6f68516c21E248cdDfaf4898e66b2b0Adee0e0d6`](https://optimistic.etherscan.io/address/0x6f68516c21E248cdDfaf4898e66b2b0Adee0e0d6) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupLinear | [`0xB923aBdCA17Aed90EB5EC5E407bd37164f632bFD`](https://optimistic.etherscan.io/address/0xB923aBdCA17Aed90EB5EC5E407bd37164f632bFD) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2NFTDescriptor | [`0xe0138C596939CC0D2382046795bC163ad5755e0E`](https://optimistic.etherscan.io/address/0xe0138C596939CC0D2382046795bC163ad5755e0E) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2Archive | [`0x9A09eC6f991386718854aDDCEe68647776Befd5b`](https://optimistic.etherscan.io/address/0x9A09eC6f991386718854aDDCEe68647776Befd5b) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyPlugin | [`0x77C8516B1F327890C956bb38F93Ac2d6B24795Ea`](https://optimistic.etherscan.io/address/0x77C8516B1F327890C956bb38F93Ac2d6B24795Ea) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTarget | [`0x194ed7D6005C8ba4084A948406545DF299ad37cD`](https://optimistic.etherscan.io/address/0x194ed7D6005C8ba4084A948406545DF299ad37cD) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTargetApprove | [`0x8a6974c162fdc7Cb67996F7dB8bAAFb9a99566e0`](https://optimistic.etherscan.io/address/0x8a6974c162fdc7Cb67996F7dB8bAAFb9a99566e0) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | ### Polygon | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x9761692EDf10F5F2A69f0150e2fd50dcecf05F2E`](https://polygonscan.com/address/0x9761692EDf10F5F2A69f0150e2fd50dcecf05F2E) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupDynamic | [`0x7313AdDb53f96a4f710D3b91645c62B434190725`](https://polygonscan.com/address/0x7313AdDb53f96a4f710D3b91645c62B434190725) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupLinear | [`0x67422C3E36A908D5C3237e9cFfEB40bDE7060f6E`](https://polygonscan.com/address/0x67422C3E36A908D5C3237e9cFfEB40bDE7060f6E) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2NFTDescriptor | [`0xA820946EaAceB2a85aF123f706f23192c28bC6B9`](https://polygonscan.com/address/0xA820946EaAceB2a85aF123f706f23192c28bC6B9) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2Archive | [`0xA2f5B2e798e7ADd59d85d9b76645E6AC13fC4e1f`](https://polygonscan.com/address/0xA2f5B2e798e7ADd59d85d9b76645E6AC13fC4e1f) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyPlugin | [`0xBe4cad0e99865CC62787Ecf029aD9DD4815d3d2e`](https://polygonscan.com/address/0xBe4cad0e99865CC62787Ecf029aD9DD4815d3d2e) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTarget | [`0x576743075fc5F771bbC1376c3267A6185Af9D62B`](https://polygonscan.com/address/0x576743075fc5F771bbC1376c3267A6185Af9D62B) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTargetApprove | [`0xccA6dd77bA2cfcccEdA01A82CB309e2A17901682`](https://polygonscan.com/address/0xccA6dd77bA2cfcccEdA01A82CB309e2A17901682) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | ### Scroll | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x859708495E3B3c61Bbe19e6E3E1F41dE3A5C5C5b`](https://scrollscan.com/address/0x859708495E3B3c61Bbe19e6E3E1F41dE3A5C5C5b) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupDynamic | [`0xde6a30D851eFD0Fc2a9C922F294801Cfd5FCB3A1`](https://scrollscan.com/address/0xde6a30D851eFD0Fc2a9C922F294801Cfd5FCB3A1) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupLinear | [`0x80640ca758615ee83801EC43452feEA09a202D33`](https://scrollscan.com/address/0x80640ca758615ee83801EC43452feEA09a202D33) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2NFTDescriptor | [`0xC1fa624733203F2B7185c3724039C4D5E5234fE4`](https://scrollscan.com/address/0xC1fa624733203F2B7185c3724039C4D5E5234fE4) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2Archive | [`0x94A18AC6e4B7d97E31f1587f6a666Dc5503086c3`](https://scrollscan.com/address/0x94A18AC6e4B7d97E31f1587f6a666Dc5503086c3) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyPlugin | [`0xED1591BD6038032a74D786A452A23536b3201490`](https://scrollscan.com/address/0xED1591BD6038032a74D786A452A23536b3201490) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTarget | [`0x91154fc80933D25793E6B4D7CE19fb51dE6794B7`](https://scrollscan.com/address/0x91154fc80933D25793E6B4D7CE19fb51dE6794B7) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTargetApprove | [`0x71CeA9c4d15fed2E58785cE0C05165CE34313A74`](https://scrollscan.com/address/0x71CeA9c4d15fed2E58785cE0C05165CE34313A74) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | ## Testnets ### Arbitrum Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0xA6A0cfA3442053fbB516D55205A749Ef2D33aed9`](https://sepolia.arbiscan.io/address/0xA6A0cfA3442053fbB516D55205A749Ef2D33aed9) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupDynamic | [`0x7938c18a59FaD2bA11426AcfBe8d74F0F598a4D2`](https://sepolia.arbiscan.io/address/0x7938c18a59FaD2bA11426AcfBe8d74F0F598a4D2) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupLinear | [`0xa3e36b51B7A456812c92253780f4B15bad56e34c`](https://sepolia.arbiscan.io/address/0xa3e36b51B7A456812c92253780f4B15bad56e34c) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2NFTDescriptor | [`0xEe93BFf599C17C6fF8e31F2De6c3e40bd5e51312`](https://sepolia.arbiscan.io/address/0xEe93BFf599C17C6fF8e31F2De6c3e40bd5e51312) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2Archive | [`0x2C8fA48361C7D48Dc21b27a3D549402Cf8AE16B0`](https://sepolia.arbiscan.io/address/0x2C8fA48361C7D48Dc21b27a3D549402Cf8AE16B0) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyPlugin | [`0x7D310803c3824636bAff74e4f80e81ece167c440`](https://sepolia.arbiscan.io/address/0x7D310803c3824636bAff74e4f80e81ece167c440) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTarget | [`0x396A3a169918A4C0B339ECf86C583f46D696254E`](https://sepolia.arbiscan.io/address/0x396A3a169918A4C0B339ECf86C583f46D696254E) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | ### Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x2006d43E65e66C5FF20254836E63947FA8bAaD68`](https://sepolia.etherscan.io/address/0x2006d43E65e66C5FF20254836E63947FA8bAaD68) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupDynamic | [`0x421e1E7a53FF360f70A2D02037Ee394FA474e035`](https://sepolia.etherscan.io/address/0x421e1E7a53FF360f70A2D02037Ee394FA474e035) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2LockupLinear | [`0xd4300c5bc0b9e27c73ebabdc747ba990b1b570db`](https://sepolia.etherscan.io/address/0xd4300c5bc0b9e27c73ebabdc747ba990b1b570db) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2NFTDescriptor | [`0x3cb51943EbcEA05B23C35c50491B3d296FF675db`](https://sepolia.etherscan.io/address/0x3cb51943EbcEA05B23C35c50491B3d296FF675db) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2Archive | [`0x83495d8DF6221f566232e1353a6e7231A86C61fF`](https://sepolia.etherscan.io/address/0x83495d8DF6221f566232e1353a6e7231A86C61fF) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyPlugin | [`0xa333c8233CfD04740E64AB4fd5447995E357561B`](https://sepolia.etherscan.io/address/0xa333c8233CfD04740E64AB4fd5447995E357561B) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTarget | [`0x5091900B7cF803a7407FCE6333A6bAE4aA779Fd4`](https://sepolia.etherscan.io/address/0x5091900B7cF803a7407FCE6333A6bAE4aA779Fd4) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | | SablierV2ProxyTargetApprove | [`0x105E7728C5706Ad41d194EbDc7873B047352F3d2`](https://sepolia.etherscan.io/address/0x105E7728C5706Ad41d194EbDc7873B047352F3d2) | [`lockup-v1.0`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.0) | --- ## v1.1 # Lockup v1.1 This section contains the deployment addresses for the v1.1 release of [@sablier/v2-core@1.1.2][v2-core] and [@sablier/v2-periphery@1.1.1][v2-periphery]. [v2-core]: https://npmjs.com/package/@sablier/v2-core/v/1.1.2 [v2-periphery]: https://npmjs.com/package/@sablier/v2-periphery/v/1.1.1 A few noteworthy details about the deployments: - The addresses are final - All contracts are non-upgradeable - The source code is verified on Etherscan across all chains :::info This is an outdated version of the Lockup protocol. See the latest version [here](/guides/lockup/deployments). ::: ## Mainnets ### Arbitrum | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x17Ec73692F0aDf7E7C554822FBEAACB4BE781762`](https://arbiscan.io/address/0x17Ec73692F0aDf7E7C554822FBEAACB4BE781762) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xf390cE6f54e4dc7C5A5f7f8689062b7591F7111d`](https://arbiscan.io/address/0xf390cE6f54e4dc7C5A5f7f8689062b7591F7111d) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0xFDD9d122B451F549f48c4942c6fa6646D849e8C1`](https://arbiscan.io/address/0xFDD9d122B451F549f48c4942c6fa6646D849e8C1) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0x2fb103fC853b2F5022a840091ab1cDf5172E7cfa`](https://arbiscan.io/address/0x2fb103fC853b2F5022a840091ab1cDf5172E7cfa) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0xAFd1434296e29a0711E24014656158055F00784c`](https://arbiscan.io/address/0xAFd1434296e29a0711E24014656158055F00784c) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x237400eF5a41886a75B0e036228221Df075b3B80`](https://arbiscan.io/address/0x237400eF5a41886a75B0e036228221Df075b3B80) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Avalanche | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x66F5431B0765D984f82A4fc4551b2c9ccF7eAC9C`](https://snowtrace.io/address/0x66F5431B0765D984f82A4fc4551b2c9ccF7eAC9C) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0x0310Da0D8fF141166eD47548f00c96464880781F`](https://snowtrace.io/address/0x0310Da0D8fF141166eD47548f00c96464880781F) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0xB24B65E015620455bB41deAAd4e1902f1Be9805f`](https://snowtrace.io/address/0xB24B65E015620455bB41deAAd4e1902f1Be9805f) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0xaBEdCf46c5D1d8eD8B9a487144189887695835DC`](https://snowtrace.io/address/0xaBEdCf46c5D1d8eD8B9a487144189887695835DC) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x68f156E5fa8C23D65B33aBEbbA50e0CA3626F741`](https://snowtrace.io/address/0x68f156E5fa8C23D65B33aBEbbA50e0CA3626F741) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x4849e797d7Aab20FCC8f807EfafDffF98A83412E`](https://snowtrace.io/address/0x4849e797d7Aab20FCC8f807EfafDffF98A83412E) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Base | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x7Faaedd40B1385C118cA7432952D9DC6b5CbC49e`](https://basescan.org/address/0x7Faaedd40B1385C118cA7432952D9DC6b5CbC49e) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0x461E13056a3a3265CEF4c593F01b2e960755dE91`](https://basescan.org/address/0x461E13056a3a3265CEF4c593F01b2e960755dE91) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0xFCF737582d167c7D20A336532eb8BCcA8CF8e350`](https://basescan.org/address/0xFCF737582d167c7D20A336532eb8BCcA8CF8e350) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0x67e0a126b695DBA35128860cd61926B90C420Ceb`](https://basescan.org/address/0x67e0a126b695DBA35128860cd61926B90C420Ceb) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x94E596EEd73b4e3171c067f05A87AB0268cA993c`](https://basescan.org/address/0x94E596EEd73b4e3171c067f05A87AB0268cA993c) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x5545c8E7c3E1F74aDc98e518F2E8D23A002C4412`](https://basescan.org/address/0x5545c8E7c3E1F74aDc98e518F2E8D23A002C4412) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Blast | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x2De92156000269fa2fde7544F10f01E8cBC80fFa`](https://blastscan.io/address/0x2De92156000269fa2fde7544F10f01E8cBC80fFa) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xDf578C2c70A86945999c65961417057363530a1c`](https://blastscan.io/address/0xDf578C2c70A86945999c65961417057363530a1c) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0xcb099EfC90e88690e287259410B9AE63e1658CC6`](https://blastscan.io/address/0xcb099EfC90e88690e287259410B9AE63e1658CC6) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0xCff4a803b0Bf55dD1BE38Fb96088478F3D2eeCF2`](https://blastscan.io/address/0xCff4a803b0Bf55dD1BE38Fb96088478F3D2eeCF2) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x0eDA15D606733f6CDe9DB67263E546bfcDDe9264`](https://blastscan.io/address/0x0eDA15D606733f6CDe9DB67263E546bfcDDe9264) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a`](https://blastscan.io/address/0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### BNB Chain | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x33511f69A784Fd958E6713aCaC7c9dCF1A5578E8`](https://bscscan.com/address/0x33511f69A784Fd958E6713aCaC7c9dCF1A5578E8) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xf900c5E3aA95B59Cc976e6bc9c0998618729a5fa`](https://bscscan.com/address/0xf900c5E3aA95B59Cc976e6bc9c0998618729a5fa) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0x14c35E126d75234a90c9fb185BF8ad3eDB6A90D2`](https://bscscan.com/address/0x14c35E126d75234a90c9fb185BF8ad3eDB6A90D2) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0xEcAfcF09c23057210cB6470eB5D0FD8Bafd1755F`](https://bscscan.com/address/0xEcAfcF09c23057210cB6470eB5D0FD8Bafd1755F) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x2E30a2ae6565Db78C06C28dE937F668597c80a1c`](https://bscscan.com/address/0x2E30a2ae6565Db78C06C28dE937F668597c80a1c) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x434D73465aAc4125d204A6637eB6C579d8D69f48`](https://bscscan.com/address/0x434D73465aAc4125d204A6637eB6C579d8D69f48) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Ethereum | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0xC3Be6BffAeab7B297c03383B4254aa3Af2b9a5BA`](https://etherscan.io/address/0xC3Be6BffAeab7B297c03383B4254aa3Af2b9a5BA) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0x7CC7e125d83A581ff438608490Cc0f7bDff79127`](https://etherscan.io/address/0x7CC7e125d83A581ff438608490Cc0f7bDff79127) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0xAFb979d9afAd1aD27C5eFf4E27226E3AB9e5dCC9`](https://etherscan.io/address/0xAFb979d9afAd1aD27C5eFf4E27226E3AB9e5dCC9) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0x23eD5DA55AF4286c0dE55fAcb414dEE2e317F4CB`](https://etherscan.io/address/0x23eD5DA55AF4286c0dE55fAcb414dEE2e317F4CB) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0xEa07DdBBeA804E7fe66b958329F8Fa5cDA95Bd55`](https://etherscan.io/address/0xEa07DdBBeA804E7fe66b958329F8Fa5cDA95Bd55) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x1A272b596b10f02931480BC7a3617db4a8d154E3`](https://etherscan.io/address/0x1A272b596b10f02931480BC7a3617db4a8d154E3) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Gnosis | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x73962c44c0fB4cC5e4545FB91732a5c5e87F55C2`](https://gnosisscan.io/address/0x73962c44c0fB4cC5e4545FB91732a5c5e87F55C2) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0x1DF83C7682080B0f0c26a20C6C9CB8623e0Df24E`](https://gnosisscan.io/address/0x1DF83C7682080B0f0c26a20C6C9CB8623e0Df24E) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0xce49854a647a1723e8Fb7CC3D190CAB29A44aB48`](https://gnosisscan.io/address/0xce49854a647a1723e8Fb7CC3D190CAB29A44aB48) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0x01dbFE22205d8B109959e2Be02d0095379309eed`](https://gnosisscan.io/address/0x01dbFE22205d8B109959e2Be02d0095379309eed) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0xBd9DDbC55B85FF6Dc0b76E9EFdCd2547Ab482501`](https://gnosisscan.io/address/0xBd9DDbC55B85FF6Dc0b76E9EFdCd2547Ab482501) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x777F66477FF83aBabADf39a3F22A8CC3AEE43765`](https://gnosisscan.io/address/0x777F66477FF83aBabADf39a3F22A8CC3AEE43765) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Lightlink | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0xb568f9Bc0dcE39B9B64e843bC19DA102B5E3E939`](https://phoenix.lightlink.io/address/0xb568f9Bc0dcE39B9B64e843bC19DA102B5E3E939) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0x49d753422ff05daa291A9efa383E4f57daEAd889`](https://phoenix.lightlink.io/address/0x49d753422ff05daa291A9efa383E4f57daEAd889) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0x17c4f98c40e69a6A0D5c42B11E3733f076A99E20`](https://phoenix.lightlink.io/address/0x17c4f98c40e69a6A0D5c42B11E3733f076A99E20) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0xda55fB3E53b7d205e37B6bdCe990b789255e4302`](https://phoenix.lightlink.io/address/0xda55fB3E53b7d205e37B6bdCe990b789255e4302) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x3eb9F8f80354a157315Fce64990C554434690c2f`](https://phoenix.lightlink.io/address/0x3eb9F8f80354a157315Fce64990C554434690c2f) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0xdB07a1749D5Ca49909C7C4159652Fbd527c735B8`](https://phoenix.lightlink.io/address/0xdB07a1749D5Ca49909C7C4159652Fbd527c735B8) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### OP Mainnet | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x1EECb6e6EaE6a1eD1CCB4323F3a146A7C5443A10`](https://optimistic.etherscan.io/address/0x1EECb6e6EaE6a1eD1CCB4323F3a146A7C5443A10) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xd6920c1094eABC4b71f3dC411A1566f64f4c206e`](https://optimistic.etherscan.io/address/0xd6920c1094eABC4b71f3dC411A1566f64f4c206e) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0x4b45090152a5731b5bc71b5baF71E60e05B33867`](https://optimistic.etherscan.io/address/0x4b45090152a5731b5bc71b5baF71E60e05B33867) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0xF5050c04425E639C647F5ED632218b16ce96694d`](https://optimistic.etherscan.io/address/0xF5050c04425E639C647F5ED632218b16ce96694d) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x8145429538dDBdDc4099B2bAfd24DD8958fa03b8`](https://optimistic.etherscan.io/address/0x8145429538dDBdDc4099B2bAfd24DD8958fa03b8) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x044EC80FbeC40f0eE7E7b3856828170971796C19`](https://optimistic.etherscan.io/address/0x044EC80FbeC40f0eE7E7b3856828170971796C19) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Polygon | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x9761692EDf10F5F2A69f0150e2fd50dcecf05F2E`](https://polygonscan.com/address/0x9761692EDf10F5F2A69f0150e2fd50dcecf05F2E) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xB194c7278C627D52E440316b74C5F24FC70c1565`](https://polygonscan.com/address/0xB194c7278C627D52E440316b74C5F24FC70c1565) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0x5f0e1dea4A635976ef51eC2a2ED41490d1eBa003`](https://polygonscan.com/address/0x5f0e1dea4A635976ef51eC2a2ED41490d1eBa003) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0x8683da9DF8c5c3528e8251a5764EC7DAc7264795`](https://polygonscan.com/address/0x8683da9DF8c5c3528e8251a5764EC7DAc7264795) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x5865C73789C4496665eDE1CAF018dc52ac248598`](https://polygonscan.com/address/0x5865C73789C4496665eDE1CAF018dc52ac248598) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0xF4906225e783fb8977410BDBFb960caBed6C2EF4`](https://polygonscan.com/address/0xF4906225e783fb8977410BDBFb960caBed6C2EF4) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Scroll | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x859708495E3B3c61Bbe19e6E3E1F41dE3A5C5C5b`](https://scrollscan.com/address/0x859708495E3B3c61Bbe19e6E3E1F41dE3A5C5C5b) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xAaff2D11f9e7Cd2A9cDC674931fAC0358a165995`](https://scrollscan.com/address/0xAaff2D11f9e7Cd2A9cDC674931fAC0358a165995) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0x57e14AB4DAd920548899d86B54AD47Ea27F00987`](https://scrollscan.com/address/0x57e14AB4DAd920548899d86B54AD47Ea27F00987) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0xB71440B85172332E8B768e85EdBfdb34CB457c1c`](https://scrollscan.com/address/0xB71440B85172332E8B768e85EdBfdb34CB457c1c) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0xD18faa233E02d41EDFFdb64f20281dE0592FA3b5`](https://scrollscan.com/address/0xD18faa233E02d41EDFFdb64f20281dE0592FA3b5) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0xb3ade5463000E6c0D376e7d7570f372eBf98BDAf`](https://scrollscan.com/address/0xb3ade5463000E6c0D376e7d7570f372eBf98BDAf) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### ZKsync Era | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0xD05bdb4cF6Be7D647c5FEcC7952660bdD82cE44C`](https://era.zksync.network//address/0xD05bdb4cF6Be7D647c5FEcC7952660bdD82cE44C) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xE6c7324BEA8474209103e407779Eec600c07cF3F`](https://era.zksync.network//address/0xE6c7324BEA8474209103e407779Eec600c07cF3F) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0x2FcA69fa0a318EFDf4c15eE8F13A873347a8A8D4`](https://era.zksync.network//address/0x2FcA69fa0a318EFDf4c15eE8F13A873347a8A8D4) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0xf12d2B8ff4Fc0495Db9c6d16b6a03bff9a10657A`](https://era.zksync.network//address/0xf12d2B8ff4Fc0495Db9c6d16b6a03bff9a10657A) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x37A20Fb12DD6e0ADA47B327C0466A231dDc4504A`](https://era.zksync.network//address/0x37A20Fb12DD6e0ADA47B327C0466A231dDc4504A) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x46DE683D20c3575A0381fFd66C10Ab6836390140`](https://era.zksync.network//address/0x46DE683D20c3575A0381fFd66C10Ab6836390140) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ## Testnets ### Arbitrum Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0xA6A0cfA3442053fbB516D55205A749Ef2D33aed9`](https://sepolia.arbiscan.io/address/0xA6A0cfA3442053fbB516D55205A749Ef2D33aed9) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0x8c8102b92B1f31cC304A085D490796f4DfdF7aF3`](https://sepolia.arbiscan.io/address/0x8c8102b92B1f31cC304A085D490796f4DfdF7aF3) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0x483bdd560dE53DC20f72dC66ACdB622C5075de34`](https://sepolia.arbiscan.io/address/0x483bdd560dE53DC20f72dC66ACdB622C5075de34) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0x593050f0360518C3A4F11c32Eb936146e1096FD1`](https://sepolia.arbiscan.io/address/0x593050f0360518C3A4F11c32Eb936146e1096FD1) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x72D921E579aB7FC5D19CD398B6be24d626Ccb6e7`](https://sepolia.arbiscan.io/address/0x72D921E579aB7FC5D19CD398B6be24d626Ccb6e7) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0xcc87b1A4de285832f226BD585bd54a2184D32105`](https://sepolia.arbiscan.io/address/0xcc87b1A4de285832f226BD585bd54a2184D32105) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Base Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x90b1C663314cFb55c8FF6f9a50a8D57a2D83a664`](https://sepolia.basescan.org/address/0x90b1C663314cFb55c8FF6f9a50a8D57a2D83a664) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xF46d5fA9bFC964E8d06846c8739AEc69BC06344d`](https://sepolia.basescan.org/address/0xF46d5fA9bFC964E8d06846c8739AEc69BC06344d) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0xbd7AAA2984c0a887E93c66baae222749883763d3`](https://sepolia.basescan.org/address/0xbd7AAA2984c0a887E93c66baae222749883763d3) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0xb2b4b1E69B16411AEBD30c8EA5aB395E13069160`](https://sepolia.basescan.org/address/0xb2b4b1E69B16411AEBD30c8EA5aB395E13069160) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0xbD636B8EF09760aC91f6Df3c6AC5531250420200`](https://sepolia.basescan.org/address/0xbD636B8EF09760aC91f6Df3c6AC5531250420200) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0xf632521bbAb0dBC2bEf169865e6c8e285AFe0a42`](https://sepolia.basescan.org/address/0xf632521bbAb0dBC2bEf169865e6c8e285AFe0a42) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Blast Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x9e216126115AFcdA9531232D3B735731905B4DC4`](https://sepolia.blastscan.io/address/0x9e216126115AFcdA9531232D3B735731905B4DC4) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0x8aB55a8E046634D5AD87f64d65C1E96275e48712`](https://sepolia.blastscan.io/address/0x8aB55a8E046634D5AD87f64d65C1E96275e48712) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0xe31Ac61c7762930625D4700D7ea9282B7E57b816`](https://sepolia.blastscan.io/address/0xe31Ac61c7762930625D4700D7ea9282B7E57b816) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0x1e7217Aa198A17F79cc45aB5C90277Ff1d18b5DB`](https://sepolia.blastscan.io/address/0x1e7217Aa198A17F79cc45aB5C90277Ff1d18b5DB) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x72D91DB141fd38eD5DDc0D4b00BdDd2A17Cf6D55`](https://sepolia.blastscan.io/address/0x72D91DB141fd38eD5DDc0D4b00BdDd2A17Cf6D55) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x6F147f9A251A1F004A1d043b8E486aAb00A49cef`](https://sepolia.blastscan.io/address/0x6F147f9A251A1F004A1d043b8E486aAb00A49cef) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### OP Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x6587166c4F4E0b6203549463EbAB4dBeFA63fd8f`](https://optimism-sepolia.blockscout.com/address/0x6587166c4F4E0b6203549463EbAB4dBeFA63fd8f) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xf9e4095C1dfC058B34135C5c48cae66a8D2b3Aa5`](https://optimism-sepolia.blockscout.com/address/0xf9e4095C1dfC058B34135C5c48cae66a8D2b3Aa5) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0xe59D28bEF2D37E99b93E734ed1dDcFc4B9C1bf73`](https://optimism-sepolia.blockscout.com/address/0xe59D28bEF2D37E99b93E734ed1dDcFc4B9C1bf73) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0x3590f54c5d3d83BA68c17cF5C28DB89C5d1DfA10`](https://optimism-sepolia.blockscout.com/address/0x3590f54c5d3d83BA68c17cF5C28DB89C5d1DfA10) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x65D3A5b99372ef59E741EE768443dF884aB56E0b`](https://optimism-sepolia.blockscout.com/address/0x65D3A5b99372ef59E741EE768443dF884aB56E0b) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x9b6cC73522f22Ad3f2F8187e892A51b95f1A0E8a`](https://optimism-sepolia.blockscout.com/address/0x9b6cC73522f22Ad3f2F8187e892A51b95f1A0E8a) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x2006d43E65e66C5FF20254836E63947FA8bAaD68`](https://sepolia.etherscan.io/address/0x2006d43E65e66C5FF20254836E63947FA8bAaD68) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xc9940AD8F43aAD8e8f33A4D5dbBf0a8F7FF4429A`](https://sepolia.etherscan.io/address/0xc9940AD8F43aAD8e8f33A4D5dbBf0a8F7FF4429A) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0x7a43F8a888fa15e68C103E18b0439Eb1e98E4301`](https://sepolia.etherscan.io/address/0x7a43F8a888fa15e68C103E18b0439Eb1e98E4301) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0xE8fFEbA8963CD9302ffD39c704dc2c027128D36F`](https://sepolia.etherscan.io/address/0xE8fFEbA8963CD9302ffD39c704dc2c027128D36F) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0xd2569DC4A58dfE85d807Dffb976dbC0a3bf0B0Fb`](https://sepolia.etherscan.io/address/0xd2569DC4A58dfE85d807Dffb976dbC0a3bf0B0Fb) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0xBacC1d151A78eeD71D504f701c25E8739DC0262D`](https://sepolia.etherscan.io/address/0xBacC1d151A78eeD71D504f701c25E8739DC0262D) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### Taiko Hekla | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0x2De92156000269fa2fde7544F10f01E8cBC80fFa`](https://hekla.taikoscan.network/address/0x2De92156000269fa2fde7544F10f01E8cBC80fFa) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xDf578C2c70A86945999c65961417057363530a1c`](https://hekla.taikoscan.network/address/0xDf578C2c70A86945999c65961417057363530a1c) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0xcb099EfC90e88690e287259410B9AE63e1658CC6`](https://hekla.taikoscan.network/address/0xcb099EfC90e88690e287259410B9AE63e1658CC6) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0xCff4a803b0Bf55dD1BE38Fb96088478F3D2eeCF2`](https://hekla.taikoscan.network/address/0xCff4a803b0Bf55dD1BE38Fb96088478F3D2eeCF2) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0xd641a0E4509Cced67cC24E7BDcDe2a31b7F7cF77`](https://hekla.taikoscan.network/address/0xd641a0E4509Cced67cC24E7BDcDe2a31b7F7cF77) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0x29a8d9F67608d77D0B4544A70FC2ab80BA5525f5`](https://hekla.taikoscan.network/address/0x29a8d9F67608d77D0B4544A70FC2ab80BA5525f5) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | ### ZKsync Sepolia Testnet | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2Comptroller | [`0xEB4570723ae207a0473D73B3c2B255b0D5Ec9f01`](https://sepolia-era.zksync.network//address/0xEB4570723ae207a0473D73B3c2B255b0D5Ec9f01) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupDynamic | [`0xe101C69A6f9c071Ab79aEE0be56928565962F56d`](https://sepolia-era.zksync.network//address/0xe101C69A6f9c071Ab79aEE0be56928565962F56d) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2LockupLinear | [`0xdFC6F5D327dcF5DB579eC1b47fb260F93e042409`](https://sepolia-era.zksync.network//address/0xdFC6F5D327dcF5DB579eC1b47fb260F93e042409) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2NFTDescriptor | [`0xABF4a24519c9A3c68a354FD6d5D4429De0A0D36C`](https://sepolia-era.zksync.network//address/0xABF4a24519c9A3c68a354FD6d5D4429De0A0D36C) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2Batch | [`0x5F812F1332A2294149b9e1cBd216a5eED12cEbDD`](https://sepolia-era.zksync.network//address/0x5F812F1332A2294149b9e1cBd216a5eED12cEbDD) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | | SablierV2MerkleStreamerFactory | [`0xd9a834135c816FFd133a411a36219aAFD190fF97`](https://sepolia-era.zksync.network//address/0xd9a834135c816FFd133a411a36219aAFD190fF97) | [`lockup-v1.1`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.1) | --- ## v1.2 # Lockup v1.2 This section contains the deployment addresses for the v1.2 release of [@sablier/v2-core@1.2.0][v2-core] and [@sablier/v2-periphery@1.2.0][v2-periphery]. [v2-core]: https://npmjs.com/package/@sablier/v2-core/v/1.2.0 [v2-periphery]: https://npmjs.com/package/@sablier/v2-periphery/v/1.2.0 A few noteworthy details about the deployments: - The addresses are final - All contracts are non-upgradeable - The source code is verified on Etherscan across all chains :::info This is an outdated version of the Lockup protocol. See the latest version [here](/guides/lockup/deployments). ::: ## Mainnets ### Abstract | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xc69c06c030E825EDE13F1486078Aa9a2E2AAffaf`](https://abscan.org/address/0xc69c06c030E825EDE13F1486078Aa9a2E2AAffaf) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x7282d83E49363f373102d195F66649eBD6C57B9B`](https://abscan.org/address/0x7282d83E49363f373102d195F66649eBD6C57B9B) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x28fCAE6bda2546C93183EeC8638691B2EB184003`](https://abscan.org/address/0x28fCAE6bda2546C93183EeC8638691B2EB184003) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xAc2E42b520364940c90Ce164412Ca9BA212d014B`](https://abscan.org/address/0xAc2E42b520364940c90Ce164412Ca9BA212d014B) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x2F1eB117A87217E8bE9AA96795F69c9e380686Db`](https://abscan.org/address/0x2F1eB117A87217E8bE9AA96795F69c9e380686Db) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0xe2C0C3e0ff10Df4485a2dcbbdd1D002a40446164`](https://abscan.org/address/0xe2C0C3e0ff10Df4485a2dcbbdd1D002a40446164) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Arbitrum | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x53F5eEB133B99C6e59108F35bCC7a116da50c5ce`](https://arbiscan.io/address/0x53F5eEB133B99C6e59108F35bCC7a116da50c5ce) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x05a323a4C936fed6D02134c5f0877215CD186b51`](https://arbiscan.io/address/0x05a323a4C936fed6D02134c5f0877215CD186b51) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x0dA2c7Aa93E7CD43e6b8D043Aab5b85CfDDf3818`](https://arbiscan.io/address/0x0dA2c7Aa93E7CD43e6b8D043Aab5b85CfDDf3818) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xacA12cdC4DcD7063c82E69A358549ba082463608`](https://arbiscan.io/address/0xacA12cdC4DcD7063c82E69A358549ba082463608) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x785Edf1e617824A78EFE76295E040B1AE06002bf`](https://arbiscan.io/address/0x785Edf1e617824A78EFE76295E040B1AE06002bf) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0xc9A5a0Bc2D8E217BDbdFE7486E9E72c5c3308F01`](https://arbiscan.io/address/0xc9A5a0Bc2D8E217BDbdFE7486E9E72c5c3308F01) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Avalanche | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xE3826241E5EeBB3F5fEde33F9f677047674D3FBF`](https://snowtrace.io/address/0xE3826241E5EeBB3F5fEde33F9f677047674D3FBF) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0xc0bF14AfB95CA4C049BDc19E06a3531D8065F6Fd`](https://snowtrace.io/address/0xc0bF14AfB95CA4C049BDc19E06a3531D8065F6Fd) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xfA536049652BFb5f57ba8DCFbec1B2b2Dd9803D3`](https://snowtrace.io/address/0xfA536049652BFb5f57ba8DCFbec1B2b2Dd9803D3) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xcF24fb2a09227d955F8e9A12f36A26cf1ac079c6`](https://snowtrace.io/address/0xcF24fb2a09227d955F8e9A12f36A26cf1ac079c6) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xaBCdF4dcDBa57a04889784A670b862540758f9E7`](https://snowtrace.io/address/0xaBCdF4dcDBa57a04889784A670b862540758f9E7) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x0430ed39EA2789AcdF27b89268117EBABc8176D1`](https://snowtrace.io/address/0x0430ed39EA2789AcdF27b89268117EBABc8176D1) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Base | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xF9E9eD67DD2Fab3b3ca024A2d66Fcf0764d36742`](https://basescan.org/address/0xF9E9eD67DD2Fab3b3ca024A2d66Fcf0764d36742) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x4CB16D4153123A74Bc724d161050959754f378D8`](https://basescan.org/address/0x4CB16D4153123A74Bc724d161050959754f378D8) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xf4937657Ed8B3f3cB379Eed47b8818eE947BEb1e`](https://basescan.org/address/0xf4937657Ed8B3f3cB379Eed47b8818eE947BEb1e) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x0fF9d05E6331A43A906fE1440E0C9D0742F475A3`](https://basescan.org/address/0x0fF9d05E6331A43A906fE1440E0C9D0742F475A3) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xc1c548F980669615772dadcBfEBC29937c29481A`](https://basescan.org/address/0xc1c548F980669615772dadcBfEBC29937c29481A) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x58A51E5382318EeA6065BB7721eecdF4331c0B90`](https://basescan.org/address/0x58A51E5382318EeA6065BB7721eecdF4331c0B90) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Blast | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xA705DE617673e2Fe63a4Ea0E58c26897601D32A5`](https://blastscan.io/address/0xA705DE617673e2Fe63a4Ea0E58c26897601D32A5) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x9b1468d29b4A5869f00c92517c57f8656E928B93`](https://blastscan.io/address/0x9b1468d29b4A5869f00c92517c57f8656E928B93) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x91FB72e5297e2728c10FDe73BdE74A4888A68570`](https://blastscan.io/address/0x91FB72e5297e2728c10FDe73BdE74A4888A68570) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x5f111b49f8f8bdb4A6001701E0D330fF52D6B370`](https://blastscan.io/address/0x5f111b49f8f8bdb4A6001701E0D330fF52D6B370) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xdc988d7AD6F186ea4a236f3E61A45a7851edF84E`](https://blastscan.io/address/0xdc988d7AD6F186ea4a236f3E61A45a7851edF84E) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x3aBCDDa756d069Cf3c7a17410602343966EAFf27`](https://blastscan.io/address/0x3aBCDDa756d069Cf3c7a17410602343966EAFf27) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### BNB Chain | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xeB6d84c585bf8AEA34F05a096D6fAA3b8477D146`](https://bscscan.com/address/0xeB6d84c585bf8AEA34F05a096D6fAA3b8477D146) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x88ad3B5c62A46Df953A5d428d33D70408F53C408`](https://bscscan.com/address/0x88ad3B5c62A46Df953A5d428d33D70408F53C408) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xAb5f007b33EDDA56962A0fC428B15D544EA46591`](https://bscscan.com/address/0xAb5f007b33EDDA56962A0fC428B15D544EA46591) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x27641f29b012d0d523EB5943011148c42c98e7F1`](https://bscscan.com/address/0x27641f29b012d0d523EB5943011148c42c98e7F1) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x70998557980CB6E8E63c46810081262B6c343051`](https://bscscan.com/address/0x70998557980CB6E8E63c46810081262B6c343051) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x96Aa12809CAC29Bba4944fEca1dFDC8e1704e6c1`](https://bscscan.com/address/0x96Aa12809CAC29Bba4944fEca1dFDC8e1704e6c1) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Chiliz | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xCff4a803b0Bf55dD1BE38Fb96088478F3D2eeCF2`](https://scan.chiliz.com/address/0xCff4a803b0Bf55dD1BE38Fb96088478F3D2eeCF2) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0xDf578C2c70A86945999c65961417057363530a1c`](https://scan.chiliz.com/address/0xDf578C2c70A86945999c65961417057363530a1c) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xcb099EfC90e88690e287259410B9AE63e1658CC6`](https://scan.chiliz.com/address/0xcb099EfC90e88690e287259410B9AE63e1658CC6) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x2De92156000269fa2fde7544F10f01E8cBC80fFa`](https://scan.chiliz.com/address/0x2De92156000269fa2fde7544F10f01E8cBC80fFa) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x0eDA15D606733f6CDe9DB67263E546bfcDDe9264`](https://scan.chiliz.com/address/0x0eDA15D606733f6CDe9DB67263E546bfcDDe9264) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a`](https://scan.chiliz.com/address/0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Core Dao | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xf0a7F2cCE911c298B5CB8106Db19EF1D00230710`](https://scan.coredao.org/address/0xf0a7F2cCE911c298B5CB8106Db19EF1D00230710) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x98Fe0d8b2c2c05d9C6a9e635f59474Aaa0000120`](https://scan.coredao.org/address/0x98Fe0d8b2c2c05d9C6a9e635f59474Aaa0000120) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x9C99EF88399bC1c1188399B39E7Cc667D78210ea`](https://scan.coredao.org/address/0x9C99EF88399bC1c1188399B39E7Cc667D78210ea) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x64C734B2F1704822D8E69CAF230aE8d2eC18AA3e`](https://scan.coredao.org/address/0x64C734B2F1704822D8E69CAF230aE8d2eC18AA3e) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xdE21BBFf718723E9069d8528d6Bb26c2971D58a7`](https://scan.coredao.org/address/0xdE21BBFf718723E9069d8528d6Bb26c2971D58a7) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x074CC814a8114126c505F5eecFC82A400B39cA03`](https://scan.coredao.org/address/0x074CC814a8114126c505F5eecFC82A400B39cA03) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Ethereum | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x9DeaBf7815b42Bf4E9a03EEc35a486fF74ee7459`](https://etherscan.io/address/0x9DeaBf7815b42Bf4E9a03EEc35a486fF74ee7459) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x3962f6585946823440d274aD7C719B02b49DE51E`](https://etherscan.io/address/0x3962f6585946823440d274aD7C719B02b49DE51E) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xf86B359035208e4529686A1825F2D5BeE38c28A8`](https://etherscan.io/address/0xf86B359035208e4529686A1825F2D5BeE38c28A8) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xAE32Ca14d85311A506Bb852D49bbfB315466bA26`](https://etherscan.io/address/0xAE32Ca14d85311A506Bb852D49bbfB315466bA26) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xB5Ec9706C3Be9d22326D208f491E5DEef7C8d9f0`](https://etherscan.io/address/0xB5Ec9706C3Be9d22326D208f491E5DEef7C8d9f0) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0xF35aB407CF28012Ba57CAF5ee2f6d6E4420253bc`](https://etherscan.io/address/0xF35aB407CF28012Ba57CAF5ee2f6d6E4420253bc) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Gnosis | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x555eb55cbc477Aebbe5652D25d0fEA04052d3971`](https://gnosisscan.io/address/0x555eb55cbc477Aebbe5652D25d0fEA04052d3971) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0xf1cAeB104AB29271463259335357D57772C90758`](https://gnosisscan.io/address/0xf1cAeB104AB29271463259335357D57772C90758) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x59A4B7255A5D01247837600e7828A6F77f664b34`](https://gnosisscan.io/address/0x59A4B7255A5D01247837600e7828A6F77f664b34) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xA0B5C851E3E9fED83f387f4D8847DA398Da4A8E2`](https://gnosisscan.io/address/0xA0B5C851E3E9fED83f387f4D8847DA398Da4A8E2) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x0F324E5CB01ac98b2883c8ac4231aCA7EfD3e750`](https://gnosisscan.io/address/0x0F324E5CB01ac98b2883c8ac4231aCA7EfD3e750) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x5f12318fc6cCa518A950e2Ee16063a6317C2a9Ef`](https://gnosisscan.io/address/0x5f12318fc6cCa518A950e2Ee16063a6317C2a9Ef) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### IoTeX | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x6FcAB41e3b62d05aB4fC729586CB06Af2a2662D0`](https://iotexscan.io/address/0x6FcAB41e3b62d05aB4fC729586CB06Af2a2662D0) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x84f092cf4d7d36c2d4987f672df81a39200a7146`](https://iotexscan.io/address/0x84f092cf4d7d36c2d4987f672df81a39200a7146) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x179536f3289fb50076968b339C7EF0Dc0B38E3AF`](https://iotexscan.io/address/0x179536f3289fb50076968b339C7EF0Dc0B38E3AF) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x28eAB88ee8a951F78e1028557D0C3fD97af61A33`](https://iotexscan.io/address/0x28eAB88ee8a951F78e1028557D0C3fD97af61A33) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x711900e5f55d427cd88e5E3FCAe54Ccf02De71F4`](https://iotexscan.io/address/0x711900e5f55d427cd88e5E3FCAe54Ccf02De71F4) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0xf978034bb3CAB5fe88d23DB5Cb38D510485DaB90`](https://iotexscan.io/address/0xf978034bb3CAB5fe88d23DB5Cb38D510485DaB90) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Lightlink | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xAa05E418Fb7851C211351C65435F1b17cbFa88Bf`](https://phoenix.lightlink.io/address/0xAa05E418Fb7851C211351C65435F1b17cbFa88Bf) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x6329591464FA6721c8E1c1271e4c6C41531Aea6b`](https://phoenix.lightlink.io/address/0x6329591464FA6721c8E1c1271e4c6C41531Aea6b) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x83403c6426E6D044bF3B84EC1C007Db211AaA140`](https://phoenix.lightlink.io/address/0x83403c6426E6D044bF3B84EC1C007Db211AaA140) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x5881ef3c0D3eB21b1b40E13b4a69c50754bc77C7`](https://phoenix.lightlink.io/address/0x5881ef3c0D3eB21b1b40E13b4a69c50754bc77C7) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x5C847244649BD74aB41f09C893aF792AD87D32aA`](https://phoenix.lightlink.io/address/0x5C847244649BD74aB41f09C893aF792AD87D32aA) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x278AC15622846806BD46FBDbdB8dB8d09614173A`](https://phoenix.lightlink.io/address/0x278AC15622846806BD46FBDbdB8dB8d09614173A) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Linea Mainnet | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xF2E46B249cFe09c2b3A2022dc81E0bB4bE3336F1`](https://lineascan.build/address/0xF2E46B249cFe09c2b3A2022dc81E0bB4bE3336F1) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0xB5d39049510F47EE7f74c528105D225E42747d63`](https://lineascan.build/address/0xB5d39049510F47EE7f74c528105D225E42747d63) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xC46ce4B77cBc46D17A2EceB2Cc8e2EE23D96529F`](https://lineascan.build/address/0xC46ce4B77cBc46D17A2EceB2Cc8e2EE23D96529F) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x2E72F7523cFeaed6B841aCe20060E0b203c312F5`](https://lineascan.build/address/0x2E72F7523cFeaed6B841aCe20060E0b203c312F5) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x4259557F6665eCF5907c9019a30f3Cb009c20Ae7`](https://lineascan.build/address/0x4259557F6665eCF5907c9019a30f3Cb009c20Ae7) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x35E9C3445A039B258Eb7112A5Eea259a825E8AC0`](https://lineascan.build/address/0x35E9C3445A039B258Eb7112A5Eea259a825E8AC0) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Meld | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xCff4a803b0Bf55dD1BE38Fb96088478F3D2eeCF2`](https://meldscan.io/address/0xCff4a803b0Bf55dD1BE38Fb96088478F3D2eeCF2) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0xDf578C2c70A86945999c65961417057363530a1c`](https://meldscan.io/address/0xDf578C2c70A86945999c65961417057363530a1c) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xcb099EfC90e88690e287259410B9AE63e1658CC6`](https://meldscan.io/address/0xcb099EfC90e88690e287259410B9AE63e1658CC6) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x2De92156000269fa2fde7544F10f01E8cBC80fFa`](https://meldscan.io/address/0x2De92156000269fa2fde7544F10f01E8cBC80fFa) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x0eDA15D606733f6CDe9DB67263E546bfcDDe9264`](https://meldscan.io/address/0x0eDA15D606733f6CDe9DB67263E546bfcDDe9264) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a`](https://meldscan.io/address/0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Mode | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x704552099f5aD679294D337638B9a57Fd4726F52`](https://modescan.io/address/0x704552099f5aD679294D337638B9a57Fd4726F52) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0xD8C65Bd7CB6924EF895b2eDcA03407c652f5a2C5`](https://modescan.io/address/0xD8C65Bd7CB6924EF895b2eDcA03407c652f5a2C5) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xBbfA51A10bE68714fa33281646B986dae9f52021`](https://modescan.io/address/0xBbfA51A10bE68714fa33281646B986dae9f52021) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xA1976d4bd6572B68A677037B496D806ACC2cBdB3`](https://modescan.io/address/0xA1976d4bd6572B68A677037B496D806ACC2cBdB3) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x641A10A2c9e0CeB94F406e1EF68b1E1da002662d`](https://modescan.io/address/0x641A10A2c9e0CeB94F406e1EF68b1E1da002662d) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x0Fd01Dd30F96A15dE6AfAd5627d45Ef94752460a`](https://modescan.io/address/0x0Fd01Dd30F96A15dE6AfAd5627d45Ef94752460a) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Morph | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x946654AB30Dd6eD10236C89f2C8B2719df653691`](https://explorer.morphl2.io/address/0x946654AB30Dd6eD10236C89f2C8B2719df653691) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0xAC19F4181E58efb7094e0cb4e1BB18c79F6AAdf4`](https://explorer.morphl2.io/address/0xAC19F4181E58efb7094e0cb4e1BB18c79F6AAdf4) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x63B92F7E2f69877184C955E63B9D8Dff55e52e14`](https://explorer.morphl2.io/address/0x63B92F7E2f69877184C955E63B9D8Dff55e52e14) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xe785101Cb228693cc3EFdCd5d637fEf6A6Ff7259`](https://explorer.morphl2.io/address/0xe785101Cb228693cc3EFdCd5d637fEf6A6Ff7259) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x28D116d7e917756310986C4207eA54183fcba06A`](https://explorer.morphl2.io/address/0x28D116d7e917756310986C4207eA54183fcba06A) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x5e73bb96493C10919204045fCdb639D35ad859f8`](https://explorer.morphl2.io/address/0x5e73bb96493C10919204045fCdb639D35ad859f8) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### OP Mainnet | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x4994325F8D4B4A36Bd643128BEb3EC3e582192C0`](https://optimistic.etherscan.io/address/0x4994325F8D4B4A36Bd643128BEb3EC3e582192C0) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x5C22471A86E9558ed9d22235dD5E0429207ccf4B`](https://optimistic.etherscan.io/address/0x5C22471A86E9558ed9d22235dD5E0429207ccf4B) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x90952912a50079bef00D5F49c975058d6573aCdC`](https://optimistic.etherscan.io/address/0x90952912a50079bef00D5F49c975058d6573aCdC) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x1a4837b8c668b8F7BE22Ba156419b7b823Cfd05c`](https://optimistic.etherscan.io/address/0x1a4837b8c668b8F7BE22Ba156419b7b823Cfd05c) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x6cd7bB0f63aFCc9F6CeDd1Bf1E3Bd4ED078CD019`](https://optimistic.etherscan.io/address/0x6cd7bB0f63aFCc9F6CeDd1Bf1E3Bd4ED078CD019) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0xe041629D99730b3EE4d6518097C45b4E3591992b`](https://optimistic.etherscan.io/address/0xe041629D99730b3EE4d6518097C45b4E3591992b) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Polygon | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x8D4dDc187a73017a5d7Cef733841f55115B13762`](https://polygonscan.com/address/0x8D4dDc187a73017a5d7Cef733841f55115B13762) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x8D87c5eddb5644D1a714F85930Ca940166e465f0`](https://polygonscan.com/address/0x8D87c5eddb5644D1a714F85930Ca940166e465f0) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xBF67f0A1E847564D0eFAD475782236D3Fa7e9Ec2`](https://polygonscan.com/address/0xBF67f0A1E847564D0eFAD475782236D3Fa7e9Ec2) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xf28BF9390fb57BB68386430550818D312699ED15`](https://polygonscan.com/address/0xf28BF9390fb57BB68386430550818D312699ED15) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xD29EC4B9203f2d1C9Cd4Ba8c68FCFE4ECd85f6f5`](https://polygonscan.com/address/0xD29EC4B9203f2d1C9Cd4Ba8c68FCFE4ECd85f6f5) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0xC28872e0c1f3633EeD467907123727ac0155029D`](https://polygonscan.com/address/0xC28872e0c1f3633EeD467907123727ac0155029D) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Scroll | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xAc199bFea92aa4D4C3d8A49fd463EAD99C7a6A8f`](https://scrollscan.com/address/0xAc199bFea92aa4D4C3d8A49fd463EAD99C7a6A8f) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0xBc5DC6D77612E636DA32af0d85Ca3179a57330fd`](https://scrollscan.com/address/0xBc5DC6D77612E636DA32af0d85Ca3179a57330fd) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xb0f78dDc01D829d8b567821Eb193De8082b57D9D`](https://scrollscan.com/address/0xb0f78dDc01D829d8b567821Eb193De8082b57D9D) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xA1A281BbcaED8f0A9Dcd0fe67cbC53e0993C24cb`](https://scrollscan.com/address/0xA1A281BbcaED8f0A9Dcd0fe67cbC53e0993C24cb) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x4B8BF9cD3274517609e7Fe905740fa151C9aa711`](https://scrollscan.com/address/0x4B8BF9cD3274517609e7Fe905740fa151C9aa711) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x344afe8ad5dBA3d55870dc398e0F53B635B2ed0d`](https://scrollscan.com/address/0x344afe8ad5dBA3d55870dc398e0F53B635B2ed0d) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Superseed | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x1fA500262b352d821B4e1c933A20f2242B45383d`](https://explorer.superseed.xyz/address/0x1fA500262b352d821B4e1c933A20f2242B45383d) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x251FC799344151026d19b959B8f3667416d56B88`](https://explorer.superseed.xyz/address/0x251FC799344151026d19b959B8f3667416d56B88) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x91211E1760280d3f7dF2182ce4D1Fd6A1735C202`](https://explorer.superseed.xyz/address/0x91211E1760280d3f7dF2182ce4D1Fd6A1735C202) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x0a6C2E6B61cf05800F9aA91494480440843d6c3c`](https://explorer.superseed.xyz/address/0x0a6C2E6B61cf05800F9aA91494480440843d6c3c) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xc4DE6f667435d5Ce0150e08BcEc9722C9017e90b`](https://explorer.superseed.xyz/address/0xc4DE6f667435d5Ce0150e08BcEc9722C9017e90b) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0xF60bEADEfbeb98C927E13C4165BCa7D85Ba32cB2`](https://explorer.superseed.xyz/address/0xF60bEADEfbeb98C927E13C4165BCa7D85Ba32cB2) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Taiko | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x238C830FA8E4ED0f0A4bc9C986BF338aEC9e38D1`](https://taikoscan.io/address/0x238C830FA8E4ED0f0A4bc9C986BF338aEC9e38D1) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x5Ec0a2e88dAd09ad940Be2639c9aDb24D186989E`](https://taikoscan.io/address/0x5Ec0a2e88dAd09ad940Be2639c9aDb24D186989E) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x6a619d35972578E8458E33B7d1e07b155A51585E`](https://taikoscan.io/address/0x6a619d35972578E8458E33B7d1e07b155A51585E) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xBFD6048C80665792d949692CE77307e55dbb8986`](https://taikoscan.io/address/0xBFD6048C80665792d949692CE77307e55dbb8986) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x65E2C9990d4CAc5E54E65c1BD625CdcC9FDd1292`](https://taikoscan.io/address/0x65E2C9990d4CAc5E54E65c1BD625CdcC9FDd1292) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0xd7df0b795756b60ab51a37e26f1edb7ef9e78828`](https://taikoscan.io/address/0xd7df0b795756b60ab51a37e26f1edb7ef9e78828) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Tangle | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x946654AB30Dd6eD10236C89f2C8B2719df653691`](https://explorer.tangle.tools/address/0x946654AB30Dd6eD10236C89f2C8B2719df653691) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0xAC19F4181E58efb7094e0cb4e1BB18c79F6AAdf4`](https://explorer.tangle.tools/address/0xAC19F4181E58efb7094e0cb4e1BB18c79F6AAdf4) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x63B92F7E2f69877184C955E63B9D8Dff55e52e14`](https://explorer.tangle.tools/address/0x63B92F7E2f69877184C955E63B9D8Dff55e52e14) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xe785101Cb228693cc3EFdCd5d637fEf6A6Ff7259`](https://explorer.tangle.tools/address/0xe785101Cb228693cc3EFdCd5d637fEf6A6Ff7259) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x28D116d7e917756310986C4207eA54183fcba06A`](https://explorer.tangle.tools/address/0x28D116d7e917756310986C4207eA54183fcba06A) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x5e73bb96493C10919204045fCdb639D35ad859f8`](https://explorer.tangle.tools/address/0x5e73bb96493C10919204045fCdb639D35ad859f8) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### ZKsync Era | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xf03f4Bf48b108360bAf1597Fb8053Ebe0F5245dA`](https://era.zksync.network//address/0xf03f4Bf48b108360bAf1597Fb8053Ebe0F5245dA) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x8cB69b514E97a904743922e1adf3D1627deeeE8D`](https://era.zksync.network//address/0x8cB69b514E97a904743922e1adf3D1627deeeE8D) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x1fB145A47Eb9b8bf565273e137356376197b3559`](https://era.zksync.network//address/0x1fB145A47Eb9b8bf565273e137356376197b3559) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x99BA0D464942e7166dEBb8BAaAF1192F8d4117eb`](https://era.zksync.network//address/0x99BA0D464942e7166dEBb8BAaAF1192F8d4117eb) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xAE1A55205A0499d6BBb0Cf0f1210641957e9cb7e`](https://era.zksync.network//address/0xAE1A55205A0499d6BBb0Cf0f1210641957e9cb7e) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x8a84fCF962163A7E98Bf0daFD918973c846fa5C8`](https://era.zksync.network//address/0x8a84fCF962163A7E98Bf0daFD918973c846fa5C8) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ## Testnets ### Arbitrum Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x8127E8081C22807c8a786Af1e1b174939577144A`](https://sepolia.arbiscan.io/address/0x8127E8081C22807c8a786Af1e1b174939577144A) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x9D1C257d9bc09E6E6B8E7e7c2496C12000f55457`](https://sepolia.arbiscan.io/address/0x9D1C257d9bc09E6E6B8E7e7c2496C12000f55457) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xaff2efFCF38Ea4A92E0cC5D7c48456C53358fE1a`](https://sepolia.arbiscan.io/address/0xaff2efFCF38Ea4A92E0cC5D7c48456C53358fE1a) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x46AEd4FE32aE1306d8073FE54A4E844e10a3ca16`](https://sepolia.arbiscan.io/address/0x46AEd4FE32aE1306d8073FE54A4E844e10a3ca16) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xC1FD380b3B0fF989C259D0b45B97F9663B638aA4`](https://sepolia.arbiscan.io/address/0xC1FD380b3B0fF989C259D0b45B97F9663B638aA4) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0xa11561F9e418f2C431B411E1CA22FD3F85D4c831`](https://sepolia.arbiscan.io/address/0xa11561F9e418f2C431B411E1CA22FD3F85D4c831) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Base Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x6DCB73E5F7e8e70bE20b3B9CF50E3be4625A91C3`](https://sepolia.basescan.org/address/0x6DCB73E5F7e8e70bE20b3B9CF50E3be4625A91C3) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0xFE7fc0Bbde84C239C0aB89111D617dC7cc58049f`](https://sepolia.basescan.org/address/0xFE7fc0Bbde84C239C0aB89111D617dC7cc58049f) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xb8c724df3eC8f2Bf8fA808dF2cB5dbab22f3E68c`](https://sepolia.basescan.org/address/0xb8c724df3eC8f2Bf8fA808dF2cB5dbab22f3E68c) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x474dFf3Cdd6489523947bf08D538F56d07Ca699e`](https://sepolia.basescan.org/address/0x474dFf3Cdd6489523947bf08D538F56d07Ca699e) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x23d0B7691F4Ca0E5477132a7C7F54fdCEd1814B9`](https://sepolia.basescan.org/address/0x23d0B7691F4Ca0E5477132a7C7F54fdCEd1814B9) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x899a05feb160fe912f621733A1d0b39C1446B3eB`](https://sepolia.basescan.org/address/0x899a05feb160fe912f621733A1d0b39C1446B3eB) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Blast Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x9dA09f4887FD3a78Ea237F74a456a82e4301F3D4`](https://sepolia.blastscan.io/address/0x9dA09f4887FD3a78Ea237F74a456a82e4301F3D4) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x07f1386803ab6e1D8b6AABD50A9772E45bEA08f1`](https://sepolia.blastscan.io/address/0x07f1386803ab6e1D8b6AABD50A9772E45bEA08f1) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x7eB79ab3652713bBE989e7A0dCA61ba484CAED85`](https://sepolia.blastscan.io/address/0x7eB79ab3652713bBE989e7A0dCA61ba484CAED85) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x93c0c4a57573C7056D7d63B536e33E28FB3ec2EE`](https://sepolia.blastscan.io/address/0x93c0c4a57573C7056D7d63B536e33E28FB3ec2EE) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xAC83E6aDA41a9251516601d8D5D0188466044Cc1`](https://sepolia.blastscan.io/address/0xAC83E6aDA41a9251516601d8D5D0188466044Cc1) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0xb9fCF1f73DD941Dd1C589fCf8545E60133EE5eC2`](https://sepolia.blastscan.io/address/0xb9fCF1f73DD941Dd1C589fCf8545E60133EE5eC2) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Linea Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x95D29708be647BDD8dA0bdF82B84eB5f42d45918`](https://sepolia.lineascan.build/address/0x95D29708be647BDD8dA0bdF82B84eB5f42d45918) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x435F33C21B9Ea8BF207785616Bb28C46eDeD7366`](https://sepolia.lineascan.build/address/0x435F33C21B9Ea8BF207785616Bb28C46eDeD7366) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x5A52E9F4dFcdBcd68E50386D484378718167aB60`](https://sepolia.lineascan.build/address/0x5A52E9F4dFcdBcd68E50386D484378718167aB60) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x237f114a9cF62b87383684529d889DdfEd917f0c`](https://sepolia.lineascan.build/address/0x237f114a9cF62b87383684529d889DdfEd917f0c) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x8224eb5D7d76B2D7Df43b868D875E79B11500eA8`](https://sepolia.lineascan.build/address/0x8224eb5D7d76B2D7Df43b868D875E79B11500eA8) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x83Dd52FCA44E069020b58155b761A590F12B59d3`](https://sepolia.lineascan.build/address/0x83Dd52FCA44E069020b58155b761A590F12B59d3) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Mode Testnet | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x5cD39Ec69F0Ed62733d0DA3E083E451334bA1f70`](https://sepolia.explorer.mode.network/address/0x5cD39Ec69F0Ed62733d0DA3E083E451334bA1f70) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x61861e4C72EE2F6967C852FE79Eac0E7a9C4f466`](https://sepolia.explorer.mode.network/address/0x61861e4C72EE2F6967C852FE79Eac0E7a9C4f466) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xc51346d1FD003E536530584eb4c8974BB279712D`](https://sepolia.explorer.mode.network/address/0xc51346d1FD003E536530584eb4c8974BB279712D) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0xD3c856A7333c264475aD87F9E6f84Ef376AE250D`](https://sepolia.explorer.mode.network/address/0xD3c856A7333c264475aD87F9E6f84Ef376AE250D) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xece83740834694A6E204825e5bcD8774F26a2665`](https://sepolia.explorer.mode.network/address/0xece83740834694A6E204825e5bcD8774F26a2665) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x900de6cC1021afa13f41e1067bEE681BbD661C69`](https://sepolia.explorer.mode.network/address/0x900de6cC1021afa13f41e1067bEE681BbD661C69) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Morph Holesky | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x36477f8FEf1fC3B0fe7F24b8F6d9561f0BeC30e7`](https://explorer-holesky.morphl2.io/address/0x36477f8FEf1fC3B0fe7F24b8F6d9561f0BeC30e7) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x4b4126036726085636BC2A4788a448d5C26705E4`](https://explorer-holesky.morphl2.io/address/0x4b4126036726085636BC2A4788a448d5C26705E4) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x6AF155530D6360E789deD0CF88219f855CCb158F`](https://explorer-holesky.morphl2.io/address/0x6AF155530D6360E789deD0CF88219f855CCb158F) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x33BE6a7810B464B913052EC0436A067de25C164c`](https://explorer-holesky.morphl2.io/address/0x33BE6a7810B464B913052EC0436A067de25C164c) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x728Ec8260Ea1115252D33c0D563d78CA18990dE4`](https://explorer-holesky.morphl2.io/address/0x728Ec8260Ea1115252D33c0D563d78CA18990dE4) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x4B5F6B967dC61c2B39fa233092745B460eA1b433`](https://explorer-holesky.morphl2.io/address/0x4B5F6B967dC61c2B39fa233092745B460eA1b433) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### OP Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x89EC3830040dec63E9dF0C904d649fda4d49DF16`](https://optimism-sepolia.blockscout.com/address/0x89EC3830040dec63E9dF0C904d649fda4d49DF16) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x0a881bbd71a21710D56Ff1931EC8189d94019D60`](https://optimism-sepolia.blockscout.com/address/0x0a881bbd71a21710D56Ff1931EC8189d94019D60) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xb971A93608413C54F407eE86C7c15b295E0004bB`](https://optimism-sepolia.blockscout.com/address/0xb971A93608413C54F407eE86C7c15b295E0004bB) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x48F8C05C721E27FA82aD6c8ddB1a88eF43864A9A`](https://optimism-sepolia.blockscout.com/address/0x48F8C05C721E27FA82aD6c8ddB1a88eF43864A9A) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0xd9dD971D4800100aED0BfF3535aB116D4Be5c420`](https://optimism-sepolia.blockscout.com/address/0xd9dD971D4800100aED0BfF3535aB116D4Be5c420) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x6CBe6e298A9354306e6ee65f63FF85CFA7062a39`](https://optimism-sepolia.blockscout.com/address/0x6CBe6e298A9354306e6ee65f63FF85CFA7062a39) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x73BB6dD3f5828d60F8b3dBc8798EB10fbA2c5636`](https://sepolia.etherscan.io/address/0x73BB6dD3f5828d60F8b3dBc8798EB10fbA2c5636) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x3E435560fd0a03ddF70694b35b673C25c65aBB6C`](https://sepolia.etherscan.io/address/0x3E435560fd0a03ddF70694b35b673C25c65aBB6C) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0x3a1beA13A8C24c0EA2b8fAE91E4b2762A59D7aF5`](https://sepolia.etherscan.io/address/0x3a1beA13A8C24c0EA2b8fAE91E4b2762A59D7aF5) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x56F2f7f4d15d1A9FF9d3782b6F6bB8f6fd690D33`](https://sepolia.etherscan.io/address/0x56F2f7f4d15d1A9FF9d3782b6F6bB8f6fd690D33) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x04A9c14b7a000640419aD5515Db4eF4172C00E31`](https://sepolia.etherscan.io/address/0x04A9c14b7a000640419aD5515Db4eF4172C00E31) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x56E9180A8d2C35c99F2F8a1A5Ab8aBe79E876E8c`](https://sepolia.etherscan.io/address/0x56E9180A8d2C35c99F2F8a1A5Ab8aBe79E876E8c) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Superseed Sepolia | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xCff4a803b0Bf55dD1BE38Fb96088478F3D2eeCF2`](https://sepolia-explorer.superseed.xyz/address/0xCff4a803b0Bf55dD1BE38Fb96088478F3D2eeCF2) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0xDf578C2c70A86945999c65961417057363530a1c`](https://sepolia-explorer.superseed.xyz/address/0xDf578C2c70A86945999c65961417057363530a1c) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xcb099EfC90e88690e287259410B9AE63e1658CC6`](https://sepolia-explorer.superseed.xyz/address/0xcb099EfC90e88690e287259410B9AE63e1658CC6) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x2De92156000269fa2fde7544F10f01E8cBC80fFa`](https://sepolia-explorer.superseed.xyz/address/0x2De92156000269fa2fde7544F10f01E8cBC80fFa) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x0eDA15D606733f6CDe9DB67263E546bfcDDe9264`](https://sepolia-explorer.superseed.xyz/address/0x0eDA15D606733f6CDe9DB67263E546bfcDDe9264) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a`](https://sepolia-explorer.superseed.xyz/address/0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### Taiko Hekla | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0x01565a1298d631302c114E13C431c9345ae5532e`](https://hekla.taikoscan.network/address/0x01565a1298d631302c114E13C431c9345ae5532e) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x640376B26E5f57dCD385b394a24c91F4C60E4fAc`](https://hekla.taikoscan.network/address/0x640376B26E5f57dCD385b394a24c91F4C60E4fAc) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xd040fa437021F771C307178F06183bffC36cb4A5`](https://hekla.taikoscan.network/address/0xd040fa437021F771C307178F06183bffC36cb4A5) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x49Fd46F7d897778205c00D5c1D943fCDc26Ed9E8`](https://hekla.taikoscan.network/address/0x49Fd46F7d897778205c00D5c1D943fCDc26Ed9E8) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x6C6a4Ef6C0C1318C9FD60b5084B68E04FB5e9Db9`](https://hekla.taikoscan.network/address/0x6C6a4Ef6C0C1318C9FD60b5084B68E04FB5e9Db9) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x4F0d64365EfA9D6D1B88FfC387Ce02e4A71d9f9f`](https://hekla.taikoscan.network/address/0x4F0d64365EfA9D6D1B88FfC387Ce02e4A71d9f9f) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | ### ZKsync Sepolia Testnet | Contract | Address | Deployment | | :-------- | :-------- | :--------- | | SablierV2LockupDynamic | [`0xc4311a5913953162111bF75530f7BB14ec24e014`](https://sepolia-era.zksync.network//address/0xc4311a5913953162111bF75530f7BB14ec24e014) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupLinear | [`0x43864C567b89FA5fEE8010f92d4473Bf19169BBA`](https://sepolia-era.zksync.network//address/0x43864C567b89FA5fEE8010f92d4473Bf19169BBA) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2LockupTranched | [`0xF6e869b73E20b812dcf0E850AA8822F74f67f670`](https://sepolia-era.zksync.network//address/0xF6e869b73E20b812dcf0E850AA8822F74f67f670) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2NFTDescriptor | [`0x477DDC91a7e13CBaC01c06737abF96d50ECa7961`](https://sepolia-era.zksync.network//address/0x477DDC91a7e13CBaC01c06737abF96d50ECa7961) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2BatchLockup | [`0x1D68417ff71855Eb0237Ff03a8FfF02Ef67e4AFb`](https://sepolia-era.zksync.network//address/0x1D68417ff71855Eb0237Ff03a8FfF02Ef67e4AFb) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | | SablierV2MerkleLockupFactory | [`0x2CEf8C06dDF7a1440Ad2561c53821e43adDbfA31`](https://sepolia-era.zksync.network//address/0x2CEf8C06dDF7a1440Ad2561c53821e43adDbfA31) | [`lockup-v1.2`](https://github.com/sablier-labs/sdk/blob/main/deployments/lockup/v1.2) | --- ## Diagrams ## Token Flows :::tip If you are interested into creating a stream with non-transferrable tokens, make sure to whitelist both `BatchLockup` and `Lockup` contracts. ::: ### Creating a Single Stream ```mermaid sequenceDiagram actor Sender Sender ->> Lockup: createWithDurations() Sender -->> Lockup: Transfer tokens Lockup -->> Sender: Mint Stream NFT ``` ### Creating a Batch of Streams ```mermaid sequenceDiagram actor Sender Sender ->> BatchLockup: createWithDurations() BatchLockup ->> Lockup: createWithDurations() Sender -->> BatchLockup: Transfer tokens BatchLockup -->> Lockup: Transfer tokens Lockup -->> Sender: Mint Stream NFT ``` ## Storage Layout ### Common Lockup is a singleton contract that stores all streams created by that contract's users. The following diagrams provide insight into the shared storage layout of each stream. To see the full list of storage variables, check out [this reference](/reference/lockup/contracts/types/library.Lockup#structs). ```mermaid flowchart TD; L["Lockup contract"]; S0[(Stream 1)]; S01([amounts]) S02([isCancelable]) S03([isTransferable]) S04([endTime]) S05([lockupModel]) S06([sender]) S07([startTime]) S08([token]) L --> S0; S0 --> S01; S0 --> S02; S0 --> S03; S0 --> S04; S0 --> S05; S0 --> S06; S0 --> S07; S0 --> S08; ``` Each [amounts storage](/reference/lockup/contracts/types/library.Lockup#amounts) is made of the following components: ```mermaid flowchart TD; S01([amounts]) A1([deposited]) A2([withdrawn]) A3([refunded]) S01 --> A1; S01 --> A2; S01 --> A3; ``` :::info Each stream belongs to one of the three models: Linear, Dynamic and Tranched. Each of these model has its own storage as outlined below. ::: ### Linear Stream Apart from the above storage layout, Linear stream requires storing [unlock amounts](/reference/lockup/contracts/types/library.LockupLinear#unlockamounts) and cliff time. ```mermaid flowchart TD; L[(Linear stream)]; S0([common storage]) S1([cliff]) S2([start amount]) S3([cliff amount]) L --> S0; L --> S1; L --> S2; L --> S3; ``` ### Dynamic Stream Similarly, Dynamic stream requires an array of [segments](/reference/lockup/contracts/types/library.LockupDynamic#segment). ```mermaid flowchart TD; L[(Dynamic stream)]; S0([common storage]) S1([segment 1]) S2([segment 2]) S3([segment 3]) L --> S0; L --> S1; L --> S2; L --> S3; ``` Where each segment is made of three components: ```mermaid flowchart TD; S1([segment 1]) S1 --> A01([amount]) S1 --> A02([exponent]) S1 --> A03([timestamp]) S2([segment 2]) S2 --> A11([amount]) S2 --> A12([exponent]) S2 --> A13([timestamp]) ``` ### Tranched Stream A Tranched stream requires an array of [tranches](/reference/lockup/contracts/types/library.LockupTranched#tranche). ```mermaid flowchart TD; L[(Tranched stream)]; S0([common storage]) S1([tranche 1]) S2([tranche 2]) S3([tranche 3]) L --> S0; L --> S1; L --> S2; L --> S3; ``` Where each tranche is made of two components: ```mermaid flowchart TD; S1([tranche 1]) S1 --> A01([amount]) S1 --> A02([timestamp]) S2([tranche 2]) S2 --> A11([amount]) S2 --> A12([timestamp]) ``` --- ## Access Control With the exception of the [admin functions](/concepts/governance#lockup), all functions in Lockup can only be triggered by users. The Protocol Admin has no control over any stream or any part of the protocol. This article will provide a comprehensive overview of the actions that can be performed on streams once they are created, as well as the corresponding user permissions for each action. :::note Every stream has a sender and a recipient. Recipients can approve third parties to take actions on their behalf. An 'public' caller is any address outside of sender and recipient. ::: ## Overview The table below offers a quick overview of the access control for each action that can be performed on a stream. | Action | Sender | Recipient / Approved third party | Public | | ----------------------- | :----: | :------------------------------: | :----: | | Burn NFT | ❌ | ✅ | ❌ | | Cancel | ✅ | ❌ | ❌ | | Cancel Multiple | ✅ | ❌ | ❌ | | Renounce | ✅ | ❌ | ❌ | | Transfer NFT | ❌ | ✅ | ❌ | | Withdraw to any address | ❌ | ✅ | ❌ | | Withdraw to recipient | ✅ | ✅ | ✅ | | Withdraw Multiple | ✅ | ✅ | ✅ | ## Burn NFT Either the recipient or an approved operator can burn the NFT associated with a stream. ```mermaid sequenceDiagram actor Recipient Recipient ->> Lockup: burn() Recipient -->> address(0): Transfer stream NFT ``` #### With Operator: ```mermaid sequenceDiagram actor Recipient actor Operator Recipient ->> Lockup: approve(operator) Operator ->> Lockup: burn() Recipient -->> address(0): Transfer stream NFT ``` ## Cancel Only the sender can cancel a stream. ```mermaid sequenceDiagram actor Sender Sender ->> Lockup: cancel() Lockup -->> Sender: Transfer unvested tokens ``` ## Cancel Multiple Only the sender can cancel multiple streams. ```mermaid sequenceDiagram actor Sender Sender ->> Lockup: cancelMultiple() Lockup -->> Sender: Transfer unvested tokens from multiple streams ``` ## Renounce Only the sender can renounce a stream. ```mermaid sequenceDiagram actor Sender Sender ->> Lockup: renounce() ``` ## Transfer NFT Either the recipient or an approved operator can transfer the NFT associated with a stream. - Only if the stream is transferable. ```mermaid sequenceDiagram actor Recipient Recipient ->> Lockup: transfer(toAddress) Create actor toAddress Recipient -->> toAddress: Transfer NFT ``` #### With Operator: ```mermaid sequenceDiagram actor Recipient actor Operator Recipient ->> Lockup: approve(operator) Operator ->> Lockup: transfer(toAddress) Create actor toAddress Recipient -->> toAddress: Transfer NFT ``` ## Withdraw Multiple Anybody can withdraw tokens from multiple streams to the recipients of each stream. ```mermaid sequenceDiagram actor Anyone Anyone ->> Lockup: withdrawMultiple() Create actor getRecipient(1) Lockup -->> getRecipient(1): Transfer vested tokens from stream 1 Create actor getRecipient(2) Lockup -->> getRecipient(2): Transfer vested tokens from stream 2 Create actor getRecipient(3) Lockup -->> getRecipient(3): Transfer vested tokens from stream 3 ``` ## Withdraw to Any Address The tokens in a stream can be withdrawn to any address only by the recipient or an approved third party. ```mermaid sequenceDiagram actor Recipient Recipient ->> Lockup: withdraw(toAddress) Create actor toAddress Lockup -->> toAddress: Transfer vested tokens ``` #### With Operator: ```mermaid sequenceDiagram actor Recipient actor Operator Recipient ->> Lockup: approve(operator) Operator ->> Lockup: withdraw(toAddress) Create actor toAddress Lockup -->> toAddress: Transfer vested tokens ``` ## Withdraw to Recipient The tokens in a stream can be withdrawn to the recipient by anyone including the sender, recipient, or an approved third party. ```mermaid sequenceDiagram actor Anyone Anyone ->> Lockup: withdraw(recipient) Create actor Recipient Lockup -->> Recipient: Transfer vested tokens ``` --- ## Adminable [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/abstracts/Adminable.sol) **Inherits:** [IAdminable](/docs/reference/lockup/contracts/interfaces/interface.IAdminable.md) See the documentation in [IAdminable](/docs/reference/lockup/contracts/interfaces/interface.IAdminable.md). ## State Variables ### admin The address of the admin account or contract. ```solidity address public override admin; ``` ## Functions ### onlyAdmin Reverts if called by any account other than the admin. ```solidity modifier onlyAdmin(); ``` ### constructor _Emits a {TransferAdmin} event._ ```solidity constructor(address initialAdmin); ``` **Parameters** | Name | Type | Description | | -------------- | --------- | --------------------------------- | | `initialAdmin` | `address` | The address of the initial admin. | ### transferAdmin Transfers the contract admin to a new address. Notes: - Does not revert if the admin is the same. - This function can potentially leave the contract without an admin, thereby removing any functionality that is only available to the admin. Requirements: - `msg.sender` must be the contract admin. ```solidity function transferAdmin(address newAdmin) public virtual override onlyAdmin; ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ----------------------------- | | `newAdmin` | `address` | The address of the new admin. | --- ## Batch(Abstracts) [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/abstracts/Batch.sol) **Inherits:** [IBatch](/docs/reference/lockup/contracts/interfaces/interface.IBatch.md) See the documentation in [IBatch](/docs/reference/lockup/contracts/interfaces/interface.IBatch.md). ## Functions ### batch Allows batched calls to self, i.e., `this` contract. _Since `msg.value` can be reused across calls, be VERY CAREFUL when using it. Refer to https://paradigm.xyz/2021/08/two-rights-might-make-a-wrong for more information._ ```solidity function batch(bytes[] calldata calls) external payable override returns (bytes[] memory results); ``` **Parameters** | Name | Type | Description | | ------- | --------- | --------------------------------- | | `calls` | `bytes[]` | An array of inputs for each call. | **Returns** | Name | Type | Description | | --------- | --------- | -------------------------------------------------------------------------------- | | `results` | `bytes[]` | An array of results from each call. Empty when the calls do not return anything. | --- ## NoDelegateCall [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/abstracts/NoDelegateCall.sol) This contract implements logic to prevent delegate calls. ## State Variables ### ORIGINAL _The address of the original contract that was deployed._ ```solidity address private immutable ORIGINAL; ``` ## Functions ### constructor _Sets the original contract address._ ```solidity constructor(); ``` ### noDelegateCall Prevents delegate calls. ```solidity modifier noDelegateCall(); ``` ### \_preventDelegateCall This function checks whether the current call is a delegate call, and reverts if it is. - A private function is used instead of inlining this logic in a modifier because Solidity copies modifiers into every function that uses them. The `ORIGINAL` address would get copied in every place the modifier is used, which would increase the contract size. By using a function instead, we can avoid this duplication of code and reduce the overall size of the contract. ```solidity function _preventDelegateCall() private view; ``` --- ## SablierLockupBase [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/abstracts/SablierLockupBase.sol) **Inherits:** [Batch](/docs/reference/lockup/contracts/abstracts/abstract.Batch.md), [NoDelegateCall](/docs/reference/lockup/contracts/abstracts/abstract.NoDelegateCall.md), [Adminable](/docs/reference/lockup/contracts/abstracts/abstract.Adminable.md), [ISablierLockupBase](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupBase.md), ERC721 See the documentation in [ISablierLockupBase](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupBase.md). ## State Variables ### MAX_BROKER_FEE Retrieves the maximum broker fee that can be charged by the broker, denoted as a fixed-point number where 1e18 is 100%. _This value is hard coded as a constant._ ```solidity UD60x18 public constant override MAX_BROKER_FEE = UD60x18.wrap(0.1e18); ``` ### nextStreamId Counter for stream IDs, used in the create functions. ```solidity uint256 public override nextStreamId; ``` ### nftDescriptor Contract that generates the non-fungible token URI. ```solidity ILockupNFTDescriptor public override nftDescriptor; ``` ### \_allowedToHook _Mapping of contracts allowed to hook to Sablier when a stream is canceled or when tokens are withdrawn._ ```solidity mapping(address recipient => bool allowed) internal _allowedToHook; ``` ### \_streams _Lockup streams mapped by unsigned integers._ ```solidity mapping(uint256 id => Lockup.Stream stream) internal _streams; ``` ## Functions ### constructor ```solidity constructor(address initialAdmin, ILockupNFTDescriptor initialNFTDescriptor) Adminable(initialAdmin); ``` **Parameters** | Name | Type | Description | | ---------------------- | ---------------------- | ------------------------------------------ | | `initialAdmin` | `address` | The address of the initial contract admin. | | `initialNFTDescriptor` | `ILockupNFTDescriptor` | The address of the initial NFT descriptor. | ### notNull _Checks that `streamId` does not reference a null stream._ ```solidity modifier notNull(uint256 streamId); ``` ### getDepositedAmount Retrieves the amount deposited in the stream, denoted in units of the token's decimals. _Reverts if `streamId` references a null stream._ ```solidity function getDepositedAmount(uint256 streamId) external view override notNull(streamId) returns (uint128 depositedAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getEndTime Retrieves the stream's end time, which is a Unix timestamp. _Reverts if `streamId` references a null stream._ ```solidity function getEndTime(uint256 streamId) external view override notNull(streamId) returns (uint40 endTime); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getLockupModel Retrieves the distribution models used to create the stream. _Reverts if `streamId` references a null stream._ ```solidity function getLockupModel(uint256 streamId) external view override notNull(streamId) returns (Lockup.Model lockupModel); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getRecipient Retrieves the stream's recipient. _Reverts if the NFT has been burned._ ```solidity function getRecipient(uint256 streamId) external view override returns (address recipient); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getRefundedAmount Retrieves the amount refunded to the sender after a cancellation, denoted in units of the token's decimals. This amount is always zero unless the stream was canceled. _Reverts if `streamId` references a null stream._ ```solidity function getRefundedAmount(uint256 streamId) external view override notNull(streamId) returns (uint128 refundedAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getSender Retrieves the stream's sender. _Reverts if `streamId` references a null stream._ ```solidity function getSender(uint256 streamId) external view override notNull(streamId) returns (address sender); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getStartTime Retrieves the stream's start time, which is a Unix timestamp. _Reverts if `streamId` references a null stream._ ```solidity function getStartTime(uint256 streamId) external view override notNull(streamId) returns (uint40 startTime); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getUnderlyingToken Retrieves the address of the underlying ERC-20 token being distributed. _Reverts if `streamId` references a null stream._ ```solidity function getUnderlyingToken(uint256 streamId) external view override notNull(streamId) returns (IERC20 token); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getWithdrawnAmount Retrieves the amount withdrawn from the stream, denoted in units of the token's decimals. _Reverts if `streamId` references a null stream._ ```solidity function getWithdrawnAmount(uint256 streamId) external view override notNull(streamId) returns (uint128 withdrawnAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isAllowedToHook Retrieves a flag indicating whether the provided address is a contract allowed to hook to Sablier when a stream is canceled or when tokens are withdrawn. _See [ISablierLockupRecipient](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupRecipient.md) for more information._ ```solidity function isAllowedToHook(address recipient) external view returns (bool result); ``` ### isCancelable Retrieves a flag indicating whether the stream can be canceled. When the stream is cold, this flag is always `false`. _Reverts if `streamId` references a null stream._ ```solidity function isCancelable(uint256 streamId) external view override notNull(streamId) returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isCold Retrieves a flag indicating whether the stream is cold, i.e. settled, canceled, or depleted. _Reverts if `streamId` references a null stream._ ```solidity function isCold(uint256 streamId) external view override notNull(streamId) returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isDepleted Retrieves a flag indicating whether the stream is depleted. _Reverts if `streamId` references a null stream._ ```solidity function isDepleted(uint256 streamId) external view override notNull(streamId) returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isStream Retrieves a flag indicating whether the stream exists. _Does not revert if `streamId` references a null stream._ ```solidity function isStream(uint256 streamId) external view override returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isTransferable Retrieves a flag indicating whether the stream NFT can be transferred. _Reverts if `streamId` references a null stream._ ```solidity function isTransferable(uint256 streamId) external view override notNull(streamId) returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isWarm Retrieves a flag indicating whether the stream is warm, i.e. either pending or streaming. _Reverts if `streamId` references a null stream._ ```solidity function isWarm(uint256 streamId) external view override notNull(streamId) returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### refundableAmountOf Calculates the amount that the sender would be refunded if the stream were canceled, denoted in units of the token's decimals. _Reverts if `streamId` references a null stream._ ```solidity function refundableAmountOf(uint256 streamId) external view override notNull(streamId) returns (uint128 refundableAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### statusOf Retrieves the stream's status. _Reverts if `streamId` references a null stream._ ```solidity function statusOf(uint256 streamId) external view override notNull(streamId) returns (Lockup.Status status); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### streamedAmountOf Calculates the amount streamed to the recipient, denoted in units of the token's decimals. Reverts if `streamId` references a null stream. Notes: - Upon cancellation of the stream, the amount streamed is calculated as the difference between the deposited amount and the refunded amount. Ultimately, when the stream becomes depleted, the streamed amount is equivalent to the total amount withdrawn. ```solidity function streamedAmountOf(uint256 streamId) external view override notNull(streamId) returns (uint128 streamedAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### supportsInterface _See {IERC165-supportsInterface}._ ```solidity function supportsInterface(bytes4 interfaceId) public view override(IERC165, ERC721) returns (bool); ``` ### tokenURI _See {IERC721Metadata-tokenURI}._ ```solidity function tokenURI(uint256 streamId) public view override(IERC721Metadata, ERC721) returns (string memory uri); ``` ### wasCanceled Retrieves a flag indicating whether the stream was canceled. _Reverts if `streamId` references a null stream._ ```solidity function wasCanceled(uint256 streamId) external view override notNull(streamId) returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### withdrawableAmountOf Calculates the amount that the recipient can withdraw from the stream, denoted in units of the token's decimals. _Reverts if `streamId` references a null stream._ ```solidity function withdrawableAmountOf(uint256 streamId) external view override notNull(streamId) returns (uint128 withdrawableAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### allowToHook Allows a recipient contract to hook to Sablier when a stream is canceled or when tokens are withdrawn. Useful for implementing contracts that hold streams on behalf of users, such as vaults or staking contracts. Emits an {AllowToHook} event. Notes: - Does not revert if the contract is already on the allowlist. - This is an irreversible operation. The contract cannot be removed from the allowlist. Requirements: - `msg.sender` must be the contract admin. - `recipient` must have a non-zero code size. - `recipient` must implement [ISablierLockupRecipient](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupRecipient.md). ```solidity function allowToHook(address recipient) external override onlyAdmin; ``` **Parameters** | Name | Type | Description | | ----------- | --------- | ----------------------------------------------- | | `recipient` | `address` | The address of the contract to allow for hooks. | ### burn Burns the NFT associated with the stream. Emits a {Transfer} and {MetadataUpdate} event. Requirements: - Must not be delegate called. - `streamId` must reference a depleted stream. - The NFT must exist. - `msg.sender` must be either the NFT owner or an approved third party. ```solidity function burn(uint256 streamId) external payable override noDelegateCall notNull(streamId); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | --------------------------------- | | `streamId` | `uint256` | The ID of the stream NFT to burn. | ### cancel Cancels the stream and refunds any remaining tokens to the sender. Emits a {Transfer}, {CancelLockupStream} and {MetadataUpdate} event. Notes: - If there any tokens left for the recipient to withdraw, the stream is marked as canceled. Otherwise, the stream is marked as depleted. - If the address is on the allowlist, this function will invoke a hook on the recipient. Requirements: - Must not be delegate called. - The stream must be warm and cancelable. - `msg.sender` must be the stream's sender. ```solidity function cancel(uint256 streamId) public payable override noDelegateCall notNull(streamId); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ------------------------------- | | `streamId` | `uint256` | The ID of the stream to cancel. | ### cancelMultiple Cancels multiple streams and refunds any remaining tokens to the sender. Emits multiple {Transfer}, {CancelLockupStream} and {MetadataUpdate} events. Notes: - Refer to the notes in {cancel}. Requirements: - All requirements from {cancel} must be met for each stream. ```solidity function cancelMultiple(uint256[] calldata streamIds) external payable override noDelegateCall; ``` **Parameters** | Name | Type | Description | | ----------- | ----------- | --------------------------------- | | `streamIds` | `uint256[]` | The IDs of the streams to cancel. | ### collectFees Collects the accrued fees by transferring them to the contract admin. Emits a {CollectFees} event. Notes: - If the admin is a contract, it must be able to receive native token payments, e.g., ETH for Ethereum Mainnet. ```solidity function collectFees() external override; ``` ### renounce Removes the right of the stream's sender to cancel the stream. Emits a {RenounceLockupStream} event. Notes: - This is an irreversible operation. Requirements: - Must not be delegate called. - `streamId` must reference a warm stream. - `msg.sender` must be the stream's sender. - The stream must be cancelable. ```solidity function renounce(uint256 streamId) public payable override noDelegateCall notNull(streamId); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | --------------------------------- | | `streamId` | `uint256` | The ID of the stream to renounce. | ### renounceMultiple Renounces multiple streams. Emits multiple {RenounceLockupStream} events. Notes: - Refer to the notes in {renounce}. Requirements: - All requirements from {renounce} must be met for each stream. ```solidity function renounceMultiple(uint256[] calldata streamIds) external payable override noDelegateCall; ``` **Parameters** | Name | Type | Description | | ----------- | ----------- | ----------------------------------- | | `streamIds` | `uint256[]` | An array of stream IDs to renounce. | ### setNFTDescriptor Sets a new NFT descriptor contract, which produces the URI describing the Sablier stream NFTs. Emits a {SetNFTDescriptor} and {BatchMetadataUpdate} event. Notes: - Does not revert if the NFT descriptor is the same. Requirements: - `msg.sender` must be the contract admin. ```solidity function setNFTDescriptor(ILockupNFTDescriptor newNFTDescriptor) external override onlyAdmin; ``` **Parameters** | Name | Type | Description | | ------------------ | ---------------------- | ----------------------------------------------- | | `newNFTDescriptor` | `ILockupNFTDescriptor` | The address of the new NFT descriptor contract. | ### withdraw Withdraws the provided amount of tokens from the stream to the `to` address. Emits a {Transfer}, {WithdrawFromLockupStream} and {MetadataUpdate} event. Notes: - If `msg.sender` is not the recipient and the address is on the allowlist, this function will invoke a hook on the recipient. Requirements: - Must not be delegate called. - `streamId` must not reference a null or depleted stream. - `to` must not be the zero address. - `amount` must be greater than zero and must not exceed the withdrawable amount. - `to` must be the recipient if `msg.sender` is not the stream's recipient or an approved third party. ```solidity function withdraw( uint256 streamId, address to, uint128 amount ) public payable override noDelegateCall notNull(streamId); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ----------------------------------------------------------------- | | `streamId` | `uint256` | The ID of the stream to withdraw from. | | `to` | `address` | The address receiving the withdrawn tokens. | | `amount` | `uint128` | The amount to withdraw, denoted in units of the token's decimals. | ### withdrawMax Withdraws the maximum withdrawable amount from the stream to the provided address `to`. Emits a {Transfer}, {WithdrawFromLockupStream} and {MetadataUpdate} event. Notes: - Refer to the notes in {withdraw}. Requirements: - Refer to the requirements in {withdraw}. ```solidity function withdrawMax(uint256 streamId, address to) external payable override returns (uint128 withdrawnAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ------------------------------------------- | | `streamId` | `uint256` | The ID of the stream to withdraw from. | | `to` | `address` | The address receiving the withdrawn tokens. | **Returns** | Name | Type | Description | | ----------------- | --------- | --------------------------------------------------------------- | | `withdrawnAmount` | `uint128` | The amount withdrawn, denoted in units of the token's decimals. | ### withdrawMaxAndTransfer Withdraws the maximum withdrawable amount from the stream to the current recipient, and transfers the NFT to `newRecipient`. Emits a {WithdrawFromLockupStream}, {Transfer} and {MetadataUpdate} event. Notes: - If the withdrawable amount is zero, the withdrawal is skipped. - Refer to the notes in {withdraw}. Requirements: - `msg.sender` must be either the NFT owner or an approved third party. - Refer to the requirements in {withdraw}. - Refer to the requirements in {IERC721.transferFrom}. ```solidity function withdrawMaxAndTransfer( uint256 streamId, address newRecipient ) external payable override noDelegateCall notNull(streamId) returns (uint128 withdrawnAmount); ``` **Parameters** | Name | Type | Description | | -------------- | --------- | ----------------------------------------------- | | `streamId` | `uint256` | The ID of the stream NFT to transfer. | | `newRecipient` | `address` | The address of the new owner of the stream NFT. | **Returns** | Name | Type | Description | | ----------------- | --------- | --------------------------------------------------------------- | | `withdrawnAmount` | `uint128` | The amount withdrawn, denoted in units of the token's decimals. | ### withdrawMultiple Withdraws tokens from streams to the recipient of each stream. Emits multiple {Transfer}, {WithdrawFromLockupStream} and {MetadataUpdate} events. For each stream that reverted the withdrawal, it emits an [InvalidWithdrawalInWithdrawMultiple](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupBase.md#invalidwithdrawalinwithdrawmultiple) event. Notes: - This function attempts to call a hook on the recipient of each stream, unless `msg.sender` is the recipient. Requirements: - Must not be delegate called. - There must be an equal number of `streamIds` and `amounts`. - Each stream ID in the array must not reference a null or depleted stream. - Each amount in the array must be greater than zero and must not exceed the withdrawable amount. ```solidity function withdrawMultiple( uint256[] calldata streamIds, uint128[] calldata amounts ) external payable override noDelegateCall; ``` **Parameters** | Name | Type | Description | | ----------- | ----------- | ------------------------------------------------------------------ | | `streamIds` | `uint256[]` | The IDs of the streams to withdraw from. | | `amounts` | `uint128[]` | The amounts to withdraw, denoted in units of the token's decimals. | ### \_calculateStreamedAmount Calculates the streamed amount of the stream without looking up the stream's status. _This function is implemented by child contracts, so the logic varies depending on the model._ ```solidity function _calculateStreamedAmount(uint256 streamId) internal view virtual returns (uint128); ``` ### \_isCallerStreamRecipientOrApproved Checks whether `msg.sender` is the stream's recipient or an approved third party, when the `recipient` is known in advance. ```solidity function _isCallerStreamRecipientOrApproved(uint256 streamId, address recipient) internal view returns (bool); ``` **Parameters** | Name | Type | Description | | ----------- | --------- | -------------------------------------- | | `streamId` | `uint256` | The stream ID for the query. | | `recipient` | `address` | The address of the stream's recipient. | ### \_isCallerStreamSender Checks whether `msg.sender` is the stream's sender. ```solidity function _isCallerStreamSender(uint256 streamId) internal view returns (bool); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### \_statusOf _Retrieves the stream's status without performing a null check._ ```solidity function _statusOf(uint256 streamId) internal view returns (Lockup.Status); ``` ### \_streamedAmountOf _See the documentation for the user-facing functions that call this internal function._ ```solidity function _streamedAmountOf(uint256 streamId) internal view returns (uint128); ``` ### \_withdrawableAmountOf _See the documentation for the user-facing functions that call this internal function._ ```solidity function _withdrawableAmountOf(uint256 streamId) internal view returns (uint128); ``` ### \_cancel _See the documentation for the user-facing functions that call this internal function._ ```solidity function _cancel(uint256 streamId) internal; ``` ### \_renounce _See the documentation for the user-facing functions that call this internal function._ ```solidity function _renounce(uint256 streamId) internal; ``` ### \_update Overrides the {ERC-721.\_update} function to check that the stream is transferable, and emits an ERC-4906 event. There are two cases when the transferable flag is ignored: - If the current owner is 0, then the update is a mint and is allowed. - If `to` is 0, then the update is a burn and is also allowed. ```solidity function _update(address to, uint256 streamId, address auth) internal override returns (address); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `to` | `address` | The address of the new recipient of the stream. | | `streamId` | `uint256` | ID of the stream to update. | | `auth` | `address` | Optional parameter. If the value is not zero, the overridden implementation will check that `auth` is either the recipient of the stream, or an approved third party. | **Returns** | Name | Type | Description | | -------- | --------- | ----------------------------------------------------------- | | `` | `address` | The original recipient of the `streamId` before the update. | ### \_withdraw _See the documentation for the user-facing functions that call this internal function._ ```solidity function _withdraw(uint256 streamId, address to, uint128 amount) internal; ``` --- ## LockupNFTDescriptor [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/LockupNFTDescriptor.sol) **Inherits:** [ILockupNFTDescriptor](/docs/reference/lockup/contracts/interfaces/interface.ILockupNFTDescriptor.md) See the documentation in [ILockupNFTDescriptor](/docs/reference/lockup/contracts/interfaces/interface.ILockupNFTDescriptor.md). ## Functions ### tokenURI Produces the URI describing a particular stream NFT. _This is a data URI with the JSON contents directly inlined._ ```solidity function tokenURI(IERC721Metadata lockup, uint256 streamId) external view override returns (string memory uri); ``` **Parameters** | Name | Type | Description | | ---------- | ----------------- | -------------------------------------------------------- | | `lockup` | `IERC721Metadata` | | | `streamId` | `uint256` | The ID of the stream for which to produce a description. | **Returns** | Name | Type | Description | | ----- | -------- | ----------------------------------------- | | `uri` | `string` | The URI of the ERC721-compliant metadata. | ### abbreviateAmount Creates an abbreviated representation of the provided amount, rounded down and prefixed with ">= ". The abbreviation uses these suffixes: - "K" for thousands - "M" for millions - "B" for billions - "T" for trillions For example, if the input is 1,234,567, the output is ">= 1.23M". ```solidity function abbreviateAmount(uint256 amount, uint256 decimals) internal pure returns (string memory); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | -------------------------------------------------------------- | | `amount` | `uint256` | The amount to abbreviate, denoted in units of `decimals`. | | `decimals` | `uint256` | The number of decimals to assume when abbreviating the amount. | **Returns** | Name | Type | Description | | -------- | -------- | -------------------------------------------------------------------------------- | | `` | `string` | abbreviation The abbreviated representation of the provided amount, as a string. | ### calculateDurationInDays Calculates the stream's duration in days, rounding down. ```solidity function calculateDurationInDays(uint256 startTime, uint256 endTime) internal pure returns (string memory); ``` ### calculateStreamedPercentage Calculates how much of the deposited amount has been streamed so far, as a percentage with 4 implied decimals. ```solidity function calculateStreamedPercentage(uint128 streamedAmount, uint128 depositedAmount) internal pure returns (uint256); ``` ### generateAccentColor Generates a pseudo-random HSL color by hashing together the `chainid`, the `sablier` address, and the `streamId`. This will be used as the accent color for the SVG. ```solidity function generateAccentColor(address sablier, uint256 streamId) internal view returns (string memory); ``` ### generateAttributes Generates an array of JSON objects that represent the NFT's attributes: - Token symbol - Sender address - Status _These attributes are useful for filtering and sorting the NFTs._ ```solidity function generateAttributes( string memory tokenSymbol, string memory sender, string memory status ) internal pure returns (string memory); ``` ### generateDescription Generates a string with the NFT's JSON metadata description, which provides a high-level overview. ```solidity function generateDescription( string memory tokenSymbol, string memory lockupStringified, string memory tokenAddress, string memory streamId, bool isTransferable ) internal pure returns (string memory); ``` ### isAllowedCharacter Checks whether the provided string contains only alphanumeric characters, spaces, and dashes. _Note that this returns true for empty strings._ ```solidity function isAllowedCharacter(string memory str) internal pure returns (bool); ``` ### safeTokenDecimals Retrieves the token's decimals safely, defaulting to "0" if an error occurs. _Performs a low-level call to handle tokens in which the decimals are not implemented._ ```solidity function safeTokenDecimals(address token) internal view returns (uint8); ``` ### safeTokenSymbol Retrieves the token's symbol safely, defaulting to a hard-coded value if an error occurs. _Performs a low-level call to handle tokens in which the symbol is not implemented or it is a bytes32 instead of a string._ ```solidity function safeTokenSymbol(address token) internal view returns (string memory); ``` ### stringifyFractionalAmount Converts the provided fractional amount to a string prefixed by a dot. ```solidity function stringifyFractionalAmount(uint256 fractionalAmount) internal pure returns (string memory); ``` **Parameters** | Name | Type | Description | | ------------------ | --------- | ------------------------------------------ | | `fractionalAmount` | `uint256` | A numerical value with 2 implied decimals. | ### stringifyPercentage Converts the provided percentage to a string. ```solidity function stringifyPercentage(uint256 percentage) internal pure returns (string memory); ``` **Parameters** | Name | Type | Description | | ------------ | --------- | ------------------------------------------ | | `percentage` | `uint256` | A numerical value with 4 implied decimals. | ### stringifyStatus Retrieves the stream's status as a string. ```solidity function stringifyStatus(Lockup.Status status) internal pure returns (string memory); ``` ## Structs ### TokenURIVars _Needed to avoid Stack Too Deep._ ```solidity struct TokenURIVars { address token; string tokenSymbol; uint128 depositedAmount; string json; ISablierLockup lockup; string lockupStringified; string status; string svg; uint256 streamedPercentage; } ``` --- ## SablierBatchLockup [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/SablierBatchLockup.sol) **Inherits:** [ISablierBatchLockup](/docs/reference/lockup/contracts/interfaces/interface.ISablierBatchLockup.md) See the documentation in [ISablierBatchLockup](/docs/reference/lockup/contracts/interfaces/interface.ISablierBatchLockup.md). ## Functions ### createWithDurationsLD Creates a batch of Lockup Dynamic streams using `createWithDurationsLD`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithDurationsLD} must be met for each stream. ```solidity function createWithDurationsLD( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithDurationsLD[] calldata batch ) external override returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithDurationsLD[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithDurationsLD}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | ### createWithTimestampsLD Creates a batch of Lockup Dynamic streams using `createWithTimestampsLD`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithTimestampsLD} must be met for each stream. ```solidity function createWithTimestampsLD( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithTimestampsLD[] calldata batch ) external override returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithTimestampsLD[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithTimestampsLD}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | ### createWithDurationsLL Creates a batch of Lockup Linear streams using `createWithDurationsLL`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithDurationsLL} must be met for each stream. ```solidity function createWithDurationsLL( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithDurationsLL[] calldata batch ) external override returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithDurationsLL[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithDurationsLL}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | ### createWithTimestampsLL Creates a batch of Lockup Linear streams using `createWithTimestampsLL`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithTimestampsLL} must be met for each stream. ```solidity function createWithTimestampsLL( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithTimestampsLL[] calldata batch ) external override returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithTimestampsLL[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithTimestampsLL}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | ### createWithDurationsLT Creates a batch of Lockup Tranched streams using `createWithDurationsLT`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithDurationsLT} must be met for each stream. ```solidity function createWithDurationsLT( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithDurationsLT[] calldata batch ) external override returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithDurationsLT[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithDurationsLT}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | ### createWithTimestampsLT Creates a batch of Lockup Tranched streams using `createWithTimestampsLT`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithTimestampsLT} must be met for each stream. ```solidity function createWithTimestampsLT( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithTimestampsLT[] calldata batch ) external override returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithTimestampsLT[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithTimestampsLT}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | ### \_approve _Helper function to approve a Lockup contract to spend funds from the batchLockup. If the current allowance is insufficient, this function approves Lockup to spend the exact `amount`. The {SafeERC20.forceApprove} function is used to handle special ERC-20 tokens (e.g. USDT) that require the current allowance to be zero before setting it to a non-zero value._ ```solidity function _approve(address lockup, IERC20 token, uint256 amount) internal; ``` ### \_handleTransfer _Helper function to transfer tokens from the caller to the batchLockup contract and approve the Lockup contract._ ```solidity function _handleTransfer(address lockup, IERC20 token, uint256 amount) internal; ``` --- ## SablierLockup [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/SablierLockup.sol) **Inherits:** [ISablierLockup](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockup.md), [SablierLockupBase](/docs/reference/lockup/contracts/abstracts/abstract.SablierLockupBase.md) See the documentation in [ISablierLockup](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockup.md). ## State Variables ### MAX_COUNT The maximum number of segments and tranches allowed in Dynamic and Tranched streams respectively. _This is initialized at construction time and cannot be changed later._ ```solidity uint256 public immutable override MAX_COUNT; ``` ### \_cliffs _Cliff timestamp mapped by stream IDs. This is used in Lockup Linear models._ ```solidity mapping(uint256 streamId => uint40 cliffTime) internal _cliffs; ``` ### \_segments _Stream segments mapped by stream IDs. This is used in Lockup Dynamic models._ ```solidity mapping(uint256 streamId => LockupDynamic.Segment[] segments) internal _segments; ``` ### \_tranches _Stream tranches mapped by stream IDs. This is used in Lockup Tranched models._ ```solidity mapping(uint256 streamId => LockupTranched.Tranche[] tranches) internal _tranches; ``` ### \_unlockAmounts _Unlock amounts mapped by stream IDs. This is used in Lockup Linear models._ ```solidity mapping(uint256 streamId => LockupLinear.UnlockAmounts unlockAmounts) internal _unlockAmounts; ``` ## Functions ### constructor ```solidity constructor( address initialAdmin, ILockupNFTDescriptor initialNFTDescriptor, uint256 maxCount ) ERC721("Sablier Lockup NFT", "SAB-LOCKUP") SablierLockupBase(initialAdmin, initialNFTDescriptor); ``` **Parameters** | Name | Type | Description | | ---------------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------- | | `initialAdmin` | `address` | The address of the initial contract admin. | | `initialNFTDescriptor` | `ILockupNFTDescriptor` | The address of the NFT descriptor contract. | | `maxCount` | `uint256` | The maximum number of segments and tranched allowed in Lockup Dynamic and Lockup Tranched models, respectively. | ### getCliffTime Retrieves the stream's cliff time, which is a Unix timestamp. A value of zero means there is no cliff. _Reverts if `streamId` references a null stream or a non Lockup Linear stream._ ```solidity function getCliffTime(uint256 streamId) external view override notNull(streamId) returns (uint40 cliffTime); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getSegments Retrieves the segments used to compose the dynamic distribution function. _Reverts if `streamId` references a null stream or a non Lockup Dynamic stream._ ```solidity function getSegments(uint256 streamId) external view override notNull(streamId) returns (LockupDynamic.Segment[] memory segments); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | **Returns** | Name | Type | Description | | ---------- | ------------------------- | ------------------------------------- | | `segments` | `LockupDynamic.Segment[]` | See the documentation in {DataTypes}. | ### getTranches Retrieves the tranches used to compose the tranched distribution function. _Reverts if `streamId` references a null stream or a non Lockup Tranched stream._ ```solidity function getTranches(uint256 streamId) external view override notNull(streamId) returns (LockupTranched.Tranche[] memory tranches); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | **Returns** | Name | Type | Description | | ---------- | -------------------------- | ------------------------------------- | | `tranches` | `LockupTranched.Tranche[]` | See the documentation in {DataTypes}. | ### getUnlockAmounts Retrieves the unlock amounts used to compose the linear distribution function. _Reverts if `streamId` references a null stream or a non Lockup Linear stream._ ```solidity function getUnlockAmounts(uint256 streamId) external view override notNull(streamId) returns (LockupLinear.UnlockAmounts memory unlockAmounts); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | **Returns** | Name | Type | Description | | --------------- | ---------------------------- | ------------------------------------- | | `unlockAmounts` | `LockupLinear.UnlockAmounts` | See the documentation in {DataTypes}. | ### createWithDurationsLD Creates a stream by setting the start time to `block.timestamp`, and the end time to the sum of `block.timestamp` and all specified time durations. The segment timestamps are derived from these durations. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupDynamicStream} and {MetadataUpdate} event. Requirements: - All requirements in {createWithTimestampsLD} must be met for the calculated parameters. ```solidity function createWithDurationsLD( Lockup.CreateWithDurations calldata params, LockupDynamic.SegmentWithDuration[] calldata segmentsWithDuration ) external payable override noDelegateCall returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | ---------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithDurations` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `segmentsWithDuration` | `LockupDynamic.SegmentWithDuration[]` | Segments with durations used to compose the dynamic distribution function. Timestamps are calculated by starting from `block.timestamp` and adding each duration to the previous timestamp. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ### createWithDurationsLL Creates a stream by setting the start time to `block.timestamp`, and the end time to the sum of `block.timestamp` and `durations.total`. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupLinearStream} and {MetadataUpdate} event. Requirements: - All requirements in {createWithTimestampsLL} must be met for the calculated parameters. ```solidity function createWithDurationsLL( Lockup.CreateWithDurations calldata params, LockupLinear.UnlockAmounts calldata unlockAmounts, LockupLinear.Durations calldata durations ) external payable override noDelegateCall returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | --------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithDurations` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `unlockAmounts` | `LockupLinear.UnlockAmounts` | Struct encapsulating (i) the amount to unlock at the start time and (ii) the amount to unlock at the cliff time. | | `durations` | `LockupLinear.Durations` | Struct encapsulating (i) cliff period duration and (ii) total stream duration, both in seconds. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ### createWithDurationsLT Creates a stream by setting the start time to `block.timestamp`, and the end time to the sum of `block.timestamp` and all specified time durations. The tranche timestamps are derived from these durations. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupTrancheStream} and {MetadataUpdate} event. Requirements: - All requirements in {createWithTimestampsLT} must be met for the calculated parameters. ```solidity function createWithDurationsLT( Lockup.CreateWithDurations calldata params, LockupTranched.TrancheWithDuration[] calldata tranchesWithDuration ) external payable override noDelegateCall returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | ---------------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithDurations` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `tranchesWithDuration` | `LockupTranched.TrancheWithDuration[]` | Tranches with durations used to compose the tranched distribution function. Timestamps are calculated by starting from `block.timestamp` and adding each duration to the previous timestamp. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ### createWithTimestampsLD Creates a stream with the provided segment timestamps, implying the end time from the last timestamp. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupDynamicStream} and {MetadataUpdate} event. Notes: - As long as the segment timestamps are arranged in ascending order, it is not an error for some of them to be in the past. Requirements: - Must not be delegate called. - `params.totalAmount` must be greater than zero. - If set, `params.broker.fee` must not be greater than `MAX_BROKER_FEE`. - `params.timestamps.start` must be greater than zero and less than the first segment's timestamp. - `segments` must have at least one segment, but not more than `MAX_COUNT`. - The segment timestamps must be arranged in ascending order. - `params.timestamps.end` must be equal to the last segment's timestamp. - The sum of the segment amounts must equal the deposit amount. - `params.recipient` must not be the zero address. - `params.sender` must not be the zero address. - `msg.sender` must have allowed this contract to spend at least `params.totalAmount` tokens. - `params.shape.length` must not be greater than 32 characters. ```solidity function createWithTimestampsLD( Lockup.CreateWithTimestamps calldata params, LockupDynamic.Segment[] calldata segments ) external payable override noDelegateCall returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | ---------- | ----------------------------- | ---------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithTimestamps` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `segments` | `LockupDynamic.Segment[]` | Segments used to compose the dynamic distribution function. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ### createWithTimestampsLL Creates a stream with the provided start time and end time. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupLinearStream} and {MetadataUpdate} event. Notes: - A cliff time of zero means there is no cliff. - As long as the times are ordered, it is not an error for the start or the cliff time to be in the past. Requirements: - Must not be delegate called. - `params.totalAmount` must be greater than zero. - If set, `params.broker.fee` must not be greater than `MAX_BROKER_FEE`. - `params.timestamps.start` must be greater than zero and less than `params.timestamps.end`. - If set, `cliffTime` must be greater than `params.timestamps.start` and less than `params.timestamps.end`. - `params.recipient` must not be the zero address. - `params.sender` must not be the zero address. - The sum of `params.unlockAmounts.start` and `params.unlockAmounts.cliff` must be less than or equal to deposit amount. - If `params.timestamps.cliff` not set, the `params.unlockAmounts.cliff` must be zero. - `msg.sender` must have allowed this contract to spend at least `params.totalAmount` tokens. - `params.shape.length` must not be greater than 32 characters. ```solidity function createWithTimestampsLL( Lockup.CreateWithTimestamps calldata params, LockupLinear.UnlockAmounts calldata unlockAmounts, uint40 cliffTime ) external payable override noDelegateCall returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | --------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithTimestamps` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `unlockAmounts` | `LockupLinear.UnlockAmounts` | Struct encapsulating (i) the amount to unlock at the start time and (ii) the amount to unlock at the cliff time. | | `cliffTime` | `uint40` | The Unix timestamp for the cliff period's end. A value of zero means there is no cliff. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ### createWithTimestampsLT Creates a stream with the provided tranche timestamps, implying the end time from the last timestamp. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupTrancheStream} and {MetadataUpdate} event. Notes: - As long as the tranche timestamps are arranged in ascending order, it is not an error for some of them to be in the past. Requirements: - Must not be delegate called. - `params.totalAmount` must be greater than zero. - If set, `params.broker.fee` must not be greater than `MAX_BROKER_FEE`. - `params.timestamps.start` must be greater than zero and less than the first tranche's timestamp. - `tranches` must have at least one tranche, but not more than `MAX_COUNT`. - The tranche timestamps must be arranged in ascending order. - `params.timestamps.end` must be equal to the last tranche's timestamp. - The sum of the tranche amounts must equal the deposit amount. - `params.recipient` must not be the zero address. - `params.sender` must not be the zero address. - `msg.sender` must have allowed this contract to spend at least `params.totalAmount` tokens. - `params.shape.length` must not be greater than 32 characters. ```solidity function createWithTimestampsLT( Lockup.CreateWithTimestamps calldata params, LockupTranched.Tranche[] calldata tranches ) external payable override noDelegateCall returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | ---------- | ----------------------------- | ---------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithTimestamps` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `tranches` | `LockupTranched.Tranche[]` | Tranches used to compose the tranched distribution function. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ### \_calculateStreamedAmount Calculates the streamed amount of the stream without looking up the stream's status. _This function is implemented by child contracts, so the logic varies depending on the model._ ```solidity function _calculateStreamedAmount(uint256 streamId) internal view override returns (uint128); ``` ### \_create _Common logic for creating a stream._ ```solidity function _create( uint256 streamId, Lockup.CreateWithTimestamps memory params, Lockup.CreateAmounts memory createAmounts, Lockup.Model lockupModel ) internal returns (Lockup.CreateEventCommon memory); ``` **Returns** | Name | Type | Description | | -------- | -------------------------- | ---------------------------------------------------------------------------- | | `` | `Lockup.CreateEventCommon` | The common parameters emitted in the create event between all Lockup models. | ### \_createLD _See the documentation for the user-facing functions that call this internal function._ ```solidity function _createLD( Lockup.CreateWithTimestamps memory params, LockupDynamic.Segment[] memory segments ) internal returns (uint256 streamId); ``` ### \_createLL _See the documentation for the user-facing functions that call this internal function._ ```solidity function _createLL( Lockup.CreateWithTimestamps memory params, LockupLinear.UnlockAmounts memory unlockAmounts, uint40 cliffTime ) internal returns (uint256 streamId); ``` ### \_createLT _See the documentation for the user-facing functions that call this internal function._ ```solidity function _createLT( Lockup.CreateWithTimestamps memory params, LockupTranched.Tranche[] memory tranches ) internal returns (uint256 streamId); ``` --- ## IAdminable [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/interfaces/IAdminable.sol) Contract module that provides a basic access control mechanism, with an admin that can be granted exclusive access to specific functions. The inheriting contract must set the initial admin in the constructor. ## Functions ### admin The address of the admin account or contract. ```solidity function admin() external view returns (address); ``` ### transferAdmin Transfers the contract admin to a new address. Notes: - Does not revert if the admin is the same. - This function can potentially leave the contract without an admin, thereby removing any functionality that is only available to the admin. Requirements: - `msg.sender` must be the contract admin. ```solidity function transferAdmin(address newAdmin) external; ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ----------------------------- | | `newAdmin` | `address` | The address of the new admin. | ## Events ### TransferAdmin Emitted when the admin is transferred. ```solidity event TransferAdmin(address indexed oldAdmin, address indexed newAdmin); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ----------------------------- | | `oldAdmin` | `address` | The address of the old admin. | | `newAdmin` | `address` | The address of the new admin. | --- ## IBatch [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/interfaces/IBatch.sol) This contract implements logic to batch call any function. ## Functions ### batch Allows batched calls to self, i.e., `this` contract. _Since `msg.value` can be reused across calls, be VERY CAREFUL when using it. Refer to https://paradigm.xyz/2021/08/two-rights-might-make-a-wrong for more information._ ```solidity function batch(bytes[] calldata calls) external payable returns (bytes[] memory results); ``` **Parameters** | Name | Type | Description | | ------- | --------- | --------------------------------- | | `calls` | `bytes[]` | An array of inputs for each call. | **Returns** | Name | Type | Description | | --------- | --------- | -------------------------------------------------------------------------------- | | `results` | `bytes[]` | An array of results from each call. Empty when the calls do not return anything. | --- ## ILockupNFTDescriptor [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/interfaces/ILockupNFTDescriptor.sol) This contract generates the URI describing the Sablier stream NFTs. _Inspired by Uniswap V3 Positions NFTs._ ## Functions ### tokenURI Produces the URI describing a particular stream NFT. _This is a data URI with the JSON contents directly inlined._ ```solidity function tokenURI(IERC721Metadata sablier, uint256 streamId) external view returns (string memory uri); ``` **Parameters** | Name | Type | Description | | ---------- | ----------------- | -------------------------------------------------------------- | | `sablier` | `IERC721Metadata` | The address of the Sablier contract the stream was created in. | | `streamId` | `uint256` | The ID of the stream for which to produce a description. | **Returns** | Name | Type | Description | | ----- | -------- | ----------------------------------------- | | `uri` | `string` | The URI of the ERC721-compliant metadata. | --- ## ISablierBatchLockup [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/interfaces/ISablierBatchLockup.sol) Helper to batch create Lockup streams. ## Functions ### createWithDurationsLD Creates a batch of Lockup Dynamic streams using `createWithDurationsLD`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithDurationsLD} must be met for each stream. ```solidity function createWithDurationsLD( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithDurationsLD[] calldata batch ) external returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithDurationsLD[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithDurationsLD}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | ### createWithTimestampsLD Creates a batch of Lockup Dynamic streams using `createWithTimestampsLD`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithTimestampsLD} must be met for each stream. ```solidity function createWithTimestampsLD( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithTimestampsLD[] calldata batch ) external returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithTimestampsLD[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithTimestampsLD}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | ### createWithDurationsLL Creates a batch of Lockup Linear streams using `createWithDurationsLL`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithDurationsLL} must be met for each stream. ```solidity function createWithDurationsLL( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithDurationsLL[] calldata batch ) external returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithDurationsLL[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithDurationsLL}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | ### createWithTimestampsLL Creates a batch of Lockup Linear streams using `createWithTimestampsLL`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithTimestampsLL} must be met for each stream. ```solidity function createWithTimestampsLL( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithTimestampsLL[] calldata batch ) external returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithTimestampsLL[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithTimestampsLL}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | ### createWithDurationsLT Creates a batch of Lockup Tranched streams using `createWithDurationsLT`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithDurationsLT} must be met for each stream. ```solidity function createWithDurationsLT( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithDurationsLT[] calldata batch ) external returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithDurationsLT[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithDurationsLT}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | ### createWithTimestampsLT Creates a batch of Lockup Tranched streams using `createWithTimestampsLT`. Requirements: - There must be at least one element in `batch`. - All requirements from {ISablierLockup.createWithTimestampsLT} must be met for each stream. ```solidity function createWithTimestampsLT( ISablierLockup lockup, IERC20 token, BatchLockup.CreateWithTimestampsLT[] calldata batch ) external returns (uint256[] memory streamIds); ``` **Parameters** | Name | Type | Description | | -------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | `lockup` | `ISablierLockup` | The address of the [SablierLockup](/docs/reference/lockup/contracts/contract.SablierLockup.md) contract. | | `token` | `IERC20` | The contract address of the ERC-20 token to be distributed. | | `batch` | `BatchLockup.CreateWithTimestampsLT[]` | An array of structs, each encapsulating a subset of the parameters of {SablierLockup.createWithTimestampsLT}. | **Returns** | Name | Type | Description | | ----------- | ----------- | ------------------------------------- | | `streamIds` | `uint256[]` | The ids of the newly created streams. | --- ## ISablierLockup [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/interfaces/ISablierLockup.sol) **Inherits:** [ISablierLockupBase](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupBase.md) Creates and manages Lockup streams with various distribution models. ## Functions ### MAX_COUNT The maximum number of segments and tranches allowed in Dynamic and Tranched streams respectively. _This is initialized at construction time and cannot be changed later._ ```solidity function MAX_COUNT() external view returns (uint256); ``` ### getCliffTime Retrieves the stream's cliff time, which is a Unix timestamp. A value of zero means there is no cliff. _Reverts if `streamId` references a null stream or a non Lockup Linear stream._ ```solidity function getCliffTime(uint256 streamId) external view returns (uint40 cliffTime); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getSegments Retrieves the segments used to compose the dynamic distribution function. _Reverts if `streamId` references a null stream or a non Lockup Dynamic stream._ ```solidity function getSegments(uint256 streamId) external view returns (LockupDynamic.Segment[] memory segments); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | **Returns** | Name | Type | Description | | ---------- | ------------------------- | ------------------------------------- | | `segments` | `LockupDynamic.Segment[]` | See the documentation in {DataTypes}. | ### getTranches Retrieves the tranches used to compose the tranched distribution function. _Reverts if `streamId` references a null stream or a non Lockup Tranched stream._ ```solidity function getTranches(uint256 streamId) external view returns (LockupTranched.Tranche[] memory tranches); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | **Returns** | Name | Type | Description | | ---------- | -------------------------- | ------------------------------------- | | `tranches` | `LockupTranched.Tranche[]` | See the documentation in {DataTypes}. | ### getUnlockAmounts Retrieves the unlock amounts used to compose the linear distribution function. _Reverts if `streamId` references a null stream or a non Lockup Linear stream._ ```solidity function getUnlockAmounts(uint256 streamId) external view returns (LockupLinear.UnlockAmounts memory unlockAmounts); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | **Returns** | Name | Type | Description | | --------------- | ---------------------------- | ------------------------------------- | | `unlockAmounts` | `LockupLinear.UnlockAmounts` | See the documentation in {DataTypes}. | ### createWithDurationsLD Creates a stream by setting the start time to `block.timestamp`, and the end time to the sum of `block.timestamp` and all specified time durations. The segment timestamps are derived from these durations. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupDynamicStream} and {MetadataUpdate} event. Requirements: - All requirements in {createWithTimestampsLD} must be met for the calculated parameters. ```solidity function createWithDurationsLD( Lockup.CreateWithDurations calldata params, LockupDynamic.SegmentWithDuration[] calldata segmentsWithDuration ) external payable returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | ---------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithDurations` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `segmentsWithDuration` | `LockupDynamic.SegmentWithDuration[]` | Segments with durations used to compose the dynamic distribution function. Timestamps are calculated by starting from `block.timestamp` and adding each duration to the previous timestamp. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ### createWithDurationsLL Creates a stream by setting the start time to `block.timestamp`, and the end time to the sum of `block.timestamp` and `durations.total`. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupLinearStream} and {MetadataUpdate} event. Requirements: - All requirements in {createWithTimestampsLL} must be met for the calculated parameters. ```solidity function createWithDurationsLL( Lockup.CreateWithDurations calldata params, LockupLinear.UnlockAmounts calldata unlockAmounts, LockupLinear.Durations calldata durations ) external payable returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | --------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithDurations` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `unlockAmounts` | `LockupLinear.UnlockAmounts` | Struct encapsulating (i) the amount to unlock at the start time and (ii) the amount to unlock at the cliff time. | | `durations` | `LockupLinear.Durations` | Struct encapsulating (i) cliff period duration and (ii) total stream duration, both in seconds. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ### createWithDurationsLT Creates a stream by setting the start time to `block.timestamp`, and the end time to the sum of `block.timestamp` and all specified time durations. The tranche timestamps are derived from these durations. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupTrancheStream} and {MetadataUpdate} event. Requirements: - All requirements in {createWithTimestampsLT} must be met for the calculated parameters. ```solidity function createWithDurationsLT( Lockup.CreateWithDurations calldata params, LockupTranched.TrancheWithDuration[] calldata tranchesWithDuration ) external payable returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | ---------------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithDurations` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `tranchesWithDuration` | `LockupTranched.TrancheWithDuration[]` | Tranches with durations used to compose the tranched distribution function. Timestamps are calculated by starting from `block.timestamp` and adding each duration to the previous timestamp. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ### createWithTimestampsLD Creates a stream with the provided segment timestamps, implying the end time from the last timestamp. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupDynamicStream} and {MetadataUpdate} event. Notes: - As long as the segment timestamps are arranged in ascending order, it is not an error for some of them to be in the past. Requirements: - Must not be delegate called. - `params.totalAmount` must be greater than zero. - If set, `params.broker.fee` must not be greater than `MAX_BROKER_FEE`. - `params.timestamps.start` must be greater than zero and less than the first segment's timestamp. - `segments` must have at least one segment, but not more than `MAX_COUNT`. - The segment timestamps must be arranged in ascending order. - `params.timestamps.end` must be equal to the last segment's timestamp. - The sum of the segment amounts must equal the deposit amount. - `params.recipient` must not be the zero address. - `params.sender` must not be the zero address. - `msg.sender` must have allowed this contract to spend at least `params.totalAmount` tokens. - `params.shape.length` must not be greater than 32 characters. ```solidity function createWithTimestampsLD( Lockup.CreateWithTimestamps calldata params, LockupDynamic.Segment[] calldata segments ) external payable returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | ---------- | ----------------------------- | ---------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithTimestamps` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `segments` | `LockupDynamic.Segment[]` | Segments used to compose the dynamic distribution function. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ### createWithTimestampsLL Creates a stream with the provided start time and end time. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupLinearStream} and {MetadataUpdate} event. Notes: - A cliff time of zero means there is no cliff. - As long as the times are ordered, it is not an error for the start or the cliff time to be in the past. Requirements: - Must not be delegate called. - `params.totalAmount` must be greater than zero. - If set, `params.broker.fee` must not be greater than `MAX_BROKER_FEE`. - `params.timestamps.start` must be greater than zero and less than `params.timestamps.end`. - If set, `cliffTime` must be greater than `params.timestamps.start` and less than `params.timestamps.end`. - `params.recipient` must not be the zero address. - `params.sender` must not be the zero address. - The sum of `params.unlockAmounts.start` and `params.unlockAmounts.cliff` must be less than or equal to deposit amount. - If `params.timestamps.cliff` not set, the `params.unlockAmounts.cliff` must be zero. - `msg.sender` must have allowed this contract to spend at least `params.totalAmount` tokens. - `params.shape.length` must not be greater than 32 characters. ```solidity function createWithTimestampsLL( Lockup.CreateWithTimestamps calldata params, LockupLinear.UnlockAmounts calldata unlockAmounts, uint40 cliffTime ) external payable returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | --------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithTimestamps` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `unlockAmounts` | `LockupLinear.UnlockAmounts` | Struct encapsulating (i) the amount to unlock at the start time and (ii) the amount to unlock at the cliff time. | | `cliffTime` | `uint40` | The Unix timestamp for the cliff period's end. A value of zero means there is no cliff. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ### createWithTimestampsLT Creates a stream with the provided tranche timestamps, implying the end time from the last timestamp. The stream is funded by `msg.sender` and is wrapped in an ERC-721 NFT. Emits a {Transfer}, {CreateLockupTrancheStream} and {MetadataUpdate} event. Notes: - As long as the tranche timestamps are arranged in ascending order, it is not an error for some of them to be in the past. Requirements: - Must not be delegate called. - `params.totalAmount` must be greater than zero. - If set, `params.broker.fee` must not be greater than `MAX_BROKER_FEE`. - `params.timestamps.start` must be greater than zero and less than the first tranche's timestamp. - `tranches` must have at least one tranche, but not more than `MAX_COUNT`. - The tranche timestamps must be arranged in ascending order. - `params.timestamps.end` must be equal to the last tranche's timestamp. - The sum of the tranche amounts must equal the deposit amount. - `params.recipient` must not be the zero address. - `params.sender` must not be the zero address. - `msg.sender` must have allowed this contract to spend at least `params.totalAmount` tokens. - `params.shape.length` must not be greater than 32 characters. ```solidity function createWithTimestampsLT( Lockup.CreateWithTimestamps calldata params, LockupTranched.Tranche[] calldata tranches ) external payable returns (uint256 streamId); ``` **Parameters** | Name | Type | Description | | ---------- | ----------------------------- | ---------------------------------------------------------------------------------- | | `params` | `Lockup.CreateWithTimestamps` | Struct encapsulating the function parameters, which are documented in {DataTypes}. | | `tranches` | `LockupTranched.Tranche[]` | Tranches used to compose the tranched distribution function. | **Returns** | Name | Type | Description | | ---------- | --------- | ----------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | ## Events ### CreateLockupDynamicStream Emitted when a stream is created using Lockup dynamic model. ```solidity event CreateLockupDynamicStream( uint256 indexed streamId, Lockup.CreateEventCommon commonParams, LockupDynamic.Segment[] segments ); ``` **Parameters** | Name | Type | Description | | -------------- | -------------------------- | ---------------------------------------------------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | | `commonParams` | `Lockup.CreateEventCommon` | Common parameters emitted in Create events across all Lockup models. | | `segments` | `LockupDynamic.Segment[]` | The segments the protocol uses to compose the dynamic distribution function. | ### CreateLockupLinearStream Emitted when a stream is created using Lockup linear model. ```solidity event CreateLockupLinearStream( uint256 indexed streamId, Lockup.CreateEventCommon commonParams, uint40 cliffTime, LockupLinear.UnlockAmounts unlockAmounts ); ``` **Parameters** | Name | Type | Description | | --------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | | `commonParams` | `Lockup.CreateEventCommon` | Common parameters emitted in Create events across all Lockup models. | | `cliffTime` | `uint40` | The Unix timestamp for the cliff period's end. A value of zero means there is no cliff. | | `unlockAmounts` | `LockupLinear.UnlockAmounts` | Struct encapsulating (i) the amount to unlock at the start time and (ii) the amount to unlock at the cliff time. | ### CreateLockupTranchedStream Emitted when a stream is created using Lockup tranched model. ```solidity event CreateLockupTranchedStream( uint256 indexed streamId, Lockup.CreateEventCommon commonParams, LockupTranched.Tranche[] tranches ); ``` **Parameters** | Name | Type | Description | | -------------- | -------------------------- | ----------------------------------------------------------------------------- | | `streamId` | `uint256` | The ID of the newly created stream. | | `commonParams` | `Lockup.CreateEventCommon` | Common parameters emitted in Create events across all Lockup models. | | `tranches` | `LockupTranched.Tranche[]` | The tranches the protocol uses to compose the tranched distribution function. | --- ## ISablierLockupBase [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/interfaces/ISablierLockupBase.sol) **Inherits:** [IAdminable](/docs/reference/lockup/contracts/interfaces/interface.IAdminable.md), [IBatch](/docs/reference/lockup/contracts/interfaces/interface.IBatch.md), IERC4906, IERC721Metadata Common logic between all Sablier Lockup contracts. ## Functions ### MAX_BROKER_FEE Retrieves the maximum broker fee that can be charged by the broker, denoted as a fixed-point number where 1e18 is 100%. _This value is hard coded as a constant._ ```solidity function MAX_BROKER_FEE() external view returns (UD60x18); ``` ### getDepositedAmount Retrieves the amount deposited in the stream, denoted in units of the token's decimals. _Reverts if `streamId` references a null stream._ ```solidity function getDepositedAmount(uint256 streamId) external view returns (uint128 depositedAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getEndTime Retrieves the stream's end time, which is a Unix timestamp. _Reverts if `streamId` references a null stream._ ```solidity function getEndTime(uint256 streamId) external view returns (uint40 endTime); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getLockupModel Retrieves the distribution models used to create the stream. _Reverts if `streamId` references a null stream._ ```solidity function getLockupModel(uint256 streamId) external view returns (Lockup.Model lockupModel); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getRecipient Retrieves the stream's recipient. _Reverts if the NFT has been burned._ ```solidity function getRecipient(uint256 streamId) external view returns (address recipient); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getRefundedAmount Retrieves the amount refunded to the sender after a cancellation, denoted in units of the token's decimals. This amount is always zero unless the stream was canceled. _Reverts if `streamId` references a null stream._ ```solidity function getRefundedAmount(uint256 streamId) external view returns (uint128 refundedAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getSender Retrieves the stream's sender. _Reverts if `streamId` references a null stream._ ```solidity function getSender(uint256 streamId) external view returns (address sender); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getStartTime Retrieves the stream's start time, which is a Unix timestamp. _Reverts if `streamId` references a null stream._ ```solidity function getStartTime(uint256 streamId) external view returns (uint40 startTime); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getUnderlyingToken Retrieves the address of the underlying ERC-20 token being distributed. _Reverts if `streamId` references a null stream._ ```solidity function getUnderlyingToken(uint256 streamId) external view returns (IERC20 token); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### getWithdrawnAmount Retrieves the amount withdrawn from the stream, denoted in units of the token's decimals. _Reverts if `streamId` references a null stream._ ```solidity function getWithdrawnAmount(uint256 streamId) external view returns (uint128 withdrawnAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isAllowedToHook Retrieves a flag indicating whether the provided address is a contract allowed to hook to Sablier when a stream is canceled or when tokens are withdrawn. _See [ISablierLockupRecipient](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupRecipient.md) for more information._ ```solidity function isAllowedToHook(address recipient) external view returns (bool result); ``` ### isCancelable Retrieves a flag indicating whether the stream can be canceled. When the stream is cold, this flag is always `false`. _Reverts if `streamId` references a null stream._ ```solidity function isCancelable(uint256 streamId) external view returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isCold Retrieves a flag indicating whether the stream is cold, i.e. settled, canceled, or depleted. _Reverts if `streamId` references a null stream._ ```solidity function isCold(uint256 streamId) external view returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isDepleted Retrieves a flag indicating whether the stream is depleted. _Reverts if `streamId` references a null stream._ ```solidity function isDepleted(uint256 streamId) external view returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isStream Retrieves a flag indicating whether the stream exists. _Does not revert if `streamId` references a null stream._ ```solidity function isStream(uint256 streamId) external view returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isTransferable Retrieves a flag indicating whether the stream NFT can be transferred. _Reverts if `streamId` references a null stream._ ```solidity function isTransferable(uint256 streamId) external view returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### isWarm Retrieves a flag indicating whether the stream is warm, i.e. either pending or streaming. _Reverts if `streamId` references a null stream._ ```solidity function isWarm(uint256 streamId) external view returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### nextStreamId Counter for stream IDs, used in the create functions. ```solidity function nextStreamId() external view returns (uint256); ``` ### nftDescriptor Contract that generates the non-fungible token URI. ```solidity function nftDescriptor() external view returns (ILockupNFTDescriptor); ``` ### refundableAmountOf Calculates the amount that the sender would be refunded if the stream were canceled, denoted in units of the token's decimals. _Reverts if `streamId` references a null stream._ ```solidity function refundableAmountOf(uint256 streamId) external view returns (uint128 refundableAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### statusOf Retrieves the stream's status. _Reverts if `streamId` references a null stream._ ```solidity function statusOf(uint256 streamId) external view returns (Lockup.Status status); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### streamedAmountOf Calculates the amount streamed to the recipient, denoted in units of the token's decimals. Reverts if `streamId` references a null stream. Notes: - Upon cancellation of the stream, the amount streamed is calculated as the difference between the deposited amount and the refunded amount. Ultimately, when the stream becomes depleted, the streamed amount is equivalent to the total amount withdrawn. ```solidity function streamedAmountOf(uint256 streamId) external view returns (uint128 streamedAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### wasCanceled Retrieves a flag indicating whether the stream was canceled. _Reverts if `streamId` references a null stream._ ```solidity function wasCanceled(uint256 streamId) external view returns (bool result); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### withdrawableAmountOf Calculates the amount that the recipient can withdraw from the stream, denoted in units of the token's decimals. _Reverts if `streamId` references a null stream._ ```solidity function withdrawableAmountOf(uint256 streamId) external view returns (uint128 withdrawableAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ---------------------------- | | `streamId` | `uint256` | The stream ID for the query. | ### allowToHook Allows a recipient contract to hook to Sablier when a stream is canceled or when tokens are withdrawn. Useful for implementing contracts that hold streams on behalf of users, such as vaults or staking contracts. Emits an [AllowToHook](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupBase.md#allowtohook) event. Notes: - Does not revert if the contract is already on the allowlist. - This is an irreversible operation. The contract cannot be removed from the allowlist. Requirements: - `msg.sender` must be the contract admin. - `recipient` must have a non-zero code size. - `recipient` must implement [ISablierLockupRecipient](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupRecipient.md). ```solidity function allowToHook(address recipient) external; ``` **Parameters** | Name | Type | Description | | ----------- | --------- | ----------------------------------------------- | | `recipient` | `address` | The address of the contract to allow for hooks. | ### burn Burns the NFT associated with the stream. Emits a {Transfer} and {MetadataUpdate} event. Requirements: - Must not be delegate called. - `streamId` must reference a depleted stream. - The NFT must exist. - `msg.sender` must be either the NFT owner or an approved third party. ```solidity function burn(uint256 streamId) external payable; ``` **Parameters** | Name | Type | Description | | ---------- | --------- | --------------------------------- | | `streamId` | `uint256` | The ID of the stream NFT to burn. | ### cancel Cancels the stream and refunds any remaining tokens to the sender. Emits a {Transfer}, {CancelLockupStream} and {MetadataUpdate} event. Notes: - If there any tokens left for the recipient to withdraw, the stream is marked as canceled. Otherwise, the stream is marked as depleted. - If the address is on the allowlist, this function will invoke a hook on the recipient. Requirements: - Must not be delegate called. - The stream must be warm and cancelable. - `msg.sender` must be the stream's sender. ```solidity function cancel(uint256 streamId) external payable; ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ------------------------------- | | `streamId` | `uint256` | The ID of the stream to cancel. | ### cancelMultiple Cancels multiple streams and refunds any remaining tokens to the sender. Emits multiple {Transfer}, {CancelLockupStream} and {MetadataUpdate} events. Notes: - Refer to the notes in {cancel}. Requirements: - All requirements from {cancel} must be met for each stream. ```solidity function cancelMultiple(uint256[] calldata streamIds) external payable; ``` **Parameters** | Name | Type | Description | | ----------- | ----------- | --------------------------------- | | `streamIds` | `uint256[]` | The IDs of the streams to cancel. | ### collectFees Collects the accrued fees by transferring them to the contract admin. Emits a [CollectFees](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupBase.md#collectfees) event. Notes: - If the admin is a contract, it must be able to receive native token payments, e.g., ETH for Ethereum Mainnet. ```solidity function collectFees() external; ``` ### renounce Removes the right of the stream's sender to cancel the stream. Emits a [RenounceLockupStream](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupBase.md#renouncelockupstream) event. Notes: - This is an irreversible operation. Requirements: - Must not be delegate called. - `streamId` must reference a warm stream. - `msg.sender` must be the stream's sender. - The stream must be cancelable. ```solidity function renounce(uint256 streamId) external payable; ``` **Parameters** | Name | Type | Description | | ---------- | --------- | --------------------------------- | | `streamId` | `uint256` | The ID of the stream to renounce. | ### renounceMultiple Renounces multiple streams. Emits multiple [RenounceLockupStream](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupBase.md#renouncelockupstream) events. Notes: - Refer to the notes in {renounce}. Requirements: - All requirements from {renounce} must be met for each stream. ```solidity function renounceMultiple(uint256[] calldata streamIds) external payable; ``` **Parameters** | Name | Type | Description | | ----------- | ----------- | ----------------------------------- | | `streamIds` | `uint256[]` | An array of stream IDs to renounce. | ### setNFTDescriptor Sets a new NFT descriptor contract, which produces the URI describing the Sablier stream NFTs. Emits a [SetNFTDescriptor](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupBase.md#setnftdescriptor) and {BatchMetadataUpdate} event. Notes: - Does not revert if the NFT descriptor is the same. Requirements: - `msg.sender` must be the contract admin. ```solidity function setNFTDescriptor(ILockupNFTDescriptor newNFTDescriptor) external; ``` **Parameters** | Name | Type | Description | | ------------------ | ---------------------- | ----------------------------------------------- | | `newNFTDescriptor` | `ILockupNFTDescriptor` | The address of the new NFT descriptor contract. | ### withdraw Withdraws the provided amount of tokens from the stream to the `to` address. Emits a {Transfer}, {WithdrawFromLockupStream} and {MetadataUpdate} event. Notes: - If `msg.sender` is not the recipient and the address is on the allowlist, this function will invoke a hook on the recipient. Requirements: - Must not be delegate called. - `streamId` must not reference a null or depleted stream. - `to` must not be the zero address. - `amount` must be greater than zero and must not exceed the withdrawable amount. - `to` must be the recipient if `msg.sender` is not the stream's recipient or an approved third party. ```solidity function withdraw(uint256 streamId, address to, uint128 amount) external payable; ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ----------------------------------------------------------------- | | `streamId` | `uint256` | The ID of the stream to withdraw from. | | `to` | `address` | The address receiving the withdrawn tokens. | | `amount` | `uint128` | The amount to withdraw, denoted in units of the token's decimals. | ### withdrawMax Withdraws the maximum withdrawable amount from the stream to the provided address `to`. Emits a {Transfer}, {WithdrawFromLockupStream} and {MetadataUpdate} event. Notes: - Refer to the notes in {withdraw}. Requirements: - Refer to the requirements in {withdraw}. ```solidity function withdrawMax(uint256 streamId, address to) external payable returns (uint128 withdrawnAmount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ------------------------------------------- | | `streamId` | `uint256` | The ID of the stream to withdraw from. | | `to` | `address` | The address receiving the withdrawn tokens. | **Returns** | Name | Type | Description | | ----------------- | --------- | --------------------------------------------------------------- | | `withdrawnAmount` | `uint128` | The amount withdrawn, denoted in units of the token's decimals. | ### withdrawMaxAndTransfer Withdraws the maximum withdrawable amount from the stream to the current recipient, and transfers the NFT to `newRecipient`. Emits a [WithdrawFromLockupStream](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupBase.md#withdrawfromlockupstream), {Transfer} and {MetadataUpdate} event. Notes: - If the withdrawable amount is zero, the withdrawal is skipped. - Refer to the notes in {withdraw}. Requirements: - `msg.sender` must be either the NFT owner or an approved third party. - Refer to the requirements in {withdraw}. - Refer to the requirements in {IERC721.transferFrom}. ```solidity function withdrawMaxAndTransfer( uint256 streamId, address newRecipient ) external payable returns (uint128 withdrawnAmount); ``` **Parameters** | Name | Type | Description | | -------------- | --------- | ----------------------------------------------- | | `streamId` | `uint256` | The ID of the stream NFT to transfer. | | `newRecipient` | `address` | The address of the new owner of the stream NFT. | **Returns** | Name | Type | Description | | ----------------- | --------- | --------------------------------------------------------------- | | `withdrawnAmount` | `uint128` | The amount withdrawn, denoted in units of the token's decimals. | ### withdrawMultiple Withdraws tokens from streams to the recipient of each stream. Emits multiple {Transfer}, {WithdrawFromLockupStream} and {MetadataUpdate} events. For each stream that reverted the withdrawal, it emits an [InvalidWithdrawalInWithdrawMultiple](/docs/reference/lockup/contracts/interfaces/interface.ISablierLockupBase.md#invalidwithdrawalinwithdrawmultiple) event. Notes: - This function attempts to call a hook on the recipient of each stream, unless `msg.sender` is the recipient. Requirements: - Must not be delegate called. - There must be an equal number of `streamIds` and `amounts`. - Each stream ID in the array must not reference a null or depleted stream. - Each amount in the array must be greater than zero and must not exceed the withdrawable amount. ```solidity function withdrawMultiple(uint256[] calldata streamIds, uint128[] calldata amounts) external payable; ``` **Parameters** | Name | Type | Description | | ----------- | ----------- | ------------------------------------------------------------------ | | `streamIds` | `uint256[]` | The IDs of the streams to withdraw from. | | `amounts` | `uint128[]` | The amounts to withdraw, denoted in units of the token's decimals. | ## Events ### AllowToHook Emitted when the admin allows a new recipient contract to hook to Sablier. ```solidity event AllowToHook(address indexed admin, address recipient); ``` **Parameters** | Name | Type | Description | | ----------- | --------- | ----------------------------------------------------------- | | `admin` | `address` | The address of the current contract admin. | | `recipient` | `address` | The address of the recipient contract put on the allowlist. | ### CancelLockupStream Emitted when a stream is canceled. ```solidity event CancelLockupStream( uint256 streamId, address indexed sender, address indexed recipient, IERC20 indexed token, uint128 senderAmount, uint128 recipientAmount ); ``` **Parameters** | Name | Type | Description | | ----------------- | --------- | ----------------------------------------------------------------------------------------------------------- | | `streamId` | `uint256` | The ID of the stream. | | `sender` | `address` | The address of the stream's sender. | | `recipient` | `address` | The address of the stream's recipient. | | `token` | `IERC20` | The contract address of the ERC-20 token that has been distributed. | | `senderAmount` | `uint128` | The amount of tokens refunded to the stream's sender, denoted in units of the token's decimals. | | `recipientAmount` | `uint128` | The amount of tokens left for the stream's recipient to withdraw, denoted in units of the token's decimals. | ### CollectFees Emitted when the accrued fees are collected. ```solidity event CollectFees(address indexed admin, uint256 indexed feeAmount); ``` **Parameters** | Name | Type | Description | | ----------- | --------- | ----------------------------------------------------------------------- | | `admin` | `address` | The address of the current contract admin, which has received the fees. | | `feeAmount` | `uint256` | The amount of collected fees. | ### InvalidWithdrawalInWithdrawMultiple Emitted when withdrawing from multiple streams and one particular withdrawal reverts. ```solidity event InvalidWithdrawalInWithdrawMultiple(uint256 streamId, bytes revertData); ``` **Parameters** | Name | Type | Description | | ------------ | --------- | ------------------------------------------------- | | `streamId` | `uint256` | The stream ID that reverted during withdraw. | | `revertData` | `bytes` | The error data returned by the reverted withdraw. | ### RenounceLockupStream Emitted when a sender gives up the right to cancel a stream. ```solidity event RenounceLockupStream(uint256 indexed streamId); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | --------------------- | | `streamId` | `uint256` | The ID of the stream. | ### SetNFTDescriptor Emitted when the admin sets a new NFT descriptor contract. ```solidity event SetNFTDescriptor( address indexed admin, ILockupNFTDescriptor oldNFTDescriptor, ILockupNFTDescriptor newNFTDescriptor ); ``` **Parameters** | Name | Type | Description | | ------------------ | ---------------------- | ----------------------------------------------- | | `admin` | `address` | The address of the current contract admin. | | `oldNFTDescriptor` | `ILockupNFTDescriptor` | The address of the old NFT descriptor contract. | | `newNFTDescriptor` | `ILockupNFTDescriptor` | The address of the new NFT descriptor contract. | ### WithdrawFromLockupStream Emitted when tokens are withdrawn from a stream. ```solidity event WithdrawFromLockupStream(uint256 indexed streamId, address indexed to, IERC20 indexed token, uint128 amount); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ------------------------------------------------------------------------- | | `streamId` | `uint256` | The ID of the stream. | | `to` | `address` | The address that has received the withdrawn tokens. | | `token` | `IERC20` | The contract address of the ERC-20 token that has been withdrawn. | | `amount` | `uint128` | The amount of tokens withdrawn, denoted in units of the token's decimals. | --- ## ISablierLockupRecipient [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/interfaces/ISablierLockupRecipient.sol) **Inherits:** IERC165 Interface for recipient contracts capable of reacting to cancellations and withdrawals. For this to be able to hook into Sablier, it must fully implement this interface and it must have been allowlisted by the Lockup contract's admin. _See [IERC165-supportsInterface](https://eips.ethereum.org/EIPS/eip-165#supportsinterface). The implementation MUST implement the {IERC165-supportsInterface} method, which MUST return `true` when called with `0xf8ee98d3`, i.e. `type(ISablierLockupRecipient).interfaceId`._ ## Functions ### onSablierLockupCancel Responds to cancellations. Notes: - The function MUST return the selector `ISablierLockupRecipient.onSablierLockupCancel.selector`. - If this function reverts, the execution in the Lockup contract will revert as well. ```solidity function onSablierLockupCancel( uint256 streamId, address sender, uint128 senderAmount, uint128 recipientAmount ) external returns (bytes4 selector); ``` **Parameters** | Name | Type | Description | | ----------------- | --------- | ----------------------------------------------------------------------------------------------------------- | | `streamId` | `uint256` | The ID of the canceled stream. | | `sender` | `address` | The stream's sender, who canceled the stream. | | `senderAmount` | `uint128` | The amount of tokens refunded to the stream's sender, denoted in units of the token's decimals. | | `recipientAmount` | `uint128` | The amount of tokens left for the stream's recipient to withdraw, denoted in units of the token's decimals. | **Returns** | Name | Type | Description | | ---------- | -------- | ---------------------------------------------------------- | | `selector` | `bytes4` | The selector of this function needed to validate the hook. | ### onSablierLockupWithdraw Responds to withdrawals triggered by any address except the contract implementing this interface. Notes: - The function MUST return the selector `ISablierLockupRecipient.onSablierLockupWithdraw.selector`. - If this function reverts, the execution in the Lockup contract will revert as well. ```solidity function onSablierLockupWithdraw( uint256 streamId, address caller, address to, uint128 amount ) external returns (bytes4 selector); ``` **Parameters** | Name | Type | Description | | ---------- | --------- | ------------------------------------------------------------------------- | | `streamId` | `uint256` | The ID of the stream being withdrawn from. | | `caller` | `address` | The original `msg.sender` address that triggered the withdrawal. | | `to` | `address` | The address receiving the withdrawn tokens. | | `amount` | `uint128` | The amount of tokens withdrawn, denoted in units of the token's decimals. | **Returns** | Name | Type | Description | | ---------- | -------- | ---------------------------------------------------------- | | `selector` | `bytes4` | The selector of this function needed to validate the hook. | --- ## Errors [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/libraries/Errors.sol) Library containing all custom errors the protocol may revert with. ## Errors ### BatchError Thrown when an unexpected error occurs during a batch call. ```solidity error BatchError(bytes errorData); ``` ### CallerNotAdmin Thrown when `msg.sender` is not the admin. ```solidity error CallerNotAdmin(address admin, address caller); ``` ### DelegateCall Thrown when trying to delegate call to a function that disallows delegate calls. ```solidity error DelegateCall(); ``` ### SablierBatchLockup_BatchSizeZero ```solidity error SablierBatchLockup_BatchSizeZero(); ``` ### LockupNFTDescriptor_UnknownNFT Thrown when trying to generate the token URI for an unknown ERC-721 NFT contract. ```solidity error LockupNFTDescriptor_UnknownNFT(IERC721Metadata nft, string symbol); ``` ### SablierHelpers_BrokerFeeTooHigh Thrown when the broker fee exceeds the maximum allowed fee. ```solidity error SablierHelpers_BrokerFeeTooHigh(UD60x18 brokerFee, UD60x18 maxBrokerFee); ``` ### SablierHelpers_CliffTimeNotLessThanEndTime Thrown when trying to create a linear stream with a cliff time not strictly less than the end time. ```solidity error SablierHelpers_CliffTimeNotLessThanEndTime(uint40 cliffTime, uint40 endTime); ``` ### SablierHelpers_CliffTimeZeroUnlockAmountNotZero Thrown when trying to create a stream with a non zero cliff unlock amount when the cliff time is zero. ```solidity error SablierHelpers_CliffTimeZeroUnlockAmountNotZero(uint128 cliffUnlockAmount); ``` ### SablierHelpers_DepositAmountNotEqualToSegmentAmountsSum Thrown when trying to create a dynamic stream with a deposit amount not equal to the sum of the segment amounts. ```solidity error SablierHelpers_DepositAmountNotEqualToSegmentAmountsSum(uint128 depositAmount, uint128 segmentAmountsSum); ``` ### SablierHelpers_DepositAmountNotEqualToTrancheAmountsSum Thrown when trying to create a tranched stream with a deposit amount not equal to the sum of the tranche amounts. ```solidity error SablierHelpers_DepositAmountNotEqualToTrancheAmountsSum(uint128 depositAmount, uint128 trancheAmountsSum); ``` ### SablierHelpers_DepositAmountZero Thrown when trying to create a stream with a zero deposit amount. ```solidity error SablierHelpers_DepositAmountZero(); ``` ### SablierHelpers_EndTimeNotEqualToLastSegmentTimestamp Thrown when trying to create a dynamic stream with end time not equal to the last segment's timestamp. ```solidity error SablierHelpers_EndTimeNotEqualToLastSegmentTimestamp(uint40 endTime, uint40 lastSegmentTimestamp); ``` ### SablierHelpers_EndTimeNotEqualToLastTrancheTimestamp Thrown when trying to create a tranched stream with end time not equal to the last tranche's timestamp. ```solidity error SablierHelpers_EndTimeNotEqualToLastTrancheTimestamp(uint40 endTime, uint40 lastTrancheTimestamp); ``` ### SablierHelpers_SegmentCountTooHigh Thrown when trying to create a dynamic stream with more segments than the maximum allowed. ```solidity error SablierHelpers_SegmentCountTooHigh(uint256 count); ``` ### SablierHelpers_SegmentCountZero Thrown when trying to create a dynamic stream with no segments. ```solidity error SablierHelpers_SegmentCountZero(); ``` ### SablierHelpers_SegmentTimestampsNotOrdered Thrown when trying to create a dynamic stream with unordered segment timestamps. ```solidity error SablierHelpers_SegmentTimestampsNotOrdered(uint256 index, uint40 previousTimestamp, uint40 currentTimestamp); ``` ### SablierHelpers_SenderZeroAddress Thrown when trying to create a stream with the sender as the zero address. ```solidity error SablierHelpers_SenderZeroAddress(); ``` ### SablierHelpers_ShapeExceeds32Bytes Thrown when trying to create a stream with a shape string exceeding 32 bytes. ```solidity error SablierHelpers_ShapeExceeds32Bytes(uint256 shapeLength); ``` ### SablierHelpers_StartTimeNotLessThanCliffTime Thrown when trying to create a linear stream with a start time not strictly less than the cliff time, when the cliff time does not have a zero value. ```solidity error SablierHelpers_StartTimeNotLessThanCliffTime(uint40 startTime, uint40 cliffTime); ``` ### SablierHelpers_StartTimeNotLessThanEndTime Thrown when trying to create a linear stream with a start time not strictly less than the end time. ```solidity error SablierHelpers_StartTimeNotLessThanEndTime(uint40 startTime, uint40 endTime); ``` ### SablierHelpers_StartTimeNotLessThanFirstSegmentTimestamp Thrown when trying to create a dynamic stream with a start time not strictly less than the first segment timestamp. ```solidity error SablierHelpers_StartTimeNotLessThanFirstSegmentTimestamp(uint40 startTime, uint40 firstSegmentTimestamp); ``` ### SablierHelpers_StartTimeNotLessThanFirstTrancheTimestamp Thrown when trying to create a tranched stream with a start time not strictly less than the first tranche timestamp. ```solidity error SablierHelpers_StartTimeNotLessThanFirstTrancheTimestamp(uint40 startTime, uint40 firstTrancheTimestamp); ``` ### SablierHelpers_StartTimeZero Thrown when trying to create a stream with a zero start time. ```solidity error SablierHelpers_StartTimeZero(); ``` ### SablierHelpers_TrancheCountTooHigh Thrown when trying to create a tranched stream with more tranches than the maximum allowed. ```solidity error SablierHelpers_TrancheCountTooHigh(uint256 count); ``` ### SablierHelpers_TrancheCountZero Thrown when trying to create a tranched stream with no tranches. ```solidity error SablierHelpers_TrancheCountZero(); ``` ### SablierHelpers_TrancheTimestampsNotOrdered Thrown when trying to create a tranched stream with unordered tranche timestamps. ```solidity error SablierHelpers_TrancheTimestampsNotOrdered(uint256 index, uint40 previousTimestamp, uint40 currentTimestamp); ``` ### SablierHelpers_UnlockAmountsSumTooHigh Thrown when trying to create a stream with the sum of the unlock amounts greater than the deposit amount. ```solidity error SablierHelpers_UnlockAmountsSumTooHigh( uint128 depositAmount, uint128 startUnlockAmount, uint128 cliffUnlockAmount ); ``` ### SablierLockupBase_AllowToHookUnsupportedInterface Thrown when trying to allow to hook a contract that doesn't implement the interface correctly. ```solidity error SablierLockupBase_AllowToHookUnsupportedInterface(address recipient); ``` ### SablierLockupBase_AllowToHookZeroCodeSize Thrown when trying to allow to hook an address with no code. ```solidity error SablierLockupBase_AllowToHookZeroCodeSize(address recipient); ``` ### SablierLockupBase_FeeTransferFail Thrown when the fee transfer fails. ```solidity error SablierLockupBase_FeeTransferFail(address admin, uint256 feeAmount); ``` ### SablierLockupBase_InvalidHookSelector Thrown when the hook does not return the correct selector. ```solidity error SablierLockupBase_InvalidHookSelector(address recipient); ``` ### SablierLockupBase_NotTransferable Thrown when trying to transfer Stream NFT when transferability is disabled. ```solidity error SablierLockupBase_NotTransferable(uint256 tokenId); ``` ### SablierLockupBase_Null Thrown when the ID references a null stream. ```solidity error SablierLockupBase_Null(uint256 streamId); ``` ### SablierLockupBase_Overdraw Thrown when trying to withdraw an amount greater than the withdrawable amount. ```solidity error SablierLockupBase_Overdraw(uint256 streamId, uint128 amount, uint128 withdrawableAmount); ``` ### SablierLockupBase_StreamCanceled Thrown when trying to cancel or renounce a canceled stream. ```solidity error SablierLockupBase_StreamCanceled(uint256 streamId); ``` ### SablierLockupBase_StreamDepleted Thrown when trying to cancel, renounce, or withdraw from a depleted stream. ```solidity error SablierLockupBase_StreamDepleted(uint256 streamId); ``` ### SablierLockupBase_StreamNotCancelable Thrown when trying to cancel or renounce a stream that is not cancelable. ```solidity error SablierLockupBase_StreamNotCancelable(uint256 streamId); ``` ### SablierLockupBase_StreamNotDepleted Thrown when trying to burn a stream that is not depleted. ```solidity error SablierLockupBase_StreamNotDepleted(uint256 streamId); ``` ### SablierLockupBase_StreamSettled Thrown when trying to cancel or renounce a settled stream. ```solidity error SablierLockupBase_StreamSettled(uint256 streamId); ``` ### SablierLockupBase_Unauthorized Thrown when `msg.sender` lacks authorization to perform an action. ```solidity error SablierLockupBase_Unauthorized(uint256 streamId, address caller); ``` ### SablierLockupBase_WithdrawalAddressNotRecipient Thrown when trying to withdraw to an address other than the recipient's. ```solidity error SablierLockupBase_WithdrawalAddressNotRecipient(uint256 streamId, address caller, address to); ``` ### SablierLockupBase_WithdrawAmountZero Thrown when trying to withdraw zero tokens from a stream. ```solidity error SablierLockupBase_WithdrawAmountZero(uint256 streamId); ``` ### SablierLockupBase_WithdrawArrayCountsNotEqual Thrown when trying to withdraw from multiple streams and the number of stream IDs does not match the number of withdraw amounts. ```solidity error SablierLockupBase_WithdrawArrayCountsNotEqual(uint256 streamIdsCount, uint256 amountsCount); ``` ### SablierLockupBase_WithdrawToZeroAddress Thrown when trying to withdraw to the zero address. ```solidity error SablierLockupBase_WithdrawToZeroAddress(uint256 streamId); ``` ### SablierLockup_NotExpectedModel Thrown when a function is called on a stream that does not use the expected Lockup model. ```solidity error SablierLockup_NotExpectedModel(Lockup.Model actualLockupModel, Lockup.Model expectedLockupModel); ``` --- ## Helpers [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/libraries/Helpers.sol) Library with functions needed to validate input parameters across lockup streams. ## Functions ### calculateSegmentTimestamps _Calculate the timestamps and return the segments._ ```solidity function calculateSegmentTimestamps( LockupDynamic.SegmentWithDuration[] memory segmentsWithDuration, uint40 startTime ) public pure returns (LockupDynamic.Segment[] memory segmentsWithTimestamps); ``` ### calculateTrancheTimestamps _Calculate the timestamps and return the tranches._ ```solidity function calculateTrancheTimestamps( LockupTranched.TrancheWithDuration[] memory tranchesWithDuration, uint40 startTime ) public pure returns (LockupTranched.Tranche[] memory tranchesWithTimestamps); ``` ### checkCreateLockupDynamic _Checks the parameters of the {SablierLockup-\_createLD} function._ ```solidity function checkCreateLockupDynamic( address sender, Lockup.Timestamps memory timestamps, uint128 totalAmount, LockupDynamic.Segment[] memory segments, uint256 maxCount, UD60x18 brokerFee, string memory shape, UD60x18 maxBrokerFee ) public pure returns (Lockup.CreateAmounts memory createAmounts); ``` ### checkCreateLockupLinear _Checks the parameters of the {SablierLockup-\_createLL} function._ ```solidity function checkCreateLockupLinear( address sender, Lockup.Timestamps memory timestamps, uint40 cliffTime, uint128 totalAmount, LockupLinear.UnlockAmounts memory unlockAmounts, UD60x18 brokerFee, string memory shape, UD60x18 maxBrokerFee ) public pure returns (Lockup.CreateAmounts memory createAmounts); ``` ### checkCreateLockupTranched _Checks the parameters of the {SablierLockup-\_createLT} function._ ```solidity function checkCreateLockupTranched( address sender, Lockup.Timestamps memory timestamps, uint128 totalAmount, LockupTranched.Tranche[] memory tranches, uint256 maxCount, UD60x18 brokerFee, string memory shape, UD60x18 maxBrokerFee ) public pure returns (Lockup.CreateAmounts memory createAmounts); ``` ### \_checkAndCalculateBrokerFee _Checks the broker fee is not greater than `maxBrokerFee`, and then calculates the broker fee amount and the deposit amount from the total amount._ ```solidity function _checkAndCalculateBrokerFee( uint128 totalAmount, UD60x18 brokerFee, UD60x18 maxBrokerFee ) private pure returns (Lockup.CreateAmounts memory amounts); ``` ### \_checkTimestampsAndUnlockAmounts _Checks the user-provided cliff, end times and unlock amounts of a lockup linear stream._ ```solidity function _checkTimestampsAndUnlockAmounts( uint128 depositAmount, Lockup.Timestamps memory timestamps, uint40 cliffTime, LockupLinear.UnlockAmounts memory unlockAmounts ) private pure; ``` ### \_checkCreateStream _Checks the user-provided common parameters across lockup streams._ ```solidity function _checkCreateStream( address sender, uint128 depositAmount, uint40 startTime, string memory shape ) private pure; ``` ### \_checkSegments Checks: 1. The first timestamp is strictly greater than the start time. 2. The timestamps are ordered chronologically. 3. There are no duplicate timestamps. 4. The deposit amount is equal to the sum of all segment amounts. 5. The end time equals the last segment's timestamp. ```solidity function _checkSegments( LockupDynamic.Segment[] memory segments, uint128 depositAmount, Lockup.Timestamps memory timestamps, uint256 maxSegmentCount ) private pure; ``` ### \_checkTranches Checks: 1. The first timestamp is strictly greater than the start time. 2. The timestamps are ordered chronologically. 3. There are no duplicate timestamps. 4. The deposit amount is equal to the sum of all tranche amounts. 5. The end time equals the last tranche's timestamp. ```solidity function _checkTranches( LockupTranched.Tranche[] memory tranches, uint128 depositAmount, Lockup.Timestamps memory timestamps, uint256 maxTrancheCount ) private pure; ``` --- ## NFTSVG [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/libraries/NFTSVG.sol) ## State Variables ### CARD_MARGIN ```solidity uint256 internal constant CARD_MARGIN = 16; ``` ## Functions ### generateSVG ```solidity function generateSVG(SVGParams memory params) internal pure returns (string memory); ``` ### generateDefs ```solidity function generateDefs( string memory accentColor, string memory status, string memory cards ) internal pure returns (string memory); ``` ### generateFloatingText ```solidity function generateFloatingText( string memory lockupAddress, string memory tokenAddress, string memory tokenSymbol ) internal pure returns (string memory); ``` ### generateHrefs ```solidity function generateHrefs( uint256 progressXPosition, uint256 statusXPosition, uint256 amountXPosition, uint256 durationXPosition ) internal pure returns (string memory); ``` ## Structs ### SVGParams ```solidity struct SVGParams { string accentColor; string amount; string tokenAddress; string tokenSymbol; string duration; string lockupAddress; string progress; uint256 progressNumerical; string status; } ``` ### SVGVars ```solidity struct SVGVars { string amountCard; uint256 amountWidth; uint256 amountXPosition; string cards; uint256 cardsWidth; string durationCard; uint256 durationWidth; uint256 durationXPosition; string progressCard; uint256 progressWidth; uint256 progressXPosition; string statusCard; uint256 statusWidth; uint256 statusXPosition; } ``` --- ## SVGElements [Git Source](https://github.com/sablier-labs/lockup/blob/463278dbb461b1733d6424cf0aeee3b8d6bc036a/src/libraries/SVGElements.sol) ## State Variables ### BACKGROUND ```solidity string internal constant BACKGROUND = ''; ``` ### BACKGROUND_COLOR ```solidity string internal constant BACKGROUND_COLOR = "hsl(230,21%,11%)"; ``` ### FLOATING_TEXT ```solidity string internal constant FLOATING_TEXT = ''; ``` ### GLOW ```solidity string internal constant GLOW = ''; ``` ### LOGO ```solidity string internal constant LOGO = '