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

# RPC endpoints

> Use Portal's managed RPC gateway to send JSON-RPC requests to any supported chain without running your own node or provider.

## Portal's RPC gateway

Portal exposes a managed JSON-RPC gateway so you can read chain state and broadcast transactions without provisioning your own RPC provider. Supported EVM and Solana networks are reachable at a single, predictable URL:

```
POST https://api.portalhq.io/rpc/v1/{namespace}/{reference}
```

`{namespace}` and `{reference}` are the two halves of the chain's [CAIP-2 chain ID](./chain-id-formatting) (`namespace:reference`). To build the endpoint, take the CAIP-2 ID and replace the `:` with `/`.

For example, the CAIP-2 ID for Monad mainnet is `eip155:143`, so its RPC endpoint is `https://api.portalhq.io/rpc/v1/eip155/143`.

<Note>
  The gateway covers the `eip155` (EVM) and `solana` namespaces — not every chain in [Blockchain support](./blockchain-support) has a gateway endpoint. Authenticate with your **Client API Key** or **Client Session Token**; see [Authentication & API keys](./authentication-and-api-keys).
</Note>

## Common endpoints

Here are the most commonly used endpoints, listed explicitly for quick reference:

| Network          | CAIP-2 chain ID                           | RPC endpoint                                                             |
| ---------------- | ----------------------------------------- | ------------------------------------------------------------------------ |
| Monad Mainnet    | `eip155:143`                              | `https://api.portalhq.io/rpc/v1/eip155/143`                              |
| Monad Testnet    | `eip155:10143`                            | `https://api.portalhq.io/rpc/v1/eip155/10143`                            |
| Ethereum Mainnet | `eip155:1`                                | `https://api.portalhq.io/rpc/v1/eip155/1`                                |
| Solana Mainnet   | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` | `https://api.portalhq.io/rpc/v1/solana/5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` |

## The pattern for supported chains

Gateway-supported chains follow the same `…/rpc/v1/{namespace}/{reference}` shape — take the CAIP-2 chain ID and swap the `:` for a `/`. A few examples:

| Network          | CAIP-2 chain ID                           | RPC endpoint                                                             |
| ---------------- | ----------------------------------------- | ------------------------------------------------------------------------ |
| Ethereum Mainnet | `eip155:1`                                | `https://api.portalhq.io/rpc/v1/eip155/1`                                |
| Ethereum Sepolia | `eip155:11155111`                         | `https://api.portalhq.io/rpc/v1/eip155/11155111`                         |
| Base Mainnet     | `eip155:8453`                             | `https://api.portalhq.io/rpc/v1/eip155/8453`                             |
| Polygon Mainnet  | `eip155:137`                              | `https://api.portalhq.io/rpc/v1/eip155/137`                              |
| Arbitrum Mainnet | `eip155:42161`                            | `https://api.portalhq.io/rpc/v1/eip155/42161`                            |
| Optimism Mainnet | `eip155:10`                               | `https://api.portalhq.io/rpc/v1/eip155/10`                               |
| Solana Mainnet   | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` | `https://api.portalhq.io/rpc/v1/solana/5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` |
| Solana Devnet    | `solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1` | `https://api.portalhq.io/rpc/v1/solana/EtWTRABZaYq6iMfeYKouRu166VU2xqa1` |

For the full list of supported chains and their CAIP-2 IDs, see [Blockchain support](./blockchain-support). For how CAIP-2 IDs are formed, see [Chain ID formatting](./chain-id-formatting).

## Official public RPC endpoints

If you would rather connect directly to a chain's own public RPC instead of Portal's gateway, use the official endpoints below.

| Network          | CAIP-2 chain ID                           | Official public RPC URL               |
| ---------------- | ----------------------------------------- | ------------------------------------- |
| Monad Mainnet    | `eip155:143`                              | `https://rpc1.monad.xyz`              |
| Monad Testnet    | `eip155:10143`                            | `https://testnet-rpc.monad.xyz`       |
| Base Mainnet     | `eip155:8453`                             | `https://mainnet.base.org`            |
| Optimism Mainnet | `eip155:10`                               | `https://mainnet.optimism.io`         |
| Arbitrum One     | `eip155:42161`                            | `https://arb1.arbitrum.io/rpc`        |
| Polygon Mainnet  | `eip155:137`                              | `https://polygon-rpc.com`             |
| Solana Mainnet   | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` | `https://api.mainnet-beta.solana.com` |
| Solana Devnet    | `solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1` | `https://api.devnet.solana.com`       |

For chains not listed here — including Ethereum mainnet and testnets, which have no single canonical public endpoint — find an official or community public RPC via [chainlist.org](https://chainlist.org).

<Warning>
  Public RPC endpoints are free but heavily rate-limited and are not intended for production workloads. For production, use Portal's RPC gateway above or a dedicated RPC provider.
</Warning>

## Making a request

The gateway accepts standard JSON-RPC `POST` requests. Authenticate with your Client API Key:

```bash theme={null}
curl --request POST \
  --url https://api.portalhq.io/rpc/v1/eip155/143 \
  --header 'Authorization: Bearer YOUR_CLIENT_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "eth_blockNumber",
    "params": []
  }'
```

## Using it as your `rpcUrl`

Anywhere Portal accepts an `rpcUrl` — for example in the SDKs or in the Enclave MPC API send and sign requests — you can pass the gateway URL for the target chain so Portal uses its managed RPC:

```json theme={null}
{
  "chain": "eip155:143",
  "rpcUrl": "https://api.portalhq.io/rpc/v1/eip155/143",
  "to": "0x1234...",
  "token": "NATIVE",
  "amount": "0.01"
}
```

If you would rather use a dedicated provider, pass your own RPC URL here instead.

<Note>
  On iOS, Android, and Flutter you don't need to pass an `rpcUrl` for the common chains Portal supports — these SDKs default to Portal's RPC gateway automatically. Pass an `rpcUrl` only to use a different provider or a chain outside the default set. On Web and React Native, configure your RPC endpoints explicitly.
</Note>

## Related

* [Blockchain support](./blockchain-support) — the full list of supported chains and CAIP-2 IDs.
* [Chain ID formatting](./chain-id-formatting) — how `namespace:reference` CAIP-2 IDs are formed.
* [Authentication & API keys](./authentication-and-api-keys) — the Client API Key and Client Session Token used to authenticate.
