Menu

Public domains

Dassie uses a handful of domain names. Some end up in places the project can't reach, such as other people's wallets, the XRP Ledger and owners' scripts, so they never move. The rest name the project's own machines, and a release can move them.

On this page
  1. The names
  2. Payment names
  3. Memo types
  4. The mirror and the installer
  5. The project's own machines

The names

Name What it is Can it move?
dassiepay.net Payment names: <node ID>.dassiepay.net and <name>.dassiepay.net Never
test.dassiepay.net Reserved for the testnet's payment names, which move there later; not used yet Never
dassie.land This site, and the domain of Dassie's memo types Never
get.dassie.land The release mirror Never
sh.dassie.land The installer Never
relay.dassiepay.net The project's front door, which a node without a hostname keeps as its relay by default, so that it is reached at its payment names. Its entry, with its keys, is built into the release With a release
boot1.dassie.xyz to boot5.dassie.xyz The testnet's bootstrap nodes, built into the release. boot1 to boot4 also keep the testnet's XRP and DSUSD hubs With a release
testnet.xrpl.dassieland.net, mainnet.xrpl.dassieland.net Proof servers With a release

A name that never moves can still gain a successor: the new name is served beside the old one for as long as anyone may still use the old one.

Why it works this way and why payment names live apart from dassie.land.

Payment names

A node without a hostname of its own is paid at its node ID under dassiepay.net, such as gstpaogawdidju5a6m4lolevaes3cm4dj7omffq.dassiepay.net. A node that holds a name is also paid at <name>.dassiepay.net. Its wallet addresses are under that name: https://<name>.dassiepay.net/.well-known/pay for its default asset and https://<name>.dassiepay.net/pay/<asset> for each one, as on the Open Payments endpoints page.

The node answers to these names, but a request reaches it only while it keeps a connection to the front door. It does by default: a node without a hostname, the desktop app's too, keeps the front door at relay.dassiepay.net as its relay, unless DASSIE_RELAY names another relay or none. While the node holds no connection to it, the front door answers requests for the node with 503. The wallet warns that its dassiepay.net address may reach no one when the node keeps another relay or none, or can't reach the front door. The node still peers, and pays others, through its uplinks.

The front door is a machine the project runs. While your node keeps it, that machine learns when your node is online, and from which address, and it reads the Open Payments requests it passes on. DASSIE_RELAY says how to choose another relay, or none.

  • Others keep these names. Other wallets store them as wallet addresses, in grants and in payment requests. That is why the domain never moves.
  • A front door answers for them. It passes each request on to the node over the connection the node keeps to it. The node signs every answer with its own key, and a Dassie-aware client checks that signature against the node ID in the host, or, for a name, against the node that holds the name in the client's view of the registrars' lists. So the front door can't answer in the node's place. Signed responses and names shows how.
  • Some labels are reserved. relay and test are the project's, and nobody can register them as a name, along with others such as www and admin. The full list is RESERVED in name.rs.
  • A node with its own hostname is paid under that hostname alone, and the payment names don't apply to it.

Dassie takes test money only, and a node refuses the live realm. So every name under dassiepay.net today belongs to a testnet node. Testnet names can be reset along with the testnet, so don't print one anywhere you can't change later. Names and addresses explains how a node gets a name.

The move of testnet names to <node ID>.test.dassiepay.net and <name>.test.dassiepay.net, which leaves dassiepay.net to the live realm, is not there yet. What's next

Memo types

A payment on the XRP Ledger can carry memos, and each memo has a type. Dassie's memo types are URIs under https://dassie.land/. They stay on the ledger for good, so their meaning never changes: a new meaning gets a new path.

https://dassie.land/hub/open/v1

The memo on the deposit that opens an account in a settlement hub. It goes to the hub's escrow with destination tag 0, and the memo's data is the new account's key, 32 bytes. Your node writes it with its first deposit to a hub. Later deposits name the account by its tag and need no memo. Settlement hubs explains the rest.

https://dassie.land/settlement/<scheme>/v<n>

Once marked settlements made directly on the XRP Ledger, one type per scheme, such as xrpl-testnet-xrp. Nodes now settle only through settlement hubs, so no node writes or reads these. The memos already on the ledger keep their meaning.

A memo type is a name, not a link. Nothing is served at its path, and nothing fetches it.

The mirror and the installer

  • get.dassie.land holds every release, its signed sums and its NixOS flake. The installer and dassie update download from it, and a NixOS owner's flake.lock records a release's flake there. Release mirror and key lists what it holds. To use another mirror, set DASSIE_MIRROR_URL or pass dassie update --mirror <url>.
  • sh.dassie.land serves install.sh, which the one-line install runs:
$curl --proto =https --tlsv1.2 -sSf https://sh.dassie.land | sh

Both realms share the mirror, since one binary serves both.

The project's own machines

The bootstrap nodes, the default relay and the proof servers are named in the release, the bootstrap nodes and the relay with their keys, and nothing outside a release stores them. So a release can move them, and nodes follow when they update. A new testnet node finds the network through the five bootstrap nodes, and dassie setup joins the testnet's XRP hub, which four of them keep, unless you name other hubs or none. A node without a hostname keeps the front door at relay.dassiepay.net as its relay.

You can name machines of your own, or the project's:

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