# Ce qui n'est pas facturé : codes d'erreur et règles de facturation

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

BlockVectra mesure les requêtes en Compute Units (CU). Les appels JSON-RPC et Data API ne sont facturés qu'après l'obtention d'une réponse. Ce guide résume les règles de détermination de la facturation pour les codes d'état HTTP, les appels JSON-RPC et la Data API, ainsi que les actions recommandées pour les développeurs.

## Codes d'état HTTP et règles de facturation

Les règles de détermination de la facturation et de traitement pour les réponses au niveau HTTP sont les suivantes :

| Statut HTTP | Corps de réponse                                                                                                                                           | Scénario                                                                                                                                                                                                                                                                                                  | Facturé ?                                                                                        | Action recommandée                                                                                                                                                                                                                                                                                  |
| ----------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|         200 | Réponse JSON-RPC (unique ou batch)                                                                                                                         | Réponse normale ; toutes les erreurs de la couche JSON-RPC (erreur d'analyse, rejet de méthode, échec en amont, erreur du nœud) sont également en 200                                                                                                                                                     | Évalué par appel                                                                                 | Inspectez `result` ou `error` pour chaque appel ; si une erreur est renvoyée, voir le traitement des erreurs JSON-RPC ci-dessous                                                                                                                                                                    |
|         204 | Vide                                                                                                                                                       | Tous les appels de la requête sont des notifications                                                                                                                                                                                                                                                      | Les notifications sont facturées normalement                                                     | Aucune action supplémentaire requise                                                                                                                                                                                                                                                                |
|         400 | Vide                                                                                                                                                       | Message HTTP malformé (impossible d'analyser la ligne de requête ou les en-têtes, encodage fractionné invalide), ou plus de 10 s entre deux lectures du corps de la requête                                                                                                                               | Non                                                                                              | Vérifiez la syntaxe de la requête HTTP, les en-têtes et la continuité de la transmission                                                                                                                                                                                                            |
|         402 | JSON, `-32020`                                                                                                                                             | Solde insuffisant, quota épuisé ; lorsque le solde est connu, `error.data` inclut `balance_units` et `balance_cu`                                                                                                                                                                                         | Non                                                                                              | Vérifiez votre solde sur la [page Facturation](https://console.blockvectra.com/billing/) de la console ou via `GET /v1/topup/deposit-address` (MCP `get_deposit_address`) ; rechargez on-chain vers l'adresse dédiée de votre compte (voir le [guide de recharge d'agent](https://docs.blockvectra.com/fr/guides/agent-topup/)) |
|         403 | Vide                                                                                                                                                       | Méthodes autres que `POST` ou `OPTIONS` sur `/v1/{chain}` ou `/v1/{chain}/{api_key}` (que le nom de la chaîne soit connu ou non)                                                                                                                                                                          | Non                                                                                              | Modifiez la méthode de requête HTTP en `POST` (ou pré-vol cross-origin `OPTIONS`)                                                                                                                                                                                                                   |
|         401 | JSON, `-32024` (`missing_api_key` ou `invalid_api_key`)                                                                                                    | Clé manquante sur une chaîne connue, clé inconnue ou désactivée                                                                                                                                                                                                                                           | Non                                                                                              | Fournissez une clé API active dans l'en-tête `x-api-key` (les clés flambant neuves ou ayant fait l'objet d'une rotation prennent quelques secondes pour prendre effet ; patientez un instant et réessayez)                                                                                          |
|         404 | JSON, `-32600` (`reason = unknown_chain`)                                                                                                                  | `POST` vers une `{chain}` inconnue                                                                                                                                                                                                                                                                        | Non                                                                                              | Vérifiez le nom de la chaîne dans l'URL par rapport aux [Chaînes prises en charge](https://docs.blockvectra.com/fr/chains/) (doit être le slug exact en minuscules)                                                                                                                                                             |
|         404 | corps vide                                                                                                                                                 | Chemin non reconnu (par ex. `POST /v1`, `/v1/`, `POST /v1/{chain}/`)                                                                                                                                                                                                                                      | Non                                                                                              | Incluez la chaîne dans l'URL (`/v1/{chain}`)                                                                                                                                                                                                                                                        |
|         408 | Vide                                                                                                                                                       | Dépassement de 35 s entre la lecture des en-têtes de requête et le renvoi de la réponse                                                                                                                                                                                                                   | **Possible** : les appels déjà transmis au nœud sont facturés normalement dès que le nœud répond | Ne réessayez pas sans condition les appels modifiant l'état (par ex. `eth_sendRawTransaction`) ; une déconnexion du client n'annule pas les appels déjà transmis                                                                                                                                    |
|         413 | Vide                                                                                                                                                       | Corps de requête > 2 Mio (2 097 152 octets)                                                                                                                                                                                                                                                               | Non                                                                                              | Maintenez le corps de requête sous 2 Mio ; découpez les batches en requêtes plus petites                                                                                                                                                                                                            |
|   414 / 431 | Vide                                                                                                                                                       | URI trop long (414) ou en-têtes de requête trop volumineux (431)                                                                                                                                                                                                                                          | Non                                                                                              | Raccourcissez l'URI de requête ou réduisez les en-têtes de requête HTTP                                                                                                                                                                                                                             |
|         429 | JSON, `-32005` ou `-32022` ; inclut `Retry-After` pour les limites de débit (`-32005`) ; les limites de burst/taille de batch (`-32022`) ne l'incluent pas | Solde du bucket épuisé → `-32005` ; les CU d'une requête unique dépassent la capacité de burst → `-32022` ; limite de débit d'appels du compte épuisée → `-32005` ; le nombre d'appels dans une requête unique dépasse la limite → `-32022`                                                               | Non                                                                                              | Pour `-32005` avec `Retry-After`, attendez le nombre de secondes spécifié avant de réessayer ; pour `-32022`, découpez la requête ou réduisez la taille du batch (réessayer tel quel ne réussira jamais)                                                                                            |
|         503 | JSON, `-32021`, avec `Retry-After`                                                                                                                         | Données de facturation temporairement indisponibles ; le serveur rejette temporairement la requête (ce n'est pas un problème de solde, pas besoin de recharger) ; les clés nouvellement créées renvoient ceci jusqu'à ce que les données de facturation se synchronisent (généralement quelques secondes) | Non                                                                                              | Ce n'est pas un problème de solde, pas besoin de recharger ; attendez le nombre de secondes spécifié dans `Retry-After` et réessayez                                                                                                                                                                |

> Remarque : lors d'un accès via Cloudflare, Cloudflare peut renvoyer des pages d'erreur 52x ou 1015 ; celles-ci ne sont pas générées par le service.

> **En-têtes de réponse pour la facturation et le solde** : lors de l'envoi de `x-bv-meter: 1` sur les requêtes HTTP (applicable à la fois au JSON-RPC et à la Data API), une réponse qui a facturé au moins un appel renvoie `x-bv-cu-charged` (les Compute Units facturées pour cette requête, ou la somme des appels facturés d'un batch) et `x-bv-balance-units` (les unités de solde restantes du compte immédiatement après cette imputation, négatives en cas de découvert ; omises si le solde est inconnu). Les requêtes sans `x-bv-meter: 1`, les réponses où rien n'a été facturé, ainsi que les réponses d'erreur 402, 403, 429 ou 503 omettent ces deux en-têtes. Ces en-têtes de réponse sont accessibles aux scripts de navigateur via CORS, tandis que WebSocket ne les utilise pas. Le solde soustrait l'utilisation totale non réglée arrondie au supérieur une fois aux unités entières ; le règlement horaire arrondit à l'inférieur, de sorte que le solde indiqué peut augmenter jusqu'à une unité après le règlement.

## Codes d'erreur JSON-RPC et règles de facturation

Le même code d'erreur peut provenir de la plateforme ou du nœud, et **la facturation diffère** :

* **Erreurs générées par la plateforme elle-même** : jamais facturées ;
* **Erreurs renvoyées par le nœud** : transmises telles quelles et facturées au poids de la méthode, avec pour seules exceptions les codes d'erreur de nœud énumérés ci-dessous.

### Détails des règles

* **Erreurs de nœud non facturées** : les codes du nœud `-32002` (expiration du délai de batch), `-32003` (réponse de batch trop volumineuse) et `-32600` (batch rejeté dans son ensemble) indiquent que le nœud a abandonné l'appel prématurément ; ces appels ainsi que toutes les notifications du même batch ne sont pas facturés. Les erreurs de nœud `-32601` (méthode exposée non implémentée) et `-32603` (défaillance interne du nœud) ne sont pas facturées sur HTTP ou WebSocket et n'affectent pas les autres appels ou notifications du batch. De plus, `4444` (bloc élagué) et `-32000` (état historique en dehors de la fenêtre d'historique d'état du nœud, définie par `state_window_blocks` dans `GET /v1/chains`) ne sont pas facturés et n'affectent pas les autres appels du batch.
* **Erreurs de nœud facturées** : les autres erreurs renvoyées par le nœud sont facturées au poids de la méthode lorsqu'elles rapportent le résultat de la chaîne, telles que `execution reverted` (`-32000` ou `3` avec `data`), le `-32602 invalid argument` propre au nœud.
* **Admission de solde et synchronisation** : `-32020` indique un solde de compte insuffisant et nécessite une recharge ; lorsque le solde est connu, `error.data.balance_units` et `error.data.balance_cu` indiquent ce qu'il reste (cela peut être négatif). Une clé nouvellement créée peut renvoyer `-32021` (503) pendant quelques secondes ; attendez `Retry-After` et réessayez.
* **Échecs en amont** : un code `-32603` généré par la plateforme en raison d'une défaillance de communication en amont ou d'une réponse malformée (`upstream unavailable`, `no response from upstream`, `malformed upstream response`) contient `data.reason: upstream_unavailable`.
* **Facturation des notifications** : les notifications (204) sont facturées au poids de leur méthode.

### Tableau des codes d'erreur JSON-RPC

|   Code | Source      | HTTP | Message                                                                        | Motif                                                                                                                   | Facturé ?                                    | Action recommandée                                                                                                                                                                                                                                                                                  |
| -----: | ----------- | ---: | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -32700 | BlockVectra |  200 | `parse error`                                                                  | -                                                                                                                       | Non (coûte 1 jeton de limite de débit en CU) | Corrigez la syntaxe JSON de la requête                                                                                                                                                                                                                                                              |
| -32600 | BlockVectra |  200 | `invalid request`                                                              | `invalid_request`                                                                                                       | Non (coûte 1 jeton de limite de débit en CU) | Corrigez la syntaxe et la structure de la requête JSON-RPC                                                                                                                                                                                                                                          |
| -32600 | BlockVectra |  200 | `batch too large: max <N> calls`                                               | `batch_too_large` (+max)                                                                                                | Non                                          | Découpez le batch en appels sous la limite (la limite standard de batch est de 100)                                                                                                                                                                                                                 |
| -32600 | BlockVectra |  200 | `invalid request: ambiguous member name`                                       | `invalid_request`                                                                                                       | Non                                          | Supprimez les noms de membres dupliqués ou ambigus dans les objets JSON                                                                                                                                                                                                                             |
| -32601 | BlockVectra |  200 | `method not available: <method>`                                               | -                                                                                                                       | Non                                          | Appelez uniquement les méthodes autorisées pour cette chaîne (voir les [Chaînes prises en charge](https://docs.blockvectra.com/fr/chains/))                                                                                                                                                                                     |
| -32600 | BlockVectra |  404 | `unknown chain`                                                                | `unknown_chain`                                                                                                         | Non                                          | Vérifiez le nom de la chaîne dans l'URL                                                                                                                                                                                                                                                             |
| -32602 | BlockVectra |  200 | `eth_getLogs block range too large: max <N> blocks`                            | -                                                                                                                       | Non                                          | Réduisez la plage de blocs de `eth_getLogs` (limite définie par chaîne, par ex. 1000 blocs)                                                                                                                                                                                                         |
| -32602 | BlockVectra |  200 | `tracer not allowed`                                                           | -                                                                                                                       | Non                                          | Utilisez un traceur natif autorisé (`callTracer`, `flatCallTracer`, `prestateTracer`, `4byteTracer`, `noopTracer`, ou omettez-le)                                                                                                                                                                   |
| -32602 | BlockVectra |  200 | `trace timeout not allowed`                                                    | -                                                                                                                       | Non                                          | Définissez une chaîne de durée Go valide avec un délai d'expiration ≤ 30s                                                                                                                                                                                                                           |
| -32010 | BlockVectra |  200 | `node is syncing; calls are temporarily unavailable`                           | -                                                                                                                       | Non                                          | Le nœud est en cours de synchronisation, réessayez plus tard (sauf pour `eth_chainId`)                                                                                                                                                                                                              |
| -32011 | BlockVectra |  200 | `historical state is not available beyond the most recent <N> blocks`          | -                                                                                                                       | Non                                          | Interrogez un bloc plus récent (le bloc cible doit être dans la fenêtre d'état ; évitez les balises safe/finalized/earliest)                                                                                                                                                                        |
| -32000 | BlockVectra |  200 | `transaction not found`                                                        | `not_found`                                                                                                             | Non                                          | Vérifiez le hash de transaction (`0x` + 64 caractères hexadécimaux)                                                                                                                                                                                                                                 |
| -32000 | BlockVectra |  200 | `block not found`                                                              | `not_found`                                                                                                             | Non                                          | Vérifiez le hash ou le numéro de bloc                                                                                                                                                                                                                                                               |
| -32000 | BlockVectra |  200 | `upstream response too large`                                                  | `response_too_large`                                                                                                    | Non                                          | Réduisez la portée de la requête ou découpez les requêtes                                                                                                                                                                                                                                           |
| -32005 | BlockVectra |  200 | -                                                                              | `overloaded`                                                                                                            | Non                                          | Serveur temporairement surchargé, réessayez plus tard                                                                                                                                                                                                                                               |
| -32005 | BlockVectra |  429 | `rate limit exceeded`                                                          | `key_rate_limit` / `free_plan_call_limit` / `concurrency_limit`                                                         | Non                                          | Réduisez la fréquence des requêtes ; respectez `Retry-After` lorsqu'il est présent                                                                                                                                                                                                                  |
| -32022 | BlockVectra |  429 | `request cost <N> CU exceeds burst capacity <M> CU`                            | `request_exceeds_burst`                                                                                                 | Non                                          | Découpez la requête ou le batch pour que les CU d'une requête unique soient inférieurs à la capacité de burst                                                                                                                                                                                       |
| -32022 | BlockVectra |  429 | `request has <N> calls, exceeding the free-plan limit of <M> calls per second` | `free_plan_batch_too_large` (+max)                                                                                      | Non                                          | Découpez le batch pour rester sous la limite par seconde, ou passez à un forfait payant                                                                                                                                                                                                             |
| -32603 | BlockVectra |  200 | `upstream unavailable`                                                         | `upstream_unavailable`                                                                                                  | Non                                          | Échec de communication en amont, réessayez plus tard                                                                                                                                                                                                                                                |
| -32603 | BlockVectra |  200 | `no response from upstream`                                                    | `upstream_unavailable`                                                                                                  | Non                                          | L'amont n'a pas répondu, réessayez plus tard                                                                                                                                                                                                                                                        |
| -32603 | BlockVectra |  200 | `malformed upstream response`                                                  | `upstream_unavailable`                                                                                                  | Non                                          | Réponse en amont malformée, réessayez plus tard                                                                                                                                                                                                                                                     |
| -32603 | BlockVectra |  200 | -                                                                              | -                                                                                                                       | Non                                          | Erreur interne rare, réessayez plus tard                                                                                                                                                                                                                                                            |
| -32020 | BlockVectra |  402 | `insufficient balance`                                                         | `balance_exhausted` / `free_grant_exhausted` (+topup\_url, et +`balance_units` / `balance_cu` quand le solde est connu) | Non                                          | Vérifiez votre solde sur la [page Facturation](https://console.blockvectra.com/billing/) de la console ou via `GET /v1/topup/deposit-address` (MCP `get_deposit_address`) ; rechargez on-chain vers l'adresse dédiée de votre compte (voir le [guide de recharge d'agent](https://docs.blockvectra.com/fr/guides/agent-topup/)) |
| -32021 | BlockVectra |  503 | `billing data temporarily unavailable`                                         | -                                                                                                                       | Non                                          | Données de facturation en cours de synchronisation (ce n'est pas un problème de solde) ; attendez le nombre de secondes spécifié dans `Retry-After` et réessayez                                                                                                                                    |
|   4444 | Nœud        |  200 | `pruned history unavailable`                                                   | -                                                                                                                       | Non                                          | Le bloc demandé a été élagué par le nœud ; non facturé ; n'affecte pas le batch                                                                                                                                                                                                                     |
| -32000 | Nœud        |  200 | `historical state ... is not available`                                        | -                                                                                                                       | Non                                          | En dehors de la fenêtre d'historique d'état du nœud ; non facturé ; n'affecte pas le batch                                                                                                                                                                                                          |
| -32000 | Nœud        |  200 | `old data not available due to pruning...`                                     | -                                                                                                                       | Non                                          | En dehors de la fenêtre d'historique du nœud (fenêtre déterminée par `state_window_blocks`) ; non facturé ; n'affecte pas le batch                                                                                                                                                                  |
| -32002 | Nœud        |  200 | `<message du nœud>`                                                            | -                                                                                                                       | Non                                          | Le nœud a expiré sur le batch et a abandonné l'appel ; non facturé ; les notifications du batch ne sont pas non plus facturées                                                                                                                                                                      |
| -32003 | Nœud        |  200 | `<message du nœud>`                                                            | -                                                                                                                       | Non                                          | Réponse de batch du nœud trop volumineuse et abandonnée ; non facturé ; les notifications du batch ne sont pas non plus facturées                                                                                                                                                                   |
| -32601 | Nœud        |  200 | `<message du nœud>`                                                            | -                                                                                                                       | Non                                          | La méthode exposée n'est pas implémentée par le nœud ; utilisez une autre méthode prise en charge                                                                                                                                                                                                   |
| -32603 | Nœud        |  200 | `<message du nœud>`                                                            | -                                                                                                                       | Non                                          | Défaillance interne du nœud ; réessayez avec un délai d'attente progressif                                                                                                                                                                                                                          |
| -32600 | Nœud        |  200 | `<message du nœud>`                                                            | -                                                                                                                       | Non                                          | Batch entier rejeté par le nœud ; non facturé ; les notifications du batch ne sont pas non plus facturées                                                                                                                                                                                           |
|  Autre | Nœud        |  200 | `<message du nœud>`                                                            | -                                                                                                                       | **Oui** (poids de la méthode)                | Résultat de la chaîne (par ex. `execution reverted`, `-32602` du nœud) ; vérifiez les paramètres d'appel du contrat                                                                                                                                                                                 |

## Règles de facturation de la Data API

La Data API encapsule les données de chaîne en lecture seule dans des points de terminaison REST. Sa facturation et sa gestion des erreurs suivent ces règles :

### Détails des règles

* Seules les réponses 2xx réussies sont facturées.
* Les opérations indisponibles en dehors de la couverture (telles que les chaînes non prises en charge ou les blocs hors de la couverture des traces) renvoient HTTP 422 `no_coverage`, qui n'est pas facturé mais compte dans les limites de débit.
* Les réponses HTTP 401, 402, 404 et 429 ne sont pas facturées. Pour les en-têtes de réponse (`x-bv-meter: 1`), voir les [Codes d'état HTTP et règles de facturation](#http-status-codes-and-billing-rules).

### Tableau des codes d'état de la Data API

| Statut HTTP | Code d'erreur / Scénario                                                                                                                                          | Facturé ?                                     | Action recommandée                                                                                                                                                                                                                                                                                  |
| ----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|         200 | Réponse de données réussie                                                                                                                                        | **Oui** (poids en CU de l'opération Data API) | Analysez `data`, `meta` et `next_cursor` dans l'enveloppe de réponse                                                                                                                                                                                                                                |
|         400 | Paramètres de requête malformés ou champs requis manquants                                                                                                        | Non                                           | Vérifiez et corrigez les paramètres d'URL ou de corps                                                                                                                                                                                                                                               |
|         402 | Solde épuisé (`error.code: "insufficient_balance"`, inclut `balance_units` et `balance_cu` quand le solde est connu)                                              | Non                                           | Vérifiez votre solde sur la [page Facturation](https://console.blockvectra.com/billing/) de la console ou via `GET /v1/topup/deposit-address` (MCP `get_deposit_address`) ; rechargez on-chain vers l'adresse dédiée de votre compte (voir le [guide de recharge d'agent](https://docs.blockvectra.com/fr/guides/agent-topup/)) |
|         401 | Clé API manquante, inconnue ou désactivée (`error.code: "missing_api_key"` ou `"invalid_api_key"`)                                                                | Non                                           | Transmettez une clé API active dans l'en-tête `x-api-key`                                                                                                                                                                                                                                           |
|         404 | Chaîne inconnue ou non publique (`error.code: "not_found"`), ou l'objet demandé n'existe pas                                                                      | Non                                           | Vérifiez le slug de la chaîne dans l'URL (doit être en minuscules exactes) et le chemin de requête                                                                                                                                                                                                  |
|         409 | Le bloc ou la fenêtre demandée est supérieur(e) à la hauteur actuellement indexée (`error.code: "not_indexed_yet"`, inclut `indexed_through`)                     | Non                                           | Interrogez les blocs jusqu'à `indexed_through` ou réessayez plus tard                                                                                                                                                                                                                               |
|         422 | Opération spécifique à la chaîne indisponible (par ex. chaîne non prise en charge ou hors de la couverture des traces, `error.code: "no_coverage"`)               | Non (compte dans les limites de débit)        | Vérifiez les fonctionnalités prises en charge via `GET /v1/status` (`data_features` gratuit et sans clé)                                                                                                                                                                                            |
|         429 | Limite de débit dépassée (`error.code: "rate_limited"`), ou une requête unique coûte plus que la capacité de burst de la clé (`error.code: "cost_exceeds_burst"`) | Non                                           | Réduisez la fréquence des requêtes ; découpez les requêtes surdimensionnées (une requête dépassant le burst ne réussira jamais telle qu'envoyée)                                                                                                                                                    |
|         503 | Service de données temporairement indisponible (`error.code: "unavailable"`), ou la chaîne est occupée (`error.code: "gateway_overloaded"`)                       | Non                                           | Réessayez plus tard et respectez `Retry-After` lorsqu'il est présent                                                                                                                                                                                                                                |

## Consulter le solde (`GET /v1/account`)

Le détenteur d'une clé API peut vérifier le solde et les détails des quotas de la clé directement sans encourir de facturation ni déduire de Compute Units (CU) :

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

* **Gratuit et non facturé** : `GET /v1/account` est gratuit. Il n'est jamais facturé, ne déduit pas de CU, et renvoie HTTP 200 avec le solde actuel même lorsqu'il est nul ou négatif (il ne renvoie jamais 402).
* **Authentification** : l'authentification par clé utilise exclusivement l'en-tête `x-api-key` (les clés dans le chemin et les jetons Bearer ne sont pas acceptés). L'absence d'en-tête renvoie 401 `missing_api_key` ; les clés invalides ou révoquées renvoient 401 `invalid_api_key`. (Les clés expirées renvoient 403 `key_expired` ; les indisponibilités temporaires de service renvoient 503 `auth_unavailable` ou `billing_unavailable` avec `Retry-After`.)
* **Limitation de débit** : dispose d'une limite indépendante de 5 requêtes par seconde par ID de clé, indépendamment du comptage des CU et de la facturation. Le dépassement de la limite renvoie HTTP 429 `rate_limited` avec un en-tête `Retry-After`.

Champs de réponse :

* `key_id` : la chaîne d'identification de la clé API.
* `plan` : le type de forfait du compte (`free` lorsque le compte dispose d'un quota de débit d'appels de forfait gratuit ; `paid` dans le cas contraire).
* `balance_units` : le solde restant du compte en unités (peut être nul ou négatif).
* `balance_cu` : le solde restant converti en Compute Units (CU).
* `balance_as_of_age_ms` : millisecondes écoulées depuis la lecture du solde à partir de sa source de données.
* `key` : limites spécifiques à la clé et détails des quotas :
  * `cu_per_sec` : taux de recharge du token bucket en CU par seconde.
  * `burst_cu` : capacité de burst du token bucket en CU.
  * `cu_cap` : plafond total de CU pour cette clé sur sa durée de vie, ou `null` si non plafonné.
  * `cu_cap_remaining` : CU restantes sous `cu_cap`, ou `null` si non plafonné (peut être nul ou négatif).
  * `expires_at` : horodatage d'expiration RFC 3339, ou `null` si la clé n'expire jamais.

Exemple de réponse :

```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>"
  }
}
```

## Tarifs et passages au forfait supérieur

Le coût spécifique de tous les appels facturés est déterminé par les pondérations en CU publiées :

* Pour consulter les pondérations de toutes les méthodes et opérations, voir le [tableau des pondérations des méthodes](https://blockvectra.com/fr/pricing/) et les [Règles de mesure des CU JSON-RPC](https://docs.blockvectra.com/fr/api/json-rpc/#cu-metering-rules).
* Pour les tarifs des forfaits et les détails de règlement, voir la [page Tarifs](https://blockvectra.com/fr/pricing/).
* Passage à un forfait payant : effectuer une recharge payante supprime la limite d'appels par seconde du forfait gratuit ; chaque clé reste soumise aux limites de débit et de burst en CU.

### Processus de recharge on-chain

Lorsque le solde de votre compte est insuffisant ou que vous avez besoin d'un débit plus élevé, rechargez on-chain dans la console en suivant ces étapes :

1. **Se connecter à la console** : connectez-vous à la [console BlockVectra](https://console.blockvectra.com/login/?next=%2Fbilling%2F).
2. **Accéder à la page Facturation** : accédez à la [page Facturation](https://console.blockvectra.com/billing/).
3. **Obtenir votre adresse dédiée** : dans la carte de recharge on-chain, copiez l'adresse de recharge dédiée de votre compte ou scannez le code QR.
4. **Transférer des fonds** : transférez uniquement à l'aide des réseaux et USDC / USDT / USDG pris en charge répertoriés sur la page. Les réseaux pris en charge et les montants minimaux de recharge sont affichés dans la console.
5. **Crédit automatique** : une fois détectées on-chain, les transactions s'affichent comme « En cours de traitement » ; une fois créditées, les crédits sont automatiquement ajoutés à votre solde.

> **Remarques importantes** :
>
> * Utilisez uniquement les réseaux et tokens explicitement répertoriés dans la console. Les transferts sur des chaînes non prises en charge ou avec des tokens incorrects ne peuvent pas être crédités automatiquement.
> * Assurez-vous que chaque transfert respecte le montant minimal de recharge indiqué dans la console.
> * Dès que votre première recharge payante est créditée, votre compte passe à un compte payant, supprimant la limite d'appels par seconde du forfait gratuit.

Les programmes d'agents ou de serveurs peuvent appeler directement les points de terminaison de recharge à l'aide d'une clé API ; voir le [guide de recharge programmatique d'agent](https://docs.blockvectra.com/fr/guides/agent-topup/).

## Facturation push des Webhooks

Le push dispose de pondérations distinctes pour les événements de données livrés, les requêtes d'historique réussies et les jours-adresses facturables. Les appels de gestion autres que l'historique des événements, les tentatives de distribution échouées, les nouvelles tentatives automatiques et les événements de contrôle sont gratuits. Chaque événement livré est facturé une seule fois ; le rejeu par le client et les événements canoniques relivrés après une réorganisation constituent de nouvelles livraisons facturées. Les frais d'adresse utilisent le nombre maximal d'adresses de chaque abonnement pendant qu'il est en ligne au cours de la journée UTC ; l'allocation d'adresses gratuites du compte est partagée entre les abonnements, les abonnements les plus anciens l'utilisant en premier. Une adresse figurant dans deux abonnements est comptée deux fois ; l'ajout de chaînes modifie les frais d'événements, pas les frais d'adresse.

Consultez le [guide de la Webhook API blockchain](https://docs.blockvectra.com/fr/guides/webhook-push/) pour la configuration, la [vérification de signature](https://docs.blockvectra.com/fr/guides/webhook-push/#verify-signatures) et la [reprise de distribution](https://docs.blockvectra.com/fr/guides/webhook-push/#delivery-retries-and-replay). Le [guide des paiements en stablecoins](https://docs.blockvectra.com/fr/guides/stablecoin-payments/) couvre la validation des reçus et le rattrapage par interrogation ; les [abonnements WebSocket](https://docs.blockvectra.com/fr/guides/websocket-subscriptions/) utilisent leur propre mesure de connexion et de notification. Les erreurs de requête sont répertoriées dans la [référence des erreurs](https://docs.blockvectra.com/fr/errors/). Les pondérations ci-dessous proviennent de `GET /v1/plans`.

| Utilisation | Unité de facturation | CU |
| --- | --- | --- |
| `push.address_day` | Adresse-jour facturable | 33 |
| `push.history` | Requête d'historique réussie | 25 |
| `push.log` | Événement de données distribué | 150 |
| `push.native_transfer` | Événement de données distribué | 150 |
| `push.token_transfer` | Événement de données distribué | 150 |

Adresses gratuites par compte et par jour UTC : 1000

Quota d'adresses gratuites par compte et par jour UTC, partagé par tous les groupes d'abonnement quel que soit le forfait. Pour chaque groupe, comptabilisez son nombre maximal d'adresses en ligne au cours de cette journée ; allouez le quota par ordre croissant d'identifiant de groupe. La même adresse dans deux groupes compte deux fois ; le nombre de chaînes dans un groupe ne multiplie pas son nombre d'adresses. Un groupe hors ligne ou supprimé pendant toute la journée ne contribue en rien. Pour chaque groupe, le décompte restant après sa part du quota est multiplié par le poids en CU de `push.address_day` dans `method_weights`. Le quota configuré actuel provient de la même politique tarifaire que celle utilisée pour la facturation adresse-jour ; il ne s'agit pas d'une limite de capacité du compte ni d'un quota distinct par groupe.

Exemple : 10 événements native.transfer distribués, 2 requêtes d'historique réussies et 10 adresses-jours facturables coûtent 10 × 150 + 2 × 25 + 10 × 33 = 1880 CU. Les adresses-jours facturables sont décomptées après le quota d'adresses gratuites du compte.

## Prochaines étapes

* [Parcourir le répertoire des jeux de données](https://blockvectra.com/fr/data/) pour voir chaque jeu de données indexé par BlockVectra.
* [Consulter le forfait gratuit et les tarifs](https://blockvectra.com/fr/pricing/#free) pour vérifier ce que comprend votre compte.
* [Se connecter à la console](https://console.blockvectra.com/login/?next=%2Fkeys%2F) pour créer une clé API.
