Wallet Features¶
Detailed reference for all features in the XE web wallet.
Setup flow¶
New users are presented with two options:
Create wallet¶
- A random 32-byte seed is generated via
crypto.getRandomValues - User sets a passphrase (used for AES-GCM encryption)
- Seed is displayed once with a confirmation prompt ("I have saved my seed")
- Seed is encrypted and stored in
localStorage - Wallet unlocks and starts the auto-receive poller
Import wallet¶
- User pastes a 64-character hex seed
- User sets a passphrase
- Seed is validated, encrypted, and stored
- Wallet unlocks and starts polling
Tip
Seeds generated by the standalone CLI (account create) can be imported directly into the web wallet.
Main wallet page¶
The primary interface after unlocking.
Address and balances¶
- Full account address with copy-to-clipboard
- Multi-asset balance display showing XE and XUSD separately
Send form¶
| Field | Description |
|---|---|
| Destination | Recipient account address (64 hex characters) |
| Amount | Integer amount to send |
| Asset | XE or XUSD (dropdown) |
Submitting a send:
- Fetches current chain state (frontier, balance) from the API
- Builds a send block with correct previous hash and debited balance
- Computes PoW in the browser (Blake2b)
- Signs with ed25519 (tweetnacl)
- Submits to the node API
Claim form¶
Claim 100 XUSD from the testnet faucet. Rate limited to once per 24 hours per account. Follows the same build-sign-submit flow as sends.
Activity log¶
Displays the last 20 transactions for the active wallet, showing block type, amount, counterparty, and timestamp.
Block history¶
Full block chain for the account, expandable to show all fields of each block.
Auto-receive¶
A background poller runs every 5 seconds to detect and process pending sends.
Flow¶
- Fetch pending sends for each wallet from the API
- For each pending send, build a receive block
- Compute PoW
- Sign the block
- Submit to the API
Events¶
The auto-receive system emits events for UI feedback:
| Event | Description |
|---|---|
data |
Pending sends fetched |
receiving |
Processing a specific pending send |
pow |
PoW computation started |
received |
Block successfully submitted |
error |
Processing failed |
Multi-wallet spacing¶
When multiple wallets are active, auto-receive processes them sequentially with a 600 ms delay between wallets to avoid overwhelming the node API.
Multi-wallet management¶
Create new wallet¶
Generate a random seed and encrypt it with the existing passphrase. The new wallet is added to the wallets array in localStorage.
Import wallet¶
Paste a 64-character hex seed. The seed is validated, encrypted, and stored.
Wallet operations¶
| Operation | Description |
|---|---|
| Switch active | Select a different wallet from the header dropdown |
| Rename | Change the display name |
| Delete | Remove the wallet (disabled if only one remains) |
| Reveal seed | Re-authenticate with passphrase, then display the seed |
The wallet switcher appears in the layout header and shows the active wallet name and a truncated address.
P2P Chat¶
Peer-to-peer messaging between XE accounts.
Starting a conversation¶
Enter a recipient's account address to open a new conversation thread. The wallet automatically registers the active account in the node's directory on page load.
Message display¶
- Messages are colored by direction (sent vs. received)
- Timestamps shown for each message
- Real-time updates via Server-Sent Events (SSE)
- Contact list with recent conversations
Security¶
All chat messages are signed with ed25519 detached signatures. The signature covers the message envelope, proving the sender's identity. See Cryptography for details.
Compute management¶
Manage virtual machine leases from the wallet.
Provider list¶
Browse available providers showing:
- Account address
- Available resources (vCPUs, memory, disk)
- Current availability status
Lease request¶
| Field | Description |
|---|---|
| Provider | Selected provider address |
| vCPUs | Number of virtual CPUs |
| Memory | Memory in MB |
| Disk | Disk in GB |
| Duration | Lease duration in seconds |
A real-time cost calculator updates as fields change, showing:
- XUSD cost breakdown (vCPU + memory + disk)
- Total XUSD cost
- Required provider stake
- XE reward for provider
VM management¶
Active leases are displayed with:
- VM status (running, pending, settled)
- Resource allocation
- Connection credentials
- Terminal for command execution against the VM
- Auto-refresh of VM status
DAO Governance¶
Participate in state chain governance as a DAO member.
View state chain¶
- Current state chain tip (latest block index and hash)
- Recent blocks with operation summaries
Draft block¶
- Add operations (
SETkey/value orDELETEkey) - Preview the operation list
- Generate the canonical hash for the proposed block
Sign¶
If the active wallet is a DAO member:
- Sign the block hash with the wallet's key
- View the accumulated signatures
Import signatures¶
For multi-party signing:
- Import signatures from other DAO members (paste signed payloads)
- Track signature count vs. threshold
Submit¶
When the required signature threshold is met, submit the block to the network.
State inspector¶
Browse the DAO state chain data.
Blocks tab¶
- Paginated list of state chain blocks
- Each entry shows index, hash, operation count, signature count, timestamp
- Click to view block detail:
- All operations with
SET/DELETEbadges - Key and value for each operation
- Signer addresses and signatures
- All operations with
KV State tab¶
- Filter by key prefix
- Keys grouped by namespace
- Pretty-printed values (JSON formatted where applicable)
- Copy buttons for keys and values
See also¶
- Wallet Overview -- architecture and tech stack
- Wallet Security -- encryption and session management
- Cryptography -- signing primitives
- Proof of Work -- client-side PoW details
- Compute Leasing -- lease lifecycle
- State Chain -- DAO governance model