// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "contact": {},
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/api/v1/admin/contact/invitations/{id}": {
            "post": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Accept contact",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Accept contact",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Contact id",
                        "name": "id",
                        "in": "path"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Changed contact",
                        "schema": {
                            "$ref": "#/definitions/response.Contact"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while getting id from path"
                    },
                    "404": {
                        "description": "Not found - Error while getting contact by id"
                    },
                    "422": {
                        "description": "Unprocessable entity - Incorrect status of contact"
                    },
                    "500": {
                        "description": "Internal server error - Error while changing contact status"
                    }
                }
            }
        },
        "/api/v1/admin/contacts": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Fetches a list of contacts filtered by metadata and other criteria",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Search for contacts",
                "parameters": [
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "example": [
                            "metadata[key]=value",
                            "metadata[key2]=value2"
                        ],
                        "description": "Metadata is a list of key-value pairs that can be used to filter the results. !ATTENTION! Unfortunately this parameter won't work from swagger UI.",
                        "name": "metadata",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sort",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sortBy",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "Alice",
                        "name": "fullName",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "ffdbe74e-0700-4710-aac5-611a1f877c7f",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "example": true,
                        "description": "IncludeDeleted is a flag whether or not to include deleted items in the search results",
                        "name": "includeDeleted",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "alice@example.com",
                        "name": "paymail",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "0334f01ecb971e93db179e6fb320cd1466beb0c1ec6c1c6a37aa6cb02e53d5dd1a",
                        "name": "pubKey",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "unconfirmed",
                            "awaiting",
                            "confirmed",
                            "rejected"
                        ],
                        "type": "string",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "623bc25ce1c0fc510dea72b5ee27b2e70384c099f1f3dce9e73dd987198c3486",
                        "name": "xpubId",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of contacts with pagination details",
                        "schema": {
                            "$ref": "#/definitions/response.PageModel-response_Contact"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for contacts"
                    }
                }
            }
        },
        "/api/v1/admin/contacts/confirmations": {
            "post": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Marks the contact entries as mutually confirmed, after ensuring the validity of the contact information for both parties.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Confirm contacts pair",
                "parameters": [
                    {
                        "description": "Contacts data",
                        "name": "models.AdminConfirmContactPair",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/models.AdminConfirmContactPair"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad request - Error while getting data from request body"
                    },
                    "404": {
                        "description": "Not found - Error, contacts not found"
                    },
                    "500": {
                        "description": "Internal server error - Error, confirming contact failed"
                    }
                }
            }
        },
        "/api/v1/admin/contacts/{id}": {
            "put": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Update contact FullName or Metadata",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Update contact FullName or Metadata",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Contact id",
                        "name": "id",
                        "in": "path"
                    },
                    {
                        "description": "FullName and metadata to update",
                        "name": "UpdateContact",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/admin.UpdateContact"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated contact",
                        "schema": {
                            "$ref": "#/definitions/response.Contact"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing UpdateContact from request body or getting id from path"
                    },
                    "404": {
                        "description": "Not found - Error while getting contact by id"
                    },
                    "422": {
                        "description": "Unprocessable entity - Incorrect status of contact"
                    },
                    "500": {
                        "description": "Internal server error - Error while updating contact"
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Delete contact",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Delete contact",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Contact id",
                        "name": "id",
                        "in": "path"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad request - Error while parsing UpdateContact from request body or getting id from path"
                    },
                    "404": {
                        "description": "Not found - Error while getting contact by id"
                    },
                    "422": {
                        "description": "Unprocessable entity - Incorrect status of contact"
                    },
                    "500": {
                        "description": "Internal server error - Error while updating contact"
                    }
                }
            }
        },
        "/api/v1/admin/contacts/{paymail}": {
            "post": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Create contact",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Create contact",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Contact paymail",
                        "name": "paymail",
                        "in": "path"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Changed contact",
                        "schema": {
                            "$ref": "#/definitions/response.Contact"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while getting paymail from path"
                    },
                    "404": {
                        "description": "Not found - Error while getting contact requester by paymail"
                    },
                    "409": {
                        "description": "Contact already exists -  Unable to add duplicate contact"
                    },
                    "500": {
                        "description": "Internal server error - Error while adding new contact"
                    }
                }
            }
        },
        "/api/v1/admin/invitations/{id}": {
            "delete": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Reject contact",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Reject contact",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Contact id",
                        "name": "id",
                        "in": "path"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad request - Error while getting id from path"
                    },
                    "404": {
                        "description": "Not found - Error while getting contact by id"
                    },
                    "422": {
                        "description": "Unprocessable entity - Incorrect status of contact"
                    },
                    "500": {
                        "description": "Internal server error - Error while changing contact status"
                    }
                }
            }
        },
        "/api/v1/admin/paymails": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Fetches a list of paymail addresses filtered by metadata and other query parameters",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Paymail addresses search",
                "parameters": [
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "example": [
                            "metadata[key]=value",
                            "metadata[key2]=value2"
                        ],
                        "description": "Metadata is a list of key-value pairs that can be used to filter the results. !ATTENTION! Unfortunately this parameter won't work from swagger UI.",
                        "name": "metadata",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sort",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sortBy",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "alice",
                        "name": "alias",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "example.com",
                        "name": "domain",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "ffb86c103d17d87c15aaf080aab6be5415c9fa885309a79b04c9910e39f2b542",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "example": true,
                        "description": "IncludeDeleted is a flag whether or not to include deleted items in the search results",
                        "name": "includeDeleted",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "Alice",
                        "name": "publicName",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "79f90a6bab0a44402fc64828af820e9465645658aea2d138c5205b88e6dabd00",
                        "name": "xpubId",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of paymail addresses with pagination",
                        "schema": {
                            "$ref": "#/definitions/response.PageModel-response_PaymailAddress"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for paymail addresses"
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Create paymail",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Create paymail",
                "parameters": [
                    {
                        "description": " ",
                        "name": "CreatePaymail",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/admin.CreatePaymail"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created PaymailAddress",
                        "schema": {
                            "$ref": "#/definitions/response.PaymailAddress"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing CreatePaymail from request body or if xpub or address are missing"
                    },
                    "500": {
                        "description": "Internal Server Error - Error while creating new paymail address"
                    }
                }
            }
        },
        "/api/v1/admin/paymails/{id}": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Fetches a paymail address by its ID",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Get paymail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Paymail ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "PaymailAddress with the given ID",
                        "schema": {
                            "$ref": "#/definitions/response.PaymailAddress"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid ID"
                    },
                    "500": {
                        "description": "Internal Server Error - Error while retrieving the paymail address"
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Delete paymail",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Delete paymail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "id of the paymail",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad request - Error while parsing PaymailAddress from request body or if address is missing"
                    },
                    "500": {
                        "description": "Internal Server Error - Error while deleting paymail address"
                    }
                }
            }
        },
        "/api/v1/admin/stats": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get statistics of the spv-wallet",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Get stats",
                "responses": {
                    "200": {
                        "description": "Stats for the admin",
                        "schema": {
                            "$ref": "#/definitions/response.AdminStats"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error - Error while fetching admin stats"
                    }
                }
            }
        },
        "/api/v1/admin/status": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get status",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Get status",
                "responses": {
                    "200": {
                        "description": "Status response",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                }
            }
        },
        "/api/v1/admin/transactions": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Fetches a list of transactions filtered by metadata and other criteria",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Search for transactions",
                "parameters": [
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "example": [
                            "metadata[key]=value",
                            "metadata[key2]=value2"
                        ],
                        "description": "Metadata is a list of key-value pairs that can be used to filter the results. !ATTENTION! Unfortunately this parameter won't work from swagger UI.",
                        "name": "metadata",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sort",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sortBy",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "0000000000000000031928c28075a82d7a00c2c90b489d1d66dc0afa3f8d26f8",
                        "name": "blockHash",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 839376,
                        "name": "blockHeight",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "d425432e0d10a46af1ec6d00f380e9581ebf7907f3486572b3cd561a4c326e14",
                        "name": "draftId",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 1,
                        "name": "fee",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "hex",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "d425432e0d10a46af1ec6d00f380e9581ebf7907f3486572b3cd561a4c326e14",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "example": true,
                        "description": "IncludeDeleted is a flag whether or not to include deleted items in the search results",
                        "name": "includeDeleted",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 1,
                        "name": "numberOfInputs",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 2,
                        "name": "numberOfOutputs",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "UNKNOWN",
                            "QUEUED",
                            "RECEIVED",
                            "STORED",
                            "ANNOUNCED_TO_NETWORK",
                            "REQUESTED_BY_NETWORK",
                            "SENT_TO_NETWORK",
                            "ACCEPTED_BY_NETWORK",
                            "SEEN_ON_NETWORK",
                            "MINED",
                            "SEEN_IN_ORPHAN_MEMPOOL",
                            "CONFIRMED",
                            "REJECTED"
                        ],
                        "type": "string",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 100000000,
                        "name": "totalValue",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "623bc25ce1c0fc510dea72b5ee27b2e70384c099f1f3dce9e73dd987198c3486",
                        "name": "xpubId",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of transactions with pagination details",
                        "schema": {
                            "$ref": "#/definitions/response.PageModel-response_Transaction"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for transactions"
                    }
                }
            }
        },
        "/api/v1/admin/transactions/{id}": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get transaction by id for admins",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Get transaction by id for admins",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Transaction ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Transaction",
                        "schema": {
                            "$ref": "#/definitions/response.Transaction"
                        }
                    },
                    "400": {
                        "description": "Bad request - Transaction not found or error in data fetching"
                    },
                    "500": {
                        "description": "Internal Server Error - Error while fetching transaction"
                    }
                }
            }
        },
        "/api/v1/admin/users": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Fetches a list of xpubs filtered by metadata and other criteria",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Search for xpubs",
                "parameters": [
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "example": [
                            "metadata[key]=value",
                            "metadata[key2]=value2"
                        ],
                        "description": "Metadata is a list of key-value pairs that can be used to filter the results. !ATTENTION! Unfortunately this parameter won't work from swagger UI.",
                        "name": "metadata",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sort",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sortBy",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 1000,
                        "name": "currentBalance",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "00b953624f78004a4c727cd28557475d5233c15f17aef545106639f4d71b712d",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "example": true,
                        "description": "IncludeDeleted is a flag whether or not to include deleted items in the search results",
                        "name": "includeDeleted",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of xPubs with pagination details",
                        "schema": {
                            "$ref": "#/definitions/response.PageModel-response_Xpub"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for xPubs"
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Create xPub",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Create xPub",
                "parameters": [
                    {
                        "description": " ",
                        "name": "CreateXpub",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/admin.CreateXpub"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created Xpub",
                        "schema": {
                            "$ref": "#/definitions/response.Xpub"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing CreateXpub from request body"
                    },
                    "500": {
                        "description": "Internal server error - Error while creating xpub"
                    }
                }
            }
        },
        "/api/v1/admin/users/keys": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Fetches a list of access keys filtered by metadata, creation range, and other parameters.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Access Keys Search",
                "parameters": [
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "example": [
                            "metadata[key]=value",
                            "metadata[key2]=value2"
                        ],
                        "description": "Metadata is a list of key-value pairs that can be used to filter the results. !ATTENTION! Unfortunately this parameter won't work from swagger UI.",
                        "name": "metadata",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sort",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sortBy",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "example": true,
                        "description": "IncludeDeleted is a flag whether or not to include deleted items in the search results",
                        "name": "includeDeleted",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "xpubId",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of access keys with pagination details",
                        "schema": {
                            "$ref": "#/definitions/response.PageModel-response_AccessKey"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for access keys"
                    }
                }
            }
        },
        "/api/v1/admin/utxos": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Fetches a list of UTXOs filtered by metadata and other criteria",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Search for utxos",
                "parameters": [
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "example": [
                            "metadata[key]=value",
                            "metadata[key2]=value2"
                        ],
                        "description": "Metadata is a list of key-value pairs that can be used to filter the results. !ATTENTION! Unfortunately this parameter won't work from swagger UI.",
                        "name": "metadata",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sort",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sortBy",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "89419d4c7c50810bfe5ff9df9ad5074b749959423782dc91a30f1058b9ad7ef7",
                        "name": "draftId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "fe4cbfee0258aa589cbc79963f7c204061fd67d987e32ee5049aa90ce14658ee",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "example": true,
                        "description": "IncludeDeleted is a flag whether or not to include deleted items in the search results",
                        "name": "includeDeleted",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 0,
                        "name": "outputIndex",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 1,
                        "name": "satoshis",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "76a914a5f271385e75f57bcd9092592dede812f8c466d088ac",
                        "name": "scriptPubKey",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "11a7746489a70e9c0170601c2be65558455317a984194eb2791b637f59f8cd6e",
                        "name": "spendingTxId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "5e17858ea0ca4155827754ba82bdcfcce108d5bb5b47fbb3aa54bd14540683c6",
                        "name": "transactionId",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "pubkey",
                            "pubkeyhash",
                            "nulldata",
                            "multisig",
                            "nonstandard",
                            "scripthash",
                            "metanet",
                            "token_stas",
                            "token_sensible"
                        ],
                        "type": "string",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "xpubId",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of UTXOs with pagination details",
                        "schema": {
                            "$ref": "#/definitions/response.PageModel-response_Utxo"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for UTXOs"
                    }
                }
            }
        },
        "/api/v1/admin/webhooks/subscriptions": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get All Webhooks currently subscribed to",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Get All Webhooks",
                "responses": {
                    "200": {
                        "description": "List of webhooks",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/models.Webhook"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error - Error while getting all webhooks"
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Subscribe to a webhook to receive notifications",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Subscribe to a webhook",
                "parameters": [
                    {
                        "description": "URL to subscribe to and optional token header and value",
                        "name": "SubscribeRequestBody",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/models.SubscribeRequestBody"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success response",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    "500": {
                        "description": "Internal server error - Error while subscribing to the webhook"
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Unsubscribe to a webhook to stop receiving notifications",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Unsubscribe to a webhook",
                "parameters": [
                    {
                        "description": "URL to unsubscribe from",
                        "name": "UnsubscribeRequestBody",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/models.UnsubscribeRequestBody"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "500": {
                        "description": "Internal server error - Error while unsubscribing to the webhook"
                    }
                }
            }
        },
        "/api/v1/configs/shared": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get shared config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Configurations"
                ],
                "summary": "Get shared config",
                "responses": {
                    "200": {
                        "description": "Shared configuration",
                        "schema": {
                            "$ref": "#/definitions/response.SharedConfig"
                        }
                    }
                }
            }
        },
        "/api/v1/contacts": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get contacts",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Contacts"
                ],
                "summary": "Get contacts",
                "parameters": [
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "example": [
                            "metadata[key]=value",
                            "metadata[key2]=value2"
                        ],
                        "description": "Metadata is a list of key-value pairs that can be used to filter the results. !ATTENTION! Unfortunately this parameter won't work from swagger UI.",
                        "name": "metadata",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sort",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sortBy",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "Alice",
                        "name": "fullName",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "ffdbe74e-0700-4710-aac5-611a1f877c7f",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "example": true,
                        "description": "IncludeDeleted is a flag whether or not to include deleted items in the search results",
                        "name": "includeDeleted",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "alice@example.com",
                        "name": "paymail",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "0334f01ecb971e93db179e6fb320cd1466beb0c1ec6c1c6a37aa6cb02e53d5dd1a",
                        "name": "pubKey",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "unconfirmed",
                            "awaiting",
                            "confirmed",
                            "rejected"
                        ],
                        "type": "string",
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Page of contacts",
                        "schema": {
                            "$ref": "#/definitions/response.PageModel-response_Contact"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing SearchContacts from request body"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for contacts"
                    }
                }
            }
        },
        "/api/v1/contacts/{paymail}": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get contact by paymail",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Contacts"
                ],
                "summary": "Get contact by paymail",
                "responses": {
                    "200": {
                        "description": "Contact",
                        "schema": {
                            "$ref": "#/definitions/response.Contact"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing SearchContacts from request body"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for contacts"
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Add or update contact. When adding a new contact, the system utilizes Paymail's PIKE capability to dispatch an invitation request, asking the counterparty to include the current user in their contacts.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Contacts"
                ],
                "summary": "Upsert contact",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Paymail address of the contact that the user would like to add/modify",
                        "name": "paymail",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Full name and metadata needed to add/modify contact",
                        "name": "UpsertContact",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/contacts.UpsertContact"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created"
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Remove contact.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Contacts"
                ],
                "summary": "Remove contact",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Paymail address of the contact that the user would like to confirm",
                        "name": "paymail",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Contact not found"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/v1/contacts/{paymail}/confirmation": {
            "post": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Confirm contact. For contact with status \"unconfirmed\" change status to \"confirmed\"",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Contacts"
                ],
                "summary": "Confirm contact",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Paymail address of the contact that the user would like to confirm",
                        "name": "paymail",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Contact not found"
                    },
                    "422": {
                        "description": "Contact status not unconfirmed"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Unconfirm contact. For contact with status \"confirmed\" change status to \"unconfirmed\"",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Contacts"
                ],
                "summary": "Unconfirm contact",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Paymail address of the contact that the user would like to unconfirm",
                        "name": "paymail",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Contact not found"
                    },
                    "422": {
                        "description": "Contact status not confirmed"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/v1/invitations/{paymail}": {
            "delete": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Reject contact invitation. For contact with status \"awaiting\" delete contact",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Contacts"
                ],
                "summary": "Reject contact invitation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Paymail address of the contact that the user would like to reject",
                        "name": "paymail",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Contact not found"
                    },
                    "422": {
                        "description": "Contact status not awaiting"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/v1/invitations/{paymail}/contacts": {
            "post": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Accept contact invitation. For contact with status \"awaiting\" change status to \"unconfirmed\"",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Contacts"
                ],
                "summary": "Accept contact invitation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Paymail address of the contact that the user would like to accept",
                        "name": "paymail",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Contact not found"
                    },
                    "422": {
                        "description": "Contact status not awaiting"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            }
        },
        "/api/v1/merkleroots": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get Merkleroots from Block Header Service",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Merkleroots",
                    "Block Header Service",
                    "BHS"
                ],
                "summary": "Get Merkleroots",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "batch size of merkleroots to be returned",
                        "name": "batchSize",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "last processed merkleroot in client's database",
                        "name": "lastEvaluatedKey",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paged response with Merkle Roots array in content ",
                        "schema": {
                            "$ref": "#/definitions/models.MerkleRootsBHSResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request - batchSize must be 0 or a positive integer"
                    },
                    "404": {
                        "description": "Not found - No block with provided merkleroot was found"
                    },
                    "409": {
                        "description": "Conflict - Provided merkleroot is not part of the longest chain"
                    },
                    "500": {
                        "description": "Internal Server Error - Error while fetching Merkle Roots"
                    }
                }
            }
        },
        "/api/v1/paymails": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Paymail addresses search",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Paymail addresses search",
                "parameters": [
                    {
                        "description": "Supports targeted resource searches with filters and metadata, plus options for pagination and sorting to streamline data exploration and analysis",
                        "name": "SearchPaymails",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/filter.PaymailFilter"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of paymail addresses",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/response.PaymailAddress"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing SearchPaymails from request body"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for paymail addresses"
                    }
                }
            }
        },
        "/api/v1/transactions": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get transactions",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Transactions"
                ],
                "summary": "Get transactions",
                "parameters": [
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "example": [
                            "metadata[key]=value",
                            "metadata[key2]=value2"
                        ],
                        "description": "Metadata is a list of key-value pairs that can be used to filter the results. !ATTENTION! Unfortunately this parameter won't work from swagger UI.",
                        "name": "metadata",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sort",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sortBy",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "0000000000000000031928c28075a82d7a00c2c90b489d1d66dc0afa3f8d26f8",
                        "name": "blockHash",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 839376,
                        "name": "blockHeight",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "d425432e0d10a46af1ec6d00f380e9581ebf7907f3486572b3cd561a4c326e14",
                        "name": "draftId",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 1,
                        "name": "fee",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "hex",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "d425432e0d10a46af1ec6d00f380e9581ebf7907f3486572b3cd561a4c326e14",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "example": true,
                        "description": "IncludeDeleted is a flag whether or not to include deleted items in the search results",
                        "name": "includeDeleted",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 1,
                        "name": "numberOfInputs",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 2,
                        "name": "numberOfOutputs",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "UNKNOWN",
                            "QUEUED",
                            "RECEIVED",
                            "STORED",
                            "ANNOUNCED_TO_NETWORK",
                            "REQUESTED_BY_NETWORK",
                            "SENT_TO_NETWORK",
                            "ACCEPTED_BY_NETWORK",
                            "SEEN_ON_NETWORK",
                            "MINED",
                            "SEEN_IN_ORPHAN_MEMPOOL",
                            "CONFIRMED",
                            "REJECTED"
                        ],
                        "type": "string",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 100000000,
                        "name": "totalValue",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Page of transactions",
                        "schema": {
                            "$ref": "#/definitions/response.PageModel-response_Transaction"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing SearchTransactions from request body"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for transactions"
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Record transaction",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Transactions"
                ],
                "summary": "Record transaction",
                "parameters": [
                    {
                        "description": "Transaction to be recorded",
                        "name": "RecordTransaction",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/transactions.RecordTransaction"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created transaction",
                        "schema": {
                            "$ref": "#/definitions/response.Transaction"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing RecordTransaction from request body or xpub not found"
                    },
                    "500": {
                        "description": "Internal Server Error - Error while recording transaction"
                    }
                }
            }
        },
        "/api/v1/transactions/drafts": {
            "post": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "New transaction draft",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Transactions"
                ],
                "summary": "New transaction draft",
                "parameters": [
                    {
                        "description": "NewDraftTransaction model containing the transaction config and metadata",
                        "name": "NewDraftTransaction",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/transactions.NewDraftTransaction"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created transaction",
                        "schema": {
                            "$ref": "#/definitions/response.DraftTransaction"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing NewDraftTransaction from request body or xpub not found"
                    },
                    "500": {
                        "description": "Internal Server Error - Error while creating transaction"
                    }
                }
            }
        },
        "/api/v1/transactions/{id}": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get transaction by id",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Transactions"
                ],
                "summary": "Get transaction by id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Transaction",
                        "schema": {
                            "$ref": "#/definitions/response.Transaction"
                        }
                    },
                    "400": {
                        "description": "Bad request - Transaction not found or associated with another xpub"
                    },
                    "500": {
                        "description": "Internal Server Error - Error while fetching transaction"
                    }
                }
            },
            "patch": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Update transaction metadata",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Transactions"
                ],
                "summary": "Update transaction metadata",
                "parameters": [
                    {
                        "type": "string",
                        "description": "id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Pass update transaction request model in the body with updated metadata",
                        "name": "UpdateTransactionRequest",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/transactions.UpdateTransactionRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated transaction metadata",
                        "schema": {
                            "$ref": "#/definitions/response.Transaction"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing UpdateTransactionRequest from request body, tx not found or tx is not associated with the xpub"
                    },
                    "500": {
                        "description": "Internal Server Error - Error while updating transaction metadata"
                    }
                }
            }
        },
        "/api/v1/users/current": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get current user information",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Get current user information",
                "responses": {
                    "200": {
                        "description": "xPub associated with the given xPub from auth header",
                        "schema": {
                            "$ref": "#/definitions/response.Xpub"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error - Error while fetching xPub"
                    }
                }
            },
            "patch": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Update current user information",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Users"
                ],
                "summary": "Update current user information",
                "parameters": [
                    {
                        "description": " ",
                        "name": "Metadata",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/engine.Metadata"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated xPub",
                        "schema": {
                            "$ref": "#/definitions/response.Xpub"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing Metadata from request body"
                    },
                    "500": {
                        "description": "Internal Server Error - Error while updating xPub"
                    }
                }
            }
        },
        "/api/v1/users/current/keys": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Search access key",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Access-key"
                ],
                "summary": "Search access key",
                "parameters": [
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "example": [
                            "metadata[key]=value",
                            "metadata[key2]=value2"
                        ],
                        "description": "Metadata is a list of key-value pairs that can be used to filter the results. !ATTENTION! Unfortunately this parameter won't work from swagger UI.",
                        "name": "metadata",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sort",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sortBy",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "example": true,
                        "description": "IncludeDeleted is a flag whether or not to include deleted items in the search results",
                        "name": "includeDeleted",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "date-time",
                        "description": "Specifies the start time of the range to query by date of revoking",
                        "name": "revokedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "date-time",
                        "description": "Specifies the end time of the range to query by date of revoking",
                        "name": "revokedRange[to]",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of access keys",
                        "schema": {
                            "$ref": "#/definitions/response.PageModel-response_AccessKey"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while SearchAccessKeys from request query"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for access keys"
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Create access key",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Access-key"
                ],
                "summary": "Create access key",
                "parameters": [
                    {
                        "description": " ",
                        "name": "CreateAccessKey",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/accesskeys.CreateAccessKey"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created AccessKey",
                        "schema": {
                            "$ref": "#/definitions/response.AccessKey"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing CreateAccessKey from request body"
                    },
                    "500": {
                        "description": "Internal server error - Error while creating new access key"
                    }
                }
            }
        },
        "/api/v1/users/current/keys/{id}": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Get access key",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Access-key"
                ],
                "summary": "Get access key",
                "parameters": [
                    {
                        "type": "string",
                        "description": "id of the access key",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "AccessKey with given id",
                        "schema": {
                            "$ref": "#/definitions/response.AccessKey"
                        }
                    },
                    "400": {
                        "description": "Bad request - Missing required field: id"
                    },
                    "403": {
                        "description": "Forbidden - Access key is not owned by the user"
                    },
                    "500": {
                        "description": "Internal server error - Error while getting access key"
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Revoke access key",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Access-key"
                ],
                "summary": "Revoke access key",
                "parameters": [
                    {
                        "type": "string",
                        "description": "id of the access key",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad request - Missing required field: id"
                    },
                    "500": {
                        "description": "Internal server error - Error while revoking access key"
                    }
                }
            }
        },
        "/api/v1/utxos": {
            "get": {
                "security": [
                    {
                        "x-auth-xpub": []
                    }
                ],
                "description": "Search UTXO",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UTXOs"
                ],
                "summary": "Search UTXO",
                "parameters": [
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "createdRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "example": [
                            "metadata[key]=value",
                            "metadata[key2]=value2"
                        ],
                        "description": "Metadata is a list of key-value pairs that can be used to filter the results. !ATTENTION! Unfortunately this parameter won't work from swagger UI.",
                        "name": "metadata",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "name": "size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sort",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "sortBy",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "2024-02-26T11:01:28Z",
                        "name": "updatedRange[to]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "89419d4c7c50810bfe5ff9df9ad5074b749959423782dc91a30f1058b9ad7ef7",
                        "name": "draftId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "fe4cbfee0258aa589cbc79963f7c204061fd67d987e32ee5049aa90ce14658ee",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "default": false,
                        "example": true,
                        "description": "IncludeDeleted is a flag whether or not to include deleted items in the search results",
                        "name": "includeDeleted",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 0,
                        "name": "outputIndex",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "example": 1,
                        "name": "satoshis",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "76a914a5f271385e75f57bcd9092592dede812f8c466d088ac",
                        "name": "scriptPubKey",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "11a7746489a70e9c0170601c2be65558455317a984194eb2791b637f59f8cd6e",
                        "name": "spendingTxId",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "example": "5e17858ea0ca4155827754ba82bdcfcce108d5bb5b47fbb3aa54bd14540683c6",
                        "name": "transactionId",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "pubkey",
                            "pubkeyhash",
                            "nulldata",
                            "multisig",
                            "nonstandard",
                            "scripthash",
                            "metanet",
                            "token_stas",
                            "token_sensible"
                        ],
                        "type": "string",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "date-time",
                        "description": "Specifies the start time of the range to query by date when a UTXO was reserved",
                        "name": "reservedRange[from]",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "date-time",
                        "description": "Specifies the end time of the range to query by date when a UTXO was reserved",
                        "name": "reservedRange[to]",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of utxos",
                        "schema": {
                            "$ref": "#/definitions/response.PageModel-response_Utxo"
                        }
                    },
                    "400": {
                        "description": "Bad request - Error while parsing SearchUtxos from request body"
                    },
                    "500": {
                        "description": "Internal server error - Error while searching for utxos"
                    }
                }
            }
        }
    },
    "definitions": {
        "accesskeys.CreateAccessKey": {
            "type": "object",
            "properties": {
                "metadata": {
                    "description": "Accepts a JSON object for embedding custom metadata, enabling arbitrary additional information to be associated with the resource",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                }
            }
        },
        "admin.CreatePaymail": {
            "type": "object",
            "properties": {
                "address": {
                    "description": "The paymail address",
                    "type": "string",
                    "example": "test@spv-wallet.com"
                },
                "avatar": {
                    "description": "The avatar of the paymail (url address)",
                    "type": "string",
                    "example": "https://example.com/avatar.png"
                },
                "key": {
                    "description": "The xpub with which the paymail is associated",
                    "type": "string",
                    "example": "xpub661MyMwAqRbcGpZVrSHU..."
                },
                "metadata": {
                    "description": "Accepts a JSON object for embedding custom metadata, enabling arbitrary additional information to be associated with the resource",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "publicName": {
                    "description": "The public name of the paymail",
                    "type": "string",
                    "example": "Test"
                }
            }
        },
        "admin.CreateXpub": {
            "type": "object",
            "properties": {
                "key": {
                    "description": "The xpub key",
                    "type": "string",
                    "example": "xpub661MyMwAqRbcGpZVrSHU..."
                },
                "metadata": {
                    "description": "Accepts a JSON object for embedding custom metadata, enabling arbitrary additional information to be associated with the resource",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                }
            }
        },
        "admin.UpdateContact": {
            "type": "object",
            "properties": {
                "fullName": {
                    "description": "New name for the contact",
                    "type": "string",
                    "example": "John Doe"
                },
                "metadata": {
                    "description": "Accepts a JSON object for embedding custom metadata, enabling arbitrary additional information to be associated with the resource",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                }
            }
        },
        "contacts.UpsertContact": {
            "type": "object",
            "properties": {
                "fullName": {
                    "description": "The complete name of the contact, including first name, middle name (if applicable), and last name.",
                    "type": "string"
                },
                "metadata": {
                    "description": "Accepts a JSON object for embedding custom metadata, enabling arbitrary additional information to be associated with the resource",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "requesterPaymail": {
                    "description": "Optional paymail address owned by the user to bind the contact to. It is required in case if user has multiple paymail addresses",
                    "type": "string"
                }
            }
        },
        "engine.Metadata": {
            "type": "object",
            "additionalProperties": true
        },
        "filter.PaymailFilter": {
            "type": "object",
            "properties": {
                "alias": {
                    "type": "string",
                    "example": "alice"
                },
                "createdRange": {
                    "description": "CreatedRange specifies the time range when a record was created.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/filter.TimeRange"
                        }
                    ]
                },
                "domain": {
                    "type": "string",
                    "example": "example.com"
                },
                "id": {
                    "type": "string",
                    "example": "ffb86c103d17d87c15aaf080aab6be5415c9fa885309a79b04c9910e39f2b542"
                },
                "includeDeleted": {
                    "description": "IncludeDeleted is a flag whether or not to include deleted items in the search results",
                    "type": "boolean",
                    "default": false,
                    "example": true
                },
                "publicName": {
                    "type": "string",
                    "example": "Alice"
                },
                "updatedRange": {
                    "description": "UpdatedRange specifies the time range when a record was updated.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/filter.TimeRange"
                        }
                    ]
                }
            }
        },
        "filter.TimeRange": {
            "type": "object",
            "properties": {
                "from": {
                    "description": "From specifies the start time of the range. It's optional and can be nil.",
                    "type": "string",
                    "example": "2024-02-26T11:01:28Z"
                },
                "to": {
                    "description": "To specifies the end time of the range. It's optional and can be nil.",
                    "type": "string",
                    "example": "2024-02-26T11:01:28Z"
                }
            }
        },
        "models.AdminConfirmContactPair": {
            "type": "object",
            "properties": {
                "paymailA": {
                    "type": "string"
                },
                "paymailB": {
                    "type": "string"
                }
            }
        },
        "models.ExclusiveStartKeyPageInfo": {
            "type": "object",
            "properties": {
                "lastEvaluatedKey": {
                    "description": "Last evaluated key returned from the database",
                    "type": "string"
                },
                "orderByField": {
                    "description": "Field by which to order the results",
                    "type": "string"
                },
                "size": {
                    "description": "Size of the page or returned data",
                    "type": "integer"
                },
                "sortDirection": {
                    "description": "Direction in which to order the results (ASC or DESC)",
                    "type": "string"
                },
                "totalElements": {
                    "description": "Total count of elements",
                    "type": "integer"
                }
            }
        },
        "models.MerkleRoot": {
            "type": "object",
            "properties": {
                "blockHeight": {
                    "type": "integer"
                },
                "merkleRoot": {
                    "type": "string"
                }
            }
        },
        "models.MerkleRootsBHSResponse": {
            "type": "object",
            "properties": {
                "content": {
                    "description": "List of records for the response",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.MerkleRoot"
                    }
                },
                "page": {
                    "description": "Pagination details",
                    "allOf": [
                        {
                            "$ref": "#/definitions/models.ExclusiveStartKeyPageInfo"
                        }
                    ]
                }
            }
        },
        "models.SubscribeRequestBody": {
            "type": "object",
            "properties": {
                "tokenHeader": {
                    "type": "string"
                },
                "tokenValue": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "models.UnsubscribeRequestBody": {
            "type": "object",
            "properties": {
                "url": {
                    "type": "string"
                }
            }
        },
        "models.Webhook": {
            "type": "object",
            "properties": {
                "banned": {
                    "type": "boolean"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "response.AccessKey": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "description": "CreatedAt is a time when outer model was created.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "deletedAt": {
                    "description": "DeletedAt is a time when outer model was deleted.",
                    "type": "string",
                    "example": "2024-02-26T11:02:28.069911Z"
                },
                "id": {
                    "description": "ID is an hash of the compressed public key.",
                    "type": "string",
                    "example": "874b86d6fd1d6c85a857e73180164203d8d23211bfd9d04d210f9f7fde5b82d8"
                },
                "key": {
                    "description": "Key is a string representation of an access key.",
                    "type": "string",
                    "example": "3fd870d6bf1725f04084cf31209c04be5bd9bed001a390ad3bc632a55a3ee078"
                },
                "metadata": {
                    "description": "Metadata is a metadata map of outer model.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "revokedAt": {
                    "description": "RevokedAt is a time when access key was revoked.",
                    "type": "string",
                    "example": "2024-02-26T11:02:28.069911Z"
                },
                "updatedAt": {
                    "description": "UpdatedAt is a time when outer model was updated.",
                    "type": "string",
                    "example": "2024-02-26T11:01:28.069911Z"
                },
                "xpubId": {
                    "description": "XpubID is an access key's xpub related id.",
                    "type": "string",
                    "example": "bb8593f85ef8056a77026ad415f02128f3768906de53e9e8bf8749fe2d66cf50"
                }
            }
        },
        "response.AdminStats": {
            "type": "object",
            "properties": {
                "balance": {
                    "description": "Balance is a total balance of all xpubs.",
                    "type": "integer"
                },
                "destinations": {
                    "description": "Destinations is a total number of destinations.",
                    "type": "integer"
                },
                "paymailAddresses": {
                    "description": "PaymailAddresses is a total number of paymail addresses.",
                    "type": "integer"
                },
                "transactions": {
                    "description": "Transactions is a total number of committed transactions.",
                    "type": "integer"
                },
                "transactionsPerDay": {
                    "description": "TransactionsPerDay is a total number of committed transactions per day.",
                    "type": "object",
                    "additionalProperties": true
                },
                "utxos": {
                    "description": "Utxos is a total number of utxos.",
                    "type": "integer"
                },
                "utxosPerType": {
                    "description": "UtxosPerType are utxos grouped by type.",
                    "type": "object",
                    "additionalProperties": true
                },
                "xpubs": {
                    "description": "Xpubs is a total number of xpubs.",
                    "type": "integer"
                }
            }
        },
        "response.Contact": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "description": "CreatedAt is a time when outer model was created.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "deletedAt": {
                    "description": "DeletedAt is a time when outer model was deleted.",
                    "type": "string",
                    "example": "2024-02-26T11:02:28.069911Z"
                },
                "fullName": {
                    "description": "FullName is name which could be shown instead of whole paymail address.",
                    "type": "string",
                    "example": "Test User"
                },
                "id": {
                    "description": "ID is a unique identifier of contact.",
                    "type": "string",
                    "example": "68af358bde7d8641621c7dd3de1a276c9a62cfa9e2d0740494519f1ba61e2f4a"
                },
                "metadata": {
                    "description": "Metadata is a metadata map of outer model.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "paymail": {
                    "description": "Paymail is a paymail address related to contact.",
                    "type": "string",
                    "example": "test@spv-wallet.com"
                },
                "pubKey": {
                    "description": "PubKey is a public key related to contact (receiver).",
                    "type": "string",
                    "example": "xpub661MyMwAqRbcGpZVrSHU..."
                },
                "status": {
                    "description": "Status is a contact's current status.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.ContactStatus"
                        }
                    ],
                    "example": "unconfirmed"
                },
                "updatedAt": {
                    "description": "UpdatedAt is a time when outer model was updated.",
                    "type": "string",
                    "example": "2024-02-26T11:01:28.069911Z"
                }
            }
        },
        "response.ContactStatus": {
            "type": "string",
            "enum": [
                "unconfirmed",
                "awaiting",
                "confirmed",
                "rejected"
            ],
            "x-enum-varnames": [
                "ContactNotConfirmed",
                "ContactAwaitAccept",
                "ContactConfirmed",
                "ContactRejected"
            ]
        },
        "response.Destination": {
            "type": "object",
            "properties": {
                "address": {
                    "description": "Address is a destination's address.",
                    "type": "string",
                    "example": "1CDUf7CKu8ocTTkhcYUbq75t14Ft168K65"
                },
                "chain": {
                    "description": "Chain is a destination's chain representation.",
                    "type": "integer",
                    "example": 0
                },
                "createdAt": {
                    "description": "CreatedAt is a time when outer model was created.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "deletedAt": {
                    "description": "DeletedAt is a time when outer model was deleted.",
                    "type": "string",
                    "example": "2024-02-26T11:02:28.069911Z"
                },
                "draftId": {
                    "description": "DraftID is a destination's draft id.",
                    "type": "string",
                    "example": "b356f7fa00cd3f20cce6c21d704cd13e871d28d714a5ebd0532f5a0e0cde63f7"
                },
                "id": {
                    "description": "ID is a destination id which is the hash of the LockingScript.",
                    "type": "string",
                    "example": "82a5d848f997819a478b05fb713208d7f3aa66da5ba00953b9845fb1701f9b98"
                },
                "lockingScript": {
                    "description": "LockingScript is a destination's locking script.",
                    "type": "string",
                    "example": "76a9147b05764a97f3b4b981471492aa703b188e45979b88ac"
                },
                "metadata": {
                    "description": "Metadata is a metadata map of outer model.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "num": {
                    "description": "Num is a destination's num representation.",
                    "type": "integer",
                    "example": 0
                },
                "paymailExternalDerivationNum": {
                    "description": "PaymailExternalDerivationNum is the chain/num/(ext_derivation_num) location of the address related to the xPub.",
                    "type": "integer",
                    "example": 0
                },
                "type": {
                    "description": "Type is a destination's type.",
                    "type": "string",
                    "example": "pubkeyhash"
                },
                "updatedAt": {
                    "description": "UpdatedAt is a time when outer model was updated.",
                    "type": "string",
                    "example": "2024-02-26T11:01:28.069911Z"
                },
                "xpubId": {
                    "description": "XpubID is a destination's xpub related id used to register destination.",
                    "type": "string",
                    "example": "bb8593f85ef8056a77026ad415f02128f3768906de53e9e8bf8749fe2d66cf50"
                }
            }
        },
        "response.DraftTransaction": {
            "type": "object",
            "properties": {
                "configuration": {
                    "description": "Configuration contains draft transaction configuration.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.TransactionConfig"
                        }
                    ]
                },
                "createdAt": {
                    "description": "CreatedAt is a time when outer model was created.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "deletedAt": {
                    "description": "DeletedAt is a time when outer model was deleted.",
                    "type": "string",
                    "example": "2024-02-26T11:02:28.069911Z"
                },
                "expiresAt": {
                    "description": "ExpiresAt is a time when draft transaction expired.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "finalTxId": {
                    "description": "FinalTxID is a final transaction id.",
                    "type": "string",
                    "example": "cfe30797f0b5fc098b32194e857569a7a1edd829fddf3df4567796b738de386d"
                },
                "hex": {
                    "description": "Hex is a draft transaction hex.",
                    "type": "string",
                    "example": "0100000002..."
                },
                "id": {
                    "description": "ID is a draft transaction id.",
                    "type": "string",
                    "example": "b356f7fa00cd3f20cce6c21d704cd13e871d28d714a5ebd0532f5a0e0cde63f7"
                },
                "metadata": {
                    "description": "Metadata is a metadata map of outer model.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "status": {
                    "description": "Status is a draft transaction lastly monitored status.",
                    "type": "string",
                    "example": "complete"
                },
                "updatedAt": {
                    "description": "UpdatedAt is a time when outer model was updated.",
                    "type": "string",
                    "example": "2024-02-26T11:01:28.069911Z"
                },
                "xpubId": {
                    "description": "XpubID is a draft transaction's xpub used to sign transaction.",
                    "type": "string",
                    "example": "bb8593f85ef8056a77026ad415f02128f3768906de53e9e8bf8749fe2d66cf50"
                }
            }
        },
        "response.FeeUnit": {
            "type": "object",
            "properties": {
                "bytes": {
                    "description": "Bytes is a fee unit bytes representation.",
                    "type": "integer",
                    "example": 1000
                },
                "satoshis": {
                    "description": "Satoshis is a fee unit satoshis amount.",
                    "type": "integer",
                    "example": 1
                }
            }
        },
        "response.MapProtocol": {
            "type": "object",
            "properties": {
                "app": {
                    "description": "App is a map protocol app.",
                    "type": "string"
                },
                "keys": {
                    "description": "Keys is a map protocol keys.",
                    "type": "object",
                    "additionalProperties": true
                },
                "type": {
                    "description": "Type is a map protocol type.",
                    "type": "string"
                }
            }
        },
        "response.OpReturn": {
            "type": "object",
            "properties": {
                "hex": {
                    "description": "Hex is a full hex of op return.",
                    "type": "string"
                },
                "hexParts": {
                    "description": "HexParts is a slice of splitted hex parts.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "map": {
                    "description": "Map is a pointer to a map protocol object.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.MapProtocol"
                        }
                    ]
                },
                "stringParts": {
                    "description": "StringParts is a slice of string parts.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "response.PageDescription": {
            "type": "object",
            "properties": {
                "number": {
                    "description": "Number is the number of the page returned",
                    "type": "integer"
                },
                "size": {
                    "description": "Size is the number of elements on a single page",
                    "type": "integer"
                },
                "totalElements": {
                    "description": "TotalElements is the total number of elements in the returned collection",
                    "type": "integer"
                },
                "totalPages": {
                    "description": "TotalPages is total number of pages returned",
                    "type": "integer"
                }
            }
        },
        "response.PageModel-response_AccessKey": {
            "type": "object",
            "properties": {
                "content": {
                    "description": "Content is the collection of elements that serves as the content",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.AccessKey"
                    }
                },
                "page": {
                    "description": "Page is the page descriptor",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.PageDescription"
                        }
                    ]
                }
            }
        },
        "response.PageModel-response_Contact": {
            "type": "object",
            "properties": {
                "content": {
                    "description": "Content is the collection of elements that serves as the content",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.Contact"
                    }
                },
                "page": {
                    "description": "Page is the page descriptor",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.PageDescription"
                        }
                    ]
                }
            }
        },
        "response.PageModel-response_PaymailAddress": {
            "type": "object",
            "properties": {
                "content": {
                    "description": "Content is the collection of elements that serves as the content",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.PaymailAddress"
                    }
                },
                "page": {
                    "description": "Page is the page descriptor",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.PageDescription"
                        }
                    ]
                }
            }
        },
        "response.PageModel-response_Transaction": {
            "type": "object",
            "properties": {
                "content": {
                    "description": "Content is the collection of elements that serves as the content",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.Transaction"
                    }
                },
                "page": {
                    "description": "Page is the page descriptor",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.PageDescription"
                        }
                    ]
                }
            }
        },
        "response.PageModel-response_Utxo": {
            "type": "object",
            "properties": {
                "content": {
                    "description": "Content is the collection of elements that serves as the content",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.Utxo"
                    }
                },
                "page": {
                    "description": "Page is the page descriptor",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.PageDescription"
                        }
                    ]
                }
            }
        },
        "response.PageModel-response_Xpub": {
            "type": "object",
            "properties": {
                "content": {
                    "description": "Content is the collection of elements that serves as the content",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.Xpub"
                    }
                },
                "page": {
                    "description": "Page is the page descriptor",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.PageDescription"
                        }
                    ]
                }
            }
        },
        "response.PaymailAddress": {
            "type": "object",
            "properties": {
                "address": {
                    "description": "Address is a paymail address that combines alias and domain with @",
                    "type": "string",
                    "example": "test@spvwallet.com"
                },
                "alias": {
                    "description": "Alias is a paymail address's alias (first part of paymail).",
                    "type": "string",
                    "example": "test"
                },
                "avatar": {
                    "description": "Avatar is a paymail address's avatar.",
                    "type": "string",
                    "example": "https://spvwallet.com/avatar.png"
                },
                "createdAt": {
                    "description": "CreatedAt is a time when outer model was created.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "deletedAt": {
                    "description": "DeletedAt is a time when outer model was deleted.",
                    "type": "string",
                    "example": "2024-02-26T11:02:28.069911Z"
                },
                "domain": {
                    "description": "Domain is a paymail address's domain (second part of paymail).",
                    "type": "string",
                    "example": "spvwallet.com"
                },
                "id": {
                    "description": "ID is a paymail address id.",
                    "type": "string",
                    "example": "c0ba4a52c89279268476a141be7569200cff2ca4892512b07ca75c25a95c16cd"
                },
                "metadata": {
                    "description": "Metadata is a metadata map of outer model.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "publicName": {
                    "description": "PublicName is a paymail address's public name.",
                    "type": "string",
                    "example": "Test User"
                },
                "updatedAt": {
                    "description": "UpdatedAt is a time when outer model was updated.",
                    "type": "string",
                    "example": "2024-02-26T11:01:28.069911Z"
                },
                "xpubId": {
                    "description": "XpubID is a paymail address's xpub related id used to register paymail address.",
                    "type": "string",
                    "example": "bb8593f85ef8056a77026ad415f02128f3768906de53e9e8bf8749fe2d66cf50"
                }
            }
        },
        "response.PaymailP4": {
            "type": "object",
            "properties": {
                "alias": {
                    "description": "Alias is a paymail p4 alias.",
                    "type": "string"
                },
                "domain": {
                    "description": "Domain is a paymail p4 domain.",
                    "type": "string"
                },
                "fromPaymail": {
                    "description": "FromPaymail is a paymail p4 from paymail.",
                    "type": "string"
                },
                "note": {
                    "description": "Note is a paymail p4 note.",
                    "type": "string"
                },
                "pubKey": {
                    "description": "PubKey is a paymail p4 pub key.",
                    "type": "string"
                },
                "receiveEndpoint": {
                    "description": "ReceiveEndpoint is a paymail p4 receive endpoint.",
                    "type": "string"
                },
                "referenceId": {
                    "description": "ReferenceID is a paymail p4 reference id.",
                    "type": "string"
                },
                "resolutionType": {
                    "description": "ResolutionType is a paymail p4 resolution type.",
                    "type": "string"
                }
            }
        },
        "response.ScriptOutput": {
            "type": "object",
            "properties": {
                "address": {
                    "description": "Address is a script output address.",
                    "type": "string"
                },
                "satoshis": {
                    "description": "Satoshis is a script output satoshis.",
                    "type": "integer"
                },
                "script": {
                    "description": "Script is a script output script.",
                    "type": "string"
                },
                "scriptType": {
                    "description": "ScriptType is a script output script type.",
                    "type": "string"
                }
            }
        },
        "response.SharedConfig": {
            "type": "object",
            "properties": {
                "experimentalFeatures": {
                    "description": "ExperimentalFeatures is a map of experimental features handled by spv-wallet.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "boolean"
                    },
                    "example": {
                        "pikeEnabled": true
                    }
                },
                "paymailDomains": {
                    "description": "PaymailDomains is a list of paymail domains handled by spv-wallet.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "spv-wallet.com"
                    ]
                }
            }
        },
        "response.SyncConfig": {
            "type": "object",
            "properties": {
                "broadcast": {
                    "description": "Broadcast is a flag that indicates whether to broadcast transaction or not.",
                    "type": "boolean"
                },
                "broadcastInstant": {
                    "description": "BroadcastInstant is a flag that indicates whether to broadcast transaction instantly or not.",
                    "type": "boolean"
                },
                "paymailP2p": {
                    "description": "PaymailP2P is a flag that indicates whether to use paymail p2p or not.",
                    "type": "boolean"
                },
                "syncOnChain": {
                    "description": "SyncOnChain is a flag that indicates whether to sync transaction on chain or not.",
                    "type": "boolean"
                }
            }
        },
        "response.Transaction": {
            "type": "object",
            "properties": {
                "blockHash": {
                    "description": "BlockHash is a block hash that transaction is in.",
                    "type": "string",
                    "example": "0000000000000000046e81025ca6cfbd2f45c7331f650c77edc99a14d5a1f0d0"
                },
                "blockHeight": {
                    "description": "BlockHeight is a block height that transaction is in.",
                    "type": "integer",
                    "example": 833505
                },
                "createdAt": {
                    "description": "CreatedAt is a time when outer model was created.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "deletedAt": {
                    "description": "DeletedAt is a time when outer model was deleted.",
                    "type": "string",
                    "example": "2024-02-26T11:02:28.069911Z"
                },
                "direction": {
                    "description": "TransactionDirection is a transaction direction (incoming/outgoing).",
                    "type": "string",
                    "example": "outgoing"
                },
                "draftId": {
                    "description": "DraftID is a transaction related draft id.",
                    "type": "string",
                    "example": "b356f7fa00cd3f20cce6c21d704cd13e871d28d714a5ebd0532f5a0e0cde63f7"
                },
                "fee": {
                    "description": "Fee is a transaction fee.",
                    "type": "integer",
                    "example": 1
                },
                "hex": {
                    "description": "Hex is a transaction hex.",
                    "type": "string",
                    "example": "0100000002..."
                },
                "id": {
                    "description": "ID is a transaction id.",
                    "type": "string",
                    "example": "01d0d0067652f684c6acb3683763f353fce55f6496521c7d99e71e1d27e53f5c"
                },
                "metadata": {
                    "description": "Metadata is a metadata map of outer model.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "numberOfInputs": {
                    "description": "NumberOfInputs is a number of transaction inputs.",
                    "type": "integer",
                    "example": 3
                },
                "numberOfOutputs": {
                    "description": "NumberOfOutputs is a number of transaction outputs.",
                    "type": "integer",
                    "example": 2
                },
                "outputValue": {
                    "description": "OutputValue is a total output value.",
                    "type": "integer",
                    "example": 50
                },
                "outputs": {
                    "description": "Outputs represents all spv-wallet-transaction outputs. Will be shown only for admin.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer"
                    },
                    "example": {
                        "92640954841510a9d95f7737a43075f22ebf7255976549de4c52e8f3faf57470": -51,
                        "9d07977d2fc14402426288a6010b4cdf7d91b61461acfb75af050b209d2d07ba": 50
                    }
                },
                "status": {
                    "description": "Status is a transaction status.",
                    "type": "string",
                    "example": "MINED"
                },
                "totalValue": {
                    "description": "TotalValue is a total input value.",
                    "type": "integer",
                    "example": 51
                },
                "updatedAt": {
                    "description": "UpdatedAt is a time when outer model was updated.",
                    "type": "string",
                    "example": "2024-02-26T11:01:28.069911Z"
                },
                "xpubInIds": {
                    "description": "XpubInIDs is a slice of xpub input ids.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "[bb8593f85ef8056a77026ad415f02128f3768906de53e9e8bf8749fe2d66cf50]"
                    ]
                },
                "xpubOutIds": {
                    "description": "XpubOutIDs is a slice of xpub output ids.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "[2075eca10bf2688b38cd7fdad6c24562463a9a26ae505d66c480fd53165dbaa2]"
                    ]
                }
            }
        },
        "response.TransactionConfig": {
            "type": "object",
            "properties": {
                "changeDestinations": {
                    "description": "ChangeDestinations is a slice of change destinations.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.Destination"
                    }
                },
                "changeDestinationsStrategy": {
                    "description": "ChangeStrategy is a change strategy.",
                    "type": "string"
                },
                "changeMinimumSatoshis": {
                    "description": "ChangeMinimumSatoshis is a minimum satoshis for change.",
                    "type": "integer",
                    "example": 0
                },
                "changeNumberOfDestinations": {
                    "description": "ChangeNumberOfDestinations is a number of change destinations.",
                    "type": "integer",
                    "example": 1
                },
                "changeSatoshis": {
                    "description": "ChangeSatoshis is a change satoshis.",
                    "type": "integer",
                    "example": 49
                },
                "expiresIn": {
                    "description": "ExpiresAt is a time when transaction expires.",
                    "type": "string",
                    "example": "1000"
                },
                "fee": {
                    "description": "Fee is a fee amount.",
                    "type": "integer",
                    "example": 1
                },
                "feeUnit": {
                    "description": "FeeUnit is a pointer to a fee unit object.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.FeeUnit"
                        }
                    ]
                },
                "fromUtxos": {
                    "description": "FromUtxos is a slice of from utxos used to build transaction.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.UtxoPointer"
                    }
                },
                "includeUtxos": {
                    "description": "IncludeUtxos is a slice of utxos to include in transaction.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.UtxoPointer"
                    }
                },
                "inputs": {
                    "description": "Inputs is a slice of transaction inputs.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.TransactionInput"
                    }
                },
                "outputs": {
                    "description": "Outputs is a slice of transaction outputs.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.TransactionOutput"
                    }
                },
                "sendAllTo": {
                    "description": "SendAllTo is a pointer to a transaction output object.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.TransactionOutput"
                        }
                    ]
                },
                "sync": {
                    "description": "Sync contains sync configuration.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.SyncConfig"
                        }
                    ]
                }
            }
        },
        "response.TransactionInput": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "description": "CreatedAt is a time when outer model was created.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "deletedAt": {
                    "description": "DeletedAt is a time when outer model was deleted.",
                    "type": "string",
                    "example": "2024-02-26T11:02:28.069911Z"
                },
                "destination": {
                    "description": "Destination is a pointer to a destination object.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.Destination"
                        }
                    ]
                },
                "draftId": {
                    "description": "DraftID is a utxo transaction related draft id.",
                    "type": "string",
                    "example": "b356f7fa00cd3f20cce6c21d704cd13e871d28d714a5ebd0532f5a0e0cde63f7"
                },
                "id": {
                    "description": "ID is a utxo id which is a hash from transaction id and output index.",
                    "type": "string",
                    "example": "c706a448748d398d542cf4dfad797c9a4b123ebb72dbfb8b27f3d0f1dda99b58"
                },
                "metadata": {
                    "description": "Metadata is a metadata map of outer model.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "outputIndex": {
                    "description": "OutputIndex is a output index that utxo points to.",
                    "type": "integer",
                    "example": 0
                },
                "reservedAt": {
                    "description": "ReservedAt is a time utxo was reserved at.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "satoshis": {
                    "description": "Satoshis is a utxo satoshis amount.",
                    "type": "integer",
                    "example": 100
                },
                "scriptPubKey": {
                    "description": "ScriptPubKey is a utxo script pub key.",
                    "type": "string",
                    "example": "76a91433ba3607a902bc022164bcb6e993f27bd040241c88ac"
                },
                "spendingTxId": {
                    "description": "SpendingTxID is a spending transaction id - null if not spent yet.",
                    "type": "string",
                    "example": "01d0d0067652f684c6acb3683763f353fce55f6496521c7d99e71e1d27e53f5c"
                },
                "transaction": {
                    "description": "Transaction is a transaction pointer that utxo points to.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.Transaction"
                        }
                    ]
                },
                "transactionId": {
                    "description": "TransactionID is a transaction id that utxo points to.",
                    "type": "string",
                    "example": "01d0d0067652f684c6acb3683763f353fce55f6496521c7d99e71e1d27e53f5c"
                },
                "type": {
                    "description": "Type is a utxo type.",
                    "type": "string",
                    "example": "pubkeyhash"
                },
                "updatedAt": {
                    "description": "UpdatedAt is a time when outer model was updated.",
                    "type": "string",
                    "example": "2024-02-26T11:01:28.069911Z"
                },
                "xpubId": {
                    "description": "XpubID is a utxo related xpub id.",
                    "type": "string",
                    "example": "bb8593f85ef8056a77026ad415f02128f3768906de53e9e8bf8749fe2d66cf50"
                }
            }
        },
        "response.TransactionOutput": {
            "type": "object",
            "properties": {
                "opReturn": {
                    "description": "OpReturn is a pointer to a op return object.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.OpReturn"
                        }
                    ]
                },
                "paymailP4": {
                    "description": "PaymailP4 is a pointer to a paymail p4 object.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.PaymailP4"
                        }
                    ]
                },
                "satoshis": {
                    "description": "Satoshis is a satoshis amount.",
                    "type": "integer",
                    "example": 50
                },
                "script": {
                    "description": "Script is a transaction output string representation of script.",
                    "type": "string",
                    "example": "76a91433ba3607a902bc022164bcb6e993f27bd040241c88ac"
                },
                "scripts": {
                    "description": "ScriptType is a transaction output script type.",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/response.ScriptOutput"
                    }
                },
                "to": {
                    "description": "To is a transaction output destination address.",
                    "type": "string",
                    "example": "1MB8MfCyA5mGt3UBhxYr1exBfsFWgL1gCm"
                },
                "useForChange": {
                    "description": "UseForChange is a flag that indicates if this output should be used for change.",
                    "type": "boolean",
                    "example": false
                }
            }
        },
        "response.Utxo": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "description": "CreatedAt is a time when outer model was created.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "deletedAt": {
                    "description": "DeletedAt is a time when outer model was deleted.",
                    "type": "string",
                    "example": "2024-02-26T11:02:28.069911Z"
                },
                "draftId": {
                    "description": "DraftID is a utxo transaction related draft id.",
                    "type": "string",
                    "example": "b356f7fa00cd3f20cce6c21d704cd13e871d28d714a5ebd0532f5a0e0cde63f7"
                },
                "id": {
                    "description": "ID is a utxo id which is a hash from transaction id and output index.",
                    "type": "string",
                    "example": "c706a448748d398d542cf4dfad797c9a4b123ebb72dbfb8b27f3d0f1dda99b58"
                },
                "metadata": {
                    "description": "Metadata is a metadata map of outer model.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "outputIndex": {
                    "description": "OutputIndex is a output index that utxo points to.",
                    "type": "integer",
                    "example": 0
                },
                "reservedAt": {
                    "description": "ReservedAt is a time utxo was reserved at.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "satoshis": {
                    "description": "Satoshis is a utxo satoshis amount.",
                    "type": "integer",
                    "example": 100
                },
                "scriptPubKey": {
                    "description": "ScriptPubKey is a utxo script pub key.",
                    "type": "string",
                    "example": "76a91433ba3607a902bc022164bcb6e993f27bd040241c88ac"
                },
                "spendingTxId": {
                    "description": "SpendingTxID is a spending transaction id - null if not spent yet.",
                    "type": "string",
                    "example": "01d0d0067652f684c6acb3683763f353fce55f6496521c7d99e71e1d27e53f5c"
                },
                "transaction": {
                    "description": "Transaction is a transaction pointer that utxo points to.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.Transaction"
                        }
                    ]
                },
                "transactionId": {
                    "description": "TransactionID is a transaction id that utxo points to.",
                    "type": "string",
                    "example": "01d0d0067652f684c6acb3683763f353fce55f6496521c7d99e71e1d27e53f5c"
                },
                "type": {
                    "description": "Type is a utxo type.",
                    "type": "string",
                    "example": "pubkeyhash"
                },
                "updatedAt": {
                    "description": "UpdatedAt is a time when outer model was updated.",
                    "type": "string",
                    "example": "2024-02-26T11:01:28.069911Z"
                },
                "xpubId": {
                    "description": "XpubID is a utxo related xpub id.",
                    "type": "string",
                    "example": "bb8593f85ef8056a77026ad415f02128f3768906de53e9e8bf8749fe2d66cf50"
                }
            }
        },
        "response.UtxoPointer": {
            "type": "object",
            "properties": {
                "outputIndex": {
                    "description": "OutputIndex is a output index that utxo points to.",
                    "type": "integer",
                    "example": 0
                },
                "transactionId": {
                    "description": "TransactionID is a transaction id that utxo points to.",
                    "type": "string",
                    "example": "01d0d0067652f684c6acb3683763f353fce55f6496521c7d99e71e1d27e53f5c"
                }
            }
        },
        "response.Xpub": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "description": "CreatedAt is a time when outer model was created.",
                    "type": "string",
                    "example": "2024-02-26T11:00:28.069911Z"
                },
                "currentBalance": {
                    "description": "CurrentBalance is a xpub's current balance.",
                    "type": "integer",
                    "example": 1234
                },
                "deletedAt": {
                    "description": "DeletedAt is a time when outer model was deleted.",
                    "type": "string",
                    "example": "2024-02-26T11:02:28.069911Z"
                },
                "id": {
                    "description": "ID is a hash of the xpub.",
                    "type": "string",
                    "example": "bb8593f85ef8056a77026ad415f02128f3768906de53e9e8bf8749fe2d66cf50"
                },
                "metadata": {
                    "description": "Metadata is a metadata map of outer model.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "nextExternalNum": {
                    "description": "NextExternalNum is the index derivation number use to generate NEXT external xPub (external xPub are used for address destinations).",
                    "type": "integer",
                    "example": 0
                },
                "nextInternalNum": {
                    "description": "NextInternalNum is the index derivation number use to generate NEXT internal xPub (internal xPub are used for change destinations).",
                    "type": "integer",
                    "example": 0
                },
                "updatedAt": {
                    "description": "UpdatedAt is a time when outer model was updated.",
                    "type": "string",
                    "example": "2024-02-26T11:01:28.069911Z"
                }
            }
        },
        "transactions.NewDraftTransaction": {
            "type": "object",
            "properties": {
                "config": {
                    "description": "Configuration of the transaction",
                    "allOf": [
                        {
                            "$ref": "#/definitions/response.TransactionConfig"
                        }
                    ]
                },
                "metadata": {
                    "description": "Accepts a JSON object for embedding custom metadata, enabling arbitrary additional information to be associated with the resource",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                }
            }
        },
        "transactions.RecordTransaction": {
            "type": "object",
            "properties": {
                "hex": {
                    "description": "Hex of the transaction",
                    "type": "string",
                    "example": "0100000002..."
                },
                "metadata": {
                    "description": "Accepts a JSON object for embedding custom metadata, enabling arbitrary additional information to be associated with the resource",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                },
                "referenceId": {
                    "description": "ReferenceID which is a ID of the draft transaction",
                    "type": "string",
                    "example": "b356f7fa00cd3f20cce6c21d704cd13e871d28d714a5ebd0532f5a0e0cde63f7"
                }
            }
        },
        "transactions.UpdateTransactionRequest": {
            "type": "object",
            "properties": {
                "metadata": {
                    "description": "Accepts a JSON object for embedding custom metadata, enabling arbitrary additional information to be associated with the resource",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "example": {
                        "key": "value",
                        "key2": "value2"
                    }
                }
            }
        }
    },
    "securityDefinitions": {
        "callback-auth": {
            "type": "apiKey",
            "name": "authorization",
            "in": "header"
        },
        "x-auth-xpub": {
            "type": "apiKey",
            "name": "x-auth-xpub",
            "in": "header"
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "v1.0.0-beta",
	Host:             "",
	BasePath:         "",
	Schemes:          []string{},
	Title:            "SPV Wallet",
	Description:      "",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
	LeftDelim:        "{{",
	RightDelim:       "}}",
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
