> ## 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:

<CodeGroup>
  ```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);
  ```
</CodeGroup>

## 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](/goldrush-json-rpc/debug-trace) 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
```

<CodeGroup>
  ```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}`,
      },
    }
  );
  ```
</CodeGroup>

<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](/goldrush-foundational-api/overview); for real-time event streams use the [Streaming API](/goldrush-streaming-api/overview).
</Note>

## 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](/goldrush-foundational-api/overview), 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)](/api-reference/foundational-api/transactions/get-recent-transactions-for-address-v3) |
| `account / tokentx` (token transfers)     | [Get ERC20 token transfers for address](/api-reference/foundational-api/balances/get-erc20-token-transfers-for-address)         |
| `account / tokenbalance`                  | [Get token balances for address](/api-reference/foundational-api/balances/get-token-balances-for-address)                       |
| `account / balance` (native)              | [Get native token balance](/api-reference/foundational-api/balances/get-native-token-balance)                                   |
| `logs / getLogs`                          | [Get log events by contract address](/api-reference/foundational-api/utility/get-log-events-by-contract-address)                |
| `token / tokenholderlist`                 | [Get token holders (v2)](/api-reference/foundational-api/balances/get-token-holders-as-of-any-block-height-v2)                  |

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](/goldrush-json-rpc/supported-chains) 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](/goldrush-foundational-api/overview)                               |
| Token balance / transfer enrichment | various       | [Foundational API: token balances and transfers](/goldrush-foundational-api/overview) |
| `bor_*`                             | Polygon (Bor) | n/a                                                                                   |

If you depend on a provider extension, use the GoldRush [Foundational API](/goldrush-foundational-api/overview) (decoded, typed REST) or the [Streaming API](/goldrush-streaming-api/overview) (real-time event streams) instead.

<CardGroup cols={2}>
  <Card title="Authentication" href="/goldrush-json-rpc/authentication" icon="key">
    Header reference and per-library setup.
  </Card>

  <Card title="Quickstart" href="/goldrush-json-rpc/quickstart" icon="rocket">
    Copy-paste examples for every library.
  </Card>
</CardGroup>
