Skip to content

Wallet commands fail with "install ethers" error in SEA binary (v3.5.5) #11

Description

@co1onnese

Bug Description

The hyperspace wallet commands fail with the error message "Wallet unavailable — install ethers: npm i ethers" even though ethers is installed globally. This also causes hyperspace hive points to show 0.00 even when causes are actively earning points.

Environment

  • Hyperspace version: v3.5.5
  • Install method: install-script
  • Runtime: Node.js v22.22.1 (embedded in SEA binary)
  • Platform: linux x64
  • OS: Ubuntu (kernel 6.8.0-35-generic)

Steps to Reproduce

  1. Install hyperspace via official install script
  2. Run hyperspace wallet show
  3. Observe error: "Wallet unavailable — install ethers: npm i ethers"

Expected Behavior

Wallet should initialize and display address/balance. Points should be visible in hyperspace hive points.

Actual Behavior

$ hyperspace wallet show
Wallet unavailable — install ethers: npm i ethers

$ hyperspace hive points
┌─ Points Summary ─────────────────────┐
│ Total:       0.00 pts                │

Root Cause Analysis

The binary is built as a Node.js SEA (Single Executable Application). Enabling debug output reveals:

$ NODE_DEBUG=module hyperspace wallet show 2>&1
MODULE 242550: looking for "ethers" in [
  "/home/runner/work/p2pnetwork/p2pnetwork/apps/cli/release/sea-bundle.cjs/node_modules",
  "/home/runner/work/p2pnetwork/p2pnetwork/apps/cli/release/node_modules",
  ...
  "/node_modules",
  "/root/.node_modules",
  "/usr/local/lib/node"
]
Wallet unavailable — install ethers: npm i ethers

The wallet module performs a dynamic import:

const { AgentWallet } = await import("@hyperspace/wallet");
// which internally calls:
return import("ethers");

The issue: ethers is not bundled into the SEA binary, and the hardcoded module search paths don't resolve to any user-installable location.

Workaround Attempts

Attempt Result
npm i ethers -g ❌ Not found by SEA
Symlink to /node_modules/ethers ❌ Same issue
Symlink to /root/.node_modules/ethers ❌ Same issue
Set NODE_PATH environment variable ❌ SEA ignores it
Copy full ethers package to search paths ❌ Same issue

Impact

  • Points ARE being earned (visible in hyperspace causes status - 655+ pts accumulated)
  • Points display shows 0.00 because it requires wallet to read from A1 blockchain
  • All wallet-related commands are non-functional (staking, payments, on-chain, etc.)

Suggested Fix

Please ensure ethers is bundled into the SEA binary during the build process, or provide alternative module resolution that respects user-installed packages.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions