| `--help` (`-h`) | show help | bool | `false` | *none* |
| `--version` (`-v`) | print the version | bool | `false` | *none* |
### `out` command
perform an off-chain to on-chain swap (looping out).
Attempts to loop out the target amount into either the backing lnd's wallet, or a targeted address. The amount is to be specified in satoshis. Optionally a BASE58/bech32 encoded bitcoin destination address may be specified. If not specified, a new wallet address will be generated.
Usage:
```bash
$ loop [GLOBAL FLAGS] out [COMMAND FLAGS] amt [addr]
| `--addr="…"` | the optional address that the looped out funds should be sent to, if let blank the funds will go to lnd's wallet | string |
| `--account="…"` | the name of the account to generate a new address from. You can list the names of valid accounts in your backing lnd instance with "lncli wallet accounts list" | string |
| `--account_addr_type="…"` | the address type of the extended public key specified in account. Currently only pay-to-taproot-pubkey(p2tr) is supported | string | `p2tr` |
| `--amt="…"` | the amount in satoshis to loop out. To check for the minimum and maximum amounts to loop out please consult "loop terms" | uint | `0` |
| `--htlc_confs="…"` | the number of confirmations (in blocks) that we require for the htlc extended by the server before we reveal the preimage | uint | `1` |
| `--conf_target="…"` | the number of blocks from the swap initiation height that the on-chain HTLC should be swept within | uint | `9` |
| `--max_swap_routing_fee="…"` | the max off-chain swap routing fee in satoshis, if not specified, a default max fee will be used | int | `0` |
| `--fast` | indicate you want to swap immediately, paying potentially a higher fee. If not set the swap server might choose to wait up to 30 minutes before publishing the swap HTLC on-chain, to save on its chain fees. Not setting this flag therefore might result in a lower swap fee | bool | `false` |
| `--payment_timeout="…"` | the timeout for each individual off-chain payment attempt. If not set, the default timeout of 1 hour will be used. As the payment might be retried, the actual total time may be longer | duration | `0s` |
| `--asset_id="…"` | the asset ID of the asset to loop out, if this is set, the loop daemon will require a connection to a taproot assets daemon | string |
| `--asset_edge_node="…"` | the pubkey of the edge node of the asset to loop out, this is required if the taproot assets daemon has multiple channels of the given asset id with different edge nodes | string |
| `--force` | Assumes yes during confirmation. Using this option will result in an immediate swap | bool | `false` |
| `--label="…"` | an optional label for this swap,limited to 500 characters. The label may not start with our reserved prefix: [reserved] | string |
Send the amount in satoshis specified by the amt argument off-chain. By default the swap client will create and broadcast the on-chain htlc. The fee priority of this transaction can optionally be set using the conf_target flag. The external flag can be set to publish the on chain htlc independently. Note that this flag cannot be set with the conf_target flag.
| `--private` | generates and passes routehints. Should be used if the connected node is only reachable via private channels | bool | `false` |
| `--route_hints="…"` | route hints that can each be individually used to assist in reaching the invoice's destination | string | `[]` |
| `--deposit_outpoint="…"` | one or more static address deposit outpoints to quote for. Deposit outpoints are not to be used in combination with an amount. Eachadditional outpoint can be added by specifying --deposit_outpoint tx_id:idx | string | `[]` |
| `--help` (`-h`) | show help | bool | `false` |
### `quote out` subcommand
get a quote for the cost of a loop out swap.
Allows to determine the cost of a swap up front.
Usage:
```bash
$ loop [GLOBAL FLAGS] quote out [COMMAND FLAGS] amt
| `--conf_target="…"` | the number of blocks from the swap initiation height that the on-chain HTLC should be swept within in a Loop Out | uint | `9` |
| `--fast` | Indicate you want to swap immediately, paying potentially a higher fee. If not set the swap server might choose to wait up to 30 minutes before publishing the swap HTLC on-chain, to save on chain fees. Not setting this flag might result in a lower swap fee | bool | `false` |
fetches a new L402 authentication token from the server.
Fetches a new L402 authentication token from the server. This token is required to listen to notifications from the server, such as reservation notifications. If a L402 is already present in the store, this command is a no-op.
| `--type="…"` | the type of swap to perform, set to 'out' for acquiring inbound liquidity or 'in' for acquiring outbound liquidity | string | `out` |
| `--incoming_threshold="…"` | the minimum percentage of incoming liquidity to total capacity beneath which to recommend loop out to acquire incoming | int | `0` |
| `--outgoing_threshold="…"` | the minimum percentage of outbound liquidity that we do not want to drop below | int | `0` |
| `--clear` | remove the rule currently set for the channel/peer | bool | `false` |
| `--help` (`-h`) | show help | bool | `false` |
### `suggestswaps` command
show a list of suggested swaps.
Displays a list of suggested swaps that aim to obtain the liquidity balance as specified by the rules set in the liquidity manager.
update the parameters set for the liquidity manager.
Updates the parameters set for the liquidity manager. Note the parameters are persisted in db to save the trouble of setting them again upon loopd restart. To get the defaultvalues, use `getparams` before any `setparams`.
| `--sweeplimit="…"` | the limit placed on our estimated sweep fee in sat/vByte | int | `0` |
| `--feepercent="…"` | the maximum percentage of swap amount to be used across all fee categories | float | `0` |
| `--maxswapfee="…"` | the maximum percentage of swap volume we are willing to pay in server fees | float | `0` |
| `--maxroutingfee="…"` | the maximum percentage of off-chain payment volume that we are willing to pay in routingfees | float | `0` |
| `--maxprepayfee="…"` | the maximum percentage of off-chain prepay volume that we are willing to pay in routing fees | float | `0` |
| `--maxprepay="…"` | the maximum no-show (prepay) in satoshis that swap suggestions should be limited to | uint | `0` |
| `--maxminer="…"` | the maximum miner fee in satoshis that swap suggestions should be limited to | uint | `0` |
| `--sweepconf="…"` | the number of blocks from htlc height that swap suggestion sweeps should target, used to estimate max miner fee | int | `0` |
| `--failurebackoff="…"` | the amount of time, in seconds, that should pass before a channel that previously had a failed swap will be included in suggestions | uint | `0` |
| `--autoloop` | set to true to enable automated dispatch of swaps, limited to the budget set by autobudget | bool | `false` |
| `--destaddr="…"` | custom address to be used as destination for autoloop loop out, set to "default" in order to revert to default behavior | string |
| `--account="…"` | the name of the account to generate a new address from. You can list the names of valid accounts in your backing lnd instance with "lncli wallet accounts list" | string |
| `--account_addr_type="…"` | the address type of the extended public key specified in account. Currently only pay-to-taproot-pubkey(p2tr) is supported | string | `p2tr` |
| `--autobudget="…"` | the maximum amount of fees in satoshis that automatically dispatched loop out swaps may spend | uint | `0` |
| `--autobudgetrefreshperiod="…"` | the time period over which the automated loop budget is refreshed | duration | `0s` |
| `--autoinflight="…"` | the maximum number of automatically dispatched swaps that we allow to be in flight | uint | `0` |
| `--minamt="…"` | the minimum amount in satoshis that the autoloop client will dispatch per-swap | uint | `0` |
| `--maxamt="…"` | the maximum amount in satoshis that the autoloop client will dispatch per-swap | uint | `0` |
| `--htlc_conf="…"` | the confirmation target for loop in on-chain htlcs | int | `0` |
| `--easyautoloop` | set to true to enable easy autoloop, which will automatically dispatch swaps in order to meet the target local balance | bool | `false` |
| `--localbalancesat="…"` | the target size of total local balance in satoshis, used by easy autoloop | uint | `0` |
| `--easyautoloop_excludepeer="…"` | list of peer pubkeys (hex) to exclude from easy autoloop channel selection; repeat --easyautoloop_excludepeer for multiple peers | string | `[]` |
| `--easyatutoloop_includeallpeers` | include all peers back into easy autoloop by clearing the exclusion list. It cannot be combined with --easyautoloop_excludepeer | bool | `false` |
| `--asset_easyautoloop` | set to true to enable asset easy autoloop, which will automatically dispatch asset swaps in order to meet the target local balance | bool | `false` |
| `--asset_id="…"` | If set to a valid asset ID, the easyautoloop and localbalancesat flags will be set for the specified asset | string |
| `--asset_localbalance="…"` | the target size of total local balance in asset units, used by asset easy autoloop | uint | `0` |
| `--fast` | if set new swaps are expected to be published immediately, paying a potentially higher fee. If not set the swap server might choose to wait up to 30 minutes before publishing swap HTLCs on-chain, to save on chain fees. Not setting this flag therefore might result in a lower swap fees | bool | `false` |
This command overrides the database and abandons a swap with a given swap hash. !!! This command might potentially lead to loss of funds if it is applied to swaps that are still waiting for pending user funds. Before executing this command make sure that no funds are locked by the swap.
Usage:
```bash
$ loop [GLOBAL FLAGS] abandonswap [COMMAND FLAGS] ID
| `--i_know_what_i_am_doing` | Specify this flag if you made sure that you read and understood the following consequence of applying this command | bool | `false` |
| `--help` (`-h`) | show help | bool | `false` |
### `reservations` command (aliases: `r`)
manage reservations.
With loopd running, you can use this command to manage your reservations. Reservations are 2-of-2 multisig utxos that the loop server can open to clients. The reservations are used to enable instant swaps.
Requests a new static loop in address from the server. Funds that are sent to this address will be locked by a 2:2 multisig between us and the loop server, or a timeout path that we can sweep once it opens up. The funds can either be cooperatively spent with a signature from the server or looped in.
Usage:
```bash
$ loop [GLOBAL FLAGS] static new [COMMAND FLAGS] [ARGUMENTS...]
| `--filter="…"` | specify a filter to only display deposits in the specified state. Leaving out the filter returns all deposits. The state can be one of the following: deposited withdrawing withdrawn looping_in looped_in opening_channel channel_published publish_expired_deposit sweep_htlc_timeout htlc_timeout_swept wait_for_expiry_sweep expired failed | string |
| `--dest_addr="…"` | the optional address that the withdrawn funds should be sent to, if let blank the funds will go to lnd's wallet | string |
| `--sat_per_vbyte="…"` | (optional) a manual fee expressed in sat/vbyte that should be used when crafting the transaction | uint | `0` |
| `--amt="…"` (`--amount`) | the number of satoshis that should be withdrawn from the selected deposits. The change is sent back to the static address | uint | `0` |
Requests a loop-in swap based on static address deposits. After the creation of a static address funds can be sent to it. Once the funds are confirmed on-chain they can be swapped instantaneously. If deposited funds are not needed they can we withdrawn back to the local lnd wallet.
| `--utxo="…"` | specify the utxos of deposits as outpoints(tx:idx) that should be looped in | string | `[]` |
| `--all` | loop in all static address deposits | bool | `false` |
| `--payment_timeout="…"` | the maximum time in seconds that the server is allowed to take for the swap payment. The client can retry the swap with adjusted parameters after the payment timed out | duration | `0s` |
| `--amt="…"` (`--amount`) | the number of satoshis that should be swapped from the selected deposits. If thereis change it is sent back to the static address | uint | `0` |
| `--fast` | Usage: complete the swap faster by paying a higher fee, so the change output is available sooner | bool | `false` |
| `--max_swap_fee_sat="…"` | the maximum swap fee in satoshis. If set, the swap is rejected when the quoted fee exceeds this cap. The maximum allowed value is 10000000. On-chain fees for creating static deposits are unaffected | uint | `0` |
| `--max_swap_fee_ppm="…"` | the maximum swap fee expressed in parts per million of the swap amount. If set together with --max_swap_fee_sat the tighter cap is used | uint | `0` |
| `--last_hop="…"` | the pubkey of the last hop to use for this swap | string |
| `--label="…"` | an optional label for this swap,limited to 500 characters. The label may not start with our reserved prefix: [reserved] | string |
| `--route_hints="…"` | route hints that can each be individually used to assist in reaching the invoice's destination | string | `[]` |
| `--private` | generates and passes routehints. Should be used if the connected node is only reachable via private channels | bool | `false` |
| `--force` | Assumes yes during confirmation. Using this option will result in an immediate swap | bool | `false` |
Attempt to open a new channel to an existing peer with the key node-key. The channel will be initialized with local-amt satoshis locally and push-amt satoshis for the remote node. Note that the push-amt is deducted from the specified local-amt which implies that the local-amt must be greater than the push-amt. Also note that specifying push-amt means you give that amount to the remote node as part of the channel opening. Once the channel is open, a channelPoint (txid:vout) of the funding output is returned. If the remote peer supports the option upfront shutdown feature bit (query listpeers to see their supported feature bits), an address to enforce payout of funds on cooperative close can optionally be provided. Note that if you set this value, you will not be able to cooperatively close out to another address. One can also specify a short string memo to record some useful information about the channel using the --memo argument. This is stored locally only, and is purely for reference. It has no bearing on the channel's operation. Max allowed length is 500 characters.
| `--node_key="…"` | the identity public key of the target node/peer serialized in compressed format | string |
| `--local_amt="…"` | the number of satoshis the wallet should commit to the channel | int | `0` |
| `--base_fee_msat="…"` | the base fee in milli-satoshis that will be charged for each forwarded HTLC, regardless of payment size | uint | `0` |
| `--fee_rate_ppm="…"` | the fee rate ppm (parts per million) that will be charged proportionally based on the value of each forwarded HTLC, the lowest possible rate is 0 with a granularity of 0.000001 (millionths) | uint | `0` |
| `--push_amt="…"` | the number of satoshis to give the remote side as part of the initial commitment state, this is equivalent to first opening a channel and sending the remote party funds, but done all in one step | int | `0` |
| `--sat_per_vbyte="…"` | (optional) a manual fee expressed in sat/vbyte that should be used when crafting the transaction | uint | `0` |
| `--private` | make the channel private, such that it won't be announced to the greater network, and nodes other than the two channel endpoints must be explicitly told about it to be able to route through it | bool | `false` |
| `--min_htlc_msat="…"` | (optional) the minimum value we will require for incoming HTLCs on the channel | int | `0` |
| `--remote_csv_delay="…"` | (optional) the number of blocks we will require our channel counterparty to wait before accessing its funds in case of unilateral close. If this is not set, we will scale the value according to the channel size | uint | `0` |
| `--max_local_csv="…"` | (optional) the maximum number of blocks that we will allow the remote peer to require we wait before accessing our funds in the case of a unilateral close | uint | `0` |
| `--close_address="…"` | (optional) an address to enforce payout of our funds to on cooperative close. Note that if this value is set on channel open, you will *not* be able to cooperatively close to a different address | string |
| `--remote_max_value_in_flight_msat="…"` | (optional) the maximum value in msat that can be pending within the channel at any given time | uint | `0` |
| `--channel_type="…"` | (optional) the type of channel to propose to the remote peer ("tweakless", "anchors", "taproot") | string |
| `--zero_conf` | (optional) whether a zero-conf channel open should be attempted | bool | `false` |
| `--scid_alias` | (optional) whether a scid-alias channel type should be negotiated | bool | `false` |
| `--remote_reserve_sats="…"` | (optional) the minimum number of satoshis we require the remote node to keep as a direct payment. If not specified, a default of 1% of the channel capacity will be used | uint | `0` |
| `--memo="…"` | (optional) a note-to-self containing some useful information about the channel. This is stored locally only, and is purely for reference. It has no bearing on the channel's operation. Max allowed length is 500 characters | string |
| `--fundmax` | if set, the wallet will attempt to commit the maximum possible local amount to the channel. This must not be set at the same time as local_amt | bool | `false` |
| `--utxo="…"` | a utxo specified as outpoint(tx:idx) which will be used to fund a channel. This flag can be repeatedly used to fund a channel with a selection of utxos. The selected funds can either be entirely spent by specifying the fundmax flag or partially by selecting a fraction of the sum of the outpoints in local_amt | string | `[]` |