# Neler faturalandırılmaz: hata kodları ve faturalandırma kuralları

> Source: https://docs.blockvectra.com/tr/guides/billing-rules/

BlockVectra, istekleri Compute Units (CU) cinsinden ölçer. JSON-RPC ve Data API çağrıları yalnızca bir yanıt alındıktan sonra faturalandırılır. Bu rehber, HTTP durum kodları, JSON-RPC çağrıları ve Data API genelindeki faturalandırma belirleme kurallarını geliştiriciler için önerilen eylemlerle birlikte özetler.

## HTTP durum kodları ve faturalandırma kuralları

HTTP düzeyindeki yanıtlar için faturalandırma belirleme ve işleme kuralları aşağıdaki gibidir:

| HTTP Durumu | Yanıt Gövdesi                                                                                                                               | Senaryo                                                                                                                                                                                                                                                                   | Faturalandırılır mı?                                                                              | Önerilen Eylem                                                                                                                                                                                                                                                                                              |
| ----------: | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|         200 | JSON-RPC yanıtı (tek veya toplu)                                                                                                            | Normal yanıt; tüm JSON-RPC katmanı hataları da (ayrıştırma hatası, yöntem reddi, üst kaynak hatası, düğüm hatası) 200'dür                                                                                                                                                 | Çağrı başına değerlendirilir                                                                      | Her çağrı için `result` veya `error` alanını inceleyin; bir hata döndürülürse aşağıdaki JSON-RPC hata işlemeye bakın                                                                                                                                                                                        |
|         204 | Boş                                                                                                                                         | İstekteki tüm çağrılar bildirimdir (notification)                                                                                                                                                                                                                         | Bildirimler normal şekilde faturalandırılır                                                       | Ek bir eylem gerekmez                                                                                                                                                                                                                                                                                       |
|         400 | Boş                                                                                                                                         | Hatalı biçimlendirilmiş HTTP mesajı (istek satırı veya başlıklar ayrıştırılamıyor, geçersiz parçalı kodlama) veya istek gövdesinin iki okunması arasında 10 saniyeden fazla süre geçmesi                                                                                  | Hayır                                                                                             | HTTP istek sözdizimini, başlıkları ve aktarım sürekliliğini kontrol edin                                                                                                                                                                                                                                    |
|         402 | JSON, `-32020`                                                                                                                              | Yetersiz bakiye, kullanım hakkı tükendi; bakiye bilindiğinde `error.data` alanı `balance_units` ve `balance_cu` içerir                                                                                                                                                    | Hayır                                                                                             | Bakiyenizi konsol [faturalandırma sayfasında](https://console.blockvectra.com/billing/) veya `GET /v1/topup/deposit-address` (MCP `get_deposit_address`) aracılığıyla kontrol edin; hesabınızın özel adresine zincir üstünde bakiye yükleyin (bkz. [Agent bakiye yükleme rehberi](https://docs.blockvectra.com/en/guides/agent-topup/)) |
|         403 | Boş                                                                                                                                         | `/v1/{chain}` veya `/v1/{chain}/{api_key}` üzerinde `POST` veya `OPTIONS` dışındaki yöntemler (zincir adının bilinip bilinmediğine bakılmaksızın)                                                                                                                         | Hayır                                                                                             | HTTP istek yöntemini `POST` (veya çapraz kaynak `OPTIONS` ön kontrolü) olarak değiştirin                                                                                                                                                                                                                    |
|         401 | JSON, `-32024` (`missing_api_key` veya `invalid_api_key`)                                                                                   | Bilinen zincirde eksik anahtar, anahtar bilinmiyor veya devre dışı                                                                                                                                                                                                        | Hayır                                                                                             | `x-api-key` başlığında aktif bir API key sağlayın (yeni oluşturulan veya döndürülen anahtarların yürürlüğe girmesi birkaç saniye sürer; biraz bekleyip yeniden deneyin)                                                                                                                                     |
|         404 | JSON, `-32600` (`reason = unknown_chain`)                                                                                                   | Bilinmeyen bir `{chain}` için `POST`                                                                                                                                                                                                                                      | Hayır                                                                                             | URL'deki zincir adını [Desteklenen Zincirler](https://docs.blockvectra.com/en/chains/) listesiyle karşılaştırın (tam olarak küçük harfli slug olmalıdır)                                                                                                                                                                                |
|         404 | boş gövde                                                                                                                                   | Eşleşmeyen yol (örn. `POST /v1`, `/v1/`, `POST /v1/{chain}/`)                                                                                                                                                                                                             | Hayır                                                                                             | Zinciri URL'ye dahil edin (`/v1/{chain}`)                                                                                                                                                                                                                                                                   |
|         408 | Boş                                                                                                                                         | İstek başlıklarının okunmasından yanıtın dönülmesine kadar 35 saniyenin aşılması                                                                                                                                                                                          | **Olası**: düğüme iletilmiş olan çağrılar, düğüm yanıt verdiğinde normal şekilde faturalandırılır | Durum değiştiren çağrıları (örn. `eth_sendRawTransaction`) koşulsuz olarak yeniden denemeyin; istemci bağlantısının kesilmesi önceden iletilmiş çağrıları iptal etmez                                                                                                                                       |
|         413 | Boş                                                                                                                                         | İstek gövdesi > 2 MiB (2.097.152 bayt)                                                                                                                                                                                                                                    | Hayır                                                                                             | İstek gövdesini 2 MiB altında tutun; toplu işlemleri daha küçük isteklere bölün                                                                                                                                                                                                                             |
|   414 / 431 | Boş                                                                                                                                         | URI çok uzun (414) veya istek başlıkları çok büyük (431)                                                                                                                                                                                                                  | Hayır                                                                                             | İstek URI'sini kısaltın veya HTTP istek başlıklarını kırpın                                                                                                                                                                                                                                                 |
|         429 | JSON, `-32005` veya `-32022`; hız limitleri (`-32005`) için `Retry-After` taşır; burst/toplu işlem boyutu limitleri (`-32022`) bunu taşımaz | Havuz bakiyesi tükendi → `-32005`; tek istek CU'su burst kapasitesini aşıyor → `-32022`; hesap çağrı hızı sınırı tükendi → `-32005`; tek istekteki çağrılar sınırı aşıyor → `-32022`                                                                                      | Hayır                                                                                             | `Retry-After` içeren `-32005` için yeniden denemeden önce belirtilen saniye kadar bekleyin; `-32022` için isteği bölün veya toplu işlem boyutunu azaltın (olduğu gibi yeniden denemek asla başarılı olmaz)                                                                                                  |
|         503 | JSON, `-32021`, `Retry-After` ile                                                                                                           | Faturalandırma verileri geçici olarak kullanılamıyor; sunucu isteği geçici olarak reddediyor (bakiye sorunu değildir, bakiye yüklemeye gerek yoktur); yeni oluşturulan anahtarlar faturalandırma verileri senkronize olana kadar (genellikle birkaç saniye) bunu döndürür | Hayır                                                                                             | Bir bakiye sorunu değildir, bakiye yüklemeye gerek yoktur; `Retry-After` içinde belirtilen saniye kadar bekleyip yeniden deneyin                                                                                                                                                                            |

> Not: Cloudflare üzerinden erişildiğinde, Cloudflare 52x veya 1015 hata sayfaları döndürebilir; bunlar hizmet tarafından üretilmez.

> **Ücret ve bakiye yanıt başlıkları**: HTTP isteklerinde (hem JSON-RPC hem de Data API için geçerlidir) `x-bv-meter: 1` gönderildiğinde, en az bir çağrıyı faturalandıran bir yanıt `x-bv-cu-charged` (bu istek için faturalandırılan Compute Units veya bir toplu işlemin faturalandırılan çağrıları genelindeki toplam) ve `x-bv-balance-units` (bu ücretten hemen sonra hesabın kalan bakiye birimleri, eksiye düşüldüğünde negatiftir; bakiye bilinmiyorsa atlanır) döndürür. `x-bv-meter: 1` olmayan istekler, hiçbir şeyin faturalandırılmadığı yanıtlar ve 402, 403, 429 veya 503 hata yanıtları her iki başlığı da atlar. Bu yanıt başlıklarına CORS aracılığıyla tarayıcı betikleri tarafından erişilebilir; WebSocket bunları kullanmaz. Bakiye, tam birimlere bir kez yukarı yuvarlanan toplam tahakkuk etmemiş kullanımı çıkarır; saatlik tahakkuk aşağı yuvarlar, bu nedenle bildirilen bakiye tahakkuktan sonra bir birime kadar artabilir.

## JSON-RPC hata kodları ve faturalandırma kuralları

Aynı hata kodu platformdan veya düğümden kaynaklanabilir ve **faturalandırma farklılık gösterir**:

* **Platformun kendisi tarafından oluşturulan hatalar**: asla faturalandırılmaz;
* **Düğüm tarafından döndürülen hatalar**: olduğu gibi iletilir ve yöntem ağırlığından faturalandırılır; yalnızca aşağıda listelenen düğüm hata kodları istisnadır.

### Kural ayrıntıları

* **Faturalandırılmayan düğüm hataları**: Düğümün `-32002` (toplu işlem zaman aşımı), `-32003` (toplu işlem yanıtı çok büyük) ve `-32600` (toplu işlem bir bütün olarak reddedildi) kodları, düğümün çağrıyı erkenden terk ettiğini gösterir; bunlar ve aynı toplu işlemdeki tüm bildirimler faturalandırılmaz. Düğümün `-32601` (açık yöntem uygulanmadı) ve `-32603` (düğüm dahili arızası) kodları HTTP veya WebSocket üzerinden faturalandırılmaz ve toplu işlemdeki diğer çağrıları veya bildirimleri etkilemez. Ayrıca `4444` (budanmış blok) ve `-32000` (düğümün `GET /v1/chains` içindeki `state_window_blocks` ile tanımlanan durum geçmişi penceresinin dışındaki geçmiş durum) faturalandırılmaz ve toplu işlemdeki diğer çağrıları etkilemez.
* **Faturalandırılan düğüm hataları**: Düğüm tarafından döndürülen diğer hatalar, zincirin sonucunu bildirdiklerinde yöntem ağırlığından faturalandırılır; örneğin `execution reverted` (`-32000` veya `data` ile `3`), düğümün kendi `-32602 invalid argument` hatası.
* **Bakiye kabulü ve senkronizasyonu**: `-32020` yetersiz hesap bakiyesini gösterir ve bakiye yüklemesi gerektirir; bakiye bilindiğinde `error.data.balance_units` ve `error.data.balance_cu` kalan miktarı taşır (negatif olabilir). Yeni oluşturulmuş bir anahtar birkaç saniye boyunca `-32021` (503) döndürebilir; `Retry-After` süresince bekleyip yeniden deneyin.
* **Üst kaynak arızaları**: Üst kaynak iletişim arızası veya hatalı biçimlendirilmiş yanıt (`upstream unavailable`, `no response from upstream`, `malformed upstream response`) nedeniyle platform tarafından oluşturulan bir `-32603`, `data.reason: upstream_unavailable` taşır.
* **Bildirim faturalandırması**: Bildirimler (204) kendi yöntem ağırlıklarından faturalandırılır.

### JSON-RPC hata kodları tablosu

|    Kod | Kaynak      | HTTP | Mesaj                                                                          | Neden                                                                                                             | Faturalandırılır mı?                  | Önerilen Eylem                                                                                                                                                                                                                                                                                              |
| -----: | ----------- | ---: | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -32700 | BlockVectra |  200 | `parse error`                                                                  | -                                                                                                                 | Hayır (1 CU hız sınırı tokenı harcar) | İstek JSON sözdizimini düzeltin                                                                                                                                                                                                                                                                             |
| -32600 | BlockVectra |  200 | `invalid request`                                                              | `invalid_request`                                                                                                 | Hayır (1 CU hız sınırı tokenı harcar) | JSON-RPC istek sözdizimini ve yapısını düzeltin                                                                                                                                                                                                                                                             |
| -32600 | BlockVectra |  200 | `batch too large: max <N> calls`                                               | `batch_too_large` (+max)                                                                                          | Hayır                                 | Toplu işlemi sınırın altındaki çağrılara bölün (standart toplu işlem sınırı 100'dür)                                                                                                                                                                                                                        |
| -32600 | BlockVectra |  200 | `invalid request: ambiguous member name`                                       | `invalid_request`                                                                                                 | Hayır                                 | JSON nesnelerindeki yinelenen veya belirsiz üye adlarını kaldırın                                                                                                                                                                                                                                           |
| -32601 | BlockVectra |  200 | `method not available: <method>`                                               | -                                                                                                                 | Hayır                                 | Yalnızca bu zincir için izin verilen yöntemleri çağırın (bkz. [Desteklenen Zincirler](https://docs.blockvectra.com/en/chains/))                                                                                                                                                                                                         |
| -32600 | BlockVectra |  404 | `unknown chain`                                                                | `unknown_chain`                                                                                                   | Hayır                                 | URL'deki zincir adını kontrol edin                                                                                                                                                                                                                                                                          |
| -32602 | BlockVectra |  200 | `eth_getLogs block range too large: max <N> blocks`                            | -                                                                                                                 | Hayır                                 | `eth_getLogs` blok aralığını daraltın (sınır zincir başına tanımlanır, örneğin 1000 blok)                                                                                                                                                                                                                   |
| -32602 | BlockVectra |  200 | `tracer not allowed`                                                           | -                                                                                                                 | Hayır                                 | İzin verilen bir yerel tracer kullanın (`callTracer`, `flatCallTracer`, `prestateTracer`, `4byteTracer`, `noopTracer` veya boş bırakın)                                                                                                                                                                     |
| -32602 | BlockVectra |  200 | `trace timeout not allowed`                                                    | -                                                                                                                 | Hayır                                 | Zaman aşımı ≤ 30s olan geçerli bir Go süre dizesi ayarlayın                                                                                                                                                                                                                                                 |
| -32010 | BlockVectra |  200 | `node is syncing; calls are temporarily unavailable`                           | -                                                                                                                 | Hayır                                 | Düğüm senkronize ediliyor, daha sonra tekrar deneyin (`eth_chainId` hariç)                                                                                                                                                                                                                                  |
| -32011 | BlockVectra |  200 | `historical state is not available beyond the most recent <N> blocks`          | -                                                                                                                 | Hayır                                 | Daha yeni bir bloğu sorgulayın (hedef blok durum penceresi içinde olmalıdır; safe/finalized/earliest etiketlerinden kaçının)                                                                                                                                                                                |
| -32000 | BlockVectra |  200 | `transaction not found`                                                        | `not_found`                                                                                                       | Hayır                                 | İşlem karmasını doğrulayın (`0x` + 64 onaltılık karakter)                                                                                                                                                                                                                                                   |
| -32000 | BlockVectra |  200 | `block not found`                                                              | `not_found`                                                                                                       | Hayır                                 | Blok karmasını veya numarasını doğrulayın                                                                                                                                                                                                                                                                   |
| -32000 | BlockVectra |  200 | `upstream response too large`                                                  | `response_too_large`                                                                                              | Hayır                                 | Sorgu kapsamını daraltın veya istekleri bölün                                                                                                                                                                                                                                                               |
| -32005 | BlockVectra |  200 | -                                                                              | `overloaded`                                                                                                      | Hayır                                 | Sunucu geçici olarak aşırı yüklendi, daha sonra tekrar deneyin                                                                                                                                                                                                                                              |
| -32005 | BlockVectra |  429 | `rate limit exceeded`                                                          | `key_rate_limit` / `free_plan_call_limit` / `concurrency_limit`                                                   | Hayır                                 | İstek sıklığını azaltın; varsa `Retry-After` değerine uyun                                                                                                                                                                                                                                                  |
| -32022 | BlockVectra |  429 | `request cost <N> CU exceeds burst capacity <M> CU`                            | `request_exceeds_burst`                                                                                           | Hayır                                 | İsteği veya toplu işlemi, tek istek CU'su burst kapasitesinin altında kalacak şekilde bölün                                                                                                                                                                                                                 |
| -32022 | BlockVectra |  429 | `request has <N> calls, exceeding the free-plan limit of <M> calls per second` | `free_plan_batch_too_large` (+max)                                                                                | Hayır                                 | Toplu işlemi saniye başına sınırın altına sığacak şekilde bölün veya ücretli bir plana yükseltin                                                                                                                                                                                                            |
| -32603 | BlockVectra |  200 | `upstream unavailable`                                                         | `upstream_unavailable`                                                                                            | Hayır                                 | Üst kaynak iletişim hatası, daha sonra tekrar deneyin                                                                                                                                                                                                                                                       |
| -32603 | BlockVectra |  200 | `no response from upstream`                                                    | `upstream_unavailable`                                                                                            | Hayır                                 | Üst kaynak yanıt vermedi, daha sonra tekrar deneyin                                                                                                                                                                                                                                                         |
| -32603 | BlockVectra |  200 | `malformed upstream response`                                                  | `upstream_unavailable`                                                                                            | Hayır                                 | Üst kaynak yanıtı hatalı biçimlendirilmiş, daha sonra tekrar deneyin                                                                                                                                                                                                                                        |
| -32603 | BlockVectra |  200 | -                                                                              | -                                                                                                                 | Hayır                                 | Nadir dahili hata, daha sonra tekrar deneyin                                                                                                                                                                                                                                                                |
| -32020 | BlockVectra |  402 | `insufficient balance`                                                         | `balance_exhausted` / `free_grant_exhausted` (+topup\_url ve bakiye bilindiğinde +`balance_units` / `balance_cu`) | Hayır                                 | Bakiyenizi konsol [Faturalandırma sayfasında](https://console.blockvectra.com/billing/) veya `GET /v1/topup/deposit-address` (MCP `get_deposit_address`) aracılığıyla kontrol edin; hesabınızın özel adresine zincir üstünde bakiye yükleyin (bkz. [Agent bakiye yükleme rehberi](https://docs.blockvectra.com/en/guides/agent-topup/)) |
| -32021 | BlockVectra |  503 | `billing data temporarily unavailable`                                         | -                                                                                                                 | Hayır                                 | Faturalandırma verileri senkronize ediliyor (bakiye sorunu değildir); `Retry-After` saniyesi kadar bekleyip yeniden deneyin                                                                                                                                                                                 |
|   4444 | Node        |  200 | `pruned history unavailable`                                                   | -                                                                                                                 | Hayır                                 | İstenen blok düğüm tarafından budandı; faturalandırılmaz; toplu işlemi etkilemez                                                                                                                                                                                                                            |
| -32000 | Node        |  200 | `historical state ... is not available`                                        | -                                                                                                                 | Hayır                                 | Düğüm durum geçmişi penceresinin dışında; faturalandırılmaz; toplu işlemi etkilemez                                                                                                                                                                                                                         |
| -32000 | Node        |  200 | `old data not available due to pruning...`                                     | -                                                                                                                 | Hayır                                 | Düğüm geçmiş penceresinin dışında (pencere `state_window_blocks` ile belirlenir); faturalandırılmaz; toplu işlemi etkilemez                                                                                                                                                                                 |
| -32002 | Node        |  200 | `<node message>`                                                               | -                                                                                                                 | Hayır                                 | Düğüm toplu işlemde zaman aşımına uğradı ve çağrıyı terk etti; faturalandırılmaz; toplu işlemdeki bildirimler de faturalandırılmaz                                                                                                                                                                          |
| -32003 | Node        |  200 | `<node message>`                                                               | -                                                                                                                 | Hayır                                 | Düğüm toplu işlem yanıtı çok büyük ve terk edildi; faturalandırılmaz; toplu işlemdeki bildirimler de faturalandırılmaz                                                                                                                                                                                      |
| -32601 | Node        |  200 | `<node message>`                                                               | -                                                                                                                 | Hayır                                 | Açık yöntem düğüm tarafından uygulanmadı; desteklenen başka bir yöntem kullanın                                                                                                                                                                                                                             |
| -32603 | Node        |  200 | `<node message>`                                                               | -                                                                                                                 | Hayır                                 | Düğüm dahili arızası; geri çekilme ile yeniden deneyin                                                                                                                                                                                                                                                      |
| -32600 | Node        |  200 | `<node message>`                                                               | -                                                                                                                 | Hayır                                 | Tüm toplu işlem düğüm tarafından reddedildi; faturalandırılmaz; toplu işlemdeki bildirimler de faturalandırılmaz                                                                                                                                                                                            |
|  Diğer | Node        |  200 | `<node message>`                                                               | -                                                                                                                 | **Evet** (yöntem ağırlığı)            | Zincir sonucu (örn. `execution reverted`, düğüm `-32602`); sözleşme çağrı parametrelerini kontrol edin                                                                                                                                                                                                      |

## Data API faturalandırma kuralları

Data API, salt okunur zincir verilerini REST uç noktalarına sarar. Faturalandırması ve hata işlemesi şu kuralları izler:

### Kural ayrıntıları

* Yalnızca 2xx başarılı yanıtlar faturalandırılır.
* Kapsam dışındaki kullanılamayan işlemler (desteklenmeyen zincirler veya trace kapsamı dışındaki bloklar gibi), faturalandırılmayan ancak hız limitlerine sayılan HTTP 422 `no_coverage` döndürür.
* HTTP 401, 402, 404 ve 429 yanıtları faturalandırılmaz. Yanıt başlıkları (`x-bv-meter: 1`) için bkz. [HTTP durum kodları ve faturalandırma kuralları](#http-status-codes-and-billing-rules).

### Data API durum kodları tablosu

| HTTP Durumu | Hata Kodu / Senaryo                                                                                                                                               | Faturalandırılır mı?                   | Önerilen Eylem                                                                                                                                                                                                                                                                                              |
| ----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|         200 | Başarılı veri yanıtı                                                                                                                                              | **Evet** (Data API işlemi CU ağırlığı) | Yanıt zarfındaki `data`, `meta` ve `next_cursor` alanlarını ayrıştırın                                                                                                                                                                                                                                      |
|         400 | İstek parametreleri hatalı biçimlendirilmiş veya zorunlu alanlar eksik                                                                                            | Hayır                                  | Sorgu veya gövde parametrelerini kontrol edin ve düzeltin                                                                                                                                                                                                                                                   |
|         402 | Bakiye tükendi (`error.code: "insufficient_balance"`, bakiye bilindiğinde `balance_units` ve `balance_cu` içerir)                                                 | Hayır                                  | Bakiyenizi konsol [faturalandırma sayfasında](https://console.blockvectra.com/billing/) veya `GET /v1/topup/deposit-address` (MCP `get_deposit_address`) aracılığıyla kontrol edin; hesabınızın özel adresine zincir üstünde bakiye yükleyin (bkz. [Agent bakiye yükleme rehberi](https://docs.blockvectra.com/en/guides/agent-topup/)) |
|         401 | API key eksik, bilinmiyor veya devre dışı (`error.code: "missing_api_key"` veya `"invalid_api_key"`)                                                              | Hayır                                  | `x-api-key` başlığında aktif bir API key iletin                                                                                                                                                                                                                                                             |
|         404 | Bilinmeyen veya herkese açık olmayan zincir (`error.code: "not_found"`) veya istenen nesne mevcut değil                                                           | Hayır                                  | URL'deki zincir slug'ını (tam olarak küçük harfli olmalıdır) ve istek yolunu kontrol edin                                                                                                                                                                                                                   |
|         409 | İstenen blok veya pencere mevcut indekslenen yüksekliğin üzerinde (`error.code: "not_indexed_yet"`, `indexed_through` içerir)                                     | Hayır                                  | `indexed_through` değerine kadar olan blokları sorgulayın veya daha sonra tekrar deneyin                                                                                                                                                                                                                    |
|         422 | Zincire özel işlem kullanılamıyor (örn. desteklenmeyen zincir veya trace kapsamı dışında, `error.code: "no_coverage"`)                                            | Hayır (hız limitlerine sayılır)        | `GET /v1/status` aracılığıyla desteklenen özellikleri kontrol edin (ücretsiz, anahtarsız `data_features`)                                                                                                                                                                                                   |
|         429 | Hız sınırı aşıldı (`error.code: "rate_limited"`) veya tek bir istek anahtarın burst kapasitesinden daha fazlasına mal oluyor (`error.code: "cost_exceeds_burst"`) | Hayır                                  | İstek sıklığını azaltın; aşırı büyük istekleri bölün (burst kapasitesini aşan bir istek gönderildiği şekliyle asla başarılı olamaz)                                                                                                                                                                         |
|         503 | Veri hizmeti geçici olarak kullanılamıyor (`error.code: "unavailable"`) veya zincir meşgul (`error.code: "gateway_overloaded"`)                                   | Hayır                                  | Daha sonra tekrar deneyin ve varsa `Retry-After` değerine uyun                                                                                                                                                                                                                                              |

## Bakiye sorgulama (`GET /v1/account`)

Bir API key sahibi, herhangi bir faturalandırma oluşturmadan veya Compute Units (CU) düşürmeden bakiye ve anahtar kotası ayrıntılarını doğrudan kontrol edebilir:

```bash
curl -H "x-api-key: $BLOCKVECTRA_API_KEY" https://api.blockvectra.com/v1/account
```

* **Ücretsiz ve faturalandırılmaz**: `GET /v1/account` ücretsizdir. Asla faturalandırılmaz, CU düşürmez ve sıfır veya negatif olsa bile geçerli bakiye ile HTTP 200 döndürür (asla 402 döndürmez).
* **Kimlik doğrulama**: Anahtar kimlik doğrulaması yalnızca `x-api-key` başlığını kullanır (yol anahtarları ve Bearer token'ları kabul edilmez). Eksik başlık 401 `missing_api_key`; geçersiz veya iptal edilmiş anahtarlar 401 `invalid_api_key` döndürür. (Süresi dolmuş anahtarlar 403 `key_expired`; geçici hizmet kullanılamama durumları `Retry-After` ile birlikte 503 `auth_unavailable` veya `billing_unavailable` döndürür.)
* **Hız sınırlaması**: CU ölçümünden ve faturalandırmasından bağımsız olarak, anahtar kimliği başına saniyede 5 istek şeklinde bağımsız bir sınıra sahiptir. Sınırın aşılması, `Retry-After` başlığı ile birlikte HTTP 429 `rate_limited` döndürür.

Yanıt alanları:

* `key_id`: API key'in tanımlayıcı dizesi.
* `plan`: Hesap planı türü (hesabın ücretsiz plan çağrı hızı hakkı olduğunda `free`; aksi takdirde `paid`).
* `balance_units`: Birim cinsinden kalan hesap bakiyesi (sıfır veya negatif olabilir).
* `balance_cu`: Compute Units (CU) cinsine dönüştürülmüş kalan bakiye.
* `balance_as_of_age_ms`: Bakiyenin veri kaynağından okunmasından bu yana geçen milisaniye.
* `key`: Anahtara özel limitler ve kota ayrıntıları:
  * `cu_per_sec`: Saniyede CU cinsinden token havuzu yenileme hızı.
  * `burst_cu`: CU cinsinden token havuzu burst kapasitesi.
  * `cu_cap`: Bu anahtar için ömür boyu CU üst sınırı veya sınırsızsa `null`.
  * `cu_cap_remaining`: `cu_cap` kapsamında kalan CU veya sınırsızsa `null` (sıfır veya negatif olabilir).
  * `expires_at`: RFC 3339 sona erme zaman damgası veya anahtarın süresi asla dolmuyorsa `null`.

Örnek yanıt:

```json
{
  "key_id": "<key_id>",
  "plan": "<plan>",
  "balance_units": <integer>,
  "balance_cu": <integer>,
  "balance_as_of_age_ms": <integer>,
  "key": {
    "cu_per_sec": <integer>,
    "burst_cu": <integer>,
    "cu_cap": <integer_or_null>,
    "cu_cap_remaining": <integer_or_null>,
    "expires_at": "<expires_at_or_null>"
  }
}
```

## Fiyatlandırma ve yükseltmeler

Faturalandırılan tüm çağrıların spesifik maliyeti, yayınlanan CU ağırlıkları tarafından belirlenir:

* Tüm yöntemlerin ve işlemlerin ağırlıklarını incelemek için [yöntem ağırlık tablosuna](https://blockvectra.com/tr/pricing/) ve [JSON-RPC CU Ölçüm Kuralları'na](https://docs.blockvectra.com/en/api/json-rpc/#cu-metering-rules) bakın.
* Plan fiyatlandırması ve tahakkuk ayrıntıları için [Fiyatlandırma sayfasına](https://blockvectra.com/tr/pricing/) bakın.
* Ücretli bir plana yükseltme: ücretli bir bakiye yüklemesi yapmak, Ücretsiz Planın saniye başına çağrı sınırını kaldırır; her anahtar CU hız ve burst limitlerine tabi kalmaya devam eder.

### Zincir Üstü Bakiye Yükleme Süreci

Hesap bakiyeniz yetersiz olduğunda veya daha yüksek verimliliğe ihtiyaç duyduğunuzda, konsolda aşağıdaki adımları izleyerek zincir üstünde bakiye yükleyin:

1. **Konsolda Oturum Açın**: [BlockVectra Konsolu](https://console.blockvectra.com/login/?next=%2Fbilling%2F)'nda oturum açın.
2. **Faturalandırma Sayfasına Gidin**: [Faturalandırma sayfasına](https://console.blockvectra.com/billing/) gidin.
3. **Özel Adresinizi Alın**: Zincir üstü yükleme kartında hesabınızın özel bakiye yükleme adresini kopyalayın veya QR kodunu tarayın.
4. **Fon Transfer Edin**: Yalnızca sayfada listelenen desteklenen ağları ve USDC / USDT / USDG kullanarak transfer yapın. Desteklenen ağlar ve minimum yükleme tutarları konsolda gösterilir.
5. **Otomatik Kredi Yükleme**: Zincir üstünde tespit edildiğinde işlemler "Processing" olarak görünür; kredilendirildikten sonra krediler bakiyenize otomatik olarak eklenir.

> **Önemli Notlar**:
>
> * Yalnızca konsolda açıkça listelenen ağları ve token'ları kullanın. Desteklenmeyen zincirlerdeki veya yanlış token'larla yapılan transferler otomatik olarak hesaba aktarılamaz.
> * Her transferin konsolda belirtilen minimum yükleme tutarını karşıladığından emin olun.
> * İlk ücretli bakiye yüklemeniz hesaba aktarıldığında hesabınız ücretli bir hesaba yükseltilir ve Ücretsiz Planın saniye başına çağrı sınırı kaldırılır.

Agent veya sunucu programları, bir API key kullanarak bakiye yükleme uç noktalarını doğrudan çağırabilir; bkz. [Agent programatik bakiye yükleme rehberi](https://docs.blockvectra.com/en/guides/agent-topup/).

## Webhook push faturalandırması

Push bildirimlerinin iletilen veri olayları, başarılı geçmiş sorguları ve faturalandırılabilir adres-günler için ayrı ağırlıkları vardır. Olay geçmişi dışındaki yönetim çağrıları, başarısız teslimat denemeleri, otomatik yeniden denemeler ve kontrol olayları ücretsizdir. Teslim edilen her olay bir kez ücretlendirilir; müşteri tarafından yeniden oynatma ve bir reorg sonrasında yeniden teslim edilen kurallı olaylar yeni faturalandırılan teslimatlardır. Adres ücretleri, her aboneliğin UTC günü boyunca çevrimiçi olduğu süredeki maksimum adres sayısını kullanır; hesaptaki ücretsiz adres hakkı abonelikler arasında paylaşılır ve daha eski abonelikler bunu önce kullanır. İki abonelikte yer alan bir adres iki kez sayılır; zincir eklemek olay ücretlerini değiştirir, adres ücretlerini değiştirmez.

Kurulum, [imza doğrulama](https://docs.blockvectra.com/en/guides/webhook-push/#verify-signatures) ve [teslimat kurtarma](https://docs.blockvectra.com/en/guides/webhook-push/#delivery-retries-and-replay) için [Blokzincir Webhook API rehberine](https://docs.blockvectra.com/en/guides/webhook-push/) bakın. [Stabil kripto para ödeme rehberi](https://docs.blockvectra.com/en/guides/stablecoin-payments/), makbuz doğrulama ve yoklama ile geriye dönük doldurmayı kapsar; [WebSocket abonelikleri](https://docs.blockvectra.com/en/guides/websocket-subscriptions/) kendi bağlantı ve bildirim ölçümünü kullanır. İstek hataları [hata referansında](https://docs.blockvectra.com/en/errors/) listelenmiştir. Aşağıdaki ağırlıklar `GET /v1/plans` üzerinden gelir.

| Kullanım | Faturalandırma birimi | CU |
| --- | --- | --- |
| `push.address_day` | Faturalandırılabilir adres-gün | 33 |
| `push.history` | Başarılı geçmiş isteği | 25 |
| `push.log` | Teslim edilen veri olayı | 150 |
| `push.native_transfer` | Teslim edilen veri olayı | 150 |
| `push.token_transfer` | Teslim edilen veri olayı | 150 |

UTC günü başına hesap başına ücretsiz adres: 1000

Abonelik planından bağımsız olarak tüm abonelik grupları tarafından paylaşılan, hesap başına UTC günü başına ücretsiz adres hakkı. Her grup için, o gün boyunca çevrimiçiyken ulaşılan maksimum adres sayısını sayın; hakkı artan grup kimliği sırasına göre tahsis edin. İki gruptaki aynı adres iki kez sayılır; bir gruptaki zincir sayısı adres sayısını katlamaz. Gün boyunca çevrimdışı olan veya silinen bir grup hiçbir katkıda bulunmaz. Her grup için, payından sonra kalan sayı `method_weights` içindeki `push.address_day` CU ağırlığı ile çarpılır. Mevcut yapılandırılmış hak, adres-gün ücreti için kullanılan aynı fiyatlandırma politikasından gelir; bu bir hesap kapasite sınırı veya grup başına ayrı bir hak değildir.

Örnek: Teslim edilen 10 native.transfer olayı, 2 başarılı geçmiş isteği ve 10 faturalandırılabilir adres-gün maliyeti 10 × 150 + 2 × 25 + 10 × 33 = 1880 CU'dur. Faturalandırılabilir adres-günler, hesabın ücretsiz adres hakkından sonra sayılır.

## Sonraki adımlar

* BlockVectra'nın indekslediği her veri kümesini görmek için [veri kümeleri dizinine göz atın](https://blockvectra.com/tr/data/).
* Hesabınızın neleri içerdiğini kontrol etmek için [ücretsiz planı ve fiyatlandırmayı inceleyin](https://blockvectra.com/tr/pricing/#free).
* Bir API key oluşturmak için [konsolda oturum açın](https://console.blockvectra.com/login/?next=%2Fkeys%2F).
