---
title: "Bitcoin Spaces · Bitsaga Insights"
description: "Spaces lets you own a name on Bitcoin itself, like rob@bitsaga, and let anyone pay it. How it works, how it compares with BIP 353 and silent payments, and the proof."
url: "https://bitsaga.be/insights/bitcoin-spaces"
language: "en"
---

> Spaces lets you own a name on Bitcoin itself, like rob@bitsaga, and let anyone pay it. How it works, how it compares with BIP 353 and silent payments, and the proof.
[Insights](https://bitsaga.be/insights) · Names

# Bitcoin Spaces

October 6, 2026

![The long bitcoin address bc1pknhdaw3jyhvcalyrkulw2hwmqvc5q65ch9gkpnvvhrfajyedjgvqmn3w0c crossed out, with an arrow pointing to the name rob@bitsaga in a glowing pill](https://bitsaga.be/images/insights/bitcoin-spaces.jpg)

Send bitcoin to a name, not to 62 random characters. Spaces lets you own that name on Bitcoin itself.

## The problem

A Bitcoin address looks like the line below. Nobody can say it out loud, print it on a card, or check it by eye. One wrong character and the money is gone.

Today

bc1pknhdaw3jyhvcalyrkulw2hwmqvc5q65ch9gkpnvvhrfajyedjgvqmn3w0c

With Spaces

rob@bitsaga

Names already exist on the internet. You know them from email and websites. But those names are rented. A company called a registrar keeps the record, and a chain of companies and governments sits above it. If one of them changes the record, your name points somewhere else, or nowhere.

Spaces asks a simple question. What if the name lived on Bitcoin, held like a coin, where only your key can move it?

## What Spaces is

- **A space** is a name that starts with @, like `@bitsaga`. You win it in an auction on Bitcoin. After that it is a small Bitcoin coin that only your key can spend.

- **A handle** is a name under your space, like `rob@bitsaga`. You hand them out yourself, without asking anyone. One tiny note on Bitcoin covers as many as you like.

- **A record** says where to pay. Mine is a silent payment address, which gives every payer a fresh private address. [I wrote about that here.](https://bitsaga.be/insights/i-replaced-my-bitcoin-address-with-a-name)

## How a payment finds you

Step 1

### You win a name

`@bitsaga` becomes a small coin on Bitcoin. Only my key can move it. No company can take it from me.

Step 2

### You create handles

`rob@bitsaga`, `hello@bitsaga`, anything under my name. I make them myself. A single short note on Bitcoin covers all of them.

Step 3

### You say where to pay

I attach my payment address to the name. It is signed, so nobody can swap it.

Step 4

### A friend types the name

Their wallet asks a **relay** for the proof that `rob@bitsaga` belongs to me.

Step 5

### The wallet checks, then pays

It checks the proof against Bitcoin itself. It does not have to trust the relay, or me.

## The parts, in more detail

### Winning a name

You open an auction with one Bitcoin transaction and place a bid. Names open for bidding at a fixed pace, about ten a day, so nobody can grab thousands at once. The highest bid wins. The bid is not paid to anyone: it is burned. Nobody else bid on `@bitsaga`, so my bid burned just 1,000 sats. One more transaction then registers the name to me.

### Keeping a name

A space is a lease of about a year (52,560 blocks). Every transaction that updates it renews it, and I will renew it before it ends. If you forget, the name expires. That is the price of having no registrar: nobody sends you a reminder.

### Handing out handles

Your handles live in a list, and the list stays off Bitcoin. What goes on Bitcoin is one 32-byte fingerprint of the list, called a Merkle root, in a small transaction. Each handle you add gets a certificate that says: this name belongs to this key, for good. Every new fingerprint builds on the earlier ones, so nobody can later slip in a second owner for a handle you already issued. That is also why a handle cannot be moved to another address afterwards.

### Saying where to pay

Records say where a name pays. On a space, they sit inside a Bitcoin transaction. On a handle, they are signed with the handle's key and shared off Bitcoin. I wrote three records: a silent payment address (`sp`), a plain Bitcoin address as the fallback (`btc`), and my website. Spaces has no standard yet for the names of payment records, so `sp` and `btc` are my own choice. A wallet has to agree on them.

### How a wallet trusts the answer

A wallet receives a proof: the certificate, the signed records, and the path from the handle up to Bitcoin. It is about 3 KB. Mine is 3,003 bytes, and checking one takes about a tenth of a millisecond. To finish the check, the wallet needs one more thing: an **anchor**. That is a fingerprint of all of Spaces at one moment. Anyone who runs a Spaces node can compute it from Bitcoin, about every six hours. I computed mine on my own node.

### What a relay does

A relay is a small server that keeps the proofs for names and hands them to wallets. It is only a messenger. It can be slow, or offline. It cannot lie, because the wallet checks every proof against Bitcoin. Relays also copy from each other, so one relay can answer for names it has never met.

#### Your friend's wallet

Wants to pay `rob@bitsaga`.

asks, gets a proof

#### A relay

Stores and serves proofs. Anyone can run one.

the wallet then checks the proof itself

#### Bitcoin

The only thing the wallet has to trust. Everything else is checked against it.

## Spaces, BIP 353 and silent payments

These three are not rivals. They answer different questions.

- **Silent payments** (BIP 352) answer: *what kind of address should I give out?* One that is private and reusable.

- **BIP 353** answers: *how do people find that address from a name?* Through the domain system.

- **Spaces** answers the same question, but the name lives on Bitcoin instead of in DNS.

#### Silent payments

BIP 352 · an address type

What it is

A reusable address. Every payer's wallet derives a fresh, private address from it.

Where the name lives

It is not a name. It is 116 characters.

Strength

Payments cannot be linked to each other or to you, and nobody has to be online.

Weakness

Far too long to share by hand.

#### BIP 353

A name through the domain system

What it is

`rob@bitsaga.be` is a lookup in DNS that returns a payment instruction.

Where the name lives

In a domain you rent.

Who can take it

The registrar, the registry, a court.

A wallet must trust

A chain of DNS keys up to ICANN.

You need

A domain, a DNS record, DNSSEC.

#### Spaces

A name on Bitcoin

What it is

`rob@bitsaga` lives in a Bitcoin coin you hold.

Where the name lives

On Bitcoin.

Who can take it

Nobody, as long as you renew it each year.

A wallet must trust

Bitcoin.

You need

An auction, a few transactions, a relay to carry proofs.

The two kinds of name can point at the same silent payment address. Mine do:

rob@bitsaga.be and rob@bitsaga

sp1qqg94rylj0uklf6lkyc5n92jp3p392g0rpvh0f74qphufxcx9zya97qh8w4z290qym8ve33a02ejfc3lanvw9aljfz6upuc2gfnulepd75ccrhdql

One address, two names. The first is found through DNS (BIP 353). The second is found through Bitcoin (Spaces).

There are practical differences too:

- **Standard.** BIP 353 is a published standard with a fixed record format. Spaces has no agreed record names for payments yet, so a wallet would have to learn mine.

- **Freshness.** A DNS proof stays valid for about a day and a half. A Spaces anchor covers about two weeks. I measured both on my own server in September.

- **Size.** A BIP 353 proof is about 3 KB. A handle under my own small space is about 3 KB too. A handle under a big shared space is not: `alice@bitcoin` needs 230,466 bytes, because the whole space has to be proven. Owning a small space avoids that cost.

- **Setup.** BIP 353 takes a DNS record. Spaces takes an auction, a handful of transactions, and a relay.

## What I did

I bought `@bitsaga` on Bitcoin. Nobody else bid. All the network fees together came to 6,882 sats. I wrote my payment address into the name, so the name itself already says where to pay. Then I created the handle `rob@bitsaga`, and signed its records: a silent payment address as the main record, and a plain Bitcoin address as the fallback.

I also run my own relay, at `spacesrelay.bitsaga.be`. It follows my own Bitcoin node. I put the proof for `rob@bitsaga` on it. Then I asked my public relay for the name from a clean client, and checked the answer against my own node. It returned both addresses, and showed the handle as final. That way I did not have to trust anyone, including myself.

@bitsaga registered rob@bitsaga created and final Records signed Relay live at spacesrelay.bitsaga.be Resolved and checked against my own node

## Check it yourself

You need your own Bitcoin node and the Spaces node `spaced`. To look at the space itself:

```
space-cli getspace @bitsaga
space-cli getfallback @bitsaga
```

To resolve `rob@bitsaga` through my relay and verify the answer against your own node:

```
pip install libveritas
curl -O https://bitsaga.be/files/resolve-via-relay.py
python3 resolve-via-relay.py rob@bitsaga https://spacesrelay.bitsaga.be
```

The script asks the relay for the proof. Then it checks the proof against the anchors of **your own** `spaced` node, and prints the addresses it finds. The relay is only the messenger.

## Run your own relay

Anyone can run a relay. It is one program. This is what I ran:

```
cargo install --git https://github.com/spacesprotocol/certrelay.git \
  relay --bin certrelay --locked
```

I pointed mine at my own Spaces node, so the proofs it serves rest on my own Bitcoin node. A relay can also start its own light client, so you do not need a full node to try it. The more relays there are, the less any one of them matters.

## What does not work yet

- **Almost no wallet understands Spaces names today.** The public network is tiny: my own relay currently sees 9 others. It is very early.

- There is no agreed way yet to name payment records, so `sp` and `btc` only work where a wallet chooses to read them.

- A space is a lease. I have to renew it about once a year.

- A handle's address is fixed for good. `rob@bitsaga` will always point to the address I chose.

- Spaces is a second kind of name next to BIP 353. It does not replace it. For now, both can point at the same silent payment address.

The Spaces protocol and its tools come from [spacesprotocol.org](https://spacesprotocol.org).
