btcpayserver/BTCPayServer/wwwroot/swagger/v1/swagger.template.stores-wallet.on-chain.json
d11n 641bdcff31
Histograms: Add Lightning data and API endpoints (#6217)
* Histograms: Add Lightning data and API endpoints

Ported over from the mobile-working-branch.

Adds histogram data for Lightning and exposes the wallet/lightning histogram data via the API. It also add a dashboard graph for the Lightning balance.

Caveat: The Lightning histogram is calculated by using the current channel balance and going backwards through as much invoices and transactions as we have. The "start" of the LN graph data might not be accurate though. That's because we don't track (and not even have) the LN onchain data. It is calculated by using the current channel balance and going backwards through as much invoices and transactions as we have. So the historic graph data for LN is basically a best effort of trying to reconstruct it with what we have: The LN channel transactions.

* More timeframes

* Refactoring: Remove redundant WalletHistogram types

* Remove store property from dashboard tile view models

* JS error fixes
2024-11-05 21:40:37 +09:00

1295 lines
52 KiB
JSON

{
"paths": {
"/api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet": {
"get": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Get store on-chain wallet overview",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$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.canmodifystoresettings"
],
"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": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$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.canmodifystoresettings"
],
"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": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$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.canviewstoresettings"
],
"Basic": []
}
]
}
},
"/api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/address": {
"get": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Get store on-chain wallet address",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$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.canmodifystoresettings"
],
"Basic": []
}
]
},
"delete": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "UnReserve last store on-chain wallet address",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$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.canmodifystoresettings"
],
"Basic": []
}
]
}
},
"/api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/transactions": {
"get": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Get store on-chain wallet transactions",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$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.canmodifystoresettings"
],
"Basic": []
}
]
},
"post": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Create store on-chain wallet transaction",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/PaymentMethodId"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateOnChainTransactionRequest"
}
}
}
},
"description": "Create store on-chain wallet transaction",
"operationId": "StoreOnChainWallets_CreateOnChainTransaction",
"responses": {
"200": {
"description": "the tx",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"description": "The unbroadcasted transaction in hex format",
"type": "string"
},
{
"$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.canmodifystoresettings"
],
"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": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$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.canmodifystoresettings"
],
"Basic": []
}
]
},
"patch": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Patch store on-chain wallet transaction info",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$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.canmodifystoresettings"
],
"Basic": []
}
]
}
},
"/api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/utxos": {
"get": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Get store on-chain wallet UTXOS",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$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.canmodifystoresettings"
],
"Basic": []
}
]
}
},
"/api/v1/stores/{storeId}/payment-methods/{paymentMethodId}/wallet/generate": {
"post": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Generate store on-chain wallet",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$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": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"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.canviewstoresettings"
],
"Basic": []
}
]
},
"post": {
"tags": [
"Store Wallet (On Chain)"
],
"summary": "Preview proposed store on-chain payment method addresses",
"parameters": [
{
"name": "storeId",
"in": "path",
"required": true,
"description": "The store to fetch",
"schema": {
"type": "string"
}
},
{
"$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.canviewstoresettings"
],
"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!"
},
"importKeysToRPC": {
"type": "boolean",
"default": false,
"description": "Whether to import all addresses generated via BTCPay Server into the underlying node wallet. (Private keys will also be imported if `savePrivateKeys` is set to true."
},
"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."
},
"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"
}
}
}
}
}
},
"tags": [
{
"name": "Store Wallet (On Chain)",
"description": "Store Wallet (On Chain) operations"
}
]
}