Hi all. We've been quiet for some time, because we've been cooking something exciting!
Why Boltz does not trade BTC/USDt? Because of the free option problem. And why SideSwap requires you to use their own wallet? To address that problem. The third solution - SideShift - is to charge you extra spread for it. There are also Bitfinex, etc who are KYC and custodial. What if we tell you there is a better way?
Introducing a (some will say crazy) idea of letting a web app manage the wallet's private keys to trade with you directly:
Liquid BTC/USDt Swaps
https://swapmarket.github.io/usdt/
A proof-of-concept implementation of "Exchange in a Browser" idea. You trade against an open source code hosted at GitHub Pages. No third party involved, except to provide a bag of private keys + UTXOs to the website when the page loads. The rest happens automatically: if you deposit L-BTC, you get back L-USDt and vice versa. Kind of a large smart contract.
To prove available reserves, balances are computed from the keys. The deposit address is also derived from a new private and blinding keys. These keys, along with TxId and Vout are added to the wallet's available UTXOs after funding. This ensures automatic refund in an unlikely event that the purchased asset is not available (some other user purchased all or most of it while your trade was pending).
All trades have blinded amounts and assets, with outputs randomized. Private keys are (hopefully!) well protected by encryption and code obfuscation. Feel free to prove us wrong by hacking the code and stealing our testnet coins. To this end, the code is made very simple with minimal UI. Not mobile friendly at the moment. Bells and whistles, and mainnet, are coming soon!