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

# Create bridged address



## OpenAPI

````yaml post /api/v1/bridging/address
openapi: 3.0.1
info:
  title: Mesh Connect Integration API
  description: >-

    Mesh allows users to connect accounts of financial institutions,

    crypto exchanges, and self-custody wallets. Mesh handles credential

    validation, MFA, and error handling for each integration. After

    an account is connected, Mesh allows client applications to read holdings,

    transaction history and balances and execute crypto transfers (with user
    approval).
  version: '1.0'
servers:
  - url: https://integration-api.meshconnect.com
  - url: https://sandbox-integration-api.meshconnect.com
security:
  - Client-Secret: []
    Client-Id: []
tags:
  - name: BlockchainQuery
  - name: CatalogGasSponsorship
  - name: CatalogSubscription
  - name: TokenNetworkPairs
  - name: RampKyc
  - name: RampPayment
  - name: RampSession
  - name: Integrations account information
  - name: Managed Account Authentication
    description: >-
      The recommended approach for account authentication. Front manages
      multiple authentication flows and handles all authentication steps such as
      MFA codes and OAuth redirect through our web and mobile SDKs.
  - name: Portfolio
    description: |


      ### Supported integrations:
      ```Robinhood```
      ```Coinbase```
      ```Kraken```
      ```CryptoCom```
      ```OpenSea```
      ```Binance```
      ```Gemini```
      ```OkCoin```
      ```KuCoin```
      ```CexIo```
      ```BinanceInternational```
      ```Bitstamp```
      ```GateIo```
      ```Okx```
      ```BitFlyer```
      ```Coinlist```
      ```Huobi```
      ```Bitfinex```
      ```KrakenDirect```
      ```BinanceInternationalDirect```
      ```BitfinexDirect```
      ```Bybit```
      ```Paxos```
      ```CoinbasePrime```
      ```BtcTurkDirect```
      ```KuCoinDirect```
      ```OkxOAuth```
      ```ParibuDirect```
      ```RobinhoodConnect```
      ```BlockchainCom```
      ```BitsoDirect```
      ```BinanceOAuth```
      ```BybitDirect```
      ```ParibuOAuth```
      ```BinanceTrDirect```
      ```BybitDirectMobile```
      ```Sandbox```
      ```Uphold```
      ```SandboxCoinbase```
      ```KrakenOAuth```
      ```BluvoKrakenOAuth```
      ```SandboxKrakenOAuth```
      ```DeFiWallet```
  - name: Balance
    description: |


      ### Supported integrations:
      ```Robinhood```
      ```Coinbase```
      ```Kraken```
      ```CryptoCom```
      ```Binance```
      ```Gemini```
      ```OkCoin```
      ```KuCoin```
      ```CexIo```
      ```BinanceInternational```
      ```Bitstamp```
      ```GateIo```
      ```Okx```
      ```BitFlyer```
      ```Coinlist```
      ```Huobi```
      ```Bitfinex```
      ```KrakenDirect```
      ```BinanceInternationalDirect```
      ```BitfinexDirect```
      ```Bybit```
      ```Paxos```
      ```CoinbasePrime```
      ```BtcTurkDirect```
      ```KuCoinDirect```
      ```OkxOAuth```
      ```ParibuDirect```
      ```RobinhoodConnect```
      ```BlockchainCom```
      ```BitsoDirect```
      ```BybitDirect```
      ```ParibuOAuth```
      ```BinanceTrDirect```
      ```BybitDirectMobile```
      ```Sandbox```
      ```Uphold```
      ```SandboxCoinbase```
      ```KrakenOAuth```
      ```BluvoKrakenOAuth```
      ```SandboxKrakenOAuth```
  - name: Transfers
    description: >


      ### Supported integrations:

      ```Robinhood```

      ```Coinbase```

      ```Kraken```

      ```CryptoCom```

      ```Binance```

      ```Gemini```

      ```OkCoin```

      ```KuCoin```

      ```BinanceInternational```

      ```Bitstamp```

      ```GateIo```

      ```Okx```

      ```Huobi```

      ```Bitfinex```

      ```KrakenDirect```

      ```BinanceInternationalDirect```

      ```BitfinexDirect```

      ```Bybit```

      ```Paxos```

      ```CoinbasePrime```

      ```BtcTurkDirect```

      ```ParibuDirect```

      ```RobinhoodConnect```

      ```BlockchainCom```

      ```BinanceConnect```

      ```RevolutConnect```

      ```BinancePay```

      ```BybitDirect```

      ```ParibuOAuth```

      ```PayPalConnect```

      ```CoinbaseRamp```

      ```BybitDirectMobile```

      ```Sandbox```

      ```CryptoComPay```

      ```Uphold```

      ```BinancePayOnchain```

      ```SandboxCoinbase```

      ```BybitPay```

      ```CashApp```

      ```SandboxKrakenOAuth```

      ```KrakPay```

      ```OkxPay```

      ```BybitPayPsp```

      ```DeFiWallet```



      ### Integration-specific notes:



      #### Robinhood:



      Cryptocurrency transfers should be enabled in Robinhood settings.
      Transfers are disabled by default, enabling them for end users requires a
      review from Robinhood.


      Please note:
       * `MfaCode` parameter is required to initiate a transaction in Robinhood.
       * The user's security settings should be configured to use an authenticator application.
       * Robinhood doesn't allow initiation of transactions if the authenticator application is not configured.


      #### Coinbase:



      `MfaCode` parameter should be used to initiate transactions in Coinbase.
       * If the end user's Coinbase account is configured to use text messages (SMS) for two factor authentication, the API will return `MfaRequired` status, and a text code will then be sent by Coinbase. The code is expected to be provided in the subsequent call using the `MfaCode` request field
       * If the account is configured to use an authenticator application, the API is expecting to get the code in the `MfaCode` request field.


      #### Kraken:



      Kraken requires the explicit chain name to be provided (e.g. `Dogecoin` or
      `Ethereum (ERC20)`). The list of possible chains can be obtained by
      calling `symbol/details` endpoint.


      To initiate a transaction, a Kraken Address Key name should be provided in
      `TargetAddress` field. Target address should be added using Kraken UI,
      then its name should be used.



      #### Binance:



      `Enable Withdrawals` permission should be given to the user's API key to
      initiate transfers with Binance Us.


      Binance requires adding the IP address to the list of trusted IPs to be
      able to create API keys with transfer permission.
       * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.
       * By default, the permission to enable withdrawals is turned off. If the end user's API key does not have the permission, asset transfers will not be available.


      #### KuCoin:



      KuCoin requires adding the IP address to the list of trusted IPs to be
      able to create API keys with transfer permission.


      `Fee` parameter should be used to initiate a transaction in KuCoin.


      Please note:
       * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.
       * All currencies have their minimum `fee` and `amount` requirements. Please use `symbol/details` endpoint to get this data for a particular symbol.
       * KuCoin requires chain name to be provided for getting deposit address or initiating a cryptocurrency transfer. Some cryptocurrencies are supported over multiple chains. It's recommended to use `symbol/details` endpoint to get the list of supported chains and show it to the end user to select a target one.


      #### BinanceInternational:



      `Enable Withdrawals` permission should be given to the user's API key to
      initiate transfers with Binance International.


      Binance requires adding the IP address to the list of trusted IPs to be
      able to create API keys with transfer permission.
       * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.
       * By default, the permission to enable withdrawals is turned off. If the end user's API key does not have the permission, asset transfers will not be available.


      #### GateIo:



      Gate.io requires adding IP address to the list of trusted IP addresses to
      be able to initiate a cryptocurrency transfers.


      Withdrawal address should be already verified or added on the Gate.io UI
      (in mobile application or on the web site).
       * Please reach out to Front to get the static IP address for withdrawals. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.
       * Only verified withdrawal blockchain addresses are allowed for withdrawal with Gate.io API.
       * Gate.io requires chain name to be provided for getting deposit address or initiating a cryptocurrency transfer. Some cryptocurrencies are supported over multiple chains. It's recommended to use `symbol/details` endpoint to get the list of supported chains and show it to the end user to select a target one.


      #### Huobi:



      Warning: Huobi does not refund executed deposits that are below the
      `Minimum Deposit Amount`
       * Please check the MinimumDepositAmount in Get Deposit Address response in order to avoid making a deposit below the minimum amount
       * Huobi does not allow withdrawals to addresses that are not white-listed, please add the address that you would like to withdraw to the white list of addresses through the UI so that a withrawal can be processed


      #### Bitfinex:
       * The hash of transfer is not available when making a transfer in Bitfinex. To get the hash please re-query the transfer using the transaction id.
       * Bitfinex does not separate sub-accounts when returning the list of transfers.Therefore the same list of transfers is returned for all Bitfinex sub-accounts.


      #### KrakenDirect:



      Kraken requires the explicit chain name to be provided (e.g. `Dogecoin` or
      `Ethereum (ERC20)`). The list of possible chains can be obtained by
      calling `symbol/details` endpoint.


      To initiate a transaction, a Kraken Address Key name should be provided in
      `TargetAddress` field. Target address should be added using Kraken UI,
      then its name should be used.



      #### BitfinexDirect:
       * The hash of transfer is not available when making a transfer in Bitfinex. To get the hash please re-query the transfer using the transaction id.
       * Bitfinex does not separate sub-accounts when returning the list of transfers.Therefore the same list of transfers is returned for all Bitfinex sub-accounts.
  - name: Assets
  - name: Managed Transfers
  - name: Wallets
  - name: Headless Bridging
    description: >-
      Mesh's cross-chain bridging engine as a pure API, with no Mesh-hosted UI
      or SDK. Discover bridged routes, quote a pay-in amount and generate a
      single-use deposit address that bridges funds to the destination the user
      selected. Enabled per client; see
      https://docs.meshconnect.com/resources/headless-bridging.
paths:
  /api/v1/bridging/address:
    post:
      tags:
        - Headless Bridging
      summary: >-
        Create a one-time bridging deposit address for a selected
        origin→destination pair.
      description: "Returns a single-use address on the <b>origin</b> network for the <b>origin</b> asset. Funds must be\r\nsent to that address on that chain; Mesh detects the deposit, executes the bridge, and delivers\r\nto `destination.address` on the destination network.\r\n            \r\n**Deposit-style (user pay-in):** discover routes with `POST /api/v1/bridging/routes/deposit`.\r\nThe end user sends from their wallet to the returned deposit address.\r\n            \r\n**Withdrawal-style (platform pay-in):** discover routes with `POST /api/v1/bridging/routes/withdrawal`\r\nto pair an omnibus `origin` with the user’s chosen destination. Your platform sends the origin\r\nasset from that omnibus wallet to the deposit address; the user’s withdrawal address is `destination.address`.\r\n            \r\n**Idempotency:** a `transactionId` is single-use per `userId`. While the transfer is still\r\npending, re-submitting the same `transactionId` + `userId` with the same origin, destination and\r\naddress returns the previously created address unchanged (same `transferId`, same\r\n`expirationTime`) rather than generating a new one, so network-error retries are safe. Re-submitting\r\nwith a different origin, destination or address is a `400`. Once the transfer has reached a terminal\r\nstate (succeeded, failed or expired), the same `transactionId` returns `409`; use a new\r\n`transactionId` for a new address.\r\n            \r\n**Expiry:** `constraints.expirationTime` is fixed at creation (6 hours by default) and is the point at\r\nwhich Mesh stops tracking the address. A transfer that has not been funded by then is marked failed; a\r\npay-in that arrives before then is bridged and the transfer moves to succeeded as soon as it settles. Do\r\nnot display or use the address after `expirationTime`: the provider may still bridge funds sent\r\nlater, but Mesh will not track them automatically.\r\n            \r\n**Minimum amount:** `constraints.minimumAmount` is the smallest pay-in (in the origin asset) Mesh\r\naccepts on this route: the stricter of the route's configured minimum and the platform USD floor\r\nconverted at the current price. It is the same value `POST /api/v1/bridging/quote` returns in its\r\n`constraints` and enforces with `amountBelowMinimum`. `constraints.maximumAmount` is the\r\nplatform USD cap converted at the current price (enforced on `/quote` with `amountExceedsMaximum`);\r\nthe provider's available liquidity may be lower and surfaces at quote time the same way.\r\n            \r\n**Typical flow:**\r\n1. Discover routes (`routes/deposit` or `routes/withdrawal`) and fix `origin` + `destination`\r\n   (destination includes the recipient withdrawal address when applicable).\r\n2. Call this endpoint with those values.\r\n3. Show the deposit address, constraints (`minimumAmount`, `expirationTime`, `singleUseAddress`),\r\n   and warnings to whoever will broadcast the pay-in (end user or your custody system).\r\n4. After the pay-in is sent on-chain, Mesh completes the bridge to the destination address.\r\n5. Use `transferId` from `tracking` for webhooks or the transfer status API.\r\n            \r\n**Important:** the deposit address is single-use; do not reuse it."
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/CreateBridgedAddressRequest'
              description: "Request body for `POST /api/v1/bridging/address`.\r\n\n\r\nUsed for both pay-in (deposit) and platform-led pay-in (withdrawal-style) bridging: the address returned\r\nis always on Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.Origin; funds must be sent there before Mesh can deliver to Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.Destination.\r\n\n\r\nThis endpoint is idempotent per Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.TransactionId scoped to Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.UserId and B2B client/environment:\r\nretries with the same origin, destination (network, asset, and Org.Front.Core.Contracts.Models.Bridging.Headless.BridgingDestinationWithAddressSpec.Address),\r\nand route return the same deposit address. Reusing the same Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.TransactionId with any different origin or\r\ndestination (network, asset, or address) returns an error and does not create a second transfer preview.\r\n"
      responses:
        '200':
          description: Bridging deposit address created or retrieved (idempotent hit).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBridgedAddressResponseApiResult'
        '400':
          description: >-
            Request is missing required fields, the network is unknown, no route
            exists for the given origin/destination pair, or the `transactionId`
            was already used with a different origin, destination or address.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: ok
                message: ''
                errorHash: 1cbbee0c
                teamCode: P4
                errorType: ''
        '401':
          description: Unauthorized — Client ID or Client Secret are missing or incorrect.
          content:
            application/json:
              schema: {}
        '403':
          description: >-
            Headless bridging is not enabled for this client
            (`permissionDenied`), or the API key does not have the write scope
            required for this endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: ok
                message: ''
                errorHash: 1cbbee0c
                teamCode: P4
                errorType: ''
        '409':
          description: >-
            The `transactionId` was already used for a transfer that has since
            completed, failed or expired. Use a new `transactionId`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: ok
                message: ''
                errorHash: 1cbbee0c
                teamCode: P4
                errorType: ''
components:
  schemas:
    CreateBridgedAddressRequest:
      required:
        - destination
        - origin
        - transactionId
        - userId
      type: object
      properties:
        userId:
          maxLength: 384
          minLength: 1
          type: string
          description: "Your platform's unique identifier for the end user initiating this transfer.\r\nCombined with Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.TransactionId to enforce idempotency."
        transactionId:
          maxLength: 128
          minLength: 1
          type: string
          description: "Your platform's unique identifier for this transfer attempt.\r\nUse a stable, collision-free ID (e.g. an order ID or UUID).\r\nRe-submitting the same value will return the previously created address rather than\r\ngenerating a new one."
        origin:
          allOf:
            - $ref: '#/components/schemas/BridgingDestinationSpec'
          description: "The pay-in leg: network and asset whose single-use deposit address is returned.\r\nIn deposit flows this is usually the end-user’s wallet chain and token; in withdrawal-style flows\r\nit is the omnibus source chosen from `POST /api/v1/bridging/routes/withdrawal`.\r\nMust match a configured route from deposit or withdrawal route discovery."
        destination:
          allOf:
            - $ref: '#/components/schemas/BridgingDestinationWithAddressSpec'
          description: "The payout leg: network, asset, and address where bridged funds are delivered (e.g. user’s receive\r\naddress in a deposit flow, or their withdrawal address in a platform-led flow).\r\nMust match a route from deposit or withdrawal route discovery together with Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.Origin."
      additionalProperties: false
      description: "Request body for `POST /api/v1/bridging/address`.\r\n\n\r\nUsed for both pay-in (deposit) and platform-led pay-in (withdrawal-style) bridging: the address returned\r\nis always on Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.Origin; funds must be sent there before Mesh can deliver to Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.Destination.\r\n\n\r\nThis endpoint is idempotent per Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.TransactionId scoped to Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.UserId and B2B client/environment:\r\nretries with the same origin, destination (network, asset, and Org.Front.Core.Contracts.Models.Bridging.Headless.BridgingDestinationWithAddressSpec.Address),\r\nand route return the same deposit address. Reusing the same Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.TransactionId with any different origin or\r\ndestination (network, asset, or address) returns an error and does not create a second transfer preview.\r\n"
    CreateBridgedAddressResponseApiResult:
      type: object
      properties:
        status:
          enum:
            - ok
            - serverFailure
            - permissionDenied
            - badRequest
            - notFound
            - conflict
            - tooManyRequest
            - locked
            - unavailableForLegalReasons
          allOf:
            - $ref: '#/components/schemas/ApiResultStatus'
          readOnly: true
        message:
          type: string
          description: A message generated by the API
          nullable: true
        displayMessage:
          type: string
          description: User-friendly display message that can be presented to the end user
          nullable: true
        errorHash:
          type: string
          description: >-
            An error grouping hash from string components and caller
            information. Used by bugsnag on FE for correct error grouping
          nullable: true
          readOnly: true
        teamCode:
          type: string
          description: "Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display."
          nullable: true
          readOnly: true
        errorType:
          type: string
          description: "Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation."
          nullable: true
        errorData:
          nullable: true
          readOnly: true
        content:
          allOf:
            - $ref: '#/components/schemas/CreateBridgedAddressResponse'
          description: "Response body for `POST /api/v1/bridging/address`.\r\n\n\r\nContains the deposit address on the origin chain, constraints, tracking IDs, and warnings so you can\r\neither guide an end user to broadcast the pay-in or have your platform/custody system broadcast the\r\npay-in to the origin-chain deposit address in a withdrawal-style flow, then track delivery to the\r\ndestination address to completion.\r\n"
          nullable: true
      additionalProperties: false
    ApiResult:
      type: object
      properties:
        status:
          enum:
            - ok
            - serverFailure
            - permissionDenied
            - badRequest
            - notFound
            - conflict
            - tooManyRequest
            - locked
            - unavailableForLegalReasons
          allOf:
            - $ref: '#/components/schemas/ApiResultStatus'
          readOnly: true
        message:
          type: string
          description: A message generated by the API
          nullable: true
        displayMessage:
          type: string
          description: User-friendly display message that can be presented to the end user
          nullable: true
        errorHash:
          type: string
          description: >-
            An error grouping hash from string components and caller
            information. Used by bugsnag on FE for correct error grouping
          nullable: true
          readOnly: true
        teamCode:
          type: string
          description: "Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display."
          nullable: true
          readOnly: true
        errorType:
          type: string
          description: "Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation."
          nullable: true
        errorData:
          nullable: true
          readOnly: true
      additionalProperties: false
    BridgingDestinationSpec:
      required:
        - asset
        - network
      type: object
      properties:
        network:
          minLength: 1
          type: string
          description: "CAIP-2 network identifier for the token's network.\r\n\nExamples: `eip155:1` (Ethereum Mainnet), `eip155:137` (Polygon),\r\n`eip155:8453` (Base), `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` (Solana Mainnet)."
        asset:
          minLength: 1
          type: string
          description: Token symbol, case-insensitive (e.g. `USDC`, `ETH`, `MATIC`).
      additionalProperties: false
      description: >-
        Identifies a token on a specific network using a CAIP-2 network
        identifier.
    BridgingDestinationWithAddressSpec:
      required:
        - address
        - asset
        - network
      type: object
      properties:
        network:
          minLength: 1
          type: string
          description: "CAIP-2 network identifier for the token's network.\r\n\nExamples: `eip155:1` (Ethereum Mainnet), `eip155:137` (Polygon),\r\n`eip155:8453` (Base), `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` (Solana Mainnet)."
        asset:
          minLength: 1
          type: string
          description: Token symbol, case-insensitive (e.g. `USDC`, `ETH`, `MATIC`).
        address:
          maxLength: 200
          minLength: 1
          type: string
          description: "On-chain wallet address on the destination network that will receive the bridged funds.\r\nMust be a valid address for the specified Org.Front.Core.Contracts.Models.Bridging.Headless.BridgingDestinationSpec.Network."
      additionalProperties: false
      description: "Extends Org.Front.Core.Contracts.Models.Bridging.Headless.BridgingDestinationSpec with the on-chain wallet address where\r\nbridged funds should be delivered."
    ApiResultStatus:
      enum:
        - ok
        - serverFailure
        - permissionDenied
        - badRequest
        - notFound
        - conflict
        - tooManyRequest
        - locked
        - unavailableForLegalReasons
      type: string
    CreateBridgedAddressResponse:
      required:
        - constraints
        - selectedRoute
        - tracking
        - warnings
      type: object
      properties:
        selectedRoute:
          allOf:
            - $ref: '#/components/schemas/HeadlessBridgingRouteWithAddress'
          description: "The confirmed route for this bridge: origin token/network, the deposit address to send to,\r\nand the destination token/network/address that will receive the funds."
          nullable: true
        constraints:
          allOf:
            - $ref: '#/components/schemas/BridgingAddressConstraintsDto'
          description: "Operational constraints for this deposit address — minimum amount, expiry, and address reuse policy.\r\nSurface these before the pay-in is broadcast (end user or your custody system)."
          nullable: true
        tracking:
          allOf:
            - $ref: '#/components/schemas/BridgingTracking'
          description: "Internal IDs for tracking this bridge transfer. Store these to correlate webhook events\r\nand status updates back to this specific transfer."
          nullable: true
        warnings:
          type: array
          items:
            type: string
          description: >-
            Operational warnings to show before the pay-in is sent (single-use
            address, correct source network, fees, minimums).
          nullable: true
      additionalProperties: false
      description: "Response body for `POST /api/v1/bridging/address`.\r\n\n\r\nContains the deposit address on the origin chain, constraints, tracking IDs, and warnings so you can\r\neither guide an end user to broadcast the pay-in or have your platform/custody system broadcast the\r\npay-in to the origin-chain deposit address in a withdrawal-style flow, then track delivery to the\r\ndestination address to completion.\r\n"
    HeadlessBridgingRouteWithAddress:
      required:
        - bridgingAddress
        - destination
        - origin
      type: object
      properties:
        origin:
          allOf:
            - $ref: '#/components/schemas/BridgingDestinationSpec'
          description: "The pay-in token and network (deposit address is valid for this asset on this chain).\r\nWho broadcasts the transfer depends on your product (end user or platform omnibus)."
          nullable: true
        bridgingAddress:
          allOf:
            - $ref: '#/components/schemas/BridgingAddress'
          description: >-
            The one-time deposit address: the pay-in amount must be sent here on
            the origin network to initiate the bridge.
          nullable: true
        destination:
          allOf:
            - $ref: '#/components/schemas/BridgingDestinationWithAddressSpec'
          description: >-
            The destination token, network, and wallet address where bridged
            funds will be delivered.
          nullable: true
      additionalProperties: false
      description: "The confirmed bridging route for a created address: pay-in leg, one-time deposit address on that leg,\r\nand delivery leg (network, asset, recipient address)."
    BridgingAddressConstraintsDto:
      type: object
      properties:
        minimumAmount:
          type: string
          description: "Minimum amount the user must send, expressed as a decimal string in the source asset: the stricter of the\r\nroute's configured minimum and the platform USD floor converted at the current price.\r\n`\"0\"` when neither applies (e.g. price unavailable and no route minimum)."
          nullable: true
        maximumAmount:
          type: string
          description: "Maximum amount the user may send, expressed as a decimal string in the source asset: the platform USD cap\r\nconverted at the current price. `null` if no maximum can be expressed, e.g. price unavailable\r\n(serialized as JSON `null` despite global omit-null settings)."
          nullable: true
        expirationTime:
          type: integer
          description: "Unix timestamp (seconds) at which the deposit address expires.\r\n`null` if the address does not expire.\r\nFunds sent after this time may not be processed."
          format: int64
          nullable: true
        singleUseAddress:
          type: boolean
          description: "When `true`, this deposit address is single-use and must not be reused across transfers.\r\nSending funds to an already-used address may result in loss of funds."
      additionalProperties: false
      description: "Operational constraints that apply to a bridging deposit address.\r\nPresent these to the end user to avoid failed or stuck transfers."
    BridgingTracking:
      required:
        - transactionId
        - transferId
        - userId
      type: object
      properties:
        userId:
          type: string
          description: "The end-user identifier supplied in the originating Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.\r\nEchoed back for client-side reconciliation."
          nullable: true
        transactionId:
          type: string
          description: "The transfer identifier supplied in the originating Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.\r\nEchoed back for client-side reconciliation."
          nullable: true
        transferId:
          type: string
          description: "Mesh-internal unique identifier for this transfer record.\r\nUse this ID when querying transfer status or matching incoming webhook payloads."
          format: uuid
      additionalProperties: false
      description: "Identifiers for tracking a headless bridge transfer through the Mesh platform.\r\nStore these values to correlate webhook events and status polling with the transfer\r\ninitiated by `POST /api/v1/bridging/address`."
    BridgingAddress:
      required:
        - address
      type: object
      properties:
        address:
          type: string
          description: "The on-chain deposit address to send source funds to.\r\nThis address is single-use — do not reuse it across transfers."
          nullable: true
      additionalProperties: false
      description: "A one-time deposit address generated by the bridge provider.\r\nThe end user must send funds to this address on the correct source network."
  securitySchemes:
    Client-Secret:
      type: apiKey
      description: Contact Mesh to get client Secret
      name: X-Client-Secret
      in: header
    Client-Id:
      type: apiKey
      description: Contact Mesh to get client Id
      name: X-Client-Id
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.