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

# Set up Boost

> Configure an upstream RPC provider, make a Boost request, and verify which calls avoid your provider.

export const BoostNetworkData = ({mode = 'builder'}) => {
  const boostChains = [{
    name: 'ethereum',
    label: 'Ethereum',
    chainId: '1'
  }, {
    name: 'base',
    label: 'Base',
    chainId: '8453'
  }, {
    name: 'polygon',
    label: 'Polygon',
    chainId: '137'
  }, {
    name: 'optimism',
    label: 'Optimism',
    chainId: '10'
  }, {
    name: 'avalanche',
    label: 'Avalanche',
    chainId: '43114'
  }, {
    name: 'hyperevm',
    label: 'HyperEVM',
    chainId: '999'
  }, {
    name: 'arc',
    label: 'Arc',
    chainId: '5042'
  }, {
    name: 'robinhood',
    label: 'Robinhood Chain',
    chainId: '4663'
  }, {
    name: 'monad',
    label: 'Monad',
    chainId: '143'
  }, {
    name: 'sepolia',
    label: 'Ethereum Sepolia',
    chainId: '11155111'
  }, {
    name: 'base-sepolia',
    label: 'Base Sepolia',
    chainId: '84532'
  }];
  const mono = 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace';
  const [apiKey, setApiKey] = useState('');
  const [chain, setChain] = useState('ethereum');
  const [copied, setCopied] = useState(false);
  const url = `https://edge.goldsky.com/boost/${chain}?key=${apiKey || 'YOUR_KEY'}`;
  const command = `curl "${url}" \\\n  -i -X POST \\\n  -H "Content-Type: application/json" \\\n  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x0",false]}'`;
  const copy = async () => {
    await navigator.clipboard.writeText(command);
    setCopied(true);
    setTimeout(() => setCopied(false), 1500);
  };
  const inputStyle = {
    width: '100%',
    minWidth: 0,
    boxSizing: 'border-box',
    padding: '9px 11px',
    borderRadius: 8,
    border: '1px solid var(--gsk-edge, rgba(17,24,39,0.2))',
    background: 'var(--gsk-card, #fff)',
    color: 'var(--gsk-ink, #111827)',
    fontSize: 14
  };
  if (mode === 'table') {
    return <div role="table" aria-label="Boost supported networks" style={{
      display: 'grid',
      borderTop: '1px solid var(--gsk-hair, rgba(17,24,39,0.12))'
    }}>
        <div role="row" style={{
      display: 'grid',
      gridTemplateColumns: 'minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr)',
      gap: 12,
      padding: '10px 8px',
      borderBottom: '1px solid var(--gsk-hair, rgba(17,24,39,0.12))',
      fontSize: 13,
      fontWeight: 650
    }}>
          <div role="columnheader">Network</div>
          <div role="columnheader">Path name</div>
          <div role="columnheader">Chain ID</div>
        </div>
        {boostChains.map(item => <div key={item.name} role="row" style={{
      display: 'grid',
      gridTemplateColumns: 'minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr)',
      gap: 12,
      padding: '9px 8px',
      borderBottom: '1px solid var(--gsk-hair, rgba(17,24,39,0.12))',
      fontSize: 14
    }}>
            <div role="cell">{item.label}</div>
            <div role="cell"><code>{item.name}</code></div>
            <div role="cell"><code>{item.chainId}</code></div>
          </div>)}
      </div>;
  }
  return <div style={{
    border: '1px solid var(--gsk-hair, rgba(17,24,39,0.12))',
    borderRadius: 12,
    padding: 16,
    margin: '16px 0',
    background: 'var(--gsk-panel, #fcfcfb)'
  }}>
      <style>{`
        .boost-builder-fields { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 10px; }
        @media (max-width: 640px) { .boost-builder-fields { grid-template-columns: 1fr; } }
      `}</style>
      <div className="boost-builder-fields">
        <label style={{
    display: 'grid',
    gap: 6,
    fontSize: 13,
    fontWeight: 600
  }}>
          Goldsky API key
          <input type="text" value={apiKey} onChange={event => setApiKey(event.target.value)} placeholder="YOUR_KEY" autoComplete="off" spellCheck={false} style={{
    ...inputStyle,
    fontFamily: mono
  }} />
        </label>
        <label style={{
    display: 'grid',
    gap: 6,
    fontSize: 13,
    fontWeight: 600
  }}>
          Network
          <select value={chain} onChange={event => setChain(event.target.value)} style={inputStyle}>
            {boostChains.map(item => <option key={item.name} value={item.name}>{item.label} ({item.chainId})</option>)}
          </select>
        </label>
      </div>

      <div style={{
    marginTop: 14
  }}>
        <div style={{
    display: 'flex',
    justifyContent: 'flex-end',
    marginBottom: 8
  }}>
          <button type="button" onClick={copy} style={{
    padding: '5px 10px',
    borderRadius: 6,
    border: '1px solid var(--gsk-edge, rgba(17,24,39,0.2))',
    background: 'var(--gsk-card, #fff)',
    color: 'var(--gsk-ink, #111827)',
    fontSize: 12,
    cursor: 'pointer'
  }}>
            {copied ? 'Copied' : 'Copy command'}
          </button>
        </div>
        <pre style={{
    overflowX: 'auto',
    background: 'var(--gsk-code, #f6f6f5)',
    color: 'var(--gsk-ink, #111827)',
    borderRadius: 8,
    padding: 14,
    margin: 0,
    fontSize: 13,
    lineHeight: 1.55,
    whiteSpace: 'pre',
    fontFamily: mono
  }}>{command}</pre>
      </div>

      <div style={{
    marginTop: 9,
    color: 'var(--gsk-sub, #6b7280)',
    fontSize: 12,
    lineHeight: 1.5
  }}>
        The command is generated in your browser. The value you enter is not submitted by this component.
        <span role="status" aria-live="polite" style={{
    marginLeft: 6
  }}>{copied ? 'Command copied to clipboard.' : ''}</span>
      </div>
    </div>;
};

This quickstart configures one upstream, makes an eligible historical read, and confirms whether Boost or your provider answered.

## Prerequisites

* A [Goldsky account](https://app.goldsky.com)
* An HTTPS RPC endpoint for a [supported Boost network](/boost/reference#supported-networks)
* A verified Goldsky organization

<Info>
  A verified Goldsky organization has at least one Owner, Admin, or Editor whose email uses a company domain. Generic email providers such as Gmail, Outlook, and Proton Mail do not qualify. Verification is required to use Boost.
</Info>

<Steps>
  <Step title="Configure an upstream">
    Open [Boost in the dashboard](https://app.goldsky.com/dashboard/edge/boost). Choose one of two setup paths:

    * Connect a QuickNode, Alchemy, Chainstack, or dRPC account. Boost creates dedicated resources in QuickNode, Alchemy, and Chainstack; with dRPC, it uses an unrestricted key already in your account.
    * Paste an HTTPS RPC URL and any authentication headers it needs.

    Enabling Boost creates one Boost API key for the project. Copy it from the Boost dashboard; the same key works across every network you enable.

    <Accordion title="Prefer the CLI?">
      Run the interactive configuration flow:

      ```bash theme={"dark"}
      goldsky boost enable
      ```

      The setup wizard asks for a provider account, its management credential, and the networks to enable. See the [`goldsky boost` CLI reference](/reference/cli#boost) for non-interactive provider and endpoint management commands.
    </Accordion>
  </Step>

  <Step title="Make an eligible historical read">
    Boost endpoints use this format:

    ```text theme={"dark"}
    https://edge.goldsky.com/boost/{chain}?key={your-api-key}
    ```

    Use a network name or chain ID. For example, `/boost/ethereum` and `/boost/1` identify the same network.

    Enter your key, choose a network, and copy the generated command:

    <BoostNetworkData mode="builder" />

    <Note>
      The first request for a range that has not been served recently can return `x-cache: MISS` while Boost warms the reader from storage. Run the request again before treating the method as ineligible.
    </Note>
  </Step>

  <Step title="Confirm who answered">
    Include `-i` in the curl request so the response headers are visible. A single request served by Boost looks like this:

    ```text theme={"dark"}
    x-cache: HIT
    x-edge-source: cache
    x-edge-billable: 1
    x-edge-duration-ms: 14
    x-edge-region: us-west-2
    ```

    `x-edge-billable` is the number of request items Boost served. The name predates Boost's free pricing; it is a count, not a charge.
  </Step>

  <Step title="Compare a forwarded request">
    Make a state read at `latest`, which remains with your provider:

    ```bash theme={"dark"}
    curl "https://edge.goldsky.com/boost/ethereum?key=YOUR_KEY" \
      -i -X POST \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","id":2,"method":"eth_getBalance","params":["0x0000000000000000000000000000000000000000","latest"]}'
    ```

    A forwarded response includes:

    ```text theme={"dark"}
    x-cache: MISS
    x-edge-source: endpoint
    x-edge-billable: 0
    ```
  </Step>
</Steps>

## Update an existing client

Change the transport URL. The rest of the client configuration stays the same.

<CodeGroup>
  ```typescript viem theme={"dark"}
  import { createPublicClient, http } from 'viem'
  import { mainnet } from 'viem/chains'

  const client = createPublicClient({
    chain: mainnet,
    transport: http('https://edge.goldsky.com/boost/ethereum?key=YOUR_KEY')
  })
  ```

  ```typescript ethers.js theme={"dark"}
  import { JsonRpcProvider } from 'ethers'

  const provider = new JsonRpcProvider(
    'https://edge.goldsky.com/boost/ethereum?key=YOUR_KEY'
  )
  ```

  ```typescript web3.js theme={"dark"}
  import Web3 from 'web3'

  const web3 = new Web3(
    'https://edge.goldsky.com/boost/ethereum?key=YOUR_KEY'
  )
  ```
</CodeGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Understand routing" icon="route" href="/boost/how-it-works" arrow>
    Check method eligibility, block-tag behavior, and batch semantics.
  </Card>

  <Card title="Measure your hit rate" icon="chart-no-axes-combined" href="/boost/observability" arrow>
    Turn response headers into an accurate avoided-upstream count.
  </Card>
</CardGroup>


## Related topics

- [Cut RPC costs with Boost](/boost.md)
- [CLI Reference](/reference/cli.md)
- [Build a Bitcoin price oracle](/compose/guides/build-a-bitcoin-oracle.md)
- [Build a compliance oracle](/compose/guides/build-a-compliance-oracle.md)
- [Build a corporate-actions distributor](/compose/guides/build-a-corporate-actions-distributor.md)
