Native Transfers

Track ETH value transfers. No ABI needed.

Configuration

Transfer indexing is top-level, not nested under contracts. Each [[transfers]] block creates a separate table.

sieve.toml
[[transfers]]
name = "eth_transfers"
table = "eth_transfers"
start_block = 21_000_000
context = ["block_timestamp", "tx_gas_price"]
include_receipts = true
name · required identifier
table · required PostgreSQL table name
start_block · optional defaults to 0
context · optional same context fields as events
include_receipts · optional · default: false

Address filters

Optionally filter by sender and/or receiver address.

sieve.toml
[[transfers]]
name = "binance_outflows"
table = "binance_outflows"
start_block = 21_000_000

[transfers.filter]
from = ["0x28C6c06298d514Db089934071355E5743bf21d60"]

Both from and to accept arrays of addresses. Omit the filter to index all ETH transfers.

Table schema

Transfer tables have a fixed schema (no ABI-derived columns):

ColumnType
block_numberBIGINT
tx_hashBYTEA
tx_indexINTEGER
from_addressTEXT
to_addressTEXT
valueNUMERIC

Plus any context and receipt fields you configure.

Next steps

Factory Contracts dynamically discover child contracts
Streaming webhooks and RabbitMQ for real-time pipelines