Skip to main content

← Back to Portal Setup

Return to the Portal setup overview to explore other deployment options.
Portal is currently in closed beta. Please report any bugs or suggestions to the SQD Portal chat or to Squid Devs.
This guide walks you through migrating SDK-based squids from gateways of the open private version of SQD Network to portals of the permissionless SQD Network as your primary data source.

Prerequisites

  • An existing SDK-based squid using @subsquid/evm-processor with .setGateway()
  • Access to an SQD portal URL (see Step 2 for options)

Benefits of migrating to Portal

  • Reduced reliance on centralized services: The permissionless SQD Network consists of over 2500 nodes ran by independent operators, with a total capacity of roughly 2Pb. This allows for a great deal of redundancy. You can query the network without relying on any centralized services.
  • Improved speed: The permissionless version of SQD Network has significantly more bandwidth than the open private network. Portals use available bandwidth more effectively than gateways, resulting in 5-10 times faster data fetching in our tests. For squids not bottlenecked by write operations, this translates into better sync performance.
  • Simplified API: Compared to the request-response approach used by gateways, portals offer a simpler stream-based API.
  • Future-proof: All future development will focus on portals and the permissionless SQD Network.

Migration steps

1

Install portal-api version

Navigate to your squid’s folder and install the portal-api version of @subsquid/evm-processor:
npm i @subsquid/evm-processor@portal-api
2

Obtain a portal URL

Obtain a portal URL for your dataset. Choose the option that matches your setup:
If you’re an existing user of the SQD Cloud:
  1. Enable the preview mode
  2. Navigate to the portals page
  3. Click on the tile of your network and follow the instructions
Once configured, you can run your portal-powered squid both locally and in the Cloud. You can skip Step 3—it’s already configured automatically.
3

Update processor configuration

Configure your squid to ingest data from the portal by replacing the .setGateway() call in your processor configuration (typically in src/processor.ts) with .setPortal().
Replace .setGateway() with .setPortal() using your portal URL directly:
src/processor.ts
export const processor = new EvmBatchProcessor()
  .setPortal('<portal URL for your dataset>')
If your squid uses an RPC endpoint, keep that configuration for now. Portals do not currently support real-time data ingestion, but this capability is coming soon.
Your squid is now configured to source data from Portal. Test it locally to verify everything works correctly.
Last modified on November 17, 2025