---
title: "List deposits"
method: GET
path: "/deposits"
tags: ["Utilities"]
---

# List deposits

`GET /deposits`

## Request

- Base URL: `https://v1.orchestrator.rhinestone.dev/deposit-processor`
- URL: `https://v1.orchestrator.rhinestone.dev/deposit-processor/deposits`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/docs/deposits/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns deposits for the authenticated project, newest first. Filters narrow the list on the server before pagination: different parameters combine with AND, values within one parameter with OR, and an exclusion (`excludeStatus`, `excludeChain`, `excludeAsset`, `excludeSender`) wins over a matching inclusion.

## Query parameters

- `account` string: EVM address (0x...) or Solana base58 public key
- `recipient` string: Filter by the account's recipient address. Aggregates deposits across every smart account that resolves to the same recipient (typically the integrator's user wallet).
- `address` string: Filter by the source-chain deposit address or target-chain recipient.
- `status` string[]: Include only deposits in these statuses. Repeat the parameter or comma-separate values, at most 20. Values within one parameter combine with OR, parameters combine with AND, and an exclusion wins over a matching inclusion. Applied before pagination; spam visibility is still governed by `includeSpam`.
- `excludeStatus` string[]: Exclude deposits in these statuses. Repeat the parameter or comma-separate values, at most 20. Values within one parameter combine with OR, parameters combine with AND, and an exclusion wins over a matching inclusion. Applied before pagination; spam visibility is still governed by `includeSpam`.
- `chain` string[]: Include only deposits from these source chains. Canonical CAIP-2 source chain ids (e.g. "eip155:8453"). The two HyperCore origin spellings (`hypercore:mainnet`, `hypercore:spot`) match as one chain. Repeat the parameter or comma-separate values, at most 20. Values within one parameter combine with OR, parameters combine with AND, and an exclusion wins over a matching inclusion. Applied before pagination; spam visibility is still governed by `includeSpam`.
- `excludeChain` string[]: Exclude deposits from these source chains. Canonical CAIP-2 source chain ids (e.g. "eip155:8453"). The two HyperCore origin spellings (`hypercore:mainnet`, `hypercore:spot`) match as one chain. Repeat the parameter or comma-separate values, at most 20. Values within one parameter combine with OR, parameters combine with AND, and an exclusion wins over a matching inclusion. Applied before pagination; spam visibility is still governed by `includeSpam`.
- `asset` string[]: Include only deposits of these source assets. Source assets as `<CAIP-2 chain>:<token>`, using the `chain` and `token` a list row reports (the token address, or the chain's native-asset identifier: the zero address on EVM and for TRX, `11111111111111111111111111111111` on Solana). Symbols are never matched. Hex tokens (EVM, HyperCore, the TRX sentinel) match case-insensitively; base58 tokens (Solana, Tron) match exactly. Repeat the parameter or comma-separate values, at most 20. Values within one parameter combine with OR, parameters combine with AND, and an exclusion wins over a matching inclusion. Applied before pagination; spam visibility is still governed by `includeSpam`.
- `excludeAsset` string[]: Exclude deposits of these source assets. Source assets as `<CAIP-2 chain>:<token>`, using the `chain` and `token` a list row reports (the token address, or the chain's native-asset identifier: the zero address on EVM and for TRX, `11111111111111111111111111111111` on Solana). Symbols are never matched. Hex tokens (EVM, HyperCore, the TRX sentinel) match case-insensitively; base58 tokens (Solana, Tron) match exactly. Repeat the parameter or comma-separate values, at most 20. Values within one parameter combine with OR, parameters combine with AND, and an exclusion wins over a matching inclusion. Applied before pagination; spam visibility is still governed by `includeSpam`.
- `sender` string[]: Include only deposits from these senders. Recorded transfer senders, matched on any chain. Never the deposit address, account or recipient. EVM addresses match case-insensitively; base58 addresses match exactly. Repeat the parameter or comma-separate values, at most 20. Values within one parameter combine with OR, parameters combine with AND, and an exclusion wins over a matching inclusion. Applied before pagination; spam visibility is still governed by `includeSpam`.
- `excludeSender` string[]: Exclude deposits from these senders. Recorded transfer senders, matched on any chain. Never the deposit address, account or recipient. EVM addresses match case-insensitively; base58 addresses match exactly. A deposit with an unknown or different sender stays visible. Repeat the parameter or comma-separate values, at most 20. Values within one parameter combine with OR, parameters combine with AND, and an exclusion wins over a matching inclusion. Applied before pagination; spam visibility is still governed by `includeSpam`.
- `txHash` string: Filter by source transaction hash (EVM 0x... or Solana base58 signature)
- `limit` integer: Maximum number of deposits to return
- `cursor` string: Pagination cursor. Use the `nextCursor` returned by the previous page.
- `includeSpam` boolean: When true, include spam-flagged deposits (tokens with no known price). Defaults to false.

## Headers

- `x-api-key` string: API key for authentication

## Response `200`

Client deposits

- ListDepositsResponse
  - `deposits` DepositListItem[], required
    - `id` string, required: Deposit id. Pass to GET /deposits/{id}/quotes.
    - `chain` string, required
    - `txHash` string, required
    - `token` string, required
    - `tokenSymbol` string, nullable, required: Display symbol for `token`, resolved at read time. Null when the token could not be resolved — render the raw address.
    - `tokenDecimals` integer, nullable, required: Decimals for `token`, i.e. what makes `amount` and `sourceAmount` renderable — both are raw base units. Null when unresolved; render the raw integer rather than guessing 18.
    - `targetTokenSymbol` string, nullable, required: Display symbol for `targetToken`. Null when unresolved.
    - `targetTokenDecimals` integer, nullable, required: Decimals for `targetToken`, applying to `destinationAmount`. Null when unresolved.
    - `amount` string, required: Numeric string representing a bigint value
    - `sender` string, required
    - `recipient` string, required: Destination-chain address that receives the funds. Falls back to the smart account for EVM/HyperCore/Tron when no distinct recipient is configured; for Solana it is the EVM recipient, never the internal swig.
    - `depositAddress` string, required: Source-chain address that received the deposit (EVM smart account, Solana wallet PDA, or Tron deposit address).
    - `targetChain` string, required
    - `targetToken` string, required
    - `status` 'pending' | 'processing' | 'completed' | 'failed' | 'rejected' | 'ignored' | 'expecting_refund' | 'refunded' | 'delayed' | 'reconciliation_required', required
    - `sourceTxHash` string, nullable, required
    - `destinationTxHash` string, nullable, required
    - `sourceAmount` string, nullable, required: Numeric string representing a bigint value
    - `destinationAmount` string, nullable, required: Numeric string representing a bigint value
    - `sponsoredGasUsd` string: USD value of gas absorbed for the user. Absent when no sponsorship accounting exists; "0" means nothing was sponsored.
    - `sponsoredBridgeFeeUsd` string: USD value of the bridge fee absorbed for the user. Excludes app fees and sponsor surcharges. Absent when no accounting exists; "0" means nothing was sponsored.
    - `createdAt` string, required
    - `completedAt` string, nullable, required
    - `errorCode` string, nullable, required
    - `creditKind` 'deposit' | 'collector_return', required
    - `retryable` boolean, required
    - `refundAttributions` object[]
      - `submissionKey` string, required
      - `intentId` string, required
      - `state` string, required
      - `reason` string, nullable, required
      - `references` object[]
        - `chain` string, required
        - `txHash` string, required
        - `vm` string
      - `credit` object
        - `chain` string, required
        - `txHash` string, required
        - `account` string, required
        - `token` string, required
        - `amount` string, required
      - `successorDepositId` string
    - `refundOf` object[]
      - `depositId` string, required
      - `submissionKey` string, required
    - `delivery` object
      - `outcome` 'pending' | 'delivered' | 'returned' | 'failed' | 'unresolved', required
      - `depositId` string, nullable, required
      - `reason` string
      - `chain` string
      - `token` string
      - `recipient` string
      - `amount` string
      - `txHash` string
      - `completedAt` string
    - `isSpam` boolean, required
    - `timing` DepositTimingEstimate: Indicative, non-contractual duration estimate derived from qualifying recent completed deposits on the corridor or chain pair, falling back to the selected route’s indicative estimate when aggregate data is unavailable. Always `expectedSeconds` <= `softDelaySeconds` <= `escalatedDelaySeconds`. On a deposit the seconds are measured from its `createdAt` and are served only while it is still in flight (`pending`, `processing`, `delayed`); on a quote preview they describe the quoted route. Resolved per request, so it may change between calls, and absent whenever no estimate is available. Never a deadline, an expiry or a guarantee.
      - `expectedSeconds` integer, required: How long the deposit is expected to take end to end, in seconds. Derived from qualifying recent completed deposits or the selected route’s indicative estimate; never a deadline or guarantee.
      - `softDelaySeconds` integer, required: Seconds after which the deposit is running slower than usual and a client may reassure the user. Indicative only.
      - `escalatedDelaySeconds` integer, required: Seconds after which the deposit is unusually slow and a client may offer support. Indicative only, not an SLA.
  - `nextCursor` string, nullable, required

## Other responses

- `400`: Invalid query or API key
- `401`: Missing or invalid API key
- `403`: API key lacks required deposits scope
- `503`: Tenant billing verification is temporarily unavailable; retry after 5 seconds.

## Changes

- **2026-11-06** `aa1767d704fa`: 12 breaking, 17 info
  - removed the enum value `completed` from the `query` request parameter `status`
  - removed the enum value `delayed` from the `query` request parameter `status`
  - removed the enum value `expecting_refund` from the `query` request parameter `status`
  - removed the enum value `failed` from the `query` request parameter `status`
  - …25 more
- **2026-09-17** `676300ac19ff`: 3 info
  - added the optional property `code` to the response with the `400` status
  - added the optional property `code` to the response with the `401` status
  - added the optional property `code` to the response with the `403` status
- **2026-09-11** `b49146029e5a`: 1 breaking, 1 warning
  - the `header` request parameter `x-api-key` became required
  - deleted the `header` request parameter `authorization`
- **2026-09-04** `54262a43c6a8`: 1 info
  - added the optional property `deposits/items/timing` to the response with the `200` status
- **2026-08-11** `bb8db07d1791`: 1 breaking, 3 info
  - removed the enum value `awaiting_sweep` from the `query` request parameter `status`
  - added the optional property `deposits/items/sponsoredBridgeFeeUsd` to the response with the `200` status
  - added the optional property `deposits/items/sponsoredGasUsd` to the response with the `200` status
  - removed the `awaiting_sweep` enum value from the `deposits/items/status` response property for the response status `200`

[Operation history](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/changes/deposits/get.md)

---

[API](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api.md) - [All operations](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/revisions/aa1767d704fa?raw)
