BTCPay Server Store Wallet (On Chain) API

Store Wallet (On Chain) operations

OpenAPI Specification

btcpay-store-wallet-on-chain-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: BTCPay Greenfield API Keys Store Wallet (On Chain) API
  version: v1
  description: "# Introduction\n\nThe BTCPay Server Greenfield API is a REST API. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.\n\n# Authentication\n\nYou can authenticate either via Basic Auth or an API key. It's recommended to use an API key for better security. You can create an API key in the BTCPay Server UI under `Account` -> `Manage Account` -> `API keys`. You can restrict the API key for one or multiple stores and for specific permissions. For testing purposes, you can give it the 'Unrestricted access' permission. On production you should limit the permissions to the actual endpoints you use, you can see the required permission on the API docs at the top of each endpoint under `AUTHORIZATIONS`.\n\nIf you want to simplify the process of creating API keys for your users, you can use the [Authorization endpoint](https://docs.btcpayserver.org/API/Greenfield/v1/#tag/Authorization) to predefine permissions and redirect your users to the BTCPay Server Authorization UI. You can find more information about this on the [API Authorization Flow docs](https://docs.btcpayserver.org/BTCPayServer/greenfield-authorization/) page.\n\n# Usage examples\n\nUse **Basic Auth** to read store information with cURL:\n```bash\nBTCPAY_INSTANCE=\"https://mainnet.demo.btcpayserver.org\"\nUSER=\"MyTestUser@gmail.com\"\nPASSWORD=\"notverysecurepassword\"\nPERMISSION=\"btcpay.store.canmodifystoresettings\"\nBODY=\"$(echo \"{}\" | jq --arg \"a\" \"$PERMISSION\" '. + {permissions:[$a]}')\"\n\nAPI_KEY=\"$(curl -s \\\n     -H \"Content-Type: application/json\" \\\n     --user \"$USER:$PASSWORD\" \\\n     -X POST \\\n     -d \"$BODY\" \\\n     \"$BTCPAY_INSTANCE/api/v1/api-keys\" | jq -r .apiKey)\"\n```\n\n\nUse an **API key** to read store information with cURL:\n```bash\nSTORE_ID=\"yourStoreId\"\n\ncurl -s \\\n     -H \"Content-Type: application/json\" \\\n     -H \"Authorization: token $API_KEY\" \\\n     -X GET \\\n     \"$BTCPAY_INSTANCE/api/v1/stores/$STORE_ID\"\n```\n\nYou can find more examples on our docs for different programming languages:\n- [cURL](https://docs.btcpayserver.org/Development/GreenFieldExample/)\n- [Javascript/Node.Js](https://docs.btcpayserver.org/Development/GreenFieldExample-NodeJS/)\n- [PHP](https://docs.btcpayserver.org/Development/GreenFieldExample-PHP/)\n\n"
  contact:
    name: BTCPay Server
    url: https://btcpayserver.org
  license:
    name: MIT
    url: https://github.com/btcpayserver/btcpayserver/blob/master/LICENSE
servers:
- url: https://{btcpay-host}
  description: Your BTCPay Server instance
  variables:
    btcpay-host:
      default: mainnet.demo.btcpayserver.org
      description: The hostname of your BTCPay Server instance
security:
- API_Key: []
  Basic: []
tags:
- name: Store Wallet (On Chain)
  description: Store Wallet (On Chain) operations
paths:
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet:
    get:
      tags:
      - Store Wallet (On Chain)
      summary: Get store on-chain wallet overview
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      description: View information about the specified wallet
      operationId: StoreOnChainWallets_ShowOnChainWalletOverview
      responses:
        '200':
          description: specified wallet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnChainWalletOverviewData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canviewwallet
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/histogram:
    get:
      tags:
      - Store Wallet (On Chain)
      summary: Get store on-chain wallet balance histogram
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      description: View the balance histogram of the specified wallet
      operationId: StoreOnChainWallets_ShowOnChainWalletHistogram
      responses:
        '200':
          description: specified wallet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistogramData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canviewwallet
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/feerate:
    get:
      tags:
      - Store Wallet (On Chain)
      summary: Get store on-chain wallet fee rate
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      - name: blockTarget
        in: query
        required: false
        description: The number of blocks away you are willing to target for confirmation. Defaults to the wallet's configured `RecommendedFeeBlockTarget`
        schema:
          type: number
          minimum: 1
      description: Get wallet onchain fee rate
      operationId: StoreOnChainWallets_GetOnChainFeeRate
      responses:
        '200':
          description: fee rate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnChainWalletFeeRateData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canviewwallet
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/address:
    get:
      tags:
      - Store Wallet (On Chain)
      summary: Get store on-chain wallet address
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      - name: forceGenerate
        in: query
        required: false
        description: Whether to generate a new address for this request even if the previous one was not used
        schema:
          type: boolean
          default: false
      description: Get or generate address for wallet
      operationId: StoreOnChainWallets_GetOnChainWalletReceiveAddress
      responses:
        '200':
          description: reserved address
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnChainWalletAddressData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canviewwallet
        Basic: []
    delete:
      tags:
      - Store Wallet (On Chain)
      summary: UnReserve last store on-chain wallet address
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      description: UnReserve address
      operationId: StoreOnChainWallets_UnReserveOnChainWalletReceiveAddress
      responses:
        '200':
          description: address unreserved
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet or there was no address reserved
      security:
      - API_Key:
        - btcpay.store.canmanagewallettransactions
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/transactions:
    get:
      tags:
      - Store Wallet (On Chain)
      summary: Get store on-chain wallet transactions
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      - name: statusFilter
        in: query
        required: false
        description: Statuses to filter the transactions with
        schema:
          type: array
          items:
            $ref: '#/components/schemas/TransactionStatus'
      - name: labelFilter
        in: query
        required: false
        description: Transaction label to filter by
        schema:
          type: string
        example: invoice
      - name: skip
        in: query
        required: false
        description: Number of transactions to skip from the start
        schema:
          type: integer
      - name: limit
        in: query
        required: false
        description: Maximum number of transactions to return
        schema:
          type: integer
      description: Get store on-chain wallet transactions
      operationId: StoreOnChainWallets_ShowOnChainWalletTransactions
      responses:
        '200':
          description: transactions list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OnChainWalletTransactionData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
        '503':
          description: You need to allow non-admins to use hotwallets for their stores (in /server/policies)
      security:
      - API_Key:
        - btcpay.store.canviewwallet
        Basic: []
    post:
      tags:
      - Store Wallet (On Chain)
      summary: Create store on-chain wallet transaction
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOnChainTransactionRequest'
      description: Create store on-chain wallet transaction. Requires `btcpay.store.cancreatetransactions` and `btcpay.store.cansigntransactions`. Also requires `btcpay.store.canbroadcasttransactions` when `proceedWithBroadcast` is true, including Payjoin.
      operationId: StoreOnChainWallets_CreateOnChainTransaction
      responses:
        '200':
          description: the tx
          content:
            application/json:
              schema:
                oneOf:
                - description: The unbroadcasted transaction in hex format
                  type: string
                - description: An unsigned PSBT in base64 format
                  $ref: '#/components/schemas/CreateOnChainTransactionResponse'
                - $ref: '#/components/schemas/OnChainWalletTransactionData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.cancreatetransactions
        - btcpay.store.cansigntransactions
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/transactions/broadcast:
    post:
      tags:
      - Store Wallet (On Chain)
      summary: Broadcast an on-chain transaction or finalized PSBT
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BroadcastOnChainTransactionRequest'
      description: Broadcast a raw transaction hex string or a finalized PSBT for the specified wallet.
      operationId: StoreOnChainWallets_BroadcastOnChainTransaction
      responses:
        '200':
          description: broadcasted transaction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnChainWalletTransactionData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
        '422':
          description: The PSBT is not finalized or the transaction payload is invalid.
        '503':
          description: This network only supports read-only features or hotwallets are disabled.
      security:
      - API_Key:
        - btcpay.store.canbroadcasttransactions
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/transactions/{transactionId}:
    get:
      tags:
      - Store Wallet (On Chain)
      summary: Get store on-chain wallet transaction
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      - name: transactionId
        in: path
        required: true
        description: The transaction id to fetch
        schema:
          type: string
      description: Get store on-chain wallet transaction
      operationId: StoreOnChainWallets_GetOnChainWalletTransaction
      responses:
        '200':
          description: transaction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnChainWalletTransactionData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canviewwallet
        Basic: []
    patch:
      tags:
      - Store Wallet (On Chain)
      summary: Patch store on-chain wallet transaction info
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      - name: transactionId
        in: path
        required: true
        description: The transaction id to fetch
        schema:
          type: string
      - name: force
        in: query
        required: false
        description: Whether to update the label/comments even if the transaction does not yet exist
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchOnChainTransactionRequest'
      description: Patch store on-chain wallet transaction info
      operationId: StoreOnChainWallets_PatchOnChainWalletTransaction
      responses:
        '200':
          description: transaction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnChainWalletTransactionData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canmanagewallettransactions
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/utxos:
    get:
      tags:
      - Store Wallet (On Chain)
      summary: Get store on-chain wallet UTXOS
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      description: Get store on-chain wallet utxos
      operationId: StoreOnChainWallets_GetOnChainWalletUTXOs
      responses:
        '200':
          description: utxo list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OnChainWalletUTXOData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canviewwallet
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/generate:
    post:
      tags:
      - Store Wallet (On Chain)
      summary: Generate store on-chain wallet
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      description: Generate a wallet and update the specified store's payment method to it
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateOnChainWalletRequest'
        required: true
        x-position: 1
      operationId: StoreOnChainPaymentMethods_GenerateOnChainWallet
      responses:
        '200':
          description: updated specified payment method with the generated wallet
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/GenericPaymentMethodData'
                - type: object
                  properties:
                    mnemonic:
                      $ref: '#/components/schemas/Mnemonic'
                    config:
                      $ref: '#/components/schemas/OnChainPaymentMethodBaseData'
        '400':
          description: A list of errors that occurred when updating the store payment method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblemDetails'
        '403':
          description: If you are authenticated but forbidden to update the specified store
        '404':
          description: The key is not found for this store
      security:
      - API_Key:
        - btcpay.store.canmodifystoresettings
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/preview:
    get:
      tags:
      - Store Wallet (On Chain)
      summary: Preview store on-chain payment method addresses
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - name: paymentMethodId
        in: path
        required: true
        description: The payment method id of the payment method to update
        schema:
          type: string
        example: BTC-CHAIN
      - name: offset
        in: query
        required: false
        description: From which index to fetch the addresses
        schema:
          type: number
      - name: count
        in: query
        required: false
        description: Number of addresses to preview
        schema:
          type: number
      description: View addresses of the current payment method of the store
      operationId: StoreOnChainPaymentMethods_GetOnChainPaymentMethodPreview
      responses:
        '200':
          description: specified payment method addresses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnChainPaymentMethodPreviewResultData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/payment method
      security:
      - API_Key:
        - btcpay.store.canviewwallet
        Basic: []
    post:
      tags:
      - Store Wallet (On Chain)
      summary: Preview proposed store on-chain payment method addresses
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      - name: offset
        in: query
        required: false
        description: From which index to fetch the addresses
        schema:
          type: number
      - name: count
        in: query
        required: false
        description: Number of addresses to preview
        schema:
          type: number
      description: View addresses of a proposed payment method of the store
      operationId: StoreOnChainPaymentMethods_POSTOnChainPaymentMethodPreview
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              type: object
              properties:
                derivationScheme:
                  type: string
                  description: The derivation scheme
                  example: xpub...
        required: true
        x-position: 1
      responses:
        '200':
          description: specified payment method addresses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnChainPaymentMethodPreviewResultData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store
      security:
      - API_Key:
        - btcpay.store.canmanagewalletsettings
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/objects:
    get:
      tags:
      - Store Wallet (On Chain)
      summary: Get store on-chain wallet objects
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      - name: type
        in: query
        required: false
        description: The type of object to fetch
        schema:
          type: string
        example: tx
      - name: ids
        in: query
        required: false
        description: The ids of objects to fetch, if used, type should be specified
        schema:
          type: array
          items:
            type: string
        example: 03abcde...
      - name: includeNeighbourData
        in: query
        required: false
        description: Whether or not you should include neighbour's node data in the result (ie, `links.objectData`)
        schema:
          type: boolean
          default: true
      description: View wallet objects
      operationId: StoreOnChainWallets_GetOnChainWalletObjects
      responses:
        '200':
          description: Selected objects and their links
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OnChainWalletObjectData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canviewwallet
        Basic: []
    post:
      tags:
      - Store Wallet (On Chain)
      summary: Add/Update store on-chain wallet objects
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      description: Add/Update wallet objects
      operationId: StoreOnChainWallets_AddOrUpdateOnChainWalletObjects
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnChainWalletObjectData'
      responses:
        '200':
          description: Wallet object's data and its links
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnChainWalletObjectData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canmanagewallettransactions
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/objects/{objectType}/{objectId}:
    get:
      tags:
      - Store Wallet (On Chain)
      summary: Get store on-chain wallet object
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      - name: objectType
        in: path
        required: true
        description: The object type to fetch
        schema:
          type: string
        example: tx
      - name: objectId
        in: path
        required: true
        description: The object id to fetch
        schema:
          type: string
        example: abc392...
      - name: includeNeighbourData
        in: query
        required: false
        description: Whether or not you should include neighbour's node data in the result (ie, `links.objectData`)
        schema:
          type: boolean
          default: true
      description: View wallet object
      operationId: StoreOnChainWallets_GetOnChainWalletObject
      responses:
        '200':
          description: Wallet object's data and its links
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnChainWalletObjectData'
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canviewwallet
        Basic: []
    delete:
      tags:
      - Store Wallet (On Chain)
      summary: Remove store on-chain wallet objects
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      - name: objectType
        in: path
        required: true
        description: The object type to fetch
        schema:
          type: string
        example: tx
      - name: objectId
        in: path
        required: true
        description: The object id to fetch
        schema:
          type: string
        example: abc392...
      description: Remove wallet object
      operationId: StoreOnChainWallets_RemoveOnChainWalletObject
      responses:
        '200':
          description: successful removal of filtered object
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canmanagewallettransactions
        Basic: []
  /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/objects/{objectType}/{objectId}/links:
    post:
      tags:
      - Store Wallet (On Chain)
      summary: Add/Update store on-chain wallet object link
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      - name: objectType
        in: path
        required: true
        description: The object type to fetch
        schema:
          type: string
        example: tx
      - name: objectId
        in: path
        required: true
        description: The object id to fetch
        schema:
          type: string
        example: abc392...
      description: Add/Update wallet object link
      operationId: StoreOnChainWallets_AddOrUpdateOnChainWalletLink
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddOnChainWalletObjectLinkRequest'
      responses:
        '200':
          description: action completed
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canmanagewallettransactions
        Basic: []
  ? /api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/objects/{objectType}/{objectId}/links/{linkType}/{linkId}
  : delete:
      tags:
      - Store Wallet (On Chain)
      summary: Remove store on-chain wallet object links
      parameters:
      - $ref: '#/components/parameters/StoreId'
      - $ref: '#/components/parameters/PaymentMethodId'
      - name: objectType
        in: path
        required: true
        description: The object type to fetch
        schema:
          type: string
        example: tx
      - name: objectId
        in: path
        required: true
        description: The object id to fetch
        schema:
          type: string
        example: abc392...
      - name: linkType
        in: path
        required: true
        description: The object type of the linked neighbour
        schema:
          type: string
        example: tx
      - name: linkId
        in: path
        required: true
        description: The object id of the linked neighbour
        schema:
          type: string
        example: abc392...
      description: Remove wallet object link
      operationId: StoreOnChainWallets_RemoveOnChainWalletLink
      responses:
        '200':
          description: successful removal of filtered object link
        '403':
          description: If you are authenticated but forbidden to view the specified store
        '404':
          description: The key is not found for this store/wallet
      security:
      - API_Key:
        - btcpay.store.canmanagewallettransactions
        Basic: []
components:
  parameters:
    PaymentMethodId:
      name: paymentMethodId
      in: path
      required: true
      description: The payment method id of the payment method to update
      schema:
        $ref: '#/components/schemas/PaymentMethodId'
      example: BTC-CHAIN
    StoreId:
      name: storeId
      in: path
      required: true
      description: The store ID
      schema:
        $ref: '#/components/schemas/StoreId'
  schemas:
    OnChainWalletObjectData:
      type: object
      additionalProperties: false
      allOf:
      - $ref: '#/components/schemas/OnChainWalletObjectId'
      properties:
        data:
          type: object
          additionalProperties: true
        links:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/OnChainWalletObjectLink'
          description: Links of this object
    OnChainPaymentMethodBaseData:
      type: object
      additionalProperties: false
      properties:
        derivationScheme:
          type: string
          description: The derivation scheme
          example: xpub...
        label:
          type: string
          description: A label that will be shown in the UI
        accountKeyPath:
          type: string
          description: The wallet fingerprint followed by the keypath to derive the account key used for signing operation or creating PSBTs
          example: abcd82a1/84'/0'/0'
    OnChainWalletUTXOData:
      type: object
      additionalProperties: false
      properties:
        comment:
          type: string
          description: A comment linked to this utxo
        amount:
          type: string
          description: the value of this utxo
        link:
          type: string
          format: url
          description: a link to the configured blockchain explorer to view the utxo
        outpoint:
          type: string
          format: '{txid}:{outputIndex}'
          description: outpoint of this utxo
        timestamp:
          description: The time of the utxo
          allOf:
          - $ref: '#/components/schemas/UnixTimestamp'
        keyPath:
          type: string
          format: keypath
          description: the derivation path in relation to the HD account
        address:
          type: string
          description: The wallet address of this utxo
        confirmations:
          type: number
          description: The number of confirmations of this utxo
        labels:
          description: Labels linked to this transaction
          deprecated: true
          type: array
          items:
            $ref: '#/components/schemas/LabelData'
    GenericPaymentMethodData:
      type: object
      additionalProperties: false
      properties:
        enabled:
          type: boolean
          description: Whether the payment method is enabled
        paymentMethodId:
          $ref: '#/components/schemas/PaymentMethodId'
        config:
          type: object
          additionalProperties: false
          description: Associated dynamic data based on payment method type.
          oneOf:
          - $ref: '#/components/schemas/OnChainPaymentMethodBaseData'
          - $ref: '#/components/schemas/LightningNetworkPaymentMethodBaseData'
          - $ref: '#/components/schemas/LNURLPayPaymentMethodBaseData'
          - description: Any other unofficial payment method data
            type: object
            additionalProperties: true
    LNURLPayPaymentMethodBaseData:
      type: object
      additionalProperties: false
      pr

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/btcpay/refs/heads/main/openapi/btcpay-store-wallet-on-chain-api-openapi.yml