Menu

Check on your node

dassie status tells you in a few lines how your node is doing. This page goes through each line, and says what to do about each hint it gives.

On this page
  1. Run it
  2. Reading the output
  3. Hints
  4. The counters
  5. Pasting it when you ask for help

Run it

On the node's server, run:

$dassie status

It talks to the node over its local socket, which root and members of the group dassie-users may use. The installer adds you to that group; if you get a permission error, log out and in again, or run it with sudo.

If the node is not running, it says Dassie is not running., shows how the last update went, and says why it could not reach the node.

Reading the output

Here is a node with a domain name on the testnet, a few days after it was set up, in the testnet's XRP hub:

$dassie status
Dassie 0.3.0 is running, for 3 days (since 2026-10-25 03:41 UTC).
  Address      https://node.example.com/
  Certificate  valid until 2027-01-21 02:10 UTC; the node renews it by itself
  Setup        done; the node ID is 454ml6lg4tjfcz4kaedcmpb5u4mos7af5r2fqui
  Network      a member of the network, listed by 5 of 5 bootstrap nodes; peers: 2
  Peers        sbegzgsyebannd6yz2emrvftva2hipgad57lm4i: hub-xrpl-testnet-xrp, credit 10 XRP, owes the node 1.5 XRP
               i2yhz2nartbnlzgcjn4qavsyeefnpaxx5i6iyli: hub-xrpl-testnet-xrp, credit 10 XRP, nothing owed
  Balances     99.5 XRP
  Ledgers      hub-xrpl-testnet-xrp+xrp: 20 XRP, in sync
               xrpl-testnet-xrp+xrp: 79.5 XRP, in sync
  Hub          hub-xrpl-testnet-xrp: account 17, 20 XRP, in sync; 4 of 4 validators answering
  Rate feed    answering at [::]:7768
               took 1460 datagrams: answered 1458, 0 over the budget, 2 ignored; 0 sends failed
  Packets      took 212 Prepares: 140 forwarded, 72 answered at once
               196 fulfilled, 14 rejected, 2 expired
               0 wrong fulfillments, 0 unexpected responses, 0 duplicate request IDs
  Protocol     sent 9120 requests, 3 failed, 0 dropped; refused 0 inbound
               link states 880 accepted, 12 dropped
               2 peerings begun, 0 ended; 0 answers dropped
               settlements 6 delivered, 6 applied, 0 again, 1 requested; 0 channels closed
  Updates      checked 2026-10-28 03:52 UTC: up to date

Line by line:

Line What it tells you
First line The version that runs, and how long it has run.
Address Where you and other nodes reach your node: https:// its domain name.
Certificate Which TLS certificate the node serves, until when, and whether it renews it by itself.
Setup Whether the node has an owner yet, and its node ID once it has.
Network How many bootstrap nodes list your node, whether that makes it a member of the network, and how many peers it has.
Peers For each peer, at most twelve, the ways the two of you settle: the scheme, the credit your node extends, and who owes whom. The wallet lists every peer.
Balances What you have of each asset: in its settlement hub and on your own account together, as the wallet shows it.
Ledgers Each of your node's ledgers, with what of your balance is on it and whether the node is in sync with it. Your node moves funds between a hub and your own account by itself.
Hub Each settlement hub your node is in: its account number there, the balance, and how many of the hub's validators answer.
Rate feed Whether the node answers requests for its snapshot, the signed quotes it swaps assets at, on which UDP address, and what it counted since it started.
Packets, Protocol, Names What the node's engine counted since it started. The counters are below.
Updates How the last nightly update went.

Amounts are in each ledger's own asset, such as XRP. A node that validates a settlement hub, or founds one, gets a line for each of those too (below).

A periphery node

A node without a domain name runs as a periphery node. It registers nowhere and needs no certificate from Let's Encrypt, so dassie status describes it differently: its addresses are its names for Open Payments, and instead of its membership it names its uplinks, the core nodes it reaches the network through, and its relay, here the built-in front door at dassiepay.net (A relay).

  Address      https://454ml6lg4tjfcz4kaedcmpb5u4mos7af5r2fqui.dassiepay.net/ (Open Payments only)
  Certificate  a temporary one the node made, which browsers warn about; a periphery node needs no other
  Setup        done; the node ID is 454ml6lg4tjfcz4kaedcmpb5u4mos7af5r2fqui
  Network      a periphery node: it registers with no bootstrap node, and reaches the network through its uplinks
  Uplinks      topmkmy6f2dggcqpzq27sleio6ernnber24pdci at https://node.example.org, connected
  Relay        orksjbmxvscmvfv3apa6xwencnxw2rt7t655esa at https://relay.dassiepay.net, connected

A periphery node answers no requests for a snapshot, so it has no Rate feed line. The rest reads as above.

A node with a domain name is a periphery node too until two core nodes it peers with promote it, after an hour in good standing with them. Its status reads as a core node's, with its certificate and how many bootstrap nodes list it, and its Network line ends a periphery node until two core nodes it peers with promote it. Its Uplinks line names the core nodes it waits on.

Hints

dassie status gives a hint only where something needs you. A line without one is fine as it is. Here is each hint, and what to do about it.

Address

  • none yet: `sudo dassie init` sets the node's domain name: run sudo dassie init. It asks for the domain name and gets a certificate for it.
  • none yet: a periphery node is named once it is set up: set the node up; its names follow from its node ID.

Certificate

  • a temporary one the node made, which browsers warn about: `sudo dassie init` gets a real one: the node has no certificate from Let's Encrypt yet. Run sudo dassie init.
  • It ends in …: fewer than 14 days are left. A certificate from Let's Encrypt renews by itself well before then, so look for a failed renewal next to it. One you installed by hand is yours to replace.
  • IT HAS EXPIRED: browsers and peers refuse the node: renew it now. See Certificates.
  • The last renewal failed: …: the rest of the line is what Let's Encrypt said. Most often port 80 is not reachable, or the domain name points somewhere else. Troubleshooting has the fixes.

Setup

  • not done yet: `sudo dassie setup-url` prints the link to open in a browser: the node has no owner yet. Open that link, or set the node up from your phrase on the server with headless setup. The link is never in the status or the logs, since whoever opens it first claims the node.

Network

  • no bootstrap nodes are set (DASSIE_BOOTSTRAP_NODES), so the node runs alone: the node knows no bootstrap node, so it finds no other node. The testnet's four are built in, so this shows only where DASSIE_BOOTSTRAP_NODES is set to []. To join the testnet, remove it from your drop-in.
  • not a member yet, listed by 0 of 5 bootstrap nodes: right after the first start, this is normal: the node registers with each bootstrap node, and each first checks that it can reach your node at its address. It becomes a member once more than half of them list it. If it stays at 0 for more than a few minutes, see Not listed.
  • peers: 0, for a member: see No peers.

These lines are a periphery node's. A core node keeps no connection to the built-in relay, so it has a Relay line only if you named a relay for it in DASSIE_RELAY.

  • none yet, so no payment reaches the node, on Uplinks: the node has found no core node to connect through. It peers with core nodes that share one of its ledgers, so check that it is in a settlement hub, on the Hub line.
  • not connected, last heard from … ago, on an uplink: the node lost that connection. It dials again by itself; if it stays this way, check that the server can reach the internet on UDP or TCP port 443.
  • none (DASSIE_RELAY names none), so Open Payments clients cannot reach the node: the node keeps no relay, because DASSIE_RELAY is set empty. Nobody reaches it at its name under dassiepay.net. If you didn't mean to opt out, remove the variable to keep the built-in front door, or name another relay: A relay. The node still peers and sends payments through its uplinks.
  • connecting, on Relay: normal right after a start or a short drop. No action.
  • not connected, so Open Payments clients cannot reach the node through it: the node has failed to reach its relay for a while. The rest of the line asks you to check DASSIE_RELAY, which matters only if you set it, and that the server can reach the relay. For the built-in front door, the front door may also be down, which needs nothing from you, or its key may have changed, which an update fixes. See Troubleshooting.

Peers

  • withdrawn for room: the peer has used up the room your node gives it on this method and has not settled for a while, so no payment crosses it for now. The node keeps asking the peer to settle, and the method comes back once it has. No action.
  • winding down: the node is dropping this method. It asks the peer to settle first, then drops it; the peering goes on over its other methods. No action.
  • no method: the peering has no method left to settle on, and the node ends it. No action.

Peers and how they settle are explained in Peers and holds.

Ledgers

  • none yet: add one in the wallet: your node holds no money yet. See Add and fund a ledger.
  • connecting or catching up: the node is talking to the ledger's server. No action unless it stays so.
  • waiting for funds at …: the account on the ledger does not exist yet. On the XRP Ledger testnet the node asks the testnet's faucet for test XRP by itself; otherwise, send test funds to that address.
  • failed: …: the node cannot use the ledger; the rest of the line says why, such as a server on the wrong network. To use another server, set the account's config with dassie setup --asset, then restart the node.

Hub

  • no account yet with waiting for the first deposit to open it: the node opens its account there by itself, with a deposit from its XRP Ledger account, once that account has the funds. Right after setup, give it a few minutes. If you turned the node's own moves off, deposit yourself, with dassie hub deposit or on the wallet's Hubs page: Your hubs.
  • frozen by its token's issuer: the issuer of the hub's token holds the hub's escrow. Nothing crosses the hub until it lets go. No action on your side.
  • failed: the node cannot follow the hub. dassie hub says more.
  • Fewer validators answering than the hub has: some are unreachable. A hub works on as long as a quorum answers.
  • takes no new downlinks or takes no new peers, with how many of its peerings the pool covers: your node's funds in the hub would not cover one more peer at a largest packet each, and your own account cannot add to them. Fund your own account, or deposit into the hub. If the pool stays short of its peerings, dassie hub says from when the node ends some: As many peers as your funds cover.

dassie hub shows each hub in full: the balance and reserve, what was deposited and withdrawn, the floor and ceiling the node keeps its account between, and the pool against the peerings over the hub.

Rate feed

Without the UDP socket, your node's peers still get its snapshot over QUIC. A node that offers no swaps, or whose engine is down, has no snapshot for anyone.

  • none: the node has no UDP socket for it (under systemd, `dassie-feed.socket`): UDP port 7768 is taken, or its socket unit did not start. The node runs fine without it. To answer requests, free the port and run sudo systemctl restart dassie, which starts the socket with the node.
  • not answering: the node answers at … once it has a domain name and offers swaps: if you turned swaps off, Swaps for peers, in the wallet's settings, turns them on again. The node also has no snapshot while its engine is not running, such as right after a start.

Validating and founding

A node that validates a settlement hub gets a Validating line for each: which validator it is, the last final block and its view. Its hints are a validator's to act on: no block final for … (check that the other validators reach it over QUIC), stalled, its escrow is not checked yet and its XRPL server cannot be reached. A node that founds a hub gets a Founding line, which says how far the founding is. Both are covered in Validate a settlement hub and Found a hub.

Updates

  • none yet; the node checks every night: a new install. No action.
  • … did not start (…), so the version before runs again: the update rolled back by itself, and your node runs as before.
  • … did not start here before (…), so the node waits for a newer version: the updater passes over that version from now on. sudo dassie update --force tries it again.
  • the update failed: …: the rest says why; the next night's update tries again.
  • this binary was not installed by the installer, so it is not updated: expected on NixOS, where Nix updates it, and for a binary you run by hand.

More on all of these in Updates and rollback.

The counters

Packets, Protocol and Names count what the node's engine did since it last started, so they start from zero after a restart or an update. They help you, and anyone helping you, see whether payments fail or peers refuse, without reading the logs.

  • Packets: the payment packets (Prepares) the node took, how many it passed on and how many it answered itself, and how they ended. Some rejected and expired packets are normal. The third line counts what should never happen, such as a wrong fulfillment from a peer: it should stay at zero.
  • Protocol: the messages the node sent to other nodes and how many failed, the requests it refused, the link states it took in, the peerings it began and ended, and the settlements it delivered and applied.
  • Names shows only on a node that registered a name or keeps a registrar's log. See Names and addresses.

Pasting it when you ask for help

dassie status names no secret: no phrase, no key, no setup link. You can paste its whole output where you ask for help, along with what you expected to see. Where to ask is on Get help.

It does name your node's ID and domain name, which are public anyway. For more detail, the node's log is in journalctl -u dassie; Troubleshooting says what to look for there.

Why it works this way: a hint only where something is wrong, so a healthy node never reads as a fault.

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