Available Extractors
Amp supports three types of blockchain data extractors:| Extractor | Protocol | Supported Chains | Use Case |
|---|---|---|---|
| EVM RPC | JSON-RPC | Ethereum and EVM-compatible chains | Standard blockchain data extraction via HTTP/WebSocket/IPC |
| Firehose | gRPC streaming | EVM-compatible chains | High-throughput streaming with transaction traces |
| Solana | JSON-RPC + CAR files | Solana | Solana blockchain with historical archive support |
EVM RPC
Connects to Ethereum-compatible JSON-RPC endpoints for extracting blockchain data. Supports HTTP, WebSocket, and IPC connections with configurable batching and rate limiting. Extracted tables:blocks, transactions, logs
Learn more about EVM RPC →
Firehose
StreamingFast’s high-performance gRPC streaming protocol for blockchain data. Provides real-time data streaming with full transaction traces and call data. Extracted tables:blocks, transactions, logs, calls
Learn more about Firehose →
Solana
Solana blockchain extraction using a hybrid approach: historical data from Old Faithful CAR archive files and real-time data from Solana RPC endpoints. Extracted tables:block_headers, transactions, messages, instructions
Learn more about Solana →
How Providers Work
Providers decouple dataset definitions from concrete data source configurations:Provider Resolution
When a dataset needs data, Amp automatically resolves the appropriate provider:- Dataset requests provider by
(kind, network)tuple (e.g.,evm-rpc+mainnet) - System finds all matching providers in the providers directory
- Providers are shuffled for load balancing
- Each is tried with environment variable substitution
- First successful connection is used
Benefits
- Reusability: Multiple datasets share the same provider configuration
- Flexibility: Switch endpoints without modifying dataset definitions
- Load Balancing: Random selection among matching providers
- Security: Credentials isolated in environment variables
Configuring Providers
Providers are configured using TOML files stored in theproviders_dir directory (configured in your main config file).
Basic Structure
Each provider configuration requires:- kind: Provider type (
evm-rpc,firehose,solana) - network: Blockchain network identifier (
mainnet,base,polygon, etc.) - url: Connection endpoint (specific format depends on provider type)
- Additional provider-specific fields (rate limits, authentication, etc.)
Example Provider Configuration
Environment Variables
Provider URLs and credentials support environment variable substitution using${VARIABLE_NAME} syntax:
Provider Directory Structure
Organize your provider configurations in theproviders_dir directory:
Naming Conventions
Use descriptive names that indicate:- The blockchain network
- The provider type
- Any distinguishing characteristics (primary/fallback, rate-limited, etc.)
eth-mainnet-rpc.tomleth-mainnet-rpc-alchemy.tomlbase-mainnet-firehose.tomlpolygon-mainnet-rpc-backup.toml
Network Identifiers
Network identifiers should follow The Graph’s networks registry: https://github.com/graphprotocol/networks-registry/blob/main/docs/networks-table.md Common network identifiers:mainnet- Ethereum mainnetbase- Base L2arbitrum-one- Arbitrum Onepolygon- Polygon PoSoptimism- Optimismsolana-mainnet- Solana mainnet
Next Steps
EVM RPC
Configure Ethereum-compatible JSON-RPC providers
Firehose
Set up high-throughput gRPC streaming
Solana
Extract Solana blockchain data