Skip to main content
Why we take use of UTXO splitting

UTXO Splitting done by swappy

ytorian avatar
Written by ytorian
Updated over a week ago

UTXO's are quite technical. Now you will see three explenations. TLDR, Basics and Advanced. Feel free to read them if you are interested.


TLDR:


We use UTXO splitting to make sure your balance is being able to be sent whenever a withdrawal is made instead of it being locked up due to unconfirmed transactions.


Basics:


You can see a UTXO as a transaction where u received crypto. If you want to send crypto you need to use 1 or more UTXO's to send the amount of crypto you want to send. Sadly UTXO's can not be sent for only a fraction of the total crypto in them. This means that if you have a UTXO that has 1 LTC in it and you only want to send 0.8 LTC your provider automatically send 0.8 LTC to the person you want to send it to but as it has to always send the full UTXO, it sends the other 0.2 LTC to an address connected to your wallet (you basically sent that 0.2 LTC to yourself) only that 0.2 LTC can only be used again once the transaction has been confirmed.

What does this mean for our bot? Well lets say you deposit $100 in one transaction.

At one point a client comes to withdraw. only, he only wants to withdraw $20. The bot will do what your provider did for you. it will send $20 to your client and $80 to yourself.
โ€‹

all is well... Right?

But oh no....

Someone else wants to withdraw aswell. and the first transaction has not yet been confirmed. you still technically have $80 in balance. but you cannot use it as it is locked up in a transaction which has not been confirmed. Thus the bot is unable to send the money to the second person.
โ€‹
What splitting UTXO's does is:

Upon deposit. we take your initial transaction and basically send it to ourselves a ton of times. This way when someone wants to withdraw that $20 the bot is able to send just that $20 instead of the whole $100 and thus your balance is not 'locked'


Advanced (if you are interested a bit in how crypto works):


UTXO means 'Unspent Transaction Output' this means that a UTXO is your proof that you are owner of a piece of Crypto (in our case we are talking about LTC). This will boil down to: Your balance is the equivalence of all UTXO's that are in your Wallet Keyword: WALLET. Each time you send a payment. Your UTXO's get used to send the crypto. These UTXO's are not able to be split or devided in any way shape or form. This means that unless a UTXO (or UTXO's) is a perfect fit you will always have a little left over. This left over crypto will be sent to an address linked to your wallet (you will almost never see your main wallet in this output as its due to privacy). This way u basically send money to yourself.

UTXO's are only valid once they have been confirmed. This is also why you are unable to send crypto as soon as you get an incoming transaction worth the same amount or less as it has to be confirmed to be able to be sent. So I think you can start to see where the problem is coming from for the bot.

Most providers like coinbase. have a ton of unspent UTXO's laying around in their system. This means that it is likely that they are not even always using YOUR UTXO's to send crypto when u want to send it to someone. This way your coinbase balance is never 'locked' as it is always able to send confirmed UTXO's. Sadly we do not have that luxury. Our system contains only your own UTXO's this causes problems whenever you get more withdrawals then you have UTXO's with enough balance laying around. This is how I thought of UTXO splitting.

UTXO splitting allows our bot to split your deposits into multiple smaller transactions by resending them to your wallet. This way your balance is way less likely to be 'Locked' As it is devided into alot more sub UTXO's which all are able to be used in withdrawals.

So say two clients would like to withdraw at the same time. Instead of one being locked out due to the one big UTXO being used in the other clients withdrawal, They are now able to both withdraw.

That was my rant about UTXO's I hope you now understand a bit more about them and why we use our methods!

Did this answer your question?