{
    "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": []
                    }
                ]
            }
        }
    },
    "components": {
        "schemas": {
            "Mnemonic": {
                "type": "string",
                "description": "A BIP39 mnemonic",
                "example": "quality warfare scatter zone report forest potato local swing solve upon candy garment boost lab"
            },
            "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'"
                    }
                }
            },
            "OnChainPaymentMethodPreviewResultData": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "addresses": {
                        "type": "array",
                        "description": "a list of addresses generated by the derivation scheme",
                        "items": {
                            "$ref": "#/components/schemas/OnChainPaymentMethodPreviewResultAddressItem"
                        }
                    }
                }
            },
            "OnChainPaymentMethodPreviewResultAddressItem": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "keyPath": {
                        "type": "string",
                        "description": "The key path relative to the account key path."
                    },
                    "address": {
                        "type": "string",
                        "description": "The address generated at the key path"
                    }
                }
            },
            "GenerateOnChainWalletRequest": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "label": {
                        "type": "string",
                        "description": "A label that will be shown in the UI"
                    },
                    "existingMnemonic": {
                        "$ref": "#/components/schemas/Mnemonic"
                    },
                    "passphrase": {
                        "type": "string",
                        "description": "A passphrase for the BIP39 mnemonic seed"
                    },
                    "accountNumber": {
                        "type": "number",
                        "default": 0,
                        "description": "The account to derive from the BIP39 mnemonic seed"
                    },
                    "savePrivateKeys": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether to store the seed inside BTCPay Server to enable some additional services. IF `false` AND `existingMnemonic` IS NOT SPECIFIED, BE SURE TO SECURELY STORE THE SEED IN THE RESPONSE!"
                    },
                    "wordList": {
                        "type": "string",
                        "description": "If `existingMnemonic` is not set, a mnemonic is generated using the specified wordList.",
                        "default": "English",
                        "x-enumNames": [
                            "English",
                            "Japanese",
                            "Spanish",
                            "ChineseSimplified",
                            "ChineseTraditional",
                            "French",
                            "PortugueseBrazil",
                            "Czech"
                        ],
                        "enum": [
                            "English",
                            "Japanese",
                            "Spanish",
                            "ChineseSimplified",
                            "ChineseTraditional",
                            "French",
                            "PortugueseBrazil",
                            "Czech"
                        ]
                    },
                    "wordCount": {
                        "type": "number",
                        "description": "If `existingMnemonic` is not set, a mnemonic is generated using the specified wordCount.",
                        "default": 12,
                        "x-enumNames": [
                            12,
                            15,
                            18,
                            21,
                            24
                        ],
                        "enum": [
                            12,
                            15,
                            18,
                            21,
                            24
                        ]
                    },
                    "scriptPubKeyType": {
                        "type": "string",
                        "description": "the type of wallet to generate",
                        "default": "Segwit",
                        "x-enumNames": [
                            "Legacy",
                            "Segwit",
                            "SegwitP2SH",
                            "TaprootBIP86"
                        ],
                        "enum": [
                            "Legacy",
                            "Segwit",
                            "SegwitP2SH",
                            "TaprootBIP86"
                        ]
                    }
                }
            },
            "OnChainWalletOverviewData": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "balance": {
                        "type": "string",
                        "format": "decimal",
                        "description": "The total current balance of the wallet"
                    },
                    "unconfirmedBalance": {
                        "type": "string",
                        "format": "decimal",
                        "description": "The current unconfirmed balance of the wallet"
                    },
                    "confirmedBalance": {
                        "type": "string",
                        "format": "decimal",
                        "description": "The current confirmed balance of the wallet"
                    }
                }
            },
            "OnChainWalletFeeRateData": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "feeRate": {
                        "type": "number",
                        "format": "decimal",
                        "description": "The fee rate (sats per byte) based on the wallet's configured recommended block confirmation target"
                    }
                }
            },
            "OnChainWalletAddressData": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "address": {
                        "type": "string",
                        "description": "The bitcoin address"
                    },
                    "keyPath": {
                        "type": "string",
                        "format": "keypath",
                        "description": "the derivation path in relation to the HD account"
                    },
                    "paymentLink": {
                        "type": "string",
                        "format": "BIP21",
                        "description": "a bip21 payment link"
                    }
                }
            },
            "TransactionStatus": {
                "type": "string",
                "x-enumNames": [
                    "Unconfirmed",
                    "Confirmed"
                ],
                "enum": [
                    "Unconfirmed",
                    "Confirmed"
                ]
            },
            "LabelData": {
                "type": "object",
                "additionalProperties": true,
                "deprecated": true,
                "properties": {
                    "type": {
                        "type": "string",
                        "description": "The type of label"
                    },
                    "text": {
                        "type": "string",
                        "description": "Information about this label"
                    }
                }
            },
            "OnChainWalletTransactionData": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "transactionHash": {
                        "type": "string",
                        "nullable": true,
                        "description": "The transaction id"
                    },
                    "comment": {
                        "type": "string",
                        "description": "A comment linked to the transaction"
                    },
                    "amount": {
                        "type": "string",
                        "format": "decimal",
                        "description": "The amount the wallet balance changed with this transaction"
                    },
                    "blockHash": {
                        "type": "string",
                        "nullable": true,
                        "description": "The hash of the block that confirmed this transaction. Null if still unconfirmed."
                    },
                    "blockHeight": {
                        "type": "string",
                        "nullable": true,
                        "description": "The height of the block that confirmed this transaction. Null if still unconfirmed."
                    },
                    "confirmations": {
                        "type": "string",
                        "nullable": true,
                        "description": "The number of confirmations for this transaction"
                    },
                    "timestamp": {
                        "description": "The time of the transaction",
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/UnixTimestamp"
                            }
                        ]
                    },
                    "status": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/TransactionStatus"
                            }
                        ],
                        "description": "The status of this transaction"
                    },
                    "labels": {
                        "description": "Labels linked to this transaction",
                        "deprecated": true,
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/LabelData"
                        }
                    }
                }
            },
            "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"
                        }
                    }
                }
            },
            "CreateOnChainTransactionRequestDestination": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "destination": {
                        "type": "string",
                        "description": "A wallet address or a BIP21 payment link"
                    },
                    "amount": {
                        "type": "string",
                        "format": "decimal",
                        "nullable": true,
                        "description": "The amount to send. If `destination` is a BIP21 link, the amount must be the same or null."
                    },
                    "subtractFromAmount": {
                        "type": "boolean",
                        "description": "Whether to subtract the transaction fee from the provided amount. This makes the receiver receive less, or in other words: he or she pays the transaction fee. Also useful if you want to clear out your wallet. Must be false if `destination` is a BIP21 link"
                    }
                }
            },
            "CreateOnChainTransactionRequest": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "destinations": {
                        "nullable": false,
                        "description": "What and where to send money",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CreateOnChainTransactionRequestDestination"
                        }
                    },
                    "feerate": {
                        "type": "number",
                        "format": "decimal or long (sats/byte)",
                        "description": "Transaction fee."
                    },
                    "proceedWithPayjoin": {
                        "type": "boolean",
                        "default": true,
                        "nullable": true,
                        "description": "Whether to attempt to do a BIP78 payjoin if one of the destinations is a BIP21 with payjoin enabled"
                    },
                    "proceedWithBroadcast": {
                        "type": "boolean",
                        "default": true,
                        "nullable": true,
                        "description": "Whether to broadcast the transaction after creating it or to simply return the transaction in hex format."
                    },
                    "signWithSeed": {
                        "type": "boolean",
                        "default": true,
                        "nullable": true,
                        "description": "If false, build an unsigned PSBT and skip server-side signing (use the CreateOnChainTransactionPSBT client helper)."
                    },
                    "noChange": {
                        "type": "boolean",
                        "default": false,
                        "nullable": true,
                        "description": "Whether to send all the spent coins to the destinations (THIS CAN COST YOU SIGNIFICANT AMOUNTS OF MONEY, LEAVE FALSE UNLESS YOU KNOW WHAT YOU ARE DOING)."
                    },
                    "rbf": {
                        "type": "boolean",
                        "nullable": true,
                        "description": "Whether to enable RBF for the transaction. Leave blank to have it random (beneficial to privacy)"
                    },
                    "excludeUnconfirmed": {
                        "type": "boolean",
                        "default": false,
                        "nullable": true,
                        "description": "Whether to exclude unconfirmed UTXOs from the transaction."
                    },
                    "selectedInputs": {
                        "nullable": true,
                        "description": "Restrict the creation of the transactions from the outpoints provided ONLY (coin selection)",
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "PatchOnChainTransactionRequest": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "comment": {
                        "nullable": true,
                        "type": "string",
                        "description": "Transaction comment"
                    },
                    "labels": {
                        "nullable": true,
                        "deprecated": true,
                        "description": "Transaction labels",
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "CreateOnChainTransactionResponse": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "psbt": {
                        "type": "string",
                        "description": "Unsigned PSBT in base64 format"
                    }
                }
            },
            "BroadcastOnChainTransactionRequest": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "transaction": {
                        "type": "string",
                        "description": "A finalized PSBT (base64) or raw transaction hex string"
                    }
                },
                "required": [
                    "transaction"
                ]
            }
        }
    },
    "tags": [
        {
            "name": "Store Wallet (On Chain)",
            "description": "Store Wallet (On Chain) operations"
        }
    ]
}
