Skip to main content
Data Feeds is a single service over one data lake. Moralis writes each chain’s decoded data once, then exposes that same data through several interfaces, so you consume it with the tools your team already works with, without building the blockchain indexing layer behind it. There are three ways out. They are access modes of one service, not separate products, so you can mix them and switch between them without re-tooling.

Database sinks: Postgres, MySQL, ClickHouse

Point a template at your own Postgres, MySQL, or ClickHouse database and the sink continuously lands ready-to-query tables. Moralis does the heavy lifting in the template, decoding, enrichment, and reorg correction, so you query a production-grade dataset inside your own stack. Use this if you want queryable tables in a database you control, especially for request/response needs like “a wallet’s balances.” See Database sinks for choosing between the three.

Streaming: Kafka, RabbitMQ, SQS

Consume feeds through supported streaming interfaces using Kafka-compatible, RabbitMQ/AMQP, or SQS-compatible clients, depending on the feed and current availability. Bring the consumers you already run instead of building a new ingestion path. Use this if you already operate an event pipeline and want onchain data flowing through it. See Streaming.

Direct reads: REST/HTTP and Arrow Flight

Read feed data directly over REST/HTTP for simple pulls, or over Arrow Flight (gRPC) for high-throughput columnar transfers straight into analytical tooling. Use this if you want to pull data on demand without running a sink or a streaming consumer. See Direct reads.

Which path fits your workload?

Availability. Supported interfaces can vary by feed and chain. Confirm availability for the protocols and platforms you plan to use.
Whichever path you choose, it’s the same data lake underneath: each record is a block carrying decoded balances, transfers, swaps, prices, approvals, NFT activity, and raw logs. See What Are Data Feeds? and The block array.