Phoenix is well-liked here on Stacker.news, which is why I'm using it. My use case is mostly to receive sats and then when they hit a certain amount, move them on-chain. But the inbound liquidity thing is really not easy to understand, at least for me.
I've bought inbound liquidity in Phoenix twice. But then...it's just gone, once you actually receive the sats. I thought sending some sats off-chain would restore the inbound liquidity, but that appears not to be the case.
So do you have to send the sats via Lightning, in order to see the inbound liquidity increase again?
Are there better wallets to use, for my use case (using Android)? What should I be doing differently? I've spent a fair amount on buying the inbound liquidity in Phoenix. It can't be that I just need to buy more and more, there must be a better strategy.
Also, the telegram channel for Phoenix does not appear to be very active. (I know it's not officially sponsored).
I use phoenix in a similar manner: mostly to receive.
Here's how I manage it:
Start the wallet off with a big deposit. At least 1 million sats 2 or 3 million is better.
Immediately use boltz,.exchange to transfer back to on chain 95% of the phoenix wallet balance.
This leaves you with whopping big inbound liquidity and you can receive up to the amount you originally transferred in to phoenix without needing more inbound.
When you get close to using it all up repeat the transfer out to your onchain wallet via boltz.
NOTES:
  1. make sure you are tracking on chain fees. This setup works best when you time the big transfer in and the boltz transfers with low fees.
  2. the reason you lose your inbound may be that you are making an on chain transfer out of phoenix.
Because phoenix uses splicing, whenever you make an on chain transaction out of your phoenix wallet, you are reducing the size of your lightning channel and the amount of inbound liquidity you have as well.
reply
If you do not swap out all your sats, the channel is not reducing or closed. Just leave a % in that channel and you always have the previous inbound liquidity.
reply
I think with splicing, when you use phoenix to send to an on chain address, you are reducing your channel size and therefore your liquidity.
reply
No. ONLY in case you send ALL sats, the channel is closed. It never shrink, only expand.
reply
Thanks, let me re-state to see if I understand:
  • spending from my Phoenix wallet via lightning will increase my inbound liquidity, by the amount that I spent
  • it may be that spending directly from my Phoenix wallet, via on-chain, using the SEND button will NOT increase my inbound liquidity
  • however, spending from my Phoenix wallet via on-chain, but using Boltz (or any other tool like Sparrow? using the phoenix wallet seed phrase?) WILL increase my inbound liquidity
  • So buying inbound liquidity is just a one-time thing, I can receive one payment that takes up all the inbound liquidity? I thought it would last for the time period specified (I believe it was 1 year). (actually this makes sense now, the thing that doesn't make sense is that spending on-chain in Phoenix doesn't appear to restore my initial inbound liquidity)
reply
Yes to all of those, except the last one I'm not too sure about. I've not used their purchase liquidity feature.
I know for a fact that spending out of phoenix via on chain can reduce your liquidity. But this does not take into account liquidity you purchase.
If you haven't used boltz it is a cool process. You can do it either way: LN to on chain or on chain to LN.
In your case it let's your transfer out of your phoenix wallet on the lightning network but then use the boltz exchange to make the transaction end up on chain.
Bolt charges a fee which is similar to the fee phoenix charges for liquidity. I need to do some figuring if the boltz method saves you anything on fees. I mostly like it because it makes it clear in my mind what is going on.
reply
If you buy inbound liquidity, it should stay at least 1 year the same. So after you swap out to onchain in another wallet, the inbound liquidity should stay the same, not shrinking. Definitely a bug or you did something wrong. Contact them on github https://github.com/ACINQ/phoenix/discussions
reply
You're saying that if I buy a certain amount of inbound liquidity (say 1,000,000 sats), I should ALWAYS have that amount of inbound liquidity, even if I receive 800,000 sats?
Because that's definitely not what I'm seeing. I bought additional inbound liquidity, and after receiving sats, I have very little inbound liquidity left over.
reply
No, I am saying that you buy 1M sats inbound. You receive 800k sats, so you remain with 200k inbound available. Then you swap out to another onchain wallet let's say 700k sats. So you will have 900k inbound available.
What you buy as inbound liquidity is a bucket. It is even represented like that. You fill it with water, then you drink (spend) or pour it into a bigger bottle (swap out). The bucket always remain 1M CAPACITY. Only the water (your sats) fluctuate, depending of your use. The trick is to not swap out ALL your sats, just leave in that channel like 1-5% or even 10%. If you swap out all sats, then the channel is closed so you will lose the bucket.
reply
Sorry, I should have been clearer. Here's approximately what happened:
  • bought 1,000,000 sats inbound liquidity
  • received 800,000 sats
  • sent out 800,000 sats on-chain, via SEND button in Phoenix
  • but the inbound liquidity didn't recover to 1,000,000, like I thought it would.
reply
When you spend on-chain from Phoenix, it’s splicing out, which means it’s taking bitcoin out of your lightning channel and sending it on-chain. This will always reduce your channel size.
Basically, if you want to maintain at least the same channel size, you have to always send from Phoenix with lightning, and use other services to convert to on-chain.
reply
So, like @Scoresby suggested, perhaps transferring via Lightening using Boltz, then transferring off Boltz, on-chain.
This is starting to get quite complicated. And also expensive, all these transfers.
I know it's custodial, but using Wallet of Satoshi (with a VPN) seems like a reasonable option. And likely cheaper too.
reply
So, like @Scoresby suggested, perhaps transferring via Lightening using Boltz, then transferring off Boltz, on-chain.
I think that's where you're confused: It's not two transfers that require your interaction. A swap out is a single transaction as far as you can be concerned. You enter a bitcoin address and then you will be presented a lightning invoice. When you pay this lightning invoice, you will pay via lightning but you will receive sats into the onchain address you entered since they send a part of their sats that are already onchain to you.
I would recommend going to https://boltz.exchange/ and trying it out. You don't have to actually pay the lightning invoice at the end to see how the flow is.
reply
Okay, thanks, I will give it a try. Swap out - gotta start learning this stuff...
I actually think for the mostly receive use case phoenix is great.
I guess it also depends a little on how big the transactions you receive generally are.
I sell posters and t-shirts and stuff, so not huge transactions.
For my case it is cheaper than wallet of satosji because they nailed me with fees every time I transferred out to my cold storage.
Also, I'm in the states and they shut off service pretty quickly here, so you never can count on it.
Phoenix with a big channel to start and boltz out yo your cold storage when fees are low works pretty well for me.
reply
This is a tricky situation. And don't quite know how Phoenix's purchase liquidity handles it.
When you set up a ln channel, you and your channel partner each commit a specific amount of btc to the channel. When you spend on the lightning network, you are changing the balance so that your channel partner has more of the funds and you have less. When you receive it's the opposite.
If you both put 500k sats in to start the channel, you can receive up to 500k sats before the channel stops making sense (you can't receive more than your channel partner has committed to the channel).
When you request liquidity from phoenix, they are adding more btc to the channel.
Now, if you transfer out of phoenix to an on chain address you aren't moving any btc back to phoenix's side of the channel. Your removing it from the channel altogether.
If you purchase 1million sats inbound liquidity, they add that much to their channel with you.
If you receive 800k sats you reduce that inbound liquidity to 200k.
If you transfer out of phoenix onchain it definitely won't rebalance the liquidity to phoenix's side.
The question is does it shrink the channel size so much that impinges on the remaining 200k inbound liquidity. I wouldn't expect it to.
reply
The channel never shrink if you leave a min % reserve in it. The channel is closed if you move all sats from it.
reply
This is true for normal lightning.
But splicing makes it different, I think.
In phoenix I always only have one channel and it is between me and phoenix. Any onchain transaction i make affects the size of this channel.
If I make a transaction sending from my phoenix wallet to my on chain, it has to change the size of the channel, even if it is only a small percent that you send out.
If it doesn't change the channel size, where do the sats come from?
I have done exactly this multiple times, and it reduced my channel size by the amount I sent out.
reply
That's the thing, you are using internal swap. Use external swap (sending a normal LN payment to the swap) and you will see that will not reduce the size. Is also cheaper using an external swap.
You mistake was that you moved the whole balance into onchain. As I said, Phoenix is closing the channel if you do that. So you every time paid new fees for opening a new one. But is strange why did you received only 800k from 1M, this is huge difference. Something must be wrong.
reply
That was just some example numbers, I left a substantial amount on Phoenix.
But I did move a chunk of it, on chain, in Phoenix, and not using the Boltz system that other posters mentioned like @ek and @Scoresby. The Boltz system appears to involve sending it to a bitcoin address via a lightening invoice. Seems complicated but I guess I'll try it. And there will be a fee as well. Ugh.
reply
55 sats \ 1 reply \ @Scoresby 9 Apr
Look at it this way: if you were receiving credit card payments, you'd be losing 3-5% on fees.
If your use case is lightning withdraws from an exchange or p2p trades, you could consider just sending directly to the boltz swap and skipping your on wallet altogether.
It really comes down to your use case.
reply
Wow, okay, so I need to learn more about this Boltz thing.
So if my main use case is receiving, then I could just create a lightning invoice in Boltz, give it a btc address, and then receive the sats to the btc address with a .5% fee from Boltz, and an on chain fee?
Maybe that's the way to go...
Though I guess you'd want to batch things up, so you don't pay too much in on chain (mining) fees.
reply
deleted by author
reply
Well, you wouldn't ever have inbound liquidity issues at Walmart because you are paying them, not receiving from them. So the only liquidity issue you'd have at Walmart is you not having enough money and that applies with pretty much every monetary system.
reply