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

# Pay-as-you-go

> A prepaid USDC balance at $0.50 per GB: enabling it, topping up, alerts and running out.

## Enabling it

On **Billing**, choose **Use pay-as-you-go**. The project gets a pay-as-you-go balance and an API
key (shown once; copy it). Only owners and admins can manage billing.

![Pay-as-you-go billing: balance, low-balance alert and statement](https://mintcdn.com/my-company-7009db77/AEOzPZjunXHOKyLs/images/dashboard/billing-pay-as-you-go.png?fit=max\&auto=format\&n=AEOzPZjunXHOKyLs\&q=85\&s=c7e1acea16dff3b0656a7b628feafb71)

## Topping up

Top-ups are paid in **USDC** with [x402](https://www.x402.org), an open standard for payments over
HTTP. Choose an amount: **\$5, \$10, \$50, \$100 or \$500**.

1. On **Billing**, click **Top up with USDC**.
2. Pick an amount and a network: **Base, Arbitrum, Polygon, Avalanche, Sei or X Layer**. The
   USDC must be on that network.
3. Connect a browser wallet (MetaMask, Rabby, Coinbase Wallet or any other installed extension
   wallet). If it's on another network, it asks to switch.
4. The wallet asks you to sign a USDC transfer authorization. Signing moves nothing yet.
5. Bloklake settles the payment on-chain and pays the gas; the balance is credited once it
   settles, usually within seconds.

The signed authorization expires after 10 minutes if it isn't settled.

![The top-up page with amount presets and networks](https://mintcdn.com/my-company-7009db77/AEOzPZjunXHOKyLs/images/dashboard/top-up.png?fit=max\&auto=format\&n=AEOzPZjunXHOKyLs\&q=85\&s=7ff5d7ef151b3c5a43479d28612eff06)

Each top-up gets a [receipt](https://docs.bloklake.com/billing/statements-and-receipts.md) with the transaction hash.

## How the balance is used

* The cost of each response (its bytes × \$0.50/GB, at least 10 KB) is deducted when it finishes.
* The dashboard shows the balance and an estimate of how many GB it buys.
* `GET /v1/account` returns the live balance as `balance_micro` (millionths of a dollar).

## Low-balance alert

Set a threshold on **Billing** (default \$1). When the balance drops below it, the project's admins
get an email. Top up before it reaches zero to avoid interruptions.

## When the balance runs out

* A response that's already running completes, and its cost is deducted.
* Every following request gets `402 balance_exhausted`, with a link to your top-up page in the
  message. Refused requests are free.
* Requests work again as soon as a top-up settles. Nothing else is needed: no new key, no restart.

```json theme={null}
{"error": {"code": "balance_exhausted", "message": "your pay-as-you-go balance is used up; top it up at https://dashboard.bloklake.com/projects/…/pay and retry"}}
```

> [!TIP]
>
> Don't retry `402` in a loop: it won't succeed until someone tops up. Alert a human, and check
> `balance_micro` from `GET /v1/account` (free) before starting a large job.

## Limits

* **1 request per second** per key, across all chains, with 1 request open at once per chain.
  Backfills are usually limited by this rather than by the data. If you need more, use Standard
  (10 per second).
* A project on pay-as-you-go can't also have a subscription. See
  [switching](https://docs.bloklake.com/billing/subscriptions.md#switching-from-pay-as-you-go).

## Deleting a project or account

Deleting the project (or the account that owns a personal project) **forfeits** its remaining
balance. Move work to another project first if you want to keep using it.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.