<!--
Sitemap:
- [Stridge — The infrastructure bridging crypto payments](/index): Crypto payment infrastructure for modern fintechs. Accept on any chain, settle through the cheapest route, and pay out in any asset — all from a single SDK.
- [API Reference](/api-reference/): Stridge REST API reference — complete endpoint documentation for deposits, payouts, Universal Deposit Addresses, settlements, and supported networks.
- [Changelog](/changelog): Release notes for Stridge SDKs and developer tools.
- [Stridge Gateway Kit](/gateway/): Drop-in deposit and withdraw flows for crypto apps. Mount a single React provider, render a dialog, and ship any-to-any payments in minutes.
- [Getting Started](/getting-started): Get started with Stridge — pick your integration shape, generate keys, and make your first call from the React Kit, the TypeScript SDK, or the REST API.
- [Supported Networks](/networks): Blockchain networks and tokens supported by the Stridge payment infrastructure — network_id (SLIP-44), EIP-155 chain IDs, and the available native and stablecoin assets per chain.
- [TypeScript SDK](/sdk/): TypeScript client for the Stridge Gateway API. Used internally by @stridge/kit and exposed for backend and server integrations that need direct API access.
- [Security](/security/): Stridge Security — how the Stridge KMS protects wallet keys and signs transactions without ever exposing private keys.
- [Universal Deposit Addresses](/uda/): Universal Deposit Addresses (UDA) — one multi-chain deposit address per user, with automatic cross-chain settlement to a fixed destination.
- [Webhooks](/webhooks/): Stridge webhooks — signed HTTP POSTs for deposits, UDA settlements, wallets, and balances. Verify HMAC, handle retries, and use the Dashboard to inspect event payloads.
- [Gateway HTTP API](/gateway/http): Raw HTTP contract for the Stridge Gateway — supported-assets catalogue, gateway/start provisioning, and per-owner status polling.
- [UDA Quickstart](/uda/quickstart): Create your first Universal Deposit Address and trace a deposit end-to-end — from the POST call, through webhooks, to a settled transaction on the destination chain.
- [Settlements](/uda/settlements): UDA settlements — lifecycle, routing scenarios, fees, and the settlement record API. Reconcile deposits with webhooks; the Dashboard shows each settlement end-to-end.
- [UDA Webhook Events](/uda/webhooks): Reference for the three webhook events UDA deposits emit — deposit.confirmed, uda.settlement.created, and uda.settlement.completed — with payloads and lifecycle guidance.
- [Get a single deposit transaction by ID](/api-reference/deposits/get-a-single-deposit-transaction-by-id): Get details of a specific deposit transaction by its unique ID
- [Get a single deposit transaction by transaction id](/api-reference/deposits/get-a-single-deposit-transaction-by-transaction-id): One row per matching tx_id; multiple same-tx transfers are separate rows. Returns the latest by on-chain time (then id). Use GET /v1/deposits with tx_id filter
- [List deposit transactions](/api-reference/deposits/list-deposit-transactions): Get a paginated list of deposit transactions for the authenticated tenant with filtering support
- [Get blockchain assets](/api-reference/networks/get-blockchain-assets): Get a list of all supported blockchain assets (tokens and native assets).
- [Get blockchain networks](/api-reference/networks/get-blockchain-networks): Get a list of all supported blockchain networks.
- [Get network list](/api-reference/networks/get-network-list): Get a public list of all networks with category grouping.
- [Get tenant network](/api-reference/networks/get-tenant-network): Get a specific network for the authenticated tenant by network ID and contract address
- [Get tenant networks](/api-reference/networks/get-tenant-networks): Get a list of networks available to the authenticated tenant with their enabled status
- [Update tenant network status](/api-reference/networks/update-tenant-network-status): Update the enabled status of a network for the authenticated tenant
- [Create payout](/api-reference/payouts/create-payout): Creates a new payout from the tenant's vault wallet to an external address
- [Create payout with USD amount](/api-reference/payouts/create-payout-with-usd-amount): Creates a new payout converting a USD amount to crypto at current rate
- [Get payout by ID](/api-reference/payouts/get-payout-by-id): Retrieves a payout by its ID
- [Get vault address by network](/api-reference/payouts/get-vault-address-by-network): Get the vault address for a specific network
- [Get vault balances](/api-reference/payouts/get-vault-balances): Get balances for all vault addresses with optional filtering
- [Get vault total value](/api-reference/payouts/get-vault-total-value): Get the total USD value across all vault assets
- [List payouts](/api-reference/payouts/list-payouts): Lists payouts for a vault with filtering and pagination
- [List vault addresses](/api-reference/payouts/list-vault-addresses): Get all vault addresses for the authenticated tenant
- [List vaults](/api-reference/payouts/list-vaults): List all vault accounts for the authenticated tenant
- [Transfer from vault to external address](/api-reference/payouts/transfer-from-vault-to-external-address): Transfer assets from the tenant's vault wallet to an external address.
- [Get a settlement](/api-reference/settlements/get-a-settlement): Fetch a single settlement by ID. A settlement is created per confirmed deposit on a UDA address and carries the lifecycle state, scenario, and routing tx ids.
- [Create a UDA address](/api-reference/uda/create-a-uda-address): Allocate a new Universal Deposit Address for the tenant. If a UDA for the (tenant, owner) pair already exists, the existing record is returned with 200 instead
- [Get a cross-chain / cross-token quote](/api-reference/uda/get-a-cross-chain-cross-token-quote): Returns an indicative quote for routing from/to given (chain, token) pair. USD fields are omitted until a price feed is wired in.
- [Get a UDA address](/api-reference/uda/get-a-uda-address): Fetch a single UDA address by ID, including its delegation status.
- [List settlements for a UDA address](/api-reference/uda/list-settlements-for-a-uda-address): List all settlements that have been created for a given UDA address, optionally paginated.
- [List UDA addresses](/api-reference/uda/list-uda-addresses): List UDA addresses belonging to the authenticated tenant. Supports filtering by owner and status and pagination via limit/offset.
- [List UDA-supported chains](/api-reference/uda/list-uda-supported-chains): Returns every chain with `uda_support=true` along with its native currency and configured token contracts. Rows are grouped by network.
- [Retire a UDA address](/api-reference/uda/retire-a-uda-address): Mark a UDA address as retired. Future deposits will no longer trigger settlements; any already-confirmed settlements continue to run to completion.
- [Update a UDA address](/api-reference/uda/update-a-uda-address): Update the destination, accepted tokens, or status of an existing UDA. Owner is immutable.
-->

<DocsGrid>
  <DocsMain>
    <EndpointTag>UDA</EndpointTag>

    # Update a UDA address

    Update the destination, accepted tokens, or status of an existing UDA. Owner is immutable.

    <Playground method="PATCH" path="/v1/uda/{id}" baseUrl="https://api.stridge.com" summary={"Update a UDA address"} description={"Update the destination, accepted tokens, or status of an existing UDA. Owner is immutable."} parameters={[{"name":"X-API-Key","in":"header","type":"string","required":true,"description":"Your Stridge API key."},{"name":"id","in":"path","type":"string","required":true,"description":"UDA address ID"},{"name":"accepted_tokens","in":"body","type":"string[]","required":false,"description":""},{"name":"destination","in":"body","type":"object","required":false,"description":""},{"name":"status","in":"body","type":"string","required":false,"description":""}]} responses={[{"status":200,"description":"Updated UDA address","example":{"id":"31d32b68-e455-42b7-9d39-d2904adbe1b8","status":"active","owner":"user_8a7f3c","created_at":"2026-04-24T06:54:02Z","destination":{"address":"0x8f4a2c9e1b3d7f5a6c8e0d9b2a4c6e8f0a2c4d6e","eip155_id":"42161","network_id":"9001","network_name":"arbitrum","token_address":"0xaf88d065e77c8cc2239327c5edb3a432268e5831","token_decimals":6,"token_symbol":"USDC"},"deposit_addresses":[{"eip155_id":"1","network_name":"ethereum","address":"0x3b7e9d1a5c2f4b8e6d0c9f3a2b1e4d5c7a9b8e0f","accepted_tokens":[{"symbol":"USDC","address":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","decimals":6},{"symbol":"USDT","address":"0xdac17f958d2ee523a2206206994597c13d831ec7","decimals":6}]},{"eip155_id":"8453","network_name":"base","address":"0x3b7e9d1a5c2f4b8e6d0c9f3a2b1e4d5c7a9b8e0f","accepted_tokens":[{"symbol":"USDC","address":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","decimals":6},{"symbol":"USDT","address":"0xfde4c96c8593536e31f229ea8f37b2ada2699bb2","decimals":6}]},{"eip155_id":"56","network_name":"bsc","address":"0x3b7e9d1a5c2f4b8e6d0c9f3a2b1e4d5c7a9b8e0f","accepted_tokens":[{"symbol":"USDC","address":"0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d","decimals":18},{"symbol":"USDT","address":"0x55d398326f99059ff775485246999027b3197955","decimals":18}]}]}},{"status":400,"description":"Invalid request","example":{"success":false,"code":400,"error":"Invalid request"}}]} bodyExample={{"accepted_tokens":["USDC"],"destination":{"address":"0x8f4a2c9e1b3d7f5a6c8e0d9b2a4c6e8f0a2c4d6e","asset_symbol":"USDC","network_id":"9001"},"status":"active"}} />

    ## Authorizations

    <ParamField name="X-API-Key" type="string" location="header" required>
      Your Stridge API key. Include it in every request header.
    </ParamField>

    ## Path parameters

    <ParamField name="id" type="string" required location="path">
      UDA address ID
    </ParamField>

    ## Body

    <ParamField name="accepted_tokens" type="string[]" location="body">
      The accepted tokens.
    </ParamField>

    <ParamField name="destination" type="object" location="body">
      The destination.
    </ParamField>

    <ParamField name="status" type="string" location="body">
      The status.
    </ParamField>

    ## Response

    <ResponseField name="success" type="boolean" example={true}>
      Indicates whether the request succeeded.
    </ResponseField>

    <ResponseField name="message" type="string" example="operation completed successfully">
      Human-readable status message.
    </ResponseField>

    <ResponseField name="data" type="object">
      The response payload.
    </ResponseField>

    <Expandable title="data fields" defaultOpen>
      <ResponseField name="created_at" type="string">
        The created at.
      </ResponseField>

      <ResponseField name="deposit_addresses" type="object[]">
        The deposit addresses.
      </ResponseField>

      <ResponseField name="destination" type="object">
        The destination.
      </ResponseField>

      <ResponseField name="id" type="string">
        The ID.
      </ResponseField>

      <ResponseField name="owner" type="string">
        The owner.
      </ResponseField>

      <ResponseField name="status" type="string">
        The status.
      </ResponseField>
    </Expandable>
  </DocsMain>

  <DocsAside>
    ### Request

    <LangTabs>
      <Sample lang="curl">
        ```bash
        curl -X PATCH 'https://api.stridge.com/v1/uda/{id}' \
          -H 'X-API-Key: your_api_key_here' \
          -H 'Content-Type: application/json' \
          -d '{
          "accepted_tokens": [
            "USDC"
          ],
          "destination": {
            "address": "0x8f4a2c9e1b3d7f5a6c8e0d9b2a4c6e8f0a2c4d6e",
            "asset_symbol": "USDC",
            "network_id": "9001"
          },
          "status": "active"
        }'
        ```
      </Sample>

      <Sample lang="node">
        ```ts
        const res = await fetch('https://api.stridge.com/v1/uda/{id}', {
          method: 'PATCH',
          headers: {
            'X-API-Key': process.env.STRIDGE_API_KEY!,
            'Content-Type': 'application/json',
          },
          body: JSON.stringify({
          "accepted_tokens": [
            "USDC"
          ],
          "destination": {
            "address": "0x8f4a2c9e1b3d7f5a6c8e0d9b2a4c6e8f0a2c4d6e",
            "asset_symbol": "USDC",
            "network_id": "9001"
          },
          "status": "active"
        }),
        })

        const data = await res.json()
        ```
      </Sample>

      <Sample lang="python">
        ```python
        import requests

        response = requests.patch(
            'https://api.stridge.com/v1/uda/{id}',
            headers={'X-API-Key': 'your_api_key_here'}, json={
          "accepted_tokens": [
            "USDC"
          ],
          "destination": {
            "address": "0x8f4a2c9e1b3d7f5a6c8e0d9b2a4c6e8f0a2c4d6e",
            "asset_symbol": "USDC",
            "network_id": "9001"
          },
          "status": "active"
        },
        )
        data = response.json()
        ```
      </Sample>
    </LangTabs>

    ### Response

    <ResponseTabs>
      <Response status={200}>
        ```json
        {
          "id": "31d32b68-e455-42b7-9d39-d2904adbe1b8",
          "status": "active",
          "owner": "user_8a7f3c",
          "created_at": "2026-04-24T06:54:02Z",
          "destination": {
            "address": "0x8f4a2c9e1b3d7f5a6c8e0d9b2a4c6e8f0a2c4d6e",
            "eip155_id": "42161",
            "network_id": "9001",
            "network_name": "arbitrum",
            "token_address": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
            "token_decimals": 6,
            "token_symbol": "USDC"
          },
          "deposit_addresses": [
            {
              "eip155_id": "1",
              "network_name": "ethereum",
              "address": "0x3b7e9d1a5c2f4b8e6d0c9f3a2b1e4d5c7a9b8e0f",
              "accepted_tokens": [
                {
                  "symbol": "USDC",
                  "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
                  "decimals": 6
                },
                {
                  "symbol": "USDT",
                  "address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
                  "decimals": 6
                }
              ]
            },
            {
              "eip155_id": "8453",
              "network_name": "base",
              "address": "0x3b7e9d1a5c2f4b8e6d0c9f3a2b1e4d5c7a9b8e0f",
              "accepted_tokens": [
                {
                  "symbol": "USDC",
                  "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
                  "decimals": 6
                },
                {
                  "symbol": "USDT",
                  "address": "0xfde4c96c8593536e31f229ea8f37b2ada2699bb2",
                  "decimals": 6
                }
              ]
            },
            {
              "eip155_id": "56",
              "network_name": "bsc",
              "address": "0x3b7e9d1a5c2f4b8e6d0c9f3a2b1e4d5c7a9b8e0f",
              "accepted_tokens": [
                {
                  "symbol": "USDC",
                  "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
                  "decimals": 18
                },
                {
                  "symbol": "USDT",
                  "address": "0x55d398326f99059ff775485246999027b3197955",
                  "decimals": 18
                }
              ]
            }
          ]
        }
        ```
      </Response>

      <Response status={400}>
        ```json
        {
          "success": false,
          "code": 400,
          "error": "Invalid request"
        }
        ```
      </Response>
    </ResponseTabs>
  </DocsAside>
</DocsGrid>
