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

# JSON-RPC providers

By default, the SDK uses public providers to make EVM read calls.

Many public providers are heavily throttled and are not suitable for high traffic.

For production use, we recommend setting up a custom JSON-RPC provider with your own API key.

Provide a mapping of chain IDs to full RPC URLs from your provider:

```ts {2-9} theme={null}
const rhinestone = new RhinestoneSDK({
  provider: {
    type: 'custom',
    urls: {
      1: 'https://my-rpc.example.com/eth',
      8453: 'https://my-rpc.example.com/base',
      42161: 'https://my-rpc.example.com/arb',
    },
  },
})
const rhinestoneAccount = await rhinestone.createAccount({
  owners: {
    type: 'ecdsa',
    accounts: [signer],
  },
})
```

<Note>
  The SDK does not construct provider-specific URLs from an API key. Include the
  API key in each URL when your provider requires one.
</Note>
