Names for Basecamp: posts, messages and pay under your LEZ name

LNS (the LEZ Name Service) gives you a name on the Logos Execution Zone. Names, a new app for Basecamp, lets you live under it: post on a public board, message other names, get paid, and keep a profile, all as jef rather than a 32-byte account.

It started as an RFP proposal for private names (earlier thread). This is what it has become.

Private by default. The chain never sees a name, only an identifier derived from it, and never sees who holds one: a name held from a private account changes through a zero-knowledge proof made on your own machine. No server sits in between: the app talks to the chain and to Logos messaging directly.

What you can do

  • Register a name. Write it bare: jef. Registering takes a refundable deposit (1,000,000 on testnet), returned in full when you release the name, and names don’t expire. One- and two-character names are reserved. It takes about 20 minutes: a proof, a 15-minute wait so nobody can take the name first, then a second proof.
  • Posts. A public board with replies under the posts they answer, likes, follows, Recent and Following feeds, and a page for each poster with all their posts. Every post is signed by a name.
  • Messages. Direct messages and group chats between names, end-to-end encrypted over Logos messaging, through Basecamp’s chat module.
  • Pay. Send to a name from your private account; the chain doesn’t show who paid whom or how much.
  • Profile and page. Display name, bio, avatar, colour, font, and your own HTML page, shown in a sanitized view inside the app.
  • Anon names. A second name like anon-frost-frog, held by its own private account and funded privately, so nothing on chain links it to your main name.
  • Private or public. A name held privately takes about 4 minutes a post (a proof on your machine). Make public moves it to a fresh public account, funded privately, so posts take one block and the account still isn’t tied to you.
  • Themes. The app follows Basecamp’s theme and text size: Dark, Day or High Contrast.

Install

macOS (Apple Silicon). Linux x86_64 is built but not yet tested in Basecamp.

  1. The command line, which proves your private changes on your machine:
curl -fsSL https://logos-names.wrapit.workers.dev/install.sh | sh
names setup
  1. In Basecamp’s package manager, add this repository, then install Names:
https://logos-names.wrapit.workers.dev/basecamp/logos-repo.json

The command-line installer checks its signature. The Basecamp packages are signed too, and you can check them with ssh-keygen against the release key in the repo.

Under the hood

  • Registry v5: 38jEfVV1RCyMzu1FGbYcCn5FqxCxKyY58VgzjruAh2gq. Names are derived with Argon2id (64 MiB, 3 passes) instead of PBKDF2, so guessing names costs memory, not just GPU time. It uses deposits, reserved short names and commit-then-reveal against front-running.
  • Board: 8PwnCKStKQtoBxJCgopCG6CPPMJCUWba1SDG1SXtXYTf. It checks the poster holds the name in registry v5.
  • Both live on the public LEZ testnet, written directly against lee_core.

A name as the address for Logos accounts and agents

This answers Jarrad’s idea of a name service for Logos public keys. A name and a Logos account (an Ed25519 key, from the AccountLog identity LIP) can point at each other:

  • the name’s logos.account entry holds the account’s address;
  • the account’s signed log carries an lns.name entry naming it back.

A wallet or agent resolves jef, gets the account, and checks that the account’s log says jef too. Each side has to sign its half, so neither can claim the other alone. It’s tested against the LIP’s test vectors.

Links

Themes for Basecamp itself: I’ve proposed Day and High Contrast themes, a text-size setting and a View menu for all of Basecamp:

Heads-up: the LEZ testnet has been stalled at block 36316 since 09:27 UTC today. Lookups work, but registering, posting and paying wait until it moves again.

Feedback and reviews welcome, especially on the Argon2id derivation and the deposit model.

1 Like