# FAQ

> Short answers to common questions about constant-k.

Source: https://docs.constant-k.com/get-started/faq/

## General

**What is constant-k?**

A private Solana RPC provider. It runs mainnet nodes on bare-metal servers in dedicated regions, and offers four products: [Solana RPC](https://docs.constant-k.com/rpc/), [Kaldera gRPC](https://docs.constant-k.com/kaldera/), [Turbo Kaldera](https://docs.constant-k.com/kaldera/turbo-kaldera/) and [ShredPrism](https://docs.constant-k.com/shredprism/).

**Which networks do you support?**

Solana mainnet only. Devnet and testnet are served by the public Solana endpoints.

**Where are your servers?**

In dedicated regions, each with its own hostnames. See [Endpoints](https://docs.constant-k.com/get-started/endpoints/).

**Can I use constant-k with Jupiter, a wallet or a trading bot?**

Yes. Anything that accepts a custom Solana RPC URL works, given the full endpoint URL with the key in the query string:

```text
https://rpc-newyork.constant-k.com/?api-key=YOUR_API_KEY
```

**How do I check whether the service is up?**

[RPC Status](https://www.constant-k.com/rpc-status/) shows live health for every region and lists scheduled downtime. [Benchmarks](https://www.constant-k.com/benchmarks/) shows live latency.

## Plans and billing

**Is there a free plan?**

Yes, for testing, with lower rate limits and a reduced method list. Paid plans offer a trial. See [Plans & Limits](https://docs.constant-k.com/get-started/plans-and-limits/).

**Will I pay extra if I use a lot?**

No. Plans have a flat price with no credits and no overage fees. Requests above your plan's rate limit are rejected, not billed. More requests per second come from a higher plan.

**Do limits apply per key or per IP address?**

Per API key. Changing IP address or switching to the staked send hostname does not give you more. Connection and stream limits are held by each region separately. See [Rate limits](https://docs.constant-k.com/get-started/plans-and-limits/#rate-limits).

**What happens when I go over a rate limit?**

The request comes back as HTTP `429` with JSON-RPC code `-32005`. The client has to back off on its own. See [Over the limit](https://docs.constant-k.com/get-started/plans-and-limits/#over-the-limit) and [Errors](https://docs.constant-k.com/rpc/errors/#gateway-errors).

**How do I pay with crypto?**

The Crypto option on the [pricing page](https://www.constant-k.com/pricing/) takes USDC. The QR code and the **Open in Wallet** button on the payment page activate the account automatically; copying the address and paying it directly does not. See [Trials and billing](https://docs.constant-k.com/get-started/plans-and-limits/#trials-and-billing).

**What happens to my remaining time when I upgrade?**

The higher plan starts at once. Time already paid for on the current plan is not lost.

| Payment method | Remaining time                                                                                                                          |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| Card           | Stripe pro-rates the change.                                                                                                            |
| Crypto         | The unused part of the current plan, valued at the price paid, is added as extra days to the new plan, valued at the price paid for it. |

Example with crypto: 15 days left of a 30-day month on a plan paid at $99 is worth $49.50. On a new plan paid at $299 for 30 days, that adds about 5 days.

Discounts count on both sides, because the credit uses the prices actually paid. Trial and free time carry no credit.

**Can I cancel?**

Yes, at any time. Your plan stays active until the end of the current billing period.

## Solana RPC

**Do you support batch requests?**

No. One JSON-RPC call per HTTP request. A JSON array comes back as HTTP `400` with `Batch requests are not supported`, even if the array holds a single call. Parallel requests, within your plan's limits, are the way to go faster.

**Which methods are not supported?**

Batch requests, `getLargestAccounts` and `sendBundle`. Some other methods are only on certain plans. See [Plans & Limits](https://docs.constant-k.com/get-started/plans-and-limits/).

**Can I call getTokenLargestAccounts?**

Yes, on Blade Runner (2 requests per second per key) and Nexus (30 per second per key), in every region. It returns the 20 largest token accounts of an SPL Token or Token-2022 mint and answers in a few milliseconds plus network time, even for mints with millions of holders. Free and Operator keys get `403`. See [getTokenLargestAccounts](https://docs.constant-k.com/rpc/http/gettokenlargestaccounts/) for parameters, ordering rules and errors.

**Can I call getProgramAccounts?**

On Blade Runner and Nexus, with at least one filter. Both plans also have `getProgramAccountsV2`, which is paginated. On other plans, `getTokenAccountsByOwner` and `getMultipleAccounts` cover known accounts, and [Kaldera](https://docs.constant-k.com/kaldera/filters/) streams accounts by owner. For the caps, see [Solana RPC methods](https://docs.constant-k.com/get-started/plans-and-limits/#solana-rpc-methods).

**How far back can getBlock go?**

On Blade Runner and Nexus tier plans, `getBlock` reaches every block since genesis. [Cube Runner](https://docs.constant-k.com/cube-runner/) retrieves a block from long-term storage when no cache, ledger or other region holds it. Retrieval runs at the [plan's rate](https://docs.constant-k.com/get-started/plans-and-limits/#cube-runner-limits), within a monthly allowance per API key in each region.

On Free and Operator tier plans, `getBlock` is served only from caches and the region's ledger. [`getFirstAvailableBlock`](https://docs.constant-k.com/rpc/http/getfirstavailableblock/) returns the oldest block from which every later block can be retrieved. Older blocks are still returned when a cache in any region holds them.

`getTransaction` and `getSignaturesForAddress` are not served by Cube Runner, so their history ends at the region's [ledger window](https://docs.constant-k.com/rpc/#transaction-history).

**Do you support Jito bundles?**

No. `sendBundle` is not supported. [`sendTransaction`](https://docs.constant-k.com/rpc/sending-transactions/) takes single transactions.

**What is the difference between network and staked sendTransaction?**

Both forward your transaction to upcoming leaders. The staked path uses stake-weighted quality of service (SWQoS), which gives traffic from staked validators priority access to the leader. The two paths have separate rate limits.

The staked path is selected by sending `sendTransaction` to `staked-rpc-<region>.constant-k.com`, on Operator and up. Nothing else changes. A send that cannot take the staked path is sent from the constant-k node instead of failing, and the `X-CK-Tx-Route` response header reports which path was used. See [Sending Transactions](https://docs.constant-k.com/rpc/sending-transactions/#staked-endpoints).

Both limits are a rate per second and are counted per region. Neither path has a monthly allowance. See [When a staked send falls back](https://docs.constant-k.com/rpc/sending-transactions/#when-a-staked-send-falls-back).

**My web3.js app cannot open subscriptions. Why?**

`@solana/web3.js` v1 builds its WebSocket URL from the HTTP URL. constant-k serves WebSockets on separate hostnames and port 1337, so `wsEndpoint` has to carry your WebSocket URL. WebSockets also need Operator or higher. See [WebSockets](https://docs.constant-k.com/rpc/websockets/).

If subscriptions work but an error appears every few seconds, that is the client's own `ping` message being refused. The connection stays open. See [Keepalives and ping](https://docs.constant-k.com/rpc/websockets/#keepalives).

## Streaming

**Kaldera, Turbo Kaldera or ShredPrism: which one do I need?**

* **Kaldera** streams executed accounts and transactions, with full metadata, filtered to what you ask for.
* **Turbo Kaldera** uses the same API and sends decoded pre-execution transactions.
* **ShredPrism** streams serialized entries, unfiltered.

See [Data Stages](https://docs.constant-k.com/get-started/data-stages/).

**Why is meta empty on Turbo Kaldera?**

Turbo Kaldera sends each transaction before the validator runs it. Fees, logs, balance changes and the success or error status do not exist yet. See [Turbo Kaldera](https://docs.constant-k.com/kaldera/turbo-kaldera/).

**What happens if my Kaldera client falls behind?**

Kaldera buffers your data, then drops the oldest queued updates so you stay on the newest data. Narrower filters, compression and a client closer to the node all reduce it. See [Kaldera gRPC limits](https://docs.constant-k.com/get-started/plans-and-limits/#kaldera-grpc-limits).

**I disconnected. Can I get the updates I missed?**

Yes, within the replay window. A reconnect with `fromSlot` set to the last slot you processed replays the gap. See [Replay](https://docs.constant-k.com/kaldera/replay/).

## Account

**How do I change my API key?**

The [My Account](https://www.constant-k.com/my-account/) page re-rolls it. See [Key rotation](https://docs.constant-k.com/get-started/authentication/#key-rotation).

**How do I get help?**

Tickets go to [Discord](https://discord.constant-k.com/); general questions to the [contact form](https://www.constant-k.com/contact-us/). See [Support](https://docs.constant-k.com/get-started/support/).
