Complete EVM API Specification
View the full OpenAPI documentation with all available fields, filters, and
detailed schemas →
Base URL
All Portal requests are made to:{network} with your target blockchain (e.g., ethereum-mainnet, polygon-mainnet, arbitrum-one).
Core Endpoints
POST /stream
Stream blockchain data with filters. Includes unfinalized blocks.
POST /finalized-stream
Stream only finalized blocks. Use for production pipelines requiring
certainty.
GET /metadata
Get dataset information: block range, finality rules, and network details.
Installation
Quick Start Examples
Available Fields
Block Fields
Select which block header fields to retrieve:Transaction Fields
Select transaction data fields:Log Fields
Select event log fields:Trace Fields
Select call trace fields:State Diff Fields
Select state change fields:Filtering Options
Log Filters
Filter logs by contract address and event topics:- Multiple addresses in one object = OR
- Multiple topics in one object = AND
- Multiple filter objects = OR
Transaction Filters
Filter transactions by sender, recipient, or function signature:Trace Filters
Filter traces by type, caller, or callee:State Diff Filters
Filter state changes by contract address:Network Selection
Specify the EVM network when creating the data source:View All Networks
See complete list of 100+ supported EVM networks
Query Patterns
Pattern 1: Range Query
Query a specific block range:Pattern 2: Batch Processing
Process large ranges in batches:Pattern 3: Multi-Contract Query
Query multiple contracts simultaneously:Performance Optimization
1. Request Only Needed Fields
2. Use Specific Filters
3. Optimal Batch Sizes
4. Parallel Queries
Error Handling
Common Use Cases
Use Case 1: Event Monitoring
Monitor specific smart contract events:Use Case 2: Transaction Tracking
Track transactions to/from specific addresses:Use Case 3: Analytics Pipeline
Build analytics on blockchain data:Request Structure Reference
Every Portal request follows this structure:Response Format
Portal returns newline-delimited JSON (NDJSON), with one block per line:Common Patterns
Batch Processing
Batch Processing
Process large block ranges by splitting into manageable chunks:
Real-time Streaming
Real-time Streaming
Stream new blocks as they arrive using /finalized-stream:
Error Handling
Error Handling
Handle rate limits and network errors gracefully:
Complete API Specification
For the complete OpenAPI specification with all available fields, options, and detailed schemas:Full EVM API Specification
View complete OpenAPI documentation with all endpoints, fields, and options →

