How swaps work

Private mode: one swap, two providers, and what we keep

Contents
  1. Why one provider normally holds both addresses
  2. How Private mode splits the swap
  3. What each party sees
  4. Following 500 USDT through both steps
  5. The rate and the two steps
  6. The status page
  7. The swap ID
  8. What we do not keep
  9. What Private mode does not do
  10. Before you switch it on
  11. FAQ

A swap on Sablebolt needs two addresses, the sending one and the receiving one. In a standard swap both go to the single liquidity provider that carries the swap out, so one company's order holds both ends. Private mode changes that one fact. Below: how, a USDT-to-Bitcoin swap followed through both steps, and what stays as it was.

Why one provider normally holds both addresses

A standard swap is one order at one liquidity provider. The form passes it the pair, the amount and both addresses, and gets back a one-time deposit address. When your deposit confirms, the provider converts it and pays from its own wallet to your receiving address; How it works shows that flow screen by screen.

The provider needs both addresses: the first to match the deposit to the order, the second to know where to pay. Its record of the swap links them and stays with the provider under its own policy, as the Privacy notice puts it. One company receives and pays, so one company knows both sides.

How Private mode splits the swap

Private mode runs the same swap as two orders at two different liquidity providers, joined by another coin that our server picks for the route. The sequence is fixed by which address has to exist first:

  1. Step 2 is created first. Our server opens an order at provider 2, from the coin in between to the asset you want, paying to your receiving address. Provider 2 answers with a one-time deposit address for the coin in between.
  2. Step 1 is created second. Our server opens an order at provider 1, from the asset you send to the coin in between, with provider 2's fresh deposit address as the payout address. Provider 1 also gets the address you send from. It answers with the deposit address you will pay.
  3. You make one deposit. You send the asset from your own wallet to provider 1's deposit address, exactly as in a standard swap. It is the only transaction you sign.
  4. Step 1 pays into step 2. Once your deposit confirms, provider 1 converts it and pays the coin in between to provider 2's deposit address.
  5. Step 2 pays you. Once that transfer confirms at provider 2, it converts and pays the asset you chose to your receiving address.

Sablebolt does not hold the coin at any point. The two orders are tied together by one address and nothing else: provider 1 pays straight into provider 2. If the second creation call fails, nothing has been sent yet, and the order already opened at provider 2 simply stays unfunded.

What each party sees

PartyHasDoes not have
YouBoth of your addresses, the deposit address, the status page with both stepsThe provider-side order numbers, which sit inside the encrypted swap ID
Provider 1The address you send from, your deposit and its amount, provider 2's one-time deposit address as the place it paysYour receiving address, the asset you receive
Provider 2A deposit of the coin in between, arriving from provider 1's payout wallet; your receiving address; the amount it pays youThe address you send from, the asset and amount you sent
Anyone reading the chainsYour deposit, the transfer between the providers and your payout: three ordinary transactions with amounts and timesNothing is withheld from them by this mode
SableboltYour receiving address, the deposit addresses and the amounts, in memory for minutes so the status page can show them; the key that opens the swap ID. The address you send from goes to provider 1 at creation and is not kept hereA database of swaps, an account, your name

The provider rows carry the point of the mode: neither order contains both of your addresses.

The row about the chains is the one the second mode changes. The transfer between the providers is an ordinary transaction on a public chain, from provider 1's payout wallet to provider 2's deposit address: it shows a sender, a receiver and an amount, and the two addresses in it are the providers' wallets, not yours. Untraceable mode keeps the two steps and settles that middle transfer on a private chain, where the sender, the receiver and the amount are not public.

Following 500 USDT through both steps

Say you hold 500 USDT on TRON at an address starting with T and want bitcoin at a bc1q… address. The amount is only an illustration.

You open USDT TRC-20 → BTC and switch on "Private mode". The form quotes again: "You get (estimate)" covers both floating steps, the fee row shows one network fee in BTC marked "already deducted", and the arrival line ends in "two steps". You paste the T address as the sender, the bc1q address as the receiver, and create the swap.

MomentWhat you do or seeProvider 1 knowsProvider 2 knowsVisible on chain
CreationThe status page opens with a deposit address on TRONYour T address, the amount, provider 2's deposit addressYour bc1q address, a deposit expected in the coin in betweenNothing yet
DepositYou send 500 USDT from T to provider 1The deposit hashNothing newA USDT transfer on TRON, T to provider 1, with the amount
Step 1The page reads "Swapping"Converts, pays the coin in between to provider 2A deposit arriving from provider 1's walletA transfer on the chain of the coin in between, provider 1 to provider 2
Step 2"Sending", then "Done"Nothing newConverts, pays BTC to bc1qA Bitcoin transaction, provider 2 to bc1q, with the amount

On TRON, one confirmation takes about 2–5 minutes in our model. The coin in between adds its own confirmation time before step 2 starts, and the bitcoin then confirms in your wallet. The arrival line adds the first two together; it is a model, not a measurement.

At the end, provider 1's order holds T and an address that belongs to provider 2; provider 2's order holds a deposit from provider 1 and bc1q. Neither contains both T and bc1q.

The rate and the two steps

Both steps run at a floating rate. Step 1's rate is set when your deposit confirms; step 2's when the transfer between the providers confirms at provider 2, under its own floating-rate rules. A fixed rate is not offered in either swap mode.

There are two network fees. Provider 1 pays out the coin in between and takes that chain's fee; provider 2 pays you and takes the receiving chain's fee. The form shows one fee, in the asset you receive. The first fee is already inside the estimate, because step 2 is quoted on what step 1 pays out after its fee. The status page lists both.

The minimum and maximum come from both steps together, expressed in the asset you send, so the minimum in Private mode can differ from a standard swap's on the same route. When the two providers cannot both serve a route, the switch says so: "Private mode is not available for this route. A standard swap is."

Compared with a standard swap, it takes a bit longer, depending on confirmations: the transfer between the providers has to confirm before step 2 begins.

The status page

The status page keeps the five stages described in Reading a swap status page for the whole swap. It stays on "Swapping" while step 1 runs and the coin in between travels to provider 2, and moves to "Sending" when provider 2 pays you.

A "Private" badge stands beside the title. The summary names the route, through the coin in between, and lists "Fee, step 1" and "Fee, step 2". Three transactions appear with explorer links: your deposit, the transfer between the providers, your payout. On the site, the status page is the one place where the coin in between is named.

If a step stops, the page says which one: "Step 2 could not be completed. Write to support@sablebolt.io with the swap ID."

The swap ID

A Private mode swap is two orders, so its ID has to point at both. It starts with pm1, runs to about 75 characters, and carries the two provider-side order numbers inside, encrypted with a key that only we hold: our server opens the ID every time the status page asks, and without the key the ID points to nothing. Change a single character and the page answers "No swap with this ID." A second post, on Untraceable mode, takes the ID apart field by field.

What we do not keep

  • No accounts.
  • No names or e-mail.
  • No database of swaps.
  • No record of your addresses once the swap is final.
  • No link between the two steps anywhere but in the encrypted ID you hold.

What the status page shows sits in memory for minutes: each answer from the providers is reused for 30 seconds while the swap runs and for 5 minutes once it is final, and after that nothing about the swap stays in our memory. A server restart does not lose the swap, because the ID itself carries what the server needs to ask both providers again.

What Private mode does not do

  • It does not hide anything on chain. Your deposit, the transfer between the providers and your payout are three public transactions with amounts and times.
  • It does not erase the providers' records. Each provider keeps its own order, with one of your addresses in it, under its own policy.
  • It does not take us out of the picture while the swap runs. Our server sees both addresses at creation, keeps your receiving address and the amounts in memory while the swap runs, and holds the key to the ID.
  • It does not add delays or split your amount. Step 2 starts by itself when step 1 pays out.
  • It does not fix the rate. Both steps float.

Before you switch it on

  • Read the minimum again; it can differ from the standard one.
  • Paste the address you will actually send from: provider 1 receives it.
  • Save the status link as soon as it opens. On our side, the ID in it is the only thing that ties the two steps together.

FAQ

Do I send twice?

No. You make one deposit to provider 1. The transfer to provider 2 is made by provider 1, from its own wallet.

Which coin is in between?

Our server picks it for each route from the coins both providers can handle. The form does not name it; the status page does, once the swap exists.

Which record holds both of my addresses?

Neither provider's order. Provider 1's order holds the address you send from and a wallet of provider 2's; provider 2's order holds a wallet of provider 1's and the address you receive at. The transfer between the providers is a transaction between those two service wallets. Our status page shows both of your addresses to whoever holds the swap ID, for as long as the swap runs.

What if the swap cannot be completed?

Write to support with the swap ID from the status page. The form has no refund address: the deposit is returned to the address you sent from, less the network fee, after support confirms the address.

Can I share the status link?

Anyone who has it sees both steps, your receiving address, all three transactions and, through the deposit's explorer link, the address you sent from. Share it as carefully as you would share the swap itself.