Skip to main content

Data & Indexing

Nethereum provides a framework for crawling blockchain data, detecting chain reorganisations, indexing tokens, and persisting to relational databases.

Processing Event Logs

var processor = web3.Processing.Logs.CreateProcessor<TransferEventDTO>(
action: log =>
{
Console.WriteLine($"Transfer: {log.Event.From} -> {log.Event.To}, Amount: {log.Event.Value}");
return Task.CompletedTask;
},
minimumBlockConfirmations: 12,
contractAddresses: new[] { contractAddress }
);

await processor.ExecuteAsync(
startAtBlockNumberIfNotProcessed: 18000000,
cancellationToken: cancellationToken.Token
);

Progress Tracking

Implement IBlockProgressRepository to resume processing after restarts.

Full Block Processing

var processor = web3.Processing.Blocks.CreateBlockProcessor(
steps =>
{
steps.TransactionStep.SetMatchCriteria(tx => tx.Transaction.IsToAnEmptyAddress());
steps.TransactionReceiptStep.SetMatchCriteria(receipt => receipt.Succeeded());
},
minimumBlockConfirmations: 6
);

Database Storage

PackageProvider
Nethereum.BlockchainStore.PostgresPostgreSQL
Nethereum.BlockchainStore.SqlServerSQL Server
Nethereum.BlockchainStore.SqliteSQLite

Token Processing

Nethereum.BlockchainStorage.Token.Postgres provides ERC-20/721/1155 transfer indexing, balance aggregation, and metadata resolution.

Explorer

Nethereum.Explorer is a Blazor Server blockchain explorer with block/transaction/log browsing, ABI-decoded contract interaction, and token pages.

Token Services

Nethereum.TokenServices provides token metadata discovery (logos, chain info, CoinGecko integration) and multicall-based balance scanning.