Streams

The most powerful
real-time data pipelines

Eliminate the need for complex ETL pipelines and constant polling. Streams provides a continuous, push-based data flow that simplifies your data ingestion process.

  • Create a free Stream
  • One-click backfills
Live
Index the Ethereum chain

Ethereum Mainnet

  • Filtered payload

  • Raw payload

    Use template
    Live
    All Uniswap exchange swaps

    Decrentralized exchange

    • Filtered payload

    • Raw payload

      Use template
      Live
      All Arbitrum token transfers

      Arbitrum Mainnet

      • Filtered payload

      • Raw payload

        Use template

        Extract

        Instant access to
        multiple streaming datasets

        • Block
        • Blocks with receipts
        • Transactions
        • Logs
        • Receipts
        • Traces (trace_block)
        • Traces (debug_trace)
        • Block with receipts + debug_trace
        • Block with receipts + trace_block

        Transform

        Tools to turn raw data
        into your data

        • 01
        • 02
        • 03
        • 04
        • 05
        • 06
        • 07
        • 08
        • 09
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
        • 26
        • 27
        • 28
        • 29
        • 30
          function main(data) {
          try {
          var data = data.streamData;
          const addresses = [
          "0x56220b7e25c7d0885159915cdebf5819f2090f57",
          "0x351e1b4079cf180971025a3b35dadea1d809de26",
          "0xa61551e4e455edebaa7c59f006a1d2956d46eecc"
          ];
          var addressSet = new Set(addresses.map(address => address.toLowerCase()));
          var paddedAddressSet = new Set(addresses.map(address => '0x' + address.toLowerCase().slice(2).padStart(64, '0')));
          var matchingTransactions = [];
          var matchingReceipts = [];
          data.block.transactions.forEach(transaction => {
          let transactionMatches = (transaction.from && addressSet.has(transaction.from.toLowerCase())) ||
          (transaction.to && addressSet.has(transaction.to.toLowerCase()));
          if (transactionMatches) {
          matchingTransactions.push(transaction);
          }
          });
          data.receipts.forEach(receipt => {
          let receiptMatches = receipt.logs && receipt.logs.some(log =>
          log.topics && log.topics.length > 1 &&
          (paddedAddressSet.has(log.topics[1]) || (log.topics.length > 2 && paddedAddressSet.has(log.topics[2])))
          );
          if (receiptMatches) {
          matchingReceipts.push(receipt);
          }
          });
          if (matchingTransactions.length === 0 && matchingReceipts.length === 0) {
          return null;
          }
          return {
          transactions: matchingTransactions,
          receipts: matchingReceipts
          };
          } catch (e) {
          return {error: e.message};
          }
          }
        Raw payload
        Shape
        Needs transformation
        Size
        20.2MB
        Filtered payload
        Shape
        Valid payload shape
        Size
        1.2MB

        New!

        Filter and Transform your data exactly how you want, cut out what you don't, and optimize costs.

        Learn more

        BETA

        Key-Value Store lets you target and access dynamic lists and sets, updatable from anywhere natively within streams and API.

        Learn more
        walletStore
        <List>
        • 01
        • 02
        • 03
        • 04
        • 05
        • 06
        • 07
        • 08
        • 09
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
        • 26
        • 27
        • 28
        • 29
        • 30
          function main(data) {
          var matchingTransactions = [];
          function checkAddress(address) {
          let result = qnContainsListItem("walletStore", address);
          return result;
          }
          data.streamData.block.transactions.forEach(transaction => {
          let transactionMatches = (transaction.from && checkAddress(transaction.from)) ||
          (transaction.to && checkAddress(transaction.to));
          if (transactionMatches) {
          matchingTransactions.push(transaction);
          }
          });
          return matchingTransactions;
          }

        Load

        We focus on infrastructure,
        so you can focus on innovation

        PostgreSQL
        Amazon S3
        Webhook
        Snowflake
        Coming soon
        Coming soon
        Coming soon
        Coming soon
        Coming soon

        Guaranteed delivery to your
        Webhook, S3 Bucket, Snowflake or Postgres.

        OR

        Use Functions to enrich, process, and run custom code on our scalable serverless platform, enabling workflow creation without additional services.

        Learn more about Functions
        • Filtered payload

          • 01
          • 02
          • 03
          • 04
          • 05
          • 06
          • 07
          • 08
          • 09
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23
          • 24
          • 25
          • 26
          • 27
          • 28
          • 29
          • 30
            function main(data) {
            try {
            var data = data.streamData;
            const addresses = [
            "0x56220b7e25c7d0885159915cdebf5819f2090f57",
            "0x351e1b4079cf180971025a3b35dadea1d809de26",
            "0xa61551e4e455edebaa7c59f006a1d2956d46eecc"
            ];
            var addressSet = new Set(addresses.map(address => address.toLowerCase()));
            var paddedAddressSet = new Set(addresses.map(address => '0x' + address.toLowerCase().slice(2).padStart(64, '0')));
            var matchingTransactions = [];
            var matchingReceipts = [];
            data.block.transactions.forEach(transaction => {
            let transactionMatches = (transaction.from && addressSet.has(transaction.from.toLowerCase())) ||
            (transaction.to && addressSet.has(transaction.to.toLowerCase()));
            if (transactionMatches) {
            matchingTransactions.push(transaction);
            }
            });
            data.receipts.forEach(receipt => {
            let receiptMatches = receipt.logs && receipt.logs.some(log =>
            log.topics && log.topics.length > 1 &&
            (paddedAddressSet.has(log.topics[1]) || (log.topics.length > 2 && paddedAddressSet.has(log.topics[2])))
            );
            if (receiptMatches) {
            matchingReceipts.push(receipt);
            }
            });
            if (matchingTransactions.length === 0 && matchingReceipts.length === 0) {
            return null;
            }
            return {
            transactions: matchingTransactions,
            receipts: matchingReceipts
            };
            } catch (e) {
            return {error: e.message};
            }
            }
        • Filtered payload

          • 01
          • 02
          • 03
          • 04
          • 05
          • 06
          • 07
          • 08
          • 09
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23
          • 24
          • 25
          • 26
          • 27
          • 28
          • 29
          • 30
            function main(data) {
            var matchingTransactions = [];
            function checkAddress(address) {
            let result = qnContainsListItem("walletStore", address);
            return result;
            }
            data.streamData.block.transactions.forEach(transaction => {
            let transactionMatches = (transaction.from && checkAddress(transaction.from)) ||
            (transaction.to && checkAddress(transaction.to));
            if (transactionMatches) {
            matchingTransactions.push(transaction);
            }
            });
            return matchingTransactions;
            }
        • Filtered payload

          • 01
          • 02
          • 03
          • 04
          • 05
          • 06
          • 07
          • 08
          • 09
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23
          • 24
          • 25
          • 26
          • 27
          • 28
          • 29
          • 30
            function main(data) {
            try {
            var data = data.streamData;
            const addresses = [
            "0x56220b7e25c7d0885159915cdebf5819f2090f57",
            "0x351e1b4079cf180971025a3b35dadea1d809de26",
            "0xa61551e4e455edebaa7c59f006a1d2956d46eecc"
            ];
            var addressSet = new Set(addresses.map(address => address.toLowerCase()));
            var paddedAddressSet = new Set(addresses.map(address => '0x' + address.toLowerCase().slice(2).padStart(64, '0')));
            var matchingTransactions = [];
            var matchingReceipts = [];
            data.block.transactions.forEach(transaction => {
            let transactionMatches = (transaction.from && addressSet.has(transaction.from.toLowerCase())) ||
            (transaction.to && addressSet.has(transaction.to.toLowerCase()));
            if (transactionMatches) {
            matchingTransactions.push(transaction);
            }
            });
            data.receipts.forEach(receipt => {
            let receiptMatches = receipt.logs && receipt.logs.some(log =>
            log.topics && log.topics.length > 1 &&
            (paddedAddressSet.has(log.topics[1]) || (log.topics.length > 2 && paddedAddressSet.has(log.topics[2])))
            );
            if (receiptMatches) {
            matchingReceipts.push(receipt);
            }
            });
            if (matchingTransactions.length === 0 && matchingReceipts.length === 0) {
            return null;
            }
            return {
            transactions: matchingTransactions,
            receipts: matchingReceipts
            };
            } catch (e) {
            return {error: e.message};
            }
            }

        "The outstanding real-time performance helps us deliver the freshest analytics to our users – key to maintaining our competitive edge in the industry."

        Nirmal

        Head of Engineering

        Scalable, serverless, simple. 
        See for yourself in seconds.

        Create a free Stream

        60% Cheaper

        Experience substantial savings compared to conventional methods when handling the same load by using more efficient resource utilization.

        7x Faster

        Achieve faster backfill speeds over traditional backfilling techniques, significantly reducing the time required for data synchronization.

        ~80hrs Saved

        Drastically reduce data engineering hours with automatic routing to your data warehouses, streamlining your workflows in seconds.

        🔥 Now Live: HyperCore Data Access for HyperliquidgRPC, Streams, JSON-RPC, WebSockets

        Learn More     
        • Core API Icon
          Core RPC APIBlockchain data access
          QuickStream Logo
          StreamsBackfill and stream data
          Clusters
          Dedicated ClustersDedicated backends
          Yellowstone gRPC
          Yellowstone gRPCBlazing fast Solana data
          Webhooks
          WebhooksInstant blockchain alerts
          Solana Validator
          Solana ValidatorZero-fee staking rewards
          VaaS Validator
          Validator as a ServiceEnterprise-grade validator operations
          IPFS Icon
          IPFSGateways and pinning
          APIs & Integrations
          Trading And Defi
          Trading & DeFi
          MEV And Gas
          MEV & Gas
          Wallets
          Wallets
          Token And NFT
          Token & NFTs
          Solana APIs
          Solana APIs
          Data And Analytics
          Data & Analytics
          Security And Compliance
          Security & Compliance
          Transactions
          Transactions
          Explore all solutions
        • Wrench Icon SVG
          Builder's GuideBlueprints for building on blockchain
          Backfill Icon
          One-click BackfillsThe easiest way to backfill blockchain data
          By Use Case
          DeFi
          DeFi
          Stablecoin Icon
          Stablecoins
          Financial
          Financial
          Wallet
          Wallet
          Trading
          Trading
          Magic Icon (Nav)
          AI
          Gaming
          Gaming
          By Segment
          Startups
          Startups
          Enterprise
          Enterprises
          Integrations and Custom Solutions
          partners nav icon
          Partner Ecosystem
          Pro Services
          Pro Services
        • Solana
          Solana
          Ethereum
          Ethereum
          Monad
          Monad
          Base
          Base
          BNB Smart Chain
          BNB Smart Chain
          Hyperliquid
          Hyperliquid
          Arbitrum One
          Arbitrum One
          OP Mainnet
          OP Mainnet
          Polygon PoS
          Polygon PoS
          TRON
          TRON
          Blast
          Blast
          Mantle
          Mantle
          View More
        • Documentation icon colored
          DocumentationIntegrate with Quicknode product's API
          Getting Started
          note icon
          How to Create a Solana Trading Bot Using Jupiter API
          note icon
          How to Build a Blockchain Indexer with Streams
          note icon
          How to Build a Token Holder Indexer and Wallet API
          Browse all guides
          SampleApps
          Sample Apps
          Courses
          Courses
          Status icon gray
          Status
          Smart Contract Icon
          Smart Contract Explorer
          Faucet icon
          Faucet
          Gas Tracker icon
          Gas Tracker
        • QN
          About Us
          Case Studies Icon
          Case Studies
          Careers icon
          Careers
          Phone icon gray
          Contact Us
          Blog
          Blog
          Referral icon gray
          Referral Program
        • Pricing
          Sign inCreate account
        Pricing

        Sign inCreate account
        Core API Icon
        Core RPC APIBlockchain data access
        QuickStream Logo
        StreamsBackfill and stream data
        Clusters
        Dedicated ClustersDedicated backends
        Yellowstone gRPC
        Yellowstone gRPCBlazing fast Solana data
        Webhooks
        WebhooksInstant blockchain alerts
        Solana Validator
        Solana ValidatorZero-fee staking rewards
        VaaS Validator
        Validator as a ServiceEnterprise-grade validator operations
        IPFS Icon
        IPFSGateways and pinning
        APIs & Integrations
        Trading And Defi
        Trading & DeFi
        MEV And Gas
        MEV & Gas
        Wallets
        Wallets
        Token And NFT
        Token & NFTs
        Solana APIs
        Solana APIs
        Data And Analytics
        Data & Analytics
        Security And Compliance
        Security & Compliance
        Transactions
        Transactions
        Explore all solutions
        Wrench Icon SVG
        Builder's GuideBlueprints for building on blockchain
        Backfill Icon
        One-click BackfillsThe easiest way to backfill blockchain data
        By Use Case
        DeFi
        DeFi
        Stablecoin Icon
        Stablecoins
        Financial
        Financial
        Wallet
        Wallet
        Trading
        Trading
        Magic Icon (Nav)
        AI
        Gaming
        Gaming
        By Segment
        Startups
        Startups
        Enterprise
        Enterprises
        Integrations and Custom Solutions
        partners nav icon
        Partner Ecosystem
        Pro Services
        Pro Services
        Solana
        Solana
        Ethereum
        Ethereum
        Monad
        Monad
        Base
        Base
        BNB Smart Chain
        BNB Smart Chain
        Hyperliquid
        Hyperliquid
        Arbitrum One
        Arbitrum One
        OP Mainnet
        OP Mainnet
        Polygon PoS
        Polygon PoS
        TRON
        TRON
        Blast
        Blast
        Mantle
        Mantle
        View More
        Documentation icon colored
        DocumentationIntegrate with Quicknode product's API
        Getting Started
        note icon
        How to Create a Solana Trading Bot Using Jupiter API
        note icon
        How to Build a Blockchain Indexer with Streams
        note icon
        How to Build a Token Holder Indexer and Wallet API
        Browse all guides
        SampleApps
        Sample Apps
        Courses
        Courses
        Status icon gray
        Status
        Smart Contract Icon
        Smart Contract Explorer
        Faucet icon
        Faucet
        Gas Tracker icon
        Gas Tracker
        QN
        About Us
        Case Studies Icon
        Case Studies
        Careers icon
        Careers
        Phone icon gray
        Contact Us
        Blog
        Blog
        Referral icon gray
        Referral Program
        AptosArbitrum NovaArbitrum OneAvalancheBaseBerachainBitcoinBlast
        AptosArbitrum NovaArbitrum OneAvalancheBaseBerachainBitcoinBlastBNB Smart ChainCeloEthereumFantomFlowGnosisHederaHyperliquid
        View all 85 chains

        © 2026 QuikNode 🇺🇲

        Products
        • Pricing
        • API Credits
        • Core API
        • QuickAlerts
        • Streams
        • Functions
        • Clusters
        • Rollups
        • IPFS
        • Marketplace
        Use Cases
        • Wallet
        • Financial
        • DeFi
        • Gaming
        Use Cases
        • Wallet
        • Financial
        • DeFi
        • Gaming
        Social
        • X
        • Discord
        • LinkedIn
        • Youtube
        Developers
        • Documentation
        • Guides
        • Discord
        • Compare Speed
        • Multi-Chain Faucet
        • Support
        • Changelog
        Resources
        • Security
        • Responsible Disclosure
        • Privacy Policy
        • Terms & Conditions
        Company
        • About
        • Blog
        • Brand Kit
        • Careers
        • Referral Program
        • FAQ
        • Write for us, make money!
        • Wall of Love
        • Startup Program
        • Preferred Partner Network
        Resources
        • Security
        • Responsible Disclosure
        • Privacy Policy
        • Terms & Conditions
        Company
        • About
        • Blog
        • Brand Kit
        • Careers
        • Referral Program
        • FAQ
        • Write for us, make money!
        • Wall of Love
        • Startup Program
        • Preferred Partner Network
        Social
        • X
        • Discord
        • LinkedIn
        • Youtube
        Want QuickNode updates?

        Our newsletter is full of free resources, QuickNode updates, Web3 insights, and more. Sign up below!

        © 2026 QuikNode 🇺🇲