Provider endpoints allow you to configure external blockchain data sources that Amp uses for data extraction. Providers define connection details for RPC endpoints, Firehose streams, and other data sources.
List Providers
Retrieves complete information for all provider configurations.
This endpoint returns the complete provider configuration including all configuration details. Ensure that sensitive information such as API keys and connection strings are not stored in provider configuration files.
Response
List of all provider configurations with complete details The name/identifier of the provider
The type of provider (e.g., “evm-rpc”, “firehose”)
Additional provider-specific configuration fields (e.g., network, url)
Example Request
curl http://localhost:1610/providers
Example Response
{
"providers" : [
{
"name" : "alchemy-mainnet" ,
"kind" : "evm-rpc" ,
"network" : "mainnet" ,
"url" : "https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY"
},
{
"name" : "firehose-eth" ,
"kind" : "firehose" ,
"endpoint" : "mainnet.eth.streamingfast.io:443"
}
]
}
Get Provider Details
Retrieves complete information for a specific provider configuration by its name.
This endpoint returns the complete provider configuration. Ensure sensitive information is properly filtered before storage.
Path Parameters
The unique name/identifier of the provider to retrieve
Response
The name/identifier of the provider
Additional provider-specific configuration fields
Example Request
curl http://localhost:1610/providers/alchemy-mainnet
Example Response
{
"name" : "alchemy-mainnet" ,
"kind" : "evm-rpc" ,
"network" : "mainnet" ,
"url" : "https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY"
}
Response Codes
200 OK - Provider information retrieved successfully
400 Bad Request - Invalid provider name format
404 Not Found - Provider not found
500 Internal Server Error - Conversion error
Create or Update Provider
Creates or updates a provider configuration. If the provider already exists, it will be overwritten.
Request Body
The unique identifier for the provider
The type of provider (e.g., “evm-rpc”, “firehose”)
Additional provider-specific configuration fields as needed (e.g., network, url)
Example Request - EVM RPC Provider
curl -X POST http://localhost:1610/providers \
-H "Content-Type: application/json" \
-d '{
"name": "alchemy-mainnet",
"kind": "evm-rpc",
"network": "mainnet",
"url": "https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY"
}'
Example Request - Firehose Provider
curl -X POST http://localhost:1610/providers \
-H "Content-Type: application/json" \
-d '{
"name": "firehose-eth",
"kind": "firehose",
"endpoint": "mainnet.eth.streamingfast.io:443",
"token": "YOUR_TOKEN"
}'
Response Codes
201 Created - Provider created or updated successfully
400 Bad Request - Invalid request body or provider configuration
500 Internal Server Error - Store error
Providers are reusable across multiple dataset definitions. Create providers once and reference them by name in your dataset manifests.
Delete Provider
Deletes a specific provider configuration by its name. This operation is idempotent - deleting a non-existent provider returns success.
Path Parameters
The unique name/identifier of the provider to delete
Response Codes
204 No Content - Provider successfully deleted (or did not exist)
400 Bad Request - Invalid provider name format
500 Internal Server Error - Store error
Example Request
curl -X DELETE http://localhost:1610/providers/alchemy-mainnet
Once deleted, the provider configuration cannot be recovered. Any datasets using this provider may fail until a new provider is configured.
Provider Types
EVM RPC Provider
Used for extracting data from EVM-compatible chains via JSON-RPC:
{
"name" : "alchemy-mainnet" ,
"kind" : "evm-rpc" ,
"network" : "mainnet" ,
"url" : "https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY"
}
Required fields:
name - Unique provider identifier
kind - Must be “evm-rpc”
network - Network name (e.g., “mainnet”, “polygon”)
url - RPC endpoint URL
Firehose Provider
Used for extracting data from Firehose streams:
{
"name" : "firehose-eth" ,
"kind" : "firehose" ,
"endpoint" : "mainnet.eth.streamingfast.io:443" ,
"token" : "YOUR_TOKEN"
}
Required fields:
name - Unique provider identifier
kind - Must be “firehose”
endpoint - Firehose endpoint address
token - Authentication token (optional)
Security Considerations
API Keys and Secrets : Do not store sensitive credentials directly in provider configurations. Use environment variables or secret management systems instead.
Best practices:
Use environment variables for sensitive values
Restrict API access to the Admin API
Rotate credentials regularly
Monitor provider usage for anomalies
Common Use Cases
Multi-Network Setup
Create providers for different networks:
# Ethereum Mainnet
curl -X POST http://localhost:1610/providers \
-H "Content-Type: application/json" \
-d '{"name": "eth-mainnet", "kind": "evm-rpc", "network": "mainnet", "url": "..."}'
# Polygon
curl -X POST http://localhost:1610/providers \
-H "Content-Type: application/json" \
-d '{"name": "polygon", "kind": "evm-rpc", "network": "polygon", "url": "..."}'
Provider Failover
Create backup providers for redundancy:
# Primary provider
curl -X POST http://localhost:1610/providers \
-H "Content-Type: application/json" \
-d '{"name": "alchemy-primary", "kind": "evm-rpc", "network": "mainnet", "url": "..."}'
# Backup provider
curl -X POST http://localhost:1610/providers \
-H "Content-Type: application/json" \
-d '{"name": "infura-backup", "kind": "evm-rpc", "network": "mainnet", "url": "..."}'