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

# Rate limits & operations

> Retries and 429 handling, amount precision, amount_status, and how API changes are communicated.

## Retries & 429

`@pulsebyshiga/node` automatically retries transient failures — HTTP `429` and any `5xx`,
plus network errors — with exponential backoff. Defaults: `maxRetries` **2** and
`retryDelayMs` **250** (retries wait 250 ms, then 500 ms; no jitter). A server
`Retry-After` header is not currently honored. Both values are configurable on the
`Pulse` constructor.

## Rate limits

Specific numeric rate limits aren't published yet. Design for retries and backoff, and
treat a `429` as a transient signal to slow down rather than a hard failure.

## Amounts & precision

Amounts are exchanged as **decimal strings** (e.g. `"100.00"`), and the SDK and components
format them to two decimal places. There is no enforced minimum transfer amount published
today.

## `amount_status`

A collection order's `amount_status` moves `pending → exact | underpaid | overpaid`. The
engine sets it by comparing the received on-chain amount to the quoted `asset_amount`; the
exact tolerance band is engine-owned and not a published constant. Underpaid and overpaid
deposits emit `collection.amount.underpaid` / `collection.amount.overpaid` webhooks
carrying `{ expected, received, asset, network, tx_hash }`.

## Versioning & changes

Endpoints are versioned under `/v1`. Wire shapes are pre-1.0 and may still change until the
contract is finalized (see [Contract status](/reference/contract-status)); changes are
recorded in the [Changelog](/reference/changelog), and breaking changes are announced ahead
of time.
