Menu

Exchange-rate settings

When a payment passes through your node from one currency to another, your node converts it. You decide what it keeps for that, and where it learns the rates. Both live in Settings.

On this page
  1. Fee, spread and rebalancing
  2. Swaps with peers
  3. Where rates come from
  4. The currency of your total

Fee, spread and rebalancing

Open Settings, and find the Peers card. Its first three numbers apply only to what your node converts or passes on for its peers. Your own payments, and payments to you, are never charged.

Setting What it does New node
Fee A share of everything that passes through, converted or not. It is rounded down, so a packet too small to carry a fee passes free. 0%
Spread A share of what your node converts from one currency to another, kept as the difference between the market rate and the rate it gives. 0%
Rebalancing How strongly your holdings move the rate. Bringing in what your node is short of gets up to this much better than the market rate. Taking it out gets worse, with no cap: at the default 5%, holdings split 25/75 already cost about 6% for taking out the scarce one, and more the further out of balance they are. 0 converts at the market rate. 5%
  1. Type each as a percentage, such as 0.3 for 0.3%. Each is at most 10%, with up to four decimals.
  2. Select Save. The new numbers apply to the next packets your node handles.

Rebalancing is how your prices pull your holdings back into balance. When your node holds less XRP than it would like, it gives a slightly better rate to payments that bring XRP in, and a worse one to payments that take XRP out. It counts each asset whole: the XRP in your XRP hub together with the XRP on your own account. Over time, what flows through, your peers' swaps and market makers bring your holdings back toward an even share of each asset.

Dassie is early, and few nodes route payments yet, so there is no going rate for a fee or a spread. A new node charges neither. If you set them, start low and watch what passes through.

Why it works this way: pricing by inventory.

Swaps with peers

Two peers in hubs of two currencies can trade one for the other between themselves: a swap. Your node pays a peer in one hub, the peer converts it at its own rates, and pays it back in the other. The Peers card has two settings for swaps, and both are on for a new node:

Swaps for peers

Offered or Not offered: whether peers may swap with your node, at the rates above. While they may, your node signs a snapshot of its quotes for each hub, and sends it to the peers that read it. Anyone may also ask for it over UDP; see Network and peers. Only a core node shows this setting: a node without a hostname passes nothing on for others, so it never offers swaps.

Swapping with peers

On or Off. On a core node, whether it swaps with its peers by itself, toward an even split of what it holds, when a peer's quotes beat its own costs: the hub's fees, and the XRP Ledger's fees for moving funds between your account and the hub. On a node without a hostname, whether it reads its uplinks' quotes at all, which it needs for any swap.

A node without a hostname also lists a target for each currency you hold, by its ledger, such as xrpl-testnet-xrp+xrp. A target is the share of your holdings you want in that currency, more than 0 and at most 100%, with up to four decimals. Your node swaps by itself only toward the targets you set. A hub has no target of its own: what you hold there counts with your account that funds it. Leave every target empty, as a new node does, and your node swaps only when you ask.

You ask through the node's owner interface, as a market maker does. The wallet has no button for a swap of your own.

Save keeps these with the fee, the spread and the rebalancing. What your node swapped shows under Swaps on the Network page.

Why it works this way: swaps between peers, priced by snapshots.

Where rates come from

Your node needs a rate for each currency it converts between, and for the currency you see your total in. It asks its sources about once a minute, and takes each currency's rate as the median of the sources that answered, once more than half of them did. One wrong source cannot move a rate past what the others say.

A new node starts with four sources. All are free and need no key:

  • Coinbase, which covers every currency;
  • Kraken, the last trade on its markets;
  • Bitstamp, which covers XRP;
  • European Central Bank, its daily reference rates for the government currencies.

So three sources cover every currency. DSUSD needs no rate: your node books it as a dollar, as long as the peg guard lets it.

Change the sources

  1. In Settings, find the Exchange rates card. It lists your sources.
  2. To add one, choose it under Add a source and select Add. A Coinbase source can take a URL: leave it empty for Coinbase's own, or enter an https:// server that answers in Coinbase's format.
  3. To drop one, select Remove next to it.
  4. Select Save. Nothing changes until you do.

Your node keeps at most eight sources.

Check the rates

Open Ledgers. The Exchange rates card at the bottom lists what one dollar buys in each of your currencies, with its age, such as:

1 USD = 1.8656 XRP (2 minutes ago)

A rate older than an hour is stale, and payments that need it are refused until a source answers again. Your node keeps its last rates across restarts, so it converts again right after one.

A core node that offers swaps puts the rates it converts at for its peers in its snapshot (above).

The exchanges license their data for personal or internal use only. Rate sources whose terms allow a node's use are not there yet. What's next

Why it works this way: the median of several sources, and the fee and spread.

The currency of your total

In the same card, Show totals in picks the currency the Dashboard adds your ledgers up in: USD, XRP, EUR, GBP, JPY, CHF, CAD or AUD. Choose No total to hide it. It applies at once. See Activity and assets for how the total reads.

A kopje of granite blocks against the sun, in veld grass; one dassie climbs its slab, one keeps lookout on top inside the sun, and one sleeps on the next rock; on a wide screen, a pair sits on a kopje to the left