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

# Boost reference

> Boost endpoint syntax, supported networks, billing behavior, and service limits.

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: 'arbitrum',
    label: 'Arbitrum One',
    chainId: '42161'
  }, {
    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: 'tempo',
    label: 'Tempo',
    chainId: '4217'
  }, {
    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>;
};

## Endpoint format

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

`{chain}` accepts a path name or chain ID and is case-insensitive. For example, `/boost/ethereum` and `/boost/1` are equivalent.

The key identifies your project's Boost. The chain must be enabled and have an active upstream in that project's configuration.

### Request options

| Option | Carrier | Effect |
| - | - | - |
| `cache-only=true` | Query parameter or `x-boost-cache-only` header | Serve from Goldsky data only. Calls that would forward return `-32099`. See [cache-only mode](/boost/how-it-works#cache-only-mode) |
| `skip-cache=true` | Query parameter or `x-boost-skip-cache` header | Forward without reading the cache. See [skip-cache](/boost/how-it-works#skip-cache) |

Write the value as exactly `true`; any other value leaves the option off. Unrecognized query parameters are ignored, so your own tracking parameters pass through harmlessly.

## gRPC endpoint

Boost serves the BDS [`bds.evm.RPCQueryService`](https://github.com/blockchain-data-standards/manifesto) natively, on the same host as JSON-RPC. Point a BDS client here to skip JSON encoding entirely.

```text theme={"dark"}
https://edge.goldsky.com/boost/{package.Service}/{Method}
```

The proto fixes the path, so addressing rides gRPC metadata:

| Metadata | Required | Value |
| - | - | - |
| `x-chain` | Yes | Network path name or chain ID, such as `ethereum` or `1` |
| `x-api-key` | Yes | Your Goldsky key. You can also pass `?key=` in the path, as on the JSON-RPC hop |
| `x-boost-cache-only` | No | `true` to serve from Goldsky data only |
| `x-boost-skip-cache` | No | `true` to forward without reading the cache |

Both protocols share one routing path, one set of eligible methods, and one usage record, so everything in [how Boost routes requests](/boost/how-it-works) applies to either. Responses differ only in shape:

* A method Boost answers returns the typed BDS message. Data that does not exist returns a successful response with the data field unset, matching the proto's "null if not found" convention.
* Errors arrive as gRPC statuses: `UNIMPLEMENTED` for an unsupported method, `INVALID_ARGUMENT` for a bad parameter, `RESOURCE_EXHAUSTED` for an oversized `eth_getLogs` range, and `NOT_FOUND` for a cache-only refusal.
* Structured errors carry `bds.common.ErrorDetails` in the status details, so a cache-only refusal carries `DATA_NOT_FOUND` and an oversized range carries `RANGE_TOO_LARGE`.
* The [observability headers](/boost/observability#response-headers) arrive as initial metadata under the same names.

## Supported networks

Boost offers networks whose indexed coverage starts at genesis. Networks with a later coverage floor are excluded so the same endpoint does not unpredictably serve recent history while forwarding older ranges.

<BoostNetworkData mode="table" />

The [dashboard](https://app.goldsky.com/dashboard/edge/boost) and `goldsky boost chains` command are the live sources for availability.

Goldsky indexes additional networks that Boost does not currently offer, including BNB Chain, Celo, Gnosis, Sei, Tron, and Abstract. Their indexed coverage begins above genesis.

## Billing

Boost is free to use. Goldsky does not charge for either served reads or forwarded requests. Forwarded calls still reach the RPC provider you pay separately.

Usage appears on invoices as zero-dollar line items for calls Boost served and requests it forwarded. For mixed batches, use `x-edge-billable` to count the individual items Boost served.

## Limits

* Every request needs a Goldsky `key`. A keyless request receives an [x402 payment challenge](/edge-rpc/capabilities/x402) from the shared edge rather than using Boost.
* The requested network must be enabled and have an active upstream in the project's Boost configuration.
* Upstream endpoints must be reachable over public HTTPS. Private, loopback, and link-local addresses are rejected.
* Boost supports JSON-RPC and BDS gRPC over HTTPS. There is no WebSocket endpoint; keep `eth_subscribe` and other subscriptions pointed at your provider.
* Batches can contain up to 100 items for per-item routing. Larger arrays are forwarded whole.
* Rate limits are Goldsky-managed. Boost endpoints use a Goldsky-set budget rather than a customer-configured rate-limit budget.
* Requests are unmetered within fair use. Contact Goldsky if you need a written volume commitment.

## Related reference

* [`goldsky boost` CLI commands](/reference/cli#boost)
* [Methods and routing behavior](/boost/how-it-works)
* [Cache-only mode](/boost/how-it-works#cache-only-mode)
* [Request and response headers](/boost/configuration#request-and-response-forwarding)
* [Observability headers and metrics](/boost/observability)


## Related topics

- [Troubleshoot Boost](/boost/troubleshooting.md)
- [Set up Boost](/boost/quickstart.md)
- [Measure Boost traffic](/boost/observability.md)
- [Cut RPC costs with Boost](/boost.md)
- [CLI Reference](/reference/cli.md)
