> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sqd.dev/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.sqd.dev/feedback

```json
{
  "path": "/en/portal/migration/cloud-portal-evm",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Portal for EVM & Substrate

> Migrate SQD Cloud squids from v2 archive gateways to the Portal API as primary data source — step-by-step guide for EVM and Substrate indexers.

<Info>
  SQD Network portals are currently in closed beta. Please report any bugs or suggestions to the [SQD Portal Closed Beta chat](https://t.me/+JHrJZPz34kRjYmFk) or [Squid Devs](https://t.me/HydraDevs).
</Info>

This guide walks you through replacing a gateway of the open private version of SQD Network with a portal of the permissionless SQD Network as the primary data source for your Cloud squids.

## Portal types

The SQD team operates two independent portals that serve the needs of Cloud users:

* **Cloud Portal**: Only visible from within the Cloud, ensuring stable performance for squids deployed there
* **Public Portal**: Can be accessed from anywhere for easy experimentation and local development

<Info>
  We're currently experimenting with tightening the data request complexity limits. If you see an HTTP 400 error with a message like this:

  ```
  Couldn't parse query: query contains X item requests, but only 50 is allowed
  ```

  where `X` is some number above 50, or any other HTTP 400 response, please let us know.
</Info>

## Migration steps

### Step 1: Install the portal-api processor

Navigate to your squid's folder and install the `portal-api` version of the processor package:

<CodeGroup>
  ```bash EVM theme={"system"}
  npm i @subsquid/evm-processor@portal-api
  ```

  ```bash Substrate theme={"system"}
  npm i @subsquid/substrate-processor@portal-api
  ```
</CodeGroup>

### Step 2: Configure your data source

Follow the network-specific instructions from the Cloud:

1. [Enable the preview mode](https://app.subsquid.io/preview)
2. Navigate to [the Portal's page](https://app.subsquid.io/portal)
3. Click on the tile of your network to see the instructions

Once you're done, your squid will use the Cloud Portal when deployed and the Public Portal for local runs.

### Step 3: Re-sync with zero downtime

Evaluate the performance of your new data source by re-syncing your squid. Follow the zero-downtime update procedure:

1. Deploy your squid into a new slot
2. Wait for it to sync, observing the improved data fetching
3. Assign your production tag to the new deployment to redirect the GraphQL requests there

See [Slots and Tags](/en/cloud/resources/slots-and-tags#zero-downtime-updates) for details.
