Deposit addresses
GET /v2/deposit-addresses
List deposit addresses
The addresses to send funds TO in order to fund this account, one per (asset, chain) pair. These are Skipo-owned addresses that credit your balance — the opposite direction from GET /v2/contacts, which lists the external destinations you can withdraw to.
Send only over the networkId the address is listed under. Several chains share an address format, so the same string can appear under more than one, and a deposit sent over a chain Skipo does not sweep is not recoverable.
Where tagRequired is true, the tag is mandatory. Skipo shares one address across accounts on those chains and the tag is the only thing identifying yours; a deposit without it does not credit automatically.
Addresses are stable — Skipo does not rotate or retire them, and reading this endpoint never mints one. A pair with no address yet is simply absent rather than listed empty; it appears once provisioning completes.
Fiat has no chain and is never listed: ?assetSymbol=CLP returns [], not an error. Minimums live on GET /v2/assets (minimumDeposit); this resource carries no amounts.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
assetSymbol | query | string | no | Restrict to one asset. Omit for every asset you can deposit. Accepts the rebased ticker of a tokenised equity as a synonym for its settled code — nothing here is scaled, so the two spellings name the same rows. |
Responses
| Code | Description | Body |
|---|---|---|
200 | Success. | object |
401 | application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable). | — |
403 | application/problem+json (RFC 9457) — branch on code, not on the status: insufficient_scope (not retryable), ip_not_allowed (not retryable), api_access_disabled (not retryable). | — |
429 | application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable). | — |
500 | application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable). | — |
502 | application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable). | — |
503 | application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable). | — |
Schemas
DepositAddressResource
| Field | Type | Description |
|---|---|---|
assetSymbol | string | Asset this address credits, as the SETTLED asset code — the same value every other v2 endpoint takes as assetSymbol. e.g. USDT. |
networkId | string | The chain this address is on. The SAME key as GET /v2/assets networks[].networkId and GET /v2/contacts crypto.networkId, so an address, an asset and a destination line up without parsing prose. ⚠️ An address is only valid on THIS chain. Several chains can share an address format — every EVM chain does — so the same string may appear under more than one networkId. Sending over a chain that is not listed here loses the funds: Skipo credits only the chains it sweeps. e.g. TRON. |
networkName | string | Human-readable chain name. Display only. e.g. Tron (TRC20). |
address | string | The address to send to. Stable: Skipo does not rotate or retire deposit addresses, so it is safe to cache and to re-display. Re-reading this endpoint never mints a new one. e.g. TDunhSa7jkTNuKrusUTU1MUHtqXoBPKETV. |
tag | string | null | Destination tag / memo, on the chains that route by it. null when the chain has none — never an empty string, so a missing tag and a blank tag cannot be confused. ⚠️ When tagRequired is true this value is MANDATORY. On those chains Skipo shares one address across accounts and the tag is the only thing that identifies yours: a deposit sent without it, or with the wrong one, does not credit automatically. e.g. null. |
tagRequired | boolean | Whether the chain routes by tag. Read THIS rather than testing tag for null — it is the chain's property, not this row's. e.g. false. |
tagType | any | null | Which of the two names this chain uses for the tag — MEMO (Stellar) or DESTINATION_TAG (XRP). null when tagRequired is false. A machine key, not a label: render it in your own copy and your own language. e.g. null. |
tagLabel | string | null | The chain's own word for the tag, as Skipo shows it. Display only; branch on tagType. e.g. Memo. |
Problem
| Field | Type | Description |
|---|---|---|
type | string | Stable problem-type URI. Resolves to docs for this error. e.g. https://docs.skipo.com/errors/rate_limited. |
title | string | Short, human-readable summary (stable, English). e.g. Rate limit exceeded. |
status | number | HTTP status code. e.g. 429. |
code | string | Stable machine-readable error code (equals the last path segment of type). e.g. rate_limited. |
retryable | boolean | Whether retrying the identical request may succeed. e.g. true. |
detail (optional) | string | Human-readable, possibly localized detail. |
instance (optional) | string | The request path that produced the error. |
traceId (optional) | string | Trace id — joins BigQuery api_request and Cloud Logging. |
Back to the endpoint reference. See also: Pagination · Errors · Ids and correlation.