RoboSats charges a 0.2% fee of the total trade amount; this fee is distributed between the order maker and the order taker who pay 0.025% and 0.175%, respectively.

The platform fees are summarized in the table below to emphasize the fee percentage depends on whether you make or take the order:

SideMakerTaker
Buyer0.025%0.175%
Seller0.025%0.175%

Note: External fees may be incurred such as Lightning Network routing fees and on-chain transaction fees.

Platform Fees in Practice

The total fee (0.2%) is split between the maker and taker. The taker pays a greater amount (0.175%) than the maker pays (0.025%); this is designed to encourage more makers and subsequently increase available liquidity on the exchange.

In practice, the fees are applied when the user is presented with submitting the trade escrow (seller) or payout invoice (buyer) after the taker bond is locked.

If the order pricing is relative, then the amount of Sats being traded relative to the fiat exchange rate (we’ll call trade_sats) fluctuates until the taker bond is locked. In cases of explicit order pricing, the amount of Sats being traded is fixed. Refer to Understand > Prices for additional information regarding relative and explicit pricing methods.

Until the taker bond is locked, the order’s price continues to move with the market over time. Once the taker bond is locked for a relatively priced order, the amount of Sats being traded is calculated as follows:

premium_rate = CEX_rate * (1 + (premium / 100))
trade_sats = amount / premium_rate

where trade_sats is the Sats to be traded, premium is what the order maker defined during order creation, and CEX_rate is the current bitcoin exchange price given the currency you are using.

The platform fees (fee_sats) associated with your order are calculated using the trade_sats variable:

  • For maker:
    fee_fraction = 0.002 * 0.125
                 = 0.00025 ==> 0.025%
    fee_sats = trade_sats * fee_fraction
    
  • For taker:
    fee_fraction = 0.002 * (1 - 0.125)
                 = 0.00175 ==> 0.175%
    fee_sats = trade_sats * fee_fraction
    

where fee_fraction combines for a shared total platform fee of 0.2%. As noted hereinbefore, the taker pays a greater amount (0.175%) than the maker pays (0.025%) to encourage liquidity growth with more order makers.

RoboSats then collects fees in the trade escrow (escrow_amount) and payout invoice (payout_amount) process by calculating the following:

  • For seller:
    escrow_amount = trade_sats + fee_sats
    
  • For buyer:
    payout_amount = trade_sats - fee_sats
    

In essence, RoboSats adds to the escrow_amount, deducts from the payout_amount, and, depending on whether you are the order taker or the order maker, applies the appropriate fee_fraction calculations.

Why Have Fees?

Fees work to improve the platform’s end-user experience through continuing development, offering multilingual support, and building out guides for interacting with the platform.

Fees in turn reward the volunteer GitHub developers and contributors for completing tasks that are elligible for earning bitcoin. Check it out! If you earn Sats for your contributions, then fees incurred while using RoboSats would be sufficiently covered!

Implementing fees also helps mitigate the opportunity for denial of service attacks by malicious bots congesting the RoboSats coordinator.

External Fees

External platform fees can be incurred when performing on-chain payouts (on-chain swaps) and when routing payments through the Lightning Network.

When choosing to receive bitcoin on-chain, an overview of the mining fee (fee_mining) and swap fee (fee_swap) is displayed. The payout_amount for receiving on-chain is calculated as follows:

payout_amount = trade_sats - fee_sats - fee_mining - fee_swap

The swap fee is an additional fee that RoboSats charges for making the on-chain payment and the mining fee is the on-chain fee rate in sats/vbyte which can be customized to suit your needs. Refer to Understand > On-Chain Payouts for additional information regarding on-chain payouts.

RoboSats leverages the speed and security of the Lightning Network, therefore payments sent through the Lightning Network may incur fees depending on the necessary “path” that payment must take.

Users can receive payments privately through lnproxy, a simple Lightning Network privacy tool, but your routing budget may increase to cover extra fees incurred by the lnproxy server. Refer to Best Practices > Proxy Wallets for more on receiving privately.

The user has the option to specify the Lightning Network routing budget which may help reduce routing failures. Refer to Quick Start > Lightning Network for additional information on routing failures.

You can help improve this page!

Learn RoboSats is a joint effort of the RoboSats community. If you have used RoboSats before, you are already an expert! Help improve this documentation.

ProTip: You can directly edit this page and open a Pull Request . Your changes will show right here.