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

# Migrating from other providers

> Side-by-side diffs for moving from Infura, Alchemy, Ankr, Helius, Triton, and QuickNode to GoldRush JSON-RPC.

Most JSON-RPC providers embed the API key in the URL path. GoldRush uses an `Authorization` header instead, so keys never appear in URLs, server logs, or screenshots.

This means migrating involves two steps:

1. Swap the URL.
2. Add the `Authorization: Bearer <key>` header.

Below are concrete diffs for the most common providers.

## From Infura

```diff theme={null}
- https://mainnet.infura.io/v3/{INFURA_PROJECT_ID}
+ https://rpc.goldrushdata.com/v1/eth-mainnet
```

```diff theme={null}
+ Authorization: Bearer <GOLDRUSH_API_KEY>
```

For libraries that take a URL string only, you'll need to switch to the custom-headers pattern:

```typescript ethers v6 (before) theme={null}
const provider = new ethers.JsonRpcProvider(
  `https://mainnet.infura.io/v3/${process.env.INFURA_PROJECT_ID}`
);
```

```typescript ethers v6 (after) theme={null}
const url = "https://rpc.goldrushdata.com/v1/eth-mainnet";
const fetchReq = new ethers.FetchRequest(url);
fetchReq.setHeader("Authorization", `Bearer ${process.env.GOLDRUSH_API_KEY}`);
const provider = new ethers.JsonRpcProvider(fetchReq);
```

## From Alchemy

Alchemy embeds the API key at the end of the URL path:

```diff theme={null}
- https://eth-mainnet.g.alchemy.com/v2/{ALCHEMY_API_KEY}
+ https://rpc.goldrushdata.com/v1/eth-mainnet
```

```diff theme={null}
+ Authorization: Bearer <GOLDRUSH_API_KEY>
```

`debug_*` and `trace_*` continue to work. See [debug and trace](https://goldrush.dev/docs/goldrush-json-rpc/debug-trace.md) for the per-chain support matrix.

## From Ankr

```diff theme={null}
- https://rpc.ankr.com/eth/{ANKR_API_KEY}
+ https://rpc.goldrushdata.com/v1/eth-mainnet
```

```diff theme={null}
+ Authorization: Bearer <GOLDRUSH_API_KEY>
```

## From a Solana provider (Helius, Triton, QuickNode)

Solana providers also embed the API key in the URL, usually as an `?api-key=` query parameter. GoldRush moves it into the `Authorization` header, and serves the standard Solana JSON-RPC method set unchanged; your existing `getAccountInfo`, `getProgramAccounts`, `sendTransaction`, and subscription calls work as-is.

```diff theme={null}
- https://mainnet.helius-rpc.com/?api-key={HELIUS_API_KEY}
+ https://rpc.goldrushdata.com/v1/solana-mainnet
```

```diff theme={null}
+ Authorization: Bearer YOUR_GOLDRUSH_API_KEY
```

The WebSocket endpoint changes the same way:

```diff theme={null}
- wss://mainnet.helius-rpc.com/?api-key={HELIUS_API_KEY}
+ wss://rpc.goldrushdata.com/v1/solana-mainnet
```

```typescript @solana/web3.js (before) theme={null}
import { Connection } from "@solana/web3.js";

const connection = new Connection(
  `https://mainnet.helius-rpc.com/?api-key=${process.env.HELIUS_API_KEY}`
);
```

```typescript @solana/web3.js (after) theme={null}
import { Connection } from "@solana/web3.js";

const connection = new Connection(
  "https://rpc.goldrushdata.com/v1/solana-mainnet",
  {
    httpHeaders: {
      Authorization: `Bearer ${process.env.GOLDRUSH_API_KEY}`,
    },
  }
);
```

> [!NOTE]
>
> Provider-specific Solana extensions (Helius DAS / `getAsset*`, enhanced transaction parsing, webhooks, priority-fee APIs, etc.) are **not** part of the standard JSON-RPC surface and are not served here. For decoded, enriched Solana data (token balances, NFT metadata, transactions) use the GoldRush [Foundational API](https://goldrush.dev/docs/goldrush-foundational-api/overview.md).

## From Etherscan-family explorer APIs (Etherscan, Basescan, Polygonscan, BscScan)

Block-explorer APIs, meaning Etherscan and its per-chain variants (Basescan, Polygonscan, BscScan, Arbiscan, Snowtrace), are **not** JSON-RPC. They serve decoded account, transaction, token, and contract data over REST (`?module=account&action=txlist`, `tokenbalance`, `getabi`, …). The GoldRush equivalent for that data is the [Foundational API](https://goldrush.dev/docs/goldrush-foundational-api/overview.md), not JSON-RPC, and it is multichain under a single key, so you don't manage a separate API key per explorer.

| Etherscan-family call | GoldRush Foundational API |
| - | - |
| `account / txlist` (address transactions) | [Get recent transactions for address (v3)](https://goldrush.dev/docs/api-reference/foundational-api/transactions/get-recent-transactions-for-address-v3.md) |
| `account / tokentx` (token transfers) | [Get ERC20 token transfers for address](https://goldrush.dev/docs/api-reference/foundational-api/balances/get-erc20-token-transfers-for-address.md) |
| `account / tokenbalance` | [Get token balances for address](https://goldrush.dev/docs/api-reference/foundational-api/balances/get-token-balances-for-address.md) |
| `account / balance` (native) | [Get native token balance](https://goldrush.dev/docs/api-reference/foundational-api/balances/get-native-token-balance.md) |
| `logs / getLogs` | [Get log events by contract address](https://goldrush.dev/docs/api-reference/foundational-api/utility/get-log-events-by-contract-address.md) |
| `token / tokenholderlist` | [Get token holders (v2)](https://goldrush.dev/docs/api-reference/foundational-api/balances/get-token-holders-as-of-any-block-height-v2.md) |

If you only need raw node methods (`eth_getLogs`, `eth_call`, …), use GoldRush JSON-RPC as covered above. For block-explorer-style decoded data, the Foundational API is the closer match.

## Chain slug mapping

Most providers use short chain names. GoldRush uses the canonical chain slugs from the [supported chains](https://goldrush.dev/docs/goldrush-json-rpc/supported-chains.md) list.

| Common name | Infura/QuickNode subdomain | GoldRush slug |
| - | - | - |
| Ethereum | `mainnet` | `eth-mainnet` |
| Polygon | `polygon-mainnet` | `matic-mainnet` |
| BNB Smart Chain | `bnb-mainnet` | `bsc-mainnet` |
| Arbitrum | `arb-mainnet` | `arbitrum-mainnet` |
| Base | `base-mainnet` | `base-mainnet` |
| HyperEVM | n/a | `hyperevm-mainnet` |
| MegaETH | n/a | `megaeth-mainnet` |
| Monad | n/a | `monad-mainnet` |
| Tempo | n/a | `tempo-mainnet` |
| Solana | `mainnet` / `mainnet-beta` | `solana-mainnet` |

## Provider extensions are not supported

GoldRush JSON-RPC implements the standard `eth_*`, `net_*`, `web3_*`, `debug_*`, and `trace_*` methods. Provider-specific extensions are intentionally **not** supported:

| Extension namespace | Provider | GoldRush equivalent |
| - | - | - |
| `qn_*` | QuickNode | [Foundational API](https://goldrush.dev/docs/goldrush-foundational-api/overview.md) |
| Token balance / transfer enrichment | various | [Foundational API: token balances and transfers](https://goldrush.dev/docs/goldrush-foundational-api/overview.md) |
| `bor_*` | Polygon (Bor) | n/a |

If you depend on a provider extension, use the GoldRush [Foundational API](https://goldrush.dev/docs/goldrush-foundational-api/overview.md) (decoded, typed REST) instead.

> [card] [Authentication](https://goldrush.dev/docs/goldrush-json-rpc/authentication.md)
>
> Header reference and per-library setup.

> [card] [Quickstart](https://goldrush.dev/docs/goldrush-json-rpc/quickstart.md)
>
> Copy-paste examples for every library.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.