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

# Generate a new smart deposit address

> Please use the identical endpoint under https://api.rhino.fi/sda. The sda endpoints here exist only for backwards compatibility and will be removed in the future. If you use the SDK, please upgrade to the latest version which uses the correct endpoint.



## OpenAPI

````yaml https://api.rhino.fi/bridge/swagger.json post /deposit-addresses
openapi: 3.1.0
info:
  title: Bridge API
  version: 0.0.1
  description: Functionality for interacting with Rhino bridge service
servers:
  - url: https://api.rhino.fi/bridge
security: []
tags:
  - name: quote
  - name: configs
  - name: history
  - name: swap
  - name: depositAddresses
paths:
  /deposit-addresses:
    post:
      tags:
        - depositAddresses
      summary: Generate a new smart deposit address
      description: >-
        Please use the identical endpoint under https://api.rhino.fi/sda. The
        sda endpoints here exist only for backwards compatibility and will be
        removed in the future. If you use the SDK, please upgrade to the latest
        version which uses the correct endpoint.
      operationId: depositAddresses.createDepositAddress
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDepositAddressPayload'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DepositAddress'
        '400':
          description: The request did not match the expected schema
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/HttpApiDecodeError'
                  - $ref: '#/components/schemas/InvalidJwt'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ExtensionNotEnabled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtensionNotEnabled'
        '422':
          description: DepositAddressChainsNotSupported
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/DepositAddressChainsNotSupported'
                  - $ref: >-
                      #/components/schemas/DepositAddressInvalidDestinationAddress
                  - $ref: >-
                      #/components/schemas/DepositAddressMultipleChainTypesNotAllowed
                  - $ref: '#/components/schemas/DepositAddressNoBridgableTokens'
                  - $ref: '#/components/schemas/DepositAddressTokenOutNotSupported'
                  - $ref: '#/components/schemas/DepositAddressInvalidPostBridgeData'
                  - $ref: '#/components/schemas/DepositAddressInvalidRefundAddress'
                  - $ref: '#/components/schemas/InvalidRequest'
        '429':
          description: DepositAddressRateLimitExceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DepositAddressRateLimitExceeded'
        '503':
          description: EndpointDisabledError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndpointDisabledError'
      deprecated: true
      security:
        - bearer: []
        - legacyApiKey: []
components:
  schemas:
    CreateDepositAddressPayload:
      type: object
      required:
        - depositChains
        - destinationChain
        - destinationAddress
      properties:
        depositChains:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/NonEmptyString'
          description: >-
            An array of blockchain names where deposit addresses should be
            created, e.g. ["ETHEREUM", "AVALANCHE"].
        addressNote:
          type: string
          description: >-
            The ability to add a note or label for the deposit address as a
            reference, e.g. "clientID12345678".
          title: maxLength(80)
          maxLength: 80
        reusePolicy:
          type: string
          enum:
            - create-new
            - reuse-existing
          description: >-
            Whether the Smart Deposit Address generated should be a re-use of an
            existing one which matches the given parameters or a new Smart
            Deposit Address. "create-new" will generate a new Smart Deposit
            Address and "reuse-existing" will provide an already generated Smart
            Deposit Address. If omitted, an existing matching Smart Deposit
            Address is reused where one is available, otherwise a new one is
            created.
        webhookUrl:
          type: string
          description: >-
            A URL that success or failure events related to this bridging
            transaction should be sent to, e.g.
            "https://client.com/rhino-webhook". If a webhook address has been
            set via the Rhino.fi Console then an entry here will override that.
          title: nonEmptyString
          minLength: 1
        refundAddress:
          type: string
          description: >-
            An address that funds should be returned to in the event that the
            transaction is unsuccessfully executed. However we recommend that
            this is not set and is managed on a case by case basis with your
            Rhino.fi Account Manager, to avoid situations whereby funds are
            returned to pooled addresses on an exchange or into an address that
            the user no longer has control over.
          title: nonEmptyString
          minLength: 1
        destinationChain:
          type: string
          description: >-
            The blockchain that the tokenOut will be bridged to, e.g.
            "AVALANCHE".
          title: nonEmptyString
          minLength: 1
        destinationAddress:
          type: string
          description: The address where tokenOut will be bridged to, e.g. "0x123...ABC".
          title: nonEmptyString
          minLength: 1
        postBridgeData:
          anyOf:
            - $ref: '#/components/schemas/ExtendedPostBridgeData'
            - $ref: '#/components/schemas/StarkwareBtcfiCampaignPostBridgeData'
            - $ref: '#/components/schemas/WirexWrapPostBridgeData'
            - $ref: '#/components/schemas/WirexWrapSandboxPostBridgeData'
            - $ref: '#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData'
            - $ref: '#/components/schemas/AaveV3SupplyPostBridgeData'
            - $ref: '#/components/schemas/RocketFoundationDepositPostBridgeData'
            - $ref: '#/components/schemas/MapleDepositPostBridgeData'
            - $ref: '#/components/schemas/EtherfiDepositPostBridgeData'
          description: >-
            Custom Routing Rules as configured by Rhino.fi for specific clients,
            e.g. to move funds after the initial bridge into a yield bearing
            vault. To understand more about how Routing Rules can help automate
            onchain actions and ensure that your funds land in an active state,
            please contact your Rhino.fi Customer Success Manager or speak to a
            member of the Rhino.fi sales team.
        tokenOut:
          type: string
          description: >-
            The token that is to be received on the destinationChain, e.g.
            "USDT".
          title: nonEmptyString
          minLength: 1
        bridgeIfNotSwappable:
          type: boolean
          description: >-
            If true, deposited tokens that cannot be swapped to the tokenOut
            will be bridged instead of causing a failed transaction. If false,
            any deposited tokens that cannot be swapped to the tokenOut will
            cause the transaction to fail. Must be used in conjunction with the
            tokenOut parameter, e.g. "true".
      additionalProperties: false
    DepositAddress:
      type: object
      required:
        - depositChain
        - depositAddress
        - destinationChain
        - supportedTokens
        - isActive
        - isPaused
      properties:
        depositChain:
          type: string
          description: >-
            The blockchain that the Smart Deposit Address is on and that
            deposits should be sent to, e.g. "ETHEREUM".
          title: nonEmptyString
          minLength: 1
        depositAddress:
          type: string
          description: >-
            The Rhino.fi Smart Deposit Address that the deposit has been sent
            to.
          title: nonEmptyString
          minLength: 1
        destinationChain:
          type: string
          description: The blockchain that the received tokens will be bridged to.
          title: nonEmptyString
          minLength: 1
        destinationAddress:
          type: string
          description: >-
            The blockchain address that the received tokens will be bridged /
            bridged and swapped to.
          title: nonEmptyString
          minLength: 1
        addressNote:
          type: string
          description: A note or label for the deposit address as a reference.
          title: maxLength(80)
          maxLength: 80
        supportedTokens:
          type: array
          items:
            type: object
            required:
              - symbol
              - address
              - maxDepositLimitUsd
              - minDepositLimitUsd
            properties:
              symbol:
                type: string
                description: The ticker of the asset, e.g. "ETH", "USDC".
                title: nonEmptyString
                minLength: 1
              address:
                type: string
                description: The token contract address on the depositChain.
                title: nonEmptyString
                minLength: 1
              maxDepositLimitUsd:
                type: number
                description: The maximum deposit amount in USD for this token.
                title: nonNegative
                minimum: 0
              minDepositLimitUsd:
                type: number
                description: The minimum deposit amount in USD for this token.
                title: nonNegative
                minimum: 0
            additionalProperties: false
          description: >-
            The assets that can be deposited to the depositAddress for this
            depositChain.
        isActive:
          type: boolean
          description: >-
            Whether the Smart Deposit Address is being actively monitored for
            incoming deposits of supportedTokens (true), in which case it will
            take the necessary bridge / bridge and swap actions, or is not
            currently being monitored or actioned by Rhino.fi (false). All Smart
            Deposit Addresses are set to isActive = true when generated and will
            be monitored and actioned for 10 years, however Smart Deposit
            Addresses can be disabled via request.
        isPaused:
          type: boolean
          description: >-
            Whether this deposit address is currently paused. Paused addresses
            reject incoming deposits until they are unpaused.
        postBridgeData:
          anyOf:
            - $ref: '#/components/schemas/ExtendedPostBridgeData'
            - $ref: '#/components/schemas/StarkwareBtcfiCampaignPostBridgeData'
            - $ref: '#/components/schemas/WirexWrapPostBridgeData'
            - $ref: '#/components/schemas/WirexWrapSandboxPostBridgeData'
            - $ref: '#/components/schemas/StarkwareBtcfiCampaignV2PostBridgeData'
            - $ref: '#/components/schemas/AaveV3SupplyPostBridgeData'
            - $ref: '#/components/schemas/RocketFoundationDepositPostBridgeData'
            - $ref: '#/components/schemas/MapleDepositPostBridgeData'
            - $ref: '#/components/schemas/EtherfiDepositPostBridgeData'
          description: >-
            Custom Routing Rules as configured by Rhino.fi for specific clients,
            e.g. to move funds after the initial bridge into a yield bearing
            vault. To understand more about how Routing Rules can help automate
            onchain actions and ensure that your funds land in an active state,
            please contact your Rhino.fi Customer Success Manager or speak to a
            member of the Rhino.fi sales team.
        tokenOut:
          type: string
          description: The token that will be received on the destinationChain.
        refundAddress:
          type: string
          description: >-
            The address that any funds would be returned to in the case that a
            transaction to this Smart Deposit Address is unsuccessful.
          title: nonEmptyString
          minLength: 1
        bridgeIfNotSwappable:
          type: boolean
          description: >-
            If true, deposited tokens that cannot be swapped to the tokenOut
            will be bridged instead of causing a failed transaction. If false,
            any deposited tokens that cannot be swapped to the tokenOut will
            cause the transaction to fail. Must be used in conjunction with the
            tokenOut parameter.
        chainMetadata:
          $ref: '#/components/schemas/ChainMetadata'
      additionalProperties: false
    HttpApiDecodeError:
      type: object
      required:
        - issues
        - message
        - _tag
      properties:
        issues:
          type: array
          items:
            $ref: '#/components/schemas/Issue'
        message:
          type: string
        _tag:
          type: string
          enum:
            - HttpApiDecodeError
      additionalProperties: false
      description: The request did not match the expected schema
    InvalidJwt:
      type: object
      required:
        - message
        - _tag
      properties:
        message:
          type: string
        _tag:
          type: string
          enum:
            - InvalidJwt
      additionalProperties: false
    Unauthorized:
      type: object
      required:
        - message
        - _tag
      properties:
        message:
          type: string
        _tag:
          type: string
          enum:
            - Unauthorized
      additionalProperties: false
    ExtensionNotEnabled:
      type: object
      required:
        - message
        - extension
        - _tag
      properties:
        message:
          type: string
        extension:
          $ref: '#/components/schemas/NonEmptyString'
        _tag:
          type: string
          enum:
            - ExtensionNotEnabled
      additionalProperties: false
    DepositAddressChainsNotSupported:
      type: object
      required:
        - chains
        - _tag
      properties:
        chains:
          type: array
          items:
            $ref: '#/components/schemas/NonEmptyString'
        _tag:
          type: string
          enum:
            - DepositAddressChainsNotSupported
      additionalProperties: false
    DepositAddressInvalidDestinationAddress:
      type: object
      required:
        - chain
        - address
        - _tag
      properties:
        chain:
          $ref: '#/components/schemas/NonEmptyString'
        address:
          $ref: '#/components/schemas/NonEmptyString'
        _tag:
          type: string
          enum:
            - DepositAddressInvalidDestinationAddress
      additionalProperties: false
    DepositAddressMultipleChainTypesNotAllowed:
      type: object
      required:
        - chainTypes
        - _tag
      properties:
        chainTypes:
          type: array
          items:
            $ref: '#/components/schemas/NonEmptyString'
        _tag:
          type: string
          enum:
            - DepositAddressMultipleChainTypesNotAllowed
      additionalProperties: false
    DepositAddressNoBridgableTokens:
      type: object
      required:
        - from
        - to
        - _tag
      properties:
        from:
          $ref: '#/components/schemas/NonEmptyString'
        to:
          $ref: '#/components/schemas/NonEmptyString'
        _tag:
          type: string
          enum:
            - DepositAddressNoBridgableTokens
      additionalProperties: false
    DepositAddressTokenOutNotSupported:
      type: object
      required:
        - tokenOut
        - _tag
      properties:
        tokenOut:
          type: string
        _tag:
          type: string
          enum:
            - DepositAddressTokenOutNotSupported
      additionalProperties: false
    DepositAddressInvalidPostBridgeData:
      type: object
      required:
        - message
        - _tag
      properties:
        message:
          type: string
        _tag:
          type: string
          enum:
            - DepositAddressInvalidPostBridgeData
      additionalProperties: false
    DepositAddressInvalidRefundAddress:
      type: object
      required:
        - message
        - _tag
      properties:
        message:
          type: string
        _tag:
          type: string
          enum:
            - DepositAddressInvalidRefundAddress
      additionalProperties: false
    InvalidRequest:
      type: object
      required:
        - message
        - _tag
      properties:
        message:
          type: string
        _tag:
          type: string
          enum:
            - InvalidRequest
      additionalProperties: false
    DepositAddressRateLimitExceeded:
      type: object
      required:
        - message
        - limit
        - _tag
      properties:
        message:
          $ref: '#/components/schemas/NonEmptyString'
        limit:
          anyOf:
            - $ref: '#/components/schemas/CountLimitExceeded'
            - $ref: '#/components/schemas/WindowLimitExceeded'
        _tag:
          type: string
          enum:
            - DepositAddressRateLimitExceeded
      additionalProperties: false
    EndpointDisabledError:
      type: object
      required:
        - message
        - _tag
      properties:
        message:
          type: string
        _tag:
          type: string
          enum:
            - EndpointDisabledError
      additionalProperties: false
    NonEmptyString:
      type: string
      description: a non empty string
      title: nonEmptyString
      minLength: 1
    ExtendedPostBridgeData:
      type: object
      required:
        - _tag
        - vaultId
      properties:
        _tag:
          type: string
          enum:
            - extended
        vaultId:
          $ref: '#/components/schemas/NonNegative'
          description: A variable relating to the specific post bridge action.
          title: int
          type: integer
      additionalProperties: false
    StarkwareBtcfiCampaignPostBridgeData:
      type: object
      required:
        - _tag
      properties:
        _tag:
          type: string
          enum:
            - starkwarebtcfi
      additionalProperties: false
    WirexWrapPostBridgeData:
      type: object
      required:
        - _tag
      properties:
        _tag:
          type: string
          enum:
            - wirexwrap
      additionalProperties: false
    WirexWrapSandboxPostBridgeData:
      type: object
      required:
        - _tag
      properties:
        _tag:
          type: string
          enum:
            - wirexwrapsandbox
      additionalProperties: false
    StarkwareBtcfiCampaignV2PostBridgeData:
      type: object
      required:
        - _tag
        - spans
      properties:
        _tag:
          type: string
          enum:
            - starkwarebtcfiv2
        spans:
          type: array
          items:
            $ref: '#/components/schemas/StarknetFelt'
          description: A variable relating to the specific post bridge action.
          title: maxItems(70)
          maxItems: 70
      additionalProperties: false
    AaveV3SupplyPostBridgeData:
      type: object
      required:
        - _tag
      properties:
        _tag:
          type: string
          enum:
            - aavev3supply
      additionalProperties: false
    RocketFoundationDepositPostBridgeData:
      type: object
      required:
        - _tag
      properties:
        _tag:
          type: string
          enum:
            - rocketfoundationdeposit
      additionalProperties: false
    MapleDepositPostBridgeData:
      type: object
      required:
        - _tag
      properties:
        _tag:
          type: string
          enum:
            - mapledeposit
      additionalProperties: false
    EtherfiDepositPostBridgeData:
      type: object
      required:
        - _tag
      properties:
        _tag:
          type: string
          enum:
            - etherfideposit
      additionalProperties: false
    ChainMetadata:
      type: object
      required:
        - _tag
        - baseAddress
        - memoId
      properties:
        _tag:
          type: string
          enum:
            - STELLAR
        baseAddress:
          type: string
          description: >-
            The Stellar base account (G…) that the muxed deposit address
            resolves to. Clients can deposit to this address instead of the
            muxed (M…) address, provided they also set the memo.
        memoId:
          type: string
          description: >-
            The Stellar memo id that must be supplied alongside the base address
            when depositing to it, so that Rhino.fi can attribute the deposit to
            the correct muxed (M…) deposit address.
      additionalProperties: false
      description: >-
        Optional chain-specific metadata. Currently only populated for Stellar
        SDAs, where it exposes the base address and memo id that the muxed
        deposit address resolves to.
    Issue:
      type: object
      required:
        - _tag
        - path
        - message
      properties:
        _tag:
          type: string
          enum:
            - Pointer
            - Unexpected
            - Missing
            - Composite
            - Refinement
            - Transformation
            - Type
            - Forbidden
          description: The tag identifying the type of parse issue
        path:
          type: array
          items:
            $ref: '#/components/schemas/PropertyKey'
          description: The path to the property where the issue occurred
        message:
          type: string
          description: A descriptive message explaining the issue
      additionalProperties: false
      description: >-
        Represents an error encountered while parsing a value to match the
        schema
    CountLimitExceeded:
      type: object
      required:
        - allowed
        - current
        - _tag
      properties:
        allowed:
          $ref: '#/components/schemas/NonNegativeInt'
        current:
          $ref: '#/components/schemas/NonNegativeInt'
        _tag:
          type: string
          enum:
            - CountLimitExceeded
      additionalProperties: false
    WindowLimitExceeded:
      type: object
      required:
        - allowed
        - current
        - durationMs
        - _tag
      properties:
        allowed:
          $ref: '#/components/schemas/NonNegativeInt'
        current:
          $ref: '#/components/schemas/NonNegativeInt'
        durationMs:
          $ref: '#/components/schemas/DurationFromMillis'
        _tag:
          type: string
          enum:
            - WindowLimitExceeded
      additionalProperties: false
    NonNegative:
      type: number
      description: a non-negative number
      title: nonNegative
      minimum: 0
    StarknetFelt:
      type: string
      description: a string that will be trimmed
    PropertyKey:
      anyOf:
        - type: string
        - type: number
        - type: object
          required:
            - _tag
            - key
          properties:
            _tag:
              type: string
              enum:
                - symbol
            key:
              type: string
          additionalProperties: false
          description: an object to be decoded into a globally shared symbol
    NonNegativeInt:
      type: integer
      description: an integer
      title: int
      minimum: 0
    DurationFromMillis:
      type: number
      description: a non-negative number to be decoded into a Duration
      title: nonNegative
      minimum: 0
  securitySchemes:
    bearer:
      description: JWT token for authentication
      type: http
      scheme: bearer
    legacyApiKey:
      type: apiKey
      name: authorization
      in: header

````