List crypto deposits
Every recorded arrival at your deposit addresses, newest first — credited deposits and FAILED records alike. A deposit appears here the moment it is recorded; there is no POST, because a crypto deposit is initiated on-chain and the transfer itself is the request.
Every recorded arrival at your deposit addresses, newest first — credited deposits and FAILED records alike. A deposit appears here the moment it is recorded; there is no POST, because a crypto deposit is initiated on-chain and the transfer itself is the request.
Authorization
bearer In: header
Query Parameters
The nextCursor from the previous page. Omit it for the first page. Treat it as opaque.
Rows per page, 1-100. Defaults to 25.
value <= 10025Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/partner/v1/crypto-deposits?cursor=2b7e1c6a-2d59-46a4-8f38-7c1542be9038&limit=25"{ "data": { "items": [ { "amount": "1000", "asset": "USDC", "chain": "ARBITRUM", "creditedAccountId": "7e2a0c53-4d81-49b6-8f37-1a5c9e0b2d74", "creditedAt": {}, "cryptoDepositId": "2b7e1c6a-2d59-46a4-8f38-7c1542be9038", "detectedAt": "2026-09-02T10:15:30.000Z", "disclosure": { "items": [ "ENVIRONMENT_IS_TESTNET: The environment is a testnet (Arbitrum Sepolia). No mainnet deployment exists.", "YIELD_IS_SIMULATED: The vault rate is set administratively and the interest it produces is minted as fresh underlying, not earned. It does not represent a return generated by deployed capital.", "FIAT_RAILS_ARE_MOCKED: No real fiat movement occurs. Balances are ledger entries against a sandbox provider.", "CONVERSION_RATES_ARE_MARKET_QUOTED_OR_REFUSED: A conversion is priced only by an external venue that quotes independently of TCB. When no such venue can price the pair, the conversion is refused rather than priced from an internal table. Read rate.pricingModel on every conversion: MARKET is a venue quote; any other value is not a market rate and must not be presented as one.", "CONTRACTS_ARE_UNAUDITED: No audit has been performed. Mainnet is gated on a two-firm audit that has not been commissioned.", "CUSTODY_IS_TCB_SUBACCOUNT: Everything held for the client — its vault shares, and the tcbUSD it holds between the steps of the tokenised deposit chain — is held in TCB custody, in the one TCB wallet assigned to the client. The client holds no keys and moves those tokens only through this API; each sub-account's shares and tcbUSD are book entries against what that wallet holds.", "INTEGRATION_AGREEMENT_ONLY: Fees as published on the rate card; no yield share, no return commitment." ], "summary": "This is a pilot integration on a testnet. Nothing in this system earns anything: the yield is simulated and the fiat rails are mocked.", "version": "2026-10-27" }, "status": "CREDITED", "transferIndex": "2", "txHash": "0x4a1f9c07d3b28e615a0c47f8d29b3e6c15087af2d94b6c308e17b5d02fa4c396" } ], "nextCursor": null }, "success": true, "timestamp": "2026-09-02T10:15:30.000Z"}Get your deposit address POST
Issues the deposit address for one asset on one chain, creating the account arrivals are credited to at the same time. The address is static: calling this again for the same asset and chain returns the same address, whatever idempotency key the call carries. A confirmed on-chain transfer to it is credited to that account and announced by a crypto_deposit.credited webhook — see the crypto deposits guide for what happens to anything else that arrives.
Fetch one crypto deposit by id GET
The deposit in its current state, including a FAILED record, which is reported as the object rather than as an error. This is the fetch half of the thin crypto_deposit.credited webhook payload. The id is stable across replays of the same on-chain transfer.