Skip to content

[Journey] Register an RLN membership on the LEZ testnet #403

Description

@adklempner

What the user achieves

Installs the RLN Membership app in Basecamp and use it to register a membership on LEZ testnet

Why it matters

Demonstrates the ability to acquire RLN memberships for participating in DoS-protected networks on the Logos stack

Key components

  • Logos Basecamp — the desktop host that loads modules and UI apps and
    provides the package manager the user installs from.
  • RLN Membership UI (rln_membership_ui) — the guided onboarding wizard and
    membership status card; it drives the backend over the host bridge.
  • RLN membership module (liblogos_rln_membership_module) — registry-agnostic
    membership management (keystore, register, confirmation polling).
  • RLN module (liblogos_rln_module) — the on-chain access layer: merkle
    roots, registration, faucet funding, and membership reads.
  • Wallet (logos_execution_zone) — the LEZ wallet the modules use to sign
    and submit; auto-provisioned, faucet-funded. Comes from the official catalog.

Repository

https://github.com/logos-co/logos-lez-rln @ feat/membership-gui

Runtime target

testnet v0.2

Prerequisites

  • Nix with flakes enabled. (install; then
    mkdir -p ~/.config/nix && echo 'experimental-features = nix-command flakes' >> ~/.config/nix/nix.conf)
  • macOS or Linux (Apple Silicon / x86-64 / aarch64 all supported).
  • Network access to the testnet sequencer https://testnet.lez.logos.co/.
  • Disk: ~4 GB free for the released-catalog path (Basecamp host + the
    downloaded bundles resolve to ~3 GB in the Nix store). Building the modules
    from source instead (publish.sh) is much heavier — budget ~30–40 GB on a
    cold Nix store for the Rust + risc0 toolchains and vendored crates, or
    ~10 GB if you already have a Rust/nix dev environment.

Commands and expected outputs

> Expected end state after each block is called out. After the one-time Nix
> builds, the wizard itself runs ~6 minutes end to end (measured on the
> shared-faucet testnet, 2026-07-19): sync ~3–4 min for a fresh wallet, faucet
> claim a few seconds, registration confirmation ~1–3 min.

**a. Clone the repo** (for the verification command):


git clone -b feat/membership-gui https://github.com/logos-co/logos-lez-rln
cd logos-lez-rln


**b. Build the portable Basecamp host:**


nix build github:logos-co/logos-basecamp#bin-bundle-dir -o result-basecamp

Expected: `result-basecamp/bin/LogosBasecamp` exists.

**c. Launch Basecamp** against a fresh data directory:


./result-basecamp/bin/LogosBasecamp --user-dir ./basecamp-data


Expected: the Basecamp window opens with a sidebar (Applications, Package
Manager, Settings).

**d. Add the module catalog and install RLN Membership.** Open **Package
Manager****Add repository** and paste:

https://raw.githubusercontent.com/logos-co/logos-lez-rln/catalog/logos-repo.json

Then find **RLN Membership** and click **Install****Install with
dependencies**

Expected: RLN Membership appears in the sidebar.

**e. Register a membership.** Open **RLN Membership** from the sidebar:
1. **Get started** on the welcome screen ("Register to participate in p2p
   messaging and more!").
2. Choose a **password** (used for the wallet and keystore) and **Continue**. On
   macOS this step may be auto-skipped after the first run via the Keychain.
3. Watch the single progress bar run **Syncing → Claiming → Registering** (this
   is the unattended wait).

Expected: the app lands on **"You're in!"** with your new membership shown below

**f. Copy your Membership id.** Tap the membership pill to open its detail view.
Next to **Membership id**, click the **copy button** to copy the full identity
commitment.

Success command

nix run '.#check-membership' -- --commitment

Expected result

✓ Registered — state: active, leaf index: <your_index>, rate limit: 300

Configuration details

- **Sequencer.** `https://testnet.lez.logos.co/`

Failure modes and limits

  • The "Registering" screen waits a while. Two unattended waits sit behind
    it: the first-run chunked chain sync (~3–4 min for a fresh wallet — measured
    ~143 blocks/s over ~28k blocks) and, after the faucet claim, the registration
    confirmation poll (~1–3 min, bounded at 300s). Both are expected; the bar
    advances as it syncs.
  • "Get more tokens" appears. The faucet claim has a 180-second budget; if it
    times out, retry from the offered button.

GitHub handle

@adklempner

Discord handle

arseniy.eth

Existing docs or specs

  • Existing docs. Module READMEs in the repo: logos-rln-membership-ui/README.md,
    logos-rln-membership-module/README.md, logos-rln-module/README.md,
    tools/deployments/README.md.
  • Estimated time to complete. ~6 minutes of wizard time after the one-time
    Nix builds (measured 2026-07-19: sync ~3–4 min, faucet claim seconds,
    registration confirmation ~1–3 min). The first-run Nix builds of Basecamp and
    the modules are a separate, larger one-time cost.

Hardware requirements

~4 GB free disk

Estimated time to complete

10-15 minutes

Security notes

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:journeyA user journey document (the primary deliverable).

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions