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.
- The command line, which proves your private changes on your machine:
curl -fsSL https://logos-names.wrapit.workers.dev/install.sh | sh
names setup
- 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.accountentry holds the account’s address; - the account’s signed log carries an
lns.nameentry 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.
- CLI:
names set-logos-account,names account-log-entry,names verify-account --log <file> - Live now:
names resolve jefshows itslogos.account(a test account for now). - For AI agents, an MCP server resolves names, reverse-looks up accounts and reads pages: logos-names/mcp at main · jefdiesel/logos-names · GitHub
- Code: logos-names/accountlog at main · jefdiesel/logos-names · GitHub
- Wallet builders: see the note on LP-0021, [LP] LEZ Zone Wallet and SDK · Issue #194 · logos-co/ecosystem · GitHub
Links
- Code (MIT / Apache-2.0): GitHub - jefdiesel/logos-names: Name registry for the Logos Execution Zone: wallet aliases, text records and pages by name · GitHub
- Release 0.9: Release Names for Basecamp 0.9.0 · jefdiesel/logos-names · GitHub
- Spec, for wallets and apps that want to resolve names: logos-names/SPEC.md at main · jefdiesel/logos-names · GitHub
- Registry program: logos-names/core at main · jefdiesel/logos-names · GitHub
- Board program: logos-names/board at main · jefdiesel/logos-names · GitHub
- Names app (QML): logos-names/basecamp at main · jefdiesel/logos-names · GitHub
- Names module: logos-names/basecamp-module at main · jefdiesel/logos-names · GitHub
- CLI: logos-names/cli at main · jefdiesel/logos-names · GitHub
- RFP draft: logos-names/docs/RFP-private-naming.md at main · jefdiesel/logos-names · GitHub
Themes for Basecamp itself: I’ve proposed Day and High Contrast themes, a text-size setting and a View menu for all of Basecamp:
- feat: View menu and Settings → Display for Day / High contrast themes and text size by jefdiesel · Pull Request #515 · logos-co/logos-basecamp · GitHub
- feat: light (Day) and high-contrast themes, and a text size setting by jefdiesel · Pull Request #67 · logos-co/logos-design-system · GitHub
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.