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

# Dry-Run Transaction

> Simulate (test) transaction execution, returns estimations without executing the transaction

<sup>API Key permissions: Transaction Operator, Full Access</sup>



## OpenAPI

````yaml /bron-open-api-public.json post /workspaces/{workspaceId}/transactions/dry-run
openapi: 3.1.1
info:
  description: >-
    Bron API is based on the RESTish interface provided for data exchange
    between a client and a server with the use of HTTPS requests and responses.
  title: Bron API
  version: latest
  x-bron-formats:
    bigint: Arbitrary-precision integer encoded as a JSON string.
    date-time-millis: >-
      Epoch milliseconds (UTC) encoded as a JSON string. Convert with `new
      Date(parseInt(value))` or equivalent.
    decimal: Arbitrary-precision decimal encoded as a JSON string.
    int32: 32-bit integer encoded as a JSON string.
    int64: >-
      Long integer encoded as a JSON string to preserve precision (e.g. account
      IDs).
servers:
  - description: app.bron.org
    url: https://api.bron.org
security: []
tags:
  - name: stake
  - name: balances
  - name: addresses
  - name: intents
  - name: assets
  - name: transaction-limits
  - name: canton
  - name: address-book
  - name: workspaces
  - name: accounts
  - name: transactions
paths:
  /workspaces/{workspaceId}/transactions/dry-run:
    post:
      tags:
        - transactions
      summary: Dry-Run Transaction
      description: >-
        Simulate (test) transaction execution, returns estimations without
        executing the transaction


        <sup>API Key permissions: Transaction Operator, Full Access</sup>
      parameters:
        - in: path
          name: workspaceId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTransaction'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DryRunTransaction'
          description: OK
        '400':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                      - bad-request
                    type: string
                  message:
                    description: >-
                      A human-readable message providing more details about the
                      error
                    type: string
                type: object
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                      - forbidden
                    type: string
                  message:
                    description: >-
                      A human-readable message providing more details about the
                      error
                    type: string
                type: object
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                      - conflict
                    type: string
                  message:
                    description: >-
                      A human-readable message providing more details about the
                      error
                    type: string
                type: object
          description: Conflict
components:
  schemas:
    CreateTransaction:
      properties:
        accountId:
          description: The id of the account where the transaction should be placed
          examples:
            - w9jh0gf3w9qaxlre7enezt17
          type: string
        description:
          description: The description of the transaction
          examples:
            - Withdrawal to an exchange
          type: string
        expiresAt:
          description: Optional expiration time for the transaction
          examples:
            - '1753370264978'
          format: date-time-millis
          type: string
        externalId:
          description: >-
            Unique transaction identifier from client (should be unique per the
            account)
          examples:
            - w2u573pjj5wl97p4v325z4a
          type: string
        params:
          description: Transaction specific parameters
          oneOf:
            - $ref: '#/components/schemas/AddressActivationParams'
            - $ref: '#/components/schemas/AddressCreationParams'
            - $ref: '#/components/schemas/AllowanceParams'
            - $ref: '#/components/schemas/BridgeParams'
            - $ref: '#/components/schemas/DefiMessageParams'
            - $ref: '#/components/schemas/DefiParams'
            - $ref: '#/components/schemas/DepositParams'
            - $ref: '#/components/schemas/FiatInParams'
            - $ref: '#/components/schemas/FiatOutParams'
            - $ref: '#/components/schemas/IntentsParams'
            - $ref: '#/components/schemas/LoyaltyParams'
            - $ref: '#/components/schemas/NFTAllowanceParams'
            - $ref: '#/components/schemas/NFTWithdrawalParams'
            - $ref: '#/components/schemas/StakeClaimParams'
            - $ref: '#/components/schemas/StakeDelegationParams'
            - $ref: '#/components/schemas/StakeUnDelegationParams'
            - $ref: '#/components/schemas/StakeWithdrawalParams'
            - $ref: '#/components/schemas/SwapParams'
            - $ref: '#/components/schemas/WithdrawalParams'
        transactionType:
          $ref: '#/components/schemas/TransactionType'
          description: The transaction type. [See details](/enums/TransactionType)
          examples:
            - withdrawal
      required:
        - externalId
        - transactionType
        - accountId
      type: object
    DryRunTransaction:
      properties:
        accountId:
          type: string
        description:
          description: The description of the transaction
          examples:
            - Withdrawal to an exchange
          type: string
        estimations:
          items:
            $ref: '#/components/schemas/TransactionEstimation'
          type: array
        externalId:
          type: string
        extra:
          $ref: '#/components/schemas/TransactionExtra'
        params:
          type: object
        transactionType:
          $ref: '#/components/schemas/TransactionType'
          description: '[See details](/enums/TransactionType)'
        warning:
          $ref: '#/components/schemas/Warning'
      required:
        - transactionType
        - accountId
      type: object
    AddressActivationParams:
      properties:
        assetId:
          type: string
      required:
        - assetId
      title: Address activation
      type: object
    AddressCreationParams:
      properties:
        assetId:
          type: string
      required:
        - assetId
      title: Address creation
      type: object
    AllowanceParams:
      properties:
        amount:
          format: decimal
          type: string
        assetId:
          type: string
        feeLevel:
          $ref: '#/components/schemas/FeeLevel'
          description: '[See details](/enums/FeeLevel)'
        networkFees:
          $ref: '#/components/schemas/RequestedNetworkFees'
        toAddress:
          type: string
        unlimited:
          type: boolean
      required:
        - assetId
        - toAddress
      title: Allowance
      type: object
    BridgeParams:
      properties:
        amount:
          description: The amount to bridge
          examples:
            - '0.5'
          format: decimal
          type: string
        feeLevel:
          $ref: '#/components/schemas/FeeLevel'
          default: medium
          description: >-
            The fee level for the source-network withdrawal. [See
            details](/enums/FeeLevel)
          examples:
            - medium
        sourceAssetId:
          description: The asset ID on the source network
          examples:
            - '11'
          type: string
      required:
        - sourceAssetId
        - amount
      title: >-
        Bridge asset between connected networks (e.g. hyperEVM ↔ hyperCORE).
        Destination asset is resolved by the bridge handler.
      type: object
    DefiMessageParams:
      properties:
        message:
          type: string
        networkId:
          type: string
        origin:
          description: Origin of defi operation
          type: string
        version:
          type: string
      required:
        - networkId
        - origin
        - message
      type: object
    DefiParams:
      properties:
        data:
          description: >-
            Hex-encoded transaction data payload for contract interaction (EVM
            networks)
          type: string
        externalBroadcast:
          description: >-
            If true, the transaction will be broadcast externally by the client
            instead of the wallet
          type: boolean
        feeLevel:
          $ref: '#/components/schemas/FeeLevel'
          description: '[See details](/enums/FeeLevel)'
        method:
          description: >-
            WalletConnect method name that defines the requested operation (e.g.
            eth_sendTransaction, solana_signTransaction)
          type: string
        networkId:
          type: string
        origin:
          description: Origin of defi operation
          type: string
        rawTransaction:
          description: >-
            Fully formed transaction to be signed or broadcast (used for TRON
            network)
          type: string
        rawTransactions:
          description: >-
            List of fully formed serialized transactions to be signed or
            broadcast (used for Solana, TON networks)
          items:
            type: string
          type: array
        to:
          description: Recipient address for EVM-compatible transaction
          type: string
        value:
          description: Hex-encoded amount (EVM networks)
          type: string
      required:
        - networkId
        - origin
        - method
      type: object
    DepositParams:
      properties:
        amount:
          description: The amount of transaction
          examples:
            - '10.123'
          format: decimal
          type: string
        assetId:
          description: The asset ID for the transaction
          examples:
            - '14212'
          type: string
        networkId:
          description: The asset's blockchain network name for the transaction
          examples:
            - ETH
          type: string
      required:
        - amount
        - assetId
        - networkId
      type: object
    FiatInParams:
      properties:
        amount:
          description: Amount to deposit
          format: decimal
          type: string
        assetId:
          description: Target crypto asset to receive
          type: string
        fiatAssetId:
          description: Source fiat asset
          type: string
      required:
        - amount
        - assetId
        - fiatAssetId
      title: Fiat in (buy crypto with fiat)
      type: object
    FiatOutParams:
      properties:
        amount:
          description: Crypto amount to sell
          format: decimal
          type: string
        assetId:
          description: Crypto asset to sell
          type: string
        feeLevel:
          $ref: '#/components/schemas/FeeLevel'
          description: '[See details](/enums/FeeLevel)'
        fiatAssetId:
          description: Target fiat asset
          type: string
        paymentPurpose:
          description: Payment purpose
          examples:
            - Vendor / Contractor Payouts
          type: string
        processingTier:
          description: >-
            Optional settlement speed tier for the selected rail when the
            provider offers more than one (e.g. "instant" or "standard")
          examples:
            - instant
          type: string
        reference:
          description: >-
            Reference shown on the recipient's bank statement; overrides the
            saved bank record reference
          examples:
            - Invoice 1234
          type: string
        toAddressBookRecordId:
          description: Bank account record ID from address book
          type: string
      required:
        - amount
        - assetId
        - fiatAssetId
        - toAddressBookRecordId
      title: Fiat out (sell crypto to fiat)
      type: object
    IntentsParams:
      properties:
        feeLevel:
          $ref: '#/components/schemas/FeeLevel'
          description: '[See details](/enums/FeeLevel)'
        intentId:
          type: string
      required:
        - intentId
      title: Intent
      type: object
    LoyaltyParams:
      properties:
        amount:
          format: decimal
          type: string
      required:
        - amount
      type: object
    NFTAllowanceParams:
      properties:
        amount:
          format: decimal
          type: string
        approvalForAll:
          type: boolean
        assetId:
          type: string
        feeLevel:
          $ref: '#/components/schemas/FeeLevel'
          description: '[See details](/enums/FeeLevel)'
        networkFees:
          $ref: '#/components/schemas/RequestedNetworkFees'
        toAddress:
          type: string
        tokenId:
          type: string
      required:
        - assetId
      title: NFT Allowance
      type: object
    NFTWithdrawalParams:
      properties:
        amount:
          description: The amount of transaction
          examples:
            - '10.123'
          format: decimal
          type: string
        assetId:
          description: The asset ID for the transaction
          examples:
            - '20145'
          type: string
        feeLevel:
          $ref: '#/components/schemas/FeeLevel'
          default: medium
          description: The fee level for the withdrawal. [See details](/enums/FeeLevel)
          examples:
            - medium
        includeFee:
          default: 'false'
          description: >-
            Indicates whether the fee should be included in the withdrawal
            amount or added on top of it
          examples:
            - 'false'
          type: boolean
        networkFees:
          $ref: '#/components/schemas/RequestedNetworkFees'
          description: Custom network fees parameters
        toAccountId:
          description: >-
            In case of a transfer on a different account, the ID of the
            destination account
          examples:
            - w9jh0gf3w9qaxlre7enezt17
          type: string
        toAddress:
          description: Destination address for the transaction
          examples:
            - TKAduQVqNaTLyBzVvRrcctY6FFraowJ3Uc
          type: string
        toAddressBookRecordId:
          description: >-
            In case of a withdrawal to address from address book, the ID of the
            address book record
          examples:
            - a30lin1p2zr1wzqqt1l8n652
          type: string
        tokenId:
          description: The token ID for NFT
          examples:
            - '1'
          type: string
      required:
        - amount
        - assetId
        - tokenId
      title: NFT Transfer
      type: object
    StakeClaimParams:
      properties:
        amount:
          format: decimal
          type: string
        assetId:
          type: string
        stakeId:
          type: string
      required:
        - assetId
      title: Stake claim
      type: object
    StakeDelegationParams:
      properties:
        amount:
          format: decimal
          type: string
        assetId:
          type: string
        poolId:
          type: string
        resource:
          $ref: '#/components/schemas/StakeResource'
      required:
        - assetId
      title: Stake delegation
      type: object
    StakeUnDelegationParams:
      properties:
        amount:
          format: decimal
          type: string
        assetId:
          type: string
        resource:
          $ref: '#/components/schemas/StakeResource'
        stakeId:
          type: string
      required:
        - assetId
      title: Stake undelegation
      type: object
    StakeWithdrawalParams:
      properties:
        amount:
          format: decimal
          type: string
        assetId:
          type: string
        poolId:
          type: string
      required:
        - assetId
      type: object
    SwapParams:
      properties:
        fromAmount:
          format: decimal
          type: string
        fromAssetId:
          type: string
        quoteId:
          type: string
        toAmount:
          format: decimal
          type: string
        toAssetId:
          type: string
      required:
        - fromAssetId
        - toAssetId
        - quoteId
      title: Swap
      type: object
    WithdrawalParams:
      properties:
        amount:
          description: The amount of transaction
          examples:
            - '10.123'
          format: decimal
          type: string
        assetId:
          description: The asset ID for the transaction
          examples:
            - '20145'
          type: string
        feeLevel:
          $ref: '#/components/schemas/FeeLevel'
          default: medium
          description: The fee level for the withdrawal. [See details](/enums/FeeLevel)
          examples:
            - medium
        includeFee:
          default: 'false'
          description: >-
            Indicates whether the fee should be included in the withdrawal
            amount or added on top of it
          examples:
            - 'false'
          type: boolean
        intentOrderId:
          description: >-
            For intents-protocol solvers: the on-chain order ID this transfer
            fulfils. When set, the signer also produces an order-bound
            attestation, retrievable with includeAttestationSignature.
          type: string
        memo:
          description: Memo for the transaction
          type: string
        networkFees:
          $ref: '#/components/schemas/RequestedNetworkFees'
          description: Custom network fees parameters
        networkId:
          description: The asset's blockchain network name for the transaction
          examples:
            - BTC
          type: string
        symbol:
          description: The asset's symbol for the transaction
          examples:
            - BTC
          type: string
        toAccountId:
          description: >-
            In case of a transfer on a different account, the ID of the
            destination account
          examples:
            - w9jh0gf3w9qaxlre7enezt17
          type: string
        toAddress:
          description: Destination address for the transaction
          examples:
            - TKAduQVqNaTLyBzVvRrcctY6FFraowJ3Uc
          type: string
        toAddressBookRecordId:
          description: >-
            In case of a withdrawal to address from address book, the ID of the
            address book record
          examples:
            - a30lin1p2zr1wzqqt1l8n652
          type: string
        toWorkspaceTag:
          description: Destination workspace tag for the transaction (e.g. 'tesla')
          type: string
      required:
        - amount
      title: Transfer
      type: object
    TransactionType:
      enum:
        - deposit
        - withdrawal
        - multi-withdrawal
        - negative-deposit
        - auto-withdrawal
        - allowance
        - defi
        - defi-message
        - address-activation
        - address-creation
        - stake-delegation
        - stake-undelegation
        - stake-claim
        - stake-withdrawal
        - stake-take-reward
        - stake-earn-reward
        - swap-lifi
        - intents
        - loyalty-lock
        - loyalty-unlock
        - loyalty-collect-rewards
        - canton-reward
        - nft-deposit
        - nft-withdrawal
        - nft-allowance
        - fiat-out
        - fiat-in
        - bridge
      type: string
    TransactionEstimation:
      properties:
        amount:
          description: Amount
          format: decimal
          type: string
        assetId:
          description: Asset ID
          type: string
        createdAt:
          description: Created at
          format: date-time-millis
          type: string
        estimationId:
          description: Estimation ID
          type: string
        eventType:
          $ref: '#/components/schemas/EventType'
          description: Event type. [See details](/enums/EventType)
        extra:
          $ref: '#/components/schemas/EventExtra'
          description: Extra
        networkId:
          description: Network ID
          type: string
        symbol:
          description: Symbol
          type: string
        transactionId:
          description: Transaction ID
          type: string
        usdAmount:
          description: Total amount in USD
          format: decimal
          type: string
      required:
        - estimationId
        - transactionId
        - eventType
        - assetId
        - createdAt
      type: object
    TransactionExtra:
      properties:
        approvers:
          $ref: '#/components/schemas/TransactionApprovers'
        blockchainDetails:
          description: The blockchain transaction details on an transaction
          items:
            $ref: '#/components/schemas/BlockchainTxDetails'
          type: array
        blockchainRequest:
          $ref: '#/components/schemas/BlockchainRequest'
        confirmations:
          description: Number of confirmations for a blockchain transaction
          examples:
            - '12'
          format: int64
          type: string
        depositTransactionId:
          description: The ID of a deposit transaction where a withdraw was made to
          examples:
            - j1r166mwjfxe6fejw4i2ucwm
          type: string
        description:
          description: The description of the transaction
          examples:
            - Withdrawal to an exchange
          type: string
        fromAccountId:
          description: The ID of a account where an order was made from
          examples:
            - w9jh0gf3w9qaxlre7enezt17
          type: string
        fromAddress:
          description: The address where the funds were received
          examples:
            - TSz8S8sfhWbaDKVH5bVM1U2rekX3Gr2zxY
          type: string
        fromWorkspaceIcon:
          description: Image ID of the sender workspace (resolved at send time)
          type: string
        fromWorkspaceName:
          description: Name of the sender workspace (resolved at send time)
          type: string
        fromWorkspaceTag:
          description: Workspace tag the deposit was received from
          examples:
            - bron
          type: string
        memo:
          description: Withdrawal memo (destination tag for XRP)
          type: string
        signingRequestId:
          description: current signing request unique id
          type: string
        toAccountId:
          description: The ID of a account where an transaction was made to
          examples:
            - t2pm9t9x4k0a3h353f369jk8
          type: string
        toAddress:
          description: The address where the funds should be transferred
          examples:
            - tb1qaprk5xy6t0m8yjdlnxscxqn9ek23uaej09eeax
          type: string
        toWorkspaceIcon:
          description: Image ID of the destination workspace (resolved at send time)
          type: string
        toWorkspaceName:
          description: Name of the destination workspace (resolved at send time)
          type: string
        toWorkspaceTag:
          description: Workspace tag the withdrawal was sent to
          examples:
            - tesla
          type: string
        withdrawTransactionId:
          description: The ID of a withdraw transaction where a deposit was made from
          examples:
            - altfrg6powi52w53sd7ts8vf
          type: string
      type: object
    Warning:
      properties:
        code:
          type: string
        message:
          type: string
      required:
        - message
      type: object
    FeeLevel:
      enum:
        - low
        - medium
        - high
      type: string
    RequestedNetworkFees:
      properties:
        feePerByte:
          format: int64
          type: string
        gasLimit:
          format: int64
          type: string
        gasPriceGwei:
          format: decimal
          type: string
        maxFeePerGas:
          format: decimal
          type: string
        maxPriorityFeePerGas:
          format: decimal
          type: string
      type: object
    StakeResource:
      enum: []
      type: string
    EventType:
      enum:
        - in
        - out
        - fee
        - negative-deposit
        - stake-deposit
        - stake-delegation
        - stake-undelegation
        - stake-withdrawn
        - stake-earn-reward
        - stake-reward-accrued
        - stake-pool-created
        - stake-pool-unjailed
        - stake-transferred
        - allowance
        - nft-in
        - nft-out
        - nft-allowance
        - loyalty-lock
        - loyalty-unlock
        - loyalty-reward
        - canton-reward
        - message-signed
        - deposit-offer
      type: string
    EventExtra:
      properties:
        allowance:
          description: >-
            For 'allowance' event. Specify to which address allowance was
            granted
          items:
            $ref: '#/components/schemas/EventAllowance'
          type: array
        in:
          description: For 'in' event. Specify from which address the funds are transferred
          items:
            $ref: '#/components/schemas/EventInput'
          type: array
        out:
          description: For 'out' event. Specify to which address the funds are transferred
          items:
            $ref: '#/components/schemas/EventOutput'
          type: array
        rewardInfo:
          $ref: '#/components/schemas/StakeRewardInfo'
          description: Detail information for earn reward.
        signingMessage:
          $ref: '#/components/schemas/SigningMessage'
          description: Detail information about signing message
        stakeInfo:
          description: 'Detail information for ''stake'' operations. '
          items:
            $ref: '#/components/schemas/EventStakeInfo'
          type: array
        transactionFailed:
          description: >-
            If transaction was added to block, but transaction execution failed
            (e.g. smart contract execution failed)
          type: boolean
        walletStateInit:
          description: >-
            TON-only. Base64 BoC of the wallet contract StateInit, required for
            TonConnect proof verification
          type: string
      type: object
    TransactionApprovers:
      properties:
        approvedBy:
          description: User IDs who already approved this transaction
          items:
            type: string
          type: array
        availableApprovers:
          description: Users IDs who can approve this transaction
          items:
            type: string
          type: array
        limitId:
          description: ID of the transaction limit applied
          examples:
            - w2u573pjj5wl97p4v325z4a9
          type: string
        number:
          description: Number of users required to approve this transaction
          examples:
            - '2'
          format: int32
          type: string
        securityDelayDuration:
          description: Security delay duration in hours before transaction can be processed
          format: int32
          type: string
        securityDelayExpiresAt:
          description: Security delay expiration time in milliseconds
          format: date-time-millis
          type: string
        skipApproval:
          description: Skip approval process if set in the limit rule
          type: boolean
      type: object
    BlockchainTxDetails:
      properties:
        blockchainTxId:
          description: ID of blockchain transaction
          examples:
            - b79aae771ec6b779d97b10911bd938f5e18a92732c106e9dab4e33cd21ef7fb0
          type: string
        networkId:
          description: Network ID
          examples:
            - BTC
          type: string
      type: object
    BlockchainRequest:
      properties:
        externalBroadcast:
          description: >-
            Withdraw is requested to be processed by external system. In that
            case we don't broadcast it to blockchain
          type: boolean
        networkId:
          type: string
      type: object
    EventAllowance:
      properties:
        address:
          description: Allowance address
          type: string
        amount:
          description: Allowance amount
          format: decimal
          type: string
        networkId:
          description: Allowance network ID
          type: string
        unlimited:
          description: >-
            Allowance unlimited flag. If true then allowance is unlimited,
            amount will be ignored
          type: boolean
      type: object
    EventInput:
      properties:
        address:
          description: Address
          type: string
        amount:
          description: Amount in event's asset units
          format: decimal
          type: string
        fromAccountId:
          description: Account ID where assets were sent from
          type: string
        fromAddressBookRecordId:
          description: Address Book Record ID where assets were sent from
          type: string
        networkId:
          description: Network ID
          type: string
      type: object
    EventOutput:
      properties:
        address:
          description: Address
          type: string
        amount:
          description: Amount in event's asset units
          format: decimal
          type: string
        memo:
          description: Address memo
          type: string
        networkId:
          description: Network ID
          type: string
        toAccountId:
          description: Account ID where assets were sent to
          type: string
        toAddressBookRecordId:
          description: Address Book Record ID where assets were sent to
          type: string
      type: object
    StakeRewardInfo:
      properties: {}
      type: object
    SigningMessage:
      properties:
        message:
          description: Signing message
          type: string
        version:
          description: Message version
          type: string
      required:
        - message
      type: object
    EventStakeInfo:
      properties: {}
      type: object

````