EVM Sources
All EVM networks that are supported on Mirror are also supported in Turbo, with the same schemas.
Solana Sources
Turbo-exclusive Solana source with data from genesis (Mirror version only has data from Summer 2024).
Stellar Sources
Stellar data is also available on Mirror, but the “wide-row” format is best managed via Turbo.
Basic Configuration
Quick Examples
Source Naming
The reference name you give to a source is how you’ll refer to it in transforms and sinks:- Use descriptive, lowercase names with underscores or hyphens
- Avoid special characters except
_and- - Examples:
ethereum_blocks,filtered-transfers,enriched_data
Multiple Sources
You can define multiple sources in a single pipeline:Each source runs independently and can be processed at different rates. Use
SQL transforms to combine data from multiple sources.
Common Patterns
Single Chain Processing
Single Chain Processing
Process data from one blockchain:
Multi-Chain Processing
Multi-Chain Processing
Combine data from multiple chains:
Historical Data Processing
Historical Data Processing
Process all historical data from the beginning:
yaml sources: ethereum_blocks: type: dataset dataset_name: ethereum.blocks version: 1.0.0 start_at: earliest # Process from genesis Cross-Chain Analytics
Cross-Chain Analytics
Combine EVM and Solana data:
Best Practices
1
Start with latest for new pipelines
Use
start_at: latest for new pipelines to avoid processing large amounts of historical data initially:2
Choose descriptive source names
Name sources clearly to indicate what they contain:
yaml sources: polygon_usdc_transfers: # Clear and descriptive type: dataset # ... 3
Check dataset versions
Use the latest stable version of datasets for best performance and features:
Common Questions
When should I use 'start_at: earliest' vs 'latest'?
When should I use 'start_at: earliest' vs 'latest'?
Use
latest when you only need new data going forward - this is recommended for most use cases and avoids processing historical data. Use earliest for backfills or when you need complete historical data from genesis.Performance note: Starting from earliest on Ethereum mainnet means processing millions of historical blocks, which can take hours or days depending on your pipeline complexity. For testing, use latest or a recent block number.Can I process multiple chains in one pipeline?
Can I process multiple chains in one pipeline?
Yes! Each source runs independently and can be processed at different rates.
You can define multiple sources and use SQL transforms to combine them. See
the Multi-Chain Processing example in the Common Patterns section above.
What's the difference between start_at and start_block?
What's the difference between start_at and start_block?
start_at is used for EVM chains and accepts latest or earlieststart_block is used for Solana and requires a specific slot number. This
difference reflects how each blockchain handles block numbering. Omit start_block
if you want to start from the latest block on Solana.How do I process only a specific block range?
How do I process only a specific block range?
For one-time historical processing of a specific range, use Job Mode with a start and end block. For continuous processing starting from a specific point, use
start_at: earliest on EVM or specify a start_block on Solana.What dataset version should I use?
What dataset version should I use?
Always use the latest stable version for best performance and newest features.
Check available versions with
goldsky datasets list.