Skip to content

light-client: browser wallet + Ed25519 signed transfers#155

Merged
Scottcjn merged 2 commits intoScottcjn:mainfrom
liu971227-sys:bounty/light-client
Feb 13, 2026
Merged

light-client: browser wallet + Ed25519 signed transfers#155
Scottcjn merged 2 commits intoScottcjn:mainfrom
liu971227-sys:bounty/light-client

Conversation

@liu971227-sys
Copy link
Contributor

Implements bounty #62 (light client):

  • Adds browser light client served from node origin: /light + /light-client/*
  • Generates/validates BIP39 24-word seed (English wordlist vendored)
  • Derives RTC address from Ed25519 pubkey: RTC + sha256(pubkey)[:40]
  • Signs canonical JSON message (sort_keys + separators) and posts to /wallet/transfer/signed
  • Adds DB_PATH env override + creates transfer_nonces table needed for replay protection

Local E2E test:

  • Start node with RC_ADMIN_KEY set
  • POST /wallet/transfer/signed returns 200 ok, phase=pending, verified=true

Copy link
Owner

@Scottcjn Scottcjn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes Requested — Promising concept, needs refinement

A browser-based light client with Ed25519 signed transfers is interesting, but:

  1. Verify against live API: Has this been tested against https://50.28.86.131? Include screenshots or curl output
  2. Key management concerns: How are private keys stored in the browser? LocalStorage is not secure for Ed25519 keys
  3. Endpoint compatibility: The transfer endpoint format must match our server's /wallet/transfer/signed schema exactly (check field names: from_address, to_address, amount_rtc, nonce, signature, public_key)
  4. No bundled dependencies: If using external libraries (tweetnacl, etc.), document how they're loaded

This could be a great contribution — please address these points and resubmit.

@Scottcjn Scottcjn merged commit d6d97d2 into Scottcjn:main Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants