Buying as a taker
You take someone’s sell order: you pay fiat and receive sats on a Lightning invoice.
take-sell ──► waiting-buyer-invoice ──(add-invoice)──► waiting-payment / active
──(you pay fiat, fiat-sent)──► fiat-sent ──(seller releases)──► settled-hold-invoice ──► success
-
Find an order.
mostro-cli --output json order list --side sell --currency EURChoose by
fiat_amount(orfiat_amount_min/maxfor a range),premium_percent,payment_method.sats_amount"0"means the sats are computed at market price when you take it. -
Take it. Either with your invoice right away (you must know the sats amount, so this suits fixed-sats orders or a Lightning address)…
mostro-cli --output json order take-sell --order <id> --invoice you@wallet.example --yes…or without, and let the node compute the amount first:
mostro-cli --output json order take-sell --order <id> --yesFor a range order add
--amount <fiat>. -
Follow
data.next_step:next_stepDo add_invoiceCreate an invoice for data.order.sats_amountsats and runorder add-invoice --order <id> --invoice <bolt11> --yeswait_for_seller_paymentNothing; the seller must lock the sats pay_bond_invoicePay data.payment_request(taker bond); the node then continues -
Wait until the order is
active(seller paid the hold invoice and your invoice is in).order add-invoicealready tells you withresult: payment_acceptedwhen the seller had paid first; otherwise pollorder info/message list. -
Pay the fiat to the seller through the agreed method, then:
mostro-cli --output json order fiat-sent --order <id> --yesnext_step: wait_for_release. -
Wait for the release. The order goes to
settled-hold-invoiceand thensuccesswhen your invoice is paid. If the payment to your invoice fails, the node may ask for a new invoice (next_step: add_invoiceagain);order add-invoicethen answersinvoice_updated.
If something goes wrong
| Situation | What to do |
|---|---|
take-sell refused with invalid_order_status | Someone else took it; pick another |
take-sell was uncertain | order info --order <id>: if the order is no longer pending, it may be yours; check buyer_trade_pubkey against data.trade_pubkey when order_not_saved gave you data |
| The seller never pays | Cancel (order cancel) |
The seller does not release after fiat-sent | Open a dispute (human-only today) |