Files
lsp/OpenAPI/LSPS1.yaml
2023-01-17 22:45:31 +01:00

181 lines
6.1 KiB
YAML

swagger: "2.0"
info:
description: "API documentation for channel opening request from a Lightning Network Service Provider (LSP)"
version: "0.0.0"
title: "LSP Spec 1"
tags:
- name: "Channel Request"
schemes:
- "https"
x-readme:
explorer-enabled: true
samples-enabled: true
samples-languages:
- curl
paths:
/lsp/channel:
post:
tags:
- "Channel Request"
summary: "Request a new channel opening from LSP"
description: "This endpoint accepts arguments for a channel with a specific size and duration and returns an order information"
operationId: "new-channel-request"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- in: body
name: Channel request
description: Requested channel parameters.
schema:
$ref: "#/definitions/ChannelOrderRequest"
responses:
"200":
description: "Information for channel order"
schema:
$ref: "#/definitions/ChannelOrderResponse"
get:
tags:
- "Channel Request"
summary: "Get information about a channel order."
description: "Get information about a channel order"
operationId: "get-channel-order"
produces:
- "application/json"
parameters:
- in: query
name: order id
description: Order id of the channel
type: string
responses:
"200":
description: "Channel information"
schema:
$ref: "#/definitions/ChannelInformation"
definitions:
ChannelOrderRequest:
type: "object"
required:
- node_connection_info
properties:
node_connection_info:
type: string
description: "pubkey@host:port"
remote_balance:
type: integer
description: "Inbound liquidity amount in satoshis"
local_balance:
type: integer
description: "Outbound liquidity amount in satoshis"
on_chain_fee_rate:
type: number
description: "On-chain fee rate of the channel opening transaction in satoshis per vbyte"
channel_expiry:
type: integer
description: "Channel expiration in weeks. "
ChannelOrderResponse:
type: "object"
properties:
order_id:
type: string
description: "An lsp generated order id used to look-up the status of this request"
order_total:
type: integer
description: "The total fee plus the local_balance requested"
fee_total:
type: integer
description: "The total fee the LSP will charge to open this channel"
fee_per_payment:
type: integer
description: "For intercepted payment of fee, fee taken from each payment until fee is paid"
scid:
type: string
description: "The scid user puts in the route hint of invoice to identify order"
ln_invoice:
type: string
description: "A lightning bolt11 invoice to pay the fee for this channel open"
btc_address:
type: string
description: "An on-chain bitcoin address to pay the fee for this channel open"
lnurl_channel:
type: "string"
description: "LNURL channel request uri"
ChannelInformation:
type: "object"
properties:
id:
type: string
description: "An lsp generated order id used to look-up the status of this request"
created_at:
description: "Number of seconds since epoch when this order was created"
type: "number"
local_balance:
description: "Local balance in sats requested by client"
type: "number"
remote_balance:
description: "Remote balance in sats requested by client"
type: "number"
channel_expiry:
description: "Channel expiry in weeks requested by client"
type: "number"
channel_expiry_ts:
description: "Number of seconds since epoch when the channel can be closed"
type: "number"
order_expiry_ts:
description: "Number of seconds since epoch when this order can still be paid"
type: "number"
order_total:
description: "The total fee plus the local_balance requested"
type: "number"
fee_total:
description: "The total fee the lsp will charge to open this channel"
type: "number"
fee_per_payment:
description: "For intercepted payment of fee, fee taken from each payment until fee is paid"
type: "number"
scid:
description: "The scid user puts in the route hint of invoice to identify order"
type: "string"
ln_invoice:
description: "A lightning bolt11 invoice to pay the fee for this channel open"
type: "string"
btc_address:
description: "An on-chain bitcoin address to pay the fee for this channel open "
type: "string"
order_id:
description: "An lsp generated order id used to look-up the status of this request"
type: "string"
lnurl_channel:
description: "A way to request the open via lnurl after the order is paid"
type: "string"
amount_paid:
description: "Amount paid by client so far in sats"
type: "number"
node_connection_info:
description: "The node_connection_info for the node to open the channel to"
type: "string"
channel_open_tx:
description: "The txid of the channel funding tx once it is broadcast"
type: "string"
state:
description: "The state of the order"
type: "string"
onchain_payments:
description: "A list of payments received to btc_address on-chain |"
type: "array"
items:
type: object
properties:
height:
type: integer
description: "Transaction block height"
hash:
type: string
description: "Transaction id"
amount:
type: integer
description: "Transaction amount"
zero_conf:
type: boolean
description: "If payment was accepted as zero confirmation"